关于初次使用Verilog HDL语言需要懂的基本语法
1.常量
数字表达式全面的描述方式为:<位宽><进制><数字>
8’b10101100,表示位宽为8的二进制数。
2.参数
Parameter 参数名=表达式;
3.变量
reg型:通过赋值语句来改变寄存器存储值,相当于改变触发器存储的值。reg型数据常用来表示“always”模块内的指定信号,常代表触发器。通常,在设计的过程中与always模块结合使用,通过使用行为描述语句来表达逻辑关系。
注意:在“always”模块内被赋值的每一个信号都必须定义成reg型变量。
reg[3:0] regb; 定义了一个位宽为4名为regb的reg型变量。
wire型:常用来表示用以assign关键字指定的组合逻辑信号,Verilog程序模块中输入,输出信号类型默认为wire型。
wire[7:0] b; 表示定义了一个8位的wire型数据。
4.Verilog赋值方式
非阻塞式赋值方式为: b<=a;常用于编写综合的时序逻辑模块。
阻塞式赋值方式:b=a。
怎样理解呢?非阻塞式赋值就像D触发器那样,需要等到下一次always里面的敏感事件列表条件满足,再次执行always块程序的时候赋值才能成功。阻塞式赋值方式就像两个不同的信号量用同一根导线连接起来,赋值语句执行后,相应的值立刻发生变化,赋值成功。
5位拼接运算符
使用方法如下:
{ 信号1的某几位,信号2的某几位,......,信号n的某几位},此运算符可以把两个或多个信号的某些位拼接起来进行运算操作。