0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

仿真時為什么頂層不例化

sanyue7758 ? 來源:處芯積律 ? 2023-04-28 10:28 ? 次閱讀

不管是基于什么方法學(xué)Verilog或者SystemVerilog編寫測試平臺,進(jìn)行仿真的時候都需要將設(shè)計代碼例化在頂層模塊(module)中,然后將頂層名指定在仿真命令中,但是從來沒有把頂層進(jìn)行例化。因?yàn)榭赡軙肴绻攲釉倮托枰秧攲釉倮搅硪粋€module中,然后將這個module的名字再作為新的頂層。。。這樣下去就沒有窮盡了。其實(shí)在Verilog和SystemVerilog中,module的例化一般要么是在設(shè)計層次結(jié)構(gòu)中被例化,以形成整個層次化的設(shè)計,要么就是作為整個仿真環(huán)境的頂層module出現(xiàn)進(jìn)行例化,并且此時給大家的假象是沒有例化。其中第一種例化方式就是“顯式例化”,后一種頂層module實(shí)際上是以一種“隱式例化”的方式存在的,那么“隱式例化”和“顯式例化”都有哪些特點(diǎn)和使用上的區(qū)別呢?本文將示例說明。

1 隱式例化

隱式例化常見的情況主要出現(xiàn)在頂層模塊在仿真時,頂層模塊會被隱式的進(jìn)行一次例化,并且這個例化名與頂層module的名字,這樣的一個實(shí)例稱之為“頂層實(shí)例”,即頂層的“隱式例化”

【示例】

a348ef04-e569-11ed-ab56-dac502259ad0.png

【仿真結(jié)果】

a35b47da-e569-11ed-ab56-dac502259ad0.png

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

a3646d4c-e569-11ed-ab56-dac502259ad0.png

示例中第8行通過層次化引用將u2中的datin的值傳遞給了頂層變量sig1,sig1的值來自于通過$root指向頂層例化名(top_tb,此時的top_tb就是頂層模塊top_tb的“隱式例化”名),在通過頂層top_tb引用其中u2(h2例化),從而實(shí)現(xiàn)了對于u2中datin的訪問,因?yàn)榇藭rdatin的值來自于h2在頂層中例化時傳遞的參數(shù)“4h1110”,所以此時sig1值為“4h1110”;

示例中第9行,依然是通過層次化引用的方式將u2中的datin的值傳遞給了頂層變量sig2,但是此時需要注意的是這里的top_tb并不是頂層module名也不是頂層module的例化名,而是當(dāng)前作用域內(nèi)h1的例化名(top_tb),這里h1在頂層例化時傳入的參數(shù)為“4h0001”該參數(shù)通過h1中h2例化的u2傳遞給了datin,此時datin的值為“4h0010”,所以此時sig2獲得數(shù)值為“4h0010”;

2顯式例化

除了頂層以外,其他模塊的使用都是建立在對應(yīng)module“顯式例化”的基礎(chǔ)之上,正是通過模塊之間的一次或者多次例化形成了層次化的設(shè)計。

【示例】

a3706f20-e569-11ed-ab56-dac502259ad0.png

【仿真結(jié)果】

a37b9080-e569-11ed-ab56-dac502259ad0.png

a38b9836-e569-11ed-ab56-dac502259ad0.png

示例仿真結(jié)果可以看到,h1、h2、h3、h4分別在不同的模塊中進(jìn)行了例化,形成了層次化的結(jié)構(gòu),這幾個模塊的例化都屬于“顯式例化”。

通過上述示例,在IEEE1800目前版本的SystemVerilog中“隱式例化”主要是指頂層模塊的例化,不需要指明實(shí)例名,其實(shí)例名與模塊名相同,“顯式例化”則需要指明模塊名和實(shí)例名,主要用于模塊之間形成層次化結(jié)構(gòu)時各模塊之間的相互實(shí)例化。

審核編輯 :李倩



聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 仿真
    +關(guān)注

    關(guān)注

    50

    文章

    4026

    瀏覽量

    133344
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1343

    瀏覽量

    109932
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    613

    瀏覽量

    28311

原文標(biāo)題:仿真時為什么頂層不例化

文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    代碼和原理圖設(shè)計的頂層文件有什么不同么

    最近分別用原理圖形式和代碼形式設(shè)計了一個串口發(fā)送的頂層文件,結(jié)果原理圖設(shè)計的頂層文件用modelsim仿真時出錯,但是運(yùn)行沒問題;用代碼設(shè)計的頂層文件利用modelsim
    發(fā)表于 07-30 16:51

    模塊錯誤

    SW[1]這樣子錯誤,請問下,不能這樣的嗎?在頂層模塊是input[4]sw;這樣定義的,然后在底層模塊要使用到sw[1]這個開關(guān)信
    發(fā)表于 04-17 17:07

    使用user design文件夾下的.v文件,如果編寫頂層讀寫控制程序?qū)ig-39-2.v進(jìn)行,如何操作才能使用sim_tb_top.v仿真文件?

    里的例子,ddr正常。但實(shí)際是要使用user design文件夾下的.v文件,此時如果編寫頂層讀寫控制程序?qū)ig-39-2.v進(jìn)行,應(yīng)如何操作才能使用sim_tb_top.v仿真
    發(fā)表于 06-22 17:14

    matlab 電機(jī)仿真精華50

    MATLAB電機(jī)仿真精華50/1KBMATLAB電機(jī)仿真精華50/MATLAB電機(jī)仿真精華50
    發(fā)表于 09-07 15:08

    FPGA問題?

    小弟新接觸FPGA(正在學(xué)勇敢的芯伴你玩轉(zhuǎn)Xilinx FPGA),遇到如下問題,我在頂層文件都化了,保存之后生成一堆帶問號的文件,我如何操作才能把這些問號文件,變成.V文件(可操作的子文件),希望大神指點(diǎn)一下?看例程生成的是.V文件例程圖
    發(fā)表于 09-24 13:47

    以MIPI項(xiàng)目為講解Diamond FIFO生成和全過程

    標(biāo)注所示:點(diǎn)擊后進(jìn)入Clarity Designer,創(chuàng)建一個IP核。需要注意的是Design Name中輸入的名稱即是在頂層文件中需要的IP核模塊名。點(diǎn)擊下方的“create”進(jìn)行創(chuàng)建,找到雙
    發(fā)表于 12-12 15:54

    基于linux系統(tǒng)的VCS使用及仿真說明

    代碼如下:頂層模塊代碼:波特率產(chǎn)生模塊接收模塊代碼:發(fā)送數(shù)據(jù)模塊一、VCS仿真下面開始進(jìn)行VCS仿真。VCS要使用圖形界面,必須得先編譯得到vpd文件,才能用圖形
    發(fā)表于 07-18 16:18

    MATLAB電機(jī)仿真精華50

    MATLAB有關(guān)電機(jī)方面的仿真精華50 非常好的資料
    發(fā)表于 12-24 14:00 ?0次下載

    pcb頂層和底層互換

    本文主要詳細(xì)介紹了pcb頂層和底層互換,把PCB切換到頂層,然后Edit/select/allonlayer選擇頂層。
    發(fā)表于 04-26 15:47 ?1.6w次閱讀
    pcb<b class='flag-5'>頂層</b>和底層互換

    基于51單片機(jī)與proteus仿真綜合實(shí)驗(yàn)150

    基于51單片機(jī)與proteus仿真綜合實(shí)驗(yàn)150
    發(fā)表于 03-21 14:45 ?55次下載

    Proteus仿真MSP430實(shí)例14(帶源碼)

    Proteus 仿真MSP430實(shí)例14(帶源碼)
    發(fā)表于 09-23 17:25 ?21次下載

    FPGA學(xué)習(xí)-Verilog說明

    Verilog 說明 1.什么是模塊?為什么要? 模塊
    的頭像 發(fā)表于 12-12 09:50 ?3944次閱讀

    Verilog仿真激勵舉例

    Verilog 代碼設(shè)計完成后,還需要進(jìn)行重要的步驟,即邏輯功能仿真。仿真激勵文件稱之為 testbench,放在各設(shè)計模塊的頂層,以便對模塊進(jìn)行系統(tǒng)性的
    的頭像 發(fā)表于 06-02 11:35 ?1431次閱讀
    Verilog<b class='flag-5'>仿真</b>激勵舉例

    XILINX FPGA IP之DDS Compiler_ip仿真

    之前的文章對dds ip 的結(jié)構(gòu)、精度、參數(shù)、接口進(jìn)行了詳細(xì)的說明,本文通過仿真對該IP的實(shí)際使用進(jìn)行演示。本文固定模式和可配置模式
    的頭像 發(fā)表于 09-07 18:31 ?2070次閱讀
    XILINX FPGA IP之DDS Compiler_ip<b class='flag-5'>例</b><b class='flag-5'>化</b><b class='flag-5'>仿真</b>

    EDA頂層絲印層怎么畫

    EDA(電子設(shè)計自動頂層絲印層是在PCB(Printed Circuit Board,印刷電路板)設(shè)計過程中起到標(biāo)記和輔助引導(dǎo)功能的一層。它通常包含了元件名稱、位置、方向和標(biāo)志等信息,對于電路板
    的頭像 發(fā)表于 12-19 17:30 ?1956次閱讀