Verilog HDL 语法基础(1) Verilog 的词法约定 1 Verilog 是大小写相关的,其中的关键字全部为小写。 2 空白符由空格、制表符、和换行符组成。 3 单行注释以“//”开始,verilog 将忽略此处到行尾的内容。多行注释以“/*”开始,以“*/”结束。多行注释不允许嵌套 4 操作符有三种:单目操作符、双目操作符和三目操作符。 5 数字声明 Verilog 中有两种数字生命:指明位数的数字和不指明位数的数字 指明位数的数字表示形式:’ 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 是标识符 8...