之前有朋友問我怎么用腳本產(chǎn)生一個驗證環(huán)境,這個問題今天和大家介紹下兩種做法。
第一種用VCS自帶的uvmgen工具
當(dāng)你在命令行時直接輸入uvmgen會輸出如下信息
選擇1
然后按照提示步驟進(jìn)行UVM環(huán)境的創(chuàng)建
創(chuàng)建完之后我們看看環(huán)境目錄
剛才我們創(chuàng)建的env,agent,scoreboar,coverage收集模塊等都已經(jīng)完備,跑環(huán)境的Makefile也都自動生成好了。對于一些簡單的UVM環(huán)境,用uvmgen還是非常適用的。
但是采用這種方式產(chǎn)生UVM環(huán)境的局限也比較明顯,比如agent不能添加多個等,對于一些復(fù)雜的驗證環(huán)境還得自己手動添加。有沒有一種腳本能夠?qū)⒄w框架大家好,甚至將驗證管理中的checklist都準(zhǔn)備妥當(dāng)。下面介紹的這個uvmdvgen.py 腳本將實現(xiàn)這些強(qiáng)大的功能。
介紹下這個腳本實現(xiàn)的功能
可以快速生成 agent;
能夠根據(jù)用戶需求產(chǎn)生UVM環(huán)境;
自帶checklist;
自帶testplan;
這里產(chǎn)生的UVM環(huán)境可以支持多個不同的agent,并且UVM環(huán)境的編碼風(fēng)格對復(fù)用性非常友好。讓我們看看這款UVM的腳本是怎么使用的。
用-a 單獨生成一個agent,例如
uvmdvgen.py i2c -a
生成i2c 的agent
用-s 可以一個agent里面增添 host driver 和device driver
uvmdvgen.py i2c -a -s
講完agent,開始講environment,用-e 產(chǎn)出UVMenvironment
uvmdvgen.py i2c -e
Checklist,Testplan,UVMenvironment 一應(yīng)俱全。
用-ea添加agent,可以隨便添加多少個agent
uvmdvgen.py chip -e-ea uart i2c jtag
如此在environment添加agent便完成了。
該腳本還可以用-hi和-hr實現(xiàn)是否有interrupt,register model等功能。
是不是功能超級強(qiáng)大,迫不及待想用這個腳本的小伙伴可以在下面鏈接獲取。
https://github.com/lowRISC/opentitan/tree/master/util/uvmdvgen
更多信息可以來這里獲取==>>電子技術(shù)應(yīng)用-AET<<