20 / 63 · Теория
D-триггер: от уровня к фронту
Сравните моменты обновления защёлки и триггера, свяжите понятия регистра, setup и hold.
Уроки доступны бесплатно. Запишитесь, чтобы сохранять прогресс.
Высокий уровень такта и момент его появления различаются
ЗащёлкаЗащёлка — элемент хранения, который следует за входом, пока управляющий сигнал активен, и удерживает значение, когда он неактивен. Этим она отличается от триггера, записывающего данные только на фронте. Подробнее с высоким активным уровнем следует за D всё время CLK=1. D-триггерТриггер записывает вход на заданном фронте такта и удерживает его до следующего фронта. Вход должен удовлетворять ограничениям setup и hold. по положительному фронтуПоложительный фронт — момент перехода такта из 0 в 1. Его следует отличать от уровня, означающего весь интервал CLK=1. принимает D на переходе CLK из 0 в 1 и хранит до следующего такого фронта. Условие clk=1 само по себе не делает эти два поведения одинаковыми.
Выполните сравнение:
- При CLK=0 измените D на 1. Оба Q пока равны 0.
- Поднимите CLK до 1. Оба Q станут 1.
- Оставьте CLK=1 и измените D на 0. Только Q защёлки станет 0.
- Опустите CLK до 0, затем снова поднимите до 1. Триггер тоже захватит 0.
Предположим, что оба q первоначально равны 0. D-защёлка следует за D при CLK=1 и удерживает значение при CLK=0. D-триггер захватывает D только при переходе CLK из 0 в 1.
Один цикл последовательностной схемы
Когда выход Q триггера проходит через комбинационную схему и образует следующий вход D, получается переход состояния. Пусть — вход перед фронтом, — сохранённое состояние после него. Идеальная модель:
Реальный выход меняется не мгновенно вместе с фронтом, а после clock-to-Q. Несколько триггеров принимают собственные входы на одном фронте, поэтому могут вычислять следующие состояния из прежних состояний друг друга. На этом основаны счётчики и сдвиговые регистрыРегистр хранит многобитное состояние. Синхронные регистры в этом курсе записывают определённый вход на фронте тактового сигнала..
- Текущее Q: Сохранённое состояние этого цикла
- Комбинационная схема: Вычислите D по Q и внешним входам
- Следующий положительный фронт: Запишите D при выполнении временных ограничений
- Новое Q: Следующее состояние на выходе после задержки clock-to-Q
Setup и hold — предпосылки выборки
D должен оставаться устойчивым в течение setupВремя предустановки (setup) — минимальное время, в течение которого входные данные должны быть стабильны до захватывающего фронта такта. При нарушении результат записи не гарантирован. Подробнее до фронта захвата и holdВремя удержания (hold) — минимальное время, в течение которого входные данные должны оставаться стабильными после захватывающего фронта такта. Учитывайте контекст: это не то же самое, что обычное сохранение значения. Подробнее после него. Если D меняется около фронта, нельзя гарантировать просто старое или новое значение; возможна метастабильность. Упражнение выше не моделирует этот аналоговый эффект.
Регистр объединяет несколько триггеров. Ширина 8 бит сама по себе не гарантирует, что восемь входных битов образуют одно согласованное значение. Нужны общие временные условия и правила передачи данных.
Начальное состояние и сброс
Начать симуляцию с Q=0 — не то же самое, что гарантированно включить оборудование с нулём. В следующей лекции добавим reset и enable, определив инициализацию и хранение. Синхронный reset действует на фронте, асинхронный — независимо от него, но требует внимания и к моменту снятия.
Попробуйте сами
При CLK=1 вход D меняется 0→1→0, а перед следующим положительным фронтом устанавливается в 1. Когда меняются Q защёлки и триггера? Обновится ли триггер на фронте дважды?
Прочитать объяснение
Защёлка следует изменениям D всё время CLK=1. Триггер игнорирует эти изменения и один раз захватывает допустимое D=1 на следующем положительном фронте. Для реальной схемы нужно учитывать setup, hold и clock-to-Q.