求教如何去除毛刺
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; 好像一般加D触发器可以去毛刺吧 第一个IF里面的语句有问题吧你时钟的状态和对last—active的判断分开写 你这种写法我没见过
good luck! clkin'last_active>=2 ns 这种写法没见过,可不可以给我解释下啊
这样吧,你加个复位信号,复位信号的时间远大于毛刺的时间,设计脱离复位后开始分频毛刺早过了 可以试试先用电阻电容做滤波,再用施密特整形,,,,应该可以的 貌似工程里常用的就是加电容吧。
最基本的电容滤波电路就可以
当然D flip flop也可以 你太有才了写的居然是不可综合语句! 我是路过打酱油的..
页:
[1]