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

 
 
> Проблема с умножителями в ISE
_Anatoliy
сообщение Jan 19 2011, 08:58
Сообщение #1


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Всего в проекте задействовано около 800 умножителей dsp48,ясно что в 5vsx50 такого количества нет и развести в лоб нет возможности. Поэтому синтезатору указываю в опции Use DSP block режим auto.Становится немного легче,но не совсем.
Код
Selected Device : 5vsx50tff665-3


Slice Logic Utilization:
Number of Slice Registers:           21418  out of  32640    65%  
Number of Slice LUTs:                26010  out of  32640    79%  
    Number used as Logic:             25921  out of  32640    79%  
    Number used as Memory:               89  out of  12480     0%  
       Number used as SRL:               89

Slice Logic Distribution:
Number of LUT Flip Flop pairs used:  32349
   Number with an unused Flip Flop:   10931  out of  32349    33%  
   Number with an unused LUT:          6339  out of  32349    19%  
   Number of fully used LUT-FF pairs: 15079  out of  32349    46%  
   Number of unique control sets:         4

IO Utilization:
Number of IOs:                         130
Number of bonded IOBs:                 130  out of    360    36%  

Specific Feature Utilization:
Number of BUFG/BUFGCTRLs:                2  out of     32     6%  
Number of DSP48Es:                     374  out of    288   129% (*)

Запас по ресурсам вроде бы есть , а дефицит DSP48 29%.Может что ещё можно подкрутить?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Fast
сообщение Jan 19 2011, 11:19
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 216
Регистрация: 31-03-05
Из: Зеленоград
Пользователь №: 3 839



на более высокой частоте умножать не получится ?
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jan 19 2011, 11:39
Сообщение #3


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(Fast @ Jan 19 2011, 13:19) *
на более высокой частоте умножать не получится ?

А зачем?У меня и так частота тактов 300МГц.

Цитата(DmitryR @ Jan 19 2011, 13:22) *
Возможо это связано с тем, что ее все равно будет недостаточно. Умножитель 16*16 занимает 280 LUT. Вам их надо 374-288=86, или 24000 LUT. У вас столько нет свободных даже близко, то есть не влезет очевидно даже если в умножителях усекать разрадность результата.

Спасибо!Не сообразил сразу посчитать ресурсоёмкость одного умножителя.
Видно придётся на Альтеру перескакивать wacko.gif
В EP3SE50F484C2 весь проект занимает около 50%.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Jan 19 2011, 12:34
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(_Anatoliy @ Jan 19 2011, 14:39) *
В EP3SE50F484C2 весь проект занимает около 50%.

Вам надо быть очень внимательным и приложить все усилия, что бы понять, почему один и тот же код настолько по-разному реализуется на разных архитектурах. Также предлагаю проанализировать an306, в котором сказано, что в сравнимый по емкости EP2S60 помещается 325 умножителей на логике. То есть в EP3SE50 800 умножителей не должны лечь вообще.

Вероятнее всего у вас Квартус при компиляции выкидывает более половины логики, и судя по расчетам ISE тоже что-то выкидывает (у вас из 800 умножителей в DSP48 легли 374, а оставшиеся 426 заняли 26000 LUT, то есть 61 LUT на умножитель, что мне видится нереальным).

UPD
Цитата(_Anatoliy @ Jan 19 2011, 13:22) *
Код
        for i in 0 to 15 loop
            SumA1(i) <= SigTapA(2*i+1) * CoeffHilb(i) - SigTapA(63-2*i) * CoeffHilb(i);
            SumB1(i) <= SigTapB(2*i+1) * CoeffHilb(i) - SigTapB(63-2*i) * CoeffHilb(i);
            SumC1(i) <= SigTapC(2*i+1) * CoeffHilb(i) - SigTapC(63-2*i) * CoeffHilb(i);
            SumD1(i) <= SigTapD(2*i+1) * CoeffHilb(i) - SigTapD(63-2*i) * CoeffHilb(i);
        end loop;

Если это записать как
Код
        for i in 0 to 15 loop
            SumA1(i) <= (SigTapA(2*i+1) - SigTapA(63-2*i)) * CoeffHilb(i);
            SumB1(i) <= (SigTapB(2*i+1) - SigTapB(63-2*i)) * CoeffHilb(i);
            SumC1(i) <= (SigTapC(2*i+1) - SigTapC(63-2*i)) * CoeffHilb(i);
            SumD1(i) <= (SigTapD(2*i+1) - SigTapD(63-2*i)) * CoeffHilb(i);
        end loop;

то возможно что-то изменится. Например выяснится, что ISE такую оптимизацию сам сделать не может, а Квартус - может.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 20:43
Рейтинг@Mail.ru


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