Вопрос: советы по оптимизации проектов для ПЛИС Xilinx

Все о микроконтроллерах: AVR, PIC, STM8, STM32, Arduino, Altera, Xilinx, все что угодно. Этот раздел для всего что клацает байтиками.
abigsam
Сообщения: 11
Откуда: Сумы

Сообщение abigsam » 01 июн 2016, 15:04

Собственно, интересуют ссылки на статьи или книги, где можно найти советы по оптимизации (читай -- уменьшении занимаемой площади кристала) проектов для ПЛИС Xilinx (Spartan 6). Гугление ничего внятного не дало. Ну или я не то или не так искал :)

Аватара пользователя
BSVi
Адепт
Сообщения: 3482
Откуда: Киев

Сообщение BSVi » 02 июн 2016, 09:34

Насколько я знаю, гайдов как таковых нет. Разве, что по ручному размещению. Все обычно свдится к пониманию того, что ты делаешь и как устроена плис внутри. Я бы порекоммендовал прочесть Юзер гайд с углубленным вниканием того, что есть в LUT, как оно подключается, итп. После этого придет понимание, что и как мапится на элементы лутов.

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

abigsam
Сообщения: 11
Откуда: Сумы

Сообщение abigsam » 03 июн 2016, 12:11

BSVi писал(а):С другой стороны, такая ручная оптимизация дает не очень большой выигрыш - оптимизаторы ISE довольно хорошо справляются со своей задачей.

Спасибо, понял.. Просто как-то читал на хабре, там рекомендовали делать все счетчики только со счетом "вниз"... Но не знаю, насколько этому можно верить. Да и действительно, видимо это сильно не спасет. А вариант "взять ПЛИС побольше" не катит -- во-первых дорого, во-вторых корпус не подходит. Ну, то такое :)

Аватара пользователя
BSVi
Адепт
Сообщения: 3482
Откуда: Киев

Сообщение BSVi » 03 июн 2016, 21:06

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

Аватара пользователя
iEugene0x7CA
Адепт
Сообщения: 1346
Откуда: Киев

Сообщение iEugene0x7CA » 04 июн 2016, 17:52

abigsam писал(а):А вариант "взять ПЛИС побольше" не катит -- во-первых дорого, во-вторых корпус не подходит. Ну, то такое :)

А каковы требования к корпусу/стоимости/количеству ячеек?
На Диджике есть Хильки с 9k ячеек, в TQFP, стоимостью всего 16 баксов за штучку. ;)
http://www.digikey.com/product-detail/e ... ND/2339919

Но если нужно больше — тут уж конечно да, никуда не денешься.
Холивар кстати весьма распространён по миру, вопрос "Why are there no low pin count FPGAs?" гулится на ура.
Причинами оказались дороговизна кристаллов больших FPGA, упакуй их в TQFP-144 — чипы всё равно будут стоить под сотни баксов.
Аудитория самопальщиков конечно негодует, но целевая аудитория больших ПЛИС — это крутые конторы, развести многослойку которым не проблема.
Им же BGA корпуса так же на руку: лучше скоростные характеристики и больше ног.

abigsam
Сообщения: 11
Откуда: Сумы

Сообщение abigsam » 07 июн 2016, 11:51

iEugene0x7CA писал(а):А каковы требования к корпусу/стоимости/количеству ячеек?

Используем в проекте XC6SLX45 CSG324 + DDR2 + FX3. Плата 6-ти слойная.
Миграция вверх на XC6SLX75 невозможна, поскольку её нет в таком корпусе, ну и повторюсь, по стоимости не влазит :/

BSVi писал(а):Ну, если нужно освободить пару лутов, то такие хитроски помогут

Да... Уже понял... Собственно, объема ПЛИС хватает, но впритык (проект занимает ~97% slises). Проблема была в том, что ISE после 4-х часов Place & Route выкидывал ошибку.. Решилось все банально: настройками Synthesis. Поставил Optimization Effort = Fast и проект собрался меньше, чем за час...

BSVi писал(а):Но нужно быть готовым переписать весь код в обфусцированном виде, что почти всегда - плохое решение.

Не совсем понял, задам глупые вопросы. Это для защиты от копирования ? Имеется ввиду код самой ПЛИС или код для внешнего процессора ?..

Аватара пользователя
BSVi
Адепт
Сообщения: 3482
Откуда: Киев

Сообщение BSVi » 07 июн 2016, 12:51

Не совсем понял, задам глупые вопросы.

Я про то, что если ты пытаешься в ручную написать оптимизированный когд, то код получается не читаемым (= обфусциррованным) в итоге.

abigsam
Сообщения: 11
Откуда: Сумы

Сообщение abigsam » 07 июн 2016, 15:26

BSVi писал(а):Я про то, что если ты пытаешься в ручную написать оптимизированный когд, то код получается не читаемым (= обфусциррованным) в итоге.

Теперь понял :)

Вернуться в «Микроконтроллеры и ПЛИС»



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость