集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2535|回复: 4

新手求助一个关于计数器产生毛刺的问题

[复制链接]
tanzh106 发表于 2011-3-29 09:40:04 | 显示全部楼层 |阅读模式
本帖最后由 tanzh106 于 2011-3-29 09:41 编辑

很简单的一个记数模块,实现从0到依次加1到255,然后再回到0的计数输出
代码如下
library ieee;
use ieee.std_logic_1164.all;
entity addr is
        port ( clock : in std_logic;
                   addr : buffer integer range 0 to 255);
end addr;
architecture behav of addr is
  begin
        process (clock)
          begin
                if (clock'event and clock='1') then addr<=addr+1;
                  if addr=255 then addr<=0;
              end if;
            end if;
  end process;
end behav;

可是为什么仿真波形会有毛刺,请看附件图片
计数值每增加2,就会产生毛刺,如图中的245、246中间247、248之间
求前辈们指点小弟,如何消除
小弟在这里拜谢了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
至芯汪老师 发表于 2011-3-29 13:45:45 | 显示全部楼层
这个,你用的时序仿真,应该是时钟频率较高导致的,把时钟周期调大一般就没了。

另外 integer的数据类型不好,从开始就养成好习惯,定义成 7 downto 0
roger7313 发表于 2011-3-29 15:17:49 | 显示全部楼层
基本上產生glitch算是正常現象
除非你對此要求甚高
可以提供你幾個方向思考
1. 考慮setup time
2. clock調慢
3. 加入constrain
zzzdaizi 发表于 2011-3-29 20:56:09 | 显示全部楼层
d触发器好像可以消除毛刺
 楼主| tanzh106 发表于 2011-3-29 21:40:58 | 显示全部楼层
回复 3# roger7313


    您好,想请问一下,如何加入constrain
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-4-19 15:40 , Processed in 0.067551 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表