Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите ускорить создание проекта
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Kolya
Доброго времени суток всем!

Я новичок в программировании на ПЛИСах и поэтому есть вопрос: Как при создании проекта можно ускорить процесс компиляции?
Создаваемый проект ещё достаточно сырой и часто требует дополнений всяких и правок (проект создан с 0). И вот при каждой правке приходится долго ждать пока пройдет компиляция проекта, иногда приходится в PlanAhead'е корректировать структуру. Да и время сдачи проекта поджимает - не критично, но на перекомпиляциях сожрётся всё что есть sm.gif

Весь проект занимает около 15% кристалла, но проблема вылезает во временных задержках т.к. необходимая частота работы 100MHz (все советуемые параметры оптимизации по скорости включены). И как следствие часто приходиться подбирать стратегии разводки на кристалле, что занимает очень много времени, при небольших изменениях.

Слышал что в ISE есть возможность отключить перекомпиляцию неизменённых элементов, но найти никак не могу. Может что-то посоветуете?
Methane
Цитата(Kolya @ Mar 24 2011, 11:35) *
Слышал что в ISE есть возможность отключить перекомпиляцию неизменённых элементов, но найти никак не могу. Может что-то посоветуете?

В квартусе есть Logic Lock region.
andrew_b
Цитата(Methane @ Mar 24 2011, 12:47) *
В квартусе есть Logic Lock region.
И причём тут Квартус?
Kolya
Цитата(andrew_b @ Mar 24 2011, 12:53) *
И причём тут Квартус?


Действительно. Просто используется один компилятор от ISE на всём предприятии и переходить на что-то другое в рамках глобального проекта как-то непрофессионально получится.
Victor®
Цитата(Kolya @ Mar 24 2011, 13:35) *
Слышал что в ISE есть возможность отключить перекомпиляцию неизменённых элементов, но найти никак не могу. Может что-то посоветуете?


Неизвестно, что за проект и реально ли Вам нужен PlanAhead...
Можно включить SmartGuide в ISE.
ПКМ на топовом модуле -> SmartGuide...

P.S.
Констрейнты, надеюсь, используете?
bogaev_roman
А что за кристалл? Какого рода проект? Это я к тому, что возможно проще упростить как-то логику, не прибегая к различного рода ограничениям. Ну скажем упростить проект, может описание написано криво, может что-то распарралелить, где-то продублировать логику, где-то заменить счетчики сдиговыми регистрами или использовать банки вместо регистров ну и т.д.
Цитата
В квартусе есть Logic Lock region.
В ISE для этих целей можно использовать planahead
Kolya
2 Victor®:
Через PlanAhead провести надо, т.к. проект достаточно сложный с логической обработкой и передачей бытовых посылок между модулями (входами-выходами), поэтому автоматическое распределение на кристалле показало совсем плохие результаты - пришлось разводить вручную.
SmartGuide я не пользовался- буду пробовать.
А констрейнты конечно задаём)))


2 bogaev_roman:
Кристалл : Spartan 3 XC6SLX150T со 2м спидгрейдом. Скоро правда должны сделать на 3м спидгрейде, но пока приходиться ужиматься на этом.
Проект, как я указал выше, для съёма данных, их обработке логической и выдачи. Логику упростить никак не получится - уже и так всё урезанное используем, так как на полный проект не хватало оперативной памяти ПК для компиляции biggrin.gif .
bogaev_roman
Цитата(Kolya @ Mar 24 2011, 16:15) *
Кристалл : Spartan 3 XC6SLX150T со 2м спидгрейдом. Скоро правда должны сделать на 3м спидгрейде, но пока приходиться ужиматься на этом.

Ам.. спартан 3, а не спартан 6? Если 6 при заполненности кристалла всего в 15% 100МГц это как бы маловато будет, я конечно не знаю всех тонкостей Вашего проекта, но мне кажется, что очень много комбинаторики накручено. Если считаете, что упрощать нечего - Ваше дело.
По существу. Смотрите в сторону создания partition. С ISE давно не работал, но точно помню, что можно развести кусок проекта и при дальнейшем компилировании, синтезе и разводке именно этот кусок будет вставляться просто в виде нетлиста с сохраняемыми временными характеристиками. Если весь проект разбить на несколько таких кусков, а менять только один из них, то время действительно можно существенно сэкономить.
Kolya
Цитата(bogaev_roman @ Mar 24 2011, 17:00) *
Ам.. спартан 3, а не спартан 6? Если 6 при заполненности кристалла всего в 15% 100МГц это как бы маловато будет, я конечно не знаю всех тонкостей Вашего проекта, но мне кажется, что очень много комбинаторики накручено. Если считаете, что упрощать нечего - Ваше дело.
По существу. Смотрите в сторону создания partition. С ISE давно не работал, но точно помню, что можно развести кусок проекта и при дальнейшем компилировании, синтезе и разводке именно этот кусок будет вставляться просто в виде нетлиста с сохраняемыми временными характеристиками. Если весь проект разбить на несколько таких кусков, а менять только один из них, то время действительно можно существенно сэкономить.


Пардон- действительно 6й. Просто уже столько их было что путаться начинаю)
И да, действительно комбинаторика есть, но она не может быть упрощена в связи с тонкостью алгоритма. Да и слаков там не бывает. Проблема в модуле Ethernet'а, но его не я писал и для меня это тёмный лес.
И если не сложно- можно поподробнее насчёт partition. Как создавать и где глядеть?
bogaev_roman
Цитата(Kolya @ Mar 24 2011, 17:50) *
Проблема в модуле Ethernet'а, но его не я писал и для меня это тёмный лес.
И если не сложно- можно поподробнее насчёт partition. Как создавать и где глядеть?

Ну вот модуль изернета отдельно и пихните в partition как routing, только, по возможности, его выходные/входные сигналы к Вашей логике повесьте на регистры. На сайте xilinx воспользуйтесь поиском по документации, там много всего есть. Вот на вскидку один документ откопал, только он старый. http://www.xilinx.com/support/documentatio...tes/xapp918.pdf
VladimirB
Цитата(bogaev_roman @ Mar 24 2011, 17:00) *
...С ISE давно не работал, но точно помню, что можно развести кусок проекта и при дальнейшем компилировании, синтезе и разводке именно этот кусок будет вставляться просто в виде нетлиста с сохраняемыми временными характеристиками. Если весь проект разбить на несколько таких кусков, а менять только один из них, то время действительно можно существенно сэкономить.


В ISE 11.x и 12.x партиции переехали в PlanAhead (ISE Projeсt Navigator их теперь нету).
В PlanAhead можно загнать часть дизайна в PBlock, развести дизайн с использованием различных настроек так чтобы он удовлетворял таймингам и залочить всю логику критичной части дизайна. Ещё можно экспортировать разводку этого PBlock'a в ввиде нетлиста NGC.

Kolya
Спасибо большое за помощь. Вроде получилось собрать проект и добавить partition'ы.
Kolya
Товарищи, возникла новая проблема. Действительно работает всё с partition'ми но теперь нет возможности поставить Starting Placer Cost Table на автоподбор, что легко выставлялось в SmartXplorer'е в ISE. Я уже все настройки перерыл- может что-то пропустил? Подскажите пожалуйста.
dmitry-tomsk
Цитата(Kolya @ Mar 28 2011, 16:17) *
Товарищи, возникла новая проблема. Действительно работает всё с partition'ми но теперь нет возможности поставить Starting Placer Cost Table на автоподбор, что легко выставлялось в SmartXplorer'е в ISE. Я уже все настройки перерыл- может что-то пропустил? Подскажите пожалуйста.

попробуйте поменять в настройках place & route placer extra effort (map) и extra effort (route) на continue on impossible, трассировку и размещение Вашего езернета можно будет потом зафиксировать как partition в planahead и больше с ним не париться.
Kolya
2 dmitry-tomsk:
В том то и дело что если разводка проекта прошла успешно, то в модуле Ethernet как раз и и проводятся изменения по настройкам и т.п. поэтому partition'ми я делаю всё остальное.
p.s. Включил опцию - как скомпилится поглядим.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.