Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Можно подцепить вход pll на обычную ногу?
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
novartis
Развели печатную плату с Циклон 5 (Альтера). Кварц 50МГц подключили к "обычной" ноге (на картинке AB10). В проекте решили заиметь более высокую частоту с помощью pll. При подкючении входа pll к этой ноге квартус на этапе фиттеровщика выдает сообщение об ошибке:
Код
Error (175001): Could not place fractional PLL
    Info (175028): The fractional PLL name: PLL:inst12|PLL_0002:pll_inst|altera_pll:altera_pll_i|general[0].gpll~FRACTIONAL_PLL
    Error (177020): The PLL reference clock was not placed in a dedicated input pin that can reach the fractional PLL
        Info (175026): Source: pin clk50MHZ
            Info (175015): The I/O pad is constrained to the location PIN_AB10 due to: User Location Constraints (PIN_AB10)
        Info (175029): 8 locations affected
            Info (175029): FRACTIONALPLL_X0_Y1_N0
            Info (175029): FRACTIONALPLL_X0_Y22_N0
            Info (175029): FRACTIONALPLL_X0_Y39_N0
            Info (175029): FRACTIONALPLL_X0_Y64_N0
            Info (175029): FRACTIONALPLL_X0_Y81_N0
            Info (175029): FRACTIONALPLL_X0_Y108_N0
            Info (175029): FRACTIONALPLL_X121_Y1_N0
            Info (175029): FRACTIONALPLL_X121_Y108_N0
Error (12289): An error occurred while applying the periphery constraints. Review the offending constraints and rerun the Fitter.
Info (11798): Fitter preparation operations ending: elapsed time is 00:00:18
Error (11802): Can't fit design in device
Error: Quartus II 64-Bit Fitter was unsuccessful. 4 errors, 3 warnings
    Error: Peak virtual memory: 1239 megabytes
    Error: Processing ended: Mon Feb 10 23:14:46 2014
    Error: Elapsed time: 00:00:32
    Error: Total CPU time (on all processors): 00:00:31
Error (293001): Quartus II Full Compilation was unsuccessful. 6 errors, 23 warnings

Ребята нашли выход: сверлят плату с обратной стороны, в районе нужного шарика (нога E10), подпаиваются проводком. Несколько плат удалось так апгрейдить, а несколько удалось убить.
Неужто программно ничего нельзя сделать?

Нажмите для просмотра прикрепленного файла
agregat
Нельзя, dedicated global clock buf специальные входы, которые разведены по всему чипу так, чтобы обеспечить максимально качественный клок для доставки в выбранный банк.
Простые пины вносят большой джитттер и задержки, поэтому использовать можно, качество клока будет далеко неидеальным.
Сверлят правильно, ведь от клока зависит, будет дизайн работать или нет.

Вопрос в другом, почему сверлят, когда можно перепаять BGA чип? Пайка BGA не такая сложная операция и чипы убить сложно если выдерживать профиль. Отпаяли, приклеили лаком для ногтей проводок к плате, запаяли обратно. Две три итерации вполне выдержит.
SM
а попробуйте поставить примитивы LCELL и затем GLOBAL между пином и PLL... Может поможет, затащить клок сначала в глобальную сеть, а оттуда уже на PLL
Kuzmi4
2 novartis
была похожая фигня.
Товарищ использовал Q2 v13.0 (без СП1) - выёживалось пока руками примитив GLOBAL(аки CLKCTL) не вставил. После этого был только варнинг про качество частоты.
Александр77
Цитата(SM @ Feb 10 2014, 20:26) *
а попробуйте поставить примитивы LCELL и затем GLOBAL между пином и PLL... Может поможет, затащить клок сначала в глобальную сеть, а оттуда уже на PLL

А разве до загрузки конфигурации будет понято что между выводами есть примитив?
SM
Цитата(Александр77 @ Feb 11 2014, 07:51) *
А разве до загрузки конфигурации будет понято что между выводами есть примитив?


А причем тут загрузка вообще, если речь о том, как подсказать роутеру, как провести соединение?
novartis
Проект скомпилился!
Сначала сделал компонент altclkctrl. С ним квартус все равно ругался.
Убрал этот компонет, поставил примитив GLOBAL. С ним квартус все равно ругался.
Как посоветовал SM, завел тактовую сначала на LCELL, потом на GLOBAL, потом на pll - и проект удачно скомпилился.
Спасибо!

Еще бы оценить качество полученного клока и к чему может приветси его не качественность. ТаймКвест тут ничем не поможет?
SM
Цитата(novartis @ Feb 11 2014, 10:51) *
и к чему может приветси его не качественность

ни к чему плохому, это вообще больше миф, чем некачественность. Просто задержка лишняя (ее таймквест покажет без проблем, если она кому-то важна), и какие-то пол-копейки джиттера добавит...
alexadmin
Цитата(novartis @ Feb 11 2014, 10:51) *
Как посоветовал SM, завел тактовую сначала на LCELL, потом на GLOBAL, потом на pll - и проект удачно скомпилился.


Это вам свезло, что циклон пятый. В старых (до третьего, насколько помню, про четвертый не уверен) клок можно было подать исключительно с клокового входа.
SM
Цитата(alexadmin @ Feb 11 2014, 11:33) *
В старых (до третьего, насколько помню, про четвертый не уверен)


Нет. Я так заводил и в ACEX, и в Cyclone первом, у меня нет опыта работы с циклонами старше 2-го вообще. В любой ПЛИС (альтеры, латиса) есть возможность подачи на PLL глобального клока, и подачи клока в глобальную сеть из логической матрицы.
sazh
Цитата(SM @ Feb 11 2014, 10:37) *
Нет. Я так заводил и в ACEX, и в Cyclone первом, у меня нет опыта работы с циклонами старше 2-го вообще.


Не прошло и 7 лет, а залетают по старому.
Странно другое, что это продолжают поддерживать в новых семействах.
SM
Цитата(sazh @ Feb 11 2014, 11:41) *
Странно другое, что это продолжают поддерживать в новых семействах.


Ничего странного, это абсолютная необходимость, иметь возможность полученный на внутренней логике сигнал завести на PLL. Да и элементарно, по разводке дорожек может оказаться, что не критичный по джиттеру клок удобнее завести на простой пин.

Я удивляюсь другому, что столько лет, а предрассудки все те же, что клоки можно подавать только на клоковые пины. Изучайте внутреннюю структуру ПЛИС аккуратно, внимательно и полностью!!! И пользуйтесь всеми ее возможностями без надуманных ограничений.
sazh
Цитата(SM @ Feb 11 2014, 10:42) *
Изучайте внутреннюю структуру ПЛИС аккуратно, внимательно и полностью

И все же это был плод совместных изысканий при обсуждении на конференции
always @(posedge clk)
begin
ct <= ct + 1'b1;
end

lcell lcell (
.in (ct[1]),
.out (out_lcell)
);

global global (
.in (out_lcell),
.out (out_global)
);
Стандартный подход гарантирует отсутствие проблем, например выше перечисленных, пусть даже по незнанию.
SM
Цитата(sazh @ Feb 11 2014, 11:52) *
И все же это был плод совместных изысканийпри обсуждении на конференции


Обсуждения не было бы, если бы человек почитал даташит:

http://www.altera.com/literature/hb/cyclone-v/cv_52004.pdf

fig. 4-9 - видим, что на GCLK можно подать с Internal logic (LCELL)
fig. 4-23 - видим, что на вход PLL можно подать GCLK (GLOBAL)

и всех дел... Но ведь лень, матушка... Проще то и быстрее спросить тут, чем изучать литературу. Я тоже, по лени, вместо того, чтобы глянуть в даташит, и сказать "сделайте так", просто по памяти написал "а попробуйте", тоже лень. А вот Вы уже заставили меня лезть в книжки...

Цитата(sazh @ Feb 11 2014, 11:52) *
Стандартный подход гарантирует отсутствие проблем, например выше перечисленных, пусть даже по незнанию.

Зато, нередко, стандартный подход не позволяет сделать дешевле/меньше/лучше/т.п., чем у конкурента. Использование только стандартных подходов явный признак низкой квалификации разработчика.


PS В Вашем примере LCELL лишний, выход ct[1] и так сам по себе LCELL.
alexadmin
Цитата(SM @ Feb 11 2014, 11:37) *
Нет. Я так заводил и в ACEX, и в Cyclone первом, у меня нет опыта работы с циклонами старше 2-го вообще. В любой ПЛИС (альтеры, латиса) есть возможность подачи на PLL глобального клока, и подачи клока в глобальную сеть из логической матрицы.


Не уверен. Если посмотреть на структуру того же первого циклона, то там вход на PLL заведен только со входных dedicated input пинов. Из логики идет коннект только на clock control и далее на global, но оттуда на PLL уже не попасть. Вот в пятых действительно нарисован сигнал на вход pll из логики.

По факту удалось проверить только на Cyclone 3 (младше уже мой квартус не держит) и там.
Error (15065): Clock input port inclk[0] of PLL "pll:inst|altpll:altpll_component|pll_altpll:auto_generated|pll1" must be driven by a non-inverted input pin or another PLL, optionally through a Clock Control block. Структура точно такая, как у автора - pin->LCELL->global-> PLL.

_Anatoliy
Цитата(alexadmin @ Feb 11 2014, 10:44) *

Открыл старый проект с первым циклоном,изменил - точно такая же ошибка.
SM
Цитата(alexadmin @ Feb 11 2014, 12:44) *
Не уверен.


Да я тоже в общем не уверен... Но то, что я пока еще не работал с циклонами старше 2-го, это точно, и GLOBAL(LCELL()) у меня в истории уже где-то было sm.gif
alexadmin
Цитата(_Anatoliy @ Feb 11 2014, 12:54) *
Открыл старый проект с первым циклоном,изменил - точно такая же ошибка.


На четвертом циклоне - сейчас проверил, - тоже не собирается. Так что только на 5 такая вольница...
SM
Ну да... Я глянул на даташиты, действительно, там нельзя. Был не прав. Видимо я в свое время так затаскивал клоки просто в глобальную сеть, без PLL.
Kokos
На Stratix iv попробовал, так же не компилируется проект. Есть ли альтернативное решение проблемы?
des00
Цитата(Kokos @ Apr 20 2016, 18:25) *
На Stratix iv попробовал, так же не компилируется проект. Есть ли альтернативное решение проблемы?

скальпель, паяльник и тонкий провод.
novartis
Как советовал SM - нужно смотреть даташит!

Вот он писал про картинки из handbook для cyclone5
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла

На них видно, что из Internal Logic клока можно сделать global клок GCLK, а уже GCLK можно подать на PLL.

В handbook для стратикс4 тоже еть такие картинки:
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла

На них тоже видно, что из Internal Logic клока можно сделать global клок GCLK, а уже GCLK можно подать на PLL.
Но там есть приписка, что "An internally generated global signal or general purpose I/O pin cannot drive the PLL."

Так что не получится.

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