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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Можно подцепить вход pll на обычную ногу?
novartis
сообщение Feb 10 2014, 17:22
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845



Развели печатную плату с Циклон 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), подпаиваются проводком. Несколько плат удалось так апгрейдить, а несколько удалось убить.
Неужто программно ничего нельзя сделать?

Прикрепленное изображение
Go to the top of the page
 
+Quote Post
agregat
сообщение Feb 10 2014, 17:25
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 790
Регистрация: 6-02-14
Из: Омск
Пользователь №: 80 379



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

Вопрос в другом, почему сверлят, когда можно перепаять BGA чип? Пайка BGA не такая сложная операция и чипы убить сложно если выдерживать профиль. Отпаяли, приклеили лаком для ногтей проводок к плате, запаяли обратно. Две три итерации вполне выдержит.

Сообщение отредактировал agregat - Feb 10 2014, 17:28
Go to the top of the page
 
+Quote Post
SM
сообщение Feb 10 2014, 17:26
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



а попробуйте поставить примитивы LCELL и затем GLOBAL между пином и PLL... Может поможет, затащить клок сначала в глобальную сеть, а оттуда уже на PLL
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Feb 10 2014, 18:36
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 novartis
была похожая фигня.
Товарищ использовал Q2 v13.0 (без СП1) - выёживалось пока руками примитив GLOBAL(аки CLKCTL) не вставил. После этого был только варнинг про качество частоты.
Go to the top of the page
 
+Quote Post
Александр77
сообщение Feb 11 2014, 03:51
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 608
Регистрация: 10-07-09
Из: Дубна, Московская область
Пользователь №: 51 111



Цитата(SM @ Feb 10 2014, 20:26) *
а попробуйте поставить примитивы LCELL и затем GLOBAL между пином и PLL... Может поможет, затащить клок сначала в глобальную сеть, а оттуда уже на PLL

А разве до загрузки конфигурации будет понято что между выводами есть примитив?
Go to the top of the page
 
+Quote Post
SM
сообщение Feb 11 2014, 05:19
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



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


А причем тут загрузка вообще, если речь о том, как подсказать роутеру, как провести соединение?
Go to the top of the page
 
+Quote Post
novartis
сообщение Feb 11 2014, 06:51
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-09
Из: Свердловский регион
Пользователь №: 52 845



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

Еще бы оценить качество полученного клока и к чему может приветси его не качественность. ТаймКвест тут ничем не поможет?
Go to the top of the page
 
+Quote Post
SM
сообщение Feb 11 2014, 06:57
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(novartis @ Feb 11 2014, 10:51) *
и к чему может приветси его не качественность

ни к чему плохому, это вообще больше миф, чем некачественность. Просто задержка лишняя (ее таймквест покажет без проблем, если она кому-то важна), и какие-то пол-копейки джиттера добавит...
Go to the top of the page
 
+Quote Post
alexadmin
сообщение Feb 11 2014, 07:33
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



Цитата(novartis @ Feb 11 2014, 10:51) *
Как посоветовал SM, завел тактовую сначала на LCELL, потом на GLOBAL, потом на pll - и проект удачно скомпилился.


Это вам свезло, что циклон пятый. В старых (до третьего, насколько помню, про четвертый не уверен) клок можно было подать исключительно с клокового входа.
Go to the top of the page
 
+Quote Post
SM
сообщение Feb 11 2014, 07:37
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



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


Нет. Я так заводил и в ACEX, и в Cyclone первом, у меня нет опыта работы с циклонами старше 2-го вообще. В любой ПЛИС (альтеры, латиса) есть возможность подачи на PLL глобального клока, и подачи клока в глобальную сеть из логической матрицы.
Go to the top of the page
 
+Quote Post
sazh
сообщение Feb 11 2014, 07:41
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Цитата(SM @ Feb 11 2014, 10:37) *
Нет. Я так заводил и в ACEX, и в Cyclone первом, у меня нет опыта работы с циклонами старше 2-го вообще.


Не прошло и 7 лет, а залетают по старому.
Странно другое, что это продолжают поддерживать в новых семействах.
Go to the top of the page
 
+Quote Post
SM
сообщение Feb 11 2014, 07:42
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



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


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

Я удивляюсь другому, что столько лет, а предрассудки все те же, что клоки можно подавать только на клоковые пины. Изучайте внутреннюю структуру ПЛИС аккуратно, внимательно и полностью!!! И пользуйтесь всеми ее возможностями без надуманных ограничений.
Go to the top of the page
 
+Quote Post
sazh
сообщение Feb 11 2014, 07:52
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



Цитата(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)
);
Стандартный подход гарантирует отсутствие проблем, например выше перечисленных, пусть даже по незнанию.
Go to the top of the page
 
+Quote Post
SM
сообщение Feb 11 2014, 08:00
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(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.
Go to the top of the page
 
+Quote Post
alexadmin
сообщение Feb 11 2014, 08:44
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



Цитата(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.

Go to the top of the page
 
+Quote Post

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

 


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


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