数据类型
1.逻辑数值类型(四值还是二值);2.符号类型(有无符号);3.矢量位宽(长度);
四值类型的X转化为二值应为0
定宽数组
合并型pack: bit [3][7:0] b_packed;连续存储,占据1个word空间
非合并型pack:bit[7:0] b_unpack[3];非连续存储,占据3个word空间
数组操作
for和foreach循环
foreach (array_or_collection[index]) {// 循环体,迭代数组或集合中的每个元素}
动态数组
分配:my_dynamic_array = new[int size]; // 分配一个大小为size的动态数组队列
释放:delete my_dynamic_array; // 释放动态数组
队列
结合了链表和数组的优点,用于实现先进先出(FIFO)的行为;
关联数组
它允许使用非整型(包括整型)作为索引来存储和访问数据
声明:int my_associative_array[string]; // 声明一个整型关联数组,索引为字符串
结构体
枚举
字符串
string
过程块和方法,
过程块用begin ,end包住
硬件:module,always
软件:initial
函数function,数据类型默认为logic
任务task, 可以置入耗时语句,function则不能;只有task能调用task
变量生命周期:动态:局部变量
静态设计例化和连接
"例化"(Instantiation)是指创建模块或接口的一个具体实例的过程。
将一个设计模块或组件插入到更大的系统或设计中的过程。这个过程涉及到将预先设计好的模块按照特定的参数和接口要求,嵌入到设计中去,以实现特定的功能。
这与面向对象编程中的"实例化"类似,其中你创建了一个类的实例。
在硬件描述语言(HDL)中,例化用于表示多个相同逻辑模块的拷贝,每个拷贝可以有不同的参数值或不同的实例名。
连接:硬件模块参与作为信号驱动方和或负载方