Различные реализации триггера JK

Я знаю следующие варианты триггера SR:

  1. Использование комбинации NAND-NAND

    введите описание изображения здесь введите описание изображения здесь

  2. Использование комбинации AND-NOR

    введите описание изображения здесь введите описание изображения здесь

Я догадывался, как мы можем получить триггер JK для каждого из этих вариантов. Ниже я нашел подход, показывающий, как мы можем преобразовать триггер NAND-NAND SR в триггер JK:введите описание изображения здесь

Итак, используя описанный выше подход, мы получаем,

S = J'Q и R = KQ

Однако я не нашел ни одного текста / веб-сайта, объясняющего, как преобразовать триггер AND-NOR SR в триггер JK. Итак, я попробовал себя следующим образом:

введите описание изображения здесь

Используя описанный выше подход, мы получаем

S=J'+KQ' и R=K'+Q'

Я искал в Интернете правильность этого. Ничего не нашел. Нашел только эту страницу, на которой показано флип-флип JK с использованием ворот NOR-NOR следующим образом:

введите описание изображения здесь

Этот флип-флоп поставляется с KQ и JQ', что определенно не соответствует тому, что у меня есть.

Может ли кто-нибудь сказать, был ли я прав с S=J'+KQ' и R=K'+Q', или я ошибался, и приведенная выше диаграмма верна?

Редактировать

Еще немного подумав, я чувствую, что понял. Поскольку у нас есть две реализации SR-триггера, мы должны иметь две реализации JK-триггера: 1-я реализация заменяет запрещенное состояние в NAND-NAND SR-триггере состоянием переключения, а 2-я реализация заменяет запрещенное состояние в AND-NOR SR-триггере. с переключаемым состоянием. То, что я пытался сделать, это использовать триггер AND-NOR SR для подготовки первой реализации триггера JK !!! Если я попытаюсь подготовить вторую реализацию триггера JK с триггером AND-NOR SR, я получу следующее:

введите описание изображения здесь

Результат выглядит более разумным. Я получаю S=J+Q и R=Q'+K, в отличие от S=J'+KQ' и R=K'+Q', которые я получил ранее. Вы считаете это правильным? Я считаю, что последнее изображение перед редактированием в любом случае неверно, верно?

Вы можете использовать рядом с любым цифровым симулятором, чтобы проверить свое решение. Из личного опыта могу порекомендовать Logisim .
Я не понимаю, что я должен проверить, симулируя здесь. Я хочу знать, действительна ли версия триггера JK, которую я придумал с различными вариантами SR, или нет. Как симуляция может определить, является ли схема действительным триггером JK, потому что я не знаю, приемлемо ли само поведение выхода в качестве выхода триггера JK. Нужен знающий человек для подтверждения.
Поскольку вы спросили: «Может ли кто-нибудь сказать, был ли я прав...», вы можете сравнить с готовым триггером JK.
Но так как некоторые источники предоставляют два варианта (NAND NAND и AND NOR) триггера SR, я не нашел текста / веб-сайта, на котором были бы представлены два соответствующих варианта триггера JK. Все они обеспечивают одинаковый триггер JK, полученный из триггера NAND-NAND SR. Я чувствую, что будет неправильно, если я сравню таблицу истинности триггера JK, полученную из триггера NAND NAND SR, с таблицей истинности триггера JK, полученную из триггера AND NOR SR.
Но разве JK-триггеры не ведут себя одинаково, независимо от их внутреннего состава NAND NAND FF или AND NOR FF? Итак, если ваша логика верна, он ведет себя как любой другой триггер JK. Или у нас есть недопонимание относительно «триггера» (который срабатывает по фронту) и «защелки» (срабатывает по уровню)?
Почти все сайты и тексты обсуждают версию NAND NAND триггера JK, ни один не обсуждает версию AND NOR. Тот, который обсуждается (последнее изображение перед редактированием), дает ту же таблицу истинности, что и версия NAND NAND. Википедия объясняет защелку NOR здесь и защелку NAND здесь . Показано, что оба имеют разные таблицы истинности. В разделе закрытой защелки в таблице истинности указано «То же, что и защелка SR без синхронизации».
Возможно, это связано с тем, что NAND намного проще создать в кремнии, чем AND.

Ответы (1)

Первая часть ответа, все еще есть открытые концы...


Можно найти, поэкспериментировав с упомянутым логическим симулятором, но можно получить и с помощью мышления.

Таблица триггера AND NOR кажется мне неправильной.

  1. Когда оба S и R равны 0, это тот же случай, когда CLK равен 0 из-за И. Поэтому это нельзя запретить.
  2. Существует запрещенное изменение состояния, если S и R оба равны 1, а CLK изменяется с 1 на 0. Цепь начинает колебаться, поэтому это должно быть запрещено. Это то же самое, что и для другого триггера.

Он должен быть равен таблице триггера NAND NAND относительно действий. Но когда и S, и R равны 1, а CLK равен 1, триггеры выдают разные значения. NAND NAND FF устанавливает Q и Q' на 1, AND NOR FF устанавливает оба на 0.

Вы можете использовать преобразования из NAND в NOR, чтобы понять, почему это должно быть так.


Использование детектора пульса — вещь сложная, если не сказать опасная. Вы не можете быть уверены, что сгенерированный импульс достаточно широк, чтобы соответствовать условиям настройки для следующих ворот.

Как я узнал, флип-флоп с срабатыванием по фронту в реальном мире состоит из двух триггеров с срабатыванием по уровню с дополнительной чувствительностью к уровню. Это называется "хозяин-раб".


Извлеченный урок: не каждый веб-сайт, который выглядит поучительно, выполняет свои обещания.

Таблицы истинности для двух RS-триггеров должны быть идентичными, если вы сохраните входные метки для двух схем такими, какие они есть. Таблица Nand/Nand верна сама по себе.
@Джеймс Спасибо! Правильно для «установить» и «сбросить», я отредактирую свой ответ. Но для обоих по 1 оба триггера выводят разные значения.
@busybee Да, согласен. Запрещенное состояние входа для обоих RS-триггеров — с обоими входами на высоком уровне. Для Nand/Nand оба входа на высоком уровне дают на обоих выходах высокий уровень. Для And/Nor оба входа высокого уровня дают обоим выходам низкий уровень. Добрался в итоге! Слишком поздно редактировать свой комментарий.