![](/user_photo/_userpic.png)
- •1. Исходные данные
- •2. Разработка алгоритма умножения
- •3. Разработка структурной схемы сумматора-умножителя 1 типа
- •4. Разработка функциональных схем основных узлов
- •4.1. Логический синтез одноразрядного четверичного умножителя
- •4.2 Логический синтез одноразрядного четверичного сумматора
- •5. Синтез очс на мультиплексорах
- •6. Логический синтез преобразователя множителя (пм)
- •Приложение
- •Функциональная схема очу
- •Литература
4.2 Логический синтез одноразрядного четверичного сумматора
ОЧС - это комбинационное устройство, имеющее 5 входов и 3 выхода:
2 разряда одного слагаемого (множимого);
2 разряда второго слагаемого (регистр результата);
вход переноса из младшего ОЧС.
Принцип работы ОЧС описывается с помощью таблицы истинности (таблица №3).
Разряды обоих слагаемых закодированы: 0 – 10; 1 – 00; 2 -11; 3 -01.
Таблица истинности ОЧС
Таблица №3 | ||||||||
A1 |
A2 |
B1 |
B2 |
p |
П |
S1 |
S2 |
Пример операции в четверичной с/с |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1+1+0=02 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1+1+1=03 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1+3+0=10 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1+3+1=11
|
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1+0+0=01 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1+0+1=02
|
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1+2+0=03 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1+2+1=10 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
3+1+0=10 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
3+1+1=11 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
3+3+0=12 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
3+3+1=13 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
3+0+0=03 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
3+0+1=10 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
3+2+0=11 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
3+2+1=12 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0+1+0=01 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0+1+1=02 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0+3+0=03 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0+3+1=10 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0+0+0=00 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0+0+1=01 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0+2+0=02 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0+2+1=03 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
2+1+0=03 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
2+1+1=10 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
2+3+0=11 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
2+3+1=12 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
2+0+0=02 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
2+0+1=03 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
2+2+0=10 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
2+2+1=11 |
В ОЧС на информационные входы не могут прийти коды 2 и 3, поэтому в схеме появляются безразличные наборы.
Минимизацию выходов ОЧС проведем с помощью метода Квайна-Мак-Ласки.
Минимизация выхода П
Заменим все конституенты единицы их двоичными номерами (в скобках термы, на которых функция не определена):
К={(00010), (00011), (00111), 01000, 01001, (01010), (01011), 01101, (01110), (01111), (10011), 11001, (11010), (11011), (11110), (11111)}.
Выполним разбиение комплекса К на группы. Признаком образования i - й группы является количество единиц в двоичном номере конституенты единицы.
Номер группы |
Двоичные номера конституент единицы |
1 |
(00010), 01000 |
2 |
(00011), 01001, (01010) |
3 |
(00111), (01011), 01101, (01110), (10011), 11001, (11010) |
4 |
(01111), (11011), (11110) |
5 |
(11111) |
Попарно сравним соседние по номеру группы.
К02 К01 |
(00011) |
01001 |
(01010) |
(00010) |
0001* |
|
0*010 |
01000 |
|
0100* |
010*0 |
К03 К02 |
(00111) |
(01011) |
01101 |
(01110) |
(10011) |
11001 |
(11010) |
(00011) |
00*11 |
0*011 |
|
|
*0011 |
|
|
01001 |
|
010*1 |
01*01 |
|
|
*1001 |
|
(01010) |
|
0101* |
|
01*10 |
|
|
*1010 |
К03 К04 |
(00111) |
(01011) |
01101 |
(01110) |
(10011) |
11001 |
(11010) |
(01111) |
0*111 |
01*11 |
011*1 |
0111* |
|
|
|
(11011) |
|
*1011 |
|
|
1*011 |
110*1 |
1101* |
(11110) |
|
|
|
*1110 |
|
|
11*10 |
К04 К05 |
(01111) |
(11011) |
(11110) |
(11111) |
*1111 |
11*11 |
1111* |
Термы, на которых функция не определена и которые склеились между собой, обозначены серым. Функция на этих наборах переменных должна быть доопределена как имеющая нулевые значения и, следовательно, из дальнейшего рассмотрения должны быть исключены эти импликанты.
Далее формируем новые группы кубов в зависимости от положения свободной координаты и сравниваем их внутри каждой группы.
К11 |
К12 |
К13 |
К14 |
К15 |
*1001 |
|
01*01 |
010*0 |
0100* |
|
|
|
010*1 |
|
|
|
|
011*1 |
|
|
|
|
110*1 |
|
| ||||
*1001 |
|
01*01 |
010** |
0100* |
|
|
|
01**1 |
|
|
|
|
*10*1 |
|
К21 = {*1001, 01*01, 010**, 01**1, *10*1, 0100*}
Строим импликантную таблицу. Формирование минимального покрытия сводится к выявлению обязательных простых импликант и построению на их основе тупиковых форм.
Простые импликанты |
Конституенты единицы | |||
01000 |
01001 |
01101 |
11001 | |
*1001 |
|
* |
|
* |
01*01 |
|
* |
* |
|
010** |
|
|
|
|
01**1 |
|
|
|
|
*10*1 |
|
|
|
|
0100* |
* |
* |
|
|
Fmin = {010**, 01**1, *10*1}
Fmin
=
Эффективность минимизации:
Минимизация выхода S1.
Заменим все конституенты единицы их двоичными номерами (в скобках термы, на которых функция не определена):
K = {00000, (00011), 00101, (00111), 01000, (01010), 01101, (01111), 10001, (10011), 10100, (10110), (11010), (11011), 11100, (11110)}
Выполним разбиение комплекса К на группы. Признаком образования i - й группы является количество единиц в двоичном номере конституенты единицы.
Номер группы |
Двоичные номера конституент единицы |
0 |
00000 |
1 |
01000 |
2 |
(00011), 00101, (01010), 10001, 10100 |
3 |
(00111), 01101, (10011), (10110), (11010), 11100 |
4 |
(01111), (11011), (11110) |
Попарно сравним соседние по номеру группы.
К01 К00 |
01000 |
00000 |
0*000 |
К02 К01 |
(00011) |
00101 |
(01010) |
10001 |
10100 |
01000 |
|
|
010*0 |
|
|
К02 К03 |
(00011) |
00101 |
(01010) |
10001 |
10100 |
(00111) |
00*11 |
001*1 |
|
|
|
01101 |
|
0*101 |
|
|
|
(10011) |
*0011 |
|
|
100*1 |
|
(10110) |
|
|
|
|
101*0 |
(11010) |
|
|
*1010 |
|
|
11100 |
|
|
|
|
1*100 |
К04 К03 |
(01111) |
(11011) |
(11110) |
(00111) |
0*111 |
|
|
01101 |
011*1 |
|
|
(10011) |
|
1*011 |
|
(10110) |
|
|
1*110 |
(11010) |
|
1101* |
11*10 |
11100 |
|
|
111*0 |
Термы, на которых функция не определена и которые склеились между собой, обозначены серым. Функция на этих наборах переменных должна быть доопределена как имеющая нулевые значения и, следовательно, из дальнейшего рассмотрения должны быть исключены эти импликанты.
Далее формируем новые группы кубов в зависимости от положения свободной координаты и сравниваем их внутри каждой группы.
К12 |
К14 |
0*000 |
001*1 |
0*101 |
010*0 |
1*100 |
100*1 |
|
101*0 |
|
011*1 |
|
111*0 |
| |
0*000 |
0*1*1 |
0*101 |
1*1*0 |
1*100 |
010*0 |
|
100*1 |
К21 = {0*000, 0*101, 1*100, 0*1*1, 1*1*0, 010*0, 100*1}
Простые импликанты |
Конституенты единицы | ||||||
00000 |
00101 |
01000 |
01101 |
10001 |
10100 |
11100 | |
0*000 |
|
|
|
|
|
|
|
0*101 |
|
* |
|
* |
|
|
|
1*100 |
|
|
|
|
|
* |
* |
0*1*1 |
|
|
|
|
|
|
|
1*1*0 |
|
|
|
|
|
|
|
010*0 |
|
|
* |
|
|
|
|
100*1 |
|
|
|
|
|
|
|
Fmin = {0*000, 0*1*1, 1*1*0, 100*1}
Fmin
=+
+
+
Эффективность минимизации:
Минимизация выхода S2
Заменим все конституенты единицы их двоичными номерами (в скобках термы, на которых функция не определена):
К = {00000, 00001, 00101, (00110), (01010), (01011), 01100, (01111), 10001, (10010), (10110), (10111), 11000, (11011), 11100, 11101}
Номер группы |
Двоичные номера конституент единицы |
0 |
00000 |
1 |
00001 |
2 |
00101, (00110), (01010), 01100, 10001, (10010), 11000 |
3 |
(01011), (10110), 11100 |
4 |
(01111), (10111), (11011), 11101 |
Попарно сравним соседние по номеру группы.
К01 К00 |
00001 |
00000 |
0000* |
К01 К02 |
00001 |
00101 |
00*01 |
(00110) |
|
(01010) |
|
01100 |
|
10001 |
*0001 |
(10010) |
|
11000 |
|
К03 К02 |
(01011) |
(10110) |
11100 |
00101 |
|
|
|
(00110) |
|
*0110 |
|
(01010) |
0101* |
|
|
01100 |
|
|
*1100 |
10001 |
|
|
|
(10010) |
|
10*10 |
|
11000 |
|
|
11*00 |
К03 К04 |
(01011) |
(10110) |
11100 |
(01111) |
01*11 |
|
|
(10111) |
|
1011* |
|
(11011) |
*1011 |
|
|
11101 |
|
|
1110* |
Термы, на которых функция не определена и которые склеились между собой, обозначены серым. Функция на этих наборах переменных должна быть доопределена как имеющая нулевые значения и, следовательно, из дальнейшего рассмотрения должны быть исключены эти импликанты.
Далее формируем новые группы кубов в зависимости от положения свободной координаты и сравниваем их внутри каждой группы.
К11 |
К13 |
К15 |
*0001 |
00*01 |
0000* |
*1100 |
11*00 |
1110* |
| ||
*0001 |
00*01 |
0000* |
*1100 |
11*00 |
1110* |
К21 = {*0001, *1100, 00*01, 11*00, 0000*, 1110*}
Простые имп ликанты |
Конституенты единицы | |||||||
00000 |
00001 |
00101 |
01100 |
10001 |
11000 |
11100 |
11101 | |
*0001 |
|
|
|
|
|
|
|
|
*1100 |
|
|
|
|
|
|
|
|
00*01 |
|
|
|
|
|
|
|
|
11*00 |
|
|
|
|
|
|
|
|
0000* |
|
|
|
|
|
|
|
|
1110* |
|
|
|
|
|
|
|
|
Все первичные импликанты являются существенными.
Fmin = {*0001, *1100, 00*01, 11*00, 0000*, 1110*}
Fmin
=
Эффективность минимизации:
Преобразуем П, S1, S2 к заданному логическому базису:
П
=
S1
=
S2
=
Построение функциональной схемы ОЧУ состоит из объединения функциональных схем для каждого выхода. Построенная схема – схема 2.