D-триггер (DFF)

Входы (Inputs)

ПинТипОписание
DbitВход данных
ClockbitТактовый сигнал: запись по фронту 0→1

Выходы (Outputs)

ПинТипОписание
QbitСохранённое значение

Логика работы

Представь фотовспышку: пока кнопка не нажата, сцена может меняться как угодно, но на снимок попадает ровно один кадр. D-триггер работает так же: между «вспышками» он просто держит на выходе Q последний снимок входа D. Это и есть память в чистом виде — ни вентили, ни провода ничего не помнят, а DFF помнит.

Главное свойство: значение D фиксируется строго в момент фронта такта — перехода Clock из 0 в 1. Всё, что происходит на D между фронтами, триггер игнорирует. Пусть на первом такте D = 1 — после фронта Q = 1; на втором такте D = 0 — после фронта Q = 0; а на третьем D дёрнулся в 1 уже после фронта — Q останется равным 0 до следующего такта.

Нюанс: внутри DFF — четыре NAND-вентиля, соединённые в пару защёлок master-slave. Пока одна защёлка принимает данные, вторая закрыта, поэтому «гонки» невозможны: прозрачной передачи нет, и на выход попадает ровно то значение, которое было на D в мгновение фронта.

Примеры (последовательность тактов)

Такт (фронт Clock)D в момент фронтаQ после фронта
111 — единица записана
200 — записан ноль
31 (изменился уже после фронта)0 — прежнее значение сохранено
411 — записана новая единица

Обрати внимание на такт 3: изменение D после фронта не влияет на выход — фронт уже прошёл.

Применение

Уровень 11 — первое знакомство с памятью. Из D-триггеров собирается вся тактируемая часть компьютера: восемь DFF на общем Clock образуют 8-битный регистр (уровень 12), а триггеры живут и внутри счётчика команд, и внутри индексного регистра. Осознание, которое даёт этот уровень: один DFF = один бит памяти.

Конкретное применение — «задержка на такт» и хранение флага: подай на D результат сравнения, и Q будет стабильно держать его до следующего такта, как бы ни дёргался вход. Именно так процессор запоминает бит нуля, а схемы управления решают, выполнять ли переход.

Собери это сам →

Смежные компоненты

Статьи по теме

Частые вопросы

Чем DFF отличается от защёлки?

Защёлка реагирует на уровень сигнала, DFF — на фронт такта: значение фиксируется в момент перехода Clock из 0 в 1.

Что хранит DFF между тактами?

Последнее записанное значение — один бит памяти, который обновляется только по фронту Clock.

Что будет, если Clock постоянно держать в 1?

Ничего: фронтов больше нет, и Q навсегда сохранит последнее записанное значение. Новая запись случится только после спада и следующего фронта.

Почему DFF называют «одним битом памяти»?

Потому что он хранит ровно один бит до следующего фронта такта. Восемь таких триггеров, соединённых параллельно, дают один байт — то есть регистр.