![](https://habrastorage.org/webt/5n/nc/k-/5nnck-9uscdlk5dauwbhuupvneg.png)
Система настройки и ввода ограничений (Constraint manager) в PADS Professional/Xpedition предоставляет пользователям полный контроль над всеми параметрами, которые влияют на целостность высокоскоростных сигналов. Сегодня мы разберем как можно включить в расчет общей длины проводника влияние длины и задержки (Pin Package Length and Delays) выводов микросхемы, а также влияние фактора переходных отверстий (ПО).
Все самое интересное под катом.
![](https://habrastorage.org/webt/2h/m3/me/2hm3mee1kblrzivhbxst-hcpxnu.png)
В данной статье я попытаюсь ответить на следующий вопросы:
- Фактор длины ПО
- Можно ли одновременно вводить ограничения по длине и задержке для выводов в Constraint Manager?
- Каково влияние задержек и длин для выводов на вкладке «Part» в CES?
- Как работает инструмент «Tuning meter» при использовании параметров длины выводов и фактора длины ПО?
- Влияние задержки в ПО на расчет общей задержки сигнала
Настройка задержки выводов в Constraint Manager
В PADS Professional/Xpedition версии VX2.2 и выше появилась возможность одновременного импорта файла с задержками и длинами выводов прямо в систему ввода ограничений.
Для того, чтобы выполнить импорт откройте CES, перейдите в меню File > Import > Package Delays и выберите ваш файл с задержками:
![](https://habrastorage.org/webt/ap/ly/it/aplyitvnpa9lyfhm1traz61dvqu.png)
Формат файлов PinPkgDelays/PinPkgLengths (*.txt/.*ppd/*.ppl) следующий:
![](https://habrastorage.org/webt/ch/p7/xe/chp7xenqw2x51dxonkb5tjpuvxo.jpeg)
Где unit — формат величины (от регистра не зависит):
- для задержки — секунды(s), миллисекунды (ms), микросекунды (us), наносекунды (ns) и пикосекунды (ps)
- для длины — тысячные дюйма (th), микроны (um), миллиметры (mm), дюймы (in)
part_name — ключевое слово, уникально идентифицирующее вашу микросхему
pin_number, value — здесь указывается номер вывода и соответствующее ему значение длины/задержки
Важно: инструмент импорта не поддерживает формат запятых, даже если у вас в CES они определены как разделители разрядов.
Небольшой пример файла PinPkgDelays.txt:
![](https://habrastorage.org/webt/is/j8/ml/isj8mls9ef4taqxwrzweane5goy.jpeg)
Автоматический расчет значений задержек
Если у вас имеется информация только о длине выводов микросхемы, то вы можете использовать CES для автоматического расчета значения задержки выводов, на основе задержки распространения сигнала, определенной в настройках CES (Setup > Settings):
![](https://habrastorage.org/webt/kv/yc/bm/kvycbmya6wbcmqgdpiaxubbbjl4.jpeg)
После того, как вы задали значения длины выводов, щелкните правой кнопкой мыши в ячейке соответствующей задержке контакта и выберите Calculate Delay и система автоматически рассчитает значение:
![](https://habrastorage.org/webt/cq/js/vf/cqjsvffk9ldiuhs3g3klxlg8liw.png)
Ниже будут приведены примеры для различных случаев использования Via Lengths, Via Delay и Pin Package Lengths.
Пример №1
В данном примере не используются параметры Via или Pin Package Length:
![](https://habrastorage.org/webt/ij/ys/me/ijysmekubotocpxswxzkqbcxsxq.png)
Добавление длины 100th к каждому выводу компонента U1 дает следующие значения:
![](https://habrastorage.org/webt/6z/3n/zg/6z3nzgualpdtckxy7i8oeh2stgu.png)
Tuning Meter теперь отображает значения длины проводника, с учетом добавленных 100th к каждому выводу компонента:
![](https://habrastorage.org/webt/r1/cp/he/r1cphedkbmi6b9fkohasrepqxkg.png)
Пример №2
Теперь переходим в меню Setup >Setup Parameters и на вкладке Via Defenitions задаем значение Via Length Factor равное 1.
![](https://habrastorage.org/webt/5n/nc/k-/5nnck-9uscdlk5dauwbhuupvneg.png)
Примечание: значение длины ПО рассчитывается на основе вашего стэка платы. Также Обратите внимание, что для расчета длины ПО толщина меди начального и конечного слоев НЕ учитывается. На рисунке ниже показано как происходит расчет длины ПО сигнала, переходящего со слоя 1 на слой 3 и со слоя 3 на слой 8:
![](https://habrastorage.org/webt/rq/pi/i2/rqpii2mykawoyrujfrbmwssp4n8.jpeg)
Фактическая длина проводника в менеджере ограничений изменится, как только мы зададим коэффициент длины ПО:
![](https://habrastorage.org/webt/hz/ir/yq/hziryqcuomgvzjuxk-19vu0plti.png)
Теперь длина проводника, отображаемая в Tuning Meter, включает в себя коэффициент длины ПО и длину выводов:
![](https://habrastorage.org/webt/_n/ju/kv/_njukvbzpg1unfaute-_yhay3bi.png)
Пример №3
На этом этапе мы добавим задержку Pin Package Delay 0,02 нс:
Давайте для наглядности посмотрим значения задержки, рассчитанное для проводника в режиме TOF, при условии, что Pin Package Delay установлен в значение 0:
![](https://habrastorage.org/webt/ij/sw/yr/ijswyrbezfqtuo_1dw7gfpvxark.png)
Теперь зададим для Pin Package Delay значение в 0.02 нс:
![](https://habrastorage.org/webt/_9/sj/so/_9sjsovhnrq25__ajedrbtr_ihw.png)
Задержка в менеджере ограничений для данного сигнала изменилась на 0.02 и мы в этом можем убедиться:
![](https://habrastorage.org/webt/5-/kw/jk/5-kwjkrtoirogtnlzegzelmc_2e.png)
Пример №4
Теперь давайте рассмотрим случай, когда одновременно установлены Pin Package Delay и Pin Package Length а также Via Delay и Via Length Factor и как это повлияет на расчет общей длины/задержки проводника.
На рисунке ниже показана задержка распространения сигнала в проводнике при нулевых значениях Pin Package Delay и Via Delay в инструменте Tuning Meter:
![](https://habrastorage.org/webt/vy/er/8e/vyer8em_6s7hdsivagipv4v_cl4.png)
Следующим шагом устанавливаем Pin Package Delay в 0.02 нс и смотрим изменения:
![](https://habrastorage.org/webt/2k/yx/kj/2kyxkjurjlepjggzv2z6-_f8wz0.png)
Теперь, если мы зададим еще значение в поле Pin Package Length или Via Lenght Factor, то значение задержки никак не изменится, так как мы работаем в режиме TOF.
Но если мы установим Pin Package Delay и Via Delay в значение 0.02 нс, то мы получим следующий результат:
![](https://habrastorage.org/webt/-1/ca/az/-1caazhpau1lg1lay8iemyjbhoi.png)
В редакторе ограничений задержка распространения сигнала по проводнику, с установленными параметрами Pin Package Delay и Via Delay со значением 0.02 нс будет выглядеть следующим образом:
![](https://habrastorage.org/webt/ml/d0/l5/mld0l59oojujaqtcdaqyy7ansla.png)
Via Delay и Via Length Factor можно настроить через меню Setup > Setup Parameters на вкладке Via Defenitions:
![](https://habrastorage.org/webt/li/mj/yn/limjynlufn0aje1tohebbvbem6o.png)
Заключение
Система ввода ограничений PADS Professional/Xpedition позволяет задавать одновременно и длину выводов и значения задержки, НО если у вас в CES задан вариант расчета по времени распространения сигнала (TOF), то система будет использовать значения из ячейки Pin Package Delay, а если вариант расчета по длине (Length) — система будет брать значения из ячейки Pin Package Lengths.
Тоже самое касается и влияние ПО. Если тип задержки, определенный в менеджере ограничений задан как Length, то будет использоваться коэффициент длины (Via Length Factor) ПО, в случае TOF будет использоваться значение Via Delay.
Надеюсь, что вышло не слишком громоздко и запутанно.
Все непонятные моменты готов обсуждать в комментариях.
Филипов Богдан PBO, Product-manager по решениям PADS
Комментарии (8)
Exeland
23.01.2019 08:49А что за величина th?
pbo Автор
23.01.2019 08:52Th это тоже самое что и mils, то есть одна тысячная от дюйма (1000th=1inch)
Exeland
23.01.2019 09:22Ясно. Я привык видеть mils. Странно, что настройки CES (Setup > Settings) задаются в mm, а расчёт идёт в th.
pbo Автор
23.01.2019 09:27Тот скриншот, на котором показаны Настройки, служит только для того, чтобы показать где находится параметр, на основании которого происходит перерасчёт длины в значение задержки. Я сделал скрин просто с другого проекта, там заданы величины в mm. Извиняюсь за несостыковку
Inanity
А откуда брать этот *.ppd файл с задержками? Это общепринятый формат? Насколько мне известно, производители предоставляют IBIS модель, откуда можно путём несложных расчётом получить величины задержек. Почему бы тогда не сделать импорт IBIS?
pbo Автор
Это необязательно *.ppd можно и txt. Данные файлы можно найти на сайтах производителя микросхемы, либо вычислить опытным путём через моделирование, например используя средства HyperLynx
pbo Автор
Сделал небольшие правки, касаемо импорта и структуры файлов:
![](https://habrastorage.org/webt/ch/p7/xe/chp7xenqw2x51dxonkb5tjpuvxo.jpeg)
Формат файлов PinPkgDelays/PinPkgLengths (*.txt/.*ppd/*.ppl) следующий:
Где unit — формат величины (от регистра не зависит):
part_name — ключевое слово, уникально идентифицирующее вашу микросхему
pin_number, value — здесь указывается номер вывода и соответствующее ему значение длины/задержки
Важно: инструмент импорта не поддерживает формат запятых, даже если у вас в CES они определены как разделители разрядов.
Небольшой пример файла PinPkgDelays.txt:
pbo Автор
В дополнении к вопросу о том где брать файлы с задержками, если их нет в документации на микросхему:
![](https://habrastorage.org/webt/cg/om/1b/cgom1bhiiaqbgyr9ow5ikrwmvcc.jpeg)
1) Касаемо Xilinx, можно cгенерировать файл c задержками в формате .csv через Vivado, для этого откройте проект вашей ПЛИС, RTL или netlist, затем перейдите в меню File > Export > Export I/O Ports и выберите формат csv
2) В HyperLynx VX2.4 при анализе цепей вы можете в настройках осциллографа изменить расположение щупов и установить их либо на шариковый вывод ПЛИС, либо на кристалл, либо использовать локацию описанную параметром timing_location в IBIS-модели и измерить полную задержку линий передачи: