- •Часть 1.
- •Оглавление
- •1. Модели дискретных структур. Комбинационные схемы
- •1.1. Введение
- •1.2. Функции алгебры логики
- •Коммутативность
- •Ассоциативность
- •Дистрибутивность
- •1.3. Булева алгебра. Функциональная полнота
- •Свойства алгебры Жегалкина
- •1.4. Минимизация функции алгебры логики
- •1.5. Функции k-значной логики
- •1.6. Основные понятия трехзначной логики
- •1.7. Представление k-значных функций в виде нормальных форм
- •1.8. Двоичное кодирование переменных и функций трехзначной логики
- •1.9. Программная реализация логических функций и автоматов
- •2. Формальные языки и грамматики
- •2.1. Введение в теорию формальных языков и грамматик
- •2.2. Выводы цепочек формального языка. Деревья ксг
- •2.3. Основные понятия теории формальных языков и грамматик
- •2.4. Приведение грамматик
- •2.4. Операции над языками
- •2.5. Право-линейная и автоматная грамматики
- •3. Теория автоматов
- •3.1. Введение
- •3.2. Способы представления конечных автоматов
- •3.3. Минимизация числа состояний автомата
- •3.4. Использование сети Петри при переходе от грамматики к автомату
- •3.5. Сети Петри. Маркировка
- •3.6. Классификация сетей Петри
- •Статические ограничения
- •3.7. Синхронные и асинхронные автоматы
- •3.8. Модели автоматов Мили и Мура
- •3.9. Кодирование автомата
- •3.10. Элементная база синтеза комбинационных схем
- •3.11. Структурный синтез автомата
- •4. Отдельные вопросы теории вычислительных процессов
- •4.1. Автоматы с магазинной памятью
- •4.2. Комбинационные схемы обнаружения ошибок
- •4.3. Пространство сообщений. Коды обнаружения и исправления ошибок
- •Контрольные вопросы
1.8. Двоичное кодирование переменных и функций трехзначной логики
Закодируем аргументы следующим образом:
x |
1 |
2 |
0 |
0 |
0 |
1 |
0 |
1 |
2 |
1 |
0 |
Откуда следует, что для записи и передачи любого троичного переменного необходимо использовать две двоичные переменные v1, v2. При этом функции i(x) будут кодироваться следующим образом: i’, i’’ по 2-м выходам соответственно.
x |
1 |
2 |
0’ |
0’’ |
1’ |
1’’ |
2’ |
2’’ |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
2 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
* |
1 |
1 |
* |
* |
* |
* |
* |
* |
Удобно доопределить i’ на наборе <1,1> нулями, тогда получим
0’ = 1’ = 2’ = 0; 0’’ = 1 & 2; 1’’ = 1 & 2; 2’’ = 1 & 2.
Один из способов моделирования трехзначной логики заключается в создании функциональных элементов с тремя устойчивыми состояниями, то есть с квантованием сигнала по трем уровням, при этом принята следующая система аналогий:
положительный потенциал - 0;
нулевой потенциал - 1;
отрицательный потенциал - 2.
Практически, в полупроводниковых схемах для трехзначной функции справедливо:
положительным потенциалом считается потенциал >= 1.5В.
нулевым потенциалом считается потенциал по модулю <= 0.6В.
отрицательным - потенциал <=- 1.5 В.
Пример. Построить таблицу истинности для функций
X1 X2, X1 X2.
Закодировать в двоичной системе координат, представить СДНФ, минимизировать и построить для одной из выбранных функций комбинационную схему в базисе (&,V, ).
Решение.
X1 |
X2 |
X1 X2 |
X1 X2 |
||||
V1 |
V2 |
V3 |
V4 |
f1 |
f2 |
f3 |
f4 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
* |
* |
* |
* |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
* |
* |
* |
* |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
* |
* |
* |
* |
1 |
1 |
0 |
0 |
* |
* |
* |
* |
1 |
1 |
0 |
1 |
* |
* |
* |
* |
1 |
1 |
1 |
0 |
* |
* |
* |
* |
1 |
1 |
1 |
1 |
* |
* |
* |
* |
Таким образом, функцию f( x1,x2 ) можно представить следующим образом:
f( x1,x2 ) = < f1 (v1,v2,v3,v4 ), f2 (v1,v2,v3,v4 ) > .
f1 = v1 v2 v3 v4 v v1 v2 v3 v4 v v1 v2 v3 v4,
f2 = v1 v2 v3 v4 v v1 v2 v3 v4 v v1 v2 v3 v4 .
Как следует из кодировки функции, логическая схема ее реализующая должна иметь два выхода и четыре входа. Прежде чем приступить к построению схемы необходимо выполнить минимизацию сформированных функций f1, f2. Выполним действия относительно одной из функций, например, f1. Составим карту Карно.
v1 v1 v1 v1
-
V2
*
*
v4
V2
1
*
*
*
v4
v2
*
*
v4
v2
1
1
v4
v3 v3 v3 v3
Для того чтобы минимизировать слабо определенную функцию в карте Карно проставляют специальный знак, например, * в местах характерных наборам, на которых функция не определена, затем * меняют на 1 в тех клетках, прямоугольники составленные из которых уменьшили бы число конъюнкций, дизъюнкций и отрицаний. Сказанное позволяет записать:
f1 = v2 & v4 v v3 & v1 & v2 v v3 & v4 & v1.
Аналогично составляются функции f2, f3, f4. Схемная реализация функции f1 примет вид:
v 1
v 2
v 3
v 4
& & & &
&
& &
1
1
f1