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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Как уменьшить время распространения сигнала (route)?, Virtex6, xc6vlx240, Ise14.7, LDPC DVBS2
bogaev_roman
сообщение Jan 22 2018, 14:00
Сообщение #16


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

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(Tpeck @ Jan 22 2018, 16:36) *
Тут системная проблема и длинный путь - это следствие.

Судя по описанию, это проблема не кривой разводки и решается она до парсера, на уровне описания алгоритма путем изменения логики и, как было выше описано, добавлением регистров. Вы можете попробовать все банки прибить гвоздями, но без четкого понимания того, каким образом Ваш алгоритм должен лечь на ПЛИС (архитектурно) это приведет только к ухудшения времянки и дополнительному времени разводки.
Цитата
Лично я считаю хорошим тоном приколотить ВСЮ блочную память гвоздями. Несколько сотен штук - не так и много. Зато экономит кучу времени в дальнейшем. И САПРине сильно легчает.

А что если вся эта память управляется из одного места и имеет стыки с интерфейсами типа ethernet или DDR3,которые уже жестко сидят - куда ее прибивать? Нам ТС ничего не поведал об алгоритме.
Go to the top of the page
 
+Quote Post
Tpeck
сообщение Jan 22 2018, 14:06
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 14-03-06
Пользователь №: 15 243



Цитата(bogaev_roman @ Jan 22 2018, 17:00) *
Судя по описанию, это проблема не кривой разводки и решается она до парсера, на уровне описания алгоритма путем изменения логики и, как было выше описано, добавлением регистров. Вы можете попробовать все банки прибить гвоздями, но без четкого понимания того, каким образом Ваш алгоритм должен лечь на ПЛИС (архитектурно) это приведет только к ухудшения времянки и дополнительному времени разводки.

А что если вся эта память управляется из одного места и имеет стыки с интерфейсами типа ethernet или DDR3,которые уже жестко сидят - куда ее прибивать? Нам ТС ничего не поведал об алгоритме.


Топикстартер ничего не понимает в том о чем он пишет biggrin.gif
Информация принята.
Алгоритм приведен в описание темы.
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Jan 22 2018, 14:34
Сообщение #18


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

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(Tpeck @ Jan 22 2018, 17:06) *
Топикстартер ничего не понимает в том о чем он пишет biggrin.gif
Информация принята.
Алгоритм приведен в описание темы.

Возможно, я неправильно выразился - отсутствует структурная схема, конкретно проблемный кусок.
Цитата
Есть дизайн c LDPC DVBS2
с точки зрения реализации в итоговой RTL схеме может варьироваться. Обычная линия задержки может иметь несколько вариантов реализации, не зная реализацию, сложно чем-то помочь.
Go to the top of the page
 
+Quote Post
Tpeck
сообщение Jan 24 2018, 08:51
Сообщение #19


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 14-03-06
Пользователь №: 15 243



Цитата(bogaev_roman @ Jan 22 2018, 17:34) *
Возможно, я неправильно выразился - отсутствует структурная схема, конкретно проблемный кусок.

Тут не в куске проблема. С проблемным куском я и сам бы разобрался sm.gif
C fan-out глобальных проблем нет.
Структурная схема - Память, сдвигатель, обработчик.
Проблема в том, как вежливо объяснить мапперу, что не надо память равномерно по всему кристаллу раскидывать.
Память размести компактней, сдвигатель поставь после неё, а обработчик поставь после сдвигателя и перед памятью.
А так память раскидал по всему кристаллу и между кристаллами начинает распихивать, сдвигатель, обработчик.
Там становится тесно и бах 90 % времни тратиться на распространение сигнала с fanout 2 .....
PS Белый цвет - это блоки памяти.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
iosifk
сообщение Jan 24 2018, 09:00
Сообщение #20


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Tpeck @ Jan 24 2018, 11:51) *
Тут не в куске проблема. С проблемным куском я и сам бы разобрался sm.gif
C fan-out глобальных проблем нет.
Структурная схема - Память, сдвигатель, обработчик.
Проблема в том, как вежливо объяснить мапперу, что не надо память равномерно по всему кристаллу раскидывать.
Память размести компактней, сдвигатель поставь после неё, а обработчик поставь после сдвигателя и перед памятью.

А если память взять как инстанс из библиотеки - RAMB32 и т.д. А сдвигатель как SRL32...
И память составлять из кусков не по "адресам", а по "данным"... Тогда не понадобится мультиплексор шины данных от разных кусков памяти....


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Tpeck
сообщение Jan 24 2018, 09:20
Сообщение #21


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 14-03-06
Пользователь №: 15 243



Цитата(iosifk @ Jan 24 2018, 12:00) *
А если память взять как инстанс из библиотеки - RAMB32 и т.д. А сдвигатель как SRL32...
И память составлять из кусков не по "адресам", а по "данным"... Тогда не понадобится мультиплексор шины данных от разных кусков памяти....

Память и так используется как инстанс.
Используется циклический сдвигатель. Известный как barrel shifter.
Как его сделать на SRL32 не знаю и даже не уверен, что можно.


Go to the top of the page
 
+Quote Post
blackfin
сообщение Jan 24 2018, 09:24
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 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/
Go to the top of the page
 
+Quote Post
Tpeck
сообщение Jan 24 2018, 09:26
Сообщение #23


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 14-03-06
Пользователь №: 15 243



Цитата(blackfin @ Jan 24 2018, 12:24) *
А сигнал сброса в этом сдвигателе используется?

нет sm.gif
А нужно?
Go to the top of the page
 
+Quote Post
blackfin
сообщение Jan 24 2018, 09:34
Сообщение #24


Гуру
******

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



Цитата(Tpeck @ Jan 24 2018, 12:26) *
нет sm.gif
А нужно?

Не нужно.. biggrin.gif
Go to the top of the page
 
+Quote Post
Tpeck
сообщение Jan 24 2018, 09:39
Сообщение #25


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 14-03-06
Пользователь №: 15 243



Цитата(blackfin @ Jan 24 2018, 12:34) *
Не нужно.. biggrin.gif

Отлегло disco.gif
Go to the top of the page
 
+Quote Post
blackfin
сообщение Jan 24 2018, 09:43
Сообщение #26


Гуру
******

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



Цитата(Tpeck @ Jan 24 2018, 11:51) *
Проблема в том, как вежливо объяснить мапперу, что не надо память равномерно по всему кристаллу раскидывать.
Память размести компактней, сдвигатель поставь после неё, а обработчик поставь после сдвигателя и перед памятью.

Использовать Pblocks?
Go to the top of the page
 
+Quote Post
Tpeck
сообщение Jan 24 2018, 09:52
Сообщение #27


Местный
***

Группа: Свой
Сообщений: 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) *
Использовать Pblocks?

Ключевое слово - вежливо sm.gif
Ведь у проекта будет еще верхний уровень, а у него своя логика и память будет.
А вообще использовал.
Но пока получалось только хуже.
Там получается адовая шина данных и не понятно, что с этим делать.
Go to the top of the page
 
+Quote Post
blackfin
сообщение Jan 24 2018, 09:53
Сообщение #28


Гуру
******

Группа: Свой
Сообщений: 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.. Пардон.. wink.gif
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Jan 24 2018, 10:15
Сообщение #29


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

Группа: Свой
Сообщений: 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.
Go to the top of the page
 
+Quote Post
starley
сообщение Jan 24 2018, 16:02
Сообщение #30


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

Группа: Свой
Сообщений: 195
Регистрация: 9-01-09
Из: Москва
Пользователь №: 43 085



Цитата(Tpeck @ Jan 22 2018, 15:37) *
Увеличение количества триггеров приведет к резкому увеличению используемых ресурсов.

В ASIC - да, а в ПЛИСе они и так есть, поэтому какой смысл их экономить? Если LUT уже задействован, то триггер под другие сигналы особо уже не используешь, поэтому отказываться от них из экономии в большинстве случаев неразумно. На выходах памяти, предполагающей длинные линии, я обычно ставлю регистры, как раз чтобы потом херней с ее приколачиванием не страдать.Если частоты уж совсем большие, тогда, конечно, только флорпленить остается.
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 Текстовая версия Сейчас: 9th July 2025 - 10:21
Рейтинг@Mail.ru


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