Проектирование арифметико-логического устройства для выполнения операций сложения и вычитания чисел с плавающей точкой, страница 2

1) для чисел с фиксированной запятой;

2) для чисел с плавающей запятой;

3) для десятичных чисел.

По характеру использования элементов и узлов АЛУ делятся на блочные и многофункциональные.

В блочном АЛУ операции над числами с фиксированной и плавающей запятой, десятичными числами и алфавитно-цифровыми полями выполняются в отдельных блоках, при этом повышается скорость работы, так как блоки могут параллельно выполнять соответствующие операции, но значительно возрастают затраты оборудования.

В многофункциональных АЛУ операции для всех форм представления чисел выполняются одними и теми же схемами, которые коммутируются нужным образом в зависимости от требуемого режима работы.

1.2 Постановка задачи для проектирования

Спроектировать арифметико-логическое устройство для выполнения операций сложения, вычитания над числами с плавающей точкой со следующими параметрами:

·  Мантисса - 16 разрядов

·  Порядок смещенный - 7 разрядов

·  Знак – 1 разряд

Выполнить схемы:

·  Электрическую структурную

·  Электрическую функциональную

·  Электрическую принципиальную

Произвести расчеты:

·  Мощности, потребляемой АЛУ

·  Времени выполнения операций сложения и вычитания


2. Специальная часть

2.1 Описание электрической структурной схемы АЛУ для сложения и вычитания чисел с плавающей точкой

Операнды подаются на регистры РгА и РгВ (рис. 2.1). После приема операндов производится выравнивание порядков по следующему алгоритму.

Порядки операндов разряды [22-16] с регистров РгА и РгВ подаются на сумматор См1, причем порядок числа В подается в дополнительном коде, что достигается за счет инвертирования порядков на инверторе Инв2 и подачи на входной перенос См1 - 1. Если сумма отрицательна и в знаковом разряде СМ1 – 1, то порядок числа В больше порядка числа А, и наоборот, если сумма положительна и в знаковом разряде СМ1 – 0. Порядок большего числа подается в выходной регистр СчП, в роли которого выступает счетчик СчП, что необходимо для последующей нормализации результата. Младшие два разряда суммы порядков подаются на реверсивный счетчик ССч.

Для сдвига вправо мантиссы числа с меньшим порядком используются основной регистр, в который заносятся входные операнды (РгА или РгВ) и соответствующий ему вспомогательный регистр (РгА’ или РгB’), сдвиг происходит за счет косой передачи между основным и вспомогательным регистром. За один такт происходит сдвиг вправо на 4 двоичных разряда, то есть на один шестнадцатеричный разряд.

Количество тактов сдвига определяется значением, записанным в счетчике ССч. В каждом такте происходит инкремент или декремент значения ССч, сдвиг происходит до тех пор, пока значение счетчика не станет равным нулю. Режим работы «+1» или «-1» выбирается в зависимости от результата суммирования порядков в СМ1. Если результат положительный, то есть в прямом коде, то счетчик работает в режиме «-1», и в режиме «+1» если результат в дополнительном коде.

Например в сумматоре См1 получилось значение 111111, то есть порядки отличаются на единицу. В счетчик ССч подаются два младших разряда с См1 – 11, а поскольку в старшем разряде «1», то счетчик работает как прибавляющий. Таким образом при первом такте операции произойдет сдвиг вправо мантиссы числа с меньшим порядком на один шестнадцатеричный разряд. Одновременно к значению в счетчике ССч (11) прибавится единица, оно станет равным 00 и операция сдвига мантиссы завершится. В результате мантисса была сдвинута вправо на один шестнадцатеричный разряд, как и было необходимо.

В данной схеме сдвиг мантиссы имеет смысл, если разница между порядками составляет не более 3, в противном случае мантисса числа с меньшим порядком обращается в ноль. Чтобы избежать лишних циклов проводится проверка соответствия операндов данному условию следующим образом.

Всего существует 7 возможных результатов суммирования порядков, при которых модуль результата меньше или равен трем это: 0000000, - если результат равен нулю,  00000001, 00000010, 00000011, – если результат в прямом коде и 11111101, 11111110, 11111111, – если результат в дополнительном коде. Из приведенных выше примеров видно, что у всех допустимых значений биты 6-2 равны. Эта особенность использована в данной схеме для проверки операндов на корректность, для чего разряды 6-2 СМ1 подаются на схему сравнения СхСр. Если все биты равны, то производится сдвиг мантиссы операнда с меньшим порядком, в противном случае знак мантиссы операнда с большим порядком подается на триггер знака, мантисса на регистр РгМ, смещенный порядок на счетчик СчП, производится выдача операнда на ШИВых и операция завершается.