Verilog если еще структура - PullRequest
       6

Verilog если еще структура

0 голосов
/ 22 января 2019

очень простой вопрос, но хочу знать для разбора:

Являются ли эти две структуры одинаковыми в verilog?

первый код :

if_0                                        
else begin
          if_1
          else begin
                    if_2
                    end
          end
end

второй код :

if 
    else if
        else if 
        end
    end
end

Или есть какой-то экземпляр, который вы можете вспомнить, где , если еще начинаются, если и , если еще, если может отличаться в любой структуре кода?

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Синтаксис оператора if:

if (condition) true_statement; else false_statement;

, где else false_statement; является необязательным.Использование begin/end - отдельная тема.Везде, где разрешен один процедурный оператор, вы можете заменить его составным набором операторов внутри блока begin/end, что включает в себя перенос одного оператора с begin/endif/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 добавляет маркировку для начала и конца, чтобы помочь сопоставить их.

0 голосов
/ 22 января 2019

синтаксис оператора if равен

if (condition) begin
end

. Принимая во внимание вышесказанное, следующие конструкции эквивалентны

if (condition1) begin
   ...
end
else begin
   if (condition2) begin
      ...
   end
   else begin
      ...
   end
end

и

 if (condition1) begin
     ...
 end
 else if (condition2) begin
     ...
 end
 else begin
     ...
 end
...