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