UVM学习
文章平均质量分 71
南柯一一梦
这个作者很懒,什么都没留下…
展开
-
UVM 入门实验5
1. 寄存器模型的完善和嵌入定义uvm_reg和uvm_reg_block的以及mcdf_rgm寄存器模块。 // Dedicated register description [write-read reg] with uvm_reg type class ctrl_reg extends uvm_reg; `uvm_object_utils(ctrl_reg) uvm_reg_field reserved; rand uvm_reg_field pkt_len;转载 2022-05-11 13:40:45 · 522 阅读 · 0 评论 -
UVM 入门实验 4
在UVM入门实验3中,实现了monitor、reference model与checker之间的通信时通过TLM端口或者TLM FIFO来完成,相较于之前的mainbox句柄连接,更加容易定制,也使得组件的独立性提高。本次实验需要实现:将产生transaction并且发送至driver的generator组件,拆分为sequence与sequencer。在拆分的基础上,实现底层的squence。完成sequencer与driver的连接和通信工作。构建顶层的virtual sequencer。转载 2022-05-10 14:50:01 · 523 阅读 · 0 评论 -
UVM 入门实验3
1.TLM单向通信和多向通信在之前的monitor到checker的通信,以及checker与reference model之间的通信,都是通过mailbox以及在上层进行句柄传递实现的。这次实验则使用TLM端口进行通信,做逐步的通信元素和方法的替换。TLM通信结构框图将monitor中用来与checker中的mailbox通信的mon_mb句柄替换为对应的uvm_blocking_put_port类型。uvm_blocking_put_port #(mon_data_t) mon_bp_port转载 2022-05-09 11:10:11 · 1365 阅读 · 0 评论 -
UVM入门 实验2
1.验证组件和层次构建首先将各个package中SV组件替换为UVM组件实现组件对应原则:SV的transaction类对应为uvm_sequence_itemSV的driver类对应为uvm_driverSV的generator类对应为uvm_sequence+uvm_sequencerSV的monitor类对应为uvm_monitorSV的agent类对应为uvm_agentrSV的checker类对应为uvm_scoreboardSV的reference_转载 2022-05-08 14:17:00 · 572 阅读 · 0 评论 -
UVM入门实验1
1. 工厂得注册、创建和覆盖机制UVM中只有两种用例注册得宏`uvm_component_utils(T)`uvm_object_utils(T)编译仿真factory_mechanism.sv文件object_create类 class object_create extends top; trans t1, t2, t3, t4; `uvm_component_utils(object_create) function new(string name = "obj原创 2022-05-07 10:51:37 · 1809 阅读 · 1 评论 -
UVM 入门和进阶实验 0
UVM 入门和进阶实验 0本实验主要完成UVM的基本概念和仿真操作:懂得如何编译UVM代码理解SV和UVM之间的关系了解UVM验证顶层盒子与SV验证顶层盒子之间的联系掌握启动UVM验证的必要步骤编译编译文件uvm_compile.sv,待正常编译正常结束。在work库中仿真模块uvm_compile,在命令窗口敲入“run -all”,可以观察到仿真输出语句:在验证顶层都将需要这两句话: import uvm_pkg::*; `include "uvm_macros.svh"原创 2022-05-02 14:51:19 · 682 阅读 · 0 评论