|
Как согласовать два клоковых региона в ПЛИС |
|
|
|
Mar 4 2014, 11:39
|
Частый гость
 
Группа: Участник
Сообщений: 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. Я так понимаю, что надо согласовать клоковые регионы, однако я пока не понимаю как=)))
--------------------
|
|
|
|
|
 |
Ответов
|
Mar 4 2014, 11:50
|
Местный
  
Группа: Участник
Сообщений: 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.
Сообщение отредактировал o_khavin - Mar 4 2014, 13:44
|
|
|
|
|
Mar 4 2014, 17:43
|
Частый гость
 
Группа: Участник
Сообщений: 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.  Блин, у меня трое клоков, один через фифо на основной клок идет, а третий клок это лань. Вот и как понять какой клок надо через этот буфер пустить))))
--------------------
|
|
|
|
|
Mar 4 2014, 17:52
|
Местный
  
Группа: Участник
Сообщений: 230
Регистрация: 29-08-09
Пользователь №: 52 094

|
Цитата(Alexsandr000 @ Mar 4 2014, 21:43)  Блин, у меня трое клоков, один через фифо на основной клок идет, а третий клок это лань. Вот и как понять какой клок надо через этот буфер пустить)))) Половину слов не понял, но имеет смысл пропускать через bufg все клоки в дизайне, если этих bufg хватает. Для клоков, которые используются для i/o имеет смысл покурить UG на предмет окна защёлкивания данных.
|
|
|
|
|
Mar 5 2014, 13:27
|
Частый гость
 
Группа: Участник
Сообщений: 97
Регистрация: 23-10-12
Пользователь №: 74 054

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

Местный
  
Группа: Свой
Сообщений: 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 раз встал.
|
|
|
|
|
Mar 6 2014, 13:20
|
Частый гость
 
Группа: Участник
Сообщений: 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 вручную.
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|