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

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

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

а в столбце.

Рисунок 3.8 представляет каскадную схему, реализующую 35x35-разрядного знакового умножителя, который использует четыре встроенных умножителя и два сумматора. Установленный сумматор имеет ширину 53 бита (17 младших бит всегда нулевые на одном входе). 34x34-разрядный подмодуль без знака представлен аналогичным способом с наиболее значимый бит на каждом операнде, привязываемом к логике Low.

Рисунок 3.8 - 35x35 знаковый умножитель

4. Технический проект

 

Описание проекта с выполняется помощью на ЯОА, т.к этот способ является наиболее гибким вариантом, хотя требует больше времени и знаний специфики используемого ЯОА. В качестве ЯОА для описания алгоритма выбран VHDL. Это обусловлено высокой адаптацией средств языка для нужд проектировщика, наличием эффективной среды моделирования (Active-HDL).

 

.1 Описание блока умножителя в архитектуре Spartan -3

 

Множители расположены смежно с блоком RAM, что делает удобным хранение вводов или результатов в блочной памяти (см. рисунок 4.1). Маленькие устройства имеют один столбец, самые большие - до пяти столбцов. В тех случаях, когда имеется два столбца умножителей, то между ними и краем имеется две строки CLB, позволяя CLB или IOB логике легко управлять умножителем. Имеется четыре CLB блока, или 16 секторов и 32 ячейки LUT с обеих сторон данного блока множителя, позволяя 32 входным и выходным сигналам быть мгновенно соединенными совместно с блоком множителя. Одним из возможных высокоскоростных размещений будет, если поместить А[15:0] с одной стороны, B [15:0] с другой стороны, и разнообразие выводов P [31:0] с обеих сторон. Для полноразмерного 18x18 умножителя, дополнительные вводы и выводы можно соединить со следующим CLB столбцом. Для лучшего выполнения можно конвейеризовать вводы с регистраторами в смежном CLB блоке.

Рисунок 4.1 - Расположение умножителей в архитектуре Spartan -3

 

При этом два дополнительных столбца блока RAM/multiplier устройств XC3S4000 и XC3S5000 показаны пунктирными линиями. XC3S50 устройство имеет единственный столбец блока RAM/multipliers по левому краю.

Каждый множитель расположен смежно с 18 разрядным блоком оперативной памяти и совместно использует некоторые общие ресурсы. В семействах Spartan-3 и Spartan-3E, конфигурируя 18 разрядный блок оперативной памяти для 32/36-разрядных данных (512 x 36 режима), предотвращают использование связанного специализированного множителя, потому что более низкие 16 битов ввода сомножителя разделены с верхними 16 битами порта блочной оперативной памяти ввода данных. Точно так же более низкие 16 битов входа B сомножителя разделены с портом ввода данных А.A/3AN платформы предлагают дополнительную маршрутизацию между блоком RAM и умножителем. Вводы порта независимы, так что умножитель может всегда использоваться, даже если блок RAM выводит на порту A все 36 разрядов. Поскольку порт B все еще совместно используется, рекомендуется определить блок RAM смешанным - с 36-разрядными данными относительно порта и более узкие данные (до x18) на порт B.

-разрядов умножителя Spartan -3 не являются обычными, но соответствуют 18-разрядной ширине блока RAM, которая включает в себя биты четности. Стандартные 8-разрядные или 16-разрядные умножители могут быть созданы при использовании лишь части блока умножителя, или 32-разрядный умножитель может быть реализован путем каскадирования. Архитектура Xilinx позволяет имплементировать разрядность любой не стандартной ширины, точно соответствуя спецификациям приложения. Неиспользованные вводы умножителя автоматически подключены к нулю из-за соединения с неиспользуемыми ячейками LUТ, которые установлены в ноль.

 

Таблица 4.1 - Число умножителей в устройствах Spartan -3

Устройство Количество столбцов умножителейКоличество умножителейXC3S5014XC3S200212XC3S400216XC3S1000224XC3S1500232XC3S2000240XC3S4000496XC3S50004104

.2 Описание двух умножителей в одном примитиве

 

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

При размещении одного значения на младших битах, а другого на старших, могут быть получены два независимых результата, в случае, если результаты не накладываются друг на друга на выходах. Смещение одного из значений на N позиции к MSB является тем же, что и умножение его на 2n. Если значение, сдвинутое к MSB на значение X, тогда новое значение будет X * 2n. Если значение на младших битах равно Y, то конечный ввод умножителя является X * 2n + Y.

 

.3 Описание системы CORE генератора

 

Множители, в которых используются встроенные Spartan-3 18x18-разрядные умножители с двоичным дополнением, могут быть легко сгенерированы с помощью 6.0 версии модуля CORE Множителя Генератора. Это ядро доступно с версией 5.1i и более поздними версиями системы CORE Generator. Особенности генератора:

Генерирует параллельные умножители, использующие специализированные блоки умножителя, также может использовать другие ресурсы для параллельных умножителей или генерировать sequential/serialsequential и fixed/reloadable постоянные множители коэффициентов;

Поддерживает со знаком / без знака режимы с двоичным дополнением;

Поддерживает ввод в пределах от 1 до 64 бита;

Поддерживает вывод в пределах от 1 до 129 битов;

Генерирует комбинаторное и полностью конвейерное выполнение;

Обеспечивает, необязательный регистровый вывод с таймером и асинхронным / синхронным сбросом;

Обеспечивает необязательные сигналы подтверждения связи.

Рисунок 4.2 показывает логический символ для CORE Multiplier Generator. Вывод RFD (готовый к данным) принимает значение ?1?, чтобы указат?/p>