计数器产生的门控时钟问题
设计中需要由计数器产生一个时钟供后级电路使用,计数器将一个全局时钟rdy_60分频,当reg_zip=cnt时产生一个脉冲a,使用a做为时钟驱动后级!基本代码如下:
process(rdy_60,reg_zip)
begin
if(rdy_60'event and rdy_60='1')then
if(reg_zip=cnt)then
cnt<="0000000000000001";
a<='1';
else
cnt<=cnt+'1';
a<='0';
end if;
end if;
由于a为门控时钟,直接使用a驱动后级电路会给后级电路带了很多不稳定的因素,因此将a做为触发器的使能端,来产生一个由全局时钟rdy_60得到的稳定时钟b,增加的代码如下:
if(rdy_60'event and rdy_60='1')then
if(a='1')then
b<='1';
else
b<='0';
end if;
end if;
可能是我的第二个代码写法不对,b还是不稳定,求消除门控时钟的正解!!! |