_sda 0 23 августа, 2018 Опубликовано 23 августа, 2018 · Жалоба Коллеги, опять я запутался. С приёмником как то быстро разобрался, а с передатчиком завис. Альтера, третий циклон. Вот описание: # 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). Что делать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 23 августа, 2018 Опубликовано 23 августа, 2018 · Жалоба Выходные данные идут из FAST OUTPUT REG ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 23 августа, 2018 Опубликовано 23 августа, 2018 · Жалоба Выходные данные идут из FAST OUTPUT REG ? Пробовал и так и этак. Результат нулевой - слеки остаются такими же с точностью до третьего знака. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bogaev_roman 0 23 августа, 2018 Опубликовано 23 августа, 2018 · Жалоба Пробовал и так и этак. Результат нулевой - слеки остаются такими же с точностью до третьего знака. Можно ссылку на документацию, согласно которой ограничения задавались? У меня просто на марвелл ограничения другие стоят #************************************************************** # 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 задержка огромная - т. е. там походу холд не вытягивается еще или запас очень маленький (он задержку подкрутил ненулевую). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 23 августа, 2018 Опубликовано 23 августа, 2018 · Жалоба Чип AR8035. А на вопросы ответов не знаете? Особенно интересует 2-й и 3-й. Кстати, только сейчас заметил - в Вашем варианте по сравнению с моим знаки разные для -max и -min. Где же истина? Я руководствовался AN477. Кстати, удалил фазовый сдвиг 90 градусов - сразу полегчало. Ну и кто может объяснить суть написанного в AN477? Но непонятки остались... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shivers 0 24 августа, 2018 Опубликовано 24 августа, 2018 · Жалоба А чего у Вас холд отрицательный? В доке же положительный холд. Ставьте 1.65 без минуса И сетап 2.2 в доке, а у вас 2 в констрейнте По входу констрейнты будут 1.65 холд и 2 (2.2?) сетап соотв. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bogaev_roman 0 24 августа, 2018 Опубликовано 24 августа, 2018 · Жалоба Кстати, только сейчас заметил - в Вашем варианте по сравнению с моим знаки разные для -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 параметром является клок а не выход регистра? Для входных/выходных ограничений это нормально - нас же интересует анализ в том числе и относительно клока. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 24 августа, 2018 Опубликовано 24 августа, 2018 · Жалоба Думаю что Вы не правы. Посмотрите внимательно следующую картинку. В моем варианте по документации очень хитро все расписано относительно периода. У Вас проще. Я сейчас тупить могу, но как я понял: для выходных задержек все прописывается относительно фронта/среза 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]}] Ну и при таких ограничениях производитель гарантирует работоспособность. Согласен, теперь со знаками всё нормально. А Вы тоже не делали сдвиг 90 градусов? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bogaev_roman 0 24 августа, 2018 Опубликовано 24 августа, 2018 · Жалоба Согласен, теперь со знаками всё нормально. А Вы тоже не делали сдвиг 90 градусов? Плохо разводилось (приходилось гвоздями прибивать клокконтрол), в документации советуют 90 градусов ставить. В трех проектах используется один и тот же контроллер, везде без сдвига. Работает стабильно, кстати, в режиме точка-точка при грамотном размере программного буфера UDP работает без пропусков, хотя все программисты утверждают о невозможности этого :biggrin: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 24 августа, 2018 Опубликовано 24 августа, 2018 · Жалоба Плохо разводилось (приходилось гвоздями прибивать клокконтрол), в документации советуют 90 градусов ставить. В трех проектах используется один и тот же контроллер, везде без сдвига. Работает стабильно, кстати, в режиме точка-точка при грамотном размере программного буфера UDP работает без пропусков, хотя все программисты утверждают о невозможности этого :biggrin: Знакомая ситуация - я уже давно всё прибиваю. У меня этот контроллер работал с Аррией - так там вообще никаких проблем не было. А вот с циклоном застрял, сейчас разводится без слэков а вот Digital Loopback никак не запускается. Вы не знаете, при работе этого режима проверяется ли CRC принятого физикой пакета? У меня такое впечатление что в физике символы из DDR в SDR собираются с ошибкой. Это если они при отправке у меня байты на тетрады не правильно бьются. А как проверить - х.з. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shivers 0 24 августа, 2018 Опубликовано 24 августа, 2018 · Жалоба Думаю что Вы не правы. Посмотрите внимательно следующую картинку. Внимательно смотрите что постите - на этом скрине тайминг для микросхемы PHY, а не плисины. Т.е. Вы должны взять даташит на фай, и сравнить его тайминг с этими требованиями. Если не совпадет, придется корректировать констрейнты плис. А так, для плис типовые констрейнты указаны в таблице под вейвформой, и холд там положительный, а не отрицательный. Можно конечно и отрицательный сделать, но это Вы сами у себя крадете ресурсы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 25 августа, 2018 Опубликовано 25 августа, 2018 · Жалоба Внимательно смотрите что постите - на этом скрине тайминг для микросхемы PHY, а не плисины. Т.е. Вы должны взять даташит на фай, и сравнить его тайминг с этими требованиями. Если не совпадет, придется корректировать констрейнты плис. А так, для плис типовые констрейнты указаны в таблице под вейвформой, и холд там положительный, а не отрицательный. Можно конечно и отрицательный сделать, но это Вы сами у себя крадете ресурсы. Выходные задержки FPGA всегда вычислялись руководствуясь сетапом и холдом микросхемы-приёмника. Значение холда в уравнение входит со знаком минус. И при чём здесь сетапы и холды FPGA? С ними STA сам разберётся. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Shivers 0 25 августа, 2018 Опубликовано 25 августа, 2018 · Жалоба - выходные задержки FPGA расчитываются действительно исходя из вейвформ микросхемы-приемника (если интерфейс - колхоз березка), либо исходя из требования стандарта (если интерфейс стандартный). RGMII - стандарт, вейвформы с таймингом для него Вы сами привели в одном из первых постов. Поэтому цифры надо брать из таблицы под вейвформой. - Вы о чем спросили в первом посте, про констрейнты? Я и пишу про констрейнты - сетапы и холды. Да будет Вам известно, что ключ -max это констрейнт проверки интерфейса по сетапу, а ключ -min соотв. констрейнт проверки интерфейса по холду. Пишете про STA, но похоже плохо понимаете что это это, и как работает. - В формуле холд используется с минусом, верно. Но в констрейнт записывается значение, соотвествующее вейвформе. На вейвформе холд показан положительным, т.к. сигнал снимается позже фронта клока. Отрицательный холд, это когда сигнал снимается ДО фронта клока. То же и в таблице - цифра указана с плюсом. Если Вы в констрейнт холда запишете не с плюсом (как требуется в данном случае) а с минусом, то ничего не нарушите поскольку констрейнт просто стал жесче. Но вытянет ли это требование САПР - другой вопрос. Собственно, давать Вам советы - занятие неблагодарное, как я вижу. Вместо того чтобы упереться рогом, прочитали бы учебник сначала. Так что, пусть кто другой дальше помогает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 25 августа, 2018 Опубликовано 25 августа, 2018 · Жалоба - выходные задержки FPGA расчитываются действительно исходя из вейвформ микросхемы-приемника (если интерфейс - колхоз березка), либо исходя из требования стандарта (если интерфейс стандартный). RGMII - стандарт, вейвформы с таймингом для него Вы сами привели в одном из первых постов. Поэтому цифры надо брать из таблицы под вейвформой. - Вы о чем спросили в первом посте, про констрейнты? Я и пишу про констрейнты - сетапы и холды. Да будет Вам известно, что ключ -max это констрейнт проверки интерфейса по сетапу, а ключ -min соотв. констрейнт проверки интерфейса по холду. Пишете про STA, но похоже плохо понимаете что это это, и как работает. - В формуле холд используется с минусом, верно. Но в констрейнт записывается значение, соотвествующее вейвформе. На вейвформе холд показан положительным, т.к. сигнал снимается позже фронта клока. Отрицательный холд, это когда сигнал снимается ДО фронта клока. То же и в таблице - цифра указана с плюсом. Если Вы в констрейнт холда запишете не с плюсом (как требуется в данном случае) а с минусом, то ничего не нарушите поскольку констрейнт просто стал жесче. Но вытянет ли это требование САПР - другой вопрос. Собственно, давать Вам советы - занятие неблагодарное, как я вижу. Вместо того чтобы упереться рогом, прочитали бы учебник сначала. Так что, пусть кто другой дальше помогает. Да Вы батенька хамить начинаете. Эту картинку тоже проигнорируете? Здесь Th = 0,4нс означает что данные должны оставаться стабильными не менее чем 0,4нс после фронта клока на внешнем девайсе. Но в set_output_delay это значение входит со знаком минус. Оно и понятно - и сетап и холд отсчитываются от одного и того же фронта клока, но находятся от него по разные стороны. Если за нулевую точку отсчёта времени принять момент фронта то тогда логично предположить что сетап и холд должны иметь разные знаки. А на "вейвформах" отображается не само время, а его модуль. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться