關於verilog實例化的介紹


概念

當我們完成一個比較完整的系統的時候,通常需要編寫一個Testbench來驗證自己的設計的功能能否滿足設計要求。在這個系統中通常會有一個top模塊來連接那些小的模塊,verilog通過實例化的方式來完成這些子模塊和頂層模塊的連接,然后頂層模塊可以由此來調用各個子模塊。

用法

調用模塊的端口一般有兩種方式,一種是位置關聯,一種是名字關聯,順序關聯不容易漏掉端口,名字關聯容易理解(兩個相同的名字肯定好理解啊)

舉例說明

子模塊(這里以一個簡單的全加器模塊說明)描述如下:

module adder(a,b,cin,s,cout);

innput a,b,cin;

output cout,s;

assign {cout,s} = a + b + cin;

endmodule

下面有一個頂層模塊調用全加器模塊:

module top(A,B,CIN,S,COUT);

...

adder ADDER(A,B,CIN,S,COUT);//這里采用位置關聯

...

endmodule

如果采用名稱關聯

adder ADDER(

.a(A),

.b(B),

.cin(CIN),

.cout(COUT)

);

上面兩種關聯方式有一些共同點:

1、例化中一定會有一個例化名,比如上面的ADDER,就代表着對adder模塊的調用,這個例化名可以自己定,沒有什么特別要求。

值得一講的是名稱關聯,這種方法注意是前面寫的是子模塊內的端口名稱,括號里面的是頂層模塊里面的端口名稱。一般我們寫模塊時都喜歡將兩個模塊里面的端口名稱寫成一樣的,方便自己理解。

還有就是注意懸空端口的處理。綜合時懸空端口會有一定的影響。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM