161 lines
1.8 KiB
Markdown
161 lines
1.8 KiB
Markdown
#### 赋值语句
|
|
|
|
##### 非阻塞赋值
|
|
|
|
```verilog
|
|
<= // 信号的值不是立刻改变,块结束后才完成赋值操作,常用的赋值方法
|
|
```
|
|
|
|
##### 阻塞赋值
|
|
|
|
```verilog
|
|
= // 信号的值在赋值完成后立刻改变,赋值完成后块才结束,可能产生意外结果
|
|
```
|
|
|
|
#### 块语句
|
|
|
|
##### 顺序块
|
|
|
|
```verilog
|
|
/* 格式一 */
|
|
begin
|
|
...;
|
|
end
|
|
|
|
/* 格式二 */
|
|
begin:块名
|
|
...;
|
|
end
|
|
```
|
|
|
|
##### 并行块
|
|
|
|
```verilog
|
|
/* 格式一 */
|
|
fork
|
|
...;
|
|
join
|
|
|
|
/* 格式二 */
|
|
fork:块名
|
|
...;
|
|
join
|
|
```
|
|
|
|
|
|
|
|
#### 条件语句
|
|
|
|
##### if_else语句
|
|
|
|
```verilog
|
|
/* 格式一 */
|
|
if (表达式) 语句;
|
|
|
|
/* 格式二 */
|
|
if (表达式) 语句1;
|
|
else 语句2;
|
|
|
|
/* 格式三 */
|
|
if (表达式1) 语句1;
|
|
else if (表达式2) 语句2;
|
|
else if (表达式3) 语句3;
|
|
else 语句n;
|
|
```
|
|
|
|
|
|
|
|
##### case语句
|
|
|
|
```verilog
|
|
/* 格式一 */
|
|
case (表达式)
|
|
分支表达式: 语句;
|
|
default: 语句;
|
|
endcase
|
|
|
|
/* 格式二 */
|
|
casez (表达式) // 不考虑高阻值的比较过程
|
|
分支表达式: 语句;
|
|
default: 语句;
|
|
endcase
|
|
|
|
/* 格式二 */
|
|
casex (表达式) // 不考虑高阴值和不定值的比较过程
|
|
分支表达式: 语句;
|
|
default: 语句;
|
|
endcase
|
|
```
|
|
|
|
|
|
|
|
#### 循环语句
|
|
|
|
##### forever语句
|
|
|
|
```verilog
|
|
forever 语句;
|
|
```
|
|
|
|
|
|
|
|
##### repeat语句
|
|
|
|
```verilog
|
|
repeat (表达式) 语句;
|
|
```
|
|
|
|
|
|
|
|
##### while语句
|
|
|
|
```verilog
|
|
while (表达式) 语句;
|
|
```
|
|
|
|
|
|
|
|
##### for语句
|
|
|
|
```verilog
|
|
for (表达式1;表达式2;表达式3) 语句;
|
|
```
|
|
|
|
|
|
|
|
#### 结构说明语句
|
|
|
|
##### initial语句
|
|
|
|
```verilog
|
|
initial
|
|
begin
|
|
...;
|
|
end
|
|
```
|
|
|
|
|
|
|
|
##### always语句
|
|
|
|
```verilog
|
|
always <时序控制> <语句>
|
|
```
|
|
|
|
|
|
|
|
##### task语句
|
|
|
|
```verilog
|
|
for (表达式1;表达式2;表达式3) 语句;
|
|
```
|
|
|
|
|
|
|
|
##### function语句
|
|
|
|
```verilog
|
|
for (表达式1;表达式2;表达式3) 语句;
|
|
```
|
|
|