Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Altera. Работа с LogicLock в Quartus 7.2
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Ethereal
Добрый день.
Подскажите такую вещь, пожалуйста.
Столкнулся с тем, что пересборка проекта занимает существенное время, что не есть хорошо, потому что малейшее изменение в проекте приводит к необходимости полной переработки. Поэтому я решил использовать в проекте залоченную логику, чтобы использовать полный инкремент при компиляции.
Каждому модулю в верхнем уровне назначил регион с авто-настройками. Откомпилировал. В итоге скорость упала в два раза. Соответственно пропал смысл делать бэк-аннотейт, потому что требования к проекту не выполняются.

Что я делаю не так?
DmitryR
Во-первых, вы используете довольно старый Квартус. Во-вторых раз уж решили делать LogicLock - делайте вручную, так как вы хорошо знаете, как взаимно оптимально расположить блоки проекта, а у фиттера это получается плохо (собственно, если бы у него хорошо получалось, то LogicLock не был бы особенно нужен).
Ethereal
Спасибо.

Цитата
раз уж решили делать LogicLock

А есть альтернативная техника?

P.S. Если бы я хорошо мог разместить это руками, то мне не нужен был бы фиттер smile.gif
vadimuzzz
Цитата(Ethereal @ Jul 2 2009, 20:34) *
Каждому модулю в верхнем уровне назначил регион с авто-настройками. Откомпилировал. В итоге скорость упала в два раза. Соответственно пропал смысл делать бэк-аннотейт, потому что требования к проекту не выполняются.

Что я делаю не так?

разбивать на партиции надо так, чтобы минимизировать кол-во связей между разными партициями (фиттер оптимизирует только в рамках одного региона). с количеством партиций злоупотреблять тоже не стоит. собственно в хендбуке процесс по шагам расписан.
Sefo
Цитата(Ethereal @ Jul 2 2009, 17:34) *
Добрый день.
Подскажите такую вещь, пожалуйста.
Столкнулся с тем, что пересборка проекта занимает существенное время, что не есть хорошо, потому что малейшее изменение в проекте приводит к необходимости полной переработки. Поэтому я решил использовать в проекте залоченную логику, чтобы использовать полный инкремент при компиляции.
Каждому модулю в верхнем уровне назначил регион с авто-настройками. Откомпилировал. В итоге скорость упала в два раза. Соответственно пропал смысл делать бэк-аннотейт, потому что требования к проекту не выполняются.

Что я делаю не так?


LogicLock, все же, не для этих целей. Вместо LogicLock попробуйте Partition. Если без LogicLock Вас устраивает разводка, то с помощью Partition Вы сможете ее зафиксировать для тех модулей, которые Вы не меняете. Причем Partition не будет, как LogicLock, пытаться сгруппировать все логические ячейки блока в одной небольшой области ПЛИС выделенной специально для этого блока. Так что разводка не сильно будет отличаться от режима с отключенной инкрементальной компиляцией и, скорее всего, вы получите и хорошее время компиляции и неплохую разводку.
des00
Цитата(Ethereal @ Jul 2 2009, 07:34) *
Добрый день.
Подскажите такую вещь, пожалуйста.
Столкнулся с тем, что пересборка проекта занимает существенное время, что не есть хорошо, потому что малейшее изменение в проекте приводит к необходимости полной переработки. Поэтому я решил использовать в проекте залоченную логику, чтобы использовать полный инкремент при компиляции.
Каждому модулю в верхнем уровне назначил регион с авто-настройками. Откомпилировал. В итоге скорость упала в два раза. Соответственно пропал смысл делать бэк-аннотейт, потому что требования к проекту не выполняются.


Использовал инкрементальную компиляцию с назначением партиций на 50% дизайна в режиме Post Fit, скорость сборки возрастала где то в 2-2.5 раза, на ква 8.0
DmitryR
Цитата(Sefo @ Jul 3 2009, 00:25) *
Причем Partition не будет, как LogicLock, пытаться сгруппировать все логические ячейки блока в одной небольшой области ПЛИС выделенной специально для этого блока.

На практике Partition без LogicLock большого эффекта может не дать, так как если блоки сильно пересекаются то переразводка одного приведет к частичной переразводке другого.
Sefo
Цитата(DmitryR @ Jul 3 2009, 10:07) *
На практике Partition без LogicLock большого эффекта может не дать, так как если блоки сильно пересекаются то переразводка одного приведет к частичной переразводке другого.


Пересекающиеся блоки на разные Partition не назначить - пересекающимися могут быть только LogicLock Regions. Partition это минимум один полный модуль модуль.
Ethereal
Спасибо, буду пробовать. Хотя минимизация блоков и связей между ними в этом случае - та еще задача.
Sefo
Цитата(Ethereal @ Jul 7 2009, 11:17) *
Хотя минимизация блоков и связей между ними в этом случае - та еще задача.


А вот этим заниматься не рекомендую! Partition нижнего уровня может быть вложена (полностью) в Partition верхнего - т.е. разбиение на Partition может отражать иерархическую структуру проекта - Вам надо только решить до какого уровня иерархии спуститься - т.е. насколько "мелкие" блоки вы будете выделять как отдельный Partition. Но переделывать структуру проекта под Partition не стоит, да и непонятно мне как Вы это себе представляете?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.