VHDL 编译一过程出现了一个bug,不知道什么原因

2019-07-16 01:26发布

是基于计数器的 按键消抖进程.
仿效http://www.eefocus.com/fpga/279313这篇文章中的第一个.

process(sw1,clk)
begin
        if clk='1' and clk'event then
                if sw1='0' then --当按键时开始执行
                        if count=1000  then
                                count=count; --当数到最后一个数(这里设置为1000即1000个时钟周期)
                        else
                                count<=count+1;--当没有数到头时继续数
                        end  if;
                        if count=999 then --数到999时 给出实际在组合逻辑部分要使用的输入信号sw1_pro.设置第999个时钟周期时才给出 实际输入信号("消抖"信号 )旨在筛选出宽脉冲而去除窄脉冲。并且给定了sw1_pro的下降沿,即count=999时是上升沿,count=1000时为下降沿,可知sw1_pro的脉冲宽度同步为一个时钟周期。
                                sw1_pro<='0';
                        else
                                sw1_pro<='1';
                        end if;
                else
                        count<=0; --按键松开或者抖动干扰中相当于按键松开的无效(高电平)时间里计数置零。
end process ;


在编译中提示错误好像是针对 count.说it does not hold value outside the clock edge.求问 哪里错了

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。