|
Как уменьшить время распространения сигнала (route)?, Virtex6, xc6vlx240, Ise14.7, LDPC DVBS2 |
|
|
|
Jan 22 2018, 11:26
|
Местный
  
Группа: Свой
Сообщений: 307
Регистрация: 14-03-06
Пользователь №: 15 243

|
Доброго времени суток. Есть дизайн c LDPC DVBS2 (около 25-30 % процентов ПЛИС), с тактовой частотой 200 МГц. В проекте много однотипных юнитов. После P/R с помощью PlanAhead вижу следующую таблицу. Из неё видно, что значительная часть времянок уходит на route. Как это время можно уменьшить, не используя loc, rloc, area_group и т. п. ручные механизмы? А если это не уменьшить, то как грамотно использовать ручные механизмы? Всем откликнувшимся - спасибо!
Эскизы прикрепленных изображений
|
|
|
|
|
 |
Ответов
|
Jan 22 2018, 13:14
|
Частый гость
 
Группа: Свой
Сообщений: 180
Регистрация: 17-02-09
Из: Санкт-Петербург
Пользователь №: 45 001

|
Основная проблема раскладки проекта в ISE, на мой взгляд, это шины. Т.е. если у Вас сигналы образуют шину, то они будут распиханы по 4 штуки(по умолчанию) в SLICE. Ещё хуже то обстоятельство, что однобитные сигналы одинаковых модулей("empty" для фифо, например), описанных через генерейт(т.е. копи) будут объединены в шину. В итоге у вас большие массивы BRAM в разных углах кристалла будут стоять, а управляющие сигналы к ним будут в одном "месте"  Как с этим бороться в уже готовом описании я даже не представляю. В любом случае, советую уделить этой особенности работы маппера особое внимание.
|
|
|
|
|
Jan 22 2018, 13:22
|
Местный
  
Группа: Свой
Сообщений: 307
Регистрация: 14-03-06
Пользователь №: 15 243

|
Цитата(TRILLER @ Jan 22 2018, 16:14)  Основная проблема раскладки проекта в ISE, на мой взгляд, это шины. Т.е. если у Вас сигналы образуют шину, то они будут распиханы по 4 штуки(по умолчанию) в SLICE. Ещё хуже то обстоятельство, что однобитные сигналы одинаковых модулей("empty" для фифо, например), описанных через генерейт(т.е. копи) будут объединены в шину. В итоге у вас большие массивы BRAM в разных углах кристалла будут стоять, а управляющие сигналы к ним будут в одном "месте"  Управляющие сигнала древовидно разветвляются в две стадии, образуя относительно небольшой fanout. Вопрос в другом, почему ISE, при исользовании четверти памяти, ставит их в разные углы плисины? Цитата(bogaev_roman @ Jan 22 2018, 16:20)  Для начала - возьмите один длинный путь от триггера до триггера и проанализируйте кол-во fan-out на выходном триггере этого пути, а также наиболее длинный путь до входного триггера, возможно у Вас дикое кол-во fan-out. fan-out = 2.
|
|
|
|
|
Jan 22 2018, 13:36
|
Местный
  
Группа: Свой
Сообщений: 307
Регистрация: 14-03-06
Пользователь №: 15 243

|
Цитата(bogaev_roman @ Jan 22 2018, 16:27)  Это для выхода? Проанализируйте длину этих путей. Думаю, что тут без скриншота не обойтись. Да. Длина - длинная  Тут системная проблема и длинный путь - это следствие. Цитата(TRILLER @ Jan 22 2018, 16:29)  Лично я считаю хорошим тоном приколотить ВСЮ блочную память гвоздями. Несколько сотен штук - не так и много. Зато экономит кучу времени в дальнейшем. И САПРине сильно легчает. А по-какому принципу ее приколачивать? LOC, Rloc, AREA_GROUP? Или еще какие-нибудь? И главное, как её расположить так, чтобы хуже не стало?
Эскизы прикрепленных изображений
|
|
|
|
|
Jan 22 2018, 14:00
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
Цитата(Tpeck @ Jan 22 2018, 16:36)  Тут системная проблема и длинный путь - это следствие. Судя по описанию, это проблема не кривой разводки и решается она до парсера, на уровне описания алгоритма путем изменения логики и, как было выше описано, добавлением регистров. Вы можете попробовать все банки прибить гвоздями, но без четкого понимания того, каким образом Ваш алгоритм должен лечь на ПЛИС (архитектурно) это приведет только к ухудшения времянки и дополнительному времени разводки. Цитата Лично я считаю хорошим тоном приколотить ВСЮ блочную память гвоздями. Несколько сотен штук - не так и много. Зато экономит кучу времени в дальнейшем. И САПРине сильно легчает. А что если вся эта память управляется из одного места и имеет стыки с интерфейсами типа ethernet или DDR3,которые уже жестко сидят - куда ее прибивать? Нам ТС ничего не поведал об алгоритме.
|
|
|
|
|
Jan 22 2018, 14:06
|
Местный
  
Группа: Свой
Сообщений: 307
Регистрация: 14-03-06
Пользователь №: 15 243

|
Цитата(bogaev_roman @ Jan 22 2018, 17:00)  Судя по описанию, это проблема не кривой разводки и решается она до парсера, на уровне описания алгоритма путем изменения логики и, как было выше описано, добавлением регистров. Вы можете попробовать все банки прибить гвоздями, но без четкого понимания того, каким образом Ваш алгоритм должен лечь на ПЛИС (архитектурно) это приведет только к ухудшения времянки и дополнительному времени разводки.
А что если вся эта память управляется из одного места и имеет стыки с интерфейсами типа ethernet или DDR3,которые уже жестко сидят - куда ее прибивать? Нам ТС ничего не поведал об алгоритме. Топикстартер ничего не понимает в том о чем он пишет Информация принята. Алгоритм приведен в описание темы.
|
|
|
|
|
Jan 22 2018, 14:34
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
Цитата(Tpeck @ Jan 22 2018, 17:06)  Топикстартер ничего не понимает в том о чем он пишет Информация принята. Алгоритм приведен в описание темы. Возможно, я неправильно выразился - отсутствует структурная схема, конкретно проблемный кусок. Цитата Есть дизайн c LDPC DVBS2 с точки зрения реализации в итоговой RTL схеме может варьироваться. Обычная линия задержки может иметь несколько вариантов реализации, не зная реализацию, сложно чем-то помочь.
|
|
|
|
|
Jan 24 2018, 08:51
|
Местный
  
Группа: Свой
Сообщений: 307
Регистрация: 14-03-06
Пользователь №: 15 243

|
Цитата(bogaev_roman @ Jan 22 2018, 17:34)  Возможно, я неправильно выразился - отсутствует структурная схема, конкретно проблемный кусок. Тут не в куске проблема. С проблемным куском я и сам бы разобрался  C fan-out глобальных проблем нет. Структурная схема - Память, сдвигатель, обработчик. Проблема в том, как вежливо объяснить мапперу, что не надо память равномерно по всему кристаллу раскидывать. Память размести компактней, сдвигатель поставь после неё, а обработчик поставь после сдвигателя и перед памятью. А так память раскидал по всему кристаллу и между кристаллами начинает распихивать, сдвигатель, обработчик. Там становится тесно и бах 90 % времни тратиться на распространение сигнала с fanout 2 ..... PS Белый цвет - это блоки памяти.
Эскизы прикрепленных изображений
|
|
|
|
|
Jan 24 2018, 09:00
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(Tpeck @ Jan 24 2018, 11:51)  Тут не в куске проблема. С проблемным куском я и сам бы разобрался  C fan-out глобальных проблем нет. Структурная схема - Память, сдвигатель, обработчик. Проблема в том, как вежливо объяснить мапперу, что не надо память равномерно по всему кристаллу раскидывать. Память размести компактней, сдвигатель поставь после неё, а обработчик поставь после сдвигателя и перед памятью. А если память взять как инстанс из библиотеки - RAMB32 и т.д. А сдвигатель как SRL32... И память составлять из кусков не по "адресам", а по "данным"... Тогда не понадобится мультиплексор шины данных от разных кусков памяти....
--------------------
www.iosifk.narod.ru
|
|
|
|
Сообщений в этой теме
Tpeck Как уменьшить время распространения сигнала (route)? Jan 22 2018, 11:26 svedach Может организовать дополнительные регистры на вход... Jan 22 2018, 11:56 Tpeck Цитата(svedach @ Jan 22 2018, 14:56) Може... Jan 22 2018, 12:09 bogaev_roman Цитата(Tpeck @ Jan 22 2018, 14:26) Доброг... Jan 22 2018, 12:28 Tpeck Цитата(bogaev_roman @ Jan 22 2018, 15:28)... Jan 22 2018, 12:37  alexadmin Цитата(Tpeck @ Jan 22 2018, 15:37) Не вып... Jan 22 2018, 12:55   Tpeck Цитата(alexadmin @ Jan 22 2018, 15:55) Ес... Jan 22 2018, 13:09  bogaev_roman Цитата(Tpeck @ Jan 22 2018, 15:37) Я бы х... Jan 22 2018, 13:20  starley Цитата(Tpeck @ Jan 22 2018, 15:37) Увелич... Jan 24 2018, 16:02   Tpeck Цитата(starley @ Jan 24 2018, 19:02) В AS... Jan 24 2018, 16:19    RobFPGA Приветствую!
Цитата(Tpeck @ Jan 24 2018,... Jan 24 2018, 16:36    TRILLER Цитата(Tpeck @ Jan 22 2018, 16:36) А по-к... Jan 22 2018, 13:41     Tpeck Цитата(TRILLER @ Jan 22 2018, 16:41) Как ... Jan 22 2018, 13:53         Tpeck Цитата(iosifk @ Jan 24 2018, 12:00) А есл... Jan 24 2018, 09:20          blackfin Цитата(Tpeck @ Jan 24 2018, 12:20) Исполь... Jan 24 2018, 09:24           Tpeck Цитата(blackfin @ Jan 24 2018, 12:24) А с... Jan 24 2018, 09:26            blackfin Цитата(Tpeck @ Jan 24 2018, 12:26) нет
А... Jan 24 2018, 09:34             Tpeck Цитата(blackfin @ Jan 24 2018, 12:34) Не ... Jan 24 2018, 09:39           Tpeck Цитата(blackfin @ Jan 24 2018, 12:24) Xil... Jan 24 2018, 09:52            blackfin Цитата(Tpeck @ Jan 24 2018, 12:47) Это-то... Jan 24 2018, 09:53        blackfin Цитата(Tpeck @ Jan 24 2018, 11:51) Пробле... Jan 24 2018, 09:43  TRILLER Цитата(Tpeck @ Jan 22 2018, 16:22) Вопрос... Jan 22 2018, 13:29 RobFPGA Приветствую!
Увы - алгоритм P&R ISE стра... Jan 24 2018, 10:15 svedach ТС. А как у Вас расположены входы и выходы проекта... Jan 24 2018, 17:57
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|