Хотя фронт - это четко определенный момент времени, неверно утверждать, что запуск уровня также не имеет четко определенного момента времени. Оно делает. Существует четко определенный момент времени, когда уровень часов падает, входы в синхронизированную цепь дискретизируются, и дальнейшие изменения входов больше не допускаются.
Проблема с запуском уровня заключается в том, что, хотя уровень синхронизации высок, входы меняют выходы. В цепях с обратной связью (выходы подключены обратно к входам) срабатывание уровня вызывает хаос, потому что уровень достаточно широк (полчаса), чтобы выход мог возвращаться на входы в течение того же периода.
Tт + 1
Первое очевидное решение, которое предлагает себе сократить уровень до такой степени, что нежелательная обратная связь невозможна (и сохранить уровень «вкл» коротким, даже если мы произвольно замедлим тактовый период). Предположим, что мы очень быстро переключаем тактовую частоту с 0 на 1 и обратно на 0, чтобы синхронизированные устройства принимали свои входы, но у выходов не было достаточно времени, чтобы пройти через цепь обратной связи, чтобы изменить эти входы. Проблема в том, что узкие импульсы ненадежны и, в основном, требуют отклика, который может быть на несколько порядков быстрее тактовой частоты. Мы можем обнаружить, что нам нужен импульс шириной в наносекунду, хотя система работает на частоте всего 1 МГц. Итак, у нас есть проблема распределения чистых, острых, достаточно высоких импульсов шириной в наносекунду по шине, рассчитанной на 1 МГц.
Следующий логический шаг заключается в том, чтобы устройства генерировали для себя узкий импульс в качестве производной по времени фронта тактового сигнала. Когда часы переходят с одного уровня на другой, сами устройства могут внутренне генерировать короткий импульс, который вызывает выборку входов. Нам не нужно распространять этот импульс непосредственно через шину часов.
Таким образом, в конце концов, вы можете считать, что все это вызвано уровнем. Краевой запуск - это хитрость, позволяющая устройствам создавать очень точный уровень запуска, который быстрее, чем все внешние петли обратной связи, позволяя устройствам быстро принимать входные данные, а затем своевременно закрывать вход, прежде чем их изменяющиеся выходы изменят значения входов. ,
Мы также можем провести аналогию между сигналом «активировать» (часы, запускаемые по уровню) и дверью на корабле, который удерживает давление воздуха. Запуск по уровню подобен открытию двери и выходу воздуха. Однако мы можем построить воздушный замок, который состоит из двух (или более) дверей, которые не открываются одновременно. Вот что произойдет, если мы разделим часы уровня на несколько фаз.
Простейшим примером этого является триггер мастер-раб . Он состоит из двух D-триггеров, запускаемых по уровню, расположенных в каскаде. Но тактовый сигнал инвертирован, поэтому вход одного включен, а другой отключен, и наоборот. Это как дверь воздушного шлюза. В целом, триггер никогда не открывается, так что сигнал может свободно проходить. Если у нас есть обратная связь с выхода триггера обратно на вход, это не проблема, потому что он переходит на другую фазу синхронизации. Конечным результатом является то, что триггер «ведущий-ведомый» демонстрирует поведение, запускаемое с фронта! Полезно изучить триггер «ведущий-ведомый», потому что он может что-то сказать о взаимосвязи между уровнем и срабатыванием фронта.