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

 
 
> Подскажите, как бороть времянки в Xilinx?, Задержки в цепях гораздо больше, чем в логике
Koluchiy
сообщение Dec 22 2010, 15:44
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



Здравствуйте, уважаемые гуры.

Собираю проект под Spartan-6, а точнее XC6SLX150T.
Микросхема большая, текущая версия проекта занимает ее примерно наполовину (в будущем хотелось бы заполнить под завязку).
При компиляции (синтез Synplify, остальное ISE 12.3) проект не проходит по времянкам.

В отчете по ошибкам времянок классическая картина следующая:

Код
     -------------------------------------------------  -------------------
SLICE_X52Y115.CQ     Tcko                  0.447
                                                
SLICE_X48Y99.A3      net (fanout=8)        1.571
SLICE_X48Y99.CMUX    Topac                 0.537
                                                                                                    
                                                                                                    
SLICE_X51Y97.C5      net (fanout=2)        0.573
SLICE_X51Y97.C       Tilo                  0.259
                                                                                                    
SLICE_X85Y58.B4      net (fanout=12)       3.898
SLICE_X85Y58.B       Tilo                  0.259
                                                                                                    
SLICE_X113Y49.C4     net (fanout=68)       2.203
SLICE_X113Y49.C      Tilo                  0.259
                                                                                                    
SLICE_X116Y49.C4     net (fanout=16)       0.727
SLICE_X116Y49.C      Tilo                  0.204
                                                                                                    
SLICE_X105Y54.A3     net (fanout=1)        1.158
SLICE_X105Y54.A      Tilo                  0.259
                                                                                                    
SLICE_X105Y54.B6     net (fanout=1)        0.118
SLICE_X105Y54.B      Tilo                  0.259
                                                                                                    
SLICE_X85Y54.D6      net (fanout=1)        1.236
SLICE_X85Y54.CLK     Tas                   0.322

     -------------------------------------------------  ---------------------------
     Total                                     14.289ns (2.805ns logic, 11.484ns route)
                                                        (19.6% logic, 80.4% route)


Можно видеть, что:
1) потери на "путь" гораздо больше, чем потери на логику.
2) fanout части цепей достигает больших значений (68 например), что по моему мнению не может не сказываться на задержках в этой цепи. Кстати, в настройках Synplify ставлю Max fanout = 30, что не мешает появляться цифрам типа вышеуказанного 68.

Собственно, вопросов 2:

1) Прав ли я в том, что большой fanout цепей увеличивает их задержки. Если да - то как его уменьшить.
2) Если синтез производится силами Synplify, какие оптимизации Map в ISE нужно включать, а какие - лучше не надо? Например, в настройках и того, и того есть возможность включить Retiming.

Ну или пошлите, где на эту тему почитать.

Заранее спасибо.

Сообщение отредактировал Koluchiy - Dec 22 2010, 15:50
Go to the top of the page
 
+Quote Post
3 страниц V  < 1 2 3 >  
Start new topic
Ответов (15 - 29)
Koluchiy
сообщение Dec 23 2010, 08:07
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



Цитата
Это получается не от фанаута, а от неоптимального размещения, когда соединяемые модули оказываются физически далеко друг от друга.

В моём понимании, неоптимальное размещение дает большие длины линий(сопротивление), а фанаут дает большую емкость нагрузки. Соответственно, улучшить результат можно, оптимизируя и то, и другое.
Или я неправ?

Цитата
Потому что маппер еще есть, и он много чего умеет.

Можно как-то ограничить его стремление к повышению фанаута? Чего включить/выключить надо.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Dec 23 2010, 08:31
Сообщение #17


Профессионал
*****

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



Цитата(Koluchiy @ Dec 23 2010, 14:07) *
В моём понимании, неоптимальное размещение дает большие длины линий(сопротивление), а фанаут дает большую емкость нагрузки. Соответственно, улучшить результат можно, оптимизируя и то, и другое.
Или я неправ?

Это для ASIC. Для FPGA считайте грубо, что задержка сильно коррелирует с длиной (почти линейно) линии и слабо коррелирует с фанаутом (растет линейно при экспоненциальном росте фанаута).

Цитата(Koluchiy @ Dec 23 2010, 14:07) *
Можно как-то ограничить его стремление к повышению фанаута? Чего включить/выключить надо.

Не заморачивайтесь, только время потеряете.
Go to the top of the page
 
+Quote Post
dmitry-tomsk
сообщение Dec 23 2010, 14:52
Сообщение #18


Знающий
****

Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741



Цитата(Koluchiy @ Dec 23 2010, 15:07) *
В моём понимании, неоптимальное размещение дает большие длины линий(сопротивление), а фанаут дает большую емкость нагрузки. Соответственно, улучшить результат можно, оптимизируя и то, и другое.
Или я неправ?


Можно как-то ограничить его стремление к повышению фанаута? Чего включить/выключить надо.


p&r в ise настолько тупой, что самое тривиальное размещение модулей по кристаллу в planahead даёт отличные результаты по частоте и времени имплементации.
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Dec 23 2010, 16:50
Сообщение #19


Знающий
****

Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905



От разработчиков placer-ов почему-то годами скрывают существование регулярных структур и требуют размещения по принципу минимального расхода проволоки и близости к вымышленному пупу чипа.

sm.gif
Go to the top of the page
 
+Quote Post
disel
сообщение Jan 12 2011, 05:39
Сообщение #20


Знающий
****

Группа: Свой
Сообщений: 610
Регистрация: 22-04-05
Пользователь №: 4 410



Хаппи энд случился?
Go to the top of the page
 
+Quote Post
Мур
сообщение Jan 19 2011, 07:06
Сообщение #21


Знающий
****

Группа: Свой
Сообщений: 815
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



Прокоментируйте, народ, такой парадокс.
Если я добился в Post-Route и самом медленном Speed grade-2 устойчивой работы проекта в Model Sim, но при смене Speed grade-3 (шустрее!) вижу как валится проект на ровном месте(не должно быть такого в моём понимании).
Казалось бы, стоило расслабиться! Я в лёгкой прострации...
Go to the top of the page
 
+Quote Post
disel
сообщение Jan 19 2011, 07:15
Сообщение #22


Знающий
****

Группа: Свой
Сообщений: 610
Регистрация: 22-04-05
Пользователь №: 4 410



Схема поди не синхронная или констрейны заданы не верно (или не заданы). Других вариантов нет.
А зачем Post-Route в моделсим засовывать?
Go to the top of the page
 
+Quote Post
Мур
сообщение Jan 19 2011, 07:31
Сообщение #23


Знающий
****

Группа: Свой
Сообщений: 815
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



Цитата(disel @ Jan 19 2011, 11:15) *
Схема поди не синхронная или констрейны заданы не верно (или не заданы). Других вариантов нет.

Схема синхронная под единую 100Мгц. Собственно, в констрейнах только это и было прописано...
Цитата(disel @ Jan 19 2011, 11:15) *
А зачем Post-Route в моделсим засовывать?

Там же большее приближение к истинным задержкам! Глюки в нём как раз и просматриваются...
Go to the top of the page
 
+Quote Post
disel
сообщение Jan 19 2011, 07:59
Сообщение #24


Знающий
****

Группа: Свой
Сообщений: 610
Регистрация: 22-04-05
Пользователь №: 4 410



Цитата(Мур @ Jan 19 2011, 10:31) *
Там же большее приближение к истинным задержкам! Глюки в нём как раз и просматриваются...

А зачем вам истинные задержки? Именно вам? Пускай временной анализатор этим мучается.

Вообще в данной теме это офтоп и нехорошо. Создайте новую тему, если нужно.
Go to the top of the page
 
+Quote Post
Koluchiy
сообщение Jan 19 2011, 07:59
Сообщение #25


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



Цитата(disel @ Jan 12 2011, 08:39) *
Хаппи энд случился?


Почти, но не совсем.
Т.е. при заполнении 44% всё вполне себе.
Но при заполнении микросхемы 86% при выполнении MAP в компьютере заканчивается память sm.gif.

Сообщение отредактировал Koluchiy - Jan 19 2011, 08:00
Go to the top of the page
 
+Quote Post
disel
сообщение Jan 19 2011, 08:12
Сообщение #26


Знающий
****

Группа: Свой
Сообщений: 610
Регистрация: 22-04-05
Пользователь №: 4 410



Цитата(Koluchiy @ Jan 19 2011, 10:59) *
Почти, но не совсем.
Т.е. при заполнении 44% всё вполне себе.
Но при заполнении микросхемы 86% при выполнении MAP в компьютере заканчивается память sm.gif.



Ну вы поделитесь как победили.

Странно по поводу памяти. В спартане6 вроде ничего страшного нет: http://www.xilinx.com/ise/products/memory.htm.
Go to the top of the page
 
+Quote Post
Мур
сообщение Jan 19 2011, 08:27
Сообщение #27


Знающий
****

Группа: Свой
Сообщений: 815
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



Цитата(disel @ Jan 19 2011, 11:59) *
А зачем вам истинные задержки? Именно вам? Пускай временной анализатор этим мучается.

Поведенчески проект совершенен(ModelSim)
До заливки в железо провериться всегда полезно с приближенными к реальности задержками...
Цитата(disel @ Jan 19 2011, 11:59) *
Вообще в данной теме это офтоп и нехорошо. Создайте новую тему, если нужно.

Извините! Тема спала...
Я посчитал, что времянки здесь тоже цепляют такой вариант.
...Я просто воспользовался поиском и не стал новый топик из такого пустяка создавать.
Как решат модераторы?
Go to the top of the page
 
+Quote Post
Koluchiy
сообщение Jan 19 2011, 08:34
Сообщение #28


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



Ну, во-1х, пока не победил, ибо 86% пока откомпилить не удалось.

А в остальном - собственно, все рецепты здесь перечислили.
1) Включение всех оптимизаций по скорости (в Synplify - тоже).
2) Ручная расстановка отдельных блоков. Я расставлял блоки памятей, причем делал это в общем "по наитию", но эффект это дало очень заметный.
3) Развязка отдельных блоков между собой при помощи промежуточных триггеров (можно это назвать конвейеризацией). Т.е. если нет разницы, через сколько тактов придет такой-то сигнал из блока А в блок Б, то между А и Б ставятся триггера, которые делят путь на участки.

Цитата
Странно по поводу памяти. В спартане6 вроде ничего страшного нет

Ну вот там вот написано, что для S6 150LXT в пике 2300 МБайт.
А у меня их 2 гига...
Собственно, память закончилась тогда, когда я на 86% заполнения включил Global Optimization.
Go to the top of the page
 
+Quote Post
disel
сообщение Jan 19 2011, 08:44
Сообщение #29


Знающий
****

Группа: Свой
Сообщений: 610
Регистрация: 22-04-05
Пользователь №: 4 410



Т.е. ручная расстановка + переделка схемы. Понятно.
По пункту 3 можно было в таком случае и мультицикловыми констрейнами обойтись.

На расстановку еще влияет cost table. Можно запустить на ночь смарт эхплорер, пускай перебирает пока не найдет подходящий вариант. А потом фиксить.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Jan 19 2011, 08:49
Сообщение #30


Профессионал
*****

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



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

А памяти не жалейте, она же дешевая. Если написано пик 2300 - значит надо иметь минимум 4 гига: эти пики оказываются, как сами видите, вполне достижимыми. Да, придется поставить шестидесятичетырехразрадную операционку, но двенадцатый ISE в ней уже вроде полностью живет.
Go to the top of the page
 
+Quote Post

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

 


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


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