UVM/SystemVerilog
文章平均质量分 55
UVM/SystemVerilog
搞IC的那些年
数字IC领域非知名作者
展开
-
【SVA】SystemVerilog Assertion语法速查
是同一个周期开始检查,但不一定同一个周期结束检查。需要左右至少有一个条件满足。与and相同是与逻辑,是同一个周期开始检查,也是同一个周期结束检查。and是同一个周期开始检查,但不一定同一个周期结束检查。property和sequence内部可以创建局部变量。注意,这里的延迟和仿真里加的#有一点区别。if和蕴含操作符是一样的。原创 2022-11-28 23:54:17 · 1413 阅读 · 0 评论 -
【UVM】如何在sequence里访问component或interface
UVM小技巧原创 2022-04-23 10:01:38 · 2372 阅读 · 5 评论 -
【UVM】宏替换生成test与default_sequence
TEST宏软件包仿真module结果TEST宏// ``作用为分割两个单词// (这个操作不会引入空格)(重点!宏替换是按照单词索引,空格// 和``都可以分割单词)// `"特殊的双引号,使用特殊的双引号,引号内的东西也会被宏替换掉// 如果是普通的双引号,双引号里面有关宏的单词不会被替换// 注意:特殊的双引号也是双引号,其表现出来的就是双引号// `\代表普通的斜线,因为斜线在宏里默认代表分隔符。这个是使用斜线的本身义 `define Generat.原创 2022-04-04 14:31:00 · 675 阅读 · 0 评论 -
【SystemVerilog】virtual task 与 向下类型转换
virtual taskvirtual function/task:Systerm Verilog 中允许父类句柄指向子类对象(向上类型转换),那么子类相对父类扩展出来的方法,对父类句柄是不可见的。假设子类和父类中都定义了同名的方法为 prints那么 使用指向子类对象的父类句柄调用该prints方法,调用的实质是父类的prints方法请看下例:module test;class dad; task prints; $display("IM DAD!"); endtaskend原创 2022-03-13 19:11:53 · 2205 阅读 · 0 评论 -
【UVM】virtual sequencer 与 virtual sequence (含可运行示例代码)
m_sequencer 与 p_sequencerm_sequencer是uvm_sequencer类型的句柄,是每个sequence中自带的属性一旦sequence被挂载到某个sequencer,那么m_sequencer就会指向这个sequencer原创 2022-01-29 23:45:04 · 1032 阅读 · 2 评论 -
UVM-sequencer的仲裁与锁定传输
package pack1; //pack1头 import uvm_pkg::*; //+UVM `include "uvm_macros.svh"//+工厂 class item extends uvm_sequence_item; rand int data_auto; `uvm_object_utils_begin(item) `uvm_field_int(data_auto,UVM_ALL_ON) `uvm_object_utils_end原创 2022-01-29 10:44:04 · 1307 阅读 · 0 评论 -
UVM-使用do系类宏发送item,sequence
> 将上一篇中,使用start方法发送item/sequence的过程,封装成了uvm_do系列宏。上一篇链接:[UVM-使用start发送item,sequence](https://blog.csdn.net/helloworld573/article/details/122651582?spm=1001.2014.3001.5502)原创 2022-01-28 12:03:26 · 906 阅读 · 0 评论 -
UVM-使用start发送item,sequence
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(item) `uvm_field原创 2022-01-23 14:52:30 · 1960 阅读 · 0 评论 -
UVM-零散知识
1、打印层次信息在test中使用this.print();可在log中打印层次信息2、SV中调用c语言函数c文件:#include<stdio.h>原创 2022-01-16 09:22:46 · 397 阅读 · 0 评论 -
UVM-TLM1.0
单向数据通信A port blocking put to B impA port blocking get to B impTLMFIFO: A port blocking put, B port blocking get单向数据通信A port blocking put to B imp//TLM -portput//组件A通过TLM,向组件B,put一个object//方式 port ->export -> imp//TLM也支持port连port,export连export,.原创 2022-01-13 07:33:50 · 574 阅读 · 0 评论 -
UVM-类覆盖、Configdb
//------------UVM基础知识篇------------package pack1; //pack1头 import uvm_pkg::*; //+UVM `include "uvm_macros.svh"//+工厂 //目标类与组件类,目标类可以游离的存在,组件类必须挂在某个位置,或许是 //root或许是其他组件 //目标类 class obj1 extends uvm_object; //顺序1:属性 bit [7:0] data0 = 'haa; b原创 2022-01-02 15:22:00 · 385 阅读 · 0 评论