Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы вычислительной техники. Методические рекомендации по курсовой работе. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
1 Мб
Скачать

Рис. 6.1. Окно задания основных настроек сумматора

сплавающей запятой ALTFP_ADD_SUB

Вполе задания формата числа с плавающей запятой оставьте значение по умолчанию Single precisions (32 bits), чтобы использовать формат с одинарной точностью. В этом случае разрядность мантиссы и порядка определяется автоматически и соответствует стандарту IEEE-754: 23 разряда мантиссы и 8 разрядов порядка.

ПолезаданияWhatistheoutputlatency…позволяетуказатьжелаемую задержку получения результата, которая определяется числом ступеней реализуемого в сумматоре конвейера. Сложность операции сложения с плавающей запятой, включающей операции нормализации и суммирования, обусловливает необходимость поэтапной обработки данных, которая может быть эффективно

51

реализована путем конвейеризации1. Поскольку проводимое исследование, выполняется на модели устройства средствами моделирования, можно указывать минимальное значение задержки получения результата, равное 7.

В поле задания Which operating mode… оставьте значение по умолчанию Addition only, чтобы исследовать работу устройства только в режиме суммирования.

Нажмите кнопку Next.

4.Вследующемокне(рис.6.2)задайтеиспользованиедополнительных выводов NaN, overflow, underflow и zero для контроля особых ситуаций при суммировании в формате с плавающей запятой по стандарту IEEE-754.

5.В мастере настроек на страницах 3 и 4 оставьте настройки по умолчанию. На странице 5 включите генерацию файла с символомдлябиблиотечногомодуляQuartusPrimesymbolfile.Завершите создание модуля, нажав на кнопку Finish.

6.Создайте схему исследуемого устройства по рис. 6.3. Выполните анализ и синтез.

7.Создайтефайлдлявыполнениямоделированияработысумматора.Задайтетактовыйсигналclkдляустройства.Дляэтоговыделите его временную диаграмму, нажав на его имя, затем выполните команду Edit Value Overwrite clock… или нажмите кнопку .

ВпоявившемсяокнеClockзадайтепериодсигналасинхронизации Period, равный 10 нс (рис. 6.4). Оставив остальные значения

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

52

Рис. 6.2. Окно задания настроек используемых выводов сумматора с плавающей запятой ALTFP_ADD_SUB

по умолчанию, нажмите кнопку OK. Полученная временная диаграмма должна выглядеть как на рис. 6.5.

8. Выполните моделирование операции суммирования чисел 3,5и–1,8.Втабл.6.1показанысоответствующиешестнадцатерич- ное и двоичное представления этих чисел. Для двоичного представленияотдельнопоказанызначениязнака,порядкаимантиссы с указанием разрядов, в которых они хранятся.

Например, для числа 3,5 может быть получено традиционное представление в формате с плавающей запятой:

3,510 =11,12 =1,11 21,

где мантисса m = 111, а порядок p = 1.

53

Рис. 6.3. Схема сумматора чисел в формате с плавающей запятой

Рис. 6.4. Окно задания параметров синхросигнала

Рис. 6.5. Пример временной диаграммы для синхросигнала

В формате с плавающей запятой IEEE-754 с одинарной точностью в поле мантиссы сохраняются разряды после запятой, а в поле порядка – его смещенное, всегда положительное значение

р + 127, равное 12810 =100000002.

54

Таблица 6.1

Примеры представления чисел в формате с плавающей запятой с одинарной точностью

Десятич-

Число в формате с плавающей запятой с одинарной точностью

ное

Шестнадцате-

 

Двоичное представление

представ-

ричное представ-

Знак

Порядок

Мантисса

ление

ление, 32 разряда

[31]

[30..23]

[22..0]

3,5

4060 0000h

0

1000 0000

110 0000 0000 0000 0000 0000

–1,8

bfe6 6666h

1

0111 1111

110 0110 0110 0110 0110 0110

Пример с фрагментом плана тестирования, включающим сум- мированиечисел3,5и–1,8,ивременнаядиаграмма,показывающая его реализацию, представлены в табл. 6.2 и на рис. 6.6. Десятичные значения указаны с точностью до двух знаков после запятой.

9.Всоответствиисиндивидуальнымзаданием(см.прил.4)разработайте и реализуйте план тестирования сумматора с плавающейзапятой.Включитевплантестированияслучаисуммирования чисел с разными комбинациями знаков и с разным соотношением порядков. Включите в план тестирования случаи, приводящие

кформированию флагов zero, overflow, underflow и NaN.

Впояснительную записку включите снимок с экрана со схемой исследуемогосумматораиполностьюзаполненныйплантестирования. Соблюдайте структурирование двоичных данных, представленных в таблице: в 32-разрядном значении должны быть выделены разряды знака, порядка и мантиссы.

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

Включите в пояснительную записку объяснение перевода десятичного числа в двоичное в формате с плавающей запятой IEEE-754 и обратно для одного из чисел, использованных в ходе исследования сумматора.

55

56

Таблица 6.2

Пример фрагмента плана тестирования для сумматора чисел в формате с плавающей запятой

Тест

Входные воздействия

 

Результат

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

 

B

 

Y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ожи-

 

 

 

 

 

 

 

 

 

 

 

дае-

 

 

 

 

 

 

 

 

 

 

Зна-

мый

 

деся-

 

деся-

 

 

NaN

overflow

underflow

zero

деся-

 

тич-

 

тич-

 

деся-

ки

 

 

 

 

 

 

 

опе-

тич-

двоичное

ное

двоичное

ное

двоичное

тичное

 

 

 

 

ный

зна-

зна-

знако-

 

 

 

 

ран-

по-

 

ко-

 

ко-

 

вое

 

 

 

 

дов

рядок

 

вое

 

вое

 

 

 

 

 

 

 

резуль-

 

 

 

 

 

 

 

 

 

 

 

тата

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A > 0,

поло-

0 10000000

3,5

1 01111111

–1,8

0 01111111

≈ 1,7

0

0

0

0

B < 0

жи-

11000000000000000000000

 

11001100110011001100110

 

10110011001100110011010

 

 

 

 

 

 

тель-

 

 

 

 

 

 

 

 

 

 

 

0 10000100

48,1

1 01111110

–0,79

0 10000100

≈ 47,31

0

0

0

0

 

ный

10000000110011001100110

 

10010011111101111100111

 

01111010011111001110110

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

отри-

0 10000000

3,5

1 10000000

–2,8

0 01111110

≈ 0,7

0

0

0

0

 

ца-

11000000000000000000000

 

01100110011001100110011

 

01100110011001100110100

 

 

 

 

 

 

тель-

 

 

 

 

 

 

 

 

 

 

 

0 01111110

0,7

1 01111110

–0,79

1 01111011

≈ –0,09

0

0

0

0

 

ный

01100110011001100110011

 

10010011111101111100111

 

01101100100010110100000

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 6.6. Временная диаграмма изменения входных и выходных данных из табл. 6.2

Сохраните архив проекта fp_adder в портфолио.

Контрольное задание 1. По указанию преподавателя модифицируйте входные данные теста и объясните полученные результаты.

Контрольное задание 2. На примере одного из тестов в плане тестированияобъяснитезакономерностивизменениивеличинмантиссы и порядка при выполнении суммирования.

7. ИССЛЕДОВАНИЕ АЛГОРИТМИЧЕСКОГО УМНОЖЕНИЯ ЧИСЕЛ В ПРЯМЫХ КОДАХ НА ДВОИЧНОМ СУММАТОРЕ

На основе способов умножения в столбик можно организовать четыре алгоритма умножения в зависимости от последовательности операций сложения и выбора сдвига (используются двоичный сумматор и сдвигающий регистр). Их разрядность зависит от разрядности операндов и от реализуемого алгоритма (табл. 7.1).

Анализируя различные способы умножения, для каждого из алгоритмов рассмотрим модели с различными уровнями детализации:

математическую модель (арифметическое выражение, по которому ведется вычисление);

схему алгоритма;

структурную схему устройства умножения.

Далее будут использованы следующие обозначения.

1. Регистр (Rg) – это простое запоминающее устройство для хранениямногоразрядныхданных.Вначалекаждоготактарегистр

57

 

 

Таблица 7.1

Базовые алгоритмы двоичного умножения

 

 

 

Сдвигаемое значение

Суммирование

младшими разрядами

старшими разрядами

 

вперед

вперед

Множимое (A)

мр(м)

ср(м)

Сумма (S)

мр(Σ)

ср(Σ)

запоминаетподаваемыенаеговходыданные.Навыходахрегистра устанавливаются текущие хранимые данные.

2.Начальная установка (н. у.).

3.Сигнал дискретного времени clk (такты), в котором работает устройство. Событием, задающим дискретное время, будем считать переключение сигнала clk из 0 в 1.

4.Устройствоуправления(УУ)дляразрешенияработыэлементов схемы и выдачи отсчетов времени.

5.Управляемый двоичный сумматор ∑.

7.1.Умножение младшими разрядами вперед со сдвигом множимого

Математическая модель. В произведении A × B раскроем B побитно, опираясь на формат естественного представления числа. Для упрощения записи представим число как целое:

S = A×B = A(2n−1bn−1 +2n−2bn−2 +…+21b1 +20b0 )= =2n−1 Abn−1 +2n−2 Abn−2 +…+2Ab1 + Ab0 =

A A A

= n−1 bn−1 + n−2 bn−2 +…+ 1 b1 + Ab0 +0.

Исходное значение A не сдвинуто. Значит, можно получить младшее частичное произведение Ab0 и прибавить его к значению (н. у. = 0), накапливаемому в сумматоре. Операция арифметическогосдвигамножимогоAнаодинразрядвлевопозволяетполучить следующее частичное произведение Ab1. Аналогично путем последовательного сдвига множимого на один разряд влево могут быть получены все частичные произведения.

58

×
Рис. 7.1. Алгоритм умножения младшими разрядами вперед со сдвигом множимого

Схема алгоритма умножения младшими разрядами вперед со сдвигом множимого. Схе-

ма представлена на рис. 7.1. Задаются н. у., накапливаемой сумме присваивается значение 0. Каждый цикл алгоритма умножения предусматривает операцию сложения на двоичном сумматоре и операцию сдвига. Операция сложения выполняется всегда, дажееслиbi =0.Всеговыполняетсяn циклов.

В последнем цикле сдвиг не требуется. Он включен, чтобы все итерации алгоритма были одинаковыми. Это упрощает УУ.

Схема устройства умножения. Схема при-

ведена на рис. 7.2. Разрядность операндов равнаn; разрядности сумматора∑, сдвигающего регистра RgAи регистра суммы Rg∑ равны 2n; разрядность сдвигающего регистра RgBравна n. В сдвигающем регистре RgAвыполняется арифметический сдвиг влево,вRgB–произвольныйсдвигвправо.

Устройство управления реализует следующий алгоритм. Вначале УУ задает начальные установки в регистры (элементы памяти).

Затем в Rg∑ записывается ноль; в старшие n разрядов RgAзагружается ноль, в младшие – разряды множимого A[n–1..0]. В регистр RgBзагружается множитель B[n–1..0].

На каждом такте работы УУ анализирует состояние младшего разряда RgBи выдает на управляемый сумматор команду сложения с содержимым RgA(bi = 1) или команду сложения с нулем (bi = 0, пустое сложение). На RgAи RgBвыдается команда «сдвинуть», на Rg∑ – команда «записать». На схеме для этого и следующих алгоритмов связи для управления н. у. и потактной работой показаны на структурной схеме пунктиром. На одну итерацию цикла работы устройства приходится один такт.

59

– –

Рис. 7.2. Структурная схема устройства умножения младшими разрядами вперед со сдвигом множимого

Рис. 7.3. Содержимое регистров умножителя младшими разрядами вперед со сдвигом множимого

Оценка быстродействия. Для n итераций цикла:

tц = (tΣ + tсдв); tумн = n (tΣ + tсдв).

60

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]