System Verilog 引进的新的数据类型,他们所具有的优点:
双状态数据类型(bit, byte, shortint, int, longint): 具有更好的性能,更低的内存消耗。
队列(int a[$]),动态数组(int a[]),关联数组(int a[string]):减少内存消耗,且自带搜索和分类功能。
类(class)和结构(struct):支持抽象的数据结构。
联合结构和合并结构:允许对统一数据有多种视图(view)。
字符串(string):支持内建的字符序列。
枚举类型(enum):方便代码编写,增加代码可读性。(工程实践中经常使用)
1
思维导图
2
思维导图大纲
内建数据类型
Verilog-1995 基本数据类型
变量
单比特或多比特无符号整数(reg [7:0] m)
32bit 的有符号整数(integer)
64bit 的无符号整数(time)
64bit 的有符号整数(real)
线网(net)
System Verilog 增加的数据类型
逻辑类型(logic)
由经典的reg数据类型修改而来
四状态数据类型
既可以作为变量,也可以被连续赋值(assign)、门单元、模块所驱动
任何使用线网(net)的地方都能使用,但是只能有一个驱动,不能有多个结构性的驱动
双状态数据类型
与四状态数据类型相比,提高了仿真器的性能并降低内存使用量
bit
无符号
bit b; // 双状态单比特
bit [32:0] b32; // 双状态 32bit 无符号整数
int
int unsigned u32; // 32bit无符号整数
int b32; // 32bit有符号整数
byte
byte b8; // 8bit 有符号整数
shortint
shortint b16; // 16bit有符号整数
longint
longint b64; // 64bit有符号整数
将双状态变量连接到被测设计时,需要注意,尤其是被测设计的输出时,若被测设计产生了 X 或 Z,这些值将会被转换成双状态值(0 或 1),被测设计可能无法察觉,需要随时检测未知值的传播
$isunknown 操作符,可在表达式的任意位置出现 X 或 Z 时返回1
领取专属 10元无门槛券
私享最新 技术干货