Реализация n-битного умножения на Spartan 3E Kit с использованием аппаратных умножителей

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

°. Способ проверки: программное моделирование тестов на всех этапах вплоть до физической реализации на кристалле; далее физическое моделирование.

 

1.1Назначение устройства

 

Встроенные множители предлагают быстрый, эффективный способ создавать знаковый 18-разрядный результат в 18-разрядном устройстве умножения. Блоки множителя делятся распределенными ресурсами с блоком памяти SelectRAM ™, позволяя увеличивать эффективность для многих приложений. Каскадирование умножителей может быть имплементировано с дополнительными логическими ресурсами в локальном секторе Spartan -3.

 

1.2Требования к реализации

 

Спецификация - часто устное или графическое описание поведения схемы. Это описание необходимо интерпретировать для построения диаграммы состояний или таблицу состояний как первый шаг в цикле проектирования устройства.

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

Инструментальные средства синтеза высокого уровня обычно автоматически выводят специализированный умножитель для универсальной операции умножения в VHDL или Verilog. Чтобы большее количество пользователей имело возможность использовать и управлять специальные возможности умножителя, нужно применить в проекте систему CORE Generator. 18x18-разрядные умножители могут быть быстро созданы при использовании системы CORE Generator™, или они могут быть применены при помощи VHDL или Verilog.

Так же имеют место ограничения местоположения. Образцы встроенного множителя MULT18X18 могут иметь LOC свойства, приложенные к ним для сокращения занимаемого места. Размещение MULT18X18 отличается от соглашения, используемого для расположения CLB, позволяя LOC свойствам легко перемещаться от массива к массиву. LOC свойства имеют следующий вид:

= MULT18X18_X*Y * (1.1)

 

Например, MULT18X18_X0Y0 - находится в левом нижнем углу MULT18X18 на устройстве.

В работе 18x18-разрядный умножитель используется для умножения двух 4-х разрядных чисел со знаком и без знака.

1.3Входные/выходные параметры

 

Таблица 1.1 - Описание входных и выходных параметров

НазваниеНазначениеРазрядностьФункцияAВход4 битаОбеспечивает новые данные, которые используются в качестве одного из операндов умножения.BВход4 битаОбеспечивает новые данные, которые используются в качестве одного из операндов умножения.PВыход8 битаОбеспечивает значение данных умножения с двоичным дополнением для операндов A и B.

2. Техническое предложение

 

2.1 Математическое обеспечение

 

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

 

.1.1 Двоичная арифметика чисел с плавающей запятой

Простейшая запись числа с плавающей точкой N имеет вид:

= F*2Е (2.1)

 

где, F - мантисса, E - порядок. Отрицательная мантисса и порядок часто записываются в дополнительном коде. Обычно мантисса F имеет длину 16 - 64 бита, а порядок 8 - 15 бит. В следующем примере предполагается, что F и E имеют длину 4 бита. Однако данный подход может быть применим к любому числу бит. Примеры чисел с плавающей точкой:

 

F= 0.101E=0101 N= 5/8 * 25= 1.011E=1011 N= - 5/8 * 2-5

F= 1.000E=1000 N= -l * 2-8

 

Число с плавающей точкой имеет следующий формат рисунок 2.1

1 m m+2 m+p+1

 

+ / -мантисса+ / -порядокРисунок 2.1 - формат числа с плавающей точкой

 

Чтобы использовать все биты мантиссы и увеличить число ее значащих символов необходимо ее нормализовать. Для этого модуль мантиссы сдвигается влево, пока его первый бит и знак не будут иметь различные значения. Сдвиг числа влево эквивалентен умножению на 2, следовательно, после каждого сдвига необходимо уменьшать порядок на 1, чтобы не изменить число N. Пример иллюстрирует нормализацию мантиссы с помощью операции сдвига:

Ненормализованное:

= 0.0101E=0011 N=5/16 * 23 = 5/2

 

Нормализованное:

= 0.101E=0010 N=5/8 * 22=5/2

 

Ненормализованное:

= 1.11011 E=1100 N= -5/32 *2-4 = -5 * 2-9

 

(сдвиг F влево)

= 1.1011E=1011 = -5/16 *2-5 = -5 * 2-9

Нормализованное:= 1.011 E=1010= -5/8 * 2-6 = -5 * 2-9

 

Нуль не может быть нормализован, поскольку F = 0.000 и N = 0. Может быть использовано любое значение порядка, однако лучше иметь единое представление 0.

Организацией IEEE разработан стандарт для чисел с плавающей точкой, который описывает единый способ их представления в компьютерных системах. Тем не менее, большинство арифметических устройств для чисел с плавающей точкой преобразуют IEEE обозначение в дополнительный код и затем используют его для выполнения операций с плавающей точкой. Окончательный результат преобразуется обратно в IEEE стандарт.

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

. Потеря значимости имеет место при выполнении операций сложения и вычитания, когда при равных порядках модули мантиссы равны с точностью до m старших ра?/p>