System Verilog学习笔记(二)——自定义类型
通过**typedef来创建用户自定义类型;
通过enum来创建枚举类型;
通过struct**来创建结构体类型。
为了使代码易读和维护,加“_t”的后缀表示是自定义类型。
typedef int unsigned unit;
enum {red,green,blue} RGB; //表示枚举类型RGB可以拥有red、green、blue的三个数值。
枚举类型
默认的枚举类型是int,即32位的二值逻辑数据类型。整型(int)不能直接赋值为枚举类型,枚举类型可以转换为整型(int)。
如,enum bit {TRUE,FALSE} Boolean;
如果一个枚举类型数值被赋值,那么所赋的值必须符合数据类型。如果是四值逻辑数据类型,也可以赋值为X或Z。
枚举类型也可以声明为自定义类型。例如;typedef enum {WAITE,LOAD,READY} states_t;
结构体类型
设计或者验证的数据经常会有逻辑相关的数据信号组,例如一个总线协议的所有控制信号,或者在一个状态控制器中用到的所有信号。SV中用结构体struct,结构体中可以是任何变量类型,包括自定义或者其他常量类型。结构体是变量的合集,可以用来索引其内部的变量。方法和C一致,结构体名.address=“****”
结构体类型也可以用typedef来自定义。通过分号’和花括号{}来实现整体赋值。