|
TimeQuest. Борьба со slack., Задержки межд Fast input register/DDR reg и регистром приёмником. |
|
|
|
Aug 9 2017, 06:14
|

В поисках себя...
   
Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140

|
Работаю c чипом CYCLONE V - 5CSEMA5F31C6. САПР - Quartus 13.1. Столкнулся с проблемой, что между Fast input register или выходами DDR регистра и регистром-приёмником данных набегает огромная задержка по данным. Из-за чего возникает нарушение по setup. Для начала опишу кратко дизайн: Имеем 3 приёмные LVDS линии c DDR регистрами. На вход CLK подается опорная частота, которая на PLL умножается на 10 5, для тактирования приёмников.  TimeQuest радостно сообщает о том, что у нас нарушение по setup и фиг вам, а не частота приёмников выше 200...230 MHZ.  Посмотрим, чуть внимательнее на само нарушение. Набегает огромная задержка почти в 3 нс по данным.  Может Quartus расположил регистры приёмники в другом конце чипа ? Да нет, ближе практически некуда:  На данный момент у меня есть 2 мысли как можно решить проблему: 1. На pll сформировать частоту со сдвигом, и от неё тактировать регистры-приёмники. 2. На LCELL сформировать цепь задержки тактового сигнала регистров приёмников(тупиковый вариант). Хотелось бы услышать совета от более опытных коллег. Может есть какой-то другой способ решения проблемы ? Пока мой SDC файл выглядит так: Код #************************************************************** # Create Clock #************************************************************** set_time_format -unit ns -decimal_places 3 create_clock -name {CLK} -period 80MHz [get_ports {CLK}]
#************************************************************** # Create PLL Clock #************************************************************** derive_pll_clocks
set_false_path -from [get_clocks {MY_PLL_COMP|my_pll_inst|altera_pll_i|general[0].gpll~PLL_OUTPUT_COUNTER|divclk}] -to [get_ports {RX0}] set_false_path -from [get_clocks {MY_PLL_COMP|my_pll_inst|altera_pll_i|general[0].gpll~PLL_OUTPUT_COUNTER|divclk}] -to [get_ports {RX1}] set_false_path -from [get_clocks {MY_PLL_COMP|my_pll_inst|altera_pll_i|general[0].gpll~PLL_OUTPUT_COUNTER|divclk}] -to [get_ports {RX2}] Прикрепляю тестовый проект:
Сообщение отредактировал Flip-fl0p - Aug 9 2017, 07:32
|
|
|
|
|
 |
Ответов
|
Aug 9 2017, 12:03
|

В поисках себя...
   
Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140

|
Цитата(Magnum @ Aug 9 2017, 14:32)  В том и фишка, при 2 разрядном выходе лвдс_рх вырождается в ддр с одним клоком. Результат аналогичный:  Проблема появляется если входы размещены в банке IOBANK_4A. Если входы разместить в банке IOBANK_5B - то проблема уходит. P.S. Реальная железка работает без нареканий  Quartus 15.0 результат аналогичный...
Сообщение отредактировал Flip-fl0p - Aug 9 2017, 12:05
|
|
|
|
|
Aug 9 2017, 12:36
|

В поисках себя...
   
Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140

|
Цитата(bogaev_roman @ Aug 9 2017, 15:26)  Временная модель, приведенная Вами - скорее всего для худшего случая (slow - повышенная температура, пониженное напряжение и технологический разброс). Все-таки Вы уверены, что клок идет по глобальной линии клока? Интересно посмотреть запас по холду, если он большой, то можно попробовать фазу подергать. Зы Посмотрел внимательно на последний отчет по времянке, у Вас ограничения не потерялись в sdc (relationship соответствует 1нс, а должен по идее 2.5нс)? В последнем отчете, я даже на задавл констрейны. Я Посмотрел на FMAX, посмотрел на слаки - и сделал вывод о том, что этот вариант так-же не работает. Не думаю, что если я поставлю PLL, задам констрейны он будет отличаться.
Сообщение отредактировал Flip-fl0p - Aug 9 2017, 12:36
|
|
|
|
|
Aug 9 2017, 12:57
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
Цитата(Flip-fl0p @ Aug 9 2017, 15:36)  В последнем отчете, я даже на задавл констрейны. Я Посмотрел на FMAX, посмотрел на слаки - и сделал вывод о том, что этот вариант так-же не работает. Не думаю, что если я поставлю PLL, задам констрейны он будет отличаться. Задайте ограничения, тогда slack уменьшится до -2нс, потом сдвиньте приемную частоту больше, чем на 2нс (300градусов), если hold не вылезет, то по setup должно пройти (в идеальном случае). Но откуда там набегает 3нс при переходе от ddr регистра до обычного в соседней ячейке - загадка.
|
|
|
|
|
Aug 9 2017, 14:02
|
Профессионал
    
Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757

|
Цитата(bogaev_roman @ Aug 9 2017, 15:57)  Но откуда там набегает 3нс при переходе от ddr регистра до обычного в соседней ячейке - загадка. Вероятно, отгадка такая: Цитата(http://www.alteraforum.com/forum/showthread.php?t=45705&p=189491#post189491) 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
|
|
|
|
|
Feb 21 2018, 07:18
|
Участник

Группа: Участник
Сообщений: 34
Регистрация: 25-04-05
Пользователь №: 4 466

|
Цитата(andrew_b @ Aug 9 2017, 17:02)  Вероятно, отгадка такая: Большое спасибо, andrew_b, за эту находку. Который день мучаюсь с подобной проблемой. С одного пина быстро долетает, с другого тупит. Уже голову сломал. Ну и г.. этот CycloneV, столько гадостей в нем, что его достоинства не всегда их могут перебороть.
|
|
|
|
Сообщений в этой теме
Flip-fl0p TimeQuest. Борьба со slack. Aug 9 2017, 06:14 Magnum По идее ДДР должен работать по двум фронтам клока,... Aug 9 2017, 07:22 Flip-fl0p Цитата(Magnum @ Aug 9 2017, 10:22) По иде... Aug 9 2017, 07:31 Magnum А если например в чип-планере выходной сдвиговый р... Aug 9 2017, 07:50 Flip-fl0p Цитата(Magnum @ Aug 9 2017, 10:50) А если... Aug 9 2017, 08:04  bogaev_roman Цитата(Flip-fl0p @ Aug 9 2017, 11:04... Aug 9 2017, 08:54   Flip-fl0p Цитата(bogaev_roman @ Aug 9 2017, 11:54) ... Aug 9 2017, 09:02 bogaev_roman Цитата(Flip-fl0p @ Aug 9 2017, 09:14... Aug 9 2017, 08:04 Magnum ЦитатаА как вообще правильно вручную двигать ячейк... Aug 9 2017, 08:38 Magnum А если например поставить в ДДР лпм галочку регист... Aug 9 2017, 10:01 Flip-fl0p Цитата(Magnum @ Aug 9 2017, 13:01) А если... Aug 9 2017, 10:24  Magnum Цитата(Flip-fl0p @ Aug 9 2017, 17:24... Aug 9 2017, 10:30 Flip-fl0p В 5 циклоне похоже таких нет...
У меня нет ALTL... Aug 9 2017, 10:39 bogaev_roman Цитата(Flip-fl0p @ Aug 9 2017, 13:39... Aug 9 2017, 10:53 Magnum Цитата(Flip-fl0p @ Aug 9 2017, 17:39... Aug 9 2017, 10:57  Flip-fl0p Цитата(Magnum @ Aug 9 2017, 13:57) А что ... Aug 9 2017, 11:10 Magnum Отнюдь, очевидно это просто разные библиотеки. Aug 9 2017, 10:41      Flip-fl0p Цитата(andrew_b @ Aug 9 2017, 17:02) Веро... Aug 9 2017, 14:09      bogaev_roman Цитата(andrew_b @ Aug 9 2017, 17:02) Веро... Aug 9 2017, 14:16       andrew_b Цитата(bogaev_roman @ Aug 9 2017, 17:16) ... Aug 9 2017, 14:20 Flip-fl0p Остался ещё один нерешённый вопрос. Почему Quartus... Aug 9 2017, 15:34 Magnum Цитата(Flip-fl0p @ Aug 9 2017, 22:34... Aug 9 2017, 17:20  _Anatoliy Упаду на хвост по теме. Не удаётся выполнить выход... Aug 10 2017, 08:19   bogaev_roman Цитата(_Anatoliy @ Aug 10 2017, 11:19) Чт... Aug 10 2017, 09:16    _Anatoliy Цитата(bogaev_roman @ Aug 10 2017, 12:16)... Aug 10 2017, 09:41     bogaev_roman Цитата(_Anatoliy @ Aug 10 2017, 12:41) С ... Aug 10 2017, 10:09      _Anatoliy Цитата(bogaev_roman @ Aug 10 2017, 13:09)... Aug 10 2017, 10:19       bogaev_roman Цитата(_Anatoliy @ Aug 10 2017, 13:19) Эт... Aug 10 2017, 10:32        _Anatoliy Цитата(bogaev_roman @ Aug 10 2017, 13:32)... Aug 10 2017, 11:26         _Anatoliy Коллеги, а есть то она вообще, правда на земле? Мо... Aug 19 2017, 07:32
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|