Перейти к содержанию
    

Получение данных от АЦП ADS5404

Спасибо за ответы!

Поставил PLL и BUFG. В UG472 нашел картинку как это выглядит (в моем случае на входе IBUFDS). PLL используется для компенсации задержки распространения клока через BUFG. Получается, данные и клок будут приходить на IDDR с тем же относительным смещением, что и на входы ПЛИС, задерживаясь на одинаковую величину на IBUFDS.

pll_usage.jpg.5037b11432a04f14d3cf0eb49e428baf.jpg

Далее добавил исключения на передачу данных между противоположными фронтами (AN 433: Constraining and Analyzing Source-Synchronous Interfaces)

false_paths.jpg.992a77af468843268194a73434a55633.jpg

Теперь временные ограничения интерфейс проходит.

timings.jpg.83baf4110fdae7bac11b90f9830f5334.jpg

Однако, положительный slack по setup 0.022ns, по hold – 3.136ns. Маловато. В этой ситуации двигать фазу PLL или по-другому решается?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

UPD. Повернул фазу PLL на 90 градусов, за счет этого удалось сместить запасы по setup и hold на 1 ns (1.022, 2.136). На железке пока попробовать нет возможности.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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)

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

 

Кстати, можно компенсировать ещё и кусок от входного буфера, если добавить его в цепь обратной связи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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 компенсировать не нужно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 2/13/2022 at 1:44 PM, masverter said:

UPD. Повернул фазу PLL на 90 градусов, за счет этого удалось сместить запасы по setup и hold на 1 ns (1.022, 2.136). На железке пока попробовать нет возможности.

Попробовал оба варианта в железе - работают нормально.

Всем участникам большое спасибо за помощь!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...