这个函数有两个参数,第二个参数为设置传递的实参tar_sqr,注意这里会调用set_sequencer函数,这个函数同样在uvm_sequence_item中: 这里会将sequencer赋值给m_sequencer,m_sequencer其实是uvm_sequence_item中的一个uvm_sequencer_base的类声明的实例,为protected类型: 看到这里,其实在sequence中,会有一个叫uvm_sequencer_...
[my_driver]:方括号中显示的信息即调用uvm_info宏时传递的第一个参数。 data is drived:表明宏最终打印的信息。 可见,uvm_info宏非常强大,它包含了打印信息的物理文件来源、逻辑结点信息(在UVM树中的路径索引)、打印时间、对信息的分类组织及打印的信息。读者在搭建验证平台时应该尽量使用uvm_info宏取代display语句。
driver中还出现了uvm_info宏(除此之外还有uvm_error宏和uvm_warning宏),它有三个参数,第一个参数是字符串,用于打印的信息归类;第二个参数也是字符串,是具体需要打印的信息;第三个参数是冗余级别,表示这个命令的紧急程度。针对第三点,在验证平台中,某些信息是非常关键的,这样的信息可以设置为UVM_LOW,而有些信息...
uvm_info是一个带参数的宏,包含3个部分:ID(标示信息)、MSG(调试信息)、啰嗦程度。ID并非唯一,可为多条语句指定相同ID。MSG为打印信息,可直接指定或通过$sformat产生格式化字符串。啰嗦程度通过枚举类型指定,决定信息是否被屏蔽。通过uvm_report_enabled函数计算信息的啰嗦程度与系统容忍等级进行比较...
《UVM实战》笔记part1(第一、二章+常见缩写) 技术标签:IC验证小白之路 目录 一、代码常用缩写: 二、简单的UVM平台 验证平台四大部件: driver: scoreboard记分板: monitor: reference model参考模型: ·所有派生自uvm_driver的类的new函数有两个参数: main_phase: uvm_info宏: 工厂机制: run_test: objection机制...
config_db机制用于在UVM验证平台间传递参数。他们通常是成对出现的。set函数时寄信,get函数是收信。 如在某个测试用例的build_phase中可以使用如下方式寄信: uvm_config_db#(int)::set(this, "env.i_agt.drv" "pre_num", 100); 其中第一个参数和第二个参数联合起来组成目标路径,与此路径符合的目标才能收...
还可以在命令行中设置退出阈值:<sim command> +UVM_MAX_QUIT_COUNT=6,NO;第二个参数NO表示此值是不可以被后面的设置语句重载 可以通过设置set_report_severity_action函数来把UVM_WARNING加入计数目标:drv.set_report_severity_action(UVM_WARNING, UVM_DISPLAY|UVM_COUNT); ...
针对这种不固定的设置参数的方式,UVM提供了wait_modified任务。当它检测当第三个参数的值被更新过后,它就返回,否则一直等待在那里: uvm_config_db#(bit)::wait_modified(this, "", "cmp_en"); (1)在driver中, rsp = new("rsp"); rsp.set_id_info(req); seq_item_port.put_response(rsp); seq_...
在build_phase中出现的uvm_fatal宏,这个宏和uvm_info的功能是差不多的,都是打印一些信息,它们的区别在于:uvm_fatal在打印第二个参数所示的信息后,会直接调用verilog 的finish函数来终止仿真。uvm_fatal的出现,表示验证平台出现了重大问题而无法继续下去,必须停止仿真并做相应的检查,只要是uvm_fatal打印的信息,就一定...