缩进在Verilog中是否重要?

Mic*_*elB -1 verilog

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

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

always @(A or B or select)
  if(select == 1) m_out = A;
  else m_out = B;
Run Code Online (Sandbox Code Playgroud)

这里看起来块是由缩进定义的.为什么会这样?

Sad*_*jad 6

不,缩进在Verilog中无关紧要(作为额外的空格,制表符和换行符).它没有使用缩进,而是使用beginend关键字(和endmodule)来分隔块.因此,您只需要正确地放置这些关键字.例如:

always
 begin
   clk = 0;
   #1;
   clk = 1;
   #1;
 end
Run Code Online (Sandbox Code Playgroud)

在你的例子中,ifelse块,每个只有一个语句,所以你不需要使用begin/ endkeywords(在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
Run Code Online (Sandbox Code Playgroud)