13.1. ОБРАТНАЯ СВЯЗЬ В СЧЕТЧИКАХ




Возьмем паралельный счетчик из предидущей секции и добавим к нему
обратную связь, что бы по достижении 101 он асинхронно сбрасывался в 0.
(т.е. считать он будет: 000,001,010,011,100,  000...)
Добавим обратную связь





Основная проблема - после включения питания состояние триггеров в счетчике может быть любым, и если у счетчика нет внешнего сигнала сброса то комбинационные связи в счетчике должны быть сделаны таким образом, чтобы выводить счетчик на основной цикл счета:




Добавим обратную связь, что бы счетчик обновлялся по достижению 0xb VHDL програма для двоичного счетчика 0..f library ieee; use ieee.std_logic_1164.all; use ieee.STD_LOGIC_UNSIGNED.all; use ieee.std_logic_arith.all; entity count4 is port ( clk,reset : in std_logic; count: out std_logic_vector(3 downto 0)); end count4; architecture Example of count4 is signal count_i: std_logic_vector(3 downto 0); begin process(clk,reset) begin if (reset = '1') then count_i <= "0000"; elsif rising_edge(clk) then count_i <= count_i + '1'; if count_i = "1011" then count_i <= "0000"; end if; end if; end process; count <= count_i; end Example;



Имплементация счетчика в Xilinx Virtex-II


Пример BCD счетчика




Пример счетчика считающего до 6 в коде Грея:




Index Prev Next