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

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

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

4. ИССЛЕДОВАНИЕ СЛОЖЕНИЯ ЧИСЕЛ В ФОРМАТЕ С ФИКСИРОВАННОЙ ЗАПЯТОЙ В ОБРАТНОМ КОДЕ НА ДВОИЧНОМ СУММАТОРЕ

Сумматор в обратных кодах, как и сумматор в дополнительных кодах,оперируетзнаковымичислами.Однакодляегоорганизации в схему двоичного сумматора необходимо ввести структурные изменения – «циклический перенос», соединив выход cout сумматорасовходомcin,какпоказанонарис.4.1.Однаконаличиеэтойобратной связи не позволит суммировать на таком сумматоре числа без знака и числа в дополнительном коде.

Выполните исследование по следующей программе.

1.Создайте новый проект adder_signed_1s_compl. Создайте логический файл по схеме рис. 4.1.

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

2.Создайте таблицу с планом тестирования в соответствии с индивидуальным заданием (см. прил. 2). Начните тест со сложениядвуходинаковыхпомодулючиселсразнымизнаками.Полностью заполните столбец входных воздействий, записав двоичное

идесятичное представление для выбранных значений a[] и b[]. Продемонстрируйте получение положительного и отрицательного нуля.

3.Реализуйте тест в форме временной диаграммы в среде Quartus, задавая входные воздействия во времени в том же порядке,

Рис. 4.1. Схема сумматора чисел в обратных кодах

41

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

4.Запишите в таблицу двоичные и десятичные значения s[] и всех других выходных сигналов, полученные в результате моделирования. Пример заполнения таблицы с планом тестирования для сумматора в дополнительных кодах приведен в табл. 3.1.

5.Убедитесь, что полученные результаты тестирования совпадаютсожидаемыми.Втомслучае,еслирезультатымоделирования не совпадают с ожидаемыми, определите и устраните причину несоответствия.

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

исоответствующий ему снимок экрана с результатами моделирования сумматора.

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

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

Контрольное задание 2. Объясните возможность использования сигнала overflow, получаемого c выхода сумматора.

5.ИССЛЕДОВАНИЕ БИБЛИОТЕЧНОГО МОДУЛЯ ДВОИЧНОГО СУММАТОРА LPM_ADD_SUB

5.1.Сложение чисел без знака

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

Создайтеновыйпроектadder_mod_lib,повторивпоследовательностьшагов,приведеннуювгл.2.Внемсоздайтелогическийфайл по схеме рис. 5.1, продолжив выполнение шагов, приведенных в гл. 2. Используйте мастер настроек (MegaWizard) для настройки библиотечного модуля LPM_ADD_SUB, выполнив следующие действия.

1.Откройте IP-Catalog (например, через меню Tools).

42

Рис. 5.1. Схема сумматора модулей чисел с библиотечным модулем сумматора

Рис. 5.2. Окно выбора библиотечного модуля

2.Найдите библиотечный элемент с именем LPM_ADD_SUB, выполнив навигацию по дереву библиотеки или ввод первых символов имени искомого элемента.

3.Дважды щелкните по имени найденного библиотечного эле-

мента LPM_ADD_SUB (рис. 5.2).

4.Воткрывшемсяокнезадайтепутьиимясоздаваемогомодуля (рис. 5.3) и щелкните кнопку ОК, изучите особенности реализации библиотечного модуля по документации разработчика [6].

Примечание.Для удобства последующего поиска используйте мнемонические имена модулей.

43

Рис. 5.3. Окно задания имени и пути к экземпляру библиотечного

модуля

Рис. 5.4. Окно задания настроек разрядности сумматора, по умолчанию равной 8, и режима его работы (только сложение)

5.В следующем окне задайте основные настройки модуля (рис. 5.4) и щелкните кнопку Next.

6.В следующем окне задайте дополнительные настройки модуля(рис.5.5).Наэтойстраницеопределяютсявходныепеременные.

44

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

7.Щелкните Next.

8.В следующем окне задайте дополнительные настройки модуля(рис.5.6).Наоткрывшейсястраницевыбираютсясигналывходного и выходного переносов и сигнал переполнения.

9.Страницы 4 и 5 в мастере настроек оставьте без изменений, а на странице 6 включите генерацию файла с символом для библио-

течного модуля Quartus Prime symbol file. Щелкните кнопку Finish.

Если возникнет окно с запросом добавления файла библиотечного модуля в проект, подтвердите операцию.

СимволсозданногосумматорасохраненвпапкеProjectиможет бытьиспользованвсхеме,какилюбойсимволизстандартныхбиб-

лиотек Quartus.

Рис. 5.5. Окно задания настроек параметров операндов

45

Рис. 5.6. Окно выбора интерфейса сумматора

10. Закончите ввод проекта в соответствии со схемой на рис. 5.1. Сохраните полученный графический файл под именем adder_mod_lib.

11.Скомпилируйте проект, выполнив команду Start Analysis

&Synthesis.

12.Завершите исследование сумматора в соответствии с индивидуальным заданием (см. прил. 2), следуя программе из разд. 2.3. Используйте шаблон плана тестирования по примеру табл. 2.1.

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

исоответствующий ему снимок экрана с результатами моделирования сумматора.

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

46

5.2.Сложение чисел со знаком в дополнительном коде

Вэтомразделесоздайтеиисследуйтемодельустройства,реализующеговсредеQuartusсхемувосьмиразрядногокомбинационногодвоичногосумматорачиселсознакомсиспользованиембиблиотечного модуля LPM_ADD_SUB (рис. 5.7), выполнив следующие действия.

Рис. 5.7. Схема сумматора чисел в дополнительных кодах с библиотечным модулем сумматора

Рис. 5.8. Окно задания типа сумматора

47

1.Создайте новый проектadder_signed_lib. Создайте логический файл по схеме рис. 5.7. Для этого используйте мастер настроек (MegaWizard) для настройки библиотечного модуля LPM_ADD_ SUB. Все настройки выполняются так же, как в разд. 5.1, кроме задаваемых на странице 2 мастера настроек (рис. 5.8). На этой странице задайте тип входных переменных Signed – числа со знаком

вдополнительном коде. Старший разряд такого числа – его знак.

2.Завершите исследование сумматора в соответствии с индивидуальным заданием (см. прил. 2), следуя программе из разд. 2.3. Используйте шаблон плана тестирования (см. табл. 3.1).

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

исоответствующий ему снимок экрана с результатами моделирования сумматора.

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

5.3. Умножение числа без знака на константу

Для умножения числа без знака на константу можно использовать сложение частичных произведений числа a[] · ci, где ci – единицы в соответствующих разрядах константы. Получение частичного произведения сводится к получению сдвинутого значения числаa[].Есликоличествоединицвконстантес[]неболеедвух,то дляполученияпроизведениядостаточнонеболееодногодвоичного сумматора.

Например: a[4..0], c[2..0] = 101.

Максимальное значение произведения s[] = 11111 · 101 = 31· 5 = = 155, т. е. разрядность s[] равна 8.

s[7..0] = a[4..0] · 100 + a[4..0] · 1 = {a[4..0],00} + a[4..0]. Выровняв разрядность слагаемых, получим:

a4

a3

a2

a1

a0

0

0

+

 

 

 

 

 

 

0

0

a4

a3

a2

a1

a0

Два младших разряда числа s[1..0] равны a[1..0], поскольку выполняется сложение с нулями. Для получения разрядов s[7..2]

48

необходим шестиразрядный сумматор (пятиразрядный с выходным переносом). Схема реализации умножения на константу для рассмотренного примера приведена на рис. 5.9.

Обратите внимание на именование сигналов в схеме. В схеме получен сигнал zer, подключенный к «земле» и используемый как логический ноль. Пятиразрядный сигнал, подаваемый на вход da- tab[4..0] сумматора, содержит в двух старших разрядах нули и три разряда a[4..2]. Результирующий сигнал s[7..0] собирается из сигналовcout и result[4..0]сумматораидвухмладшихразрядовa[1..0].

Выполните исследование по следующей программе.

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

2.Создайте проект const_mul_mod. Используя мастер настроек (MegaWizard), настройте библиотечный модуль LPM_ADD_SUB дляреализацииустройстваумножения.Разработайтесхемуустройства умножения в соответствии с индивидуальным заданием.

3.Создайте таблицу с планом тестирования. Полностью заполните столбец входных воздействий, записав двоичное и десятичное представление для выбранных значений a[].

4.Реализуйте тест в форме временной диаграммы в среде Quartus,задаваявходныевоздействиявовременивтомжепорядке,что

ив плане тестирования. Проведите функциональное моделирование работы устройства.

Рис. 5.9. Схема умножителя на константу на базе двоичного сумматора модулей чисел

49

5.Запишите в таблицу с планом тестирования двоичные и десятичные значения s[], полученные в результате моделирования.

6.Убедитесь, что полученные результаты тестирования совпадаютсожидаемыми.Втомслучае,еслирезультатымоделирования не совпадают с ожидаемыми, определите и устраните причину несоответствия.

Контрольное задание 1. По указанию преподавателя реализуйте схему умножения модуля числа заданной разрядности на другую заданную положительную константу (7 или 14).

Контрольное задание 2. По указанию преподавателя реализуйте схему умножения числа заданной разрядности со знаком, хранимого

вдополнительном или обратном коде, на заданную положительную константу.

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

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

6.ИССЛЕДОВАНИЕ СУММАТОРА ЧИСЕЛ В ФОРМАТЕ

СПЛАВАЮЩЕЙ ЗАПЯТОЙ

Создайте и исследуйте модель устройства, реализующего сумматор чисел в формате с плавающей запятой с одинарной точностью (32разряда)постандартуIEEE-754,выполнивследующиедействия.

1.Создайте проект fp_adder и логический файл, повторяя известную последовательность шагов.

2.Используйтемастернастроек(MegaWizard)длясозданияэкземплярабиблиотечногомодуляALTFP_ADD_SUB,повторяяизвестную последовательность шагов (см. гл. 5). Изучите особенности реализациибиблиотечногомодуляподокументацииразработчика[7].

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

50

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