Уровень 11: Умный запоминатель
Открыть уровень →Где это в машине →
Задание
Соберите D-триггер (DFF). Данные запоминаются по фронту Clock.
D-триггер (DFF) запоминает значение на входе D по фронту тактового сигнала Clock (в момент переключения с 0 на 1).
Главная идея уровня: обратная связь опасна гонками сигналов, поэтому D-триггер двухступенчатый: master слушает данные, slave держит выход, и запись происходит строго по фронту такта. Момент записи задаёт такт, а не данные.
Материалы по теме
- Тактовый генератор и D-триггер
- DFF (D-триггер) — запоминание бита
- Clock — тактовый генератор
- Из чего это собрано: NAND — схема D-триггера
Решение для самопроверки
Сначала попробуйте собрать схему сами. Решение ниже — способ свериться, если застряли или уже справились.
Подсказка в игре на этом уровне вставляет каркас: схема без двух проводов slave-ступени — входа D и обратной связи. Провода нужно замкнуть самим: без них триггер не запоминает, и это лучшая демонстрация того, зачем нужна вторая пара NAND.
Строится по схеме master-slave из четырёх NAND:
1. NAND#1: входы A=D (данные), B=Clock. 2. NAND#2: входы A=выход NAND#1, B=Clock. 3. NAND#3: входы A=выход NAND#1, B=выход NAND#4. 4. NAND#4: входы A=выход NAND#2, B=выход NAND#3.
Первая пара (NAND#1+#2 = master) принимает данные, когда Clock=1. Вторая пара (NAND#3+#4 = slave) запоминает, когда Clock=0.
Эффект шлюза: пока Clock=0, входные данные «заперты» за первым шлюзом и не влияют на выход — изменение D проходит на Q только в краткий момент фронта такта.
Выход NAND#3.Q — это основной выход Q. Тактовый сигнал подайте с предустановленного элемента Clock (pre:Clock) на холсте.