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