SV 补充

  • 根据绿皮书对之前的知识点进行补充

1.验证导论

  • system verilog硬件验证语言(Hardware verification Language,HVL)特点
  • 受约束的随机激励生成
  • 功能覆盖率
  • 更高层的结构,面向对象编程
  • 多线程以及线程之间的通信
  • 支持HDL数据类型,比如verilog四值逻辑数值
  • 集成了事件仿真器,便于对设计施加控制

2.数据类型

2.1 队列操作


关联数组

关联数组采用在方括号中放置数据类型的形式进行声明,例如[int]或[packet]

// 变量类型 关联数组名[变量类型]
initial begin
  bit [63:0] assoc[bit[63:0]],idx = 1;
end

OOP

  • 类的首字母用大写,属性和方法名用小写

构造函数(constructor - new())

  • new()实例化一个对象的时候,是在为该对象申请一个新的内存空间保存对象的变量
  • 构造函数除了分配内存之外还会进行初始化变量


声明句柄和创建对象分开

new[]和new()

  • new[] - 建立一个含有多个元素的数组,只需一个数值创建数组的大小
  • new() - 创建一个对象,可以使用参数设置创建的对象的数值

句柄和对象的区别

  • 通过声明一个句柄来创建一个对象,在一次仿真中,一个句柄可以指向很多对象

静态变量

  • 每个对象都有自己的局部变量,这些变量不能和其他变量共享,如果有两个对象,每个对象都有addr,crc和data变量,需要设置某种类型的变量,被所有对象共享 - 静态变量
  • 静态变量 - 被这个类的所有实例所共享的变量

通过类名访问静态变量

静态方法



在类的外部声明方法

this


在任务中修改句柄

句柄数组

posted @ 2024-01-22 21:36  Icer_Newer  阅读(11)  评论(0编辑  收藏  举报