1、verilog有两种基本的数据类型:
变量和线网(net),有四种取值:0、1、X、Z。
变量可以是无符号数reg,32bit的有符号数integer,64bit的无符号数time或浮点数real。存储都是静态的,子程序不能通过堆栈来保存形式参数和局部变量。
线网可以用来链接设计中的不同部分,例如门、模块实例。设计模块的端口常用wire。
2、logic 逻辑类型:
类似于reg,但可以被连续赋值,但不能有多个结构性驱动,只能有一个驱动,可以用来查找网单中的漏洞。但若是多个驱动,例如双向总线,这些信号需要被定义为线网类型(比如wire)。
3、双状态数据类型
SystemVerilog引入双状态,优点:有利于提高仿真器的性能并减少内存的使用量。
bit(不带符号),默认值是单比特
byte、shortint、int、longint(带符号),默认值分别是8bit,16bit,32bit,64bit;
带符号要注意其表示的范围
另外,例如Verilog中的time— 64bit四状态,integer—32bit四状态,real—双状态,双精度浮点数。
注意:双状态连接到被测设计时,X和Z都会变成双状态值,可能为0也可能为1,常用$isunknown操作符使得任意位出现X\Z时返回1。随时检测未知值的传播。