ICode9

精准搜索请尝试: 精确搜索
  • (19)UVM 史上最强sequence相关宏操作总结2021-11-19 09:06:31

    史上最强sequence相关宏操作总结 文章目录 史上最强sequence相关宏操作总结一、序列宏二、序列宏的实例三、为什么会锁住sqr?四、sequencer的仲裁机制五、sequencer的锁定机制六、sequencer的锁定示例七、sequencer的锁定示例解析 关注作者 一、序列宏 下面一段代码是对st

  • UVM(六):验证环境的组成:UVM组件家族——uvm_component2021-11-18 21:03:44

    1.概述         UVM的组建类(uvm_component)是验证环境的骨架,用于验证环境的结构的创建。主要包括uvm_driver、uvm_monitor、uvm_sequencer、uvm_agent、uvm_scoreboard、uvm_env、uvm_test等。         在对组件类进行工厂机制的注册时,需使用宏`uvm_component_utils(

  • 篇7-UVM ERROR达到一定数量时结束仿真2021-11-18 15:04:54

    1.UVM_ERROR达到一定数量结束仿真 1.1相关函数 (1) set_report_max_quit_count (2) set_max_quit_count   (3) get_max_quit_count 1.2命令行设置 其中,上面的”NO”表示UVM_MAX_QUIT_COUNT的设置值6不能被后面的设置语句重载;  

  • (4)UVM TLM2.02021-11-18 10:01:26

    UVM TLM2.0 概述接口实现传送数据时间标记示例 概述 TLM是一种为了构建更高级抽象模型的传输方式。虽然SV语言本身没有原生的TLM传输方式,但是TLM在UVM很好地集成进来,并且在组件传输中得到了充分运用。 之前的UVM各个组件之间的通信是通过TLM1.0方式实现的,而伴随着SystemC

  • (17)UVM sequencer和driver2021-11-18 09:31:07

    UVM sequencer和driver 文章目录 UVM sequencer和driver一、概述二、端口和方法三、事务传输实例四、事务传输过程分析五、通信时序六、握手建议 关注作者 一、概述 driver同sequencer之间的TLM通信采取了get模式,即由driver发起请求,从sequencer一端获得item,再由sequenc

  • 篇3-testcase pass的判断2021-11-17 11:33:47

    资料来源: (1) 公众号-杰瑞IC验证 1.统计UVM_FATAL与UVM_ERROR数目 (1) 在uvm_test或env的final_phase里面,检查UVM_ERROR和UVM_FATAL的个数,如果不为0,打印CASE FAIL;否则,打印CASE PASS; (2) 示例中,之所以采用$display,而不是uvm_fatal和uvm_info,是因为二者可能会被屏蔽掉(比

  • 篇5-uvm_component/uvm_sequence_item常用函数解读2021-11-16 17:32:13

    资料来源: (1)公众号-杰瑞IC验证; 1.uvm_component相关函数 1.1.uvm_component中get_name()系列函数 (1) get_name()会打印出”u_jerry_so_cool”(实例名); (2) get_full_name()会打印出”uvm_test_top.u_jerry_env.u_jerry_so_cool”(路径名字); (3) get_type_name()会打印出

  • 篇2-uvm_event & uvm_event_pool2021-11-16 15:34:58

    1.同步的方法 (1) 在sv中,用于同步的方法有event, semaphore和mailbox; (2) 在UVM中,用于同步的方法为uvm_event; (3) uvm_event不仅能实现不同组间进程间同步的功能,还能像TLM通信一样传递数据,并且作用范围更广(TLM通信只能局限于uvm_component之间,而uvm_event不限于此); 2

  • (4)UVM TLM通信之端口的互联2021-11-16 13:05:31

    UVM TLM通信之端口的互联 PORT与EXPORT的连接PORT和IMPORT的连接EXPORT和IMP的连接PORT和PORT的连接EXPORT和EXPORT的连接 PORT与EXPORT的连接 如图所示,ABCD四个端口, 要在A和B之间、C和D之间通信。为了实现这个目标,必须要在A和B之间、C和D之间建立一种连接关系,否则的话,A

  • UVM实战 卷I学习笔记9——UVM中的sequence(6)2021-11-16 11:03:00

    目录 在sequence中使用config_db*在sequence中获取参数*在sequence中设置参数*wait_modified的使用response的使用*put_response与get_responseresponse的数量问题*response handler与另类的response*rsp与req类型不同 在sequence中使用config_db *在sequence中获取参

  • 篇?-uvm_test2021-11-15 19:34:45

    1. 测试用例的作用 base_test所做的事情因公司而异,常见的使用如下: (1) 实例化top-level env; (2) 通过config_db设置验证平台中某些参数的值,或使用factory override机制配置环境; (3) 通过调用UVM sequences施加激励; (4) 在report_phase根据UVM_ERROR的数量打印不同信息;

  • 篇1-sv/uvm命令行参数2021-11-15 17:31:49

    资料来源: (1) 公众号-芯片学堂; 1.sv系统函数 (1) 通过命令行来传递参数在实际项目中算是常规操作,比如通过命令行参数来指定Testbench的配置信息等等。 (2) 在SystemVerilog LRM规范里,命令行提供的仿真参数要求使用加号(+)作为引导,这部分参数可以被验证环境中的SV代码通过系统函数

  • 篇5-uvm_config_db与uvm_resource_db的区别2021-11-15 16:31:14

    1. uvm_config_db与uvm_resource_db的简单对比 (1) uvm_config_db是从uvm_resource_db派生而来的,它对uvm_resource_db的一些功能进行了扩展,这种扩展主要体现在对资源的写入和读取上. (1.1) 在资源的写入操作上,它重载了uvm_resource_db的set函数; (1.2) 在资源的读取操作上,

  • 篇1-【未完成】config_db2021-11-14 20:34:38

    (1) uvm_cofig_db提供的是对uvm_resource_base和uvm_resource#(T)(派生于uvm_resource_base)这两个类里的内容的一些整体操作; (2) uvm_resource的作用是对uvm_resource_pool进行操作; (3) uvm_resource_pool里面是两个放资源的联合数组; 1. 作用,优点及由来 (1) UVM中用于在不

  • 篇?-uvm_factory2021-11-13 22:33:41

    资料来源: (1)公众号-芯片学堂; 1.uvm_factory主要函数 1.1函数简介 (1)uvm_factory中定义了一系列纯虚函数,主要包括以下几种功能:重载,创建,查找,调试等; (2)uvm_factory的函数根据参数可以分为基于名字(name-based)和基于类型(type-based)两类; 每一种相同的功能都有两种不同的

  • (6)UVM phase机制2021-11-10 10:59:20

    phase机制 文章目录 phase机制一、前言二、执行机制三、 phase例子四、十二个分支phase五、UVM编译和运行顺序六、UVM仿真开始七、UVM仿真结束 关注作者 一、前言 SV的验证环境构建中,我们可以发现,传统的硬件设计模型在仿真开始前,已经完成例化和连接了;而SV的软件部分对象

  • 【转】uvm component间进程同步2021-11-06 14:32:35

    原文链接:http://blog.eetop.cn/blog-1561828-5940103.html   在之前SV的章节中,我们为大家介绍了SV中用来做线程间同步的几种方法,它们分别是semaphore、event和mailbox。然而在UVM中,同步的不再只局限于同一个对象中的各个线程,而是还有各个组件之间的同步问题。一旦发生同步的要求

  • UVM IMP拓展优化--支持数组端口2021-11-02 15:03:14

    在《UVM实践》这本书中有提到,当我们使用IMP来实现端口数组的TLM通信时,会写很多冗长的代码。比如,有16个相似的端口要和scoreboard中的相应端口通信时,就必须在scoreboard中声明16个IMP端口,而且还要写16个write_xxx函数。如下: `uvm_analysis_imp_decl(_model_0) `uvm_analysis_imp_d

  • 篇2-factory机制创建实例2021-10-31 15:33:54

    1.1. class_name::type_id::create(name, parent) (1) factory机制下独特的实例化方法;   1.2. create_object_by_name function uvm_object uvm_factory::create_object_by_name(string requested_type_name, string parent_inst_path=””, string name=””); 1.3. crea

  • 篇1-factory机制的功能,本质以及使用2021-10-31 15:32:57

    1.factory机制的功能 factory机制的典型功能是根据类名创建类的实例和重载. 2.factory机制的本质 factory的本质:重载new函数; 3.factory机制的使用 在定义一个类时,需要使用uvm_component_utils/uvm_object_utils等宏进行类的注册,才能使用factory机制的功能;

  • UVM中sequence的两种启动方式2021-10-30 19:34:16

    第一种: 当完成一个sequence的定义后,可以使用start任务将其启动: task my_env::main_phase(uvm_phase phase); my_sequence seq; // phase.raise_objection(this); seq = my_sequence::type_id::create("seq"); //或者 seq = new("seq");

  • uvm中利用sequence产生transaction的各种方法2021-10-30 19:02:27

    每一个sequence都应该派生自uvm_sequence,并且在定义时指定要产生的transaction。 每一个sequence都有一个body任务,当一个sequence启动之后,会自动执行body中的代码。 第一种:使用宏uvm_do: class case0_sequence extends uvm_sequence #(my_transaction); `uvm_object_util

  • UVM-12021-10-26 15:58:12

    文章目录 1.验证方法学概述1.1验证情况概述1.2 SV1.3 UVM 2 类库地图2.1类库地图概述2.2 UVM核心类(10个)2.3 UVM类库地图 3 工厂机制修改日志 1.验证方法学概述 1.1验证情况概述 验证结构的复用和代码的复用很难;原有HDL缺乏随机约束和功能覆盖率;EDA公司开发出平台限定性

  • UVM寄存器模型知识梳理-(2)2021-10-20 12:30:51

    目录 三.寄存器常规方法 1.mirror/desired/actual value 2.prediction分类 3.uvm_reg的访问方法 4.内建sequence 四.寄存器应用场景 1.概述 2.寄存器检查 3.覆盖率相关 三.寄存器常规方法 1.mirror/desired/actual value 刚开始一般会进行复位,复位后mv/dv/av三个值相等,而后r

  • 【VCS版】【mentor公司的例子】基于UVM的UART验证环境2021-10-10 18:00:23

    之前偶然在群里看到有人分享了Mentor Graphics提供的一个UART的UVM验证环境代码,包含了UVM的基本使用以及进阶的UVM寄存器模型。这里也分享给大家。 文件说明 agents/apb_agent - APB agent used in the UVM testbench agents/uart_agent - UART agent user in the UVM testbench a

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有