|
xSignals. Доступ к членам класса из delphi скрипта. |
|
|
|
Mar 30 2015, 11:58
|
Участник

Группа: Участник
Сообщений: 74
Регистрация: 30-03-06
Пользователь №: 15 624

|
Добрый день, уважаемые форумчане.
Возникла проблема, которую я не могу разрешить. Суть следующая. Нарисовал скрипт, который решает задачи выравнивания дифференциальных пар как внутри пары, так и в группе с учетом задержек FPGA.
Утилита еще сыровата, но с полторы сотни дифф пар я справился быстро. Дошел вопрос до выравнивания шин DDR3. Для выравнивания оных я использовал классы xSignal и правила для этих классов, но это без использования утилиты. И встал вопрос как получить доступ к элементам класса xSignal из скрипта. В типе TObjectId нет поля соответствующего данному классу.
|
|
|
|
|
Mar 30 2015, 12:32
|
Участник

Группа: Участник
Сообщений: 74
Регистрация: 30-03-06
Пользователь №: 15 624

|
Цитата(Владимир @ Mar 30 2015, 15:28)  Поделитесь когда доделаете? Вам сюда нужно писать доступ дают по просьбе Владимир, не вопрос, поделюсь. Почищу малеха код, кину на github и ссылку выложу здесь. Худо, худо с документаций у Altium-а.
|
|
|
|
|
Mar 30 2015, 13:14
|

Гуру
     
Группа: Модераторы
Сообщений: 11 653
Регистрация: 25-03-05
Из: Минск
Пользователь №: 3 671

|
Цитата(peshkoff @ Mar 30 2015, 15:59)  А какой алгоритм работы? И чем не устраивает скрипт, что на гуглопэйдже? В том недостатков не меньше чем достоинств. А алгоритм действительно интересен. Потому как Цитата скрипт, что на гуглопэйдже? не прицепить к xSignal
|
|
|
|
|
Mar 30 2015, 13:56
|
Участник

Группа: Участник
Сообщений: 74
Регистрация: 30-03-06
Пользователь №: 15 624

|
Цитата(peshkoff @ Mar 30 2015, 15:59)  А какой алгоритм работы? И чем не устраивает скрипт, что на гуглопэйдже? Скрипт с гуглопейджа я рассматривал. Он ориентирован на выравнивание шин DDR, и у меня не получилось добиться вменяемой работы от него. Задача по выравниванию внутри пары и группы является задачей разработчика как и прежде. Скрипт производит расчет длин с учетом всех нюансов и выводит в форму, по которой ориентируется разработчик. Из-за некоторых нюансов альтиума получилось не все как планировалось, но на данный момент результатом доволен. Если интересует более подробная работа скрипта, то постараюсь описать вечером в районе 00 по московскому. Вот рабочее окно скрипта.
|
|
|
|
|
Mar 30 2015, 14:10
|
Участник

Группа: Участник
Сообщений: 74
Регистрация: 30-03-06
Пользователь №: 15 624

|
Коротко по интерфейсу. 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. Если да, то Сам автор об этом говорит. В конечном итоге получилось на данный момент, то что получилось.
|
|
|
|
|
Mar 30 2015, 14:21
|

люблю бегать и орать
    
Группа: Свой
Сообщений: 1 685
Регистрация: 28-04-07
Из: ЮБутово@Москва.ru
Пользователь №: 27 376

|
Цитата(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 файлы получаются в пикосекундах, нельзя прямиком подсунуть. Я тогда екселем конвертирую. в общем, подожду тогда описание, пока не понятно
|
|
|
|
|
Mar 30 2015, 14:27
|

люблю бегать и орать
    
Группа: Свой
Сообщений: 1 685
Регистрация: 28-04-07
Из: ЮБутово@Москва.ru
Пользователь №: 27 376

|
Цитата(Владимир @ Mar 30 2015, 17:24)  у меня болтался допиленный вариант скрипта - там прямиком подпихивается у меня тоже допиленный. запоминает микросхему и класс, что был выбран последним. Может объединить их как нибудь? а как он пикосекунды переводит в мм? По среднему? там же мин и макс.
|
|
|
|
|
Mar 30 2015, 14:39
|
Участник

Группа: Участник
Сообщений: 74
Регистрация: 30-03-06
Пользователь №: 15 624

|
Цитата(peshkoff @ Mar 30 2015, 17:21)  Да, именно об этом. Он пишет, что изначально задумывался для DDR3, но в коде ничего такого нет, да, собственно и быть не может. ASCii файл не несет в себе данных ддр3 это или нет...
сейчас единственная засада, .pkg файлы получаются в пикосекундах, нельзя прямиком подсунуть. Я тогда екселем конвертирую.
в общем, подожду тогда описание, пока не понятно Все правильно. Но мне тогда идея создания треков не понравилась. И каким образом после задавать правила контролирующие процесс разводки. Как не тужил мозг, так и не придумал как этот скрипт правильно прикрутить. Алгоритм работы такой. Оператор запускает скрипт и выбирает класс дифф пар. Если необходимо учитывать задержку FPGA, то выбирает микросхему и загружает файл. Забив необходимые значения в поля skew tolerance, выполняет трассировку пар. Скрипт производит вычисления и обновляет данные в окне. Все введенные оператором данные, а также последний выбранный класс сохраняются в папке с проектом, те после перезапуска скрипта можно возобновить работу. При работе скрипта не создается никаких PcbObject-ов. По сути данный скрипт дополняет/заменяет окно PCB.
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|