导读:商汤科技-南洋理工大学联合 AI 研究中心 S-Lab 与新加坡国立大学的研究者针对不平衡回归问题提出 Balanced MSE 损失函数。标签不平衡经常出现在现实世界中的视觉回归问题中,而常用的MSE损失函数在预测少见标签时往往会产生很大的误差。Balanced MSE 从统计的视角解决标签的不平衡,同时适用于一维与多维回归;具有简单、灵活的实现形式,不需要提前对标签分布进行计算也可以轻松
config_db机制是uvm中很重要的机制之一。由于验证平台的结构往往会比较复杂,其中的组件如果要进行互相通信和参数传递,则需要一种高效且稳妥的办法,这就是config_db机制的意义。  目录一、config_db机制概述(1)路径(2)set和get(3)省略get函数二、跨层次多重设置三、非直线获取四、对通配符的支持五、保证传递的正确六、调试总结 一、config_db机制概述u
  一个基本的 uvm 验证环境结构如下图所示,包含两个 agent,其中 in_agent 用于驱动 DUT ,同时将驱动数据同时传递给 reference model, out_agent 用于按照协议采集 DUT 的输出数据,并将数据传递给 scoreboard,在 scoreboard 收集到 reference model 的运算结果后,再进行比对验证。   要想实现 monito
  一个基本的 uvm 验证环境结构如下图所示,包含两个 agent,其中 in_agent 用于驱动 DUT ,同时将驱动数据同时传递给 reference model, out_agent 用于按照协议采集 DUT 的输出数据,并将数据传递给 scoreboard,在 scoreboard 收集到 reference model 的运算结果后,再进行比对验证。  要想实现 monitor 和
转载 2024-02-25 09:13:54
402阅读
文章目录前言1、uvm_event2、uvm_event_pool总结 前言 1、uvm_eventuvm_event类有两种不同的操作模式:边沿敏感和电平敏感。边沿敏感模式包括:trigger(),wait_trigger(),wait_ptrigger()和wait_ptrigger_data() 方法。不要使用reset(),is_on(),is_off(),wait_on()和w
哪个方法可以激活UVM验证平台,如何调用它?**run_test()方法(静态方法)**用来激活UVM验证平台。通常在顶层的“ initial begin…end”块中调用,并且它使用一个参数(UVM_TESTNAME)指定要运行的test case。所有程序的启动都有一个入口。像是C程序的入口是main(),普通verilog的启动是在顶层模块中的initial begin end间的代码。一般
软件测试技术就是一系列活动,这些活动是为了评估一个程序或软件系列的特性或能力,并确定其是否达到了预期结果。测试是试图验证软件是“工作的”,也就是验证软件功能执行的正确性。测试的目的也就是验证软件是否符合事先设定的要求。测试的活动是以人们的“设想”或“预期的结果”为依据。这里的“设想”或“预期的结果”是指需要定义、软件设计的结果。回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导
VM模型《UVM实战》主要介绍UVM的使用。全书详尽介绍了UVM的factory机制、sequence机制、phase机制、objection机制及寄存器模型等的使用。此外,本书还试图引导读者思考UVM为什么要引入这些机制,从而使读者知其然,更知其所以然。本书以一个完整的示例开篇,使得读者一开始就对如何使用UVM搭建验证平台有总体的概念。针对没有面向对象编程基础的用户,本书在附录中简要介绍了面向对
原创 2021-03-24 09:54:28
507阅读
比如通过DPI的方式,以c为桥梁,搭建UVM与其他仿真软件的桥梁,再比如利用python处理UVM生成的数据然后以数据表格的形式展现,再或是研究生论文里导入VIP框架(论文还没看懂,给我点时间,嘻嘻嘻)。正式开始之前,首先说下之后的文章更新思路       1. 说明我要DIY的大体UVM框架(绝对适合90%以上的大型测试场景,不行就来锤死我)&n
转载 2024-07-23 12:35:00
47阅读
1. uvm_object是UVM最基本的类,能想到的几乎所有类都继承自uvm_object,
原创 2023-07-31 17:35:58
132阅读
1.除了uvm_do 产生transaction,还可以使用uvm_create 与uvm_send 产生create 宏,直接调用new 进行例化:3.uvm_send_pri:
ii
原创 2023-07-31 17:32:10
1430阅读
1.程序运行到此处,停止仿真,进入交互模式。2.各大厂的仿真器可
原创 2023-07-31 17:28:07
277阅读
1.通过get_full_name()得到此component 的路径:2.uvm_top 的名字是
原创 2023-07-31 17:28:27
287阅读
这一部分主要介绍一些UVM的基础知识,其实《UVM实战》中已经有了足够的涉猎。所以这一章着重加注一些UVM的使用哲学探讨。 Testbench基础 UVM采用分层的、面向对象的方法进行testbench开发,允许在不同的团队成员之间进行“关注点分离”。UVM testbench中的每个组件都有特定的 ...
转载 2021-08-07 23:26:00
2536阅读
3评论
1.除了PORT 和 EXPORT外,还有第三种端口:IMP。它才是UVM 的精髓,承担UVM 中TLM的大部分代码实现。源码
原创 2023-07-31 17:27:09
422阅读
1.广度优先:先兄弟在孩子。2.深度优先:先孩子在兄弟。3.同级别兄弟按照字典序。1)build_phase 是从根到叶,connect_phase 是从叶到根。
原创 2023-07-31 17:28:17
115阅读
1.UVM 真正的树根是uvm_top(为什么get_full_name()不打印这个呢?),如下:1)uvm_top 是全局变量,也是uvm_root的实例,也是唯一的实例。2)uvm_root 派生自uvm_component,所以uvm_top 本质上也是uvm_component,它是树的根。3)uvm_tes
原创 2023-07-31 17:32:57
241阅读
1评论
引入sequence的原因:将 生成测试case的语句 从 main_phase 中独立出来,使得使用不同测试用例时,只需要修改sequence部分即可,而不用关注 UVM剩余部分。(提高剩余部分的可复用性)。引入sequence的仲裁机制的原因:一个sequencer上通过fork…join可以启动多个sequence,而多个sequence按照什么顺序启动需要一定的仲裁机制来控制,具体而言主要
题目讲的只是uvm_component  这个单独 class,不包括它的extends。1.uvm_comp
原创 2023-07-31 17:35:42
207阅读
UVM中的通信TLM0 概述:TLM,事务级建模,transaction level是相对于DUT中各个模块之间的信号级别的通信来说的。  仅仅组件可以例化端口,transaction不能例化端口,因为transaction是继承与object.(1)put/get/peek;transport/master/slave(前三种是方法,还对应着try和can)(2)port/exp
  • 1
  • 2
  • 3
  • 4
  • 5