3. Основные логические операции над двоичными числами

advertisement
Лекция № 3
“Основные логические операции над двоичными числами. Синтез
логических устройств. Таблицы истинности”.
Логические функции оперируют логическими переменными, т.е. переменными,
принимающими только два значения - ИСТИНА и ЛОЖЬ (на математическом языке - 0 и
1). Результат логической функции может принимать тоже только эти два значения. Для
представления логических функций используют аппарат логических уравнений и таблиц
истинности.
Таблица истинности представляет собой таблицу в которой каждой комбинации
входных логических переменных ставится в соответствие требуемое значение данной
логической функции.
x1
x2
L
xn
Y
0
1
..
1
0
0
..
1
..
..
..
..
0
0
..
1
y00..0
y10..0
..
y11..1
Логические функции могут быть одной, двух и блоее логических переменных.
Элементарными логическими функциями являются следующие.
Функция “Логическое И” (конъюнкция)
x1
0
0
1
1
y
x2
0
1
0
1
0
0
0
1
Логическое уравнение: y  x1 * x2 .
Схематическое изображение функции
U?
1
3
2
AND2
Функция “Логическое ИЛИ” (дизъюнкция)
x1
0
0
1
1
x2
0
1
0
1
y
0
1
1
1
Логическое уравнение: y  x1  x2 .
Схематическое изображение функции
1
U?
1
3
2
OR2
Функция “Логическое НЕ” (отрицание)
x
y
0
1
1
0
Логическое уравнение: y  x .
Схематическое изображение функции
U?
1
2
NOT
Логические теоремы.
A A  A
A* A  A
A 1 1
A*0  0
A0 A
A *1  A
A A
A A 1
A* A  0
A* B  B* A
A B  B A
A * ( B  C)  A * B  A * C
A  A* B  A
A  B * C  ( A  B) * ( A  C)
A  B  C K  A * B * C*K
A * B * C*K  A  B  C K
Используя данные теоремы, любую логическую функцию можно реализовать посредством
блоков “И” и “НЕ” или “ИЛИ” и “НЕ” (это доказал Шеффер в 1913г.). Схемы
элементов «И-НЕ» (штрих Шеффера), «ИЛИ-НЕ» (Стрелка Пирса) и «НЕ», реализованные
на комплементарных МОП-транзисторах (КМОП-технология), представлены на рисунке.
2
VCC
T2
Ui
Uo
T1
NOT
0
Пример: Функция “ИСКЛЮЧАЮЩЕЕ ИЛИ” (сложение по модулю 2).
Схемотическое изображение функции
U?
1
3
2
XOR
x1
0
0
1
1
x2
0
1
0
1
y
0
1
1
0
y  x1  x2  x1 * x2  x1 * x2  x1 * x2 * x1 * x2  x1  x2  x1  x2
Обычно при постановке задачи логическую функцию представляют в виде таблицы
истинности. Для получения уравнения логической функции и его минимизации
используют метод “карт Карно”.
В соответствии с этим методом для получения уравнения логической функции
необходимо:
1. Составить таблицу истинности функции в которой должны быть представлены все
возможные сочетания входных сигналов и соответствующие им состояния выхода. В
случае, когда состояние входа не оказывает влияния на выход, ставится X (любое
значение).
2. Разбить все входные переменные на две группы произвольным образом.
3. Составить прямоугольную таблицу. Вдоль осей таблицы отложить последовательные
состояния выделенных групп переменных в коде Грея.
4. Заполнить ячейки, расположенные на пересечении строк и столбцов таблицы
значениями функции, соответствующими текущей комбинации состояний входных
переменных.
5. Выделить в таблице все группы, содержащие 1 (либо 0).
6. Записать уравнение функции по выделенным группам.
Пример: Функция задана таблицей истинности.
3
A
B C Q
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
Составим карту Карно для данной функции.
AB
C
0
1
00
0
0
01
0
1
11
1
1
10
0
1
Выделяем группы, содержащие “1”.
Согласно выделенным группам записываем уравнение логической функции.
Q  A* B  B *C  A*C
Схематическое изображение функции:
U1
A
B
1
3
2
AND2
U2
U4
1
3
C
2
AND2
1
2
3
4
Q
OR3
U3
1
3
2
AND2
Рассмотрим основные виды комбинационных логических устройств.
Полным дешифратором называется устройство, имеющее n входов и 2 n выходов,
причем каждой комбинации значений входных сигналов соответствует сигнал, равный 1,
только на одном выходе. В качестве примера рассмотрим дешифратор на 2 входа. Его
таблица истинности имеет вид.
X1 X2 Q0 Q1 Q2 Q3
0 0 1 0 0 0
0 1 0 1 0 0
1 0 0 0 1 0
4
1
1
0
0
0
1
Т.о., логические уравнения для соответствующих выходных разрядов дешифратора имеют
вид:
Q0  X 1 * X 2 ; Q1  X 1 * X 2 ; Q2  X 1 * X 2 ; Q3  X 1 * X 2 .
Схема, реализующая подобное устройство имеет вид.
Q0
AND2
X1
Q1
AND2
INV
X2
Q2
AND2
INV
Q3
AND2
Полный дешифратор, дополненный общим разрешающим входом называется
дешифратором-демультиплексором. Если добавить в рассмотренный дешифратор общий
разрешающий вход E, то его уравнения примут вид:
Q0  E * X 1 * X 2 ; Q1  E * X 1 * X 2 ; Q2  E * X 1 * X 2 ; Q3  E * X 1 * X 2 .
Примером подобного дешифратора может служить микросхема 1533 ИД7 (74ALS138),
представляющая собой дешифратор 3*8 с тремя входами общего разрешения: единичным
G1, нулевыми G2AN и G2BN. Работа микросхемы разрешена если G1=1 & G2AN=0 &
G2BN=0.
A
B
C
G1
G2AN
G2BN
Y0N
Y1N
Y2N
Y3N
Y4N
Y5N
Y6N
Y7N
74138
Т.о., дешифраторы осуществляют преобразование двоичного кода в унитарный код, т.е.
код, только один из разрядов которого равен 1.
Шифраторы выполняют функцию обратную дешифраторам, т.е. преобразуют
унитарный код в двоичный.
Таблица истинности шифратора на 4 входа имеет вид:
X1 X2 X3 X4 Q0 Q1
1 0 0 0 0 0
0 1 0 0 0 1
0 0 1 0 1 0
0 0 0 1 1 1
5
Уравнения для соответствующих выходов шифратора имеют вид:
Q0  X 1 * X 2 * ( X 3 * X 4  X 3 * X 4 )  X 1 * X 2 * ( X 3  X 4 ) ;
Q1  X 1 * X 3 * ( X 2 * X 4  X 2 * X 4 )  X 1 * X 3 * ( X 2  X 4 ) .
Схема, реализующая указанные уравнения имеет вид.
X1
Q0
INV
X2
AND2
AND2
Q1
INV
AND2
AND2
X3
XOR2
INV
X4
XOR2
Мультиплексором называется комбинационная схема, имеющая m адресных и 2 m
информационных входов, а также один выход, на который подается сигнал с того
информационного входа, чей адрес в данный момент присутствует на адресных входах.
Рассмотрим мультиплексор на 2 входа X и Y с адресным входом S. Таблица истинности
такого устройства имеет вид:
X
0
0
1
1
0
0
1
1
Y
0
1
0
1
0
1
0
1
S
0
0
0
0
1
1
1
1
Q
0
0
1
1
0
1
0
1
Этой таблице истинности соответствует следующее уравнение выхода
Q  S * X  S *Y
Этому уравнению соответствует схема.
6
U1
1
XN
3
2
U4
1
AND2
3
2
U2
QN
1
YN
OR2
3
2
AND2
U3
1
S
2
NOT
При добавлении общего разрешающего входа E получим устройство, называемое
селектор-мультиплексор. При этом его уравнение примет вид.
Q  E * (S * X  S * Y)
Примером подобного устройства может служить микросхема 1533КП7 (74ALS151),
представляющая собой селектор-мультиплексор на 8 каналов с общим входом разрешения
G.
U?
4
3
2
1
15
14
13
12
11
10
9
7
D0
D1
D2
D3
D4
D5
D6
D7
W
Y
6
5
A
B
C
G
74151
Демультиплексоры выполняют функцию, обратную мультиплексорам, т.е.
производят коммутацию одного информационного входного сигнала на 2 m выходов, где
m - число адресных входов. Рассмотрим демультиплексор на 2 выхода. Его таблица
истинности имеет вид:
X
0
1
0
1
S
0
0
1
1
Q0
0
1
0
0
Q1
0
0
0
1
Этой таблице истинности соответствуют уравнения выходов:
Q0  S * X ; Q1  S * X .
Этим уравнениям соответствует схема.
7
S
Q0
INV
X
AND2
Q1
AND2
Создадим устройство для суммирования двух двоичных чисел X 1 и X 2 . Опишем
закон формирования младшего разряда суммы S 0 и переноса в следующий разряд c1 с
помощью таблицы истинности.
x10
x 2 0 s0
c1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
Т.о. получим уравнения для младшего разряда суммы и переноса:
s0  x10 * x 20  x10 * x 20  x10  x 20
c1  x10 * x 20
По полученным уравнениям получаем схему т.н. полусумматора.
U1
1
X10
3
S0
2
X20
XOR
U2
1
3
C1
2
AND2
Обозначим разработанное устройство блоком S0.
X0
Y0
S0
S0
C1
Закон формирования любого следующего разряда суммы и разряда переноса в
следующий разряд описывается таблицей истинности.
x1n
x 2 n cn
sn
cn1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
8
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
Т.о. получаем уравнения для произвольного разряда суммы и переноса:
sn  x1n * x 2n * cn  x1n * x 2n * cn  x1n * x 2 n * cn  x1n * x 2n * cn 
 cn * ( x1n * x 2 n  x1n * x 2 n )  cn * ( x1n * x 2 n  x1n * x 2 n ) 
 cn * ( x1n  x 2 n )  cn * ( x1n  x 2n )  cn  ( x1n  x 2 n )
cn 1  cn * x1n  cn * x 2n  x1n * x 2n  cn * ( x1n  x 2n )  x1n * x 2 n 
 cn * ( x1n  x 2 n )  x1n * x 2n
Т.о. получаем схему суммирования чисел произвольной разрядности.
CN
XN
YN
SN
S0
S0
U?
1
3
CN+1
2
OR2
Включая параллельно несколько подобных схем можно получить устройство для
суммирования произвольного числа разрядов.
A[0..N ]
S
B[0..N ]
S[0..N ]
Создадим схему, реализующую преобразование прямого кода числа в его
дополнительный код. Как извесно для этого необходимо найти обратный код числа и
прибавить к нему 1.
Схема, вычисляющая обратный код числа описывается уравнением
yn  xn
Эта схема называется “инвертор”.
U1
1
XN
2
YN
NOT
Обозначим это устройство как
A[0..N ]
I
A'[0..N ]
9
Подав на один вход сумматора код с выхода инвертора, а на другой код числа “1”, на
выходе сумматора получим дополнительный код числа.
A[0..N ]
I
S
"1"
D[0..N ]
Обозначим это устройство
D
A[0..N ]
D[0..N ]
Включив параллельно несколько схем вышеописанного мультиплексора получим
мультиплексор на требуемое число разрядов.
X[0..N ]
Y[0..N ]
M
Q[0..N ]
S
Создадим устройство, способное складывать или вычитать два числа, в
зависимости от состояния управляющего сигнала c. Для этого необходимо подать на один
вход сумматора код одного из чисел, а на другой его вход подать либо прямой либо
дополнительный код второго из чисел, в зависимости от состояния управляющего входа c.
Такую коммутацию сигналов можно осуществить с помощью мультиплексора.
A[0..N]
B[0..N]
D
S
M
Q[0..N]
S
Разработанное устройство представляет
арифметическо-логического устройсва процессора.
собой
A[0..N ]
B[0..N ]
ALU
Q[0..N ]
S
10
примитивный
прообраз
Download