|
|
  |
большое число fan-out'ов, Altera, нужно ли что-то делать? |
|
|
|
Sep 26 2008, 00:05
|

МедвеД Инженер I
   
Группа: Свой
Сообщений: 816
Регистрация: 21-10-04
Пользователь №: 951

|
Цитата(Димыч @ Sep 16 2008, 16:21)  Всем доброго!
В проекте используется несколько модулей, написанных разными людьми. Поэтому ли или же по другой причине, при компиляции читаю ряд Warning'ов о слишком большом числе "фан-аутов" для некоторых регистров. Манипуляции с назначением на них ограничения "Maximum fan-outs" в корне ситуацию не меняют. Но ПЛИС работает так, как нужно, в любом случае. Стоит ли попытаться побороться с вопросом или же это штатная ситуация? Для нескольких цепей число фан-аутов более двух сотен. Как такое работает? Или фиттер сам дуплицирует регистры в этом случае?
спасибо! штатная ситуация и если всё работает, то трогать ничего не надо а так про fanout Duplicate Logic for Fan-Out Control Duplicating logic or registers can help improve timing in cases where moving a register in a failing timing path to reduce routing delay creates other failing paths, or where there are timing problems due to the fan-out of the registers. Many synthesis tools support options or attributes that specify the maximum fan-out of a register. When using Quartus II integrated synthesis, you can set the Maximum Fan-Out logic option in the Assignment Editor to control the number of destinations for a node so that the fan-out count does not exceed a specified value. You can also use the maxfan attribute in your HDL code. The software duplicates the node as needed to achieve the specified maximum fan-out. 1 Logic duplication using Maximum Fan-Out assignments normally increases resource utilization, and can potentially increase compilation time, depending on the placement and the total resource usage within the selected device. The improvement in timing performance that results because of Maximum Fan-Out assignments is very design-specific. If you are using Maximum Fan-Out assignments, Altera recommends benchmarking your design with and without these assignments to evaluate whether they give the expected improvement in timing performance, and use the assignments only when you get improved results. You can manually duplicate registers in the Quartus II software regardless of the synthesis tool used. To duplicate a register, apply the Manual Logic Duplication option to the register with the Assignment EditorQuartus Handbook 8.0 page 8-59
--------------------
Cogito ergo sum
|
|
|
|
|
Oct 13 2008, 13:35
|
Группа: Участник
Сообщений: 6
Регистрация: 6-04-07
Из: Россия
Пользователь №: 26 821

|
Вот тут как раз подобный глюк вылез. В составе схемы был модуль с 16 выходами на пины - все разводилось и работало прекрасно. Поставил два таких модуля, фиттер их соптимизировал и получилось у одного из регистров 32 fan-out идущих на пины, раскиданные по 3-м сторонам корпуса. Теперь задержка на некоторых из них слишком большая и по частоте не проходит. Ставлю "Maximum Fan-Out" для этого регистра в 16 - фиттер игнорирует почему то. Пытался "дуплицировать" вручную - тоже не вышло. Даже не пойму куда копать дальше.
PS. Камень - CycloneII, Quartus - 7 версии.
|
|
|
|
|
Oct 13 2008, 14:09
|

МедвеД Инженер I
   
Группа: Свой
Сообщений: 816
Регистрация: 21-10-04
Пользователь №: 951

|
Цитата(awa @ Oct 13 2008, 22:35)  Вот тут как раз подобный глюк вылез. В составе схемы был модуль с 16 выходами на пины - все разводилось и работало прекрасно. Поставил два таких модуля, фиттер их соптимизировал и получилось у одного из регистров 32 fan-out идущих на пины, раскиданные по 3-м сторонам корпуса. Теперь задержка на некоторых из них слишком большая и по частоте не проходит. Ставлю "Maximum Fan-Out" для этого регистра в 16 - фиттер игнорирует почему то. Пытался "дуплицировать" вручную - тоже не вышло. Даже не пойму куда копать дальше.
PS. Камень - CycloneII, Quartus - 7 версии. так разберитесь почему игнорируется ваши установки 1)где установили Maximum Fan-Out? в исходнике или как? 2) почему в ручную не вышло? в чип едиторе смотрели? 3) и вообще что значит не вышло? тайминги не те? или нет дуплицирования?
--------------------
Cogito ergo sum
|
|
|
|
|
Oct 14 2008, 07:28
|
Группа: Участник
Сообщений: 6
Регистрация: 6-04-07
Из: Россия
Пользователь №: 26 821

|
Цитата(Postoroniy_V @ Oct 13 2008, 18:09)  так разберитесь почему игнорируется ваши установки 1)где установили Maximum Fan-Out? в исходнике или как? 2) почему в ручную не вышло? в чип едиторе смотрели? 3) и вообще что значит не вышло? тайминги не те? или нет дуплицирования? 1) Maximum Fan-Out установил в Assignment Editor для конкретного регистра. test_io:inst1|DWrReg[0] Maximum Fan-Out 16 Yes Название регистра взял из Timing Optimization Advisor. Тут же кстати показано и сколько fan-out у него. 2) Почему вручную не вышло - не знаю. Может чего не так делал. Смотрю результат в Chip Planner. Честно показывает 33 fan-out. 32 на пины и один внутри. 3) Нет дуплицирования и соответственно отсюда тайминги не те. Насчет установки в исходнике, я как то даже проморгал что так можно. Еще осваиваюсь с verilog. Посмотрел в доке. Поставил /* synthesis syn_maxfan = 16 */ и, о чудо, - сработало. Правда попытки выставить параметр в 4 или 20 были проигнорированиы, все равно бъет на 2-а по 17 fan-out. Ну да ладно, главное, что тайминги в норме. Спасибо большое за помощь, а то я уже совсем измучился. PS. Прошу прощения за глупые вопросы, я с FPGA работаю "наскоками", это не основная моя работа. Раньше с MAX Plus работал в графике да в AHDL. Теперь вот на Verilog перешел, только главный модуль в графике оставляю.
|
|
|
|
|
Oct 14 2008, 08:53
|
Группа: Участник
Сообщений: 6
Регистрация: 6-04-07
Из: Россия
Пользователь №: 26 821

|
Цитата(vetal @ Oct 14 2008, 11:41)  Вы их на глазок замеряете или все же описываете квартусу какие именно тайминги вам нужны? Квартус неглупый и там где нужно может сам размножить если ему известно чего от него хотят! Да, Вы правы, тайминги квартусу не указываю. В прошлых проектах и так все удовлетворяло (скорость и сложность были ниже). Только контролирую результат в Compilation Report -> Timing Analizer. А тут чувствую совсем никуда не денешся. Ткните, пожалуйста, меня носом как это все настраивается.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|