Перейти к содержанию
    

Как понять какой регистр в пайплайне излишен

Всем привет,

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

Спасибо

 

ИИВ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно вывести список N худших путей в timing analyzer.

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

 

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

 

Например, этапы конвейера такого вида:

- DFF -> DFF

- DFF -> LUT -> DFF

можно попытаться убрать, если вы их сами не ввели для улучшения fmax :).

 

---

 

Разумеется, логику убранного этапа надо куда-то деть, если она нужна.

Например, в соседний этап перенести, если fmax не грохнется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

 

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

 

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

 

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

 

если автоматическим методам доверия нет,

то метода такая

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

 

описываете как

logic this_stage;

 

без регистра

always_comb

this_stage=prev_stage;

 

ну и попытаться синтезировать

если по времянке не влезло, то

 

always @(posedge clk)

this_stage=prev_stage;

 

и т.д.

 

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

 

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уважаемый Jojo,

 

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

 

Можно вывести список N худших путей в timing analyzer.

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

 

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

 

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

 

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

 

Спасибо

 

ИИВ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Я с TimeQuest давно не работал, но думаю, что это нужные пункты, судя по названию.

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

Из этой гистограммы тоже что-то можно выудить.

 

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

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...