一.常量
(1)整数
1)表示方法
进制表示(二、十、十六、八)符号:b(B)、d(D)、h(H)、o(O);
2)格式:
a.<位宽><进制><数字>,这是一种全面的表示方法。
b.在<进制><数字>这种描述方法的时候,数字的位宽常常采用默认(一般为32位)。
c.在<数字>这种描述中采用十进制的表示方法。
(2)x和z,
在数字电路中,x代表不定值、z代表高阻。一个x可以表示十六进制的4位二进制表示状态。八进制的三位,二进制的一位,z类似。(有时可以用?来表示高阻,常在
case语句中使用, 以增强语句的可读性)。
(3)负数
一个数可以被定为负数,只要在位宽表达式的前面加一个负号,减号必须在数字定义表达式的前面。
(4)下划线
为了增强程序的可读性。它不可在进制和位宽之间,只允许在数字和数字之间。
例如:
16‘b1001-1010-1110-1111 //合法
16‘b-1001-1010-1110-1111 //不合法
(5)参数(parameter)
1)定义
定义一个标识符代表一个常量,称为符号常量。
2)作用
采用标识符代表一个常量来提高程序的可读性,维护性。
3)格式
parameter 参数名1=表达式,参数2=表达式,........参数n=表达式:
二.变量
(1)wire型
1)定义
常用来表示以assign关键字指定的组合逻辑信号。
2)适用范围
Verilog程序模块中输入、输出信号类型默认时自动定义为wire型。wire型信号可以用作任何方程式的输入,也可以作为“assign”语句或实例元件的输出。
3)格式
wire [n-1,0]数据名1,数据名2,.........数据i;//共有i条总线,每条总线有n条线路。
e.g
wire a; //定义了一个1位的wire型数据类型
wire[7:0] b; //定义了一个8位的wire数据类型
wire[4:1] c,d; //定义了二个4位的wire数据类型
(2)reg型
1)定义
定义:寄存器是数据存储单元的抽象,通过赋值可以改变寄存器存储的值,其作用与改变触发器的值相当,reg类型的默认初始值位x。
2)适用范围
表示“always”模块内的指定信号,代表触发器。在“always”中每一个信号都必须定义为reg。
3)格式
与wire相似。
注意:reg语句只表示定义的信号将用于“always”模块内,这一点很重要,虽然并不是所有的信号一定是寄存器或者触发器的输出。虽然reg信号常常是寄存器或者触发器的输出。但并不一定总是这样。
(3)memory
1)定义
通过对reg型变量建立数组来对存储器建模,可以描述RAM型存储器、ROM存储器和reg 文件。数组中的每一个单元通过一个数组进行寻址,在Verilog没有多维数组的存在。
2)格式
reg[n-1:0] 存储器名[m-1:0];
或者reg[n-1:0] 存储器名[m:1];