реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Как понять какой регистр в пайплайне излишен, чтобы сократить использование логики
iiv
сообщение Apr 29 2011, 07:34
Сообщение #1


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



Всем привет,

а также, ПРЕБОЛЬШУЩЕЕ СПАСИБО всем советующим и советовавшим мне по моим высокочастотным и параллельным задачкам.

Я, как уже недавно похвалился, смог собрать то, что хотел с фмакс>400МГц, но есть у меня еще одно желание к моему проекту, но, не знаю, где копать, поэтому обращаюсь к Вам за советом!

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

Если эти вспомогательные регистры убрать, то я использую около 34К лютов, но фмакс будет маленький, если они все есть, то 80К лютов и фмакс - как надо. Всего на кристалле есть 113К лютов.

Есть подозрение, что я использую эти промежуточные регистры с большим размахом, и я мог бы собрать дизайн с 60К лютов и тем же фмаксом. Такое желание обусловленно тем, что, если у меня будет много свободных лютов, то я смог бы в эту же плиску воткнуть еще чего в параллель.

Мне алгоритмически не критично удалить один или несколько промежуточных регистров, но, каждый пересбор проекта стоит мне 50 минут. А, как вы можете предположить, комбинаций на удаление может быть 2^{10}.

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

Спасибо

ИИВ
Go to the top of the page
 
+Quote Post
jojo
сообщение Apr 29 2011, 08:24
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 574
Регистрация: 9-10-04
Из: FPGA-city
Пользователь №: 827



Можно вывести список N худших путей в timing analyzer.
Можно гистограмму задержек построить, и худшие пути отфильтровать по гистограмме.

Этап конвейера, где все пути имеют задержку t << tclk, можно убрать.

Например, этапы конвейера такого вида:
- DFF -> DFF
- DFF -> LUT -> DFF
можно попытаться убрать, если вы их сами не ввели для улучшения fmax sm.gif.

---

Разумеется, логику убранного этапа надо куда-то деть, если она нужна.
Например, в соседний этап перенести, если fmax не грохнется.
Go to the top of the page
 
+Quote Post
yes
сообщение Apr 29 2011, 15:14
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



имплементация на стратиксе?

то есть разговор про LE, а не ЛУТы? вроде как конвеер на логику не влияет, а только на количество флип-флопов

----------------------------------

в квартусе есть "галки" perform register retiming / perform register duplication

можно их использовать для автоматического построения конвеера - то есть убрать подозрительные ступеньки и попытаться синтезировать с этими опциями

--------------------

если автоматическим методам доверия нет,
то метода такая
тот элемент : структуру / масив и т.п. в котором описана станция (регистр) пайплайна

описываете как
logic this_stage;

без регистра
always_comb
this_stage=prev_stage;

ну и попытаться синтезировать
если по времянке не влезло, то

always @(posedge clk)
this_stage=prev_stage;

и т.д.

------------------

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

Go to the top of the page
 
+Quote Post
iiv
сообщение Apr 29 2011, 19:34
Сообщение #4


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



Уважаемый Jojo,

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

Цитата(jojo @ Apr 29 2011, 14:24) *
Можно вывести список N худших путей в timing analyzer.
Можно гистограмму задержек построить, и худшие пути отфильтровать по гистограмме.

Этап конвейера, где все пути имеют задержку t << tclk, можно убрать.


Вот, именно это-то я и спрашивал.

Скажите, пожалуйста, правильно ли я понимаю, что, в "TimeQuest Timing Analyzer"->"Report Timing"->"Core Clock Setup" / "Core Clock Hold" как раз эти задержки по путям и даны?

Спасибо

ИИВ
Go to the top of the page
 
+Quote Post
jojo
сообщение Apr 29 2011, 20:03
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 574
Регистрация: 9-10-04
Из: FPGA-city
Пользователь №: 827



Рад был помочь.

Я с TimeQuest давно не работал, но думаю, что это нужные пункты, судя по названию.
Где-то рядом есть пункт меню, нажав который, можно получить гистограмму запаса по tSU.
Из этой гистограммы тоже что-то можно выудить.

Важны пути с наименьшим запасом tSU, в них бывает полезно добавить триггеры.
Но важны и пути с наибольшим запасом, их можно объединить и сэкономить ресурсы.

Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 7th July 2025 - 13:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.01412 секунд с 7
ELECTRONIX ©2004-2016