- •Содержание
- •1. Задание к курсовому проекту
- •2. Исходные данные к курсовому проекту
- •3. Разработка алгоритма умножения
- •4. Разработка структурной схемы сумматора-умножителя 2 типа для алгоритма умножения "б"
- •5. Разработка функциональных схем основных узлов сумматора-умножителя
- •5.1 Логический синтез одноразрядного четверичного сумматора-умножителя:
5. Разработка функциональных схем основных узлов сумматора-умножителя
5.1 Логический синтез одноразрядного четверичного сумматора-умножителя:
ОЧУС – это комбинационное устройство, имеющее шесть входов (два разряда из регистра множимого, два разряда из регистра множителя, вход переноса и управляющий вход h) и три выхода. Принцип работы ОЧУС представлен с помощью таблицы истинности (табл. 5.1).
Разряды множителя закодированы: 0 = 00; 1 = 01; 2 = 10; 3 = 11.
Разряды множимого закодированы: 0 = 01; 1 = 00; 2 = 11; 3 = 10.
Управляющий вход h определяет тип операции:
«0» – умножение закодированных цифр, поступивших на информационные входы, и добавление переноса;
«1» – вывод на выходы без изменения значения разрядов, поступивших из регистра множимого. В табл. 5.1 выделено 36 безразличных наборов, так как на входы ОЧУС из разрядов множителя не может поступить код 11, при работе ОЧУС как сумматора на вход переноса не может поступить единица, а при умножении на ноль или единицу на вход переноса также не может поступить единица.
Таблица 5.1 - Таблица истинности ОЧУС
Пер. |
Мн |
Мт |
Упр. |
Перенос |
Результат |
Результат |
||||
P1 |
x1 |
x2 |
y1 |
y2 |
h |
P |
М1 |
М2 |
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0+1*0=00 |
|
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
Выход-код«01» |
|
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0+1*1=01 |
|
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
Выход-код«01» |
|
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0+1*2=02 |
|
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
Выход-код«01» |
|
0 |
0 |
0 |
1 |
1 |
0 |
х |
х |
х |
0+1*3=03 |
|
0 |
0 |
0 |
1 |
1 |
1 |
х |
х |
х |
Выход-код«01» |
|
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0+0*0=00 |
|
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
Выход-код«00» |
|
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0+0*1=00 |
|
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
Выход-код«00» |
|
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0+0*2=00 |
|
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
Выход-код«00» |
|
0 |
0 |
1 |
1 |
1 |
0 |
х |
х |
х |
0+0*3=00 |
|
0 |
0 |
1 |
1 |
1 |
1 |
х |
х |
х |
Выход-код«00» |
|
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0+3*0=00 |
|
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
Выход-код«03» |
|
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0+3*1=03 |
|
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
Выход-код«03» |
|
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0+3*2=12 |
|
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
Выход-код«03» |
|
0 |
1 |
0 |
1 |
1 |
0 |
х |
х |
х |
0+3*3=22 |
|
0 |
1 |
0 |
1 |
1 |
1 |
х |
х |
х |
Выход-код«03» |
|
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0+2*0=00 |
|
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
Выход-код«02» |
|
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0+2*1=02 |
|
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
Выход-код«02» |
|
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0+2*2=10 |
|
0 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
Выход-код«02» |
|
0 |
1 |
1 |
1 |
1 |
0 |
х |
х |
х |
0+2*3=13 |
|
0 |
1 |
1 |
1 |
1 |
1 |
х |
х |
х |
Выход-код«02» |
|
1 |
0 |
0 |
0 |
0 |
0 |
х |
х |
х |
1+1*0=01 |
|
1 |
0 |
0 |
0 |
0 |
1 |
х |
х |
х |
Выход-код«01» |
|
1 |
0 |
0 |
0 |
1 |
0 |
х |
х |
х |
1+1*1=02 |
|
1 |
0 |
0 |
0 |
1 |
1 |
х |
х |
х |
Выход-код«01» |
|
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1+1*2=03 |
|
1 |
0 |
0 |
1 |
0 |
1 |
х |
х |
х |
Выход-код«01» |
|
1 |
0 |
0 |
1 |
1 |
0 |
х |
х |
х |
1+1*3=10 |
|
1 |
0 |
0 |
1 |
1 |
1 |
х |
х |
х |
Выход-код«01» |
|
1 |
0 |
1 |
0 |
0 |
0 |
х |
х |
х |
1+0*0=01 |
|
1 |
0 |
1 |
0 |
0 |
1 |
х |
х |
х |
Выход-код«00» |
|
1 |
0 |
1 |
0 |
1 |
0 |
х |
х |
х |
1+0*1=01 |
|
1 |
0 |
1 |
0 |
1 |
1 |
х |
х |
х |
Выход-код«00» |
|
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1+0*2=01 |
|
1 |
0 |
1 |
1 |
0 |
1 |
х |
х |
х |
Выход-код«00» |
|
1 |
0 |
1 |
1 |
1 |
0 |
х |
х |
х |
1+0*3=01 |
|
1 |
0 |
1 |
1 |
1 |
1 |
х |
х |
х |
Выход-код«00» |
|
1 |
1 |
0 |
0 |
0 |
0 |
х |
х |
х |
1+3*0=01 |
|
1 |
1 |
0 |
0 |
0 |
1 |
х |
х |
х |
Выход-код«03» |
|
1 |
1 |
0 |
0 |
1 |
0 |
х |
х |
х |
1+3*1=10 |
|
1 |
1 |
0 |
0 |
1 |
1 |
х |
х |
х |
Выход-код«03» |
|
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1+3*2=13 |
|
1 |
1 |
0 |
1 |
0 |
1 |
х |
х |
х |
Выход-код«03» |
|
1 |
1 |
0 |
1 |
1 |
0 |
х |
х |
х |
1+3*3=23 |
|
1 |
1 |
0 |
1 |
1 |
1 |
х |
х |
х |
Выход-код«03» |
|
1 |
1 |
1 |
0 |
0 |
0 |
х |
х |
х |
1+2*0=01 |
|
1 |
1 |
1 |
0 |
0 |
1 |
х |
х |
х |
Выход-код«02» |
|
1 |
1 |
1 |
0 |
1 |
0 |
х |
х |
х |
1+2*1=03 |
|
1 |
1 |
1 |
0 |
1 |
1 |
х |
х |
х |
Выход-код«02» |
|
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1+2*2=11 |
|
1 |
1 |
1 |
1 |
0 |
1 |
х |
х |
х |
Выход-код«02» |
|
1 |
1 |
1 |
1 |
1 |
0 |
х |
х |
х |
1+2*3=13 |
|
1 |
1 |
1 |
1 |
1 |
1 |
х |
х |
х |
Выход-код«02» |
|
Минимизацию переключательных функций проведем с помощью метода Квайна-Мак-Класки.
Для начала все исходные 6-кубы разбиваются на непересекающиеся подгруппы по количеству единиц в подгруппе и формируется кубический комплекс К, состоящий из кубов нулевой размерности (ранга). Далее выполняется разбиение комплекса К на группы, импликанты, подлежащие склейке. Если сравниваемые кубы различаются только в одном разряде, то в следующий столбец записывается код с символом «x» на месте этого разряда, т.е. производится операция полного склеивания и образуется куб следующего ранга. Также выявляются кубы, не участвовавшие в образовании новых кубов – простые импликанты, которые исключаются из данного упрощения.
Далее полученные кубы первой размерности разбиваются на группы в зависимости от местоположения свободной координаты в кубе и выполняется сравнение внутри каждой группы, в результате чего будут получены кубы второй размерности и аналогично кубам первой размерности будут объединены в группы по совпадению свободных координат, и вновь будет выполнено сравнение.