На этом форуме мне сообщили, что запуск по фронту может быть решением для многократного распространения в цепи с обратной связью (выход подключен обратно к входу).
Но мне кажется, что запуск по фронту оставляет схему в совершенно несогласованном состоянии. Посмотрите на это (одноэлементный счетчик пульсаций триггера JK).
Пусть тактовый вход является сигналом, запускающим фронт, и посмотрите на первое поле НЕ-И в J, когда все входы в J имеют высокий уровень, кроме часов. В тот момент, когда часы становятся высокими, начинается распространение. Край длится наносекунду, поэтому он, вероятно, закончится до того, как значение распространится через NAND. В любом случае, низкий сигнал длительностью наносекунды будет проходить через выход первой И-НЕ, за которым будут следовать длинные интервалы высокого сигнала. Эта композиция доберется до второго верхнего И-НЕ, и И-НЕ изменит значения соответственно, далее разветвится на другое И-НЕ плюс вход, и все это выглядит для меня отличным примером несогласованного состояния схемы - кто знает что. там произойдет?
Я что-то не совсем понимаю о срабатывании по краю. Что это такое? Спасибо за время!
Трудно понять, о чем вы спрашиваете, без какой-то временной диаграммы.
Тем не менее, я попытаюсь угадать, в чем ваша проблема:
Существует широкое взаимозаменяемое неправильное использование терминов «затворная защелка», «триггер» и «триггер, запускаемый фронтом». Предоставленная вами схема представляет собой не триггер JK, запускаемый фронтом, а защелку JK с вентилем, обычно называемую триггером JK.
В отличие от триггеров, запускаемых по фронту, которые изменяют состояние только по переднему фронту тактового сигнала, стробируемые защелки могут изменять состояние в течение всей положительной фазы тактового сигнала. Это означает, что если входы J или K изменяются, когда тактовый сигнал находится на высоком уровне, выход стробируемой защелки также может измениться (что неверно для триггеров, запускаемых фронтом).
Однако, если входы J и K поддерживаются постоянными в течение положительной фазы тактового сигнала, выходной сигнал стробируемой защелки JK установится на известное значение (с одним исключением, описанным ниже), которое может быть получено из значений J, K и Q на переднем фронте часов. ПРИМЕЧАНИЕ: тот факт, что мы смотрим на значения сигналов на нарастающем фронте, не означает, что эта защелка JK срабатывает по фронту, потому что мы предполагали, что входы не изменятся во время положительной фазы тактового импульса!!!
Теперь к вашему вопросу: кажется, вы не можете понять, как именно выход может установиться на известное (и детерминированное) значение, принимая во внимание две присутствующие петли обратной связи. Что ж, единственный способ убедить себя — это предположить некоторые начальные условия на выходе и проследить, что происходит для каждой возможной комбинации входных данных (кроме J=1,K=1).
Следующие два пункта сделают вашу жизнь проще:
РЕДАКТИРОВАТЬ: А как насчет случая J = 1, K = 1? Ну, в этом случае JK gated-latch становится мультивариатором (надеюсь, термин правильный) — его выходы будут периодически меняться в течение положительной фазы часов. В логических схемах такая комбинация входов недопустима, поэтому обычная практика состоит в том, чтобы связать их вместе следующим образом (который называется D-защелкой):
Обратите внимание, что в этой схеме нет необходимости в обратной связи, потому что выходы полностью определяются значением входа D.
Чтобы построить JK-триггер, запускаемый фронтом, можно последовательно соединить две JK-защелки следующим образом (существуют и другие конфигурации). Обратите внимание, что пути обратной связи идут от выхода второй защелки к входу первой:
В этой конфигурации больше нет ограничений на комбинацию входов J=1, K=1 - эта комбинация входов означает "переключение выхода". Так называемый T-триггер, запускаемый фронтом, обычно получается из вышеупомянутого триггера JK, запускаемого фронтом, путем связывания входов J и K вместе.
Базовый триггер JK страдает от проблемы синхронизации, называемой гонкой, когда триггерный импульс слишком длинный, а схема отправляет обратно запутанные сигналы, которые, я думаю, вы описываете.
Чтобы обойти это, триггерный или тактовый импульс должен быть очень коротким, чтобы он возвращался к «0», прежде чем изменение на выходе может быть передано обратно на входные вентили.
Работа JK-триггера может быть улучшена путем добавления второго RS-триггера, известного как главный-ведомый JK.
По переднему фронту тактового сигнала входные значения J и K передаются и сохраняются в главном триггере, в то время как подчиненный триггер (который управляется инвертированными часами) остается неизменным. По заднему фронту тактового сигнала выходные значения ведущих триггеров передаются и сохраняются в подчиненных триггерах, которые, в свою очередь, управляют выходами триггеров Q и Not Q.
В большинстве реальных схем используются D-триггеры, которые имеют два важных ограничения: время «установки», в течение которого сигнал должен быть постоянным до прихода фронта, и время «удержания» после фронта, в течение которого он не поступает.
Затем схема моделируется и настраивается таким образом, чтобы каждый сигнал поступал в пределах времени установки и не ранее времени удержания. Да, вы можете вставить элемент задержки (например, пару инверторов) для соблюдения ограничений удержания.
Некоторые дизайны D-флопа могут иметь нулевое время удержания, так что, как только появляется преимущество, их вход блокируется и становится стабильным.
(«Край длится наносекунду»: мне кажется, это довольно высоко!)
Триггеры Master-Slave, синхронное переключение с тактовой частотой и тому подобное существуют не просто так. Запуск по фронту может быть спроектирован так, чтобы быть статистически высоконадежным на практике, но опасности и недостатки хорошо известны. Запуск по фронту и асинхронная работа обычно дешевле и проще в целом. Как и в большинстве случаев жизни, это компромисс между многими факторами, и во многих случаях его можно заставить работать «достаточно хорошо». Вряд ли вы найдете его в системах жизнеобеспечения и управления огнем и, надеюсь, в пусковых установках спутников.
Срба
Срба