1.结构体
2.联合体
3.结构体和联合体的操作
4.非压缩数组
5.压缩数组
6.数组操作
7.数组foreache 循环
8.用于数组的特殊系统函数
结构体
1.结构体成员可以是任何数据类型 包括基本类型和用户自定义类型
2.结构体的声明
var/wire 都可以定义为结构体类型。当定义为结构体类型时,结构体中的成员都必须是四态类型,成员不能是wire类型。
3.结构体的初始化
用值列表方式初始化 '{}
4.结构体的赋值
5.压缩结构体 可以视为独立的变量,具体与向量类似的操作
6.非压缩结构体
7.有符号的结构体
8.结构体通过模块/函数/任务传递(****)
联合体
同结构体类似
1.联合体成员可以是任何数据类型 包括基本类型和用户自定义类型
2.联合体的声明
3.联合体的初始化
用值列表方式初始化 '{}
4.联合体的赋值
5.压缩联合体 可以视为独立的变量,具体与向量类似的操作
6.非压缩联合体
7.有符号的联合体
8.标签联合体(不懂呀)
9.联合体通过模块/函数/任务传递(****)
数组
1.数组元素可以是
verilog95:reg integer time,允许一维
verilog2k:除了event,可以多维
systemverilog:任何数据类型
2.非压缩数组
3.压缩数组
4.数组的声明
5.数组的初始化
6.数组的赋值
7.数组的复制
8.数组通过端口 任务 函数 传递
9.foreach 循环
10.用于数组查询的系统函数
11.$bits位宽系统函数
$bits(expression);
可以返回任意表达式的位数,表达式可以包含任意类型的值,包括压缩或非压缩数组/结构体/联合体/文本值。