Skryppy 1 29 января, 2019 Опубликовано 29 января, 2019 · Жалоба Здравствуйте. Подскажите какие требования к допустимым отклонениям длины lvds сигналов мне заложить для прибора с ПЛИС. Конструкторы требуют от меня данные. Нашел в интернете формулу, получились такие данные: Шина данных Data1_p, data1_n ... data 9 - частота 420 МГц. 1) Погрешность длины для _p или _n одного сигнала не больше 0,635 мм. 2) длины дорожек для группы сигналов (10 пар сигналов с АЦП, 420 МГц) должны различаться не более 6.35 мм. (Режим работы DDR) Правильно ли я задал данные, или ошибся? Какие примерно должны быть требования к сигналам с такими частотами? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dinam 1 30 января, 2019 Опубликовано 30 января, 2019 · Жалоба Я задавал не более 1 мм для, меня так спокойней. 7пс/мм, значит у вас будет 6.35*7=44.45 пс заложенный разбег по плате. В реальности может будет побольше, т. к. вдруг некоторые линии придется через переходные отверстия пропускать, а другие нет. Или на внутренних и внешних слоях проводить. По крайней мере у меня только так развелось. А точно разность прохождения сигналов я не считал, только длину, а это не совсем одно и тоже. Плюс вот прямо сейчас посмотрел в Quartus LVDS Receiver Package Skew Compensation на своем проекте для 8 LVDS разность = 44пс, которую рекомендуется компенсировать длинами проводников на печатной плате. Как то так, может кто из более опытных товарищей поправит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Skryppy 1 30 января, 2019 Опубликовано 30 января, 2019 · Жалоба Понятно, спасибо. На всякий случай задам 1 мм. Пусть лучше тяжелей развести, зато подгоном задержек внутри ПЛИС меньше надо будет заниматься. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dinam 1 31 января, 2019 Опубликовано 31 января, 2019 · Жалоба Т.к. я сам платы развожу и для FPGA пишу, то нам мой взгляд выровнять LVDS на плате намного проще, чем потом пытаться что-то сделать с задержками. Я пока до конца не разобрался, но похоже выровнять разные skew с помощью констрейнов не получится. Применил IP LVDS_RX с внутренним pll. Не получилось выдержать нужное значение по hold. Сделал внешнюю pll, чтобы подвигать фазу клока относительно данных. Перестали выводиться времена setup и hold. Т.е. Quartus перестал их почему то анализировать. И в проигнорированных кострейнах входы LVDS не появились. Грешу на появление строчек типа, которые автоматом добавились. set_false_path -to [get_pins { LVDS_RX_inst|ALTLVDS_RX_component|auto_generated|sd1|dinfiforx[0]}] Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Skryppy 1 31 января, 2019 Опубликовано 31 января, 2019 · Жалоба Подскажите, что-то я запутался. Пусть будем считать, что все дорожки от ПЛИС к АЦП разведут идеально и все длины будут идентичны. Из Vivado экспортировал я файл *.csv с минимальными и максимальными задержками корпуса. Нашел абсолютные значения задержек, получилось: Min trace delay = 46 ps для ножки g12 Max trace delay = 284 ps для ножки ac30. Получается сигнал к контакту G12 должнен быть на 284-46=238 ps дольше, т.е дорожка на 238 ps/7 ps = 34 мм длиннее? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dinam 1 31 января, 2019 Опубликовано 31 января, 2019 · Жалоба Меня смущают ваши значения. Выше приведенная мною разность = 44пс это значения для 8 LVDS, которые расположены в 3х разных банках! Вы конкретные значения констрейнов для входов задавали, когда получили ваши значения? Типа таких Спойлер set_input_delay -max -add_delay -clock [get_clocks {SEN_OUTCLK}] [expr $unit_interval - $tsudo] [get_ports {LVDS_IN[*]}] set_input_delay -min -add_delay -clock [get_clocks {SEN_OUTCLK}] $thddo [get_ports {LVDS_IN[*]}] Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Skryppy 1 31 января, 2019 Опубликовано 31 января, 2019 · Жалоба Нет не задавал. Файл задержек корпуса экспортируется без проекта. Я специально нашел максимальные расхождения в задержках. Понятно, что для проекта сейчас буду закладывать близко стоящие ножки, но тем не менее, если взбредёт в голову использовать именно эти ножки, то так получается? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dinam 1 31 января, 2019 Опубликовано 31 января, 2019 · Жалоба Я честно говоря не знаю при наличии таких констрейнов, Quartus в моём случае, может как-то уменьшить расхождения в задержках или нет. Или они жестко заданы топологией, которую Quartus подкорректировать не может. Вообще я параллельно пишу минимальную тестовую прошивку и развожу плату и уже перед отдачей на изготовление обязательно проверяю, что все выводы, переброшенные при разводке платы, работают так как я запланировал. Что частоты необходимые достигаются с такой прошивкой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Skryppy 1 31 января, 2019 Опубликовано 31 января, 2019 · Жалоба Спасибо. Я хоть немного разобрался. Проект я уже сделал под конкретные контакты. Все констрейны проекта выполнились. Осталось правильно развести и настроить. Разница задержек для одного банка artix 7 получается до 90 пс. Если что буду настраивать внутри проекта с помощью add_delay и других различных офсетов если будут проблемы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vladec 10 31 января, 2019 Опубликовано 31 января, 2019 · Жалоба 2 часа назад, Skryppy сказал: Если что буду настраивать внутри проекта с помощью add_delay и других различных офсетов если будут проблемы. А не проще пересчитать разность в задержках из наносекунд в миллиметры на Вашей плате (через Сатурн или Полар) и учесть их при разводке Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Skryppy 1 31 января, 2019 Опубликовано 31 января, 2019 · Жалоба Впервые слышу об этих программах. Посмотрю информацию, может так проще будет. Плата будет разводиться в P-cad 2006. Попробую смоделировать поведение в программах для разводки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vladec 10 1 февраля, 2019 Опубликовано 1 февраля, 2019 · Жалоба 23 часа назад, Skryppy сказал: Впервые слышу об этих программах. Это наиболее известные PCB калькуляторы -- волновые сопротивления, задержки распространения и т.п. Polar Si9000 https://www.polarinstruments.com/ Saturn http://www.saturnpcb.com/presentation/ Saturn - была бесплатная, сейчас не знаю, Polar -- платная поищите ее где надо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 1 февраля, 2019 Опубликовано 1 февраля, 2019 · Жалоба Saturn PCB Toolkit бесплатная. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aner 5 1 февраля, 2019 Опубликовано 1 февраля, 2019 · Жалоба 6 часов назад, ViKo сказал: Saturn PCB Toolkit бесплатная. таки да. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Skryppy 1 1 февраля, 2019 Опубликовано 1 февраля, 2019 · Жалоба On 1/30/2019 at 1:00 PM, dinam said: Скачал Saturn. Вот что он мне выдал при настройках по умолчанию Получается 7.1 пс/мм Параметры материалов я уточню у конструкторов, но по крайней мере можно идти к ним с данными. Покажу эти расчеты. Поговорил недавно с одним конструктором, он сказал, что всегда старались сделать дорожки одинаковой длины, никто корректировкой не заморачивался из плисоводов на предприятии. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться