Verilog 的词法约定
1 Verilog 是大小写相关的,其中的关键字全部为小写。
2 空白符由空格、制表符、和换行符组成。
3 单行注释以 “// ”开始,verilog 将忽略此处到行尾的内容。 多行注释以 “/* ”
开始,以“ */ ”结束。多行注释不允许嵌套
4 操作符有三种:单目操作符、双目操作符和三目操作符。
5 数字声明
Verilog 中有两种数字生命: 指明位数的数字 和不指明位数的数字
指明位数的数字表示形式 :<size> ’<base format><number>
Size用来指明数字位宽度,只能用十进制整数表示
Base format包括十进制 ( ’d或’D),二进制( ’b或’B),八进制 ( ‘o或’O),十六
进制( ‘h或’H)
例如
4’b1111 //4 位 2 进制数
12’h3ac //12 位 16 进制数
不指明位数的数字 :如果数字说明中没有指定基数,那么默认表示为十进制
数。如果没有指定位宽,则默认的位宽度与仿真器和使用的计算机有关(最
小为 32 位)。
‘o21 //32 位八进制数
X 值和 Z 值:不确定值用 X 表示,高阻用 Z 值表示。 在八进制数中代表 3 位,
十六进制中代表 4 位。
12’h12X // 这是一个 12 位 16 进制数,其中低四位不确定
负数: 在表示位宽的数字前面增加一个减号来表示它是一个负数。
-6’d3 //一个 6 位的用二进制补码形式存储的十进制数 3,表示负数
-6’sd3 //一个 6 位的带符号算数运算的负数
下划线符号和问号:
除了第一个字符,下划线“ _”可以出现在数字中的任何位置,它的作用只
是提高可读性,在编译阶段会被忽略掉
问号“?”是 z 的另一种表示, 使用问号的目的在于增强 casex和 casez语句
的可读性。在这两条语句中,“?”表示不必关心的情况。
12’B1111_0011_1110 // 增强可读性
4’b10?? //相当于 4’b10zz
6 字符串是双引号括起来的一个字符队列。对于字符串的限制是,它必须在
一行中书写完,不可书写在多行中,也不能包含回车符。 Verilog 将字符串当
作一个单字节的 ASCII字符队列。
“Hello Verilog world ” //是一个字符串
7 标识符和关键字
关键字是语言中预留的用于定义语言结构的特殊标识符。 Verilog 中关键字全
部小写。
标识符是程序代码中对象的名字, 程序员使用标识符来访问对象。 Verilog 中
标识符由字母数字字符、下划线和美元符号组成,区分大小写。其第一个字
符必须是数字字符或下划线。
reg value; //reg是关键字; value 是标识符