Jump to content

    
Sign in to follow this  
Anton1990

Частичная компиляция проекта в ISE 14.6

Recommended Posts

Всем здрасте.

Есть довольно большой проект, который довольно долго компилируется (примерно час). Знаю что многие скажут будто час это очень немного, но я не об этом. Так вот. Проект состоит из блок А, В, С и т.д. Предположим я вношу изменения в блок B. Можно ли както заставить ISE при компиляции проекта это учитывать? И следовательно сократить время компиляции? Ведь мне не нужно переделывать остальные блоки. Слых что ISE что-то подобное позволяет, но как я так и не понял. Всем заранее спаксибо за ответы.

Share this post


Link to post
Share on other sites

Самый простой и быстрый способ - это сформировать файлы A.ngc, B.ngc и C.ngc. И потом, если есть было изменение просто компилировать один из блоков отдельно и дообавлять в проект. Но это сократит только время синтеза проекта. Над сокращением времени разводки и т.д. нужно ковырятся дольше: расположить явно проект в pBlock на кристалле и зафиксировать их. Какое-то время назад я пытался таким заниматься, но долго проковырявшись плюнул на эту затею. Дополнительно могу посоветовать - почитать доку на PlanAhead: там всё детально описано и рассказанно по данному вопросу. Ну и соответственно для компиляции юзать его... Хотя вопрос в мощности компа и версии IDE.

Edited by Kolya

Share this post


Link to post
Share on other sites
Самый простой и быстрый способ - это сформировать файлы A.ngc, B.ngc и C.ngc. И потом, если есть было изменение просто компилировать один из блоков отдельно и дообавлять в проект. Но это сократит только время синтеза проекта. Над сокращением времени разводки и т.д. нужно ковырятся дольше: расположить явно проект в pBlock на кристалле и зафиксировать их. Какое-то время назад я пытался таким заниматься, но долго проковырявшись плюнул на эту затею. Дополнительно могу посоветовать - почитать доку на PlanAhead: там всё детально описано и рассказанно по данному вопросу. Ну и соответственно для компиляции юзать его... Хотя вопрос в мощности компа и версии IDE.

Синтез как раз проходит достаточно быстро.

Ну а про остальное видимо не стоит заморачиваться. Спасибо.

 

Vivado+Hierarchical Design

Virtex 6 не поддерживается в виваде. Да и вивады нет. Так ипроект уже сделан в ISE в схеме+vhdl не переделывать же его полностью в vhdl.

Share this post


Link to post
Share on other sites
Virtex 6 не поддерживается в виваде. Да и вивады нет. Так ипроект уже сделан в ISE в схеме+vhdl не переделывать же его полностью в vhdl.

Тогда Partial Reconfiguration.

 

Share this post


Link to post
Share on other sites
А поподробней что за зверь? как пользоваться?

Ну вот сейчас я быстренько инструкцию налабаю, а лучше сам весь проект сделаю. Гугла нет?

Share this post


Link to post
Share on other sites
Ну вот сейчас я быстренько инструкцию налабаю, а лучше сам весь проект сделаю. Гугла нет?

Инструкцию не нужно. Проект тем более. А вот идею неплохо бы. Дело в том что я подобное видел но как пользоваться этим не понял. и гугл не помог.

 

Ну вот сейчас я быстренько инструкцию налабаю, а лучше сам весь проект сделаю. Гугла нет?

Так стоп. То о чем вы говорите это частичная загрузка кристалл во время его функционирования. И к ускорению компиляции проекта это не имеет отношения. Разве не так?

Share this post


Link to post
Share on other sites
Инструкцию не нужно. Проект тем более. А вот идею неплохо бы. Дело в том что я подобное видел но как пользоваться этим не понял. и гугл не помог.

 

 

Так стоп. То о чем вы говорите это частичная загрузка кристалл во время его функционирования. И к ускорению компиляции проекта это не имеет отношения. Разве не так?

Так и не так. Что мешает разводить один модуль и грузить его в готовую прошивку? Все остальное при этом не меняется и не переразводится.

Для тех, кто не умеет пользоваться поиском: pr

Share this post


Link to post
Share on other sites

А ничего, что синтезатор просит очень хотрые лицензии на Партиал Реконфигурейшн. И опять же нужно каждый раз перекомпиливать проект, а не менять модульки разные. Данное свойство не подойдёт на сколько я понимаю задачу. Кстати для Partial Reconfiguration нужно ВСЕ заменяемые куски хранить в файле прошивки - не лучший вариант использования постоянной памяти.

Share this post


Link to post
Share on other sites
А ничего, что синтезатор просит очень хотрые лицензии на Партиал Реконфигурейшн.

Ничего. Во-первых, они совсем не хитрые, а обычные, а во-вторых, так ведь и ISE требует лицензию. Если есть деньги :biggrin: на ISE, то и на PR можно найти, ну или...

 

И опять же нужно каждый раз перекомпиливать проект, а не менять модульки разные.

Не нужно все перекомпилировать. Нужно перекомпилировать только то, что в партишене

 

Кстати для Partial Reconfiguration нужно ВСЕ заменяемые куски хранить в файле прошивки - не лучший вариант использования постоянной памяти.

Опять неправда. Я, допустим, делал прошивку для теста этого режима, которая моргала светодиодиками на отладочной плате. Так вот в прошивке было два разных алгоритма моргания. Алгоритмы были в виде партишенов (просто два разных фрагмента ПЛИС). И эти партишены хранились в DPRAM самой ПЛИС. Эти DPRAM были сгенерированы в виде ROM и в них были загружены bit-файлы этих партишенов, которые были разведены ранее. И можно было по нажатию кнопки выбрать первый или второй алгоритм (по нажатию кнопки из ROM-ов грузились фрагменты ПЛИС). Получалось, что ПЛИС хранила прошивку самой себя.

Но можно было эти куски грузить по любому интерфейсу из вне (у меня просто не было этого интерфейса).

Share this post


Link to post
Share on other sites

Вам правильно подсказали - делайте независимый синтез каждого узла и создавайте отдельно *.ngc блоки. А на верхнем уровне их подцепляйте как black-box.

Тогда перекомпилировать придется только конкретный узел.

 

Для Implementation в PlanAhead есть удобная штука: "Promote Partitions". Суть такая:

1) закрепляем в виде p-blocks нужные узлы, которые не будут изменяться.

2) разводим проект N раз и выбираем удовлетворяющую вас разводку.

3) разводку неизменных p-block оставляем с помощью "promote".

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

5) ...

6) PROFIT!!!

 

Ну и как уже верно заметили - читать нужно Hier. design rules. Что-то типа такого: первый попавшийся юзергайд.

Share this post


Link to post
Share on other sites

Кстати пробовал через Promote Partitions но у меня как-то коряво получилось. Хотя конечно до конца доковырять данную возможность не получилось)

Share this post


Link to post
Share on other sites
Всем здрасте.

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

Помимо того, что советовали выше. Сколько в процентах занимает проект, сколько тактовых частот используется, выполняются ли временные ограничения и каковы настройки - не выкручивали ли Вы их на максимум? Может оказаться, что какой-то узел плохо разводится и P&R его пытается по времянке вытащить, но не может в конечном счете или в проекте у Вас с десяток частот, а реально можно обойтись меньшим количеством.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this