|
Как обойти Critical Warning: PLL clock output ... feeding the core has ill |
|
|
|
Jul 13 2011, 20:55
|
вопрошающий
    
Группа: Свой
Сообщений: 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МГц, но почему опять слаков нет?
Вдруг кому будет не сложно, помогите, пожалуйста, доходчиво мне объяснить что же здесь происходит!
Еще вопрос. Может я на не правильном пути, может мне эту задержку логикой делать надо? С ходу на раз не придумал как. Вдруг кто сможет, посоветуйте, мне пожалуйста, как!
Спасибо
ИИВ
|
|
|
|
|
 |
Ответов
|
Jul 15 2011, 13:04
|
Знающий
   
Группа: Участник
Сообщений: 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.pdf2. I/O - http://www.altera.com/literature/hb/cyclon.../cyiv-51006.pdfPLL можно настроить в 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.pdfhttp://www.micrel.com/page.do?page=/produc.../sy89295u.shtmlhttp://www.onsemi.com/PowerSolutions/parametrics.do?id=586http://www.onsemi.com/pub_link/Collateral/NB6L295M-D.PDF... А еще есть google > programmable delay line
Эскизы прикрепленных изображений
|
|
|
|
Сообщений в этой теме
iiv Как обойти Critical Warning: PLL clock output ... feeding the core has ill Jul 13 2011, 20:55 des00 Цитата(iiv @ Jul 13 2011, 14:55) есть у м... Jul 14 2011, 03:40 iiv Огромное спасибо Вам, des00 за советы и ответы... Jul 14 2011, 09:52  des00 Цитата(iiv @ Jul 14 2011, 03:52) правильн... Jul 15 2011, 03:55   iiv Уважаемые des00 и Hoodwin,
очень Вам благодарен з... Jul 15 2011, 08:18    des00 Цитата(iiv @ Jul 15 2011, 02:18) скажите,... Jul 15 2011, 08:46 Hoodwin Из описания так и не понятно, рассогласование нужн... Jul 15 2011, 07:20
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|