验证实战知识点--(1)

1. reg_model.get_reg_by_name()

如上所示,`reg_model.get_reg_by_name()` 是一个方法,用于根据寄存器的名称获取对寄存器对象的引用。如果找到了寄存器,我们可以对它执行读写操作;如果没有找到,我们可以记录一个错误。

2.$isunknown

在 SystemVerilog 中,$isunknown() 是一个系统任务,用于检查给定的值是否包含未知位(unknown bits),即逻辑 'x' 或 'z'。这个系统任务通常用于验证和测试环境中,以确保信号或变量具有确定的值,而不是未知或未定义的状态

3.covergroup uart_packet_covergroup with function sample(uart_packet uart_tr)

名为 uart_packet_covergroup 的 covergroup 的示例,它与 uart_packet 数据结构关联,并且包含一个名为 sample 的函数,该函数用于在仿真中“采样”或记录 uart_packet 的实例

4.订阅者uvm_subscriber

uvm_subscriber 是一个虚拟类,因为它包含纯虚方法 write。

派生自 uvm_subscriber 的子类必须实现 write 方法来处理接收到的数据。

analysis_export (本质上是uvm_analysis_imp)用于实现数据的输入,而订阅者本身实现数据的接收和处理

5.如何将monitor检测的数据发给uart_packet_coverage?

uart_i_agent.mon.analysis_port.connect(uart_pkt_cov.analysis_export);

6.设置UVM_ERROR到达数量退出仿真

使用了uvm_report_serve组件,使用get_severity_count获取error的数量,通过判断来打印信息但是不会退出仿真

uvm_report_server server = uvm_report_server::get_report_server();

server.set_max_quit_count(5); // 遇到5个错误后仿真退出

但是这样就没有打印信息了

uvm_report_server server = uvm_report_server::get_report_server();

server.stop_on_error(1); // 设置在遇到错误时停止仿真

使用 uvm_root::get().set_report_max_quit_count(100); 这种方法将影响整个仿真环境, 适用于所有测试和组件。

uvm_report_server::set_report_max_quit_count(100);影响的是特定的test

7.在run-time phase中可以设置set_drain_time,来确定阶段完成后的等待时间

8.run-time phase中的task phase是顺序执行的,但是run-time phase和run_phase是并行的

9.uvm_cmdline_processor 解析和处理仿真时从命令行传递给仿真器的参数

uvm_cmdline_processor 是一个单例,可以通过 uvm_cmdline_processor::get_inst() 方法获取其唯一实例。

它提供了方法来检索命令行参数的值,例如 get_arg_value(),该方法可以根据参数名获取其值。

atoi是一个常用的函数,用于将字符串(string)转换为整数(integer)

10.get_type()和type_id::get()的区别

get_type()type_id::get() 都可以用于配置数据库的设置,但是 type_id::get() 由于其轻量级的特性,可能在某些情况下性能更优。然而,UVM 社区通常推荐使用 get_type() 方法,因为它更加直观和易于理解。

uvm_config_db#(uvm_object_wrapper)::set(this,
”env.uart_i_agent.seqr.main_phase”,”default_sequence”,
uart_packet_stop_bit_0_sequence:type_id::get())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值