日常記錄(47)回顧
uvm的列印資訊有info、warning、error、fatal,只有info有資訊等級。
uvm的phase有build、connect、end_of_eleboration、start_of_simulation、run、extract、check、report。
只有build自頂向下,其它自底向上。run的phase在初始化為自底向上,但是執行模擬過程為並行。
通訊TLM有單向、雙向,阻塞、非阻塞等。使用port和export的主動方式,使用port和export。
被動方式使用analysis port的廣播方式(非阻塞),常用在監視器、計分板、覆蓋率等。使用write。
在uvm中獲取命令列指定的模擬引數,使用uvm_cmdline_processor類。
uvm的基類樹。
object類中包括copy、clone、print等方法,report_object中有uvm_report_*的方法,
component有create、set_config、build等方法。sequence_item也存在對應的方法。
verdi配合vcs操作,看波形fsdb檔案。
http://blog.sina.com.cn/s/blog_13f7886010102xqlu.html
使用vcs加入引數:-kdb -lca
原始的verdi編譯與開啟波形。
verdi -sv +v2k -f filelist.f
verdi中使用以下,然後load指定的fsdb檔案,然後開啟到dut對應的程式碼,使用ctrl+w將游標選中的訊號加入到波形中顯示。
verdi操作。https://blog.csdn.net/eyeloveuv/article/details/79287668
verdi -elab simv.daidir/kdb
vpd檔案生成與開啟。
在頂層中新增以下語句
initial begin $vcdpluson(); end
然後使用dve -vpd vcdplus.vpd開啟檔案,觀察波形。
約束命名。
針對必須的約束,constraint_name_valid。針對可能需要修改的約束constraint_name_rule,用於新增illegal形式。
uvm提供了do_*函式,用於使用者自行定義資料處理。
oop的思想在seq中:
seq中定義通用item,針對某專案繼承後使用專用的trans,然後上層是某模組的trans(usb),然後是dut等。
對default的程式碼覆蓋率跳過(waive),要求程式碼覆蓋率100%。
功能覆蓋率100%。
questasim
Mentor公司的ModelSim是業界優秀的HDL語言模擬軟體,
http://xilinx.eetrend.com/d6-xilinx/article/2010-07/878.html
本文來自部落格園,作者:大浪淘沙、,轉載請註明原文連結:https://www.cnblogs.com/bai2022/p/15840763.html