JK- и T-триггеры
← Все статьи

JK- и T-триггеры

5 мин

За пределами запрещённого состояния

У SR-защёлки есть неопределённая, запрещённая комбинация: S=R=1. JK-триггер — это то, во что превращается элемент SR-типа, когда этот пробел закрыт: он определяет полезное поведение для всех четырёх комбинаций входов.

  • J=0, K=0: удерживать текущий выход без изменений.
  • J=1, K=0: установить выход в 1.
  • J=0, K=1: сбросить выход в 0.
  • J=1, K=1: переключить — инвертировать выход на противоположный. Это ровно та комбинация, что была запрещена в SR-защёлке, а теперь стала однозначно определена, потому что JK-триггер считывает J и K только по тактовому фронту, а не непрерывно.
JKДействие00Удержать01Сбросить10Установить11Переключить

T-триггер: только переключение

Соедините входы J и K JK-триггера вместе — и получится T-триггер (от toggle, «переключение»): один вход T, который при значении 1 переключает выход на каждом тактовом фронте, а при 0 удерживает его. В Boolflow T-триггер поставляется отдельным готовым блоком, наряду с JK-триггером.

Почему T-триггеры собирают счётчики

Соедините T-триггеры цепочкой так, чтобы выход каждого тактировал следующий, а вход T у всех постоянно держите в 1: первый бит переключается на каждом такте, второй — каждый раз, когда первый падает из 1 в 0, третий — каждый раз, когда падает второй, и так далее — это и есть двоичный счёт. Триггеры в Boolflow срабатывают по нарастающему фронту, а выход ~Q нарастает ровно в тот момент, когда Q падает, поэтому подключайте вывод ~Q каждой ступени ко входу такта следующей (если подключить Q напрямую, счётчик будет считать вниз). Такую схему называют счётчиком со сквозным переносом (ripple): каждая ступень меняется только после предыдущей. Собственный блок CNT4 в Boolflow — синхронная альтернатива: все четыре бита меняются по одному и тому же тактовому фронту.

Попробуйте сами

Соберите вручную цепочку из четырёх T-триггеров в редакторе схем, где выход каждого тактирует следующий, и сравните с готовым блоком CNT4, тактируемым тем же CLOCK, — последовательность счёта та же, но цепочка триггеров устанавливается ступень за ступенью, а не сразу. Попробуйте подключить Q вместо ~Q — счёт пойдёт вниз.

Открыть пример счётчика со сквозным переносом →