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