我正在嘗試爲2的恭維加法器寫入「逆變器」函數。我的老師希望我使用if/else語句來實現它。該模塊應該採取8位數字和翻轉位(所以零到一/零)。我寫這個模塊:嘗試使用if/else塊時在verilog(vcs)中獲取奇怪的錯誤
module inverter(b, bnot);
input [7:0] b;
output [7:0]bnot;
if (b[0] == 0) begin
assign bnot[0] = 1;
end else begin
assign bnot[0] = 0;
end
//repeat for bits 1-7
當我嘗試編譯並使用此命令我得到了以下錯誤編譯:
vcs +v2k inverter.v
Error-[V2005S] Verilog 2005 IEEE 1364-2005 syntax used.
inverter.v, 16
Please compile with -sverilog or -v2005 to support this construct: generate
blocks without generate/endgenerate keywords.
所以我加入了-v2005參數,然後我得到這個錯誤:
vcs +v2k -v2005 inverter.v
Elaboration time unknown or bad value encountered for generate if-statement
condition expression.
Please make sure it is elaboration time constant.
有人向我解釋我做錯了什麼?所有這些都很新穎,而且非常困惑:)。謝謝!