帮我看个Verilog程序,modulesim仿真显示

/*-----------------------用不同循环语句分别设计一个逻辑电路模块,用以统计一8位二进制数中含1的数量。--------------------*/... /*-----------------------用不同循环语句分别设计一个逻辑电路模块,用以统计一8位二进制数中含1的数量。
--------------------*/
module statistics8(sum,data);
input [7:0]data; //input number
output [3:0]sum; //statistics number
reg sum;
integer i;
always@(data)
begin
sum=0;
for(i=0;i<8;i=i+1)
begin
if(data[i])
sum=sum+1;
else
sum=sum;
end
end
endmodule

/*-----------------------test---------------------*/
`define cycle 50
module statistics8_top;
reg [3:0]sum;
reg [7:0]data;
always #`cycle data=data+1;
initial
begin
sum=0;
data=0;
end
statistics8 m(sum,data);
endmodule

然后用modelsim仿真显示:Error: (vsim-3053) D:/EDA_Test/Quartus/statistics8_top.v(11): Illegal output or inout port connection (port 'sum').请问应该怎么修改
展开
 我来答
gangle2008
2012-05-14 · TA获得超过114个赞
知道答主
回答量:69
采纳率:100%
帮助的人:46.7万
展开全部
问题在这里:
output [3:0]sum; //statistics number
reg sum;
sum被定义为位宽为1的寄存器型,而又被定义位宽为4的输出,不是冲突了嘛!
改为
output [3:0]sum; //statistics number
reg [3:0] sum;

起码编译能通过了。
但是能否综合还难说。一看你的编写风格,就是个新手。这种写法不符合业界规范,综合后很费资源的。
追问
嗯,受教了~~~
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
意法半导体(中国)投资有限公司
2023-06-12 广告
单片机,即单片微控制器,也称为单片微型计算机,是将中央处理器(CPU)、存储器(ROM,RAM)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
风雷小草
2012-05-12 · TA获得超过1711个赞
知道小有建树答主
回答量:1174
采纳率:0%
帮助的人:678万
展开全部
testbench里面sum不能是reg型,只能是wire,因为是连线到输出端。
更多追问追答
追问
改成wire也是显示这个错误,我感觉testench里面都可以reg吧,不然initial里面怎么初试化呢
追答
sum是实例的输出,你初始化它干嘛?
看来你还得学习一下基础知识。
可以进IC设计群来向其他人学习一下,群号:230961220
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式