|
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, 08:04
|

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

|
Цитата(Magnum @ Aug 9 2017, 10:50)  А если например в чип-планере выходной сдвиговый регистр погонять по чипу (ближе/дальше от пина), то слак сильно различается? Отличается не сильно. А как вообще правильно вручную двигать ячейки ? У меня после того, как я подвинул и нажал кнопку "Check and Save all netlist changes" quartus начинает компилировать проект, и возвращает все изменения обратно... Код 1. Проверьте задержку в IO буфере (delay chain) и приведите цифру. 2. Где расположена pll, от которой питается вся логика - не в другом ли она конце fpga? ЗЫ. Я так понимаю пины у Вас жестко привязаны (между ними банк памяти или умножитель, что не есть хорошо)? Ради интереса попробуйте их отвязать и посмотреть результат. Задержка везде по нулям. Есть фракционный PLL чуть ближе. : Сейчас PLL расположен тут(см. картинку)  А вот компиляция проекта с "отвязанными" пинами дала поразительный результат: слаки все ушли и времянка выполняется... Пути совершенно другие стали:
Сообщение отредактировал Flip-fl0p - Aug 9 2017, 08:35
|
|
|
|
|
Aug 9 2017, 08:54
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
Цитата(Flip-fl0p @ Aug 9 2017, 11:04)  Пути совершенно другие стали: Проанализируйте два отличия: 1. Существенно поменялось время IC (хотя Вы написали, что задержка в io-буферах 0). 2. Существенно уменьшился разброс clocks_patch (все-таки убедитесь, что в первом случае клок пошел по глобальной шине клоков и, по возможности, используйте клокконтрол поближе к рабочей логике). ЗЫ. Кроме этой логики в проекте есть еще какая-то другая логика, стоящая после этих регистров (проект посмотреть в данный момент времени возможности нет)? Если есть, попробуйте ее убрать. ЗЫЫ. Ограничения на размещение я обычно прописываю прямо в .qsf- файле. Изначально их можно задавать в assignement editor,.
|
|
|
|
|
Aug 9 2017, 09:02
|

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

|
Цитата(bogaev_roman @ Aug 9 2017, 11:54)  Проанализируйте два отличия: 1. Существенно поменялось время IC (хотя Вы написали, что задержка в io-буферах 0). 2. Существенно уменьшился разброс clocks_patch (все-таки убедитесь, что в первом случае клок пошел по глобальной шине клоков и, по возможности, используйте клокконтрол поближе к рабочей логике). ЗЫ. Кроме этой логики в проекте есть еще какая-то другая логика, стоящая после этих регистров (проект посмотреть в данный момент времени возможности нет)? Если есть, попробуйте ее убрать. ЗЫЫ. Ограничения на размещение я обычно прописываю прямо в .qsf- файле. Изначально их можно задавать в assignement editor,. Никакой логики в проекте нет (за исключением небольшого ряда мультиплексоров, которые никак не влияют на текущий результат работы). Вот структута приёмника:
|
|
|
|
Сообщений в этой теме
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 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 Magnum В том и фишка, при 2 разрядном выходе лвдс_рх выро... Aug 9 2017, 11:32 Flip-fl0p Цитата(Magnum @ Aug 9 2017, 14:32) В том ... Aug 9 2017, 12:03  bogaev_roman Цитата(Flip-fl0p @ Aug 9 2017, 15:03... Aug 9 2017, 12:26   Flip-fl0p Цитата(bogaev_roman @ Aug 9 2017, 15:26) ... Aug 9 2017, 12:36    bogaev_roman Цитата(Flip-fl0p @ Aug 9 2017, 15:36... Aug 9 2017, 12:57     andrew_b Цитата(bogaev_roman @ Aug 9 2017, 15:57) ... Aug 9 2017, 14:02      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      otv116 Цитата(andrew_b @ Aug 9 2017, 17:02) Веро... Feb 21 2018, 07:18 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
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|