日常记录(47)回顾通信、uvm的基类树、verdi \vpd文件
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
Le vent se lève! . . . il faut tenter de vivre!
Le vent se lève! . . . il faut tenter de vivre!