加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    •  
    • 文件說明
    • 結(jié)構(gòu)說明
    •  
    • 推薦參考資料
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

UVM實(shí)戰(zhàn)[一]

2020/12/01
418
閱讀需 9 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

一個(gè)新的連載系列,將以一個(gè)實(shí)際的 UVM 環(huán)境代碼講解的使用、機(jī)制等,更新周期會(huì)比較長。

?

文件說明

分享的文件是我個(gè)人和同學(xué)在參加復(fù)微杯大學(xué)生電子設(shè)計(jì)大賽中所完成的設(shè)計(jì)。賽題來自數(shù)字命題 AI 賽道,有興趣可以了解一下

【數(shù)字賽道命題之一】使用數(shù)字電路實(shí)現(xiàn)二維卷積計(jì)算,并輸出相應(yīng) code 及報(bào)告

RTL 設(shè)計(jì)部分代碼不予公開,提供的是通過 Questasim 加密后的文件,能夠編譯仿真但是無法閱讀,例如:

`pragma protect begin_protected
`pragma protect version = 1
`pragma protect encrypt_agent = "QuestaSim" , encrypt_agent_info = "10.6c"
`pragma protect key_keyowner = "Mentor Graphics Corporation" , key_keyname = "MGC-VERIF-SIM-RSA-2"
`pragma protect key_method = "rsa"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 256 )
`pragma protect key_block
EBDDlVIhqXE3DzKivVjuI9OF3W7Y0FsnqRYxip5AT5Uavd7H/9i2xlih9gekfmGf
Cd0qkHQIV6O9VNGmvMgrCqG8CPHEpHWQSRjdFX8wDD3ujd9zz+RD9ESRX/5QMGni
6KvH4+Ud9W2gPqcUBW+QJJrnxusW/kwE1llXdQQtYFh5flre3gSn9uHcVRxRlVtd
PEJcD9unkcmyNMHrV4mH5MNp67AdZ5KrO6MmMPg5PYQr5ybE1UQlkxVaEDLMIfat
WVdNot6rUe6E7HTeos4bYqRI1ma/Ax3by9Xf9da41IU/TfCvSY+uX/2JSrJ31f8U
Zx9xgO7YbnPp7vhXyqu+dg==
`pragma protect data_method = "aes128-cbc"
`pragma protect encoding = ( enctype = "base64" , line_length = 64 , bytes = 688 )
`pragma protect data_block
Ij4sxeYRzypcSQKWsDV4i6TeDbhU2nl3hjfQwr1KqPkZsPrTxXNXFC5H2D0rrAUd
6WDGQqEyu9obRLqowsgEMCw1Pqla8PBUJ3hycUzyiUYxvGmhP5sP/NnCA1DRZ9Y9
ya08fhTakN5V00k7AbMYGzUxz2M7iG+qpyp05fk8pYohdG3dW71b2za1CQJ7VEqc
/LxYj0eMW+QoMfwIPDdZAdKpa+Dju0oEO8+KB14EkPruq+93UyRbPlutkvsNsVDr
aMKM+mHa2i4yNgDpTZPk+7MSKC+uTcLrM7a/TQQ40p2AExumbCzSYsNd8lGe6jIh
0tcDrm+wJNyrh3eGzihXstoEwCbh/tYsxmJY8ghdWJ/xo2V7g4SHOugoWA6GGC3D
nPsMuQuJytDIErSJcPNkUZZ3Z5i7ZKx3m9kW4YOus7KdcFn21+XnDMD46rtNw/+c
b49lIMlJylLVKe0OG2KRKOO3ig/E5xnvyHt9rqYU52eHHOBAQrJ7ipvZCt7729vz
iKg5syv55Wc5og1vi7kmazU+42521T226ZodyFiQ11PZKNAQ6mMTiq27DDBTKN5z
zK+LTeejaPumeb4RsOgiPLrNTYHv96PYRzSIptGPCL8R8Rcm0ndCuo72DTKqEcxY
xFG4KEF0vhGxwHqEkZFNqDW1ATTp7s5zcZ6bXTXpFpGQnC1nOfdtwcllt/HNWHaD
9Xg4oDY2B36HlU6KeqTQBUbPb9VMNywpk9NSaVEz2MWQPv3Xh8Eg0uB4ftVZ+C9n
vfvSKO+xBTyGQgvj2QIwelMz6wDc1G4RghcxtHdi/qU64rCDvg5EOWjCSxR4O82R
Fs8c/NnWZJR1AzB8zut8bq/CKga3gzDM4DZ7qi2HMZqV44rCJOfcCfqBYl/g59LR
zZ9Boq26Vbm4yk6SnmXXIw==
`pragma protect end_protected

但是 UVM 環(huán)境部分代碼完全公開,文件包括

頂層文件為 tb.sv

結(jié)構(gòu)說明

關(guān)于 RTL 的功能設(shè)計(jì),可以翻閱原文連接中的答辯 PPT,主要功能是實(shí)現(xiàn)了輸入特征圖(1-128)*(1-128),卷積核 1-7,padding1-7,步長 1-3,以及 2*2pooling 和 Relu 的功能。整體結(jié)構(gòu)為

而整體的驗(yàn)證環(huán)境結(jié)構(gòu)如下

由于時(shí)間緊迫,技能生疏,整體環(huán)境并不完善,代碼也有欠缺,此外,也未加入寄存器模型,因此對(duì)寄存器的訪問比較繁瑣,后期會(huì)進(jìn)行改進(jìn)。

由于設(shè)計(jì)是進(jìn)行卷積計(jì)算的,所以運(yùn)行時(shí)間會(huì)比較長,checker 通過軟件算法對(duì) RTL 的卷積計(jì)算結(jié)果進(jìn)行比對(duì),所以 RTL 完成一次卷積計(jì)算后,仿真時(shí)間會(huì)停滯一段時(shí)間用于軟件的卷積計(jì)算,屬于正?,F(xiàn)象。

將 .sv 和 .svp 文件添加進(jìn)工程后,頂層模塊為 tb,編譯后在控制臺(tái)輸入 vsim -voptargs=+acc work.tb 即可開始默認(rèn)的 testcase,若要進(jìn)行其他 testcase,需要加上選項(xiàng)+UVM_TESTNAME=my_test,具體 test 名請(qǐng)查看 conv_pkg.sv

?

推薦參考資料

推薦有一定 SV 基礎(chǔ)的朋友進(jìn)行學(xué)習(xí),如果還沒有可以參考下面幾本書自學(xué)

綠皮書,主要包括 SV 的語法講解

UVM primer,UVM 入門講解,包括 OOP 基本概念

白皮書,一本 UVM 翔實(shí)的工具書,很多參賽選手的 UVM 環(huán)境就是直接參考本書例子的

紅寶書,包括從 SV 到 UVM 的講解,驗(yàn)證思想,驗(yàn)證管理等

相關(guān)推薦

電子產(chǎn)業(yè)圖譜