不管是基于什么方法學(xué)Verilog或者SystemVerilog編寫測(cè)試平臺(tái),進(jìn)行仿真的時(shí)候都需要將設(shè)計(jì)代碼例化在頂層模塊(module)中,然后將頂層名指定在仿真命令中,但是從來(lái)沒(méi)有把頂層進(jìn)行例化。因?yàn)榭赡軙?huì)想如果頂層再例化就需要把頂層再例化到另一個(gè)module中,然后將這個(gè)module的名字再作為新的頂層。。。這樣下去就沒(méi)有窮盡了。其實(shí)在Verilog和SystemVerilog中,module的例化一般要么是在設(shè)計(jì)層次結(jié)構(gòu)中被例化,以形成整個(gè)層次化的設(shè)計(jì),要么就是作為整個(gè)仿真環(huán)境的頂層module出現(xiàn)進(jìn)行例化,并且此時(shí)給大家的假象是沒(méi)有例化。其中第一種例化方式就是“顯式例化”,后一種頂層module實(shí)際上是以一種“隱式例化”的方式存在的,那么“隱式例化”和“顯式例化”都有哪些特點(diǎn)和使用上的區(qū)別呢?本文將示例說(shuō)明。
1 隱式例化
隱式例化常見(jiàn)的情況主要出現(xiàn)在頂層模塊在仿真時(shí),頂層模塊會(huì)被隱式的進(jìn)行一次例化,并且這個(gè)例化名與頂層module的名字,這樣的一個(gè)實(shí)例稱之為“頂層實(shí)例”,即頂層的“隱式例化”
【示例】

【仿真結(jié)果】

示例中,在頂層top_tb中例化了兩個(gè)module(h1和h2),例化名分別是top_tb和u2,其中h1中又例化了h2,也就是h2在頂層top_tb和h1中分別進(jìn)行了例化,在例化時(shí)分別傳遞了對(duì)應(yīng)的參數(shù)。其中h1和h2在各層次的例化屬于“顯式例化”,整個(gè)代碼的層次結(jié)構(gòu)如下圖所示。

示例中第8行通過(guò)層次化引用將u2中的datin的值傳遞給了頂層變量sig1,sig1的值來(lái)自于通過(guò)$root指向頂層例化名(top_tb,此時(shí)的top_tb就是頂層模塊top_tb的“隱式例化”名),在通過(guò)頂層top_tb引用其中u2(h2例化),從而實(shí)現(xiàn)了對(duì)于u2中datin的訪問(wèn),因?yàn)榇藭r(shí)datin的值來(lái)自于h2在頂層中例化時(shí)傳遞的參數(shù)“4’h1110”,所以此時(shí)sig1值為“4’h1110”;
示例中第9行,依然是通過(guò)層次化引用的方式將u2中的datin的值傳遞給了頂層變量sig2,但是此時(shí)需要注意的是這里的top_tb并不是頂層module名也不是頂層module的例化名,而是當(dāng)前作用域內(nèi)h1的例化名(top_tb),這里h1在頂層例化時(shí)傳入的參數(shù)為“4’h0001”該參數(shù)通過(guò)h1中h2例化的u2傳遞給了datin,此時(shí)datin的值為“4’h0010”,所以此時(shí)sig2獲得數(shù)值為“4’h0010”;
2顯式例化
除了頂層以外,其他模塊的使用都是建立在對(duì)應(yīng)module“顯式例化”的基礎(chǔ)之上,正是通過(guò)模塊之間的一次或者多次例化形成了層次化的設(shè)計(jì)。
【示例】

【仿真結(jié)果】


示例仿真結(jié)果可以看到,h1、h2、h3、h4分別在不同的模塊中進(jìn)行了例化,形成了層次化的結(jié)構(gòu),這幾個(gè)模塊的例化都屬于“顯式例化”。
通過(guò)上述示例,在IEEE1800目前版本的SystemVerilog中“隱式例化”主要是指頂層模塊的例化,不需要指明實(shí)例名,其實(shí)例名與模塊名相同,“顯式例化”則需要指明模塊名和實(shí)例名,主要用于模塊之間形成層次化結(jié)構(gòu)時(shí)各模塊之間的相互實(shí)例化。
審核編輯 :李倩
-
仿真
+關(guān)注
關(guān)注
52文章
4364瀏覽量
137449 -
Verilog
+關(guān)注
關(guān)注
30文章
1369瀏覽量
113837 -
變量
+關(guān)注
關(guān)注
0文章
615瀏覽量
29328
原文標(biāo)題:仿真時(shí)為什么頂層不例化
文章出處:【微信號(hào):處芯積律,微信公眾號(hào):處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
代碼和原理圖設(shè)計(jì)的頂層文件有什么不同么
模塊例化錯(cuò)誤
使用user design文件夾下的.v文件,如果編寫頂層讀寫控制程序?qū)ig-39-2.v進(jìn)行例化,如何操作才能使用sim_tb_top.v仿真文件?
matlab 電機(jī)仿真精華50例
FPGA例化問(wèn)題?
以MIPI項(xiàng)目為例講解Diamond FIFO生成和例化全過(guò)程
基于linux系統(tǒng)的VCS使用及仿真說(shuō)明
pcb頂層和底層互換
FPGA學(xué)習(xí)-Verilog例化說(shuō)明
Verilog仿真激勵(lì)舉例
XILINX FPGA IP之DDS Compiler_ip例化仿真
EDA頂層絲印層怎么畫
頂層金屬工藝是指什么

仿真時(shí)為什么頂層不例化
評(píng)論