gpt4 book ai didi

syntax-error - '='的语法错误

转载 作者:行者123 更新时间:2023-12-03 08:05:32 24 4
gpt4 key购买 nike

我有以下Verilog HDL代码。它基本上是一个两位加法器,将ab相加,并且具有PG单元,进位生成单元(cg_unit)和Sum单元(s_unit)。 ci是两位加法器的随身携带。 sel是激活木马的手段,即否定s[1]的值。 coutminus1cout分别只是进位携带和进位携带之前的进位。

module trojan
(
input [1:0] a, b,
input ci, sel,
output [1:0] s,
output cout, coutminus1
);

wire [1:0] c, p, g;
cla_pg_unit_2bits pgu1(a, b, p, g);
cla_cg_unit_2bits cgu1(p, g, ci, c);
cla_s_unit_2bits su1(p, {c[0], ci}, s);
coutminus1 = c[0];
cout = c[1];

always@(sel)
begin
if (sel == 1)
assign s[1] = ~s[1];
else
assign s[1] = s[1];
end
endmodule

由于某种原因,我收到以下语法错误:
Following Verilog source has the following syntax error: token is '=' 
coutminus1 = c[0];
^

最佳答案

在这行中:

coutminus1 = c[0];
cout = c[1];

关键字 assign丢失。您的代码还存在其他一些问题。我建议将其更改为以下内容:
module trojan
(
input [1:0] a, b,
input ci, sel,
output [1:0] s,
output cout, coutminus1
);

wire [1:0] c, p, g, tmp;

cla_pg_unit_2bits pgu1(a, b, p, g);
cla_cg_unit_2bits cgu1(p, g, ci, c);
cla_s_unit_2bits su1(p, {c[0], ci}, tmp);

assign coutminus1 = c[0];
assign cout = c[1];
assign s = {(sel) ? ~tmp[1] : tmp[1], tmp[0]};

endmodule

关于syntax-error - '='的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26832515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com