Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Электроника в приборостроении.doc
Скачиваний:
219
Добавлен:
02.05.2014
Размер:
8.49 Mб
Скачать

9.4.2. Синтез комбинационных логических цепей

Разработчики цифровых систем очень часто сталкиваются с необходимостью синтеза логических цепей, не имеющих аналогов, в виде серийных интегральных микросхем. Ниже рассматривается методика, позволяющая синтезировать простейшие цифровые КЛЦ различного назначения. Методика синтеза включает три пункта, выполняемые последовательно.

1. Формализация словесно заданного алгоритма функционирования КЛЦ;

2. Минимизацию полученного характеристического уравнения КЛЦ;

3. Преобразование минимизированного характеристического уравнения КЛЦ к виду, удобному для реализации на логических элементах заданного типа.

Рассмотрим методику синтеза КЛЦ на конкретном примере.

Пример. Пусть необходимо построить 3-х входовую логическую цепь, выходной сигнал которой равен 1, когда на входе большинство сигналов равно 1. Такая цепь называется мажоритарной. В качестве элементной базы следует взять логические элементы И-НЕ.

  1. По словесно заданному алгоритму составляем таблицу истинности (рис. 9.6а). Поскольку в данном случае имеются три входных сигнала Х1, Х2, Х3, каждый из которых может принимать одно из двух возможных значений (0 или 1), то всего может быть 23 = 8 различных комбинаций этих сигналов. Следовательно, таблица истинности будет содержать 4 столбца (3 – для входных переменных Х1, Х2, Х3 и 1 – для выходной переменной Y) и 8 строк – по числу возможных комбинаций входных переменных. Четырем из этих комбинаций должен соответствовать выходной сигнал, равный 1 (строки 3, 5, 6, 7).

2. Записываем заданную логическую функцию в виде уравнения. Уравнение записывается для строк, где выходная переменная Y = 1. Таким образом, в данном уравнении имеем 4 слагаемых. Каждое слагаемое есть произведение входных переменных, взятых с инверсией или без, в зависимости от того, чему равна (соответственно 0 или 1) эта переменная в данной строке. Таким образом, получим уравнение синтезируемой цепи

В данном уравнении первое слагаемое, например, соответствует строке таблицы истинности, где X1, X2 и X3 соответственно равны 0, 1, 1.

3. Проводим минимизацию полученного уравнения. Под минимизацией понимают нахождение наиболее простого выражения заданной логической функции. Для минимизации используются два метода: алгебраический и топологический.

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

Как видим, полученное конечное выражение явно проще исходного.

4. По заданию логическая цепь должна быть построена на элементах И-НЕ. Поэтому надо привести минимизированную функцию к виду

используя правила де Моргана. Из последнего выражения видно, что для построения проектируемой схемы потребуются следующие элементы И-НЕ: три двухвходовых и один трехвходовый. (рис. 9.6б).

Рис. 9.6

Путь алгебраических преобразований универсален, но конечный результат зависит от квалификации специалиста, проводящего минимизацию. Для функций, содержащих не более пяти - шести аргументов, удобно проводить минимизацию топологическим методом – с помощью карт Карно (диаграмм Вейча). Этот путь минимизации нагляден и гарантирует, при соблюдении небольшого числа формальных правил, наиболее простое конечное выражение.

Топологический метод минимизации (с помощью карт Карно) реализуется следующим образом.

1. Заданная логическая функция приводится к дизъюнктивной нормальной форме (ДНФ), т.е. в виде логической суммы простых конъюнкций. Простой конъюнкцией называется логическое произведение переменных, взятых с отрицаниями или без них, в котором каждая переменная встречается не более одного раза. В простую конъюнкцию не должны входить суммы переменных, отрицания функций двух или более переменных.

Простая конъюнкция, в которую входят все аргументы рассматриваемой логической функции, называется минтермом. Именно в виде суммы минтермов получаем логическую функцию, когда записываем ее, исходя из таблицы истинности. Если исходная логическая функция задана в виде формулы, то для приведения ее к ДНФ можно использовать законы и тождества алгебры логики.

2. Составление и заполнение карты Карно (КК). Карта Карно есть прямоугольная таблица, число клеток которой равно 2k, где k – количество входных переменных заданной логической функции. Каждой клетке КК ставится в соответствие определенная конъюнкция, причем делается это таким образом, чтобы в соседних клетках (снизу и сверху, слева и справа) конъюнкции отличались не более чем одним сомножителем. Чтобы выполнить данное условие, проводят разметку КК.

Один из возможных вариантов разметки для 2-х, 3-х и 4-х переменных представлен на рис. 9.6в. Горизонтальные и вертикальные черточки указывают на те области КК, где соответствующая переменная (1-я, 2-я, 3-я или 4-я) входит в конъюнкцию без инверсии.

При заполнении КК в соответствующую клетку ставится 1, если минимизируемая функция при данном наборе аргументов равна 1, или 0, если минимизируемая функция при данном наборе аргументов равна 0. Возможны случаи, когда минимизируемая функция при данном наборе аргументов оказывается неопределенной. Тогда в соответствующую клетку КК заносится знак Х.

На рис. 9.6в,г показан пример заполнения КК для формулы из рассматриваемой задачи. Здесь единица в верхней строке КК соответствует конъюнкции , а три единицы в нижней строке – конъюнкциям соответственно.

3. Проведение контуров. Данная операция позволяет объединить клетки КК, содержащие единицы, в блоки.

При проведении контуров придерживаются следующих правил:

- контур должен быть прямоугольным;

- внутри контура должны быть только клетки, заполненные единицами;

- число клеток в контуре должно быть целой степенью числа 2, т.е. может быть равно 1, 2, 4, 8 и т. д.;

- одни и те же клетки могут входить в несколько контуров;

- при проведении контуров самая нижняя и самая верхняя строки КК считаются соседними, то же – для крайнего левого и крайнего правого столбцов;

- количество контуров должно быть минимальным, а их объем – максимальным.

В КК рассматриваемой задачи содержится четыре единицы, которые объединяются в три контура (рис. 9.6г).

4. Считывание контуров позволяет записать минимизированную функцию, в которой:

- количество контуров определяет количество слагаемых;

- объем контура определяет количество сомножителей данного слагаемого: если контур охватывает половину клеток КК, то он описывается одной переменной; если контур охватывает четверть клеток КК, то он описывается двумя переменными; если контур охватывает одну восьмую клеток КК, то он описывается тремя переменными и т.д.

Чтобы ответить на вопрос: какие именно переменные являются сомножителями в данном слагаемом, необходимо учесть следующее правило: контур описывают только те переменные, которые в пределах этого контура не меняют своего значения. Так, например, контур, куда входят единица из верхней строки и средняя единица нижней строки, будет описан произведением Х1Х2.

Переменной Х3 в обозначении этого контура не будет, т.к. в верхнюю клетку контура данная переменная входит с инверсией, а в нижнюю – без. Выписывая обозначения всех трех контуров, находим выражение, уже полученное нами ранее алгебраическим методом:

Y = X1X2 + X2X3 + X1X3.