缩进在 Verilog HDL 中是否像在 Python 中一样重要?
还是更像 C++,重要的是你是否正确放置了 { 和 } 块?
编辑:这是我教科书中写的:
always @(A or B or select)
if(select == 1) m_out = A;
else m_out = B;
这里似乎该块是由缩进定义的。为什么会这样?
缩进在 Verilog HDL 中是否像在 Python 中一样重要?
还是更像 C++,重要的是你是否正确放置了 { 和 } 块?
编辑:这是我教科书中写的:
always @(A or B or select)
if(select == 1) m_out = A;
else m_out = B;
这里似乎该块是由缩进定义的。为什么会这样?
不,缩进在 Verilog 中并不重要(作为额外的空格、制表符和换行符)。它没有使用缩进,而是使用关键字 (and begin
)来分隔块。因此,您只需要正确放置这些关键字即可。例如:end
endmodule
always
begin
clk = 0;
#1;
clk = 1;
#1;
end
在您的示例中,if
andelse
块每个只有一个语句,因此您不需要使用begin
/end
关键字(C中有类似的东西)。此外,always
块只包含一个if-else
块,所以我们也不需要begin
/end
那里。如果这些块中的任何一个有超过 1 个语句,我们必须使用begin
/ end
。例如:
always @(A or B or select)
if(select == 1) m_out = A;
else
begin
m_out = B;
m_out_2 = A;
end