Введение в преобразование флип-флопов
В этой статье описываются этапы, необходимые для преобразования данного триггера в требуемый триггер с использованием примера преобразования триггера SR-JK.
Введение
Флип-флопы - это бистабильные однобитовые устройства памяти, которые являются одним из многочисленных цифровых компонентов, используемых в последовательных системах.
Различные типы триггеров в наличии - триггер SR, JK триггер, D триггер и триггер. Каждый из них обладает уникальными характеристиками и, следовательно, приводит к разному выходу для той же комбинации входных состояний. Следовательно, всякий раз, когда мы хотим, чтобы один флип-флоп имитировал поведение другого, нам нужно прибегнуть к методу преобразования триггера.
Создание таблицы возбуждения
Выход триггера в данный момент зависит как от его ввода (ов), так и от его текущего состояния, определяемого информацией, обобщенной и представленной его таблицей истинности. Другими словами, в таблице истинности триггера вывод следующего состояния будет последним столбцом. Этот столбец определяется комбинацией битов в предыдущих столбцах, которые будут входом (-ами), за которым следует его текущее состояние.
Теперь представьте себе, что мы хотим знать последовательность входной комбинации, которая приводит к определенному состоянию вывода. Информация, относящаяся к этому, может быть получена путем обратного отслеживания (в терминах столбцов) информации, представленной таблицей истинности триггера. То есть, мы будем иметь первые два столбца в качестве текущего и следующего состояний триггера, за которым последует столбец (столбцы), представляющий входные триггеры.
Такую таблицу можно точно назвать «таблицей возбуждения», поскольку она указывает возбуждения, которые должны быть предусмотрены на входных штырях триггера, чтобы привести к ожидаемому результату для известного текущего состояния.
Поясняемая концепция может быть дополнительно разъяснена в следующем примере, где мы получаем таблицу возбуждения для триггера SR из таблицы истинности:

Рисунок 1: Таблица истинности и таблица возбуждения SR-триггера
Первая строка в таблице истинности выше показывает, что текущее и следующее состояния триггера будут равны 0 и 0, если его входы равны S = 0 и R = 0.
Такая же комбинация выходных данных появляется даже тогда, когда входы указаны как S = 0 и R = 1, как видно из третьего ряда таблицы истинности. Это указывает на то, что для того, чтобы получить выход триггера SR как 0, мы должны привести входной штифт S к низкому (т. Е. S = 0), в то время как другой вход R может быть вытягиван либо низким, либо высоким (т.е. R = 0 или 1), если его текущее состояние равно 0. Другими словами, входная комбинация S = 0 и R = X (Do not Care) приводит к тому, что следующее состояние триггера будет равным 0 из его текущее состояние, равное 0.
Теперь обратите внимание, что одна и та же информация успешно передается элементами (показанными красным цветом) в первой строке таблицы возбуждения.
Точно так же комбинация 0 и 1 текущего состояния и следующего состояния получается для триггера SR, когда его входы равны S = 1 и R = 0. Эта информация кратко представлена второй строкой таблицы возбуждения (показана в синем цвете).
Следуя тем же основаниям, мы обнаруживаем, что для получения нынешних и следующих состояний триггера как 1 и 0 мы должны иметь S = 0 и R = 1, что указано в записях черного цвета, соответствующих третьей строки таблицы возбуждения.
Наконец, обратите внимание, что S может быть 1 или 0 (т. Е. S = X), а R должно быть 0, чтобы получить текущее и следующее состояния триггера как 1 и 1. Это показано зеленым цветом записи в четвертой строке таблицы возбуждения.
Сделав это, вся информация, содержащаяся в таблице истинности, надлежащим образом переносится в таблицу возбуждения, завершая ее.
Используя ту же процедуру, таблицы возбуждения могут быть получены для всех других типов триггеров: триггера JK, триггера D и триггера T, как показано на рисунках 2, 3 и 4 соответственно:

Рисунок 2: Таблица истины и таблица возбуждения JK-триггера

Рисунок 3: Таблица истины и таблица возбуждения D-триггера

Рисунок 4: Таблица истинности и таблица возбуждения T триггера
Значение «Желание флип-флопа»
Когда мы говорим: «Мы хотим конкретный триггер», это означает, что мы ясно знаем результаты триггера для данной комбинации входов для каждого случая его нынешнего состояния. То есть, у нас есть информация правды о желаемом флип-флопе в наших руках. Однако ожидаемый результат не может быть получен непосредственно от данного триггера, так как его поведение для той же комбинации входных состояний, и текущее состояние будет различным (большую часть времени).
Следовательно, необходимо определить последовательность входных бит в данном триггере, которая приводит к тому же выходу (для определенного текущего состояния), что и в случае желаемого триггера. Как упоминалось ранее, эта информация легко представлена в виде записей в таблице возбуждения данного триггера.
Зная это, следующим шагом будет объединение информации, представленной таблицей возбуждения данного триггера, с информацией, присутствующей в таблице истинности желаемого триггера. Это можно сделать, заполнив записи из таблицы возбуждения данного триггера в соответствующие строки таблицы истинности, соответствующие требуемому триггеру, добавив дополнительный столбец (столбцы), которые представляют входные данные данного резкий поворот. Когда это будет сделано, мы получим новую таблицу, которую мы можем назвать «Таблицей преобразования »:

Рисунок 5: Структура таблицы преобразования
Например, процесс преобразования триггера SR в триггер JK инициируется путем написания таблицы истинности для триггера JK, как показано желтоватым корпусом на рисунке 6. Здесь видно, что первая строка имеет текущие и следующие состояния триггера как 0 и 0 (красные записи в таблице истинности).
Теперь мы рассмотрим таблицу возбуждения триггера SR (показанную в правой части рис. 6), которая имеет строку, указывающую, что текущие и следующие состояния SR-триггера равны 0 и 0. Как видно по красным записям в таблице возбуждения, это соответствует первой строке, для которой входы S = 0 и R = X.
Эта же информация помещается в первую строку таблицы истинности триггера JK, добавляя еще два столбца: S и R (как показано в розовом корпусе на рисунке 6), чтобы привести таблицу преобразования SR-to-JK:

Рисунок 6: Таблица преобразования SR-JK
Аналогично, вторая строка триггера JK имеет текущие и следующие состояния как 1 и 1, которые соответствуют четвертой строке таблицы возбуждения SR триггера (показаны как зеленые записи в соответствующих таблицах). Значения для входов S и R, соответствующие этой выходной комбинации, считаются X и 0 соответственно, которые заполняются во вторую строку таблицы преобразования (снова отображаются зеленым цветом).
Следуя той же процедуре для каждой строки, вся таблица может быть заполнена, чтобы получить заполненную таблицу преобразования триггера SR-JK, как показано в центре на рисунке 6.
Использование K-карты для получения логических выражений
Получив таблицу преобразования, следующий шаг - это получить логические выражения для входов данного триггера в терминах входов желаемого триггера и текущего состояния.
Кроме того, вы должны позаботиться о том, чтобы получить минимальное логическое выражение, чтобы облегчить проектирование схемы с наименьшими возможными воротами. Эта цель может быть достигнута путем использования любой из подходящих булевых методов алгебраического упрощения, таких как метод K-карты.
В соответствии с этим для рассматриваемого примера нам нужно получить выражения для входов S и R в терминах J, K и Q n. Это можно сделать, используя технику упрощения K-карты, как показано на рисунке 7:

Рисунок 7: упрощение K-карт для входов SR-триггера в терминах J, K и Q n
Это приводит к выражению для входа S как JQ̅ n и для входа R как KQ n.
Конверсия Flip-Flop от SR-to-JK
Наконец, используя информацию, предоставленную полученным логическим выражением, мы можем переконфигурировать соединения, которые будут предоставляться на входных выводах данного триггера. Это может быть достигнуто либо просто манипулированием соединениями, либо добавлением дополнительных комбинационных схем, чтобы сделать данный триггер функционально эквивалентным желаемому триггеру.
В приведенном примере логические выражения, полученные для S и R, указывают на две вещи:
- Входной штырь S триггера SR должен питаться выходом двух входного логического элемента И, который управляется J и Q̅ n.
- Входной контакт R триггера SR должен питаться выходом двух входного логического элемента И, который управляется K и Q n.
Оба они должны быть выполнены, чтобы заставить триггер-флоп вести себя как JK-триггер, как показано на рисунке 8:

Рисунок 8: Флип-флоп SR ведет себя как триггер JK
В обзоре
В этой статье мы представили подробную процедуру, которая может быть выполнена для преобразования любого из данных триггеров в любой другой тип триггера. Мы показали это, используя пример, в котором триггер SR выполнен функционально эквивалентно триггеру JK.
Однако следует отметить, что аналогичные шаги также будут полезны для взаимного преобразования между любыми доступными шлепанцами. Мы также можем перекрестно проверить, был ли процесс конверсии успешным или нет. Эти вещи будут рассмотрены в части 2 этой статьи.
Следующая статья в серии: Преобразование флип-флопов - часть II