日常记录(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

 

posted @ 2022-01-24 20:09  大浪淘沙、  阅读(293)  评论(0编辑  收藏  举报