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

 
 
> Как обойти Critical Warning: PLL clock output ... feeding the core has ill
iiv
сообщение Jul 13 2011, 20:55
Сообщение #1


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



Всем привет,

есть у меня незадачка - хочу с четверного циклона (6-ой спидгрейд) по 64 ногам получить длинный, около 10-100нс импульс, но слегка рассогласованный между ногами. Величину рассогласования хочется задать цифрой, и она должна быть чем точнее, тем лучше. В идеале, хотел бы задавать эту величину рассогласования с точностью порядка 0.5нс.

Написал простенький пример, который скомпилился квартусом. Весь пример со всеми результатами компиляции приаттачил, для наглядности. В нем я зачитываю по а-ля SPI числа - задержки рассогласования, строю блоки единиц и нулей для начала и конца сигнала, и засылаю со всей дури в каждый канал.

В качестве несущей частоты выставил 800МГц, получаемой из 50МГц внешнего клока 16-ти кратным умножением.

Дизайн компилится, слаков нет. В железо еще не засовывал, так как оно еще не дошло до меня. Есть подозрительные вещи, а именно:

1. Вот такой ворнинг: Critical Warning: PLL clock output my_pll:my_pll_module|altpll:altpll_component|my_pll_altpll:auto_generated|wire_p
ll1_clk[0] feeding the core has illegal output frequency of 800.0 MHz that must be less than 472.6 MHz

из которого возникает большое подозрение, что логика внутри кристалла не может клочится на частотах выше 472.6 МГц. В то же время, слаков-то нет, скажите, пожалуйста, что я здесь не правильно понимаю?

2. FMax обалденный, 988МГц, но вот Restricted FMax уже 500МГц с припиской limit due to minimum period restriction (tmin) Хорошо, допустим, я не имею права работать больше 500МГц, но почему опять слаков нет?

Вдруг кому будет не сложно, помогите, пожалуйста, доходчиво мне объяснить что же здесь происходит!

Еще вопрос. Может я на не правильном пути, может мне эту задержку логикой делать надо? С ходу на раз не придумал как. Вдруг кто сможет, посоветуйте, мне пожалуйста, как!

Спасибо

ИИВ
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Hoodwin
сообщение Jul 15 2011, 13:04
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107



Цитата(iiv @ Jul 15 2011, 12:18) *
Уважаемые des00 и Hoodwin,

очень Вам благодарен за ответы и советы, огромное Вам спасибо!!!

Я, как всегда не все до конца разобрал, поэтому, позвольте пожалуйста, уточнить до полной моей ястности несколько деталей:


скажите, пожалуйста, под серией Вы имели ввиду серии с разными спидгрейдами, или это касается одной плиски с одним спидгрейдом?

Надо рулить в динамике. Импульсов в секунду не много, 10-100, может 1000 когда-то будет. В идеале конечно иметь разное рассогласование для каждого из импульсов, но для начала достаточно делать по 10-50 импульсов с одинаковым рассогласованием, а потом менять величину рассогласования. В любом случае, изменение рассогласования должно произходить со скоростью порядка 10 раз в секунду.

Хочется иметь 64 канала в недалеком будующем. Сейчас собираю стенд с 16 каналами. Хотелось бы, чтобы я мог произвольно установить величины задержек для каждого канала, а не фиксировать несколько дискретных значений величин задержек. Хотелось бы в идеале достичь относительной точности установки рассогласования в 0.3нс, но для начала готов мириться и с 1нс точностью, а на логике я могу получить только 3нс точность.

простите меня покорнейше, совсем запутался. Я думал про это, но так и не смог понять, как это делается. Читал пол дня доку по ALTPLL, но, похоже, как всегда не доразобрался. Тыкните, пожалуйста, меня как именно это делается.

Вот тут туплю по полной, не понимая, о чем речь... Понимаю, что что-то правильное и важное, но совсем не в теме, и очень хочу разобраться. Скажите, пожалуйста, IOE через какую-то мегафункцию доступны? Если да, то понятно где смотреть дальше по мануалам...

Еще вопрос, правильно я понимаю, что в EP4CE22F17C6 (4-ом циклоне) 4 PLL, то есть уже можно 20 разных фаз набрать, или я, как всегда что-то не учел?

Спасибо

ИИВ

iiv

Я Вам советую для начала изучить немного матчасть:
1. PLL - http://www.altera.com/literature/hb/cyclon.../cyiv-51005.pdf
2. I/O - http://www.altera.com/literature/hb/cyclon.../cyiv-51006.pdf

PLL можно настроить в MegaWizard'e, намного быстрее и удобнее, чем разбираться самому со всеми фичами ALTPLL для всех семейств.
I/O вообще просто настраиваются. Открываете assignment editor и добавляете logic options.

По поводу 4 PLL я Вам этого делать настоятельно не рекомендую, так как нет никаких гарантий, что две разные PLL, настроенные одинаково и запитанные одинаковым клоком, дадут на выходе когерентные тактовые сигналы. Я даже думаю, что с гарантией не дадут. Поэтому придется изголяться с 5 выходами одной PLL. Одна PLL может сделать 10 задержек. 5 разных тактовых плюс их можно инвертировать. Итого, для 400 МГц опорных, то есть периода 2.5 нс, можно пытаться достичь фазового шага 0.25 нс программно. Но для этого придется задействовать несколько выводов I/O чтобы в итоге получить один реальный выход. Несколько выходов надо будет объединить снаружи от ПЛИС c помощью вентиля OR.

ИМХО, такую задачу лучше решать с помощью внешних схем, и точнее, и стабильнее:
http://datasheets.maxim-ic.com/en/ds/DS1124.pdf
http://www.micrel.com/page.do?page=/produc.../sy89295u.shtml
http://www.onsemi.com/PowerSolutions/parametrics.do?id=586
http://www.onsemi.com/pub_link/Collateral/NB6L295M-D.PDF
... А еще есть google > programmable delay line


Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post



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

 


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


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