0

缩进在 Verilog HDL 中是否像在 Python 中一样重要?
还是更像 C++,重要的是你是否正确放置了 { 和 } 块?

编辑:这是我教科书中写的:

always @(A or B or select)
  if(select == 1) m_out = A;
  else m_out = B;

这里似乎该块是由缩进定义的。为什么会这样?

4

1 回答 1

6

不,缩进在 Verilog 中并不重要(作为额外的空格、制表符和换行符)。它没有使用缩进,而是使用关键字 (and begin)来分隔块。因此,您只需要正确放置这些关键字即可。例如:endendmodule

always
 begin
   clk = 0;
   #1;
   clk = 1;
   #1;
 end

在您的示例中,ifandelse块每个只有一个语句,因此您不需要使用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
于 2013-10-12T07:01:06.710 回答