Jump to content

    

Recommended Posts

Добрый день.

Столкнулся с отрицательным значением для Tsetup в документации на ЦАП AD9117. (Tsetup = -0.2 нс, Thold = 1.5 нс) В связи с чем возник вопрос, как всё-таки правильно задавать constrain'ы для внешних сигналов.

Для выходных интерфейсов временные ограничения я задаю следующим образом (если принять разницу во времени распространения клока и данных по плате = 0): 

set_output_delay -clock {clock_name} -man Tsetup {port_name} -add_delay.

set_output_delay -clock {clock_name} -min -Thold {port_name} -add_delay.

Соответственно для AD9117:

set_output_delay -clock {clock_name} -man -0.2 {port_name} -add_delay.

set_output_delay -clock {clock_name} -min -1.5 {port_name} -add_delay.

Смущает отрицательное Tsetup, что говорит о том, что данные на входе микросхемы должны быть установлены после прихода фронта, до 0,2нс (но можно и раньше). Тем самым минимальное время на которое должны установиться данные = Tsetup + Thold = 1.3 нс. 

Или я неправильно понимаю трактовку этого значения, и производитель указывает время Tsetup относительно фронта клока (т.е. если оно отрицательное, это значит что данные должны установиться за 0.2 нс до прихода фронта клока.), и тогда минимальное время удержания данных на шине должно быть = 1.7 нс.

Сталкивался кто-нибудь с отрицательным Tsetup, и как правильно в таком случае задавать set_output_delay?

AD9117_timings.thumb.png.9d16ec5ab5e582b5e02ef43ce416a093.png

 

Edited by CloneCD

Share this post


Link to post
Share on other sites
On 9/4/2020 at 3:08 PM, CloneCD said:

Tsetup относительно фронта клока (т.е. если оно отрицательное, это значит что данные должны установиться за 0.2 нс до прихода фронта клока.)

Именно такое значение и должно быть до установки фронта клока. Для внешнего компонента - это зависимости к частоте. Для ПЛИС, я так подозреваю, отрицательное значение будет двигать констрейны клока пока входной/выходной delay не станет нулём/положительным числом.

Итого для Вашего случая время удерживания данных 1.7 нс

Так же для Вашего чипа заданы задержки на fall/rise, что тоже нужно учесть если присутствует работа с falling_edge фронтом.

Share this post


Link to post
Share on other sites
1 hour ago, Nick_K said:

Именно такое значение и должно быть до установки фронта клока.

Почему тогда для 1.8 V значение Setup положительное?

Я думаю что "-" это просто опечатка.

1.jpg.92ec0e2e03364b9a1bf6351309c3a626.jpg

Share this post


Link to post
Share on other sites

Тут вопрос во внутренней структуре и наличии буфферов/левел шифтеров. Скорее всего в этом ЦАП цифровая часть расположена во внутреннем 1.8V домене, посему наличие левел шифтера в цепи клока приводит к дополнительной задержке при передаче (т.к. он только 3-х вольтовый). Отсюда вытекает, что данные можно выставить позже в 1.8V домене, так как они попадут на вход регистров быстрее. В случае с 3.3V данными левел шифтеры будут как в цепи клока, так в цепи данных и задержка на входы регистров будет одинаковая, от чего данные требуется выставить раньше, чтобы соблюсти требования setup/hold для регистров.

Точно так же для клока может быть построено внутреннее клоковое дерево, которое в некоторых случаях будет требовать больше времени для накачки (много буфферов), чем цепь данных с парой буфферов и быстрым skew. Но тут тоже не обошлось без переходов доменов напряжения.

Share this post


Link to post
Share on other sites
18 часов назад, Nick_K сказал:

В случае с 3.3V данными левел шифтеры будут как в цепи клока, так в цепи данных и задержка на входы регистров будет одинаковая, от чего данные требуется выставить раньше, чтобы соблюсти требования setup/hold для регистров.

Я думаю, что в случае 1.8V и 3.3V данные должны располагаться по разные стороны от фронта, но всё-таки склоняюсь к противоположной расстановке: Для 3.3V данные должны быть после фронта а при 1.8V до.

Вот почему я так думаю:

1.  Время удержания (setup + hold) должно быть одинаковое. Т.е. внутренняя задержка работает как для setup данных так и hold, и на время удержания данных оно влиять не должно.

2.  Ранее в документации я встречал только положительное Tsetup, и там по временные диаграммам оно отсчитывалось влево от фронта(положительное значит ДО, следовательно отрицательное ПОСЛЕ).

Хотя Ваше рассуждение выглядит очень логично, но тогда есть не состыковка с двумя моими пунктами выше.

 

 

 

Share this post


Link to post
Share on other sites
19 hours ago, Nick_K said:

данные можно выставить позже в 1.8V домене,

:shok: Чего только не придумают чтоб заморочить людям голову!

Написали бы уже просто tSetup = 0 !!! но нет... :biggrin:

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.

Sign in to follow this