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

|
Цитата(iosifk @ Jan 24 2018, 12:00)  А если память взять как инстанс из библиотеки - RAMB32 и т.д. А сдвигатель как SRL32... И память составлять из кусков не по "адресам", а по "данным"... Тогда не понадобится мультиплексор шины данных от разных кусков памяти.... Память и так используется как инстанс. Используется циклический сдвигатель. Известный как barrel shifter. Как его сделать на SRL32 не знаю и даже не уверен, что можно.
|
|
|
|
|
Jan 24 2018, 09:24
|
Гуру
     
Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261

|
Цитата(Tpeck @ Jan 24 2018, 12:20)  Используется циклический сдвигатель. Известный как barrel shifter. Как его сделать на SRL32 не знаю и даже не уверен, что можно. А сигнал сброса в этом сдвигателе используется? Xilinx, ug474_7Series_CLB, page 45: Цитата Control Signals • Use control signals only as necessary. • Avoid using a routed global reset signal and minimize use of local resets to maximize opportunity to use FPGA resources. • Use active-High control signals. • Avoid having both set and reset on the same flip-flop. • Avoid control signals on small shift registers and storage arrays in order to use LUTs instead of flip-flops, to maximize utilization and minimize power. То есть, если у регистра сдвига явно прописан сигнал сброса, то синтезатор не сможет имплементировать этот регистр в примитиве "SLICEM SRL Shift Register" и сделает все на FFs. /См. UG474, page 50/
|
|
|
|
|
Jan 24 2018, 09:26
|
Местный
  
Группа: Свой
Сообщений: 307
Регистрация: 14-03-06
Пользователь №: 15 243

|
Цитата(blackfin @ Jan 24 2018, 12:24)  А сигнал сброса в этом сдвигателе используется? нет  А нужно?
|
|
|
|
|
Jan 24 2018, 09:52
|
Местный
  
Группа: Свой
Сообщений: 307
Регистрация: 14-03-06
Пользователь №: 15 243

|
Цитата(blackfin @ Jan 24 2018, 12:24)  Xilinx, ug474_7Series_CLB, page 45: То есть, если у регистра сдвига явно прописан сигнал сброса, то синтезатор не сможет имплементировать этот регистр в примитиве "SLICEM SRL Shift Register" и сделает все на FFs. /См. UG474, page 50/ Это-то понятно, но только как с помощью SRL реализовать циклический сдвиг 360-ти 8-битных слов? Да еще и с произвольным шагом. Может быть укажите где на это можно посмотреть? Цитата(blackfin @ Jan 24 2018, 12:43)  Ключевое слово - вежливо  Ведь у проекта будет еще верхний уровень, а у него своя логика и память будет. А вообще использовал. Но пока получалось только хуже. Там получается адовая шина данных и не понятно, что с этим делать.
|
|
|
|
|
Jan 24 2018, 09:53
|
Гуру
     
Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261

|
Цитата(Tpeck @ Jan 24 2018, 12:47)  Это-то понятно, но только как с помощью SRL реализовать циклический сдвиг 360-ти 8-битных слов? Да еще и с произвольным шагом. Может быть укажите где на это можно посмотреть? Может быть, поможет вот это: Цитата Define sets of design elements with U Set (U_SET) or HU Set (HU_SET) constraints. • Each element of the set is placed in relation to the other elements of the set by Relative Location (RLOC) constraints. • Logic elements with RLOC constraints and common set names are associated in an RPM. U_SET, HU_SET, and RLOC constraints: • Must be defined as properties in the HDL design files. • Are not supported in Xilinx® Design Constraints format (XDC). См., UG903 (v2017.4) стр. 156. И вот ещё: Цитата RLOC Relative Location (RLOC) constraints define the relative placement of logic elements assigned to a set, such as an H_SET, HU_SET, or U_SET. When RLOC is present in the RTL source files, the H_SET, HU_SET, or U_SET properties get translated into a read-only RPM property on cells in the synthesized netlist. The RLOC property is preserved, but becomes a read-only property after synthesis. For more information on using these properties, and defining RPMs, refer to the Vivado Design Suite User Guide: Using Constraints (UG903) [Ref 19].
You can define the placement of any element within the set relative to other elements in the set, regardless of the eventual placement of the entire group onto the target device. For example, if RLOC constraints are applied to a group of eight flip-flops organized in a column, the mapper maintains the column and moves the entire group of flip-flops as a single unit. См, UG912 (v2017.4), стр 307. И пример для сдвигателя: Цитата The following Verilog module defines RLOC and HU_SET properties for the shift register Flops in the module. См, UG912 (v2017.4), стр.207. PS: Цитата About Relatively Placed Macros A Relatively Placed Macro (RPM) is a list of basic logic elements (BELs) grouped into a set. Examples of logic elements include: • FF • LUT • DSP • RAM RPMs are primarily used to place small groups of logic close together in order to improve resource efficiency and enable faster interconnections. См, UG903 (v2017.4), стр 156. Упс.. Только сейчас заметил, что вся тема про ISE.. Пардон..
|
|
|
|
|
Jan 24 2018, 10:15
|
Профессионал
    
Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643

|
Приветствую! Увы - алгоритм P&R ISE страдает "размазыванием" логики и BRAM в частности по всему кристаллу. Поэтому сначала нужно зафиксить эту память используя AREA_GROUP. Необязательно каждый BRAM отдельно - достаточно назначить регион достаточного размера для соответствующих функциональных блоков памяти. Типа такого: Код INST "inst_top/inst_1/inst_name" AREA_GROUP = "AG_inst_name"; #AREA_GROUP "AG_inst_name" RANGE = SLICE_X0Y60:SLICE_X23Y99; AREA_GROUP "AG_inst_name" RANGE = RAMB18_X0Y24:RAMB18_X1Y39; AREA_GROUP "AG_inst_name" RANGE = RAMB36_X0Y12:RAMB36_X1Y19, RAMB36_X2Y12:RAMB36_X2Y19; Обычно за 2-3 итерации P&R находится стабильная конфигурация. Заодно такой дизайн "гвоздями" обычно сокращает (и значительно) время сборки для больших проектов. Удачи! Rob.
|
|
|
|
|
Jan 24 2018, 16:02
|
Частый гость
 
Группа: Свой
Сообщений: 195
Регистрация: 9-01-09
Из: Москва
Пользователь №: 43 085

|
Цитата(Tpeck @ Jan 22 2018, 15:37)  Увеличение количества триггеров приведет к резкому увеличению используемых ресурсов. В ASIC - да, а в ПЛИСе они и так есть, поэтому какой смысл их экономить? Если LUT уже задействован, то триггер под другие сигналы особо уже не используешь, поэтому отказываться от них из экономии в большинстве случаев неразумно. На выходах памяти, предполагающей длинные линии, я обычно ставлю регистры, как раз чтобы потом херней с ее приколачиванием не страдать.Если частоты уж совсем большие, тогда, конечно, только флорпленить остается.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|