五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

verilog $test$testpluargs使用方法介紹

2023-07-05 23:50 作者:專心當(dāng)一個(gè)坑  | 我要投稿

0 前言

這段時(shí)間在整合一個(gè)小ip,因?yàn)橐?yàn)證每個(gè)feature是否可行,需要用testbench + C語言的方式進(jìn)行仿真驗(yàn)證,由于每種feature不僅要在C語言中修改寄存器配置,還要再testbench修改寄存器的配置,這導(dǎo)致每驗(yàn)證一種feature既需要修改C語言,也需要修改testbench,非常繁瑣

這里代碼排版更好

并且也不想把所有的feature寫在一個(gè)testbench中(仿真時(shí)間會變長很多,尤其是需要dump波形的時(shí)候),如果驗(yàn)證完一個(gè)feature后,把調(diào)教好的testbench注釋掉,一番注釋下來,看著也惡心,并且等所有feature都搞好后,仿真的時(shí)間還是很長

于是就希望能有一種方式,在驗(yàn)證不同的feature時(shí)可以吃不同的 testbench,一番搜索下來,找到了$test$plusargs的方法

1 語法介紹

先捋清兩個(gè)詞:plusargs、plusargs_string

  • plusargs:仿真時(shí)添加的參數(shù)

  • plusargs_string:編譯時(shí)提供的字符串

上面提到兩個(gè)詞,編譯和仿真,以vcs為例,整個(gè)執(zhí)行過程主要分為兩步,編譯和仿真(irun/xrun有三步,編譯、細(xì)化elaborate、仿真)

編譯的過程是檢查語法、展開所有的參數(shù)、宏以及include的文件等等;仿真的過程我的理解就是打入設(shè)定的激勵,驗(yàn)證功能是否符合預(yù)期

vcs成功編譯后會生成一個(gè)可執(zhí)行文件simv,如下圖

在執(zhí)行simv即可進(jìn)行仿真

開始介紹主角,直接抄文檔中的例子了


在上面這段代碼中,$test$plusargs("HELLO")中的HELLO是plusargs_string,也就是編譯時(shí)提供的字符串,編譯完成后,在進(jìn)行仿真時(shí)(執(zhí)行simv),+不同的plusargs會打印不同的內(nèi)容

只有當(dāng)plusargs_string的內(nèi)容完全匹配plusargs的部分或全部內(nèi)容時(shí),$test$plusargs()會返回一個(gè)非0的整數(shù)

原文如下:

原文的plusargs是HELLO,并給出了執(zhí)行結(jié)果

2 示例

做個(gè)實(shí)驗(yàn)測試一下,代碼如下:


編譯之后生成可執(zhí)行文件 simv,然后執(zhí)行simv +test

仿真結(jié)果如下

在上面的例子中,只有testte部分或全部匹配test,因此只打印了這兩個(gè)語句的內(nèi)容

3 多種情況的testbench怎么寫

就像開頭說的情況,我需要多種testbench如何借助這種方法實(shí)現(xiàn)呢,思路如下:

  1. 針對不同的情況,寫多份配置過程,并保存在不同的文本中,比如需要三種配置,可以寫三份文本,并保存為test_1.sv, test_2.sv, test_3.sv

  2. 在testbench中,利用plusargs include這三個(gè)文本

給出一個(gè)簡單的模板


在仿真時(shí),通過+不同的plusargs就可以執(zhí)行不同testbench了


verilog $test$testpluargs使用方法介紹的評論 (共 條)

分享到微博請遵守國家法律
泾川县| 出国| 如皋市| 财经| 永和县| 闸北区| 宁国市| 山东| 任丘市| 新密市| 安国市| 望城县| 牡丹江市| 定日县| 五家渠市| 红河县| 西昌市| 吉水县| 灵台县| 麻城市| 通化市| 大悟县| 阿拉尔市| 郑州市| 酉阳| 深圳市| 宝清县| 阳谷县| 巴彦淖尔市| 徐闻县| 诸城市| 措美县| 文山县| 梨树县| 隆德县| 屏东县| 灵山县| 曲周县| 屏南县| 驻马店市| 河源市|