3074|1

6892

帖子

0

TA的资源

五彩晶圆(高级)

楼主
 

Verilog程序实现功能不对怎么办啊? [复制链接]

对给定的4个输入in1,in2,in3,in4,对应4个输出c1,c2,c3,c4,每个输出随着输入的上升沿来到而+1,就是c1计算in1上升沿的个数,c2,c3,c4类似,接下来对c1,c2,c3,c4进行比较,当c1,c2,c3,c4中有两个以上的数相同时,让输出等于这个数。程序中还设置了个复位键reset,当reset为1时,复位。
程序如下:
module ronghe(c,in1,in2,in3,in4,c1,c2,c3,c4,reset);
input reset,in1,in2,in3,in4;
inout c1,c2,c3,c4;
reg [15:0] c1,c2,c3,c4;
output [15:0] c;
reg[15:0] c;

always @(posedge in1 )
begin
if (reset)  c1<=0;
else        c1<=c1+1;
end

always @(posedge in2 )
begin
if (reset)  c2<=0;
else        c2<=c2+1;
end

always @(posedge in3 )
begin
if (reset)  c3<=0;
else        c3<=c3+1;
end

always @(posedge in4 )
begin
if (reset)  c4<=0;
else        c4<=c4+1;
end

always@(c1 or c2 or c3 or c4 or reset)
begin
if(reset)                                          c<=0;
else if(c1==c2 && c1==c3 && c1==c4)                c<=c1;
else if(c1==c2 && c1==c3)                          c<=c1;
else if(c1==c2 && c1==c4)                          c<=c1;
else if(c1==c3 && c1==c4)                          c<=c1;
else if(c2==c3 &&  c2==c4)                         c<=c2;
else if(c1==c2)                                    c<=c1;
else if(c1==c3)                                    c<=c1;
else if(c1==c4)                                    c<=c1;
else if(c2==c3)                                    c<=c2;
else if(c2==c4)                                    c<=c2;
else if(c3==c4)                                    c<=c3;
else                                               c<=0;
end
endmodule
问题:仿真时,我设置仿真时间为1us,in1,in2,in3,in4是以10ns为周期的时钟激励,结果得到的输出的问题是等了几个周期输出c才开始有数,然后在输入的两个周期之间会莫名其妙的多出来一些数,例如对应第一个方波,计数应该是00001,对应第二个方波应该是00002,对应第3个方波应该是00003,然后有时在第n和第n+1个方波间,会多显示出来0000x,000xx等数字。
此帖出自FPGA/CPLD论坛

最新回复

1. 把您的仿真波形贴出来看看。 2. ISE和quartus都推荐同步编码风格,你的不是。 3. 10ns对应100M,你做的是功能仿真吗?如果不是,可能是约束问题。 供参考。谢谢!  详情 回复 发表于 2010-9-19 09:17
点赞 关注
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 

回复
举报

73

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

我的看法——

1. 把您的仿真波形贴出来看看。
2. ISE和quartus都推荐同步编码风格,你的不是。
3. 10ns对应100M,你做的是功能仿真吗?如果不是,可能是约束问题。
供参考。谢谢!
此帖出自FPGA/CPLD论坛

赞赏

1

查看全部赞赏

 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
Microchip 直播|利用motorBench开发套件高效开发电机磁场定向控制方案 报名中!
直播主题:利用motorBench开发套件高效开发电机磁场定向控制方案
直播时间:2025年3月25日(星期二)上午10:30-11:30
快来报名!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表