目录
SystemVerilog对Verilog的拓展:
- 4.1 typedef
- 4.2 枚举数据类型
- 4.2.1 指定枚举类型标签序列的方式:
- 4.2.2 枚举类型标签作用域:
- 4.2.3 枚举类型值:
- 4.2.4 枚举类型标签值的类型:
- 4.2.5 自定义和匿名枚举
- 4.2.6 枚举类型操作的强类型检验
- 4.2.8 枚举类型的专用系统任务和方法
- 4.2.9 打印枚举类型
- 使用typedef建立用户自定义类型。
- 使用enum建立枚举类型。
-
对比
VerilogSystemVerilog主要用于RTL和门级建模,没有提供类似C语言的高级抽象建模的变量类型为系统级和体系结构级建模加入了许多新的数据类型,允许通过typedef关键字使用现有数据类型建立用户自定义类型。例子:自定义类型
typedef int unsigned uint;//利用现有数据类型(int unsigned)建立用户自定义类型(uint) ... uint a, b;
-
用户自定义类型的位置:
-
在局部定义。
-
包内定义。
-
编译单元域$unit.
-
在包中定义然后导入到$uint。
例子:在包中定义然后导入到$uint。
//包声明 package chip_types `ifdef TWO_STATE typedef bit dtype_t; `else typedef logic dtype_t; `endif endpackage //导入定义到$uint import chip_types::dtype_t; //模块声明 module counter ( output dtype_t[15:0] count, input dtype_t clock ); always @(posedge clock, negedge resetN) if (!resetN) count
关注打赏
-