Как построить функциональную схему
Сигнал, выработанный одним логическим элементом можно подавать на вход другого логического элемента. Это дает возможность образовывать цепочки из отдельных логических элементов. На рисунке 15 показаны примеры таких цепочек.
Рисунок 15. Цепочка из нескольких логических элементов
На рисунке 15 а) элемент ИЛИ (дизъюнктор) соединен с элементом НЕ (инвертор), а на рисунке 15 б) — элемент И (конъюнктор) с элементом НЕ (инвертор). Каждую такую цепочку будем называть логическим устройством: поскольку она состоит из нескольких элементов.
| Цепочку из логических элементов будем называть логическим устройством. Схемы, соответствующие таким устройствам, называют функциональными . |
На рисунке 16 приведен пример более сложной функциональной схемы.
Рисунок 16. Сложная функциональная схема
Составить логическую схему по функциональной формуле достаточно просто. Например, функциональная схема, изображенная на рисунке 16, имеет два входа A и B. До поступления на конъюнктор B отрицается, а затем отрицается результат логического умножения. Все это приводит нас к формуле
которая представляет собой структурную формулу логического устройства. Важно научиться решать и обратную задачу: по структурной формуле вычерчивать соответствующую ей функциональную схему. Усложним задачу. Пусть имеется произвольная логическая функция, требуется построить функциональную схему.
Алгоритм решения такой задачи начинается с построения таблицы истинности. Затем в таблице следует определить одну или несколько строк, с результатом равным 1. На следующем шаге необходимо выписать комбинацию входных переменных, соединенных логическим умножением. Если входная переменная в нужной нам строке имеет значение 0, то она должна войти в логическое выражение с отрицанием. Полученные таким образом конъюнкции требуется логически сложить. Далее полученную формулу нужно сократить с использованием логических законов. Рассмотрим этот алгоритм на следующем примере.
Задача 7. Начертить функциональную схему, соответствующую таблице истинности.
| A | B | F(A,B) |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
Рассмотрим строки, которые в столбце F(A,B) дают истину (эти строки в таблице выделены). Составим по первой строке выражение (A следует отрицать, потому что в таблице стоит 0), аналогичное выражение по третьей строке дает . Соединяем два последних выражения союзом ИЛИ, получим . Вычерчиваем по логическому выражению функциональную схему.
Рисунок 17. Функциональная схема логической функции .
| Логическую функцию F(A,B)=Ā Λ B V A Λ называют операцией XOR (исключающее или) и обозначают . |
Еще один пример построения функциональной схемы.
Начертить функциональную схему, соответствующую таблице истинности.
| A | B | C | результат |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 0 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 |
Выделяем в таблице строки, когда результатом функции является истина.
| A | B | C | результат |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 |
Для первой строки последней таблицы имеем.
для второй строки —
для третьей строки —
(24) для четвертой строки —
(25) и для пятой строки —
Соединяем выражения (22)-(26) логическим сложением. Будем иметь
Теперь требуется упростить (27) на основе логических законов. .
| Таким образом, получили: . | (28) |
Построим функциональную схему. Для этого потребуется отрицание A с последующим умножением на B, затем на C и, наконец, сложение с A. Полученная функциональная схема представлена на рисунке 18.
1.4. Построение функциональных схем дискретных устройств на бесконтактных логических элементах.
Известно, что дискретные устройства могут строиться на различных наборах логических элементов. Важно, чтобы эти наборы были полными, т.е. реализовывали бы функционально полную систему логических функций.
Напомним, что к наиболее распространенным функционально полным наборам логических элементов относятся следующие наборы:
1) из трех элементов И, ИЛИ, НЕ (основной набор);
2) из двух элементов И, НЕ;
3) из двух элементов ИЛИ, НЕ;
4) из одного элемента ИЛИ-НЕ (НИ-НИ, элемент Пирса);
5) из одного элемента И-НЕ (элемент Шеффера).
Логические элементы И, ИЛИ, НЕ реализуют соответственно функции конъюнкции, дизъюнкции и отрицания (инверсии) и обозначаются по ГОСТу как показано на рис. 1.15.
Универсальный элемент ИЛИ-НЕ реализует функцию отрицания дизъюнкции (стрелка Пирса). Выходной сигнал равен произведению инверсий входных сигналов. Универсальный элемент И-НЕ реализует функцию отрицания конъюнкции (штрих Шеффера). Выходной сигнал равен сумме инверсий входных сигналов.

Любая логическая функция представляет собой набор символов, связанных знаками дизъюнкции, конъюнкции и инверсии. Других операций нет. Поэтому возможность реализации любой логической функции с помощью основного набора логических элементов (И, ИЛИ, НЕ) очевидна, а с помощью остальных наборов — не очевидна.
С помощью универсального приема двойного инверсирования можно показать, как реализуются основные операции алгебры логики (конъюнкция, дизъюнкция и инверсия) на функционально полных наборах, состоящих из одного и двух логических элементов.
Рассмотрим, например, реализацию основных операций алгебры логики на наборе ИЛИ-НЕ.
Необходимо рассмотреть реализацию трех основных функций.
Операция НЕ. В элементе ИЛИ-НЕ задействуется только один вход, тогда элемент работает как инвертор (рис. 1.16). Используется один элемент ИЛИ-НЕ.

Операция И.Воспользуемся приемом двойной инверсии:

Видим, что следует реализовать функцию отрицания дизъюнкции для двух инверсных сигналов (рис. 1.7). Необходимы три элемента ИЛИ-НЕ.

Имеем инверсию от инверсии дизъюнкции, т.е. сначала ИЛИ-НЕ, потом НЕ. Для реализации необходимы два элемента ИЛИ-НЕ (рис. 1.18).

Рассмотрим реализацию основных операций алгебры логики на наборе И-НЕ.
Операция НЕ.В элементе И-НЕ задействуется только один вход, тогда элемент работает как инвертор (рис. 1.19). Используется один элемент И-НЕ.

Операция И.Воспользуемся приемом двойной инверсии.Имеем инверсию от инверсии конъюнкции, т.е. сначала И-НЕ, потом НЕ. Для реализации требуется 2 элемента И-НЕ (рис. 1.20).



Операция ИЛИ.Имеем инверсию от конъюнкции инверсий, т.е. сначала два раза НЕ, а затем И-НЕ (рис. 1.11).

Аналогичным образом получаем реализацию основных операций алгебры логики для остальных функционально полных наборов (рис. 1.12).

В случае большого числа переменных соответственно увеличивается количество входов или входных инверторов.
Классическая методика построения функциональной схемы ДУ по логической функции, которую оно реализует, заключается в следующем:
— по известной логической функции построить структурную схему ДУ в основных операциях алгебры логики (И, ИЛИ, НЕ);
— выбрать функционально полный набор БЛЭ для реализации ДУ;
— перейти от структурной схемы к функциональной с учетом правил реализации основных операций на выбранном наборе элементов;
— произвести упрощения схемы.
Упрощения производятся, как правило, за счет исключения из схемы двух последовательно стоящих инверторов.
Рассмотрим примеры построения функциональной схемы БДУ на наборах И-НЕ, ИЛИ-НЕ.
Пример 5. Даны условия работы ДУ в виде логической функции:

.
Построить функциональную схему.

Строим структурную схему ДУ (рис. 1.13), затем по правилам реализации операций (см. рис. 1.20) — функциональную схему ДУ на элементах И-НЕ (рис. 1.14).

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

Теперь построим для этого же примера функциональную схему на элементах ИЛИ-НЕ. Используем ту же структурную схему (см. рис.1.13). Получаем схему (рис. 1.16), содержащую 12 элементов ИЛИ-НЕ.


Путем исключения последовательных инверторов и объединения сигнала, схема сокращается на 5 элементов и остается 7 элементов ИЛИ-НЕ (рис. 1.17).

Изложенная методика построения функциональной схемы ДУ является универсальной, т.е. всегда лает правильное решение — работоспособную схему, но, как правило, слишком громоздкую.
В инженерной практике обычно, обладая известным навыком преобразования логических функций, выполняют этап преобразования исходного аналитического выражения (условия работы ДУ, полученные в результате абстрактного синтеза) к виду, удобному для реализации на выбранном наборе БЛЭ.
В результате этого этапа исходная функция записывается сразу в операторах И-НЕ для реализации на сериях интегральных элементов с базовым элементом И-НЕ, либо в операторах ИЛИ-НЕ для реализации на сериях БЛЭ “Логика”, “Логика-Т” и т.д. с базовым элементом ИЛИ-НЕ.
Для преобразования функции, как правило, пользуются универсальным приемом двойного инверсирования.
Двойное инверсирование функции, записанной в ДНФ, дает форму операторов И-НЕ, а двойное инверсирование функции, записанной в КНФ, дает форму операторов ИЛИ-НЕ.
Таким образом, если для построения ДА принят набор И-НЕ, то исходную функцию (условия работы ДА), полученную в результате абстрактного синтеза, следует преобразовать в ДНФ, а если принят набор ИЛИ-НЕ, то исходную функцию следует преобразовать в КНФ.
Пример 12. Построить функциональную схему БДУ на наборе ИЛИ-НЕ в соответствии с условиями работы
Условия работы (исходная функция) уже написаны в КНФ. Применяем прием двойного инверсирования:
Получили выражение, записанное в операторах ИЛИ-НЕ. Функциональная схема ДУ, построенная по данному выражению, изображена на рис. 1.18.


Если нужно построить эту функцию на наборе И-НЕ, то исходную функцию следует привести к ДНФ, а затем исследовать прием двойной инверсии. Однако эту функцию можно упростить по правилу: если ЛФ записанным в ДНФ (КНФ), а нужно ее реализовать на наборе ИЛИ-НЕ (И-НЕ), то прием двойного инверсирования применяют дважды — сначала над каждым членом исходной функции, затем над самой функцией. Построим ЛФ на наборе И-НЕ:

Схема приведена на рис. 1.19 (считаем, что известные сигналы уже получены).


Пример 13. Построить функциональную схему БДУ на наборе И-НЕ в соответствии с условиями работы. Условия работы (исходная функция) уже записаны в ДНФ. Применяем прием двойного инверсирования:

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

Попробуем еще преобразовать исходное выражение в направлении уменьшения числа операций ИЛИ (так как базовый элемент принят И-НЕ):

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

Заметим, что в подобных случаях функциональные схемы удобно строить “с конца” аналитического выражения.
Сравнивая рис. 1.30 и 1.31, видим, что достигнута экономия в два элемента И-НЕ.
В случае синтеза многовыходных ДА без памяти следует после получения минимизированных выражений для нахождения сигналов на каждом выходе провести преобразования системы уравнений с целью объединения одинаковых групп членов, членов или их частей в разных уравнениях, а после этого строить функциональную схему ДА.
Следующий этап — физический синтез. Он имеет своей целью переход от функциональной схемы структуры проектируемого ДУ к принципиальной электрической схеме. На этом этапе выбираются типы бесконтактных элементов, обеспечиваются дополнительные требования: надежность, технологичность, удобство контроля и т.д.
Простейшие методы синтеза схем из функциональных элементов
Приведем несколько простейших алгоритмов синтеза схем, реализующих произвольную функцию от [math] n [/math] аргументов [math] f(x_, \ldots, x_) [/math] , в случае когда базис [math] B = \ [/math] .
Метод синтеза, основанный на совершенной ДНФ
Любой конъюнкт в СДНФ можно представить не более, чем [math] 2n-1 [/math] элементами.
![]()
Рис 1. Схема для [math] \bar
Построим данную схему следующим образом: если [math] i [/math] -й множитель равен [math] \bar_ [/math] , то присоединяем к выходу [math] i [/math] элемент отрицания и последовательно присоединяем к элементу конъюнкции, иначе просто присоединяем к «свободному» входу элемента конъюнкции.
Очевидно, что сложность построенной схемы [math] size_(f)= n+n-1 = 2n-1 [/math] .
Поэтому [math] size_(f)\leqslant 2n-1 [/math] .
Для любой функции [math] f(x_<1>, \ldots, x_) [/math] имеет место неравенство [math] size_(f)\leqslant n2^ [/math]1>
![]()
Пусть [math] f(x_, \ldots,x_) [/math] — произвольная булева функция.
Если [math] f = 0 [/math] , то схема строится в соответствии с представлением [math] 0=x_\wedge\overline_ [/math] , то есть [math] size_(0) \leqslant 2[/math] .
Если [math] f \ne 0 [/math] , то [math] f [/math] может быть задана дизъюнктивной нормальной формой
[math] f(x_, \ldots,x_) = K_ \vee K_ \vee \ldots \vee K_ [/math] ,
где [math] s \leqslant 2^ [/math] и каждая конъюнкция имеет вид
[math] K_=x_\wedge\overline_\wedge_\wedge \ldots \wedge_ [/math]
Схема [math] S [/math] для [math] f [/math] состоит из конъюнкций [math] K_ [/math] (каждая из них в соответствии с леммой 1 имеет сложность не более [math] 2n-1 [/math] ) и цепочки из [math] s-1 [/math] элемента дизъюнкции с [math] s [/math] свободными входами. Свободные входы этой цепочки присоединяются к выходам схем для конъюнкций [math] K_ [/math] .(рис. 2) Имеем
[math] size_(f)\leqslant s\cdot(2n-1)+s-1 \lt s\cdot(2n-1)+s = 2ns \leqslant n2^ [/math] .
Таким образом, для любой функции [math] f(x_, \ldots,x_) [/math] выполняется неравенство
Метод синтеза, основанный на более компактной реализации множества всех конъюнкций
| Определение: |
| [math] f(n) \sim g(n) [/math] означает, что [math]f[/math] асимптотически эквивалентна [math]g[/math] , то есть [math]\lim\limits_\dfrac = 1[/math] |
| Определение: |
| [math] f(n) \lesssim g(n) [/math] означает, что [math]\varlimsup\limits_\dfrac \leqslant 1[/math] |
| Определение: |
| Пусть есть булева функция от [math] n [/math] аргументов [math] f : \lbrace0, 1\rbrace^n \rightarrow \lbrace0, 1\rbrace [/math] и набор из [math] n [/math] булевых функций [math] g_1 \dotsc g_n [/math] , таких что [math] g_i :\lbrace0, 1\rbrace^ \rightarrow \lbrace0, 1\rbrace [/math] , где [math] i=1,\dotsc, n[/math] . Тогда системой булевых функций называется функция [math] S [/math] от всех аргументов функций [math] g_i[/math] , которая определяется как [math] S(x_,\dotsc,x_,x_,\dotsc,x_[/math] [math],\dotsc,x_,\dotsc,x_)[/math] [math]=f(g_1(x_,\dotsc,x_),g_2(x_,\dotsc,x_),\dotsc,g_n(x_,\dotsc,x_))[/math] |
[math] x^ = \begin x, \sigma =1;\\ \overline, \sigma =0 \end[/math]
Пусть [math] K_
![]()
Конъюнкции [math] x_^<\sigma_>\wedge\dotsc\wedge x_^<\sigma_>[/math] соответствуют функциям [math] g [/math] из определения функции, [math] K_ [/math] соответствует функции [math] S [/math] , а конъюнкция функций [math] g [/math] соответствует функции [math] f [/math] .
Заметим, что на вход схемы подается определенный набор аргументов [math] x_^<\sigma_>,\dotsc,x_^<\sigma_> [/math] , то есть на выходе схемы будет результат конъюнкции этих аргументов.
Разделим цепочки конъюнкций на две части. Каждая конъюнкция [math] x_^<\sigma_>\wedge\dotsc\wedge x_^<\sigma_> [/math] может быть представлена в виде конъюнкции двух конъюнкций длины [math] k [/math] и [math] n-k [/math] ( [math] k [/math] мы выберем позже):
Поэтому схема для [math] K_ [/math] может быть образована из схем для [math] K_(x_^<\sigma_>,\dotsc,x_^<\sigma_>) [/math] и [math] K_(x_^<\sigma_>,\dotsc,x_^<\sigma_>) [/math] и системы из [math] 2^n [/math] элементов конъюнкции, осуществляющих вышеприведенную операцию, как показано в теореме 1 (рис. 3). Левая часть схемы считает конъюнкцию переменных [math] x_^<\sigma_>,\dotsc,x_^<\sigma_> [/math] , а правая часть — переменных [math] x_^<\sigma_>,\dotsc,x_^<\sigma_>[/math] . Следовательно,
[math] size_(K_) \leqslant size_(K_) + size_(K_) + 2^n [/math] .
Так как по теореме 1 [math] size_(K_) \leqslant k2^ [/math] , [math] size_(K_) \leqslant (n-k)2^ [/math] ,то
[math] size_(K_) \leqslant k2^ + (n-k)2^ + 2^n [/math] .
Положим [math] k=[\dfrac][/math] . Тогда [math] k \leqslant \dfrac [/math] , [math] n-k \leqslant \dfrac+1 [/math] и
С другой стороны, при [math] n \geqslant 2 [/math] каждая конъюнкция реализуется на выходе некоторого элемента, то есть при [math] n \geqslant 2 [/math] выполняется неравенство [math] size_(K_) \geqslant 2^ [/math] . Таким образом,
Для любой функции [math] f(x_<1>, \ldots, x_) [/math] имеет место соотношение [math] size_(f)\lesssim 2^ [/math] .1>
![]()
В верхней части схемы рис.2 все подсхемы, вычисляющие конъюнкции, заменили на [math]K_n[/math]
Пусть [math] f(x_, \ldots,x_) [/math] — произвольная булева функция, [math] f \ne 0 [/math] . Заменим в схеме (рис. 2) верхнюю часть схемы, реализующую конъюнкции [math] K_ \vee K_ \vee \ldots \vee K_ [/math] , схемой, реализующей все конъюнкции из [math] K_ [/math] . Тогда для любой такой функции [math] f(x_, \ldots,x_) [/math] (не равной нулю) имеем
[math] size_(f) \leqslant size_(K_)+s-1 \leqslant size_(K_)+2^-1 \lesssim 2^ [/math]
Метод синтеза схем К.Э.Шеннона [1]
Для любой функции [math] f(x_<1>, \ldots, x_) [/math] имеет место соотношение [math] size_(f)\lesssim 12\dfrac <2^> [/math] .1>
![]()
Пусть [math] f(x_, \ldots,x_) [/math] — произвольная булева функция. Рассмотрим разложение [math] f [/math] по переменным [math] x_, \ldots,x_ [/math] , где [math] 1 \leqslant m \leqslant n [/math] :
Схема для функции [math] f [/math] строится из трех подсхем: [math] S_,S_,S_ [/math] . (рис. 4)
1. Система [math] K_ (x_^<\sigma_>,\dotsc,x_^<\sigma_>) [/math] содержит всевозможные конъюнкции [math]x_^<\sigma_>\wedge\dotsc\wedge x_^<\sigma_>[/math] . И схема [math] S_ [/math] реализует все эти конъюнкции. В силу леммы 2 выполняется неравенство [math] size_(S_) \leqslant size_(K_) \lesssim 2^ [/math] . 2. Схема [math] S_ [/math] реализует систему [math] F(x_^<\sigma_>, \ldots,x_^<\sigma_>) [/math] всех булевых функций от всевозможных наборов переменных [math] x_, \ldots,x_ [/math] . Другими словами, подсхема [math] S_ [/math] вычисляет все булевы функции, зависящие от последних [math] n — m [/math] переменных. В силу теоремы 1 [math] size_(S_) \leqslant (n-m)2^2^> [/math] . 3. Схема [math] S_ [/math] производит «сборку» в соответствии с разложением функции [math] f [/math] : для каждого набора [math] \widetilde=(\sigma_,\dotsc,\sigma_) [/math] реализуется конъюнкция [math] x_^<\sigma_>\wedge\dotsc\wedge x_^<\sigma_>\wedge f(\widetilde,x_,\dotsc, x_) [/math] ( [math] 2^ [/math] элементов конъюнкции) и образуется дизъюнкция таких конъюнкций ( [math] 2^-1 [/math] элементов дизъюнкции).
Поэтому выполняется неравенство [math] size_(S_) \leqslant 2^ +2^ -1 [/math] . Таким образом,
[math] size_(f) \leqslant size_(S_)+size_(S_)+size_(S_) \lesssim 3 \cdot 2^ +(n-m)2^2^> [/math] .
Положим [math] k=n-m [/math] . Тогда
[math] size_(f) \lesssim 3 \cdot 2^ +k2^2^> [/math] .
Заметим, что второе слагаемое «очень быстро» растет с ростом [math] k [/math] , а первое слагаемое убывает с ростом [math] k [/math] медленней. Поэтому следует взять такое значение [math] k [/math] , при котором первое и второе слагаемые приблизительно равны, и потом немного уменьшить [math] k [/math] . Тогда второе слагаемое «сильно» уменьшится, а первое «не очень сильно» возрастет. Возьмем, например, [math] k=\log_n [/math] . Тогда
[math] 3 \cdot 2^ = 3 \cdot \dfrac> [/math] , [math] k \cdot 2^ \cdot 2^>=\log_n\cdot (2n)\cdot 2^[/math] ,
то есть получили «слишком много». Возьмем [math] k [/math] на единицу меньше: [math] k=\log_n-1 [/math] . Тогда
[math] 3 \cdot 2^ = 3 \cdot \dfrac> \cdot 2 [/math] , [math] k \cdot 2^ \cdot 2^>=(\log_n-1)\cdot n\cdot 2^<\dfrac>[/math] .
Вспомним теперь, что [math] k [/math] должно быть целым числом, и положим [math] k=[\log_n-1] [/math] . Тогда [math] n-k \lt n- \log_ + 2[/math] ,
[math] 3 \cdot 2^ \lt 12 \cdot \dfrac > [/math] , [math] k\cdot 2^\cdot 2^> \leqslant (\log_-1)\cdot n\cdot 2^<\dfrac> [/math] .
При этом выборе [math] k [/math] окончательно имеем
См. также
- Реализация булевой функции схемой из функциональных элементов
- Метод Лупанова синтеза схем
- Контактная схема
Построение функциональных схем по логическим функциям
![]()
3. Построение функциональных схем по логическим функциям
Ставится
задача
освоить
алгоритм
построения
функциональных схем логических устройств по известной
логической функции.
Для сравнения получаемых результатов рассмотрим построение
функциональной схемы одного и того же устройства, выбирая разный
элементный базис. Фраза «одно и то же устройство» означает, что в
основе построения лежит одна и та же логическая функция.
Пусть работа некоторого
логической функцией:
устройства
описывается
F X * (Y Z ) X * Z *Y ( X Z ) Y .
В данном случае не ставится условие минимизировать эту функцию,
так как решается иная задача!
3
4. Построение функциональных схем по логическим функциям (продолжение)
Задача 1. Построить функциональную схему логического устройства
на элементах функционально полной системы (НЕ, И, ИЛИ).
Построение начинается с элементарных операций с последующим их
объединением. Самой элементарной считается операция отрицания
простой переменной.
В данном случае простыми переменными являются входные – X, Y, Z,
а заданная функция содержит их отрицания. Поэтому на первом этапе
построения схемы следует выполнить инверсию входных переменных.
Этап 1: инвертировать входные переменные:
X
Y
Z
X
Y
Z
1
X Z
&
X * Z *Y
1
Y Z
X ,Y , Z.
Этап 2: реализовать такие операции:
(Y Z );
X * Z *Y ;
( X Z ).
4
5. Построение функциональных схем по логическим функциям (продолжение)
( X * Z * Y ) ( X Z ).
Этап 3: реализовать операции:
(Y Z );
Этап 4: реализовать операцию
X * (Y Z ).
X
Y
Z
X
Y
Z
1
X Z
& X * Z *Y
1
Y Z
1
( X * Z *Y ) ( X Z )
(Y Z )
&
X * (Y Z )
5
6. Построение функциональных схем по логическим функциям (продолжение)
Этап 5: реализовать операцию
X
Y
Z
X
Y
Z
X * (Y Z ).
1
&
1
1
( X * Z *Y ) ( X Z )
(Y Z )
&
X * (Y Z )
X * (Y Z )
6
7. Построение функциональных схем по логическим функциям (продолжение)
Этап 6: реализовать операцию
X
Y
Z
X
Y
Z
1
X * (Y Z ) X * Z *Y ( X Z )
1
&
X * (Y Z ) X * Z *Y ( X Z ) .
1
( X * Z *Y ) ( X Z )
(Y Z )
1
&
X * (Y Z )
7
8. Построение функциональных схем по логическим функциям (продолжение)
Этап 7: реализовать операцию
X * (Y Z ) X * Z *Y ( X Z ) .
Этап 8: реализовать последнюю операцию:
F X * (Y Z ) X * Z *Y ( X Z ) Y .
X * (Y Z ) X * Z *Y ( X Z )
X
Y
Z
X
Y
Z
1
&
1
X * (Y Z ) X * Z * Y ( X Z )
1
1
&
1
F
8
9. Построение функциональных схем по логическим функциям (продолжение)
Заключение.
Функциональная схема построена за 8 этапов.
В составе схемы 13 логических элементов.
(Запомним эти данные для сравнительной
оценки с последующими результатами).
9
10.
Построение функциональных схем
по логическим функциям (продолжение)
Задача 2. Построить функциональную схему логического
устройства с использованием элементов базиса И-НЕ.
Работа устройства описывается той же логической
функцией, что и в примере 1:
F X * (Y Z ) X * Z *Y ( X Z ) Y .
Элементы И-НЕ не могут выполнять логическую
операцию ИЛИ. Поэтому предварительно нужно выполнить
преобразование логической функции, исключив операции
ИЛИ.
10
11. Построение функциональных схем по логическим функциям (продолжение)
Этап 1. Преобразование базируется на теореме де Моргана. При
отсутствии навыков проще всего выполнить преобразование
последовательно «от частного к общему».
Выделим два набора:
(Y Z ); ( X Z ). Применим к этим
наборам теорему.
(Y Z ) Y * Z ;
(X Z) (X Z) X *Z .
В результате этих преобразований логическая функция примет вид:
F X *Y * Z X * Z *Y X * Z Y .
Введём обозначения:
Тогда:
X * Y * Z A; X * Z * Y B; X * Z С.
F A B C Y.
11
12. Построение функциональных схем по логическим функциям (продолжение)
К набору A B C применим теорему де Моргана и
получим
A B C A * B * C.
Логическая функция примет вид:
F A* B *C Y .
Устраним последнее логическое сложение:
F A * B * C Y A * B * C *Y .
И в итоге «рабочая» логическая функция примет вид:
F X *Y * Z * X * Z *Y * X * Z *Y .
12
13. Построение функциональных схем по логическим функциям (продолжение)
Этап 2. Нужен элемент, выполняющий только операцию
НЕ. Он может быть получен из элемента И-НЕ в результате
объединения всех входов.
Действительно, элемент НЕ имеет только один вход. У
элемента И-НЕ как минимум два входа. Из таблицы
истинности элемента И-НЕ следует, что при подаче на все
входы одноуровневых сигналов уровень сигнала на выходе
элемента инвертируется.
Тогда элемент НЕ примет вид:
Операция И-НЕ
А
В
F
&
0
1
0
1
0
0
1
1
1
1
1
0
Х
y
13
14. Построение функциональных схем по логическим функциям (продолжение)
Этап 3. При построении схемы воспользуемся тем же
алгоритмом, что и в предыдущей задаче — «от частного к
общему».
В первую очередь выполним инвертирование входных
переменных.
Этап 4. Реализуем операции:
X *Y * Z ;
X
&
X
&
Y
&
X *Y * Z
&
X * Z *Y
&
X *Z
X * Z *Y ;
Y
X * Z.
Z
&
Z
14
15. Построение функциональных схем по логическим функциям (продолжение)
Этап 5. Реализуем операции:
X *Y * Z ;
Этап 6. Реализуем операцию:
X *Y * Z * X * Z *Y * X * Z .
X
Y
Z
&
&
&
X
&
X *Y * Z
&
X * Z *Y
&
X *Z
&
X * Z.
X *Y * Z
Y
Z
&
&
&
X *Z
Этап 7. И, наконец, последняя операция:
F X *Y * Z * X * Z *Y * X * Z *Y .
15
16. Построение функциональных схем по логическим функциям (продолжение)
Заключение.
Функциональная схема построена за 6 этапов.
В составе схемы 10 логических элементов.
16
17. Построение функциональных схем по логическим функциям (продолжение)
Задача 3. Построить функциональную схему логического
устройства с использованием элементов базиса ИЛИ-НЕ.
Работа устройства описывается той же логической
функцией, что и в примере 1:
F X * (Y Z ) X * Z *Y ( X Z ) Y .
Элементы ИЛИ-НЕ не могут выполнять логическую
операцию И. Поэтому предварительно нужно выполнить
преобразование логической функции, исключив операции
И.
17
18. Построение функциональных схем по логическим функциям (продолжение)
Этап 1. Преобразование базируется на теореме де
Моргана.
Выделим два набора: Применим к этим наборам теорему.
X * (Y Z );
X * Z *Y .
X * (Y Z ) X Y Z ; X * Z * Y X * Z * Y X Z Y .
В результате этих преобразований логическая функция
примет вид:
F ( X Y Z ) X Z Y ( X Z ) Y.
18
19. Построение функциональных схем по логическим функциям (продолжение)
Этап 2. Элемент, выполняющий только операцию НЕ,
может быть получен из элемента ИЛИ-НЕ в результате
объединения всех входов (по аналогии с предыдущей
задачей).
У элемента ИЛИ-НЕ как минимум два входа. Из таблицы
истинности элемента ИЛИ-НЕ следует, что при подаче на все
входы одноуровневых сигналов уровень сигнала на выходе
элемента инвертируется.
Тогда элемент НЕ примет вид:
Операция ИЛИ-НЕ
А
В
F
0
0
1
1
0
1
0
1
1
0
0
0
Х
1
y
19
20. Построение функциональных схем по логическим функциям (продолжение)
Этап 3. При построении схемы воспользуемся тем же алгоритмом, что
и в предыдущей задаче — «от частного к общему».
В первую очередь выполним инвертирование входных переменных.
Этап 4. Реализуем операции: X Y Z X Z ; X Z Y .
Этап 5. Реализуем операцию
Этап 6. И, наконец,
X
Y
Z
1
1
1
X
Y
( X Y Z ) X Z Y ( X Z ).
F ( X Y Z ) X Z Y ( X Z ) Y.
1
1
1
X Y Z X Z
1
1
1
X Z Y
Z
20
21. Построение функциональных схем по логическим функциям (продолжение)
Заключение.
Функциональная схема построена за 5 этапов.
В составе схемы 9 логических элементов.
21
22. Построение функциональных схем по логическим функциям (продолжение)
Задача 4. Построить функциональную схему логического устройства с
использованием элементов базиса И-НЕ.
Работа устройства описывается той же логической функцией, что и в
примерах 1, 2 и 3, но предварительно требуется её минимизировать:
F X * (Y Z ) X * Z * Y ( X Z ) Y
X Y Z X * Z *Y X Z Y
X * (1 Z * Y ) Y ( Z Z ) X Y
( X X ) Y 1 Y 0 Y Y.
Видно, что для реализации такой функции необходим всего один
элемент.
22
23. Построение функциональных схем по логическим функциям (продолжение)
ВЫВОДЫ:
а) сложность функциональной схемы логического
устройства напрямую зависит от сложности логической
функции;
б) на сложность схемы влияет выбор элементной базы;
в) в рассмотренном примере ограничение на количество
входов логических элементов отсутствовало. Если,
например, количество входов ограничить двумя, то
сложность схемы возрастёт.
23