HDLBits (55) — 組合電路 A 和 B
本題鏈接:
https://hdlbits.01xz.net/wiki/Mt2015_q4
摘自2015年中期問題4
有關此處使用的子模塊,請參見mt2015_q4a和mt2015_q4b。頂層設計包括兩個子電路A和B的實例化,如下所示。

實現(xiàn)這個電路。

題目
提示:
您可以選擇使用圖中所示的兩個子模塊分層次地創(chuàng)建這個電路,或者不分層次地創(chuàng)建相同的功能。

答案

在一個模塊中引用另一個模塊,對其端口進行相關連接,叫做模塊例化。模塊例化建立了描述的層次。信號端口可以通過位置或名稱關聯(lián),端口連接也必須遵循一些規(guī)則。
輸入端口
模塊例化時,從模塊外部來講, input 端口可以連接 wire 或 reg 型變量。這與模塊聲明是不同的,從模塊內(nèi)部來講,input 端口必須是 wire 型變量。
輸出端口
模塊例化時,從模塊外部來講,output 端口必須連接 wire 型變量。這與模塊聲明是不同的,從模塊內(nèi)部來講,output 端口可以是 wire 或 reg 型變量。
輸入輸出端口
模塊例化時,從模塊外部來講,inout 端口必須連接 wire 型變量。這與模塊聲明是相同的。
懸空端口
模塊例化時,如果某些信號不需要與外部信號進行連接交互,我們可以將其懸空,即端口例化處保留空白即可,上述例子中有提及。
output 端口正常懸空時,我們甚至可以在例化時將其刪除。
input 端口正常懸空時,懸空信號的邏輯功能表現(xiàn)為高阻狀態(tài)(邏輯值為 z)。但是,例化時一般不能將懸空的 input 端口刪除,否則編譯會報錯。
參考內(nèi)容:
5.2 Verilog 模塊例化?| 菜鳥教程:
https://www.runoob.com/w3cnote/verilog-generate.html