[求助] 新手求助,急求!

求知鸟   2011-11-17 14:44 楼主

哪位大虾能告诉我这程序问题出哪里啦啊?

 

语法没错误,但是综合就报错啊!而且我也不知道咋改?

 

做的是把四位加法器串成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)

你的程序运行完了之后,有没有错误,如果有错误可以看错误提示,还是你程序运行通过,但是结果出不来呢?
我爱电子!
点赞  2011-11-17 18:50
always
{Co,OUT}=A+B+cin;
这个对么
点赞  2011-11-17 19:08
语法检查能通过啊,就是综合通不过啊?报错

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
点赞  2011-11-17 21:37
always
{Co,OUT}=A+B+cin;
endmodule

我单独做为一个模块了,能综合仿真啊。
点赞  2011-11-17 21:40

从编译提示上看:

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

一个为理想不懈前进的人,一个永不言败人! http://shop57496282.taobao.com/ 欢迎光临网上店铺!
点赞  2011-11-21 09:17
谢谢了,搞定了!
点赞  2011-11-24 14:59

怎么搞定的?问题在哪里?

一个为理想不懈前进的人,一个永不言败人! http://shop57496282.taobao.com/ 欢迎光临网上店铺!
点赞  2011-12-2 13:42
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复