Курс 9 • Урок 2 из 8 • 3 часа учебной нагрузки

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

Цель: Разобраться в D-, JK- и T-триггерах, понять тактовое управление, захват данных по фронту и назначение setup/hold.

3 часа короткая теория, самостоятельная практика, проверка результата и тест.

Суть темы

Триггер — последовательностный элемент, который изменяет состояние в определённый момент управления, чаще всего по фронту тактового сигнала. Это отличает его от простой асинхронной защёлки и позволяет строить синхронные регистры, счётчики и конечные автоматы.

D-триггер удобно воспринимать как «снимок» входа D в момент активного фронта clock. JK- и T-триггеры добавляют режимы переключения, полезные в счётчиках и управляющей логике.

  • D-триггер по активному фронту переносит значение D на Q и затем удерживает его до следующего фронта.
  • Setup time задаёт, как долго D должен быть стабилен до фронта, hold time — после него.
  • JK-триггер устраняет запрещённую комбинацию классического RS: J=K=1 обычно означает переключение состояния.
  • T-триггер при T=1 инвертирует Q на каждом активном фронте и поэтому естественно делит частоту на два.
  • Асинхронные preset/clear, если они предусмотрены, действуют вне тактового режима и требуют отдельного анализа активных уровней.

Ключевые связи и параметры

Фронтовое управление позволяет всему цифровому устройству менять состояние согласованно. Между фронтами комбинационная логика вычисляет следующее состояние, а на фронте регистры его фиксируют. Такой подход лежит в основе синхронного проектирования.

Нарушение setup/hold может привести к метастабильности: выход не обязан мгновенно принять корректный 0 или 1. Особенно опасны асинхронные сигналы, приходящие относительно clock в произвольный момент; их обычно синхронизируют каскадом триггеров.

D-FF: Q(next)=D at active clock edgeT-FF: T=0 → hold; T=1 → Q(next)=¬QJK: 00 hold; 10 set; 01 reset; 11 toggle

Разбор примера

Если D=1 установлен заранее и остаётся стабильным вокруг положительного фронта CLK, после фронта Q становится 1. Любые изменения D между фронтами не меняют Q до следующего захвата.

T-триггер с T=1 и входной частотой 1 МГц меняет Q на каждом фронте; полный период Q занимает два периода clock, поэтому частота выхода равна 500 кГц.

Практическая работа и проверка

Исследуйте триггер на генераторе медленного clock и логическом анализаторе, чтобы видеть D/J/K/T, CLK и Q одновременно.

  1. Проверьте захват D по одному фронту и отсутствие реакции между фронтами.
  2. Переведите JK через четыре комбинации J/K и составьте таблицу переходов.
  3. Установите T=1 и измерьте отношение частот CLK и Q.
  4. Подайте асинхронный preset/clear, если он имеется, и определите активный уровень.
  5. Сместите изменение D ближе к фронту clock и обсудите, почему реальная схема имеет требования setup/hold.
Не пытайтесь намеренно вводить дорогую систему в метастабильность; такие эксперименты выполняют только на учебной логике с безопасными частотами.

Типичные ошибки и диагностика

  • Считать D-триггер прозрачным для входа D между тактовыми фронтами.
  • Игнорировать setup/hold при передаче данных между тактовыми доменами.
  • Смешивать таблицы JK и RS и считать J=K=1 запрещённым режимом.
  • Забывать, что асинхронные reset/preset могут иметь инверсные входы.

Если регистр иногда захватывает неверный бит, проверяют качество clock, временные отношения D к фронту и синхронизацию асинхронного источника. Систематическая инверсия reset часто связана с неверным пониманием активного уровня.

Связь с реальным устройством

D-, JK- и T-триггеры дают разные способы управляемого хранения и переключения состояния, но все требуют понимания такта и временных ограничений.

Что нужно запомнить

  • D-триггер фиксирует D на активном фронте.
  • Setup/hold описывают окно стабильности входа.
  • JK при 11 переключает состояние.
  • T при единице делит частоту на два.
  • Асинхронные входы рассматривают отдельно от clock.
Проверка знаний

Вопросы по уроку

Нужно 75%
Загрузка вопросов…