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

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

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

用ModelSim搭建可看代碼覆蓋率的千兆以太網(wǎng)控制器的仿真環(huán)境

FPGA技術(shù)江湖 ? 來源:FPGA技術(shù)江湖 ? 2023-01-13 10:14 ? 次閱讀

對(duì)于非微電子專業(yè)做FPGA的同學(xué)們來講,常常把仿真驗(yàn)證環(huán)境的搭建給忽略了,為了追求所謂的“高效”,自己寫的代碼根本就沒怎么仿真驗(yàn)證過,就急急忙忙的上板調(diào)試。有的同學(xué)說也做過仿真啊,后來一看發(fā)現(xiàn)竟然是用Vivado等FPGA綜合工具自帶的仿真器來簡(jiǎn)單的仿真了一下,其實(shí)這些都還僅僅是停留在模塊級(jí)的個(gè)別功能點(diǎn)仿真。一個(gè)通信的FPGA樣機(jī)或者是一款ASIC芯片的仿真驗(yàn)證,是需要仔細(xì)把所有的功能點(diǎn)細(xì)分之后串聯(lián)起來做出來一個(gè)兼顧軟硬件及各種應(yīng)用場(chǎng)景的全流程的仿真驗(yàn)證。類似的有各種成熟的方法,如UVM等,但對(duì)于初學(xué)者而言,其實(shí)用ModelSim完全可以搭建出來一個(gè)稍微像樣的可回歸的能夠看覆蓋率的仿真驗(yàn)證環(huán)境的。近期發(fā)現(xiàn)很多同學(xué)不重視仿真驗(yàn)證環(huán)境搭建,認(rèn)為沒必要搭建仿真驗(yàn)證環(huán)境,結(jié)果沒有充分驗(yàn)證的代碼上板后發(fā)現(xiàn)BUG,費(fèi)了長(zhǎng)達(dá)一兩周的時(shí)間不斷的添加追蹤信號(hào)看波形終于定位到了問題,結(jié)果一看是一個(gè)邏輯錯(cuò)誤,用仿真的方法完全可以復(fù)現(xiàn),如果有仿真環(huán)境,發(fā)現(xiàn)問題定位問題并解決問題可能就是一個(gè)小時(shí)就可以搞定的事情,結(jié)果因?yàn)闆]有仿真驗(yàn)證環(huán)境白白的浪費(fèi)了大量的時(shí)間。

一、把所有代碼分為設(shè)計(jì)代碼文件夾hdl和仿真文件夾sim 315b87c2-92e3-11ed-bfe3-dac502259ad0.png 在hdl文件夾下是對(duì)應(yīng)所有的設(shè)計(jì)代碼,本文中選用opencores網(wǎng)站中十百千自適應(yīng)的MAC控制器作為設(shè)計(jì)代碼。

31687216-92e3-11ed-bfe3-dac502259ad0.png

sim文件夾下存放仿真環(huán)境搭建的各種文件。

31778e90-92e3-11ed-bfe3-dac502259ad0.png

testbench下存放最頂層的testbench.v;bfm文件夾下存放以太網(wǎng)phy的簡(jiǎn)單模型產(chǎn)生以太網(wǎng)數(shù)據(jù)包的激勵(lì),時(shí)鐘復(fù)位產(chǎn)生模塊及數(shù)據(jù)對(duì)比模塊;filelist文件夾下存放驗(yàn)證環(huán)境中所有的.v文件列表文件,為了看覆蓋率,一般要把設(shè)計(jì)代碼文件列表和仿真代碼文件列表分開成兩個(gè)不同的文件(windows下自動(dòng)生成verilog列表文件的源碼本公眾號(hào)之前也分享過,詳見如何快速生成Verilog代碼文件列表?(內(nèi)附開源C代碼));in_out下就存放每個(gè)不同的測(cè)試?yán)龑?duì)應(yīng)的激勵(lì)數(shù)據(jù)包和經(jīng)過MAC核控制器后出去的數(shù)據(jù)包;run目錄下存放運(yùn)行的批處理文件和sim的tcl腳本文件;testcase下存在各種不同的測(cè)試?yán)?/p>

二、編寫腳本

腳本分為run.bat批處理腳本和sim.do兩個(gè)文件,都在上述run文件夾下,run.bat如下:

31875082-92e3-11ed-bfe3-dac502259ad0.png

其中vsim -c 一行中的-c用來表示是否啟動(dòng)Modelsim的圖形界面,有-c就表示啟動(dòng)圖形界面,沒有就表示不啟動(dòng)。

sim.do就比較簡(jiǎn)單了,就是完成建ModelSim工程及仿真等動(dòng)作:

31946ed4-92e3-11ed-bfe3-dac502259ad0.png

需要注意的一點(diǎn)是,上面把仿真代碼文件列表和設(shè)計(jì)代碼文件列表分開后,就可以單獨(dú)的vlog,同時(shí)給設(shè)計(jì)代碼添加上看覆蓋率的命令。

本文后續(xù)內(nèi)容是某天所做的更改記錄,大家可以通過這些記錄便能看出搭建改環(huán)境的一些較為核心的內(nèi)容。

1、在data_cmp.v模塊增加輸入信號(hào)testcase_name,將測(cè)試?yán)忠霐?shù)據(jù)包比較模塊,利用testcase_name信號(hào),可以每次測(cè)試不同測(cè)試?yán)臅r(shí)候在數(shù)據(jù)記錄文件夾in_out里面可以產(chǎn)生不同的數(shù)據(jù)記錄log文件。

具體截圖如下:

319f8724-92e3-11ed-bfe3-dac502259ad0.png

上圖中增加了INITIAL_DATA_CMP的task,可以每次在不同的測(cè)試?yán)_頭對(duì)整個(gè)芯片進(jìn)行復(fù)位的時(shí)候啟動(dòng)該task,即可建立對(duì)應(yīng)該testcase的記錄文件。

目前存在的問題是最開始復(fù)位的時(shí)候,testcase_name還未有實(shí)際的測(cè)試?yán)?,?dǎo)致會(huì)產(chǎn)生兩個(gè)沒有用的文件。如下圖:

31ad51f6-92e3-11ed-bfe3-dac502259ad0.png

2、在data_cmp.v中增加名為OVER的task,在每個(gè)測(cè)試?yán)\(yùn)行結(jié)束后可以關(guān)閉掉為該測(cè)試?yán)陆ǖ奈募羔槨?/p>

OVER任務(wù)具體實(shí)現(xiàn)如下:

31b9e5ec-92e3-11ed-bfe3-dac502259ad0.png

在不同的testcase末尾調(diào)用該task:

31c7c806-92e3-11ed-bfe3-dac502259ad0.png

3、手動(dòng)將文件列表文件rtl.f拆分成設(shè)計(jì)代碼文件列表hdl_filelist.v和仿真代碼文件列表sim_filelist.v。

31d33a1a-92e3-11ed-bfe3-dac502259ad0.png

并修改運(yùn)行腳本,使得運(yùn)行結(jié)束后可以看到設(shè)計(jì)代碼文件的覆蓋率。

31dff91c-92e3-11ed-bfe3-dac502259ad0.png

修改批處理文件,使用modelsim圖形界面的方式

31f1875e-92e3-11ed-bfe3-dac502259ad0.png

發(fā)現(xiàn)第二個(gè)測(cè)試?yán)虚g的數(shù)據(jù)包計(jì)數(shù)未從0開始,修改代碼

31fed454-92e3-11ed-bfe3-dac502259ad0.png

在所有testcase中增加一行代碼,讓data_cnt和i都從0開始。

320df1d2-92e3-11ed-bfe3-dac502259ad0.png

修改后就能每個(gè)testcase都從0開始運(yùn)行:

321c1b54-92e3-11ed-bfe3-dac502259ad0.png

此時(shí)在modelsim圖形界面下也能看到設(shè)計(jì)代碼對(duì)應(yīng)的覆蓋率情況:

322aa976-92e3-11ed-bfe3-dac502259ad0.png

雙擊某個(gè)文件就能打開對(duì)應(yīng)代碼是否被驗(yàn)證到的情況:

323983e2-92e3-11ed-bfe3-dac502259ad0.png

目前只是驗(yàn)證了百兆模式下100個(gè)隨機(jī)幀和千兆模式下100個(gè)隨機(jī)幀,大家可以在上面的基礎(chǔ)上不斷的去增加測(cè)試?yán)?。后續(xù)內(nèi)容就需要大家不斷的增加測(cè)試?yán)齺硗瓿蓪?duì)所有代碼的全覆蓋仿真,并且在此過程中也能夠?qū)AC核的各種功能更加的熟悉。

審核編輯 :李倩

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

    關(guān)注

    112

    文章

    16418

    瀏覽量

    178788
  • 以太網(wǎng)
    +關(guān)注

    關(guān)注

    40

    文章

    5452

    瀏覽量

    172189
  • 仿真
    +關(guān)注

    關(guān)注

    50

    文章

    4111

    瀏覽量

    133796

原文標(biāo)題:用ModelSim搭建可看代碼覆蓋率的千兆以太網(wǎng)控制器的仿真環(huán)境

文章出處:【微信號(hào):HXSLH1010101010,微信公眾號(hào):FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    TOSUN 車載以太網(wǎng)仿真測(cè)試解決方案

    TOSUN車載以太網(wǎng)仿真測(cè)試解決方案隨著自動(dòng)駕駛、車聯(lián)網(wǎng)和智能化系統(tǒng)的廣泛應(yīng)用,車載電子組件和傳感的數(shù)量與復(fù)雜性都在持續(xù)增加,為了滿足這些更為復(fù)雜性的需求,車載以太網(wǎng)作為一種新型車載
    的頭像 發(fā)表于 12-07 01:07 ?483次閱讀
    TOSUN 車載<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>仿真</b>測(cè)試解決方案

    TMS320C645x DSP上千兆以太網(wǎng)媒體訪問控制器的軟件操作

    電子發(fā)燒友網(wǎng)站提供《TMS320C645x DSP上千兆以太網(wǎng)媒體訪問控制器的軟件操作.pdf》資料免費(fèi)下載
    發(fā)表于 10-16 10:21 ?0次下載
    TMS320C645x DSP上<b class='flag-5'>千兆</b>位<b class='flag-5'>以太網(wǎng)</b>媒體訪問<b class='flag-5'>控制器</b>的軟件操作

    synopsys 的design ware:DW_fpv_div,浮點(diǎn)數(shù)除法器,默認(rèn)32位下,想提升覆蓋率(TMAX),如果用功能case去提升覆蓋率呢?

    公司某個(gè)項(xiàng)目用到了這個(gè)DW:DW_fpv_div,但是scan跑完,這個(gè)模塊覆蓋率只有60%多,現(xiàn)在要我TMAX軟件,通過功能去覆蓋,我看了下rpt報(bào)的faults點(diǎn),嘗試去寫了幾個(gè)特殊值去做除法
    發(fā)表于 10-15 18:38

    使用C2000 EtherCAT從站控制器的SMI進(jìn)行以太網(wǎng)PHY配置

    電子發(fā)燒友網(wǎng)站提供《使用C2000 EtherCAT從站控制器的SMI進(jìn)行以太網(wǎng)PHY配置.pdf》資料免費(fèi)下載
    發(fā)表于 09-07 10:37 ?0次下載
    使用C2000 EtherCAT從站<b class='flag-5'>控制器</b>的SMI進(jìn)行<b class='flag-5'>以太網(wǎng)</b>PHY配置

    利用TSN以太網(wǎng)特性改善工業(yè)以太網(wǎng)控制器的時(shí)序

    電子發(fā)燒友網(wǎng)站提供《利用TSN以太網(wǎng)特性改善工業(yè)以太網(wǎng)控制器的時(shí)序.pdf》資料免費(fèi)下載
    發(fā)表于 08-30 10:53 ?0次下載
    利用TSN<b class='flag-5'>以太網(wǎng)</b>特性改善工業(yè)<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>控制器</b>的時(shí)序

    以太網(wǎng)端口和千兆端口的區(qū)別

    以太網(wǎng)端口和千兆端口在多個(gè)方面存在顯著的區(qū)別,這些區(qū)別主要體現(xiàn)在速度、應(yīng)用范圍、技術(shù)規(guī)格以及網(wǎng)絡(luò)性能等方面。
    的頭像 發(fā)表于 08-07 15:42 ?1434次閱讀

    MSP432E401Y Simplelink? 以太網(wǎng)控制器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《MSP432E401Y Simplelink? 以太網(wǎng)控制器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-05 10:05 ?0次下載
    MSP432E401Y Simplelink? <b class='flag-5'>以太網(wǎng)</b>微<b class='flag-5'>控制器</b>數(shù)據(jù)表

    MSP432E401Y Simplelink? 以太網(wǎng)控制器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《MSP432E401Y Simplelink? 以太網(wǎng)控制器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-05 10:04 ?0次下載
    MSP432E401Y Simplelink? <b class='flag-5'>以太網(wǎng)</b>微<b class='flag-5'>控制器</b>數(shù)據(jù)表

    MX60千兆以太網(wǎng)非接觸式連接解決方案

    MX60千兆以太網(wǎng)非接觸式連接解決方案是無線收發(fā),可提供高速固態(tài)無線連接,以取代傳統(tǒng)的機(jī)械連接。為了簡(jiǎn)化設(shè)計(jì),MX60千兆
    發(fā)表于 07-17 16:15 ?291次閱讀

    DM9000單芯片快速以太網(wǎng)MAC控制器英文手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《DM9000單芯片快速以太網(wǎng)MAC控制器英文手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 07-16 17:30 ?0次下載

    單元測(cè)試工具TESSY 新版本亮點(diǎn)速覽:提供測(cè)試駕駛艙視圖、超級(jí)覆蓋率、代碼訪問分析、增強(qiáng)覆蓋率審查

    各種測(cè)試對(duì)象和方法的所有覆蓋率測(cè)量結(jié)果,并記錄在新的測(cè)試總結(jié)報(bào)告中。 了解更多TESSY新版本功能詳情或申請(qǐng)免費(fèi)試用,歡迎咨詢TESSY中國授權(quán)分銷商——龍智。 新版本功能亮點(diǎn)速覽: 1、超級(jí)覆蓋率 逐行評(píng)估源代碼。 基于標(biāo)準(zhǔn)
    的頭像 發(fā)表于 07-08 16:20 ?460次閱讀
    單元測(cè)試工具TESSY 新版本亮點(diǎn)速覽:提供測(cè)試駕駛艙視圖、超級(jí)<b class='flag-5'>覆蓋率</b>、<b class='flag-5'>代碼</b>訪問分析、增強(qiáng)<b class='flag-5'>覆蓋率</b>審查

    TNETE2201B 1.25千兆以太網(wǎng)收發(fā)數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《TNETE2201B 1.25千兆以太網(wǎng)收發(fā)數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 07-03 11:42 ?0次下載
    TNETE2201B 1.25<b class='flag-5'>千兆</b><b class='flag-5'>以太網(wǎng)</b>收發(fā)<b class='flag-5'>器</b>數(shù)據(jù)表

    工業(yè)以太網(wǎng)和普通以太網(wǎng)區(qū)別在哪

    的應(yīng)用環(huán)境和需求不同。普通以太網(wǎng)主要應(yīng)用于辦公和家庭網(wǎng)絡(luò)環(huán)境,而工業(yè)以太網(wǎng)則是為滿足工業(yè)自動(dòng)化和控制系統(tǒng)的需求而設(shè)計(jì)的。 1.1
    的頭像 發(fā)表于 06-11 10:30 ?2865次閱讀

    智嵌物聯(lián)100/1000BASE-T1千兆車載以太網(wǎng)交換機(jī)

    轉(zhuǎn)換、車載以太網(wǎng)交換機(jī)來使用。 功能特點(diǎn): DC9~36V寬壓供電設(shè)計(jì),支持12V/24V的供電系統(tǒng)。 5個(gè)千兆車載以太網(wǎng)接口
    的頭像 發(fā)表于 06-06 09:29 ?1215次閱讀
    智嵌物聯(lián)100/1000BASE-T1<b class='flag-5'>千兆</b>車載<b class='flag-5'>以太網(wǎng)</b>交換機(jī)

    如何使用Vitis自帶的LWIP模板進(jìn)行PS端千兆以太網(wǎng)TCP通信?

    開發(fā)板有兩路千兆以太網(wǎng),通過RGMII接口連接,本實(shí)驗(yàn)演示如何使用Vitis自帶的LWIP模板進(jìn)行PS端千兆以太網(wǎng)TCP通信。
    的頭像 發(fā)表于 04-28 10:44 ?3659次閱讀
    如何使用Vitis自帶的LWIP模板進(jìn)行PS端<b class='flag-5'>千兆</b><b class='flag-5'>以太網(wǎng)</b>TCP通信?