Jump to content
    

TimeQuest. Борьба со slack.

У меня нет ALTLVDS_RX. У меня самописный приёмник. По некоторым причинам ALTLVDS_RX не подходит.

А что именно за причины? Это ж 1в1 для режима ддр тоже самое.

Share this post


Link to post
Share on other sites

А что именно за причины? Это ж 1в1 для режима ддр тоже самое.

Для подстройки фазы клока я применяю выводы для управления динамическим сдвигом, для этого ALT_LVDS_RX я запускаю в режиме EXTERNAL_PLL. Поэтому между ALT_LVDS_RX и PLL необходимо применять клоковый буфер, который требует 2 частоты с PLL, иначе работать не будет. А 2 частоты я не могу применить из-за того, что мне просто не хватит выводов PLL для динамической подстройки. А вот попробовать применить ALT_LVDS_RX в качестве DDR приёмника - это мысль.

Edited by Flip-fl0p

Share this post


Link to post
Share on other sites

В том и фишка, при 2 разрядном выходе лвдс_рх вырождается в ддр с одним клоком.

Share this post


Link to post
Share on other sites

В том и фишка, при 2 разрядном выходе лвдс_рх вырождается в ддр с одним клоком.

Результат аналогичный:

ALT_LVDS_RX.png

Проблема появляется если входы размещены в банке IOBANK_4A.

Если входы разместить в банке IOBANK_5B - то проблема уходит.

P.S. Реальная железка работает без нареканий :wacko:

Quartus 15.0 результат аналогичный...

Edited by Flip-fl0p

Share this post


Link to post
Share on other sites

P.S. Реальная железка работает без нареканий :wacko:

Временная модель, приведенная Вами - скорее всего для худшего случая (slow - повышенная температура, пониженное напряжение и технологический разброс). Все-таки Вы уверены, что клок идет по глобальной линии клока? Интересно посмотреть запас по холду, если он большой, то можно попробовать фазу подергать.

Зы Посмотрел внимательно на последний отчет по времянке, у Вас ограничения не потерялись в sdc (relationship соответствует 1нс, а должен по идее 2.5нс)?

Share this post


Link to post
Share on other sites

Временная модель, приведенная Вами - скорее всего для худшего случая (slow - повышенная температура, пониженное напряжение и технологический разброс). Все-таки Вы уверены, что клок идет по глобальной линии клока? Интересно посмотреть запас по холду, если он большой, то можно попробовать фазу подергать.

Зы Посмотрел внимательно на последний отчет по времянке, у Вас ограничения не потерялись в sdc (relationship соответствует 1нс, а должен по идее 2.5нс)?

В последнем отчете, я даже на задавл констрейны. Я Посмотрел на FMAX, посмотрел на слаки - и сделал вывод о том, что этот вариант так-же не работает. Не думаю, что если я поставлю PLL, задам констрейны он будет отличаться.

Edited by Flip-fl0p

Share this post


Link to post
Share on other sites

В последнем отчете, я даже на задавл констрейны. Я Посмотрел на FMAX, посмотрел на слаки - и сделал вывод о том, что этот вариант так-же не работает. Не думаю, что если я поставлю PLL, задам констрейны он будет отличаться.

Задайте ограничения, тогда slack уменьшится до -2нс, потом сдвиньте приемную частоту больше, чем на 2нс (300градусов), если hold не вылезет, то по setup должно пройти (в идеальном случае). Но откуда там набегает 3нс при переходе от ddr регистра до обычного в соседней ячейке - загадка.

Share this post


Link to post
Share on other sites

Но откуда там набегает 3нс при переходе от ddr регистра до обычного в соседней ячейке - загадка.
Вероятно, отгадка такая:

Cyclone V DQ pin used for user pin(not DDR DQ pin), always need to route through HMCPHY_RE. this routing element would cause almost 2ns differnece between setup and hold. no way to bypass it.

so never use DQ pins as high speed input or output in cyclone V

Share this post


Link to post
Share on other sites

Вероятно, отгадка такая:

Ох ё... Это многое объясняет. В handboock на cyclone 5 я даже не видел ничего похожего (неудивительно 3800 страниц...).

Edited by Flip-fl0p

Share this post


Link to post
Share on other sites

Вероятно, отгадка такая:

Очень интересно. Архитектурная особенность только для cyclone V или для других семейств типа arriaV тоже?

Share this post


Link to post
Share on other sites

Очень интересно. Архитектурная особенность только для cyclone V или для других семейств типа arriaV тоже?
Про Арию не знаю, не работал. В Циклоне я столкнулся со слаками пару лет назад: https://electronix.ru/forum/index.php?showtopic=130681

Share this post


Link to post
Share on other sites

Остался ещё один нерешённый вопрос. Почему Quartus удалил частоты С1 и С2 созданные на PLL.... И оставил только С0. Он их не будет "оптимизировать" только если я каждой частоте назначу разные сдвиги фаз.

Да и почему железка то работает как положено и самое главное стабильно, имея такое нарушение по Setup ?

Edited by Flip-fl0p

Share this post


Link to post
Share on other sites

и почему железка то работает как положено и самое главное стабильно, имея такое нарушение по Setup ?

А что удивительного? если задержка ровно на такт у вас, то всё и работает как надо, другое дело, если вы начнете её в температуре гонять, от нулей до +70С, там могут начаться чудеса. Ну и при массовом производстве могут на разных экземплярах разные результаты получаться.

Share this post


Link to post
Share on other sites

Упаду на хвост по теме. Не удаётся выполнить выходные времянки для ЦАП(Fclk = 100MHz,SDR,Cyclon III).

set_output_delay 5 -max -clock {clk_dac} [get_ports {dac_*}]
set_output_delay -3 -min -clock {clk_dac} [get_ports {dac_*}]

Клок в плис приходит от ЦАП -> PLL -> формирование данных, fast_output_register задействован.

Вращение фазы PLL нужного эффекта не приносит. Почему-то на io_obuf задержка 5,3нс и разница на двух битах достигает 5,3 - 2,3 = 3нс.

Что посоветуете,коллеги?

post-18832-1502352978_thumb.png

post-18832-1502352993_thumb.png

post-18832-1502353705_thumb.png

Share this post


Link to post
Share on other sites

Что посоветуете,коллеги?

Эти ограничения из даташита (просто максимальное окно на работу при них получается всего 10-5-3=2нс)? clk_dac - это выход pll (из приведенных ограничений не видно)? Для подробного анализа можете привести схему чипланнера, на которой показаны расположения io-буферов и pll (может они по всему периметру раскиданы, так непонятно)?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...