Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: PLL и CycloneII
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Kuzmi4
Здравствуйте.

Есть устройство такого плана:
NIOSII(с периферией которая требует завода клока 60MHz) + SDRAM (в будущем планируется DRR) + внешний модуль на который нужно заводить те же 60 MHz что и на периферию в ниосе(отдельная от FPGA железка).
Почитал я литературу по этому вопросу и посмотрел в схематик моего девкита:
В сехатике я нашёл что клок на SDRAM с PLL1_OUTp
Нажмите для просмотра прикрепленного файла
Я собсно так делал до этого момента:
Выводил на PLL-е клок на SDRAM(с0) и клок на NIOSII (с1) - клок на ниос был внутренний, а SDRAM я выводил на U4 который есть PLL1_OUTp..
Недавно меня заинтересовал такой вопрос - помимо SDRAM, которой я вывожу клок, мне нужно есчё в периферию клок (в NIOSII) и этот же клок наружу с FPGA в железку.
Почитав литературу наткнулся на то, что выводить то можно наружу и в Global Clock Network только с c2 выхода PLL-а
Нажмите для просмотра прикрепленного файла
Обратился в альтеровский саппорт - обрисовал им ситуацию - они мне сказали, что можно выводить наружу клоки и с c0 и с c1 - в принципе это не противоречит тому как я делал раньше, однако немного не стыкуется с тем что я вычитал..
Чувствую что сдесь могут возникнуть подводные камни.. 1111493779.gif
Может кто нибудь доходчиво объяснить, а то не хочется наступить на грабли twak.gif
help.gif
DmitryR
Если вывести с c2 на PLL_CLKOUT, вы получите оптимальный сигнал (минимальное дрожание и прогнозируемую задержку), если с c0 - то нет. В принципе, при выводе с c0 должен появиться warning, об этом повествующий.
Kuzmi4
2 DmitryR - я так приблизительно и догадывался..
Вопрос только в том - если у меня есть 1 PLL - я с него беру клок на SDRAM, на ниос2 и на периферию - SDRAM на 50МГц я так понял вытерпит, ниос - внутри, а вот как быть с выходом этим - у меня есть выход на коннектор PLL2_OUT, как сказать квартусу , чтоб под эту мегафункцию ( PLL которая ) он взял иименно 2-й PLL - ну чтоб лапку наружу правильно вывести ??

Кстати - варнинга про лапу не было...
Postoroniy_V
Цитата(Kuzmi4 @ Sep 4 2008, 21:15) *
2 DmitryR - я так приблизительно и догадывался..
Вопрос только в том - если у меня есть 1 PLL - я с него беру клок на SDRAM, на ниос2 и на периферию - SDRAM на 50МГц я так понял вытерпит, ниос - внутри, а вот как быть с выходом этим - у меня есть выход на коннектор PLL2_OUT, как сказать квартусу , чтоб под эту мегафункцию ( PLL которая ) он взял иименно 2-й PLL - ну чтоб лапку наружу правильно вывести ??

Кстати - варнинга про лапу не было...

поставить второй плл и вывести с с2 на плл2_оут, это если нужен минимальный clock skew.
если не нужен то можно и с с0 с1 выводить и грамотно констрейны написать.
а варнинг быть должен, при использовании с0 или с1, там что то типа "bla bla output jitter"
Kuzmi4
2 Postoroniy_V - сегодня пригляжусь внимательнее - но вроде не было...

Та а всё же - как обойтись 1-м PLL - где квартусу это сказать ? ( Я так понял он берёт PLL-и начиная с первого и далее по порядку ??)

А на счёт
Цитата
..грамотно констрейны написать...

Это вы TimeQuest имеете ввиду ( это когда TCL и с нетами разбираться надо ??) ??
И на счёт грамотно - это как ? Примерчик можно ?? smile.gif
Postoroniy_V
Цитата(Kuzmi4 @ Sep 4 2008, 21:41) *
2 Postoroniy_V - сегодня пригляжусь внимательнее - но вроде не было...

Та а всё же - как обойтись 1-м PLL - где квартусу это сказать ? ( Я так понял он берёт PLL-и начиная с первого и далее по порядку ??)

А на счёт

Это вы TimeQuest имеете ввиду ( это когда TCL и с нетами разбираться надо ??) ??
И на счёт грамотно - это как ? Примерчик можно ?? smile.gif

сколько инстанций плл столько ква будет "пытаться" реализовать в железе smile.gif
кроме одного НО. Это когда скажем пара идентичных(идентичный означает одикановые плл, как вы можете знать плл бываеют разные - fast pll, enhanced pll) плл имеет теже настройки - тогда ква может сказать что то типа "pll merged in one".
про констрейны
The quick answer is the QuartusII handbook, volume 3 - Verification, section II - timing analysis.
http://www.altera.com/literature/lit-qts.jsp

The whole handbook is 31 MB and has plenty of detail. Keep in mind the synthesis, place and route engines have plenty of discussion about meeting timing, because much of that is timing driven. Timing Analysis is separate. Also be mindfull that there are two paths to go down for timing analysis, classic and TimeQuest. Choose up front which way to go. If you only want some basics, like global clock domains, clock-to-out's, and Tsu's, Classic is fast and easy. If you want more in depth, TimeQuest has the power.

отсюда
http://www.alteraforum.com/forum/showthread.php?t=435
Kuzmi4
2 Postoroniy_V - Литературу почитаемс.

Варнинги сегодня посмотрю.

Ну а всё же - как быть с назначением PLL (можно и 2 взять, но всё же хочется узнать как назначать конкретный PLL за определённой реализацией в графике там или в VHDL) smile3046.gif При работе с мегавизардом вроде бы некак нельзя это задать...
Чисто интуитивно догадываюсь, что если для сдрам выделить с2 и назначить её на U4 а для 2-го PLL выход с c2 вывести на PLL2_OUT - то он их так и расположит - первый и второй..
Ну а если вдруг надо будет 1-й и 3-й PLL взять - квартус по назначении с2 выхода будет ориентироваться что ли ??
07.gif
Postoroniy_V
Цитата(Kuzmi4 @ Sep 4 2008, 22:00) *
2 Postoroniy_V - Литературу почитаемс.

Варнинги сегодня посмотрю.

Ну а всё же - как быть с назначением PLL (можно и 2 взять, но всё же хочется узнать как назначать конкретный PLL за определённой реализацией в графике там или в VHDL) smile3046.gif При работе с мегавизардом вроде бы некак нельзя это задать...
Чисто интуитивно догадываюсь, что если для сдрам выделить с2 и назначить её на U4 а для 2-го PLL выход с c2 вывести на PLL2_OUT - то он их так и расположит - первый и второй..
Ну а если вдруг надо будет 1-й и 3-й PLL взять - квартус по назначении с2 выхода будет ориентироваться что ли ??
07.gif

не понимаю ваших трудностей 07.gif
ноги задаются
1) pin planner
2) assignment editor
3) в исходнике можно через атрибуты
ква по ногам будет ориентироваться, ну а как ещё то?

....добавил по поводу варнинга..
был не прав
если наружу выводите с0, или с1 или с2, тоесть ТОЛЬКО 1 пин и именно его указываете как zero delay buffer то не будет варнинга
если выводите скажем с1 и с2 и указываете что с2 zero delay buffer то получаете варнинг
Warning: PLL "pll:inst2|altpll:altpll_component|pll" output port clk[1] feeds output pin "c1" via non-dedicated routing -- jitter performance depends on switching rate of other design elements. Use PLL dedicated clock outputs to ensure jitter performance

а конкретный плл можно назначить через chip editor, я правда не понимаю нафига она надо.
Kuzmi4
2 Postoroniy_V - трудности как раз были в том, как квартус будет ориентироваться какой PLL куда положить..
Теперь в принципе уже ясно что по ногам, просто думал что есть есчё какой либо метод, потому как по ногам показался мне немного странным..
Postoroniy_V
Цитата(Kuzmi4 @ Sep 4 2008, 22:31) *
2 Postoroniy_V - трудности как раз были в том, как квартус будет ориентироваться какой PLL куда положить..
Теперь в принципе уже ясно что по ногам, просто думал что есть есчё какой либо метод, потому как по ногам показался мне немного странным..

следуйте рекомендациям и даташитам smile.gif и не будет трудностей
для плл обычно рекомендуется в качестве входной ноги юзать dedicated clk пины, или же ноги с ближайшего банка. в качестве выходной ноги есть dedicated pll_outx пины, привязанные к конкретному плл. и соотвественно имеющие минимальный clock skew
вот и всё...

вообщем читайте мануалы smile.gif
Kuzmi4
2 Postoroniy_V - читаю, но есть вопросы ( потому как иногда делаю не как по ДШ но вроде работает) вот потому и спрашиваю..
..килограма 2 у меня уже этих мануалов в весовом эквиваленте....
Postoroniy_V
Цитата(Kuzmi4 @ Sep 4 2008, 22:48) *
2 Postoroniy_V - читаю, но есть вопросы ( потому как иногда делаю не как по ДШ но вроде работает) вот потому и спрашиваю..
..килограма 2 у меня уже этих мануалов в весовом эквиваленте....

обычно вопросы возникают когда не работает smile.gif
немного удивился что вы после того как получили ответ у альтеровского саппорта тут решили спросить
у меня даташиты весят намного меньше всего пара тройка гигов biggrin.gif
Kuzmi4
2 Postoroniy_V - там какой то Viking отвечал что и удивило 07.gif - при чём как то размазанно...
Теперь всё стало на свои места..
Kuzmi4
Проверил - варнинга на счёт назначения не на ту ногу нету (выход с1 на лапу U4) 07.gif
Вот оно как....

Может настройки какие надо выставить ??
slog
А ты попробуй в Zero delay buffer или In sousrce sinchronous compensation mode PLL установить. Мне кажется будет работать только с C2 и разные варнинги появятся.
Kuzmi4
2 slog - PLL в нормале рабоает.. Сегодня потестимс с другими smile.gif
Kuzmi4
Кстати, как вам такое:
Цитата
Under certain conditions you can feed one external clock input pin into multiple PLLs

Это как понимать ?? Это что за условия такие специфические ?? В ДШ на камень же жёстко сказато какие лапы CLK идут на PLL.. Да и в саппорте мне это же говорили - 1-н входной пин на 1 PLL.
Кстати, а на счёт каскадирования - тут vetal замечал что можно завести например с лапы CLK0 на PLL0 а далее взять входной сигнал для PLL1 например с выходов c0, c1, с2... То есть получается что вход PLL`а запитан от Global Clock Network а в ДШ написано про вход с лапы.... хм.. где правда ??
slog
В даташите про PLL ясно нарисован вход на PLL _ТОЛЬКО_ с внешних ног, вход PLL можно подключить к любому из 4-х входных CLK. Для каждой PLL свои CLK. Выходы PLL (3 штуки) можно подключить на внутренние глобальные CLK, а С2 еще и наружу вывести. Так что как подать на вход PLL что-то изнутри FPGA не понятно.
Kuzmi4
2 slog - вот я про то же..
Вот потому и спрашиваю...
1111493779.gif
slog
Оказывается это в 3-х циклонах можно PLL каскадировать.
Kuzmi4
2 slog - так понимаю данные с даташита ??
А на счёт 2-го циклона ??
slog
А насчёт второго - тоже с даташита, смотри мой ответ на три поста выше. Вообщем я не представляю как в циклоне 2 на вход PLL подать что-то, кроме сигналов с любого из 4-х внешних клоков. А если сигналы дифференциальные - то всего 2 внешних входа. И для каждой PLL свои входы. Вообщем если хочешь использовать PLL - заведи на её внешний вход такты снаружи.
Kuzmi4
2 slog - на счёт второго - я даташит читал , просто думаю может с товарищей кто сталкивался с каскадированием, подскажет - там более нашёл пост про каскадирование как раз в теме про 2-й циклон...
_Anatoliy
2 Postoroniy_V
Я уже поднимал вопрос по констрейнам,похоже никто толком не владеет техникой их написания.
Если даже на сайте Альтеры примеры с ошибками,то...

http://electronix.ru/forum/index.php?showtopic=52323
LordVader
Продолжая тему...

Сделал тут небольшой тестово-обучающий проектик под DE1 работы со SDRAMой.
Вывод клока на SDRAM через c2 и далее через PLL1_OUT. Проект работает без ошибок при сдвиге c2 относительно c0 (от которого все внутренности FPGA тактируются) от -4нс до +1нс.

Возник вопрос, как из даташита 'извлечь' задержку от внутреннего порта c2 до внешнего сигнала на выходе PLL1_OUT? Методом просмотра даташита что-то не 'извлеклось' smile.gif Не всегда же подбирать фазу методом тыка, как-то её и рассчитывать, наверное, можно?
des00
Цитата(Kuzmi4 @ Sep 12 2008, 07:42) *
2 slog - на счёт второго - я даташит читал , просто думаю может с товарищей кто сталкивался с каскадированием, подскажет - там более нашёл пост про каскадирование как раз в теме про 2-й циклон...


мне в проекте тоже нужно было каскадирование, но к сожалению на cII такое возможно только через одно место, через внешний пин. Подать на PLL сигнал с внутренней логики на cII нельзя. Надо ставить cIII.
Kuzmi4
2 _Anatoliy - есть предложения ?
_Anatoliy
Цитата(Kuzmi4 @ Sep 15 2008, 11:27) *
2 _Anatoliy - есть предложения ?


По констрейнам?На Альтеровском форуме тоже не нашёл ничего путного.
Какие тут предложения,самому придётся разбираться,правда процесс довольно длительный.Уже две недели время от времени возвращаюсь к этому проекту,пока на месте.
По фапч.Со вторым циклоном не работал,сел сразу за третий.Небо и земля.Мало того что каскадировать PLL можно,клоки раздавать куда хочешь,так ещё на лету можно PLL переконфигурировать.Рекомендую!
Kuzmi4
2 _Anatoliy - интересно конечно, но пока видимо буду сидеть на 2-м как припекёт, тогда наверно переползу на 3-й .....

А на счёт TCL - видно надо будет наваять в саппорт - по поводу этого интересного случая
Пока всё никак руки не доходят..
Postoroniy_V
Цитата(_Anatoliy @ Sep 13 2008, 16:42) *
2 Postoroniy_V
Я уже поднимал вопрос по констрейнам,похоже никто толком не владеет техникой их написания.
Если даже на сайте Альтеры примеры с ошибками,то...

http://electronix.ru/forum/index.php?showtopic=52323

тут даташит с примерами написания констрейнов
http://www.altera.com/literature/hb/qts/qts_qii53019.pdf
des00
Цитата(Postoroniy_V @ Sep 16 2008, 20:49) *
тут даташит с примерами написания констрейнов
http://www.altera.com/literature/hb/qts/qts_qii53019.pdf


весь парадокс ситуации в том, что во всех документах альтера дает примеры мультициклов на разных клоках, а у _Anatoliy мультицикл на одном и том клоке (!!!). Но похоже в теме пошли подвижки.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.