Реализация n-битного умножения на Spartan 3E Kit с использованием аппаратных умножителей
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
ны необязательные регистры BREG и PREG. Когда AREG и PREG используются, значение, полученное на этом порту, квалифицируется высоким уровнем CLK, подчиненный соответствующему ресурсу управления регистра.BCIN[17:0]ВводВторое 18-разрядное двоичное значение дополнительного кода для умножения, если атрибут B_INPUT установлен в CASCADE. Когда AREG и PREG используются, значение, полученное на этом порту, квалифицируется высоким уровнем CLK, подчиненный соответствующему ресурсу управления регистра.P [35:0]Вывод36-разрядное результат умножения с дополнительным кодом двух значений, поданные на вход умножителя. Если необязательный регистры AREG, BREG и PREG опущены, вывод работает асинхронно. Использование PREG заставляет этот вывод отвечать на высокий уровень CLK со значением, определенным CEP и RSTP. Если PREG опущен, но AREG и BREG используются, этот вывод отвечает на высокий уровень CLK со значением, определяемым CEA, RSTA, CEB, и RSTB. Если PREG опущен и только один из AREG или BREG используется, этот вывод отвечает и на асинхронные, и на синхронные события.BCOUT[17:0]ВыводЗначение, применяемое ко второму вводу умножителя. Когда необязательный регистр BREG опущен, этот вывод отвечает асинхронно в ответ на изменения в портах B [17:0] или BCIN [17:0] согласно установке атрибута B_INPUT. Если BREG используется, этот вывод отвечает на высокий уровень CLK со значением, определяемым CEB и RSTB.CEAВводЗначение, поданное на порт А[17:0], фиксируется AREG в ответ на передний фронт CLK на высоком уровне сигнал, при условии, что у RSTA низкий уровень.RSTAВводСинхронный сброс для необязательного регистра AREG. Значение AREG сбрасывается в ноль в ответ на передний фронт CLK, когда этот сигнал принимает высокий уровень.CEBВводЗначение, поданное на порт B [17:0] или BCIN [17:0], фиксируется BREG в ответ на передний фронт CLK на высоком уровне сигнал, при условии, что у RSTВ низкий уровень.RSTBВводСинхронный сброс для необязательного регистра BREG. Значение BREG сбрасывается в ноль в ответ на передний фронт CLK.CEPВводЗначение, переданное на вывод порта умножителя, фиксируется PREG в ответ на передний фронт CLK на высоком уровне сигнал, при условии, что у RSTР низкий уровень.RSTPВводСинхронный сброс для необязательного регистра РREG. Значение PREG сбрасывается в ноль в ответ на передний фронт CLK.
Управляющие сигналы CLK, CEA, RSTA, CEB, RSTB, CEP, и RSTP имеют свойство перевернутой полярности.
.4 Расширение умножителей
Умножение, использующее вводы с разрядностью больше чем 18 бит, можно реализовать путем разбиения процесса умножения на меньшие подпроцессы. Двоичное представление любого ввода может быть разбито на любом этапе, если принято во внимание приложения истинной нагрузки и знак MSB. Откол 18 MSBs от разрядности ввода является лучшим использованием 18-разрядных знаковых множителей.
Так, рисунок 3.6 показывает, как мог быть осуществлен 22x16 разрядный множитель. 22-разрядное значение разделяется на 18-разрядное знаковое значение и 4-разрядное значение без знака от LSBs. Сформированы две части продукта: первая- 20-разрядная знаковая, которая является результатом умножения 16-разрядного знакового значения на 4-разрядную беззнаковую часть. Вторая - 34-разрядная знаковая, сформированная при умножении 16-разрядного знакового значения на 18-разрядную знаковую часть. Процесс сложения восстанавливает нагрузку изделия (программ) (необходимо обратить внимание на наименьшие значащие биты первого обхода сложения продукта) и формирует конечный 38-разрядный продукт. Так как первый продукт знаковый, то 20-разрядное значение должно быть расширено перед сложением. Сумматор непосредственно должен быть 34 битный, требующий 17 частей (slices).
Рисунок 3.6 - Имплементация 22x16 разрядного умножителя
Имплементация может изменяться в зависимости от требований спецификации и доступных ресурсов.
Второй умножитель может быть имплементирован в ресурс MULT18X18 или в CLBS, если он маленький.
Для улучшения работы можно добавить конвейерную обработку, используя встроенные возможности специализированного умножителя. Если разрядность обоих вводов больше чем 18 битов, тогда формируются четыре промежуточные части, но беззнаковый результат младших битов просто может быть связан с 36-разрядным знаковым результатом старших битов (MSBS) и добавлен к другим двум результатам.
Примитив Spartan-3E/3A/3AN MULT18X18SIO имеет два дополнительных порта BCIN и BCOUT для каскадирования или разделения входа B умножителя среди нескольких блоков множителя.
-разрядный каскадный входной порт BCIN предлагает дополнительный ресурс входа из более типичного ввода B. Атрибут B_INPUT определяет, использовать ли при имплементировании путь от BCIN или от входа B. Устанавливая B_INPUT в DIRECT, выбирается ввод B. Устанавливая B_INPUT в CASCADE, выбирается альтернативный вход BCIN. При необходимости регистр BREG тогда произвольно хранит выбранное входное значение.является 18-разрядным портом вывода, который всегда отражает значение поданное на второй вход умножителя. Этим значением может быть ввод B, каскадное значение от ввода BCIN, или вывод BREG, если он подключен. Рисунок 3.7 иллюстрирует четыре возможных конфигурации, использующие различные параметры настройки для атрибута B_INPUT и атрибута BREG.
Рисунок 3.7 - Четыре конфигурации входа B
Порты BCIN и BCOUT имеют специализированные маршруты, связывающие смежные умножители в пределах одного столбца. Благодаря каскадной связи порт BCOUT одного блока умножителя управляет портом BCIN блока умножителя непосредственно выше данного. Нет связи с портом BCIN самого нижнего блока умножителя в столбце или соединения от порта BCOUT самого верхнего блок