目录
参考《Verilog 编程艺术》魏家明著
整数(integer):
Verilog采用四值逻辑:
1/ 0:表示Low,False,Ground,VSS,Negative Assertion
2/ 1:表示High,True,Power,VDD,VCC,Positive Assertion
3/ x或X:表示Unkonwn,
4/ z或Z:表示High Impedance,Tri-State,Disable Driver。
整数常数的定义规则如下:
1。整数可以用十进制(decimal),十六进制(hexadecimal),八进制(octal),二进制(binary)形式表示,表现形式为:±size'sign base number
2。最简单的整数是没有size,sign,和base的十进制数,只用0-9,可选+或-,表示的是符号数。
3。sign必须和base一起使用。当base前边有sign标志时,表示的是有符号数;当base前没有sign标志时,表示的是无符号数。
4。负数以2的补码形式表示。
5。x表示不确定,z表示高阻抗。在十进制数中不能使用x和z。其中z可以用?代替,在使用casex和casez时,为了便于理解常用?代替z。
6。如果无符号数的位数小于size,那么就在左端扩展:如果最左边位是0或1,左端就补0扩展;如果最左边位数是x,左端就补x扩展;如果最左边是z,左端就补z扩展。
7。如果无符号数的位数大于size,那么就在左端截去多余的位。
8。为了方便阅读,可以在数字之间加 _(下划线)分割数字。
例如:
65
'h837FF
'o746
3'b101
3'b01x
12'hz
16'b0011_0101_0001_1111
-12'h123
12'shEDD
实数(real):
实数有两种方式:十进制法和科学计数法。
例如:1.2;0.1;1294.266331;1.2E12;1.30e-2;12E10;29E-2;
把一个实数赋给一个整数变量时,按四舍五入转换后赋值。
例如:把35.7和35.5都转换成36,而35.2则转换成35。-1.5转换成-2;1.5转换成2;
字符串(string):
1。字符串是包含在两个“(双引号)之间的字符。
2。字符串在表达式中或在赋值时,被当做一个由8-bit ASCII码序列组成的无符号数。
3。字符串可以使用如下的特殊字符:\n;\t;\\;\"和\ddd,\ddd用于表示八进制数。
4。使用reg变量操作字符串时,每8-bit存一个字符
5。字符串被当作无符号数,使用整数的补齐和截去规则,就是如果字符串的位长小于变量的位长,那么字符串做右对齐存放到变量的右侧,变量的左侧补0;如果字符串的位长大于变量的位长,字符串右对齐存放到变量的右侧,多余的位截去。
标识符(identifier):
标识符就是模块,端口,任务,函数,变量,线网,参数,实例等的名字。