问题描述
下面的波形控制一个递增/递减计数器。
Counter Waveform
计数器的运行方式如下:
- CEA达到正常速度时加计数
- 当CEA的速度达到2倍时,向下计数的速度快两倍
- 计数器达到0时输出逻辑1
- 重复
TCU1是计数器的输出。
Countera显示其操作。
CEA是行车时钟。
我设法正确地编写了计数逻辑,但是我想不出一种方法来检测CEA的运行速度是否快一倍。我已经知道,如果将倒计时机制与CEA的速度联系起来,它将自动倒数两倍。但是,我的问题是检测何时应该进行向上/向下。这样做最简单的方法是什么?
process (CLK)
variable count : integer := 0;
begin
if(rising_edge(CLK)) then
if(countUp='1') then
count := count+1;
TCU1 <= '0';
else if (countUp='0') then
if(count=0) then
TCU1 <= '1';
else if(count>0) then
count := count-1;
end if;
end if;
end if;
end if;
end if;
end process;
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)