Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Подать такты не на специализированную ногу
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Грендайзер
Здравствуйте. Собираю проект для EP3C120F780 в который входит ядро, для управления микросхемой 88E1111 написанное другим человеком. На ядро поступает несколько тактовых сигналов с разных источников. Один из этих сигналов ENET_RX_CLK 125МГц идущий с PHY поступает на pll где сдвигается на 90 градусов. Проект рисовали с одной из отладочных плат, но на плате данный сигнал выведен на ножку плис B14 которая является DIFFCLK_4p. В моём же случае сигнал идёт на ножку R4 являющуюся обычной пользовательской лапой. При компиляции квартус утверждает, что не можт развести проек, т.к.:
Error (176554): Can't place PLL "Eth_sys:Eth_sys_inst|Et_88E1111_0:the_Et_88E1111_0|Et_88E1111_v2:et_88e1111
_0|NET_IP_core:NET_IP_core_inst|RGMII_MAC:RGMII_MAC_inst|rx_pll_phase_shifter:rx_
pll_phase_shifter_inst|altpll:altpll_component|rx_pll_phase_shifter_altpll:auto_g
enerated|pll1" -- I/O pin eth_rx_clk (port type INCLK of the PLL) is assigned to a location which is not connected to port type INCLK of any PLL on the device".
Может ли кто подсказать решение данной проблемы? Заранее спасибо.
ViKo
Конечно. Переразвести плату, как положено. Сначала думать, потом проект в Quartus-е отлаживать, потом плату разводить.
Грендайзер
Цитата
Конечно. Переразвести плату, как положено.
Может что нибудь менее радикальное?
ViKo
Цитата(Грендайзер @ Jun 20 2016, 17:01) *
Может что нибудь менее радикальное?

Можно. Перерезать дорожки, перепаять проводами. Все равно это не окончательная версия платы.
Анекдот такой был. "Доктор, а можно без ампутации...? Можно. Вот этим мажьте... сам отвалится."
Грендайзер
Да там 2 микросхемы... и у обеих ножки под жёп... брюхом... дорожка в среднем слое...
Может попробовать выкинуть pll и сдвигатель фазы сделать на логике... Но конечно в плане стабильности будет не комельфо.
krux
Цитата
обеих ножки под жёп... брюхом... дорожка в среднем слое

расковыривайте переходнушки, паяйтесь к ним.

Цитата
сдвигатель фазы сделать на логике

Создать проблемы на свою голову, а потом с ними героически бороться - это так по-русски.
Научитесь признавать свои ошибки, и главное - делать из этого опыта правильные выводы. Если конечно не хотите и дальше прыгать по граблям.
заниматься извращениями внутри плисины не советую - пустая потеря времени.
dxp
QUOTE (Грендайзер @ Jun 20 2016, 20:28) *
Да там 2 микросхемы... и у обеих ножки под жёп... брюхом... дорожка в среднем слое...
Может попробовать выкинуть pll и сдвигатель фазы сделать на логике... Но конечно в плане стабильности будет не комельфо.

Это входной клок данных, там не просто сдвиг, там скорее всего PLL включено в режиме компенсации задержки клока (а сдвиг-то уже и и так на внешних сигналах есть - обеспечен источником сигнала) - Source-Synchronous Compensation Mode, т.ч. ничо там вручную не насдвигаете. Посмотрите, может какая-то из входных тактовых ног PLL выведена на переходку или доступна так или иначе для сопельного монтажа. Если нет, то либо переделывать плату, либо снимать ПЛИС, подводить к ламели проводок (процарапать канавку в плате, вклеить на БФ-2 туда тонкий проводок) и ставить обратно, но это уже ювелирство, хотя обычно удаётся достичь успеха. Для макета сгодится, а там исправите плату.
Грендайзер
Да, у самого из мыслей только проковырять слои... Вообщем спасибо всем за советы!
_Anatoliy
Проблема очень похожа на мою.
ссылка
Только вот у меня простой переразводкой не обойдётся,придётся переходить на более толстую плисину. Решил пока подождать плату и попробовать.
BSACPLD
Попробуйте довернуть клок не с помощью PLL, а с помощью ALTCLKCTRL настроенной в качестве глобального буфера.
В этом случае при прохождении клока через глобальный буфер будет получаться задержка порядка 1,2 нс, что должно быть вполне достаточно. Также задержки можно крутить и в 88E1111. Посмотрите в datasheet описание 20 регистра.
krux
Цитата(BSACPLD @ Jun 21 2016, 12:07) *
Попробуйте довернуть клок не с помощью PLL, а с помощью ALTCLKCTRL настроенной в качестве глобального буфера.
В этом случае при прохождении клока через глобальный буфер будет получаться задержка порядка 1,2 нс, что должно быть вполне достаточно. Также задержки можно крутить и в 88E1111. Посмотрите в datasheet описание 20 регистра.

если по совокупности, - то время, потраченное FPGA-инженером на обход косяка трассировки, будет стоит дороже, чем суммарная стоимость переразводки+изготовления платы.
_Anatoliy
Цитата(krux @ Jun 21 2016, 20:43) *
если по совокупности, - то время, потраченное FPGA-инженером на обход косяка трассировки, будет стоит дороже, чем суммарная стоимость переразводки+изготовления платы.

Даже в моём случае (+1Кбакс)?
AVR
Цитата(Грендайзер @ Jun 20 2016, 16:48) *
Может ли кто подсказать решение данной проблемы? Заранее спасибо.

У Вас есть плата (возможно отладочная покупная) на которой 88E1111 работает?
Признаться, у меня даже с правильно разведенной платой (заранее проверял в квартусе разводимость прежде чем схему делать) есть траблы с 88E1111, а если пытаться исправлять такую фатальную ошибку вроде клоков ПЛИС - то это однозначно переразводить.

Когда сделаете новую плату - будем вместе побеждать sm.gif
BSACPLD
Цитата(AVR @ Jun 21 2016, 22:35) *
а если пытаться исправлять такую фатальную ошибку вроде клоков ПЛИС - то это однозначно переразводить.

Отнюдь. Я работал с парой чужих плат где клоки были заведены на обычные пины. И я всегда обходился без PLL.
Доворачивал их с помощью задержек либо в ПЛИС, либо в самой микросхеме PHY. Главное было пропустить их через глобальный буфер и получить временной сдвиг в пределах 1,1-1,9нс.
_Anatoliy
Цитата(AVR @ Jun 21 2016, 21:35) *
а если пытаться исправлять такую фатальную ошибку вроде клоков ПЛИС - то это однозначно переразводить.

А Вы забыли что например, в шинах с DDR наоборот рекомендуется клок формировать как дополнительный разряд данных(обычными портами IO)? Это я к тому что в ответах присутствуют только намёки,что мол это не хорошо и нет ни одного конкретного ответа к каким последствиям это может привести.
eugen_pcad_ru
Перемычка между переходными отверстиями может помочь.
AVR
Цитата(_Anatoliy @ Jun 22 2016, 07:47) *
А Вы забыли что например, в шинах с DDR наоборот рекомендуется клок формировать как дополнительный разряд данных(обычными портами IO)? Это я к тому что в ответах присутствуют только намёки,что мол это не хорошо и нет ни одного конкретного ответа к каким последствиям это может привести.

Прошу прощения, не увидел что это на выход клок, не на вход... У меня тоже самодельная плата где клок на передачу 88E1111 выходит из ПЛИС не на специализированный выход, эх... Может у меня та же проблема как и у автора темы? Тогда мне тоже интересно как это победить. Может надо тоже как-то фазу доворачивать, осциллографом посмотреть. Но у меня есть возможность отогнуть лапку и подпаяться :P
_Anatoliy
Цитата(AVR @ Jun 22 2016, 10:15) *
Прошу прощения, не увидел что это на выход клок, не на вход... У меня тоже самодельная плата где клок на передачу 88E1111 выходит из ПЛИС не на специализированный выход, эх... Может у меня та же проблема как и у автора темы? Тогда мне тоже интересно как это победить. Может надо тоже как-то фазу доворачивать, осциллографом посмотреть. Но у меня есть возможность отогнуть лапку и подпаяться :P

У автора как раз вход "ENET_RX_CLK 125МГц идущий с PHY поступает на pll "
А DDR я для примера привёл,не гнушается народ клок передавать по обычным IO.
krux
Цитата(_Anatoliy @ Jun 21 2016, 21:12) *
Даже в моём случае (+1Кбакс)?

а вы думаете, что FPGA-инженеру обойти такой косяк выйдет быстрее 2х недель?
Timmy
Из описания не совсем понятно, сможет ли оно работать без PLL, но можно между ножкой и глобальным клоком поставить управляемую линию задержки на логике, параллельно завести клок в регистр, и, защёлкивая этот регистр тем же клоком, пропущенным через линию задержки и глобальный буфер, получится достаточно точно динамически подгонять фазу глобального клока. Параллельно создать ещё один глобальный клок, с дополнительной задержкой на логике(калиброванной или нет, в зависимости от уровня лени) на четверть периода. Такой DLL на LE:). Кстати, Хилые использовали подобную систему в MIG для Spartan3.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.