iiv 29 29 апреля, 2011 Опубликовано 29 апреля, 2011 · Жалоба Всем привет, а также, ПРЕБОЛЬШУЩЕЕ СПАСИБО всем советующим и советовавшим мне по моим высокочастотным и параллельным задачкам. Я, как уже недавно похвалился, смог собрать то, что хотел с фмакс>400МГц, но есть у меня еще одно желание к моему проекту, но, не знаю, где копать, поэтому обращаюсь к Вам за советом! В моем проекте имеется довольно длинный пайплайн, содержащий около 20 шагов, около десяти из которых - сами вычисления, а еще примерно 10 - это копирования во всякие вспомогательные промежуточные регистры. Если эти вспомогательные регистры убрать, то я использую около 34К лютов, но фмакс будет маленький, если они все есть, то 80К лютов и фмакс - как надо. Всего на кристалле есть 113К лютов. Есть подозрение, что я использую эти промежуточные регистры с большим размахом, и я мог бы собрать дизайн с 60К лютов и тем же фмаксом. Такое желание обусловленно тем, что, если у меня будет много свободных лютов, то я смог бы в эту же плиску воткнуть еще чего в параллель. Мне алгоритмически не критично удалить один или несколько промежуточных регистров, но, каждый пересбор проекта стоит мне 50 минут. А, как вы можете предположить, комбинаций на удаление может быть 2^{10}. Скажите, пожалуйста, где и как я мог бы посмотреть, что, например, какой-то регистр в моем пайплайне не сильно важен (даже не знаю как сказать, только примерно чуствую что может быть что-то такое автоматическое). Спасибо ИИВ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jojo 0 29 апреля, 2011 Опубликовано 29 апреля, 2011 · Жалоба Можно вывести список N худших путей в timing analyzer. Можно гистограмму задержек построить, и худшие пути отфильтровать по гистограмме. Этап конвейера, где все пути имеют задержку t << tclk, можно убрать. Например, этапы конвейера такого вида: - DFF -> DFF - DFF -> LUT -> DFF можно попытаться убрать, если вы их сами не ввели для улучшения fmax :). --- Разумеется, логику убранного этапа надо куда-то деть, если она нужна. Например, в соседний этап перенести, если fmax не грохнется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 7 29 апреля, 2011 Опубликовано 29 апреля, 2011 · Жалоба имплементация на стратиксе? то есть разговор про LE, а не ЛУТы? вроде как конвеер на логику не влияет, а только на количество флип-флопов ---------------------------------- в квартусе есть "галки" perform register retiming / perform register duplication можно их использовать для автоматического построения конвеера - то есть убрать подозрительные ступеньки и попытаться синтезировать с этими опциями -------------------- если автоматическим методам доверия нет, то метода такая тот элемент : структуру / масив и т.п. в котором описана станция (регистр) пайплайна описываете как logic this_stage; без регистра always_comb this_stage=prev_stage; ну и попытаться синтезировать если по времянке не влезло, то always @(posedge clk) this_stage=prev_stage; и т.д. ------------------ пользование статическим временным анализом (тайм квест) драматически уменьшает количество вариантов для перебора Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iiv 29 29 апреля, 2011 Опубликовано 29 апреля, 2011 · Жалоба Уважаемый Jojo, очень благодарен Вам за ответ и сильно прошу прощения, что не владею терминологией и не могу ясно сформулировать что хочу, в Вы, своим ответом, мне с этим сильно помогли. Можно вывести список N худших путей в timing analyzer. Можно гистограмму задержек построить, и худшие пути отфильтровать по гистограмме. Этап конвейера, где все пути имеют задержку t << tclk, можно убрать. Вот, именно это-то я и спрашивал. Скажите, пожалуйста, правильно ли я понимаю, что, в "TimeQuest Timing Analyzer"->"Report Timing"->"Core Clock Setup" / "Core Clock Hold" как раз эти задержки по путям и даны? Спасибо ИИВ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jojo 0 29 апреля, 2011 Опубликовано 29 апреля, 2011 · Жалоба Рад был помочь. Я с TimeQuest давно не работал, но думаю, что это нужные пункты, судя по названию. Где-то рядом есть пункт меню, нажав который, можно получить гистограмму запаса по tSU. Из этой гистограммы тоже что-то можно выудить. Важны пути с наименьшим запасом tSU, в них бывает полезно добавить триггеры. Но важны и пути с наибольшим запасом, их можно объединить и сэкономить ресурсы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться