我一直在试图建立一个返回(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