我一直在試圖建立一個返回(3位)輸入的二進制補碼錶示(第一位是符號)的模塊。我認爲下面的代碼是正確的概念,但我可能失去了一些東西它的結構:當我嘗試編譯,我得到以下錯誤:Verilog中的二進制補碼
(vlog-2110) Illegal reference to net "f_o".
(vlog-2110) Illegal reference to net "f_o".
(vlog-2110) Illegal reference to net "f_o".
搜索該錯誤表明使用時,它通常出現一個變量作爲輸入和輸出在同一時間,但這不是我的情況。你能指出錯誤在哪裏嗎?
module ca2 (a_i,f_o);
input [2:0] a_i;
output [2:0] f_o;
always @(a_i[2:0] or f_o[2:0])
begin
if (a_i[2] == 1)
begin
f_o[2] = a_i[2];
f_o[1:0] = (~a_i[1:0] + 'b1);
end
else
begin
f_o = a_i;
end
end
endmodule
非常感謝你......這種「小」的東西,我不能把它放在手指上! – Ironil