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

Предлагаю к обсуждению такой вопрос

Вот к примеру есть проект в котором после фиттинга остаётся пару путей которые не выдерживают времянку и то на чуть чуть.
Можно ли как-то руками после фитера по передвигать елементы на плисе что-бы времянка менялась а процесс фиттинга не перезупускался ну или если надо пускай перезапускаеться , но меняет только тот елемент что передвинут ?

Идея такая
в таймквесте выбираем интересующий путь и говорим ему locate in chip planer
и там мы видим что вроде как очевидно что нужно подвинуть обведённый елемент ближе в нижней группе елементов чтобы и времянка станет лутше

Но пользуясь этими указаниями и подседкой критических путей практически невозможно добиться нормальной времняки - пробовал переставлять ничего не выходит.
(вообщето я знаю какие елемент нужно переставить чтобы времянки стали на место , но они никак не подсвечиваются в критических путях и найти их невозможно)
В примере я сделал мелкий и вполне обозримый проект где это всё легко видеть.

На этом основании я сделал вывод что подобным образом улутшить времянку нельзя - можно только ухудшить.
И в случае когда проект большой ориентироваться на подсветку критических путей не стоит и не имеет смысла их двигать.
И тут тогда вопрос, а нафига вообще дана возможность такое делать ? для каких целей ?
des00
Цитата(arexol @ Jun 25 2009, 17:07) *
В примере я сделал мелкий и вполне обозримый проект где это всё легко видеть.


в вашем примере очень много не некорректности:

1. вы просите частоту 500 МГц, при этом если посмотреть даташит на вашу фпга то видно что максимальная частота работы мультиплексора 16х1 составляет 543.47МГц, а частота работы 16 битного счетчика 497.26МГц. При этом обратите внимание как резко падает тактовая для 8ми битного 16 тапового фира аж до 209 МГц. Уже на основе этих предпосылок просить развести проект на 500 МГц, в котором комбинационный выход сумматора напрямую идет на мультиплексор будет глупо. Чудес не бывает.

2. в данном случае надо смотреть не на chip planer, а на TM из которого сразу ясно где логический затык и из которого следует путь его разрешения(реклокнуть сумматор, если это возможно). В чип планере виден затык по разводке, ситуацию можно попробывать улучшить переназначив порты ввода вывода, чтобы мультиплексор как можно ближе стоял к выходу сумматора и дизайн по разводке шел в линию.

Общие рекомендации в таких вещах : ищите компромис, пусть ваши желания совпадают с вашими возможностями %)
arexol
Цитата(des00 @ Jun 26 2009, 08:39) *
в вашем примере очень много не некорректности:

1. вы просите частоту 500 МГц, при этом если посмотреть даташит на вашу фпга то видно что максимальная частота работы мультиплексора 16х1 составляет 543.47МГц, а частота работы 16 битного счетчика 497.26МГц. При этом обратите внимание как резко падает тактовая для 8ми битного 16 тапового фира аж до 209 МГц. Уже на основе этих предпосылок просить развести проект на 500 МГц, в котором комбинационный выход сумматора напрямую идет на мультиплексор будет глупо. Чудес не бывает.

2. в данном случае надо смотреть не на chip planer, а на TM из которого сразу ясно где логический затык и из которого следует путь его разрешения(реклокнуть сумматор, если это возможно). В чип планере виден затык по разводке, ситуацию можно попробывать улучшить переназначив порты ввода вывода, чтобы мультиплексор как можно ближе стоял к выходу сумматора и дизайн по разводке шел в линию.

Общие рекомендации в таких вещах : ищите компромис, пусть ваши желания совпадают с вашими возможностями %)


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

В проекте что я выложил в первом посте, я намерянно назначил такое размещение элементов чтобы времянка была испорчена.
Цель теперь решить обратную задачу - определить ети перестановки элементов с помощью средств квартуса в ручную и выставить их так чтобы времянка улучшилась.

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

А вообще цель всей затеи получить возможность в большом необозримом проекте после фиттинга , когда находится только 2-3 пути что не вкладываются в требования по таймингам (и то на -0.2 ns примерно) подвигать их и возможно в ручную довести к требуемой времянке.

Просто я не знаю возможно ли это вообще ?
Но раз уж можно испортить smile.gif может тогда можно и улучшить ?smile.gif)
des00
Цитата(arexol @ Jun 26 2009, 09:35) *
Но раз уж можно испортить smile.gif может тогда можно и улучшить ?smile.gif)


не могу понять причину вашей радости, если сравнить timeq_good\top.qsf и timeq\top.qsf то видно что квартус смог получить удовлетворительное решение, когда вы его перестали ограничивать smile.gif

ЗЫ. данный пример не показателен, т.к. в данном случае квартус был волен раскидывать порты как ему заблагорассудится.
DmitryR
1. Надо всегда ставить реальные тайминги, потому что если маппер видит, что ничего сделать нельзя, он перестает рыпаться вообще (по наблюдениям).
2. Если времянка немного не выдерживается, но видно, что размещение неоптимально - лучше использовать LogicLock или фиксировать положение отдельных компонент констрейнами.
arexol
Цитата(DmitryR @ Jun 27 2009, 11:35) *
1. Надо всегда ставить реальные тайминги, потому что если маппер видит, что ничего сделать нельзя, он перестает рыпаться вообще (по наблюдениям).
2. Если времянка немного не выдерживается, но видно, что размещение неоптимально - лучше использовать LogicLock или фиксировать положение отдельных компонент констрейнами.


Сейчас у меня проблема запихнуть проект , который 100% фиттиться нормально (есть удачный сид и настройки квартуса) с небольшим дополнением , которое не касается критических частей проекта.
Вот думал сделать такую компиляцию , без дополнений и с удачными таймингами, залочить критические узлы которые всё время выскакивают и потом докинуть мои пару счётчиков.
НО вот особенность лождик лока какаято идиотская, что надо с начала указать части проекта которые будут залочены и снова запустить фиттинг !!! maniac.gif
и после этого фиттинга уже можно действительно залочить

И выходит что я сделал фиттинг - где всё нормально - выбрал узлы для лоджик лока - и при последующем фиттинге после которого можно лочить, тайминги уже кривые maniac.gif

Что нельзя залочить елементы без промежуточного фиттинга ?
DmitryR
Цитата(arexol @ Jun 30 2009, 00:25) *
Что нельзя залочить елементы без промежуточного фиттинга ?

Можно. Создали LogicLock region, сразу идете в редактирование регионов (ALT-L) и ставите ему нужную площадь, в чем сложность?
arexol
Цитата(DmitryR @ Jun 30 2009, 11:29) *
Можно. Создали LogicLock region, сразу идете в редактирование регионов (ALT-L) и ставите ему нужную площадь, в чем сложность?


А вот в чём проблема
Видите как раскиданы элементы - это как раз тот самый проблемный блок - вот если бы его так и залочить думаю было бы мне счастье.
каждый елемент можно залочить в конкретную ячейку если передвигать его в ручную а вот можно ли залочить вот именно так как оно на картинке - все выбранные елементы ?

а пока приходиться играть в увлекательную игру - угадай сид
обидно что всего 5 проблемных путей на весь дезайн и максимальный отрицательный слек -0.400 нс и вроде как ничего руками не исправить
SM
Цитата(arexol @ Jun 30 2009, 17:48) *
а пока приходиться играть в увлекательную игру - угадай сид

Кстати, BTW, игралка сидом dse называется smile.gif И вполне неплохо справляется с задачей.
А локи, на мой взгляд, имеют смысл при ограничении еще и места, где разводиться региону. А так, взять, да залочить нечто, раскиданное по всему чипу... Как-то бессмысленно.
DmitryR
Цитата(arexol @ Jun 30 2009, 17:48) *
а вот можно ли залочить вот именно так как оно на картинке - все выбранные елементы ?

Щелкнуть правой кнопкой на уровень иерархии проекта, все подуровни которого надо объединить в одну площадь и выбрать "Create Logiclock Region". Потом нажать ALT-L и этому региону назначить площадь, в которой он будет располагаться. Вы бы это, как бы помягче сказать, RTFM вобщем.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.