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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Как согласовать два клоковых региона в ПЛИС
Alexsandr000
сообщение Mar 4 2014, 11:39
Сообщение #1


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

Группа: Участник
Сообщений: 97
Регистрация: 23-10-12
Пользователь №: 74 054



Уважаемые форумчане!

Есть ПЛИС Spartan - 6, в проекте возникла ошибка:
Код
Place:1355 - Component < MDO/MCD/blk00003926 > is driven by DCM or PLL
   component < MCM/pll_base_inst/PLL_ADV > placed at < PLL_ADV_X0Y2 >. This
   requires the load component to be range constrained to CLOCKREGION_X0Y5 or
   CLOCKREGION_X1Y5. Placer was not able to apply this range constraint because
   component < MDO/MCD/blk00003926 > has a LOC constraint or area group in a
   different clock region. Please check whether the user constraints and remove
   any conflicting LOCs or area groups. Note that the loads of a DCM/PLL must be
   constrained to the two adjacent clock regions to the DCM/PLL. Using DCM/PLL
   clocks to drive clock pins directly is not a recommended practice. Using a
   BUFG will give more flexibility to the placer and produce superior placement
   results.


Я так понимаю, что надо согласовать клоковые регионы, однако я пока не понимаю как=)))


--------------------
Go to the top of the page
 
+Quote Post
o_khavin
сообщение Mar 4 2014, 11:50
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 230
Регистрация: 29-08-09
Пользователь №: 52 094



Цитата(Alexsandr000 @ Mar 4 2014, 15:39) *
Я так понимаю, что надо согласовать клоковые регионы, однако я пока не понимаю как=)))

Не совсем так. Нужно разместить компоненты. которые висят на некоем клоковом дереве, в пределах достижимости этого дерева. Для этого есть разнообразные placement constraints.
Альтернативным вариантом является вывод клока на глобальное дерево путём использования компонента bufg после выхода PLL. Кстати, фраза "Using DCM/PLL clocks to drive clock pins directly is not a recommended practice. Using a BUFG will give more flexibility to the placer and produce superior placement results." как раз и намекает на вариант использования bufg. sm.gif

Сообщение отредактировал o_khavin - Mar 4 2014, 13:44
Go to the top of the page
 
+Quote Post
Alexsandr000
сообщение Mar 4 2014, 17:43
Сообщение #3


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

Группа: Участник
Сообщений: 97
Регистрация: 23-10-12
Пользователь №: 74 054



Цитата(o_khavin @ Mar 4 2014, 15:50) *
Не совсем так. Нужно разместить компоненты. которые висят на некоем клоковом дереве, в пределах достижимости этого дерева. Для этого есть разнообразные placement constraints.
Альтернативным вариантом является вывод клока на глобальное дерево путём использования компонента bufg после выхода PLL. Кстати, фраза "Using DCM/PLL clocks to drive clock pins directly is not a recommended practice. Using a BUFG will give more flexibility to the placer and produce superior placement results." как раз и намекает на вариант использования bufg. sm.gif

Блин, у меня трое клоков, один через фифо на основной клок идет, а третий клок это лань. Вот и как понять какой клок надо через этот буфер пустить))))


--------------------
Go to the top of the page
 
+Quote Post
o_khavin
сообщение Mar 4 2014, 17:52
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 230
Регистрация: 29-08-09
Пользователь №: 52 094



Цитата(Alexsandr000 @ Mar 4 2014, 21:43) *
Блин, у меня трое клоков, один через фифо на основной клок идет, а третий клок это лань. Вот и как понять какой клок надо через этот буфер пустить))))

Половину слов не понял, но имеет смысл пропускать через bufg все клоки в дизайне, если этих bufg хватает. Для клоков, которые используются для i/o имеет смысл покурить UG на предмет окна защёлкивания данных.
Go to the top of the page
 
+Quote Post
Dmitriyspb
сообщение Mar 5 2014, 06:28
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 397
Регистрация: 21-11-12
Из: Россия г. Санкт-Петербург
Пользователь №: 74 498



Цитата(o_khavin @ Mar 4 2014, 21:52) *
Половину слов не понял, но имеет смысл пропускать через bufg все клоки в дизайне, если этих bufg хватает. Для клоков, которые используются для i/o имеет смысл покурить UG на предмет окна защёлкивания данных.


Поддерживаю. В Spartane6 глобальных буферов более 10-ти (если я не ошибаюсь). Поэтому 100 % нужно все тактовые линии сделать глобальными. А откуда у вас в проекте берутся 3 значения тактовой частоты? Все частоты внешние?


--------------------
Победа - это когда N раз упал и N+1 раз встал.
Go to the top of the page
 
+Quote Post
Alexsandr000
сообщение Mar 5 2014, 13:27
Сообщение #6


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

Группа: Участник
Сообщений: 97
Регистрация: 23-10-12
Пользователь №: 74 054



Цитата(Dmitriyspb @ Mar 5 2014, 10:28) *
Поддерживаю. В Spartane6 глобальных буферов более 10-ти (если я не ошибаюсь). Поэтому 100 % нужно все тактовые линии сделать глобальными. А откуда у вас в проекте берутся 3 значения тактовой частоты? Все частоты внешние?

1. АЦП
2. собственный кварц
3. Ethernet


--------------------
Go to the top of the page
 
+Quote Post
Maverick
сообщение Mar 5 2014, 13:53
Сообщение #7


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

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



Цитата(Alexsandr000 @ Mar 5 2014, 15:27) *
1. АЦП
2. собственный кварц
3. Ethernet

Мне например не понятна структура Вашего проекта...
Делаете три схемы работающих на трех частотах - прием данных с АЦП, обработка данных, прием/передача данных/команд по Ethernet. Данные из схемы в схему передаете через двухклоковое фифо (в частном случае можно через флаги/симафоры готовности данных (пропущенных через синхронизирующую логику), если следующая схема работает на более высокой частоте), а сигналы упраления через синхронизирующую логику ...

Какой применяется АЦП? частота работы? Частота собственного кварца?
как формируете тактовую частоту для каждой из 3 схем?


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

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


Местный
***

Группа: Участник
Сообщений: 230
Регистрация: 29-08-09
Пользователь №: 52 094



Цитата(Alexsandr000 @ Mar 5 2014, 17:27) *
1. АЦП
2. собственный кварц
3. Ethernet

Не знаю, какой у вас проект. Но обычно похожие сообщения появляются тогда, когда мапер никак не может упаковать все элементы с одним клоком в пределах доступных локально клоковых регионов.
Для внутренней логики это происходит редко, т.к. она поддаётся перемещению... разве что её очень много и она не лезет.
Чаще всего это происходит для элементов с предопределённым расположением, типа i/o cell-ов. Их переместить невозможно, что и приводит к вышеописанной проблеме.
Так что выводите все клоки из PLL-и через bufg и не парьтесь. Только почитайте документацию на предмет правильного тайминга на i/o в случае использования bufg.
Go to the top of the page
 
+Quote Post
Dmitriyspb
сообщение Mar 6 2014, 05:55
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 397
Регистрация: 21-11-12
Из: Россия г. Санкт-Петербург
Пользователь №: 74 498



Цитата(Alexsandr000 @ Mar 5 2014, 17:27) *
1. АЦП
2. собственный кварц
3. Ethernet


Я предполагаю, что у вас не КВАРЦ, а термостатированный кварцевый генератор. Я обращаю на это внимание, так как прозвучало и не раз предложение об использовании PLL (Кстати, в Спартане 6 нет привычного нам PLL, там есть DCM, который включает в себя PLL ). При использовании PLL (или DCM) в проекте необходимо учитывать джиттер входного опорного генератора. Т.е. если у вас на входе не стабильная частота, тогда PLL никогда не защелкнет опорную частоту и как следствие не выдаст ее в проект (Не будет тактового сигнала). Но при использовании PLL (или DCM) появляется удобная штука-))) LOCK входного сигнала. Этот сигнал можно и нужно использовать для супервизоров и т.д. и т.п. В общем повышает стабильность работы устройства.
А если у вас все же схемка генератора на рассыпухе с применением кварцевого резонатора, ТОГДА я не рекомендую использовать PLL (DCM), т.к. джиттер высок и вообще опорный генератор лишен какой либо стабильности. В ЭТОМ СЛУЧАЕ просто входной пин с тактами используете в проекте только bufg. Т.о. вы вносите минимальные задержки на распространение тактов внутри кристалла и проект работает максимально синхронно .

Вообще самый верный способ - это из опорной частоты получить такты для Ethernet и АЦП. Но тут опять же нужен стабильный опорный генератор, чтобы поделить опорную частоту используя DCM.

Кстати, надеюсь топология вашей печатной платы учитывает, то что тактовый сигнал должен быть заведен на пин, который имеет глобальный статус (GCLK). Если для вас это новость, тогда советую подробно изучить возможные статусы выводов ПЛИС Xilinx. Этот вопрос так же очень важен.

В итоге отмечу, что в вашей задаче решение комплексное. Иначе ваше устройство будет работать НЕ СТАБИЛЬНО.


--------------------
Победа - это когда N раз упал и N+1 раз встал.
Go to the top of the page
 
+Quote Post
olegras
сообщение Mar 6 2014, 13:20
Сообщение #10


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

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



Цитата(Dmitriyspb @ Mar 6 2014, 10:55) *
Кстати, в Спартане 6 нет привычного нам PLL, там есть DCM, который включает в себя PLL


Не совсем верно. UG382: "The Spartan-6 FPGA Clock Management Tiles (CMTs) provide very flexible, high-performance clocking.
The Spartan-6 FPGA CMT blocks (Figure 2-1) are located in the center column along the vertical global clock tree. Each CMT block contains two DCMs
and one PLL". То есть физически в S6 есть и DCM и PLL. Раздельно.

Цитата(Dmitriyspb @ Mar 6 2014, 10:55) *
Вообще самый верный способ - это из опорной частоты получить такты для Ethernet и АЦП. Но тут опять же нужен стабильный опорный генератор, чтобы поделить опорную частоту используя DCM.

Насчет Ethernet - если например речь идет о внешнем PHY с интерфейсом MII - PHY сам дает клоки как для передачи, так и для приема. Зачем их еще на что-то делить? Их надо подавать на вход ПЛИС и непосредственно использовать.

Совет ТС: обязательно пропустите все клоки через BUFG (в случае PLL - его выход). Когда я работал на ISE 10.х - он сам делал это автоматом (включая выходы DCM). 14-й почемуто не хочет, приходится подключать все BUFG вручную.
Go to the top of the page
 
+Quote Post
gibson1980
сообщение Mar 6 2014, 15:06
Сообщение #11


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

Группа: Свой
Сообщений: 116
Регистрация: 13-12-12
Пользователь №: 74 831



Цитата(olegras @ Mar 6 2014, 21:20) *
Совет ТС: обязательно пропустите все клоки через BUFG (в случае PLL - его выход). Когда я работал на ISE 10.х - он сам делал это автоматом (включая выходы DCM). 14-й почемуто не хочет, приходится подключать все BUFG вручную.

А это разве не автоматом? sm.gif
Прикрепленное изображение


--------------------
Go to the top of the page
 
+Quote Post
olegras
сообщение Mar 6 2014, 15:29
Сообщение #12


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

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



Цитата(gibson1980 @ Mar 6 2014, 20:06) *
А это разве не автоматом? sm.gif

Это что результат визарда?
Я имел ввиду когда подключаю например PLL_BASE (для S6) как компонент в коде, синтезатор его выходы не подключает к буферам, синтез репорт выдает варнинги. Приходится подключать вручную (с DCM не пробовал, не было необходимости). А в 10.х помню выходы DCM (для S3, S3E) автоматически пропускались через буферы, это можно было видеть в репорте. Может мне надо в настройках покопаться... Хотя меня ручное подключение BUFG не напрягает sm.gif
Go to the top of the page
 
+Quote Post
Dmitriyspb
сообщение Mar 7 2014, 06:19
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 397
Регистрация: 21-11-12
Из: Россия г. Санкт-Петербург
Пользователь №: 74 498



Цитата(olegras @ Mar 6 2014, 17:20) *
Не совсем верно. UG382: "The Spartan-6 FPGA Clock Management Tiles (CMTs) provide very flexible, high-performance clocking.
The Spartan-6 FPGA CMT blocks (Figure 2-1) are located in the center column along the vertical global clock tree. Each CMT block contains two DCMs
and one PLL". То есть физически в S6 есть и DCM и PLL. Раздельно.


Насчет Ethernet - если например речь идет о внешнем PHY с интерфейсом MII - PHY сам дает клоки как для передачи, так и для приема. Зачем их еще на что-то делить? Их надо подавать на вход ПЛИС и непосредственно использовать.

Совет ТС: обязательно пропустите все клоки через BUFG (в случае PLL - его выход). Когда я работал на ISE 10.х - он сам делал это автоматом (включая выходы DCM). 14-й почемуто не хочет, приходится подключать все BUFG вручную.


Возможно PLL так же есть, не буду спорить biggrin.gif Кстати, если это так тогда спасибо, буду иметь в виду.

А если серьезно, тогда что гадать поп поводу Ethernet.....?! Я изложил какие есть мысли на этот счет. Тут нужно, чтобы автор темы написал как оно действительно или bb-offtopic.gif Мы не телепаты 1111493779.gif
biggrin.gif


--------------------
Победа - это когда N раз упал и N+1 раз встал.
Go to the top of the page
 
+Quote Post
Alexsandr000
сообщение Mar 9 2014, 14:09
Сообщение #14


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

Группа: Участник
Сообщений: 97
Регистрация: 23-10-12
Пользователь №: 74 054



В принципе это первый такого рода проект, вообще такого рода проблема возникла после изменения логики с 1.8 на 3.3, до этого все било)


--------------------
Go to the top of the page
 
+Quote Post
olegras
сообщение Mar 10 2014, 04:35
Сообщение #15


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

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



Цитата(Alexsandr000 @ Mar 9 2014, 19:09) *
В принципе это первый такого рода проект, вообще такого рода проблема возникла после изменения логики с 1.8 на 3.3, до этого все било)

Так-так, вот отсюда поподробнее пожалуйста. Было то-то, решили сделать так-то, сделали то-то, стало то-то...
Хочется понять связь между топиком (проблема в клоковых регионах) и изменением логики (с 1.8 на 3.3).

Сообщение отредактировал olegras - Mar 10 2014, 04:48
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 29th June 2025 - 01:46
Рейтинг@Mail.ru


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