Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проект EDK 14.2 c CAN не проходит PAR из-за проблем с CLK
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
aabmail
Здравствуйте, уважаемые форумчане!

Создал проект 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.

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

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

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

Цитата(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 там все "проскакивало".)
Golikov A.
в спартане 6 есть ПЛЛ

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

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

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

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

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

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

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

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

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

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.