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

1 hour ago, _sda said:

В тексте не видно фальспассов...

Взято из template Xilinx, всё что есть

Screenshot from 2019-11-27 13-46-43.png

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


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

18 минут назад, doom13 сказал:

Взято из template Xilinx, всё что есть

Они забыли :smile:

Вот что рекомендует Альтера:

image.thumb.png.7db17ab93741736f76edc1982bfa58c4.png

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


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

1 hour ago, _sda said:

Вот что рекомендует Альтера:

Вот смотрю, какие false path тут можно добавить и не нахожу вариантов. У Альтера всё задаётся относительно двух клоков, один из которых виртуальный, тут такого нет, как для передающей части, так и для приёмной. Вроде как должно быть правильно.

 

Можно проект скачать на 3-ей странице в самом низу, будет наглядней.

Вопрос остался.

 

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


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

А мне ваше рассуждение странно. На кой ляд мерять задержки между rising и falling фронтами... Надо бы от rising до rising...

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


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

Похоже у нас нестыковки из-за разных методов формирования клока DDR. По диагонали просмотрел ваш вариант, а советы начал давать по другому варианту, который я обычно делаю. Сорри.

Этот вариант на картинке.

image.thumb.png.da727a4559d845739a01e7ce1823a9e4.png

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


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

46 minutes ago, _sda said:

А мне ваше рассуждение странно. На кой ляд мерять задержки между rising и falling фронтами... Надо бы от rising до rising...

Ну как бы интерфейс DDR. Или я не понял что вы хотели сказать?

На 2 странице скрины с расчётом прохождения данных и клока. Вы видите там ошибку? Для анализа setup использует clock LAN_RXC fall edge (4.00) и clock LAN_RXC rise edge (8.00).

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


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

Приветствую!

Выкроил время разобраться что и как с этим DDR 

Для начала упрощаем задачу -  есть SDR порт   для которого задается input delay 

# input                  ____________________
# clock    _____________|                    |_____________
#                       |                    |                 
#                dv_bre | dv_are      dv_bfe | dv_afe
#               <------>|<------>    <------>|<------>
#          _    ________|________    ________|________    _
# data     _XXXX____Rise_Data____XXXX____Fall_Data____XXXX_
  
set_input_delay -clock $rgmii_rx_clk -max [expr $rgmiirx_rxc_period/2 - $rgmiirx_dv_bfe] [get_ports $input_ports]
set_input_delay -clock $rgmii_rx_clk -min $rgmiirx_dv_are                                [get_ports $input_ports]

 После  P&R видим  timing ошибки setup   анализ которых говорит 

задержка данных 3.992ns  - из них 2.8ns это внешняя задержка  dv_bfe, соответсвенно задержка пути данных в FPGA всего 1.192ns

задержка пути клока для LAN_RXC составляет 1.754ns  -  казалось бы  задержки почти  равны - откуда тогда ошибки???

 А ошибки из за времени  Setup_IDDR_HDIOLOGIC_S_CB_D равного 2.660ns. Как можно понять из названия это требуемое время setup данных на D входе IDDRE1 относительно пина CB.  (DS922  Global Clock Input Setup and Hold With 3.3V HD) 

Получается без дополнительной задержки клока  требования по setup не выполнить.  

Удачи! Rob.

P.S. Хотя все одно странное время Setup_IDDR_HDIOLOGIC_S_CB_D. Не понятно как это время считается. В табличке вроде как времена pin to pin приводят.

   

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


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

28 minutes ago, RobFPGA said:

Получается без дополнительной задержки клока  требования по setup не выполнить.

Спасибо. Что скажете про передающую сторону (ссылка на пост выше)? Там всё норм?

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


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

Приветствую!

Интересно получается  - если setup время для faling edge  2.660ns а max delay время после rising edge время 2.8ns то формально уложится в требуемый бюджет будет сложно.

Так как клок надо задержать на 2.66-1.2 =1.46 ns  Но тогда rising edge hold будет  1.2-1.46  = -0.26 ns  что очень близко к - 0.35 ns из таблички.

Если я конечно чего  либо не напутал.

Удачи! Rob.  

 

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


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

16 hours ago, doom13 said:

Вы неверно считаете значение задержек. 

1. Сетап. Полный период Т=8 , значение сетап на приемной части  tsu-r. Значит, на долю внешней задержки приходится Т - tsu- r(можно еще вычесть задержку по плате, но это расслабит констрейнт) .То же, и по спадающему фронту, но использовать tsu-f.

Ошибся. тут все верно. Можно приплюсовать задержку по плате, для реалистичности

2. Холд. Время удержания на приемнике равно  tsu-r, поскольку проверка в том же такте. Это и есть холд, в Вашем случае он положительный (с плюсом). По спадающему фронтеу надо использовать thd-f соотв.

т.е. ошибка только в знаке. Но можно еще вычесть задержку по плате, для реалистичности

3. Опять нет фалзпасов. Они обязательны при таком способе констрейнинга ddr интерфейса, поскольку констрейнты задаются раздельно - как будто идет работа по райзу клока (полный период - Т), и отдельно - по фоллу клока (снова полный период), а кросс путей (удвоение частоты) между ними нет. Впрочем, если Вы уже задали эти фалзпасы (но не запостили), тогда норм. Второй способ как можно констрейнить ddr - через виртуальные клоки, но не хочу Вас путать.

Изменено пользователем Aleх

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


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

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

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

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

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

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

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

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

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

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