Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: xSignals. Доступ к членам класса из delphi скрипта.
Форум разработчиков электроники ELECTRONIX.ru > Печатные платы (PCB) > Разрабатываем ПП в САПР - PCB development > Altium Designer, DXP, Protel
Vasen
Добрый день, уважаемые форумчане.

Возникла проблема, которую я не могу разрешить. Суть следующая.
Нарисовал скрипт, который решает задачи выравнивания дифференциальных пар как внутри пары, так и в группе с учетом задержек FPGA.

Утилита еще сыровата, но с полторы сотни дифф пар я справился быстро.
Дошел вопрос до выравнивания шин DDR3. Для выравнивания оных я использовал классы xSignal и правила для этих классов, но это без использования утилиты.
И встал вопрос как получить доступ к элементам класса xSignal из скрипта. В типе TObjectId нет поля соответствующего данному классу.
Владимир
Поделитесь когда доделаете?
Вам сюда нужно писать
доступ дают по просьбе
Vasen
Цитата(Владимир @ Mar 30 2015, 15:28) *
Поделитесь когда доделаете?
Вам сюда нужно писать
доступ дают по просьбе

Владимир, не вопрос, поделюсь. Почищу малеха код, кину на github и ссылку выложу здесь.
Худо, худо с документаций у Altium-а.
peshkoff
Цитата(Vasen @ Mar 30 2015, 14:58) *
..
Нарисовал скрипт, который решает задачи выравнивания дифференциальных пар как внутри пары, так и в группе с учетом задержек FPGA.
...


А какой алгоритм работы? И чем не устраивает скрипт, что на гуглопэйдже?
Владимир
Цитата(peshkoff @ Mar 30 2015, 15:59) *
А какой алгоритм работы? И чем не устраивает скрипт, что на гуглопэйдже?

В том недостатков не меньше чем достоинств.
А алгоритм действительно интересен. Потому как
Цитата
скрипт, что на гуглопэйдже?
не прицепить к xSignal
peshkoff
Цитата(Владимир @ Mar 30 2015, 16:14) *
В том недостатков не меньше чем достоинств.
А алгоритм действительно интересен. Потому как не прицепить к xSignal


я так понял, что изначально скрипт работает без XSignals. Его алгоритм и интересен как раз. И почему автор не использовал его изначально.

А почему его не прикрутить? Тот скрипт добавляет отростки, равные длине проводника внутри микросхемы. Не все ли равно хСигнал это или нет..
Vasen
Цитата(peshkoff @ Mar 30 2015, 15:59) *
А какой алгоритм работы? И чем не устраивает скрипт, что на гуглопэйдже?


Скрипт с гуглопейджа я рассматривал. Он ориентирован на выравнивание шин DDR, и у меня не получилось добиться вменяемой работы от него.
Задача по выравниванию внутри пары и группы является задачей разработчика как и прежде. Скрипт производит расчет длин с учетом всех нюансов и выводит в форму,
по которой ориентируется разработчик. Из-за некоторых нюансов альтиума получилось не все как планировалось, но на данный момент результатом доволен.
Если интересует более подробная работа скрипта, то постараюсь описать вечером в районе 00 по московскому.


Вот рабочее окно скрипта.
peshkoff
Почему он ориентирован на выравнивание DDR? че-то я не догоняю...
Он тупо добавляет отростки, что внутри микросхемы...

Я его использую и для FMC, все ОК
Vasen
Коротко по интерфейсу.

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.

Цитата(peshkoff @ Mar 30 2015, 17:04) *
Почему он ориентирован на выравнивание DDR? че-то я не догоняю...
Он тупо добавляет отростки, что внутри микросхемы...

Я его использую и для FMC, все ОК


Мы об одном и том же скрипте говорим - LengthTuningHelper_v1.0.

Если да, то Сам автор об этом говорит. В конечном итоге получилось на данный момент, то что получилось.
Владимир
Да он достаточно вменяем и позволяет выравнивать и так и сяк
Недостак - наличие вне платы отрезков линий.
Это требует или правил или игнорирование не разведенных, не такой ширины и так далее

Прикрутить его к XSignal не получится, так как пойдут линии к этим отрезкам, и они будут учитываться в XSignal, а это не допустимо.

Если Ваш скрипт работает по иному принципу-- это было бы интересно
peshkoff
Цитата(Vasen @ Mar 30 2015, 17:10) *
Коротко по интерфейсу.

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.



Мы об одном и том же скрипте говорим - LengthTuningHelper_v1.0.

Если да, то Сам автор об этом говорит. В конечном итоге получилось на данный момент, то что получилось.


Да, именно об этом.
Он пишет, что изначально задумывался для DDR3, но в коде ничего такого нет, да, собственно и быть не может.
ASCii файл не несет в себе данных ддр3 это или нет...

сейчас единственная засада, .pkg файлы получаются в пикосекундах, нельзя прямиком подсунуть.
Я тогда екселем конвертирую.

в общем, подожду тогда описание, пока не понятно
Владимир
Цитата(peshkoff @ Mar 30 2015, 17:21) *
сейчас единственная засада, .pkg файлы получаются в пикосекундах, нельзя прямиком подсунуть.
Я тогда екселем конвертирую.

у меня болтался допиленный вариант скрипта - там прямиком подпихивается
peshkoff
Цитата(Владимир @ Mar 30 2015, 17:24) *
у меня болтался допиленный вариант скрипта - там прямиком подпихивается


у меня тоже допиленный.
запоминает микросхему и класс, что был выбран последним.

Может объединить их как нибудь?

а как он пикосекунды переводит в мм? По среднему? там же мин и макс.
Vasen
Цитата(peshkoff @ Mar 30 2015, 17:21) *
Да, именно об этом.
Он пишет, что изначально задумывался для DDR3, но в коде ничего такого нет, да, собственно и быть не может.
ASCii файл не несет в себе данных ддр3 это или нет...

сейчас единственная засада, .pkg файлы получаются в пикосекундах, нельзя прямиком подсунуть.
Я тогда екселем конвертирую.

в общем, подожду тогда описание, пока не понятно


Все правильно. Но мне тогда идея создания треков не понравилась. И каким образом после задавать правила контролирующие процесс разводки.
Как не тужил мозг, так и не придумал как этот скрипт правильно прикрутить.

Алгоритм работы такой.
Оператор запускает скрипт и выбирает класс дифф пар. Если необходимо учитывать задержку FPGA, то выбирает микросхему и загружает файл.
Забив необходимые значения в поля skew tolerance, выполняет трассировку пар. Скрипт производит вычисления и обновляет данные в окне.
Все введенные оператором данные, а также последний выбранный класс сохраняются в папке с проектом, те после перезапуска скрипта можно возобновить работу.
При работе скрипта не создается никаких PcbObject-ов. По сути данный скрипт дополняет/заменяет окно PCB.
peshkoff
а. т.е. это типа аналог панели PCB, где показана длина цепей. Вы, по сути, подменяете это окно своим, где реальная длина.
а данные автоматически меняются? или нужно рефреш?
Vasen
Цитата(peshkoff @ Mar 30 2015, 17:43) *
а. т.е. это типа аналог панели PCB, где показана длина цепей. Вы, по сути, подменяете это окно своим, где реальная длина.
а данные автоматически меняются? или нужно рефреш?


Да, все верно. Данные при трассировке меняются автоматически.

Цитата(peshkoff @ Mar 30 2015, 17:27) *
у меня тоже допиленный.
запоминает микросхему и класс, что был выбран последним.

Может объединить их как нибудь?

а как он пикосекунды переводит в мм? По среднему? там же мин и макс.


Хилые в своих апнотах говорят использовать среднее значение задержки.
Владимир
Цитата(Vasen @ Mar 30 2015, 17:39) *
Все правильно. Но мне тогда идея создания треков не понравилась. И каким образом после задавать правила контролирующие процесс разводки.
Как не тужил мозг, так и не придумал как этот скрипт правильно прикрутить.

Алгоритм работы такой.
Оператор запускает скрипт и выбирает класс дифф пар. Если необходимо учитывать задержку FPGA, то выбирает микросхему и загружает файл.
Забив необходимые значения в поля skew tolerance, выполняет трассировку пар. Скрипт производит вычисления и обновляет данные в окне.
Все введенные оператором данные, а также последний выбранный класс сохраняются в папке с проектом, те после перезапуска скрипта можно возобновить работу.
При работе скрипта не создается никаких PcbObject-ов. По сути данный скрипт дополняет/заменяет окно PCB.

Это замечательно. но нужно отчет в пихнуть в отчет DRC или самостоятельный отчет.
При формировании герберов это необходимо. Мало-ли где дернули топологию. Все время помнить и залазить в эту панель вручную--человеческий фактор. Можно и забыть
Vasen
Цитата(Владимир @ Mar 30 2015, 19:09) *
Это замечательно. но нужно отчет в пихнуть в отчет DRC или самостоятельный отчет.
При формировании герберов это необходимо. Мало-ли где дернули топологию. Все время помнить и залазить в эту панель вручную--человеческий фактор. Можно и забыть


Вывод отчета в файл в планах.

Если не получится с xSignal, буду думать как слепить на основе FromTo объектов.
На данный момент скрипт имеет помимо некоторых багов, еще и пару недостатков. При работе скрипта не работает панель фильтра. Видимо фильтрация у них сделана тоже на основе скриптов,
потому как ругается на запущенный скрипт, а выполнять сразу 2 не может. В связи с этим не реализована функция перехода на диф пару на плате по клику на строку в таблице.
Выбор же на плате цепи, виа или пада принадлежащих паре производит выбор соответствующей строки в таблице. На данный момент учет задержек IC только у одного пина.
Владимир
Цитата(Vasen @ Mar 30 2015, 23:32) *
Если не получится с xSignal,

Должно получится, если не используете дополнительные отрезки
Цитата
буду думать как слепить на основе FromTo объектов.

Забудьте. Там можете получить больше проблем
Vasen
Цитата(Владимир @ Mar 31 2015, 08:46) *
Должно получится, если не используете дополнительные отрезки

Забудьте. Там можете получить больше проблем


Владимир, а в чем могут возникнуть проблемы. В версии 15 объекты FromTo даже длину виа учитывают, если я не ошибаюсь. Есть трудность со сборкой нескольких цепей в одну (развязывающий конденсатор к примеру) по типу xSignal, но побороть можно.
Владимир
Цитата(Vasen @ Mar 31 2015, 09:41) *
Владимир, а в чем могут возникнуть проблемы. В версии 15 объекты FromTo даже длину виа учитывают, если я не ошибаюсь. Есть трудность со сборкой нескольких цепей в одну (развязывающий конденсатор к примеру) по типу xSignal, но побороть можно.

Да, должны учитывать. Хотя не проверял.
Проблемы при наложении Track и мусоре внутри Pad остаются. В Xsignal они решены.
В общем с появлением xSigna --- FromTo превратились в атавизм и развивать это тупиковое направление нет особого смысла
Vasen
Цитата(Владимир @ Mar 31 2015, 09:57) *
Да, должны учитывать. Хотя не проверял.
Проблемы при наложении Track и мусоре внутри Pad остаются. В Xsignal они решены.
В общем с появлением xSigna --- FromTo превратились в атавизм и развивать это тупиковое направление нет особого смысла


Понятно, будем думать. Написал запрос на доступ в ветке http://forum.live.altium-ru.com/#posts/209547. Пока тишина.
peshkoff
Цитата(Vasen @ Mar 31 2015, 13:17) *
Понятно, будем думать. Написал запрос на доступ в ветке http://forum.live.altium-ru.com/#posts/209547. Пока тишина.


эх.. тоже несколько раз пытался стучаться, бесполезно. видимо какая-то вип-лицензия нужна.. Обычная у меня есть
Владимир
Цитата(peshkoff @ Mar 31 2015, 13:47) *
эх.. тоже несколько раз пытался стучаться, бесполезно. видимо какая-то вип-лицензия нужна.. Обычная у меня есть

я знаю 4-5 пользователей, которые достучались. Значит их реально намного больше
Vasen
Цитата(Владимир @ Mar 31 2015, 14:00) *
я знаю 4-5 пользователей, которые достучались. Значит их реально намного больше


Все. Вопрос о доступе к SDK закрыт. Не получить. Необходимо соблюсти некоторые условия, которые мы в силу обстоятельств не можем.
peshkoff
Что за условия? NDA?
Vasen
Сделал небольшой рефакторинг, подправил некоторые баги.
Ссылка на скрипт в GITHUB: https://github.com/Vasencheg/diff_pairs_len...ning_helper.git
О неточностях работы и багах можно отписываться здесь или в трекер на github.
Владимир
Цитата(Vasen @ Apr 5 2015, 12:46) *
Сделал небольшой рефакторинг, подправил некоторые баги.
Ссылка на скрипт в GITHUB: https://github.com/Vasencheg/diff_pairs_len...ning_helper.git
О неточностях работы и багах можно отписываться здесь или в трекер на github.

1. формат CSV файла?
Vasen
Цитата(Владимир @ Apr 5 2015, 13:20) *
1. формат CSV файла?

Ухты-пухты, забыл. Формат выложу на хаб в примере. В словах: пин;задержка. По аналогии с lengthtuninghelper.
Vasen
Цитата(Vasen @ Apr 5 2015, 19:01) *
Ухты-пухты, забыл. Формат выложу на хаб в примере. В словах: пин;задержка. По аналогии с lengthtuninghelper.

Пример файла с задержками добавил.
Владимир
Продолжение
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.