Всем привет,
есть у меня незадачка - хочу с четверного циклона (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МГц, но почему опять слаков нет?
Вдруг кому будет не сложно, помогите, пожалуйста, доходчиво мне объяснить что же здесь происходит!
Еще вопрос. Может я на не правильном пути, может мне эту задержку логикой делать надо? С ходу на раз не придумал как. Вдруг кто сможет, посоветуйте, мне пожалуйста, как!
Спасибо
ИИВ
|