Verilog學習筆記(二) 模組

2021-08-10 09:56:31 字數 955 閱讀 4440

模組是

verilog

的基本描述單位,用於描述某個設計的功能或結構及其與其他模組通訊的外部埠。乙個設計的結構可使用開關級原語、門級原語和使用者定義的原語方式描述; 設計的資料流行為使用連續賦值語句進行描述; 時序行為使用過程結構描述。乙個模組可以在另乙個模組中使用。

乙個模組的基本語法如下:

module module_name(port_list) ; 

...endmodule

說明部分用於定義不同的項,例如模組描述中使用的暫存器和引數。語句定義設計的功能和結構。說明部分和語句可以散布在模組中的任何地方;但是變數、暫存器、線網和引數等的說明部分必須在使用前出現。為了使模組描述清晰和具有良好的可讀性, 最好將所有的說明部分放在語句前。本書中的所有例項都遵守這一規範。

乙個半加器電路的模組。

modulehalfadder (a, b, sum, carry) ; 

input a, b; 

//輸入

output sum, carry;

//輸出

assign #2 sum = a ^ b;

//賦值

assign #5 carry = a & b;

//賦值

endmodule

模組的名字是halfadder。模組有4個埠: 兩個輸入埠a和b,兩個輸出埠sum和carry。由於沒有定義埠的位數, 所有埠大小都為1位;同時, 由於沒有各埠的資料型別說明, 這四個埠都是線網資料型別。模組包含兩條描述半加器資料流行為的連續賦值語句。從這種意義上講,這些語句在模組中出現的順序無關緊要,這些語句是併發的。每條語句的執行順序依賴於發生在變數a和b上的事件。

注意兩個語句是併發的,與語句寫的先後順序無關。

在模組中,可用下述方式描述乙個設計:

1) 資料流方式;

2) 行為方式;

3) 結構方式;

4) 上述描述方式的混合。

FPGA學習筆記 Verilog語言的模組化設計

在進行模組化設計中,對於複雜的數字系統,我們一般採用自頂向下的設計方式。可以把系統劃分成幾個功能模組,每個功能模組再劃分成下一層的子模組 每個模組的設計對應乙個module,乙個module設計成乙個verilog程式檔案。因此,對乙個系統的頂層模組,我們採用結構化的設計,即頂層模組分別呼叫了各個功...

FPGA學習筆記(二) verilog 語法講解

verilog語法介紹 數位電路中主要有組合邏輯和時序邏輯兩種電路。組合邏輯 多路選擇器 解碼器 加法器 乘法器等 時序邏輯 最基本的是計數器。verilog檔案的基本結構 乙個檔案中可以包含多個模組。方法1 模組宣告 模組名 埠列表 module mux2 a,b,sel,out,io 埠屬性定義...

Verilog學習日誌(二)

1 非阻塞賦值方法 如 b a 塊結束後才完成賦值操作 b的值並不是立刻改變 這是一種常用的賦值方法 2 阻塞賦值方法 如 b a 賦值語句執行完後塊才結束 b的值在賦值語句執行後立刻改變 可能產生意想不到的結果 1 塊內的語句是按順序執行的,上一條語句執行完才能執行下一條語句 2 每條語句的延遲世...