computer_knowledge_notes/Languages/Verilog/语句.md

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) 语句;