ck2010 发表于 2011-10-16 12:02:11

求教如何去除毛刺

rt,想要编写输入为50MHz系统时钟,输出为10Hz计数时钟的vhdl程序,用按键实现输入,会产生毛刺。。。
想要通过信号的last_active实现去毛刺,但ise显示unsupported Clock statement.,是要包含某个包集合还是什么原因???
求教啊。。。。。。
程序如下:
architecture Behavioral of clk_generate is
   SIGNAL TEMP:STD_LOGIC:='0';
begin

PROCESS(CLKIN)
        VARIABLE COUNT : INTEGER:=0;
BEGIN
        IF(RISING_EDGE(CLKIN) and clkin'last_active>=2 ns)THEN
                COUNT:=COUNT+1;
                IF(COUNT=250000)THEN
                   TEMP<= NOT TEMP;
                        COUNT:=0;
                ELSE NULL;
                END IF;
        END IF;
END PROCESS;
   CLK<=TEMP;
end Behavioral;

pengdan0905 发表于 2011-10-17 14:12:20

好像一般加D触发器可以去毛刺吧

jasonshows 发表于 2011-10-17 16:13:11

第一个IF里面的语句有问题吧你时钟的状态和对last—active的判断分开写    你这种写法我没见过
good luck!

至芯兴洪 发表于 2011-10-19 09:21:39

clkin'last_active>=2 ns 这种写法没见过,可不可以给我解释下啊
这样吧,你加个复位信号,复位信号的时间远大于毛刺的时间,设计脱离复位后开始分频毛刺早过了

zjh6697476 发表于 2011-10-21 16:53:05

可以试试先用电阻电容做滤波,再用施密特整形,,,,应该可以的

ireland_Lover 发表于 2011-10-23 23:10:28

貌似工程里常用的就是加电容吧。
最基本的电容滤波电路就可以
当然D flip flop也可以

cgh996 发表于 2011-10-24 16:30:32

你太有才了写的居然是不可综合语句!

ok1246 发表于 2011-10-24 16:45:43

我是路过打酱油的..
页: [1]
查看完整版本: 求教如何去除毛刺