当前位置: 首页 > news >正文

验证实战知识点--(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())


http://www.mrgr.cn/news/1093.html

相关文章:

  • Unity与UE,哪种游戏引擎适合你?
  • Midjourney中文版教程:参数详解
  • 【多线程开发 6】spring中的注解/API的线程问题
  • ACL访问控制列表
  • 使用 lateral view explode(col1)后行数变少了,bug排查
  • xss之DOM破坏
  • 产线一直在用的 RabbitMQ 搭建教程(含负载均衡配置,验证脚本,监控案例),偷偷抄出来的,建议收藏备用
  • CSS image-set()函数与多倍图设置
  • 【Linux】系列入门摘抄笔记-8-权限管理chmod/chown
  • 初识Linux · 基本指令(2)
  • Shell参考 - Linux Shell 训练营
  • Servlet---axios框架 ▎路由守卫
  • k8s 进阶实战笔记 | Ingress-traefik(一)
  • 虚拟机可以玩Steam游戏吗?虚拟机怎么玩Steam Windows游戏 PD19虚拟机玩Steam
  • 望繁信科技荣膺上海市浦东新区博士后创新实践基地称号
  • Day42 | 739. 每日温度 496.下一个更大元素 I 503.下一个更大元素II
  • Docker-制作镜像
  • 延迟加载JS有哪些方式
  • Python | Leetcode Python题解之第350题两个数组的交集II
  • C# 中 Grpc服务端调用客户端方法