5.3. JK-ТРИГГЕР





Синхронная JK-защелка



JK- защелка - это RS-защелка в котором устранена неопределенность: если J [S] и K [R] одновременно равны 1 то защелка меняет свое состояние Диаграмма состояний JK-защелки:

принципиальная схема синхронной JK-защелки

--------------------- J K C | Q Q# ------+-------------- X X 0 | lastQ lastQ# 0 0 1 | lastQ lastQ# 0 1 1 | 0 1 1 0 1 | 1 0 1 1 1 | lastQ# lastQ --------------------- карта карно для синхронной JK-защелки JK 00 01 11 10 ---+-------------- 00 | 0 0 0 0 CQ 01 | 1 1 1 1 11 | 1 0 0 1 10 | 0 0 1 1


Синхронная JK-защелка с асинхронным сбросом



принципиальная схема синхронной JK-защелки с асинхронным установочным входом RST, служащим для первоначального сброса защелки в 0. (добавлена логика для асинхронного сброса защелки по сигналу RST)

------------------------ J K C RST| Q Q# ---------+-------------- X X 0 0 | lastQ lastQ# 0 0 1 0 | lastQ lastQ# 0 1 1 0 | 0 1 1 0 1 0 | 1 0 1 1 1 0 | lastQ# lastQ X X X 1 | 0 1 ------------------------- карта Карно: RJK 000 001 011 010 110 111 101 100 ---+-------------------------------- 00 | 0 0 0 0 0 0 0 0 CQ 01 | 1 1 1 1 0 0 0 0 11 | 1 0 0 1 0 0 0 0 10 | 0 0 1 1 0 0 0 0


Создание синхронной JK-защелки из RS-защелки




JK-триггер

DIN/ANSI (треугольник значит работает по фронту)

DIN/ANSI (инверсия и треугольник - значит работает по фронту инверсного сигнала - то есть по спаду прямого сигнала)

Блок-схема JK-триггера:

JK-триггер (работает по фронту):


VHDL програма для JK-триггера с установочным входом RST library ieee; use ieee.std_logic_1164.all; entity JKFF is port( CLK, RST, J, K : in std_logic; Q : out std_logic); end JKFF; architecture Example of JKFF is signal FF:std_logic; -- Flip Flop main data signal CHG:std_logic; -- Change symbol begin process(CLK,RST,CHG) begin if (RST = '1') THEN FF <= '0'; elsif (CLK'event and CLK = '1') THEN CHG <= '1' after 1 ns; end if; if (CHG = '1') then if J = '0' and K = '1' then FF <= '0'; elsif J = '1' and K = '0' then FF <= '1'; elsif J = '1' and K = '1' then FF <= not FF; elsif J = '0' and K = '0' then FF <= FF; end if; CHG <= '0' after 1 ns; end if; end process; Q <= FF after 1 ns; end Example; Результат симуляции JK-триггера:



Создание JK-триггера из D-триггера


Index Prev Next