7.1整数
1.Verilog采用四值逻辑:0,1,x,z。
2.整数可以用十进制、十六进制、八进制、二进制形式表示,表现形式为:
<null |+| -><size><sign:s|S><base: d|h|o|b><0~9 | 0~f | 0~7 | 0~1 | x | z>,其中size、sign和base是可选的。
最简单的整数是没有size、sign和base的十进制数,只用0~9,可选+或-,表示的是符号数。
3.sign必须和base一起使用。当base前面有sign标志时,表示的是符号数,反之是无符号数。
4.负数是以2的补码形式表示。
5.x表示不可知值,z表示高阻值。
6.如果无符号数的位数小于size,那么就在左端扩展:如果最左边的位是0或1,左端就补0扩展;如果最左边的位是x,左端就补x扩展;如果最左边的位是z,左端就补z扩展。
如果无符号数的位数大于size,那么就在左端截去多余的位。
7.在Verilog-2001中,对于没有size限定的数,那么就在左端按照表达式的size根据最左边的位进行扩展(0、x或z),扩展多少位都没问题。
但是在Verilog-1995中,如果最左边位是x或z,那么x或z最多只能扩展到32位,超出的位按0扩展。
8.当把带有size的负常数赋给一个reg类型的变量时,不管这个变量是否是signed,对这个负常数做符号扩展。
7.2实数
1. 实数有两种方式:十进制法和科学计数法。
十进制:1.2,0.1,1234.5678
科学计数:1.2E12,23E10
2. 当把实数赋给一个整数变量时,按四舍五入转换后赋值。
7.3字符串
1.字符串是包含在两个"之间的字符。
2.字符串在表达式中或在赋值时,被当做一个由8-bitASCII码序列组成的无符号数。
3.字符串中可以使用如下的特殊字符:\n、\t、\\、\"和\ddd,\ddd用于表示八进制数。
4.使用reg变量操作字符串时,每8-bit存一个字符。
5.因为字符串被当做无符号数,所以也用整数的补齐和截去规则,就是如果字符串的位长小于变量的位长,那么字符串做右对齐存放到变量的右侧,变量的左侧补0;如果字符串的位长大于变量的位长,那么字符串做右对齐存放到变量的右侧,多余的位截去。
7.4标识符
标识符就是模块、端口、任务、函数、变量、线网、参数、实例等的名字。