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

 
 
> Как согласовать два клоковых региона в ПЛИС
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
 
Start new topic
Ответов
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
Dmitriyspb
сообщение Mar 6 2014, 05:55
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 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
Сообщение #8


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

Группа: Участник
Сообщений: 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
Сообщение #9


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

Группа: Свой
Сообщений: 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

Сообщений в этой теме
- Alexsandr000   Как согласовать два клоковых региона в ПЛИС   Mar 4 2014, 11:39
|- - Maverick   Цитата(Alexsandr000 @ Mar 5 2014, 15:27) ...   Mar 5 2014, 13:53
|- - o_khavin   Цитата(Alexsandr000 @ Mar 5 2014, 17:27) ...   Mar 5 2014, 16:13
||- - olegras   Цитата(gibson1980 @ Mar 6 2014, 20:06) А ...   Mar 6 2014, 15:29
|- - Dmitriyspb   Цитата(olegras @ Mar 6 2014, 17:20) Не со...   Mar 7 2014, 06:19
- - Alexsandr000   В принципе это первый такого рода проект, вообще т...   Mar 9 2014, 14:09
|- - olegras   Цитата(Alexsandr000 @ Mar 9 2014, 19:09) ...   Mar 10 2014, 04:35
|- - Alexsandr000   Цитата(olegras @ Mar 10 2014, 08:35) Так-...   Mar 10 2014, 09:14
|- - olegras   Цитата(Alexsandr000 @ Mar 10 2014, 14:14)...   Mar 11 2014, 01:51
|- - Dmitriyspb   Цитата(Alexsandr000 @ Mar 10 2014, 13:14)...   Mar 11 2014, 07:23
- - Alexsandr000   Кодlibrary IEEE; use IEEE.STD_LOGIC_1164.ALL; libr...   Mar 12 2014, 03:03
- - Alexsandr000   Добавил BUFG вроде все заработало) Спасибо за подс...   Mar 12 2014, 05:14
- - olegras   Цитата(Alexsandr000 @ Mar 12 2014, 10:14)...   Mar 12 2014, 06:13
- - Alexsandr000   Цитата(olegras @ Mar 12 2014, 10:13) Позд...   Mar 12 2014, 07:03


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

 


RSS Текстовая версия Сейчас: 6th August 2025 - 21:04
Рейтинг@Mail.ru


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