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

 
 
 
Reply to this topicStart new topic
> Проект EDK 14.2 c CAN не проходит PAR из-за проблем с CLK, Xilinx Spartan3
aabmail
сообщение Dec 14 2013, 12:50
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 210
Регистрация: 4-06-08
Из: Москва
Пользователь №: 38 056



Здравствуйте, уважаемые форумчане!

Создал проект EDK 14.2 на SPARTAN3A-DSP. В проекте есть Microblaze, DDR, TEMAC, IIC, SPI. Все было ОК.
Начал добавлять CAN. Ему нужен отдельный CLK. Выставил=12.5МГц, исходя из требуемой скорости обмена по CAN. Дополнительный CLK добавил в clock_generator. PAR выдает ошибку:
Код
[Place 1012] A clock IOB / DCM component pair have been found that are not placed at an optimal clock IOB / DCM site pair.  The clock component <clock_generator_0/clock_generator_0/DCM1_INST/Using_Virtex.DCM_INST/DCM_SP> is placed at site <DCM_X2Y3>.  The clock IO/DCM site can be paired if they are placed/locked in the same quadrant.  The IO component <sys_clk_pin> is placed at site <G13>.  This will not allow the use of the fast path between the IO and the Clock buffer. If this sub optimal condition is acceptable for this design, you may use the CLOCK_DEDICATED_ROUTE constraint in the .ucf file to demote this message to a WARNING and allow your design to continue. However, the use of this override is highly discouraged as it may lead to very poor timing results. It is recommended that this error condition be corrected in the design. A list of all the COMP.PINs used in this clock placement rule is listed below. These examples can be used directly in the .ucf file to override this clock rule.
< NET "sys_clk_pin" CLOCK_DEDICATED_ROUTE = FALSE; >
< PIN "clock_generator_0/clock_generator_0/DCM1_INST/Using_Virtex.DCM_INST/DCM_SP.CLKIN" CLOCK_DEDICATED_ROUTE = FALSE; >


После CLOCK_DEDICATED_ROUTE = FALSE все, конечно, заработало, но душа не лежит.

Подскажите, можно ли обойтись без CLOCK_DEDICATED_ROUTE.

Заранее благодарен!
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Dec 14 2013, 15:49
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



А вы клок через ножку подали?
у ПЛИС есть ножки на которые можно подавать клок, клоковые, а есть не клоковые, они далеки от специальных путей распространения клока. И как я понимаю не гарантируют доставку клока с минимальными задержками во все края ПЛИС. Отсюда получается что если у вас на этой ноге много модулей, то их трудно по всей ПЛИС раскидать чтобы сохранить между ними синхронность, а если один, то возможно это не очень страшно...

А в спартане 3 разве нет ПЛЛ блоков, чтобы внутри нужный клок сформировать?

DCM модуль есть, входной основной клок на микроблайз у вас не 50 МГц? так чего бы его не поделить на 4 и не получить те же 12.5?
Go to the top of the page
 
+Quote Post
aabmail
сообщение Dec 14 2013, 16:54
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 210
Регистрация: 4-06-08
Из: Москва
Пользователь №: 38 056



Спасибо за ответ.

Цитата(Golikov A. @ Dec 14 2013, 19:49) *
А вы клок через ножку подали?
Подал через клоковую ножку. Если бы подал не через клоковую, то оно бы и до добавления CAN требовало бы CLOCK_DEDICATED_ROUTE=FALSE. )))
у ПЛИС есть ножки на которые можно подавать клок, клоковые, а есть не клоковые, они далеки от специальных путей распространения клока. И как я понимаю не гарантируют доставку клока с минимальными задержками во все края ПЛИС. Отсюда получается что если у вас на этой ноге много модулей, то их трудно по всей ПЛИС раскидать чтобы сохранить между ними синхронность, а если один, то возможно это не очень страшно...


А в спартане 3 разве нет ПЛЛ блоков, чтобы внутри нужный клок сформировать?

DCM модуль есть, входной основной клок на микроблайз у вас не 50 МГц? так чего бы его не поделить на 4 и не получить те же 12.5?


Да. В Спартане нет ПЛЛ.
На блейз у меня приходит 50 МГц.


А как грамотно 50МГц на 4 поделить? clock_generator почему-то с этой задачей не справился.
(Что еще интересно, эта проблема появилась в версии EDK14.2, а в 12.3 там все "проскакивало".)


Сообщение отредактировал aabmail - Dec 14 2013, 16:58
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Dec 14 2013, 19:38
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



в спартане 6 есть ПЛЛ

в спартане 3 точно есть блоки DCM - дигитал колк манагеры.
на него заведите клок, а с него выведите деленный на 4.

или просто тупо счетчиком от основного клока.

странно что клок генератор не справился, вроде бы он мог такое.

про ЕДК, вероятно добавили анализ этой ситуации...
Go to the top of the page
 
+Quote Post
aabmail
сообщение Dec 16 2013, 18:36
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 210
Регистрация: 4-06-08
Из: Москва
Пользователь №: 38 056



Спасибо. Кажется, разобрался.
Его оказывается не устраивает то, что внешний sys_clk заведен на два DCM, находящиеся на противоположных сторонах ПЛИС. В общем, добавил в EDK отдельный DCM. На вход нового DCM завел clk с выхода clock_generator (которые на самом деле тоже DCM). По крайней мере все развелось, проверю в железе в субботу.

Цитата(Golikov A. @ Dec 14 2013, 23:38) *
в спартане 6 есть ПЛЛ

в спартане 3 точно есть блоки DCM - дигитал колк манагеры.
на него заведите клок, а с него выведите деленный на 4.

или просто тупо счетчиком от основного клока.

странно что клок генератор не справился, вроде бы он мог такое.

про ЕДК, вероятно добавили анализ этой ситуации...

Go to the top of the page
 
+Quote Post

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

 


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


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