最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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使用方法介紹的評論 (共 條)

分享到微博請遵守國家法律
牟定县| 廊坊市| 洪泽县| 农安县| 咸阳市| 门头沟区| 垣曲县| 灵石县| 沂源县| 延庆县| 宁陕县| 吉木萨尔县| 金秀| 历史| 孝义市| 师宗县| 拜城县| 铜梁县| 禄丰县| 扬州市| 望奎县| 鲁山县| 清水河县| 海兴县| 封开县| 扎鲁特旗| 黔江区| 东山县| 宁都县| 伊宁县| 安庆市| 乌拉特后旗| 普宁市| 鹰潭市| 安多县| 南安市| 桂林市| 嘉荫县| 宁津县| 万安县| 沙洋县|