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

 
 
 
Reply to this topicStart new topic
> большое число fan-out'ов, Altera, нужно ли что-то делать?
Димыч
сообщение Sep 16 2008, 07:21
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 156
Регистрация: 1-02-05
Из: the Earth
Пользователь №: 2 331



Всем доброго!

В проекте используется несколько модулей, написанных разными людьми. Поэтому ли или же по другой причине, при компиляции читаю ряд Warning'ов о слишком большом числе "фан-аутов" для некоторых регистров. Манипуляции с назначением на них ограничения "Maximum fan-outs" в корне ситуацию не меняют. Но ПЛИС работает так, как нужно, в любом случае.
Стоит ли попытаться побороться с вопросом или же это штатная ситуация?
Для нескольких цепей число фан-аутов более двух сотен. Как такое работает? Или фиттер сам дуплицирует регистры в этом случае?

спасибо!
Go to the top of the page
 
+Quote Post
Postoroniy_V
сообщение Sep 26 2008, 00:05
Сообщение #2


МедвеД Инженер 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
Editor

Quartus Handbook 8.0 page 8-59


--------------------
Cogito ergo sum
Go to the top of the page
 
+Quote Post
awa
сообщение Oct 13 2008, 13:35
Сообщение #3





Группа: Участник
Сообщений: 6
Регистрация: 6-04-07
Из: Россия
Пользователь №: 26 821



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

PS. Камень - CycloneII, Quartus - 7 версии.
Go to the top of the page
 
+Quote Post
Postoroniy_V
сообщение Oct 13 2008, 14:09
Сообщение #4


МедвеД Инженер 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
Go to the top of the page
 
+Quote Post
awa
сообщение Oct 14 2008, 07:28
Сообщение #5





Группа: Участник
Сообщений: 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 перешел, только главный модуль в графике оставляю.
Go to the top of the page
 
+Quote Post
vetal
сообщение Oct 14 2008, 07:41
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



Цитата
Ну да ладно, главное, что тайминги в норме.

Вы их на глазок замеряете или все же описываете квартусу какие именно тайминги вам нужны? Квартус неглупый и там где нужно может сам размножить если ему известно чего от него хотят!
Go to the top of the page
 
+Quote Post
awa
сообщение Oct 14 2008, 08:53
Сообщение #7





Группа: Участник
Сообщений: 6
Регистрация: 6-04-07
Из: Россия
Пользователь №: 26 821



Цитата(vetal @ Oct 14 2008, 11:41) *
Вы их на глазок замеряете или все же описываете квартусу какие именно тайминги вам нужны? Квартус неглупый и там где нужно может сам размножить если ему известно чего от него хотят!

Да, Вы правы, тайминги квартусу не указываю. В прошлых проектах и так все удовлетворяло (скорость и сложность были ниже). Только контролирую результат в Compilation Report -> Timing Analizer.
А тут чувствую совсем никуда не денешся. Ткните, пожалуйста, меня носом как это все настраивается.
Go to the top of the page
 
+Quote Post
vetal
сообщение Oct 14 2008, 09:04
Сообщение #8


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



Цитата(awa @ Oct 14 2008, 12:53) *
Да, Вы правы, тайминги квартусу не указываю. В прошлых проектах и так все удовлетворяло (скорость и сложность были ниже). Только контролирую результат в Compilation Report -> Timing Analizer.
А тут чувствую совсем никуда не денешся. Ткните, пожалуйста, меня носом как это все настраивается.


Страничка на сайте альтеры
http://www.altera.com/support/software/tim...-timequest.html
и описание
http://www.altera.com/literature/hb/qts/qts_qii53018.pdf
Go to the top of the page
 
+Quote Post
Maverick
сообщение Oct 14 2008, 10:07
Сообщение #9


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Интересно, очень интересно! smile.gif Наверно выше изложенное про Altera можно отнести и к Xilinx (ISE 8.02.03) правда?

P.S. лень просто поискать про это на сайте Xilinx smile.gif


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
vetal
сообщение Oct 14 2008, 10:14
Сообщение #10


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



Цитата(Maverick @ Oct 14 2008, 14:07) *
Интересно, очень интересно! smile.gif Наверно выше изложенное про Altera можно отнести и к Xilinx (ISE 8.02.03) правда?

P.S. лень просто поискать про это на сайте Xilinx smile.gif


По большому счету - да. Методологически должно быть одно и тоже smile.gif
Go to the top of the page
 
+Quote Post

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

 


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


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