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 комментариев