模組定義以關鍵字module開始,模組名、埠列表、埠宣告和可選的引數宣告必須出現在其他部分的前面,endmodule語句必須為模組的最後一條語句。模組內部的5個組成部分是:
變數宣告、資料流語句、低層模組例項、行為語句塊以及任何和函式。在模組的組成部分中,只有module、模組名、endmodule必須出現,其他部分都是可選的,使用者可以根據設計的需要隨意選用。
如果模組和外部環境沒有交換任何訊號,則可以沒有埠列表。
模組top是乙個頂層模組,作為**中的頂層模組,呼叫設計模組,無需和周圍環境交換資訊,因此沒有埠列表。
而被呼叫的fulladd4模組,則由a, b, c_in埠讀入資料,將結果從sum和c_cout埠送出。
在verilog中埠具有以下三種型別:
在verilog中,所有的埠隱含地宣告wire型別;如果輸出型別的埠需要儲存數值,則必須將其顯式地宣告為reg資料型別。
不能將input和inout型別的埠宣告為reg資料型別,因為reg型別的變數是用於儲存數值的,而輸入埠只反映與其相連的外部訊號的變化。
在verilog中,有兩種埠宣告風格:
位寬匹配
在對模組進行呼叫的時候,verilog允許埠的內、外兩個部分具有不同的位寬。在一般的情況下,verilog**器會對此給予警告。
在對模組呼叫的時候,也已使用兩種方法將模組定義的埠與外部環境連線起來。
順序埠連線
按照順序進行埠連線:
命名埠連線
fulladd4 fa_byname(.c_out(c_out), .sum(sum), .b(b), .c_in(c_in), .a(a));
verilog讀書筆記 4 模組和埠
模組定義以關鍵字module開始,模組名 埠列表 埠宣告和可選的引數宣告必須出現在其他部分的前面,endmodule語句必須為模組的最後一條語句。模組內部的5個組成部分是 變數宣告 資料流語句 低層模組例項 行為語句塊以及任何和函式。在模組的組成部分中,只有module 模組名 endmodule必...
Verilog的模組與埠 語法
模組 模組的定義以關鍵字module開始,模組名 埠列表 埠宣告和可選的引數宣告必須出現在其他部分的前面,endmodule語句必須為模組的最後一條語句。埠是模組與外部環境互動的通道,只有在模組有埠的情況下才需要有埠列表和埠宣告。模組內部的5個組成部分是 變數宣告 資料流語句 低層模組例項 行為語句...
verilog基礎 模組埠 使用方法總結
模組的定義以關鍵字module開始,模組名 埠列表 埠宣告和可選的引數宣告必須出現在其他部分的前面,endmodule語句必須為模組的最後一條語句。埠是模組與外部環境互動的通道,只有在模組有埠的情況下才需要有埠列表和埠宣告。模組內部的5個組成部分是 變數宣告 資料流語句 低層模組例項 行為語句塊以及...