数据类型(19种)
基础数据类型
wire
wire 类型表示硬件单元之间的物理连线,由其连接的器件输出端连续驱动。
如果没有驱动元件连接到 wire 型变量,缺省值一般为 "Z"
reg
寄存器(reg)用来表示存储单元,它会保持数据原有的值,直到被改写
扩展数据类型
wire : wand,wor,wri,triand,trior,trireg
wire[X:Y]
例如 wire[9:2] a; wire[9:0] b; wire[0:9] c;
在 Verilog 中允许声明 reg, wire, integer, time, real 及其向量类型的数组。
常量
直接写数字时,默认为十进制表示,默认为32bit
二进制('b 或 'B)
八进制('o 或 'O)
十进制('d 或 'D)
十六进制('h 或 'H)
值范围
0:逻辑 0 或 "假"
1:逻辑 1 或 "真"
x 或 X:未知
z 或 Z:高阻
x 意味着信号数值的不确定,即在实际电路里,信号可能为 1,也可能为 0。
z 意味着信号处于高阻状态,常见于信号(input, reg)没有驱动时的逻辑结果。例如一个 pad 的 input 呈现高阻状态时,其逻辑值和上下拉的状态有关系。上拉则逻辑值为 1,下拉则为 0 。
字符串
"www"
字符串保存在 reg 类型的变量中,每个字符占用一个字节(8bit)。
因此寄存器变量的宽度应该足够大,以保证不会溢出。
字符串不能多行书写,即字符串中不能包含回车符。
如果寄存器变量的宽度大于字符串的大小,则使用 0 来填充左边的空余位;
如果寄存器变量的宽度小于字符串大小,则会截去字符串左边多余的数据。
例如,为存储字符串 "run.runoob.com", 需要 14*8bit 的存储单元:
转义字符
变量
一个数据类型 + 一个标识符(信号名) 可以定义 一个 变量
1. 信号名
2. 信号名[位号]
3. 信号名[起始位号:结束位号]
注意
二维reg型数组变量 在引用时 只能以一个单元为单位
integer型数组变量 在引用时 只能以一个单元为单位