2946|3

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

一个简单的小程序,求助 [复制链接]

下面是小弟编的一个加减计数器的程序, 
module count4(clk,pwm_pro,count); 
input clk; 
input pwm_pro; 
output [7:0]count; 
reg[7:0]count; 
reg flag; 
initial  
begin 
flag=1'b0; 
count=8'b00000000; 
end 

always @ (posedge clk) 
begin 
 if(count==8'b11111111)     
  flag <=1'b1; 
 if(count==8'b00000000) 
  flag <=1'b0; 
end 

always @ (negedge clk) 
if(pwm_pro) 
begin 
 if(flag==1) 
  count <= count-1'b1; 
 else if(flag==0) 
  count <= count+1'b1; 
end 
endmodule 
功能仿真的时候好像没什么问题 
 
 (原文件名:未命名.jpg) 
引用图片


但是时序仿真时候就会出面下面的情况 
 
 (原文件名:2.jpg) 
引用图片



这是为什么呢?要则么才能解决呢,小弟谢谢各位了~ 
此帖出自FPGA/CPLD论坛

最新回复

在同一个程序段,最好不要用上升沿和下降沿同时触发电路,这样造成编译器时钟信号添加反相器,对时钟信号的布局布线有影响,降低可靠性。同时,由于对时钟信号进行处理,所以时序仿真可能出问题!  详情 回复 发表于 2011-9-20 20:24
点赞 关注
 

回复
举报

16

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
你的意思是说时序仿真时出现很多毛刺?是吗?那是因为在出现毛刺的地方信号跳变的位数比较多,比如从7变到8时,“00000111”变到“00001000”,有4位信号跳变,所以有较多毛刺,跳变位数越多越明显,建议在输出时加上一到两级寄存器延时以消除毛刺,希望我的理解正确!
此帖出自FPGA/CPLD论坛
 
 

回复

732

帖子

0

TA的资源

纯净的硅(高级)

板凳
 
不建议使用这样的代码 。
initial语句貌似不可综合吧 所以在代码(testbench除外)中最好不要使用
要对cnt进行初始化的话 可以考虑使用复位信号 。。。
此帖出自FPGA/CPLD论坛
个人签名学习的乐趣在于分享。
 
 
 

回复

6892

帖子

0

TA的资源

五彩晶圆(高级)

4
 

在同一个程序段,最好不要用上升沿和下降沿同时触发电路,这样造成编译器时钟信号添加反相器,对时钟信号的布局布线有影响,降低可靠性。同时,由于对时钟信号进行处理,所以时序仿真可能出问题!

此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
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
快速回复 返回顶部 返回列表