打印

一个VDHL的程序问题

[复制链接]
2250|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
TE, ge, ic, ST, logic
我做的是一个6分频的程序,如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY div_6 IS
GENERIC( DWITH : INTEGER := 6);
PORT( clkin : IN STD_LOGIC;
    clkout: OUT STD_LOGIC
  );
END ENTITY;
ARCHITECTURE arc_div_6 OF div_6 IS
SIGNAL temp : INTEGER RANGE DWITH-1 DOWNTO 0;
BEGIN
PROCESS(clkin)
BEGIN
  IF(clkin'EVENT AND clkin = '1')THEN
   IF( temp = 5 )THEN
    temp <= 0;
   ELSE
    temp <= temp + 1;
   END IF;
  END IF;
END PROCESS;

PROCESS(temp)
BEGIN
  IF temp < DWITH/2 THEN
   clkout <= '0';
  ELSE
   clkout <= '1';
  END IF;
END PROCESS;
END ARCHITECTURE;

做功能仿真时波形很正常,但是做时序仿真的时候波形是这样的

未命名.jpg (308.97 KB )

未命名.jpg

相关帖子

沙发
小伟哥1101|  楼主 | 2009-11-25 11:20 | 只看该作者
不知道为什么中间会有那瞬间的低电平呢,有人可以帮忙解决下吗?

使用特权

评论回复
板凳
amtek| | 2009-11-25 11:44 | 只看该作者
clkout不要用组合逻辑输出,用时序逻辑输出就OK了

  temp用组合逻辑做,clkout用时序逻辑做

使用特权

评论回复
地板
小伟哥1101|  楼主 | 2009-11-25 12:28 | 只看该作者
3# amtek
clkout用时序逻辑电路之后是解决了这个问题,谢谢~
但是我还是不明白其中的原因,为什么会出现这样的现象呢?

使用特权

评论回复
5
amtek| | 2009-11-25 13:17 | 只看该作者
组合逻辑由于各输入信号的延迟不同(到达门的时间不同),造成输出出现glich
  时序逻辑是D-Q反转,当然没有glitch.

  时序逻辑只要setup time 和 hold time 没问题,就不会出现亚稳态。

使用特权

评论回复
6
小伟哥1101|  楼主 | 2009-11-26 16:57 | 只看该作者
5# amtek
原来如此,谢谢啦~

使用特权

评论回复
7
amtek| | 2009-12-2 08:59 | 只看该作者
LZ 别光顾谢,上分!

使用特权

评论回复
8
857078094| | 2009-12-2 23:01 | 只看该作者
出现了毛刺,你可以在后面加一段消除毛刺的程序就可以了。

使用特权

评论回复
9
ic00| | 2009-12-4 22:42 | 只看该作者
你可以采用流水线设计思路,也可以解决这个问题的

使用特权

评论回复
10
ic00| | 2009-12-17 17:19 | 只看该作者
你在用IF 。。。。。ELSE 时最好配对,如果没有,就会出问题,你要明白,你是在设计硬件电路,不是软件。在C语言中,这样一来说,是没有问题的。

使用特权

评论回复
11
waiting1988| | 2010-5-21 22:43 | 只看该作者
那个是毛刺现象,你应该去除毛刺

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

10

帖子

1

粉丝