【发布时间】:2014-10-19 03:46:32
【问题描述】:
我正在尝试为 2 的补码加法器编写“逆变器”函数。我的导师希望我使用 if/else 语句来实现它。该模块应该采用 8 位数字并翻转位(因此从零到一/从一到零)。我写了这个模块:
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.
有人介意向我解释我做错了什么吗?这一切都很新,而且很困惑:)。谢谢!
【问题讨论】:
标签: verilog