在Verilog里面, 定义了不少的data type, 他们继承自ivl_type_s, 其继承关系如下:

scalar data type
string & real是比较简单的数据类型, 和C语言的类似, 无需多赘述。
netstruct_t
- union 是和struct一样的;
- packed分为packed 和unpacked struct 2种;
- member_t 代表其中的一个成员变量, 用一个vector<member_t> 代表所有的成员;
netenum_t
enum 是一种用户自定义的数据类型, 比如:
enum bit [0:2] {red, yellow, blue} primary_colors;
我们可以指定它的name, base_type, 以及每一个value的range,如上面的[0:2], 表示每一个value的值是3个字节的值, 每一个字节的类型是bit的;
enum 里面定义了一组key=value的数组, 比如这里的 red=3’b001, yellow=3’b010, blue=3’b011;
netarray_t
array是一组每一个元素都相同的数据结构, 它分为static array和dynamic array, 对于static array它分为un-packed array 和 packed array;
un-packed array是每一个元素是相对独立的, 也就是说, 每一个元素的数据是单独存储的, 没有相互

本文详细介绍了Verilog语言中的各种数据类型,包括简单的标量数据类型如string和real,复杂的数据结构如union、enum和array等。特别是对于enum类型的自定义及array类型的静态和动态特性进行了深入探讨。
最低0.47元/天 解锁文章
1066

被折叠的 条评论
为什么被折叠?



