Сделай Сам Свою Работу на 5

Проектирование операционного автомата АЛУ





2.2.1 Определение форматов данных

В арифметической операции деления участвуют операнды A – делимое и B – делитель. Результат операции C – частное. Кроме того, устройство должно формировать признаки результата – двоичные переменные:

· OV – признак арифметического переполнения;

· P – признак четности числа единиц в результате.

Алгоритм операции деления разрабатывается для 16 – разрядных двоичных чисел с фиксированной запятой, представленных в прямом коде. Знак числа кодируется в старшем (нулевом) разряде числа, запятая фиксирована после знакового разряда, таким образом, все числа могут быть только дробными.

Знак
Модуль числа

Рис. 2.1. Представление числа в прямом коде

В операциях участвуют следующие переменные:

· ‑ первый операнд (делимое);

· ‑ второй операнд (делитель);

· ‑ результат операции (частное), в процессе выполнения алгоритма переменная используется для хранения остатка;

· ‑ переменная, в которой в процессе деления накапливаются цифры частного;

· ‑ знаковые разряды.

В операции дизъюнкции положение запятой и знак игнорируются, операция выполняется над 16-разрядными двоичными векторами и . Результат операции представлен в той же форме, что и для арифметической операции деления: .



- тип выполняемой операции (0 – арифметическая, 1 – логическая).

2.2.2 Объединенная ГСА деления и дизъюнкции

В прямых кодах удобнее делить модули чисел. Знак результата не зависит от соотношения модулей делимого и делителя и определяется по выражению (2.1):

(2.1)

Деление чисел с фиксированной запятой в заданном формате невозможно, если модуль делимого не меньше модуля делителя. Поэтому сначала следует проверить соотношение операндов путем вычитания делителя из делимого. Если разность окажется положительной, то можно формировать признак переполнения OV = 1 и завершать операцию. В противном случае модуль частного оказывается меньше 1, т.е. переполнение отсутствует и деление возможно.

Алгоритм предусматривает формирование знака результата согласно формуле (2.1) и сохранение его временно в переменной . После этого производится деление модулей чисел (знаки операндов обнуляются).



Сначала производится пробное вычитание делителя из делимого. Поскольку знаки операндов – 0, то появление 1 в знаковом разряде разности означает, что , и можно продолжать деление (целая часть частного равна 0). При деление невозможно – формируется признак переполнения.

В процессе получения цифр частного значение очередного остатка принимает переменная . Независимо от знака остатка она копируется в переменную , которая затем увеличивается вдвое путем сдвига влево на один разряд. В зависимости от знака переменной (знака остатка) формируется очередная цифра переменной (частного) и принимается решение о действии на следующем шаге – добавлять или вычитать делитель из сдвинутого остатка. После арифметической операции выполняется сдвиг влево частного (освобождается место для очередной цифры частного), изменяется счетчик цифр частного и проверяется условие выхода из цикла – получение шестнадцати цифр частного, включая самую первую цифру – «0 целых», на место которой копируется знак частного из переменной .

Алгоритм предусматривает формирование признака четности числа единиц в результате – флаг . Если , то число единиц в результате четно, если - нечетно.

Объединенная граф-схема алгоритмов деления без восстановления остатка и дизъюнкции показана на рис. 2.2.

Начало



Конец

Рис. 2.2. Объединенная граф – схема алгоритмов дизъюнкции и деления без восстановления остатка


2.2.3. Разработка структуры операционного автомата

Анализ алгоритмов деления и дизъюнкции позволяет разработать структуру операционного автомата. Учитывая действия, которые требуется выполнить для реализации алгоритма, включим в состав операционного автомата следующие элементы:

· Два шестнадцатиразрядных регистра Рг и Рг для хранения входных операндов и промежуточных результатов с возможностью сдвига своего содержимого влево;

· Шестнадцатиразрядный регистр Рг с возможностью сдвига своего содержимого влево. При выполнении деления служит для размещения результата арифметической операции сложения или вычитания (при формировании остатка): в конце операции деления в нем будет размещен результат – частное. При выполнении дизъюнкции в регистре Рг формируется результат.

· Шестнадцатиразрядный регистр Рг с возможностью сдвига своего содержимого влево для размещения частного в процессе его формирования.

· Шестнадцатиразрядный двоичный параллельный сумматор/вычитатель Сум/Выч;

· Четырехразрядный вычитающий счетчик Сч по модулю 16;

· Триггер переполнения Тг OV для хранения признака переполнения разрядной сетки;

· Триггер P для хранения признака четности числа единиц в результате.

· Триггер Тг для временного хранения знака частного;

· Схема сравнения на «равно» и единицы для определения вида совершаемой операции;

· Схема сравнения на «равно» знаковых разрядов исходных операндов;

· Схема сравнения на «равно» старшего разряда двоичного вектора A с нулем для логической операции дизъюнкции;

· Схема сравнения на «равно» старшего разряда двоичного вектора В с нулем для логической операции дизъюнкции;

· Схема сравнения на «равно» флага с нулем.


Рг А
Рг В
Сум/Выч
Рг С
s
0
15
Рг D
0
15
C
OV
s
В
Сч n
R S Tг OV
R S Tг s
R S Tг P

А
Рис. 2.3. Операционный автомат АЛУ

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.