Как определяются Q и Q 'в первый раз во флип-флопе JK?

Dec 01 2020

Мой опыт работы в области компьютерных наук, и я впервые пишу в электронике SE. Это принципиальная схема триггера JK.

Я не понимаю, как это работает вначале, когда схема включается впервые. Насколько я понимаю, Q и Q 'еще не имеют значения, тогда как работает схема? Я читал с этого сайта . Я пробовал еще три сайта, но не нашел объяснения.

Ответы

12 hacktastical Dec 01 2020 at 12:41

JK-флоп может включиться в любом состоянии. При идеально подобранных воротах шансы составить 50-50 для каждого штата. Остальная часть системы должна инициализировать известное желаемое состояние или не заботиться об этом. То же самое и с флопом D.

Это то же самое, что иметь в программе неинициализированную переменную. Пока переменная не установлена, любые значения, которые зависят от нее (включая ее самого), неизвестны.

Аппаратное моделирование этого флопа будет отображаться как состояние «X» до тех пор, пока в нем не появится 0 или 1. В противном случае он останется «X», если J и K равны 0 (удерживать) или 1 (переключить).

В реальном оборудовании (например, в программном обеспечении) могут происходить неизвестные вещи в зависимости от того, как используется вывод с неизвестным состоянием.

Вариант этого флопа имеет прямые входы установки и сброса для принудительного перехода в начальное состояние с помощью отдельных сигналов (например, сброса). В этом случае можно определить поведение при запуске.

БОЛЬШЕ: логическая схема, показанная для JK, - дерьмо. На самом деле это стробируемая защелка JK , и она представляет опасность, когда оба входа J и K равны «1», а тактовая частота высока: она становится кольцевым генератором из-за проблемы «гонки вокруг».

К сожалению, хотя связанная статья обсуждает это, она дает мучительный ответ об использовании очень узкого тактового импульса, чтобы избежать проблемы «гонки вокруг». Это вводит в заблуждение. Флопы JK на основе интегральных схем используют пару защелок, соединенных как 2 ступени («ведущий-ведомый» или «срабатывающий по фронту»), и не имеют проблемы «гонки вокруг».

Еще одна жалоба. Логическая схема, приведенная для JK типа 74xx73, не только неполная (не показывает установку / сброс), но и неверна (74xx73 использует конструкцию с двумя защелками «ведущий-ведомый», а не с закрытой защелкой). Я оставил примечание для автор страницы, чтобы они это исправили.

В этом ответе подробно обсуждается проблема с закрытой защелкой JK. SR FlipFlop Вопрос

И вот: защелка JK, возможна ошибка Ben Eater?

10 JohnDoty Dec 02 2020 at 00:08

Когда впервые включается питание, это нельзя понимать как цифровую схему. Для реальной физической схемы входы и выходы могут быть от 1 до 0 или даже больше . Часть проектирования логических примитивов скрывает это от дизайна более высокого уровня, но это «дырявая абстракция». Рассмотрим следующий простой пример:

смоделировать эту схему - Схема, созданная с помощью CircuitLab

Теперь, прямо как цифровая схема, если Out1есть 0, Out2есть 1или, наоборот, навсегда. Итак, что происходит при включении питания?

Представьте, что при включении оба Out1и Out2есть 0. В этом состоянии Not1и Not2будет направлять свои выходы в сторону 1. Но где-то посередине 0и 1они переключатся, поедя обратно 0. В схеме никогда не бывает идеального баланса, и также присутствует тепловой шум, случайным образом влияющий на этот процесс. Таким образом, один из двух инверторов переключает выходную полярность раньше другого и выигрывает гонку 1. Это сводит другого к нулю. Схема может ненадолго колебаться, не ведя себя как хорошая логическая логика, но она быстро переходит в четко определенное логическое состояние. С реальной схемой обычно наблюдается предвзятое случайное поведение: одно состояние предпочтительнее другого, но есть некоторая случайность.

2 ShashankVM Dec 01 2020 at 16:15

Q и Q 'еще не имеют значения, тогда как работает схема?

Это правильно. Невозможно узнать, как будет работать схема.

Чтобы исправить это, мы можем использовать асинхронный или синхронный вход RESET или PRESET, чтобы установить выход в известное состояние. Асинхронный вход не зависит от часов, но синхронный вход зависит от часов.

Вот эталонная схема для JK-триггера Master-Slave с асинхронным сбросом и установочными входами.

JK Flip-Flop с асинхронным входом сброса и SET

смоделировать эту схему - Схема, созданная с помощью MultisimLive

Это схема JK-триггера с асинхронным СБРОСОМ и ПРЕДУСТАНОВКОЙ. Высокий уровень на входе асинхронного сброса устанавливает Q равным, LOWа Q 'равным HIGH, и эта операция не зависит от часов. Аналогично, a HIGHна асинхронном входе PRESET устанавливает Q равным, HIGHа Q 'равным LOW.

За работой:

Когда вход RESET есть HIGH, выход элемента НЕ (U11) будет LOW. Выход логического элемента И-НЕ (U12) станет, HIGHпоскольку один из входов имеет значение LOW. Это установит для выхода логического элемента И-НЕ (U13) Q значение LOW. Точно так же можно проанализировать и другие случаи, оставив читателю в качестве упражнения.

Заметка:

Поведение не определено для случая, когда заданы как PRESET, так и RESET HIGH, поскольку это не разрешено (и бессмысленно).

дальнейшее чтение

Раздел 2 этой статьи Клиффорда Каммингса, Дона Миллса и Стива Голсона особенно актуален, поэтому я цитирую его здесь.

Для отдельных ASIC основной целью сброса является приведение дизайна ASIC в известное состояние для моделирования. После того, как ASIC построен, необходимость сброса ASIC определяется системой, применением ASIC и конструкцией ASIC. Например, многие ASIC для передачи данных по тракту предназначены для синхронизации с потоком входных данных, обработки данных и их последующего вывода. Если синхронизация когда-либо теряется, ASIC выполняет процедуру повторного получения синхронизации. Если этот тип ASIC спроектирован правильно, так что все неиспользуемые состояния указывают на состояние «начать получение синхронизации», он может правильно работать в системе без сброса. Сброс системы потребовался бы при включении питания такой ASIC, если бы конечные автоматы в ASIC использовали преимущество сокращения логики «безразлично» на этапе синтеза.

Мы считаем, что, как правило, каждый триггер в ASIC должен иметь возможность сброса независимо от того, требуется это системе или нет. В некоторых случаях, когда конвейерные триггеры (триггеры сдвигового регистра) используются в высокоскоростных приложениях, сброс некоторых триггеров может быть исключен для достижения более высокой производительности. Для этого типа среды требуется заранее определенное количество тактов в течение активного периода сброса, чтобы перевести ASIC в известное состояние.

ASIC: специализированная интегральная схема