реклама на сайте
подробности

 
 
> Констрейны выходного порта RGMII
_Anatoliy
сообщение Aug 23 2018, 07:07
Сообщение #1


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Коллеги, опять я запутался. С приёмником как то быстро разобрался, а с передатчиком завис.
Альтера, третий циклон.
Вот описание:
Код
# Set Output Delay
create_generated_clock \
    -source {comp21|altpll_component|auto_generated|pll1|inclk[0]} \
    -phase 90.00 \
    -duty_cycle 50.00 \
    -name {ETH_TX_CLK} \
    {comp21|altpll_component|auto_generated|pll1|clk[0]}
create_generated_clock \
    -source {comp21|altpll_component|auto_generated|pll1|inclk[0]} \
    -duty_cycle 50.00 \
    -name {clk125} \
    {comp21|altpll_component|auto_generated|pll1|clk[1]}

create_generated_clock -name tx_output_clock -source [get_pins {comp21|altpll_component|auto_generated|pll1|clk[0]}] [get_ports {eth_tx_clk}]

set_output_delay -clock tx_output_clock -max 2.0 [get_ports eth_txd*]
set_output_delay -clock tx_output_clock -min -2.0 [get_ports eth_txd*] -add_delay
set_output_delay -clock tx_output_clock -clock_fall -max 2.0 [get_ports eth_txd*] -add_delay
set_output_delay -clock tx_output_clock -clock_fall -min -2.0 [get_ports eth_txd*] -add_delay

set_output_delay -clock tx_output_clock -max 2.0 [get_ports {eth_tx_en}]
set_output_delay -clock tx_output_clock -min -2.0 [get_ports {eth_tx_en}] -add_delay
set_output_delay -clock tx_output_clock -clock_fall -max 2.0 [get_ports {eth_tx_en}] -add_delay
set_output_delay -clock tx_output_clock -clock_fall -min -2.0 [get_ports {eth_tx_en}] -add_delay

set_false_path -fall_from [get_clocks clk125] -rise_to [get_clocks tx_output_clock] -setup
set_false_path -rise_from [get_clocks clk125] -fall_to [get_clocks tx_output_clock] -setup
set_false_path -fall_from [get_clocks clk125] -fall_to [get_clocks tx_output_clock] -hold
set_false_path -rise_from [get_clocks clk125] -rise_to [get_clocks tx_output_clock] -hold

Здесь clk125 - клок для модулей Ethernet.
На картинке реакция таймквеста :

1). Правильно ли написан скрипт?
2). Почему Clock Delay для Launch имеет отрицательную задержку?
3). Почему в столбце From Node параметром является клок а не выход регистра?
4). Почему такие большие задержки? Может в настройках Fittera нужно что то подкрутить?
5). Что делать?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Flip-fl0p
сообщение Aug 23 2018, 07:27
Сообщение #2


В поисках себя...
****

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



Выходные данные идут из FAST OUTPUT REG ?
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Aug 23 2018, 07:42
Сообщение #3


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(Flip-fl0p @ Aug 23 2018, 10:27) *
Выходные данные идут из FAST OUTPUT REG ?

Пробовал и так и этак. Результат нулевой - слеки остаются такими же с точностью до третьего знака.
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Aug 23 2018, 08:17
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(_Anatoliy @ Aug 23 2018, 10:42) *
Пробовал и так и этак. Результат нулевой - слеки остаются такими же с точностью до третьего знака.

Можно ссылку на документацию, согласно которой ограничения задавались?
У меня просто на марвелл ограничения другие стоят
Код
#**************************************************************
# Set Output Delay
#**************************************************************
#88e1111-DS Register 20.1 = 1 Tsetup=-0.9ns/Thold=2.7ns GTX_CLK+0deg (page 218)
set_output_delay -clock { clk125_txclk } -rise -max -0.9 [get_ports {TX_CONTROL RGMII_OUT[0] RGMII_OUT[1] RGMII_OUT[2] RGMII_OUT[3]}] -add_delay
set_output_delay -clock { clk125_txclk } -fall -max -0.9 -add_delay  [get_ports {TX_CONTROL RGMII_OUT[0] RGMII_OUT[1] RGMII_OUT[2] RGMII_OUT[3]}]
set_output_delay -clock { clk125_txclk } -rise -min 2.7 [get_ports {TX_CONTROL RGMII_OUT[0] RGMII_OUT[1] RGMII_OUT[2] RGMII_OUT[3]}] -add_delay
set_output_delay -clock { clk125_txclk } -fall -min 2.7 -add_delay  [get_ports {TX_CONTROL RGMII_OUT[0] RGMII_OUT[1] RGMII_OUT[2] RGMII_OUT[3]}]

Просто 4 нс на нестабильность - многовато получается.
PS. Можно еще сдвиг по фазе убрать, плюс на самих DDIO задержка огромная - т. е. там походу холд не вытягивается еще или запас очень маленький (он задержку подкрутил ненулевую).
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Aug 23 2018, 08:45
Сообщение #5


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(bogaev_roman @ Aug 23 2018, 11:17) *

Чип AR8035.
А на вопросы ответов не знаете? Особенно интересует 2-й и 3-й.
Кстати, только сейчас заметил - в Вашем варианте по сравнению с моим знаки разные для -max и -min. Где же истина?
Я руководствовался AN477.
Кстати, удалил фазовый сдвиг 90 градусов - сразу полегчало.
Ну и кто может объяснить суть написанного в AN477? Но непонятки остались...
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Aug 24 2018, 07:50
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(_Anatoliy @ Aug 23 2018, 11:45) *
Кстати, только сейчас заметил - в Вашем варианте по сравнению с моим знаки разные для -max и -min. Где же истина?

В моем варианте по документации очень хитро все расписано относительно периода. У Вас проще. Я сейчас тупить могу, но как я понял:
для выходных задержек все прописывается относительно фронта/среза GTX_CLK - максимальное время установки 2.2. нс, минимальное время удержания 1.65. Соответственно получается (тут еще потребуется добавить нестабильность разводки по плате):
Код
set_output_delay -clock { clk125_txclk } -rise -max 2.2 [get_ports {TX_CONTROL RGMII_OUT[0] RGMII_OUT[1] RGMII_OUT[2] RGMII_OUT[3]}] -add_delay
set_output_delay -clock { clk125_txclk } -fall -max 2.2 -add_delay  [get_ports {TX_CONTROL RGMII_OUT[0] RGMII_OUT[1] RGMII_OUT[2] RGMII_OUT[3]}]
set_output_delay -clock { clk125_txclk } -rise -min -1.65 [get_ports {TX_CONTROL RGMII_OUT[0] RGMII_OUT[1] RGMII_OUT[2] RGMII_OUT[3]}] -add_delay
set_output_delay -clock { clk125_txclk } -fall -min -1.65 -add_delay  [get_ports {TX_CONTROL RGMII_OUT[0] RGMII_OUT[1] RGMII_OUT[2] RGMII_OUT[3]}]

Ну и при таких ограничениях производитель гарантирует работоспособность.
Цитата
2). Почему Clock Delay для Launch имеет отрицательную задержку?

Я не знаю как у Вас pll настроена - при разных настройках временной анализ нулевой точки может отличаться.
Цитата
3). Почему в столбце From Node параметром является клок а не выход регистра?

Для входных/выходных ограничений это нормально - нас же интересует анализ в том числе и относительно клока.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th August 2025 - 09:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.02103 секунд с 7
ELECTRONIX ©2004-2016