首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >4位加减器Verilog代码错误

4位加减器Verilog代码错误
EN

Stack Overflow用户
提问于 2021-05-01 22:18:35
回答 1查看 237关注 0票数 1

我正在尝试用Verilog代码做一个4位加减器,但是我的代码中有一些我不能解决的问题。我不确定是testbench还是Verilog错了。有没有人能帮我一下?此外,当我试图模拟它时,它给出了加载错误。

我的Verilog代码:

代码语言:javascript
运行
复制
module addsubparameter (A, B, OP, C_out, Sum);

input A,B;
input OP;
output C_out;
output Sum;

wire C_out, Sum;
reg assigning;

always@(OP)
begin
if (OP == 0)
    assigning = A + B + OP;
else
    assigning = A + (~B + 1) + OP;
end

assign {C_out, Sum} = assigning;

endmodule

module adder (a, b, op, cout, sum);
parameter size = 4 ;

input [3:0] a, b;
output [3:0] sum;

input op;
output cout;
wire [2:0] c;

genvar i;
generate
for (i = 0; i < size; i = i + 1) begin: adder
    if (i == 0)
        addsubparameter (a[i], b[i], op, sum[i], c[i]);
    else if (i == 3) 
        addsubparameter (a[i], b[i], c[i-1], cout, sum[i]);
    else
        addsubparameter (a[i], b[i], c[i-1], sum[i], c[i]);
end 
endgenerate
endmodule

这是我的测试平台:

代码语言:javascript
运行
复制
module addsub_tb();

reg [3:0] a;
reg [3:0] b;
reg op;

wire [3:0] sum;
wire cout;

adder DUT (a,b,op,sum,cout);

initial begin
    a = 4'b1010; b = 4'b1100; op = 1'b0; #100;
    a = 4'b1111; b = 4'b1011; op = 1'b1; #100;
    a = 4'b1010; b = 4'b1010; op = 1'b0; #100;
end
      
endmodule
EN

回答 1

Stack Overflow用户

发布于 2021-05-02 00:04:28

您的模拟器应该生成错误和/或警告消息,因为您有语法错误。如果没有,在edaplayground上注册一个免费帐户,在那里你可以访问多个模拟器,这些模拟器将产生有用的消息。

您需要添加实例名称。例如,我在下面一行中添加了i0

代码语言:javascript
运行
复制
    addsubparameter i0 (a[i], b[i], op, sum[i], c[i]);

端口连接宽度不匹配,这些指示连接错误。使用按位置连接时,这是一种常见的错误类型。您错误地将sum信号连接到cout端口,反之亦然。您应该按名称使用connections。例如,更改:

代码语言:javascript
运行
复制
adder DUT (a,b,op,sum,cout);

至:

代码语言:javascript
运行
复制
adder dut (
    .a     (a),
    .b     (b),
    .op    (op),
    .cout  (cout),
    .sum   (sum)
);

将此编码样式用于所有实例。

您不会收到模拟警告,但您可能会收到有关不完整敏感度列表的综合警告。更改:

代码语言:javascript
运行
复制
always@(OP)

至:

代码语言:javascript
运行
复制
always @*
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67347238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档