_sda 0 19 января, 2011 Опубликовано 19 января, 2011 · Жалоба Всего в проекте задействовано около 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%.Может что ещё можно подкрутить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
disel 0 19 января, 2011 Опубликовано 19 января, 2011 · Жалоба А в режиме SIMD их нельзя использовать? Но это только вручную. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 19 января, 2011 Опубликовано 19 января, 2011 · Жалоба А в режиме SIMD их нельзя использовать? Но это только вручную. А можно немного подробней?Я с ISE ещё не настолько подружился :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
disel 0 19 января, 2011 Опубликовано 19 января, 2011 · Жалоба А можно немного подробней?Я с ISE ещё не настолько подружился :laughing: Да ИСЕ тут не причем. Это особенность dsp48 в виртекс5-6. SIMD - Single Instruction, Multiple Data. 48- битный аккумулятор\сумматор может использоваться как два 24-битных, или как четыре 12-битных. Подробно в уг193 написано. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryR 0 19 января, 2011 Опубликовано 19 января, 2011 · Жалоба Если вы используете DSP48 как примитив - ISE его в логику никогда не разложит при любых настройках. Чтобы ISE сам выбирал способ реализации умножителя необходимо описывать умножение в HDL коде. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 19 января, 2011 Опубликовано 19 января, 2011 · Жалоба Если вы используете DSP48 как примитив - ISE его в логику никогда не разложит при любых настройках. Чтобы ISE сам выбирал способ реализации умножителя необходимо описывать умножение в HDL коде. Как же я смогу использовать DSP48 как примитив при таком их количестве? В HDL коде множу. 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; Или вы о другом? Да ИСЕ тут не причем. Это особенность dsp48 в виртекс5-6. SIMD - Single Instruction, Multiple Data. 48- битный аккумулятор\сумматор может использоваться как два 24-битных, или как четыре 12-битных. Подробно в уг193 написано. Ясно,спасибо.Аккумулятор здесь ни при чём, мне собственно умножений 16 битных нужно около 800.А умножитель в DSP-48 всего один. Непонятно почему оставшаяся логика не используется под умножители. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Fast 0 19 января, 2011 Опубликовано 19 января, 2011 · Жалоба на более высокой частоте умножать не получится ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryR 0 19 января, 2011 Опубликовано 19 января, 2011 · Жалоба Непонятно почему оставшаяся логика не используется под умножители. Возможо это связано с тем, что ее все равно будет недостаточно. Умножитель 16*16 занимает 280 LUT. Вам их надо 374-288=86, или 24000 LUT. У вас столько нет свободных даже близко, то есть не влезет очевидно даже если в умножителях усекать разрадность результата. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 19 января, 2011 Опубликовано 19 января, 2011 · Жалоба на более высокой частоте умножать не получится ? А зачем?У меня и так частота тактов 300МГц. Возможо это связано с тем, что ее все равно будет недостаточно. Умножитель 16*16 занимает 280 LUT. Вам их надо 374-288=86, или 24000 LUT. У вас столько нет свободных даже близко, то есть не влезет очевидно даже если в умножителях усекать разрадность результата. Спасибо!Не сообразил сразу посчитать ресурсоёмкость одного умножителя. Видно придётся на Альтеру перескакивать В EP3SE50F484C2 весь проект занимает около 50%. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vetal 0 19 января, 2011 Опубликовано 19 января, 2011 · Жалоба Рабочую частоту блока с умножителями огласите. Как правильно заметил Fast - подняв частоту в 2 раза можно уменьшить кол-во умножителей. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 19 января, 2011 Опубликовано 19 января, 2011 · Жалоба Рабочую частоту блока с умножителями огласите. Как правильно заметил Fast - подняв частоту в 2 раза можно уменьшить кол-во умножителей. Частота уже озвучена в предыдущем посте. Этот вариант неприемлем.Реал-тайм. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryR 0 19 января, 2011 Опубликовано 19 января, 2011 · Жалоба В EP3SE50F484C2 весь проект занимает около 50%. Вам надо быть очень внимательным и приложить все усилия, что бы понять, почему один и тот же код настолько по-разному реализуется на разных архитектурах. Также предлагаю проанализировать an306, в котором сказано, что в сравнимый по емкости EP2S60 помещается 325 умножителей на логике. То есть в EP3SE50 800 умножителей не должны лечь вообще. Вероятнее всего у вас Квартус при компиляции выкидывает более половины логики, и судя по расчетам ISE тоже что-то выкидывает (у вас из 800 умножителей в DSP48 легли 374, а оставшиеся 426 заняли 26000 LUT, то есть 61 LUT на умножитель, что мне видится нереальным). UPD 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 такую оптимизацию сам сделать не может, а Квартус - может. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 19 января, 2011 Опубликовано 19 января, 2011 · Жалоба Спасибо! Невнимательность меня когда нибудь погубит. Действительно надо глубже поисследовать ситуацию. Вы правы, xst не умеет делать такие финты(или с опциями нужно ещё поколдовать). Вот результат: Selected Device : 5vsx50tff665-3 Slice Logic Utilization: Number of Slice Registers: 20640 out of 32640 63% Number of Slice LUTs: 22107 out of 32640 67% Number used as Logic: 22018 out of 32640 67% Number used as Memory: 89 out of 12480 0% Number used as SRL: 89 Slice Logic Distribution: Number of LUT Flip Flop pairs used: 29928 Number with an unused Flip Flop: 9288 out of 29928 31% Number with an unused LUT: 7821 out of 29928 26% Number of fully used LUT-FF pairs: 12819 out of 29928 42% 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: 162 out of 288 56% Правда появились минусовые слэки,но это уже другая тема. Спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться