реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Каскадирование умножителей в ПЛИС (Spartan-3)
sazh
сообщение Dec 10 2008, 15:54
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Цитата(0xFF @ Dec 10 2008, 18:21) *
в приложенном файле реализована схема Xapp467 на стр.6

В примитивах XILINX в случае при умножении со знаком и при использовании операндов с меньшим кол-вом бит чем вход умножителя недостоющие старшие биты необходимо дополнить знаковым битом.

Использование signed не протеворечит выше изложенному, в случае, конечно, если вы не используете Verilog 1995.

C уважением


.A({1'b0,a[16:0]}), // 18-bit multiplier input
знак - это a[16], им и надо дополнять. Полученный результат signed. знак у него это святое. Вы же дальше разрядностью играете, суммируете, урезаете и т.д. понятие signed всегда присутствует и в параметрах умножителя (потому что разрядность по входам и выходу разная) и при описании сумматоров, если разрядная сетка меняется (Вы все это на откуп синтезатора отдали)
/////////////////////////////////////////////////////
Посмотрел документ. Одни вопросы и непонятки. Рисунок 5. Умножитель 22х16. На одной веточке скромное unsigned.
Чего на чего умножили - не понять. 16 разрядов до 18 надо размножить. как не понятно.
Код умножили на код. Код получили. Куда его потом засунуть. Как объявить.
На 6 рисунке надо полагать обещают на входе signed - на выходе signed.
Значит надо верить. И в лоб делать. (Про знак придется откатить. Анализировать разбивку вектора по макросам - я не математик.) Причем когда текстового описания коснулись в последующих примерах, числа без знака легли на этот макрос.
А когда на пальцах стали объснять
For example,
1111 1100 = -4
× 0000 0100 = +4
1111 0000 = -16
разрядную сетку по входу и выходу сравняли и в столбик умножили.
Кодом манипулируют в данном случае как числами со знаком. А столбик ничего о числах со знаком или без знака не знает.
Остается спросить по синтезатор. Неужели он сам не может оперируя signed или unsigned корректно разложить умножитель по этим макросам, или на худой конец ip генератор применить.
Go to the top of the page
 
+Quote Post
0xFF
сообщение Dec 11 2008, 11:18
Сообщение #17


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 9-01-06
Пользователь №: 12 984



Цитата(sazh @ Dec 10 2008, 19:54) *
.A({1'b0,a[16:0]}), // 18-bit multiplier input
знак - это a[16], им и надо дополнять. Полученный результат signed. знак у него это святое. Вы же дальше разрядностью играете, суммируете, урезаете и т.д. понятие signed всегда присутствует и в параметрах умножителя (потому что разрядность по входам и выходу разная) и при описании сумматоров, если разрядная сетка меняется (Вы все это на откуп синтезатора отдали)


я же вам написал, в приложенном коде реализована схема показаанная на рис.6
, а не на рис.5. И если вы прочитали по диагонали то наверное упустили из виду что это умножитель 35х35. Т.е mult70[69:0] = a[34:0]*b[34:0].

заранее прошу простить что не дописал шапку модуля, так как выдрал кусок кода из своего рабочего проекта. Вот видимо и потекли разногласия...

module mult_35x35( input [34:0] a, input [34:0] b, output [69:0] mult70);
......
.....
....
endmodule

Цитата(sazh @ Dec 10 2008, 19:54) *
Посмотрел документ. Одни вопросы и непонятки. Рисунок 5. Умножитель 22х16. На одной веточке скромное unsigned.
Чего на чего умножили - не понять. 16 разрядов до 18 надо размножить. как не понятно.
Код умножили на код. Код получили. Куда его потом засунуть. Как объявить.

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

Цитата(sazh @ Dec 10 2008, 19:54) *
Остается спросить по синтезатор. Неужели он сам не может оперируя signed или unsigned корректно разложить умножитель по этим макросам, или на худой конец ip генератор применить.

может конечно.... smile.gif , и следует применять, там где это оправдано

Успехов
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st August 2025 - 10:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.02752 секунд с 7
ELECTRONIX ©2004-2016