2746|3

11

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

请教VHDL的7段led译码输出毛刺相关问题 [复制链接]

请教高手:用quartus仿真了个7段led译码器,功能仿真输出正常,但时序仿真输出有很多毛刺,还没找到解决的方法,望高手给点建议,谢谢!

--------------------------------------------------------------------
--Led七段译码器
--共阴
--date:2012.09.27
--------------------------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity led_7bitdecoder is
    port(datain : in   std_logic_vector(03 downto 0);
            en  : in std_logic;
         dataout: out  std_logic_vector(06 downto 0));
end led_7bitdecoder;
architecture Led_7bit_Decoder of led_7bitdecoder is
signal reg_7 : std_logic_vector(06 downto 0);
begin
   process(en,datain,reg_7)
   begin
     if en='1' then
         case datain is
            when "0000" => reg_7<="1000000" ; --0
            when "0001" => reg_7<="1111001" ; --1
            when "0010" => reg_7<="0100100" ; --2
            when "0011" => reg_7<="0110000" ; --3
            when "0100" => reg_7<="0011001" ; --4
            when "0101" => reg_7<="0010010" ; --5  
            when "0110" => reg_7<="0000011" ; --6
            when "0111" => reg_7<="1111000" ; --7
            when "1000" => reg_7<="0000000" ; --8
            when "1001" => reg_7<="0011000" ; --9
            when "1010" => reg_7<="0001000" ; --A
            when "1011" => reg_7<="0000011" ; --B
            when "1100" => reg_7<="0100111" ; --C
            when "1101" => reg_7<="0100001" ; --D
            when "1110" => reg_7<="0000110" ; --E
            when "1111" => reg_7<="0001110" ; --F
            when others =>  null;
        end case;
        dataout<=reg_7;
    end if;
  end process;
  --dataout<=reg_7;
end  Led_7bit_Decoder;

[ 本帖最后由 ksqnhm 于 2012-9-27 13:49 编辑 ]

功能仿真.jpg (73.02 KB, 下载次数: 0)

功能仿真图

功能仿真图

时序仿真.jpg (71.65 KB, 下载次数: 0)

时序仿真图

时序仿真图
此帖出自FPGA/CPLD论坛

最新回复

楼上两位已经说的很清楚了: 1是重新编码,解决竞争与冒险出现的毛刺 2是采用时钟采样 3就是直接用7段码显示译码芯片咯,当然这个就跟VHDL就没关系啦 4还有可以根据毛刺大小和你刷新频率给电路加滤波,呵呵  详情 回复 发表于 2012-11-7 14:29
点赞 关注
 

回复
举报

6892

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 
时序仿真毛刺,由于竞争冒险产生。解决这个问题,只能从编码问题去解决。让逻辑电路不产生竞争与冒险。
此帖出自FPGA/CPLD论坛
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 
 

回复

4

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
输入连时钟都没有啊。加个时钟去采样,毛刺就没了。
此帖出自FPGA/CPLD论坛
 
 
 

回复

269

帖子

0

TA的资源

纯净的硅(中级)

4
 
楼上两位已经说的很清楚了:
1是重新编码,解决竞争与冒险出现的毛刺
2是采用时钟采样
3就是直接用7段码显示译码芯片咯,当然这个就跟VHDL就没关系啦
4还有可以根据毛刺大小和你刷新频率给电路加滤波,呵呵
此帖出自FPGA/CPLD论坛
个人签名一个人,一本书,一杯茶,一帘梦。
 
 
 

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

随便看看
查找数据手册?

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