masverter 0 11 февраля, 2022 Опубликовано 11 февраля, 2022 · Жалоба Спасибо за ответы! Поставил PLL и BUFG. В UG472 нашел картинку как это выглядит (в моем случае на входе IBUFDS). PLL используется для компенсации задержки распространения клока через BUFG. Получается, данные и клок будут приходить на IDDR с тем же относительным смещением, что и на входы ПЛИС, задерживаясь на одинаковую величину на IBUFDS. Далее добавил исключения на передачу данных между противоположными фронтами (AN 433: Constraining and Analyzing Source-Synchronous Interfaces) Теперь временные ограничения интерфейс проходит. Однако, положительный slack по setup 0.022ns, по hold – 3.136ns. Маловато. В этой ситуации двигать фазу PLL или по-другому решается? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
masverter 0 13 февраля, 2022 Опубликовано 13 февраля, 2022 · Жалоба UPD. Повернул фазу PLL на 90 градусов, за счет этого удалось сместить запасы по setup и hold на 1 ns (1.022, 2.136). На железке пока попробовать нет возможности. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TRILLER 0 13 февраля, 2022 Опубликовано 13 февраля, 2022 · Жалоба On 2/11/2022 at 4:41 PM, masverter said: PLL используется для компенсации задержки распространения клока через BUFG. Получается, данные и клок будут приходить на IDDR с тем же относительным смещением, что и на входы ПЛИС, задерживаясь на одинаковую величину на IBUFDS. Это с чего вдруг? На картинке же ясно нарисовано, что совпадают фазы в точках 2, 3 и 5. Т.е. в приведенной схеме PLL компенсирует лишь задержку от CLKIN1 до выхода BUFG. Путь данных: i_port -> IDDR Путь клока: (i_clk_port -> CLKIN1(через IBUFG)) + (BUFG -> IDDR) Но длины всех этих путей известны, поэтому остаётся только правильно задать ограничения на входных пинах. Кстати, можно компенсировать ещё и кусок от входного буфера, если добавить его в цепь обратной связи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
masverter 0 13 февраля, 2022 Опубликовано 13 февраля, 2022 · Жалоба 1 hour ago, TRILLER said: Это с чего вдруг? На картинке же ясно нарисовано, что совпадают фазы в точках 2, 3 и 5. Т.е. в приведенной схеме PLL компенсирует лишь задержку от CLKIN1 до выхода BUFG. Путь данных: i_port -> IDDR Путь клока: (i_clk_port -> CLKIN1(через IBUFG)) + (BUFG -> IDDR) Клок подключен на вход PLL через IBUFDS. Писал про это, картинку перерисовывать не стал. 1 hour ago, TRILLER said: Кстати, можно компенсировать ещё и кусок от входного буфера, если добавить его в цепь обратной связи. Понимаю так - если и данные и клок проходят через IBUFDS, то задержку IBUFDS компенсировать не нужно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
masverter 0 18 февраля, 2022 Опубликовано 18 февраля, 2022 · Жалоба On 2/13/2022 at 1:44 PM, masverter said: UPD. Повернул фазу PLL на 90 градусов, за счет этого удалось сместить запасы по setup и hold на 1 ns (1.022, 2.136). На железке пока попробовать нет возможности. Попробовал оба варианта в железе - работают нормально. Всем участникам большое спасибо за помощь! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться