2017-09-16 3 views
-2
reg A, B, C, D, E, F, G, H; 
[email protected](*) 
if (A) H = F & G; 
else if (B) H = F | G; 
else if (C) H = F^G; 
else H = D & E; 

これらのステートメントをcasexステートメントに置き換える必要があります。誰かがコードVerilog:Casex変換の場合else

私のコードで私を助けることができる間違っているこれです....

reg A, B, C, D, E, F, G, H; 
[email protected](*) 
begin 
casex(A or B or C or D or E or F or G or H) 
A: H= F & G; 
B: H = F | G; 
C: H = F^G; 
default: H = D & E; 
endcase 

答えて

1

ラインA or B or Cが構文的に間違っていると論理的な意図も間違っているので、それは動作しません。したがって、次のようなものを使用する必要があります。

reg A, B, C, D, E, F, G, H; 
[email protected](*) 
begin 
    casex(1'b1) 
    A: H= F & G; 
    B: H = F | G; 
    C: H = F^G; 
    default: H = D & E; 
    endcase 
end 

元のポストのコードはマルチプレクサを表します。 'case'ステートメントを使用して表現する標準的な方法を上に示します。コードは、変数 'A'、 'B'または 'C'のいずれかが '1'にな​​ると、対応するステートメントがシミュレーションで実行されることを意味します。

+0

@Dijkgraafあなたの右に、私はいくつかのexplantionを追加しました。 – Serge