进制
- 二进制(b或B)如 : 8’b10101100 表示一个8位的二进制数‘B10101100’, b1010表示二进制数
- 十进制(d或D) :4’d13 表示一个4位的十进制数‘D0013’,512 十进制中的D是可以省略不写。
- 十六进制(h或H): 8’ha2 表示一个8位的16进制数‘H00a3’。
- 八进制(o或O) :6’O41 表示一个6位的八进制数‘O000041’。
x值和z值
- X:不确定: 4’b100x 表示一个不确定的4位的二进制数,可以为‘B1000’也可以为‘B1001’.
- z:高阻: 16’ hzzzz,没有驱动元件连接到线网,线网的缺省值为z
- 在程序设计时,何时出现x值?
(1)未初始化的寄存器时。
(2)无法确定当前值时。
负数
- 在位宽表达式前加一个减号,如-8’d5 表示一个8位十进制的负数‘-00000005’。
- 减号不可以放在位宽和进制之间,也不可以放在进制和具体的数之间,如8’d-5 是不可以的。
位数扩展
- 最高位是0、1,高位用0扩展:8’ b1111等于8’ b00001111。
- 最高位是z、x,高位自动展:4’bz等于4’ bzzzz。
- 如果长度定义得更小,最左边的位被截断,如:3’b1001 0011等于3’b011。
科学计数法
- 23_5.1e2其值为235.1*100=23510.0,忽略下划线。
- 3.6E 2其值为3.6*100=360.0 ( e与E相同)。
字符串
字符串是双引号内的字符序列,不能分成多行书写。例如:”INTERNAL ERROR”。
ASCII字符
- 中用8位ASCII值表示的字符可看作是无符号整数。
- 也存储"INTERNAL ERROR" ,变量需要8*14位
reg [1 : 8*14] Message;“*”字符申较少用于FPGA源代码的常量。
操作符从高到低优先级排序
操作符 | 操作 | 操作符 | 操作 | 操作符 | 操作 | 操作符 | 操作 |
+ | 一元加 | | | 归约或 | >> | 右移 | !== | 非全等 |
- | 一元减 | ~| | 归约或非 | < | 小于 | & | 按位与 |
! | 一元逻辑非 | * | 乘 | <= | 小于等于 | Λ | 按位异或 |
~ | 一元按位取法 | / | 除 | > | 大于 | Λ~或~Λ | 按位异或非 |
& | 归约非 | % | 取模 | >= | 大于等于 | | | 按位或 |
~& | 归约与非 | + | 二元加 | == | 逻辑相等 | && | 逻辑与 |
Λ | 归约异或 | - | 二进制 | != | 逻辑不等 | || | 逻辑或 |
Λ~或~Λ | 归约异或非 | << | 左移 | === | 全等 | ?: | 条件运算符 |