1. 格式
-
Verilog 区分大小写。
-
每个语句必须以分号为结束符。空白符(换行、制表、空格)都没有实际的意义,只是为了代码的可读性,在编译阶段均被忽略。
2. 注释
- 单行注释:用
//
进行; - 多行注释:用
/*
与*/
;
3. 关键字
- 关键字是 Verilog 中预留的用于定义语言结构的特殊标识符。
- Verilog 中关键字全部为小写。
4. 标识符
- 标识符是区分大小写的。
- 标识符(identifier)可以是任意一组字母、数字、$ 符号和 _(下划线)符号的合;
- 第一个字符必须是字母或者下划线;
- 不能使用Verilog中的保留字;
5. 电平逻辑
数值 | 电平逻辑 |
---|---|
0 | 逻辑 0 或 “假” |
1 | 逻辑 1 或 “真” |
x 或 X | 未知,可能为 1,也可能为 0 |
z 或 Z | 高阻,常见于信号(input, reg)没有驱动时的逻辑结果。其值与上拉下拉的状态有关;上拉则逻辑值为 1,下拉则为 0 。 |
6. 数值 & 进制
进制 | 字母表示 | 举例 |
---|---|---|
十进制 | 'd 或 'D | -6’d15 |
十六进制 | 'h 或 'H | 32’h3022_c0de |
二进制 | 'b 或 'B | 4’b1011 |
八进制 | 'o 或 'O |
备注:
- 下划线 _ 是为了增强代码的可读性。
- 不指明位宽时,一遍编译器会自动分频,常见为32bit.
- 通常在表示位宽的数字前面加一个减号来表示负数。
- 表示实数,可以使用十进制方式(例如:3.1415)或科学计数法(例如:1.23e-3);
- 字符串,直接赋值即可,但不可换行;例如:str= “I am a Gril.”