2.1 Verilog 基础语法
精华
小牛编辑
213浏览
2023-03-14
格式
Verilog 是区分大小写的。
格式自由,可以在一行内编写,也可跨多行编写。
每个语句必须以分号为结束符。空白符(换行、制表、空格)都没有实际的意义,在编译阶段可忽略。例如下面两中编程方式都是等效的。
不换行(不推荐)
实例
wire
[
1
:
0
] results
;
assign results
=
(a
==
1'b0
)
?
2'b01 :
(b
==
1'b0
)
?
2'b10 :
2'b11
;
换行(推荐)
实例
wire
[
1
:
0
] results
;
assign results = (a == 1'b0 ) ? 2'b01 :
(b == 1'b0 ) ? 2'b10 :
2'b11 ;
assign results = (a == 1'b0 ) ? 2'b01 :
(b == 1'b0 ) ? 2'b10 :
2'b11 ;
注释
Verilog 中有 2 种注释方式:
用 // 进行单行注释:
reg [3:0] counter ; // A definition of counter register用 /* 与 */ 进行跨行注释:
wire [11:0] addr ; /* Next are notes with multiple lines. Codes here cannot be compiled. */ assign addr = 12'b0 ;
标识符与关键字
标识符(identifier)可以是任意一组字母、数字、$ 符号和 _(下划线)符号的合,但标识符的第一个字符必须是字母或者下划线,不能以数字或者美元符开始。
另外,标识符是区分大小写的。
关键字是 Verilog 中预留的用于定义语言结构的特殊标识符。
Verilog 中关键字全部为小写。
实例
reg
[
3
:
0
] counter
;
//reg 为关键字, counter 为标识符
input clk ; //input 为关键字,clk 为标识符
input CLK ; //CLK 与 clk是 2 个不同的标识符
input clk ; //input 为关键字,clk 为标识符
input CLK ; //CLK 与 clk是 2 个不同的标识符