ICode9

精准搜索请尝试: 精确搜索
  • UVM入门与进阶学习笔记12——TLM2通信(2)2022-01-24 22:33:26

    目录 同步通信元件uvm_eventuvm_barrieruvm_callback 同步通信元件 SV用来做线程同步的几种元件,它们分别是semaphore、event、mailbox。在UVM中,需要同步线程不再只局限于同一个对象中,还需要解决不同组件之间的线程同步问题。一旦线程同步要求发生在不同组件,这就要求组

  • UVM入门与进阶学习笔11——TLM通信(3)2022-01-24 16:33:22

    目录 通信管道TLM FIFOAnalysis PortAnalysis TLM FIFORequest & Response通信管道 通信管道 TLM通信的实现方式的共同点在于都是端对端的,同时target一端需实现传输方法,例如put()或者get()。 对于monitor、coverage collector等组件在传输数据时,会存在一端到多端的传输

  • 日常记录(46)寄存器模型、工厂、回调2022-01-23 19:01:48

    寄存器模型 前门访问 通过协议进行数据正规访问 定义seq class reg_access_sequence extends uvm_sequence#(bus_transaction); string tID = get_type_name(); bit[15:0] addr; bit[15:0] rdata; bit[15:0] wdata; bit is_wr; `uvm_object_utils(reg_

  • UVM-sequence,sequencer,driver2022-01-23 14:58:40

    package pack1; //pack1头 import uvm_pkg::*; //+UVM `include "uvm_macros.svh"//+工厂 class item extends uvm_sequence_item; rand int data_auto; rand int data_noauto; //声明两个data,一个加入自动化域,一个 //不加入 `uvm_object_utils_begin

  • 【uvm】uvm_event同步2022-01-21 19:02:44

    原文 篇10-uvm通信之uvm_event & uvm_event_pool & uvm_event_callback 参考资料 (1) UVM通信篇之六:同步通信元件(上) - 路科验证的日志 - EETOP 创芯网论坛 (原名:电子顶级开发网) - 1.同步的方法 (1) 在sv中,用于同步的方法有event, semaphore和mailbox; (2) 在UVM中,用于同步

  • uvm_common_phase.svh2022-01-12 12:04:21

    run_phase extends uvm_task_phase 除了uvm_build_phase和uvm_final_phase的执行顺序是自上而下的(uvm_topdown_phase),剩下的所有不耗费时间的phase都是自下而上的(uvm_bottomup_phase)。 get_name()的返回值是除掉uvm__phase的name. exec_func(uvm_component,uvm_phase

  • uvm_topdown_phase.svh2022-01-12 12:03:35

    1、traverse 三个参数 case(state) UVM_PHASE_STARTED: uvm_component,phase_started()是callback函数 UVM_PHASE_EXCUTING: 标准用法中都可以直接进入分支 line75用于判断是不是手动调用了build_phase,如果不是m_phasing_active就不等于0 line76-77判断是不是需要执行新的phase,

  • uvm_task_phase.svh2022-01-12 12:01:53

    构造函数new uvm_phase的类型是UVM_PHASE_IMP 其实跟uvm_bottomup_phase.svh长的差不多。 fork......join_none从上到下的并行进程的挂起。

  • UVM实战 卷I学习笔记11——UVM中的factory机制(2)2022-01-10 23:04:01

    目录 *复杂的重载*factory机制的调试 常用的重载*重载transaction*重载sequence*重载component重载driver以实现所有的测试用例 *复杂的重载 前面的例子讲述了简单的重载功能,即只使用一种类型重载另外一种类型。事实上UVM支持连续的重载。依然以bird与parrot的例子讲述

  • 日常记录(35)UVM的phase2022-01-09 15:33:29

    公说公有理,婆说婆有理。我就直接用。   用build phase创建实例,用connect phase建立通信,然后经过两个phase后,进入仿真时间域中。run phase与另外的12个phase 并行。12个phase主要是reset、config、main、shutdown。 处理完以后,退出仿真时间域,过另外4个phase的处理后结束。   注意

  • phase机制-UVM2022-01-08 18:34:11

    文章目录 一、phase机制1.1 为什么要使用phase机制?1.2 phase是如何运行的?1.3 phase的调试1.4 如何使用super.xxx_phase的执行1.4.1 在component中使用super.xxx_phase的执行1.4.2 在object中使用super.xxx_phase的执行 一、phase机制 UVM中的phase机制是将仿真阶段层

  • build_phase()与build()的关系2022-01-04 11:05:03

    先来给结论,如果build_phase继承自uvm_component的话,那么build_phase里面会调用build函数。 下面我们通过源码和例子来进行分析。 build被调用了。 尝试注释掉super.build_phase,你会发现build就没有被调用。 super.build_phase里面到底做了什么呢? build_phase调用了build(

  • uvm_component---super.xxx_phase2022-01-04 11:03:54

    对于build_phase来说,uvm_component对其做的最重要的事情就是自动获取通过config_db::set设置的参数。如果要关掉这个功能,可以在自己的build_phase中不调用super.build_phase。 参考链接:https://www.cnblogs.com/xuqing125/p/15761692.html connect/start_of_simulation等其实都没

  • UVM的树形结构是怎么创建的?2022-01-04 11:03:04

    UVM树通过uvm_component来实现树形结构。所有的UVM树看的结点都是一个uvm_component。每一个uvm_component都有一个特点:他们在new的时候需要指定一个类型为uvm_component,名字为parent的变量。 uvm_component有phase的概念。 对于每一个uvm_component,它都有一个m_child[]用来保存

  • UVM1-基础知识篇2022-01-02 15:34:04

    //------------UVM基础知识篇------------ package pack1; //pack1头 import uvm_pkg::*; //+UVM `include "uvm_macros.svh"//+工厂 //目标类与组件类,目标类可以游离的存在,组件类必须挂在某个位置,或许是 //root或许是其他组件 //目标类 class obj1 extends uvm_

  • 1 工厂机制2021-12-27 15:00:20

    文章目录 1 工厂机制1.1 uvm_component & uvm_object1.2 uvm_coreservice_t类1.3 注册机制1.4 覆盖方法1.4.1 类型覆盖 & 实例覆盖1.4.2 覆盖实例1.4.3 确保正确覆盖的代码要求 1 工厂机制 UVM工厂的存在是为了更方便地替换验证环境中的示例或注册了的类型。UVM验证环

  • UVM-工厂机制(factory)2021-12-12 21:30:58

    文章目录 1.工厂模式概述2.创建(create)2.1 定义->注册->构建 缺一不可2.2 什么是宏 3.覆盖方法 1.工厂模式概述 工厂模式的主要解决的问题是,将原来分布在各个地方的对象创建过程单独抽离出来,交给工厂类负责创建。其他地方想要使用对象直接找工厂(即调用工厂的方法)获取对

  • UVM基础知识——各组件2021-12-11 20:03:44

    一、UVM框架 1. UVM是一个以System Verilog类库为主体的验证平台开发框架。也就是基于SV语言写的用于验证的代码库和对应的验证规范。 2. UVM验证环境整体结构 框架 (验证平台要模拟DUT的各种真实使用情况,就要给DUT施加各种激励,激励的功能则是由Driver实现的;  验证平台要根据DUT

  • UVM SIM Option 汇总2021-12-11 11:35:23

    // Variable: +uvm_set_severity // // ~+uvm_set_severity=<comp>,<id>,<current severity>,<new severity>~ provides the // equivalent of the various uvm_report_object's set_report_*_severity_override APIs. The // spec

  • UVM——一个简单的入门testbench2021-12-08 22:05:02

    先写好一个top.sv 查看代码 // 导入VCS或者Modelsim自带的UVM库和宏 `include "uvm_macros.svh" import uvm_pkg::*; // 下面这些sv都是接下来要写的 `include "driver.sv" `include "monitor.sv" `include "agent.sv" `include "env.sv" `include "

  • (27)UVM 寄存器模型的预测(prediction)2021-11-24 09:31:24

    UVM 寄存器模型的预测(prediction) 文章目录 UVM 寄存器模型的预测(prediction)prediction的分类自动预测(auto prediction)显示预测(explicit prediction) 关注作者 mirror、desired和actual value 我们在应用寄存器模型的时候,除了利用它的寄存器信息,也会利用它来跟踪

  • (25)UVM 寄存器模型集成2021-11-23 10:02:55

    UVM 寄存器模型集成 文章目录 UVM 寄存器模型集成总线UVC实现代码MCDF寄存器设计代码param_def.vreg.v 寄存器模型集成adapter集成 关注作者 MCDF访问寄存器的总线接口时序较为简单。控制寄存器接口首先需要在每一个时钟解析cmd。当cmd为写指令时,即需要把数据cmd_data_in

  • (23)UVM 层次化sequence构建方式(layering sequence)2021-11-21 09:03:18

    UVM 层次化sequence构建方式(layering sequence) 文章目录 UVM 层次化sequence构建方式(layering sequence)layering sequence介绍layering sequence示例layering sequence解析 关注作者 layering sequence介绍 如果我们在构建更加复杂的协议总线传输,例如PCIe,USB3.0等,那

  • (7)UVM objection机制2021-11-20 10:31:13

    (7)UVM objection机制 objection机制控制objection的最佳选择 UVM-1.1之后,结束仿真的机制有且只有一种,那就是利用objection挂起机制来控制仿真结束。 objection机制 参与到objection机制中的参与组件,可以独立的各自挂起objection,来防止run_phase退出,但是只有这些组件都落

  • (21)UVM 虚拟类序列(virtual sequence)2021-11-20 09:03:52

    UVM 虚拟类序列(virtual sequence) 文章目录 UVM 虚拟类序列(virtual sequence)virtual sequence介绍virtual存在对于sequence和sequencer的改变virtual sequence示例virtual sequence示例解析virtual sequence建议 关注作者 在上一节中,已经讲过了层次类序列(hierarchica

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

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

ICode9版权所有