模組是
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 每條語句的延遲世...