1.2 Определение структуры операционного автомата
Рассмотрим структура операционного автомата. Определение структуры операционного автомата нам необходим для того, чтобы мы могли определить количество и размерность используемых регистров и сумматора. В используемом нами методе умножения младшими разрядами со сдвигом множимого в перед регистры множимого и сумматора должны быть шестнадцатиразрядными, а для регистра множителя достаточно будет восьмиразрядного регистра.
Рисунок 1 - Схема структуры ОУ умножения младшими разрядами в перед со сдвигом множимого в лево
Рг1 – в регистр заносится множимое
Рг2 – в регистр заносится множитель
См – в сумматоре происходит сложение чисел
Сч – счетчик просчитывает количество выполненных операций.
УА – рассчитываемый управляющий автомат
1.3 Разработка блок схемыАлгоритм для умножения младшими разрядами вперед со сдвигом множимого:
1) В первый регистр заносится множимое в двоичном коде.
2) Из первого регистра множимое заноситься в сумматор.
3) Во второй регистр заносится множитель.
4) Младший разряд множителя поступает в Управляющий автомат.
5) В Управляющем автомате анализируется поступившая информация.
6) Если 0, то в сумматоре происходит сдвиг вправо на один разряд. Если 1 то, происходит сложение множимого и множителя. После сложения выполняется сдвиг множимого.
7) Пункты 4,5 и 6 выполняются столько раз, сколько разрядов имеют числа.
Реализуем алгоритм в виде содержательного графа микропрограммы для двоичной системы исчисления. Согласно ГОСТа язык ГСА используется для формальной записи алгоритмов операция и имеет 1 начальную и 1 конечную вершину.
Структура ГСА показана на рисунке 2.
Таблица 1.1
| № блока | Описание | 
| 1 | в Рг1 заносим множимое, в Рг2 заносим множитель, сумматор См обнуляем, а счетчику Сч присваиваем значение 8. | 
| 2 | определяем знак произведения путем сложения знаковых разрядов множимого и множителя по модулю два. | 
| 3 | Младший разряд Рг2 (множитель) сравниваем с нулем. Если младший разряд равен единице то идем к блоку 4, если же разряд равен нулю то переходим к блоку 5 | 
| 4 | Производим операцию сложение, к См прибавляем Рг1 в прямом коде. | 
| 5 | Происходит сдвиг множимого Рг2 на один разряд влево. Регистр Рг2 сдвигается на один разряд вправо. из счетчика вычитаем 1. | 
| 6 | Производится сравнение счетчик Сч с нулем. Если Сч = 0, то прекращаем умножение и идем к блоку 7. Если Сч неравен нулю, то продолжаем операцию умножение, переходим в блок 3. | 
| 7 | Итоговую сумму полученную в сумматоре См выводим как результат Z. | 
2 Синтез микропрограммного автомата
2.1 Кодирование граф схемы алгоритма
Синтез микропрограммного автомата
| 
 | 
Таблица кодировок
| У | МК | 
| Ук | Начало | 
| У1 | Рг2(1¸8):=У(2¸8) | 
| У2 | Рг1(1¸8):=8 | 
| У3 | Рг1(9¸16):=Х(2¸9) | 
| У4 | См(1¸16):=0 | 
| У5 | Сч:=8 | 
| У6 | Z(1):=X(1)ÅУ(1) | 
| У7 | См:=См+Рг1 | 
| У8 | Рг1:=L(1)Рг1 | 
| У9 | Рг2:= R(1)Рг2 | 
| У10 | Сч:=Сч-1 | 
| У11 | Z(2¸9):=См(1¸8) | 
| Х1 | Рг2(8) | 
| Х2 | Сч=0 | 
| Ук | Конец | 
0 комментариев