Verilog HDL中的标识符(Identifier) 是由任意字母、数字、$符号和_(下划线)符号的组成的字符序列,但标识符的第一个字符必须是字母或者下划线。此外,标识符是区分大小写的。
一.转义标识符
转义标识符(Escaped Identifier) 为在标识符中包含任何可打印字符提供了一条途径。转义标识符以\(反斜线)符号开头,以空白结尾(空白可以是空格、制表符或换行符。
下面举几个转义标识符的例子:
\7400
\.*.$
\~Q
\OutGate 等同于OutGate
二.关键词
Verilog HDL定义了一系列保留标识符,叫做关键词,仅用于表示特定的含义。注意只有小写的关键词才是保留字。例如,标识符always(这是个关键词)与标识符ALWAYS(非关键词)是不同的。
此外,在Verilog语言中,转义关键词与关键词是不同的。标识符\initial 与标识符 initial(这是个关键词)不同。请注意,这一约定与一般(即非关键词)的转义标识符不同。
Verilog中的关键字是一些具有特定语义和用法的单词。以下是一些常用的Verilog关键字:
1. always:用于创建一个时序块,其中的代码会按照时序规则执行,产生reg信号语句的关键字。
2. assign:用于创建一个组合块,其中的代码会按照组合逻辑规则执行,产生wire信号语句的关键字。
3. begin/end:用于创建一个代码块,其中的代码会按照顺序执行,语句的起始和结束标志。
4. module:模块开始的定义,用于创建一个模块,其中包含了数字电路的结构和行为。
5. input/output:用于定义模块的输入和输出端口定义。
6. wire/reg:用于定义信号的类型(wire信号定义和reg信号定义),wire表示连续信号,reg表示时序信号。
7. always_comb/always_ff:用于创建一个组合逻辑块或时序逻辑块。
8. inout 双向端口定义。
9. parameter 信号的参数定义。
10. posedge/negedge 时序电路的标志。
11. case:case语句起始标记。
12. default:case语句的默认分支标志。
13. endcase:case语句结束标记。
14. if:if/else语句标记。
15. else:if/else语句标记。
16. for:for语句标记。
17. endmodule:模块结束定义。
三.注释
在Verilog HDL中有2种形式的注释。
/*第一种形式:可以
扩展至
多行*/
//第二种形式:到本行结束为止
四.格式
1.大小写敏感
2.格式自由,语句结构既可以跨越多行编写,也可以在一行内编写。