Синтаксис оператора if
:
if (condition) true_statement; else false_statement;
, где else false_statement;
является необязательным.Использование begin/end
- отдельная тема.Везде, где разрешен один процедурный оператор, вы можете заменить его составным набором операторов внутри блока begin/end
, что включает в себя перенос одного оператора с begin/end
.И if/else
считается одним утверждением.Таким образом, следующее может означать одно и то же
initial if (cond2) A=1; else if (cond2) B = 2; else C = 3;
initial begin if (cond1) A=1; else if (cond2) B = 2; else C = 3; end
initial if (cond1) A=1; else begin if (cond2) B = 2; else C = 3; end
initial if (cond1) A=1; else if (cond2) B = 2; else begin C = 3; end
initial begin if (cond1) begin A=1; end else begin if (cond2) begin B = 2 end ; else begin C = 3; end end end
Обратите внимание, что SystemVerilog добавляет маркировку для начала и конца, чтобы помочь сопоставить их.