Умножающие устройства. Последовательное умножающее устройство. Схема устройства умножения двух чисел разрядности N = 8, страница 3

S(2*N1-3 downto 0) <=

S_abs           when '0',

not( S_abs )    when '1';      

END COD_CONVERT_arch;


рис 2.9. Синтезированная схема блока COD_CONVERT в RTL Viewer.

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

3. Исследование мегафункции LPM_MULT.

3.1. Исследование неконвейеризированного умножителя LPM_MULT. 


Рис.3.1. Исследование умножителя LPM_MULT.

Проверку правильности функционирования умножителя показывают следующие временные диаграммы.

Без знаковое умножение.


Рис.3.2. Диаграмма работы без знакового умножителя.

Умножение чисел со знаком.


Рис.3.3. Диаграмма работы знакового умножителя.

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

На ПЛИС умножитель может быть реализован с использованием логических элементов и с использованием встроенных умножителей. Сравнение этих двух возможных реализаций приведено в таблице.

Таблица 3.1.1

Реализация на логических

ячейках

Реализация на встроенных умножителях

Аппаратные затраты

206 lut

1 DSP 18x18

tpdmax для выходной шины

27.107 ns

19.785 ns

tpdmin для выходной шины

21.927 ns

18.312 ns

В редакторе назначений для выходной шины предъявим требование к максимальной задержке. Параметр tpd Requirement задан равным минимальному значению tpd из предыдущей таблицы.

Таблица 3.1.2

Реализация на логических

ячейках

Реализация на встроенных умножителях

tpdmax для выходной шины

19.424 ns

15.812 ns

tpdmin для выходной шины

18.393 ns

15.183 ns

3.2. Исследование конвейеризированного умножителя LPM_MULT. 


Рис.3.2. Исследование конвейеризированного умножителя LPM_MULT.

D-триггеры необходимы для измерения тактовой частоты работы, так как она измеряется относительно задержек на триггерах.

Временные диаграммы работы конвейеризированных умножителей.


рис.3.2.1. 0 этапов конвейера.


рис.3.2.2. 1 этап конвейера.


рис.3.2.3. 2 этапа конвейера.


рис.3.2.4. 3 этапа конвейера.


Рис.3.2.5. 4 этапа конвейера.

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

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

Таблица 3.2. Реализация умножителя на логических элементах

Этапы конвейера

0

1

2

3

4

Аппаратные

затраты

231 lut

124 lut

96 reg

124 lut

125 reg

124 lut

181 reg

124 lut

301 reg

Наименьшее значение Fmax

81.65 MHz

133.26 MHz

127.40 MHz

119.22 MHz

208.46 MHz

Наибольшее значение Fmax

102.40 MHz

154.68 MHz

158.93 MHz

187.06 MHz

246.73 MHz

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

4. Анализ результатов работы. Сравнение вариантов реализации умножителей.

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

Если сравнивать последовательные умножители с матричными, то если критерием оценки считать аппаратные затраты, то здесь преимущество у последовательных умножителей, так например, для реализации последовательно умножителя чисел разрядности 8 необходимо 38 ячеек, то для матричного умножителя чисел такой же разрядности на логических элементах требуется 107 логических ячеек. Таким образом, если нужно не очень большое быстродействие, то можно использовать последовательные умножители.

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

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

Как итог, можно сделать вывод, что выбор реализации умножителя зависит от решаемой задачи — необходимой для ее решения производительности и доступных аппаратных ресурсов.