新手求助,急求!

2019-03-25 09:50发布

哪位大虾能告诉我这程序问题出哪里啦啊?   语法没错误,但是综合就报错啊!而且我也不知道咋改?   做的是把四位加法器串成16位加法器   module adder
 (A,
 B,
 cin,
 OUT,
 Co
);
input [15:0] A;
 input [15:0] B;
 input cin;
 output reg [15:0]OUT;
 output reg Co;
wire wire_1,wire_2,wire_3;
adder_a u_adder_1
(.A(A[3:0]),
 .B(B[3:0]),
 .cin(cin),
 .OUT(OUT[3:0]),
 .Co(wire_1));
 
 adder_a u_adder_2
(.A(A[7:4]),
 .B(B[7:4]),
 .cin(wire_1),
 .OUT(OUT[7:4]),
 .Co(wire_2));
 
adder_a u_adder_3
(.A(A[11:8]),
 .B(B[11:8]),
 .cin(wire_2),
 .OUT(OUT[11:8]),
 .Co(wire_3));
 
 adder_a u_adder_4
(.A(A[15:11]),
 .B(B[15:11]),
 .cin(wire_3),
 .OUT(OUT[15:11]),
 .Co(Co));
 endmodule
 
 module adder_a
 (A,B,cin,Co,OUT
 );
input [3:0] A;
 input [3:0] B;
 input cin;
 output reg [3:0] OUT;
 output reg Co;
always
 {Co,OUT}=A+B+cin;
 endmodule 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
jjkwz
1楼-- · 2019-03-25 20:16
< / 你的程序运行完了之后,有没有错误,如果有错误可以看错误提示,还是你程序运行通过,但是结果出不来呢?
常见泽1
2楼-- · 2019-03-26 00:06
 精彩回答 2  元偷偷看……
求知鸟
3楼-- · 2019-03-26 02:19
语法检查能通过啊,就是综合通不过啊?报错

Error (10663): Verilog HDL Port Connection error at adder.v(18): output or inout port "OUT" must be connected to a structural net expression

Error: Can't elaborate top-level user hierarchy
求知鸟
4楼-- · 2019-03-26 07:31
always
{Co,OUT}=A+B+cin;
endmodule

我单独做为一个模块了,能综合仿真啊。
eeleader
5楼-- · 2019-03-26 11:20

从编译提示上看:

       输出OUT调用有点问题,编译通不过。不支持OUT这种调用方法。可以考虑定义一个寄存器先寄存输出结果,然后赋值输出。

求知鸟
6楼-- · 2019-03-26 16:36
谢谢了,搞定了!

一周热门 更多>