Вынес в отдельную тему скрипт для выравнивания дифференциальных пар.
Скрипт предназначен для помощи в выравнивании дифференциальных пар с учетом задержек в IC.
Коротко по интерфейсу.
D2D skew tolerance - погрешность выравнивания в между дифф парами группе;
P2N skew tolerance - погрешность выравнивания внутри пары между P и N цепями;
Delay - задержка распространения сигнала в материале, пс/мм;
Lic - длина (время) вносимая IC;
Lb - длина разведенная;
Leb - требуемая длина для обеспечения параметра D2D skew tolerance;
Lsum - суммарная длина;
D2D - результат обеспечения параметра D2D skew tolerance;
P2N - результат обеспечения параметра P2N skew tolerance.
Алгоритм работы такой.
Оператор запускает скрипт и выбирает класс дифф пар. Если необходимо учитывать задержку FPGA, то выбирает микросхему и загружает файл.
Забив необходимые значения в поля skew tolerance, выполняет трассировку пар. Скрипт производит вычисления и обновляет данные в окне.
Все введенные оператором данные, а также последний выбранный класс сохраняются в папке с проектом, те после перезапуска скрипта можно возобновить работу.
При работе скрипта не создается никаких PcbObject-ов. По сути данный скрипт дополняет/заменяет окно PCB.
Из нереализованного: 1 - Учет задержек нескольких IC;
2 - Вывод репорта в файл или на экран;
3 - Фильтр пары на PCB, выбранной в рабочем окне скрипта;
4 - …
Формат CSV файла с задержками в IC (без фигурных скобок): {PIN};{задержка, пс}
Замеченные баги:1 - Вылет из Альтиума при активации PCB фильтра, если скрипт зарегистрирован в настройках. Замечен на нескольких машинах. Видно, как на короткое время происходит запуск рабочего окна скрипта после чего и происходит вылет. На моей рабочей машине этот баг не наблюдается.
2 – Невозможно выполнить PCB фильтр при активном скрипте. Ограничение Альтиума на количество выполняемых одновременно скриптов.
О неточностях работы и найденных багах можно отписываться здесь или в трекере на github.
Ссылка на github:
СКРИПТ