Verilog:如果if(1)始终为真,为什么会出现if(0)?

mna*_*310 1 if-statement verilog

我有verilog总是阻止如下:

always @ (a)
begin

  if(1) begin
    ..
  end 

  if(0) begin
    ...
  end

end
Run Code Online (Sandbox Code Playgroud)

是否if(1)意味着一旦触发always块,该语句就会一直执行?
那有什么意义if(0)呢?什么时候执行?

注意:这是遗留代码,我不是它的所有者.

小智 6

我不知道这是不是意图,但是这种结构允许你编写包含几个不同代码块的源代码,并通过改变哪个条件具有快速改变你想要的源代码.1.

例如,它们可能包含两种不同的方法来实现相同的功能,如果您需要测试哪一种方法可以提供更好的性能,这样可以更轻松地来回切换.

或者,它可能与您希望在源中包含多少选项有关.

或者,有时,它是一种版本控制形式,可让您保留旧代码,直到您确定不再需要它为止.