Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблемы импорта из Altium в Allegro дуг разведенных дорожек
Форум разработчиков электроники ELECTRONIX.ru > Печатные платы (PCB) > Разрабатываем ПП в САПР - PCB development > Cadence
Tiger
Добрый вечер

Есть проблема - после импорта из Altium в Allegro участки разведенных трасс с Length Matching потеряли имя, то есть стали Not A Net. Примерно вот так:
Было в Альтиуме:
Нажмите для просмотра прикрепленного файла

Стало в Аллегро:
Нажмите для просмотра прикрепленного файла
Я предполагаю, что это произошло по причине странной нелюбви импортера Allegro к дорожкам с Arc-ами в Altium.
Можно было бы грешить на недопустимо малый радиус Arc-ов, но увы, это предположение не объясняет, почему имя потеряли также и прямые дорожки рядом с ними. Да и DRC в Альтиуме не ругается.
Правил Matching length в импортируемом проекте нет, так что это не нарушение правил при импорте. Да и дорожка с length matching, выполненная не дугами, а прямыми линиями с углом 45 градусов, этих проблем также не имеет.

Буду благодарен за любые подсказки, почему это так, и как это пофиксить.
Проблема именно импортера из Альтиума, импортер из PCAD на этом же дизайне таких проблем не имеет (но у него масса других, более серьезных проблем)
Uree
Это все потому, что импорт... Других объяснений нет.
А пофиксить так же, как и недоведенные до центров падов сегменты - Tools->Derive Connectivity... Если ничего не помешает, то должно подцепить арки к сегментам цепей.
Если не получится, то только ручками видимо придется.

А вообще я не очень понимаю ситуацию - зачем Вы перетягиваете проекты из других систем в Аллегро? Причем судя по вопросам перетягиваете только РСВ, насчет схем ни одного вопроса не было. Ведь ценность таких дизайнов практически нулевая - без схемы внесение каких-либо изменений жуть жуткая... А если изменения не предполагаются, то зачем вообще морочить себе голову такими перетягиваниями?
Я еще понимаю, когда берется старый проект(и схема тоже, не только РСВ) и повторяется в новом САПРе с изменениями, причем существенными. Потому как мелкие легче/быстрее/дешевле сделать в исходной среде. А просто перенос из среды в среду... не вижу смысла. Разве что потоптаться по никому не известным граблям.
Tiger
Цитата(Uree @ Nov 24 2017, 19:24) *
Это все потому, что импорт... Других объяснений нет.
А пофиксить так же, как и недоведенные до центров падов сегменты - Tools->Derive Connectivity... Если ничего не помешает, то должно подцепить арки к сегментам цепей.
Если не получится, то только ручками видимо придется.

Помешает - об этом DRC говорит. Derive Connectivity соединяет только близкие сегменты одной и той же цепи, для Not A Net он выдает ошибку, что и отражается метками DRC на дизайне. Переименовать все сегменты обратно нельзя - их МНОГО.

Цитата(Uree @ Nov 24 2017, 19:24) *
А вообще я не очень понимаю ситуацию - зачем Вы перетягиваете проекты из других систем в Аллегро? Причем судя по вопросам перетягиваете только РСВ, насчет схем ни одного вопроса не было. Ведь ценность таких дизайнов практически нулевая - без схемы внесение каких-либо изменений жуть жуткая... А если изменения не предполагаются, то зачем вообще морочить себе голову такими перетягиваниями?

Полностью согласен. Перетягивается в Аллегро именно для того, чтобы синхронизоваться со схематикой этого проекта в Capture.
Исполнитель только в PCAD мог работать, поэтому ему и перегнали туда нетлист. И заработал ведь девайс, без всяких претензий к функционалу. А сейчас происходит обратный процесс, поскольку надо вносить изменения в дизайн.
Uree
Цитата(Tiger @ Nov 24 2017, 17:32) *
Помешает - об этом DRC говорит. Derive Connectivity соединяет только близкие сегменты одной и той же цепи, для Not A Net он выдает ошибку, что и отражается метками DRC на дизайне. Переименовать все сегменты обратно нельзя - их МНОГО.


Вообще-то именно первая опция Derive Connectivity "переименовывает" сегменты(Convert Lines to Connect Lines). Другой возможности автоматом изменить принадлежность линии к цепи не существует, только вручную, доводя трассу до неподключенного сегмента.

Цитата(Tiger @ Nov 24 2017, 17:32) *
Полностью согласен. Перетягивается в Аллегро именно для того, чтобы синхронизоваться со схематикой этого проекта в Capture.
Исполнитель только в PCAD мог работать, поэтому ему и перегнали туда нетлист. И заработал ведь девайс, без всяких претензий к функционалу. А сейчас происходит обратный процесс, поскольку надо вносить изменения в дизайн.


Проще было и дальше правки делать в ПКАДе, раз уж изначально на него согласились. Либо сейчас не страдать ерундой с ковертацией и выгребанием граблей, а делать с нуля в новой системе по измененной схеме.
Tiger
Цитата(Uree @ Nov 26 2017, 21:31) *
Вообще-то именно первая опция Derive Connectivity "переименовывает" сегменты(Convert Lines to Connect Lines). Другой возможности автоматом изменить принадлежность линии к цепи не существует, только вручную, доводя трассу до неподключенного сегмента.

Не переименовывает, увы. Скриншот как раз после выполненной Derive Connectivity. Возможно, причина в том, что один сегмент No Net она еще может переименовать, но три-четыре подряд ей уже не по зубам.

Цитата(Uree @ Nov 26 2017, 21:31) *
Проще было и дальше правки делать в ПКАДе, раз уж изначально на него согласились.

Мы на него не соглашались, просто проект был закончен 4 года назад. Все работало, но стоило попробовать внести правки... Полезли в документацию и оказалось, что плата в PCAD, а схематика - в Orcad. А коммуникация с исполнителем оставляет желать лучшего.
Цитата(Uree @ Nov 26 2017, 21:31) *
Либо сейчас не страдать ерундой с ковертацией и выгребанием граблей, а делать с нуля в новой системе по измененной схеме.

Оно бы и конечно, но:
1. Все сейчас работает.
2. Дизайн 20 корпусов BGA, и не самых маленьких. Остальное не стоит и описывать, можно себе представить, сколько займет только расстановка конденсаторов развязки. Это месяца на два-три + пара итераций на производстве, итого 4-6 месяцев.
Поэтому, как говорил Сухов "Конечно, вначале лучше помучиться"
Uree
Цитата(Tiger @ Nov 27 2017, 09:28) *
Не переименовывает, увы. Скриншот как раз после выполненной Derive Connectivity. Возможно, причина в том, что один сегмент No Net она еще может переименовать, но три-четыре подряд ей уже не по зубам.


Возможно. Тогда остается только "доводить" каждый такой неподключенный сегмент.

Цитата(Tiger @ Nov 27 2017, 09:28) *
Мы на него не соглашались, просто проект был закончен 4 года назад. Все работало, но стоило попробовать внести правки... Полезли в документацию и оказалось, что плата в PCAD, а схематика - в Orcad. А коммуникация с исполнителем оставляет желать лучшего.


Найти исполнителя в ПКАД, мне кажется, не большая проблема. Хотя если проект предполагается продолжать модернизировать, то конечно есть смысл перевести в целевой САПР.

Цитата(Tiger @ Nov 27 2017, 09:28) *
Оно бы и конечно, но:
1. Все сейчас работает.
2. Дизайн 20 корпусов BGA, и не самых маленьких. Остальное не стоит и описывать, можно себе представить, сколько займет только расстановка конденсаторов развязки. Это месяца на два-три + пара итераций на производстве, итого 4-6 месяцев.
Поэтому, как говорил Сухов "Конечно, вначале лучше помучиться"


Если дизайн повторить с внесением изменений, то без разницы в какой системе, сроки производства и кол-во итераций будут такими же.
Tiger
Цитата(Uree @ Nov 27 2017, 12:56) *
Возможно. Тогда остается только "доводить" каждый такой неподключенный сегмент.

Их МНОГО. Представляете себе все сегменты в DDR2 (а это еще небольшая часть дизайна) с Matched Length, сколько там будет Arc-ов, которые превратятся в No Net? Быстрее прибить все No Net, задать constraints и переразвести руками, хотя и это большой геморрой. Поэтому я и хочу пофиксить эти проблемы на этапе импорта.
Цитата(Uree @ Nov 27 2017, 12:56) *
Если дизайн повторить с внесением изменений, то без разницы в какой системе, сроки производства и кол-во итераций будут такими же.

Одно дело - поменять пару сотен дорогущих танталовых конденсаторов и разъемов, которые там ни к селу не к городу, другое дело - переразвести дизайн с нуля. Количество итераций и тупой ручной работы, в которой обязательно будут ошибки, различаются кардинально. Ладно бы что-то крупное менять, тут бы я подумал, но там речь идет о мелочах, которые в серии очень дорогие получаются.

Спросил в Альтиумной группе, как разбить Arc на последовательность треков, с ними трансляция идет нормально. В любом случае - спасибо за попытку помочь.
Uree
Цитата(Tiger @ Nov 27 2017, 10:32) *
Их МНОГО. Представляете себе все сегменты в DDR2 (а это еще небольшая часть дизайна) с Matched Length, сколько там будет Arc-ов, которые превратятся в No Net? Быстрее прибить все No Net, задать constraints и переразвести руками, хотя и это большой геморрой. Поэтому я и хочу пофиксить эти проблемы на этапе импорта.


Именно потому, что такой дизайн и имело бы смысл сделать его заново, с полным контролем всего, что нужно. Плюс будьте уверены - нужной степени выравниваний в ПКАДе сделать невозможно, в отличие от Аллегро. Точнее, конечно, можно, но только с привлечением внешнего софта и настолько трудоемко, что не верю, что так было сделано изначально...

Цитата(Tiger @ Nov 27 2017, 10:32) *
Одно дело - поменять пару сотен дорогущих танталовых конденсаторов и разъемов, которые там ни к селу не к городу, другое дело - переразвести дизайн с нуля. Количество итераций и тупой ручной работы, в которой обязательно будут ошибки, различаются кардинально. Ладно бы что-то крупное менять, тут бы я подумал, но там речь идет о мелочах, которые в серии очень дорогие получаются.


Потому и писал о доработке в оригинальном ПКАДе. Проще, быстрее, надежней и дешевле было бы найти кого-то, кто внес бы такие изменения.

Цитата(Tiger @ Nov 27 2017, 10:32) *
Спросил в Альтиумной группе, как разбить Arc на последовательность треков, с ними трансляция идет нормально. В любом случае - спасибо за попытку помочь.


Да, видел. Не помню CAD-ов, которые это позволяли бы сделать. А если бы и да, то получили бы огромную проблему - так сделанный дизайн невозможно было бы редактировать, по крайней мере в части цепей с большим кол-вом сегментов.

ЗЫ Есть способ ручной правки таких арков, если они одинакового радиуса. Удалчить все неподключенные. Провести один нужный и далее скопировать во все нужные пункты.
Если радиусы разные, тогда не получится. Но так редко делают, обычно все с одинаковыми параметрами повторяется.
Tiger
Цитата(Uree @ Nov 27 2017, 17:20) *
Именно потому, что такой дизайн и имело бы смысл сделать его заново, с полным контролем всего, что нужно. Плюс будьте уверены - нужной степени выравниваний в ПКАДе сделать невозможно, в отличие от Аллегро. Точнее, конечно, можно, но только с привлечением внешнего софта и настолько трудоемко, что не верю, что так было сделано изначально...

Да я тоже не особо верю, поскольку Constrain-тов вообще нет в PCAD и куча дорожек не доведена до центров, но что имеем, то имеем.

Цитата(Uree @ Nov 27 2017, 17:20) *
ЗЫ Есть способ ручной правки таких арков, если они одинакового радиуса. Удалчить все неподключенные. Провести один нужный и далее скопировать во все нужные пункты.
Если радиусы разные, тогда не получится. Но так редко делают, обычно все с одинаковыми параметрами повторяется.

Хм... А это хорошая мысль, очень хорошая... Если ее продолжить - не проще ли будет тогда убить Arc и понаставить одинаковых route obstacles в виде окружностей в места скругления дорожек, чтобы дорожки его обтекали, после чего задать автороутинг?
Копировать и вставлять - там будут и проблемы сетки (как всегда при импорте), и переименования цепей - все обходится, но требует времени на каждый участок, а таких мест очень много.
Uree
Понаставить route obstacles(что это?) = понаставить готовых дуг. Зачем еще что-то? Результат сразу будет нужный, без доп. действий.

Вы вообще насколько знакомы с Аллегро? У меня складывается ощущение, что это первый подход к нему, и Вы не знаете, что и какими инструментами можно делать... Дайте "допилить" тому, кто знает. Быстрее и правильнее будет. А то учиться на дизайне с кучей граблей разложенных в другом САПРе(сгенеренных транслятором) - это ж издевательство...
Tiger
Цитата(Uree @ Nov 27 2017, 17:51) *
Понаставить route obstacles(что это?) = понаставить готовых дуг. Зачем еще что-то? Результат сразу будет нужный, без доп. действий.

Вы вообще насколько знакомы с Аллегро? У меня складывается ощущение, что это первый подход к нему, и Вы не знаете, что и какими инструментами можно делать... Дайте "допилить" тому, кто знает. Быстрее и правильнее будет. А то учиться на дизайне с кучей граблей разложенных в другом САПРе(сгенеренных транслятором) - это ж издевательство...

Я плохо объяснил свою мысль, похоже.
Не в Аллегро поубивать дуги, а в Альтиуме понаставить route obstacles, до трансляции в Аллегро, чтобы транслировать уже набор мелких треков, аппроксимирующих дуги, после автороутинга в Альтиуме. В этом случае все проблемы трансляции уйдут.
А с Аллегро я мало знаком, это да. Вы еще остальное не видели, тогда вместо "издевательства" сказали бы чего покрепче sm.gif
Uree
"...в Альтиуме понаставить route obstacles..." - не, все равно не понял о чем речь. Не помню там элементов с такими названиями... Но раз есть помысл, как сделать, то вперед.
MaxiZ
Цитата(Uree @ Nov 27 2017, 17:14) *
"...в Альтиуме понаставить route obstacles..." - не, все равно не понял о чем речь. Не помню там элементов с такими названиями... Но раз есть помысл, как сделать, то вперед.


Попробуйте убрать Union для Interactive Length Tuning - (Explode Length Tuning To Free Primitives).


Вот так.
Владимир
Цитата(MaxiZ @ Nov 30 2017, 09:50) *
Попробуйте убрать Union для Interactive Length Tuning - (Explode Length Tuning To Free Primitives).

Там Union не может быть, так как проект в алтиум импортирован из PCAD
Tiger
Цитата(Владимир @ Nov 30 2017, 11:17) *
Там Union не может быть, так как проект в алтиум импортирован из PCAD

Владимир прав, к сожалению. Я не вижу никаких эффектов после выполнения "Explode Length Tuning to Free Primitives" на Arc.
М.б. ручками задать Length Tuning стоит, поставив фактическую длину, но изначально это были Arc, а не собранные в Union комбинации Arc и Track. Arc сам по себе является примитивом, заданным шириной, радиусом и начальным и конечным углом, т.е. в каком-то смысле треком, заданным в полярных координатах, и не может быть разбит на последовательность обычных прямых треков, по крайней мере, я про это не в курсе.

Или я что-то неправильно понимаю? Можно сделать скриншот Arc-а, разбитого на прямые треки?
MaxiZ
Цитата(Tiger @ Nov 30 2017, 11:30) *
Владимир прав, к сожалению. Я не вижу никаких эффектов после выполнения "Explode Length Tuning to Free Primitives" на Arc.
М.б. ручками задать Length Tuning стоит, поставив фактическую длину, но изначально это были Arc, а не собранные в Union комбинации Arc и Track. Arc сам по себе является примитивом, заданным шириной, радиусом и начальным и конечным углом, т.е. в каком-то смысле треком, заданным в полярных координатах, и не может быть разбит на последовательность обычных прямых треков, по крайней мере, я про это не в курсе.

Или я что-то неправильно понимаю? Можно сделать скриншот Arc-а, разбитого на прямые треки?


Тогда попробуйте найти треки нулевой длины в узлах.
Здесь выделен трек нулевой длины. Выше, на картинке - сопряжение трека и дуги без такого "лишнего" трека.

Попробуйте их удалить и транслировать в Allegro.

Tiger
Цитата(MaxiZ @ Nov 30 2017, 13:24) *
Тогда попробуйте найти треки нулевой длины в узлах.
Здесь выделен трек нулевой длины. Выше, на картинке - сопряжение трека и дуги без такого "лишнего" трека.
Попробуйте их удалить и транслировать в Allegro.

А Вы их видите? По-моему, это просто пересечение дуги и трека.
Попробуйте выделить область вокруг только этого трека нулевой длины, чтобы захватить только его, но не соседние дугу и трек. У меня нельзя.
Я даже для проверки убил пересекающиеся дугу и трек, чтобы оставить этот трек нулевой длины - ничего не осталось. И в импортированном в Аллегро дизайне этих нулевых треков тоже нет.
MaxiZ
Цитата(Tiger @ Nov 30 2017, 12:40) *
А Вы их видите? По-моему, это просто пересечение дуги и трека.
Попробуйте выделить область вокруг только этого трека нулевой длины, чтобы захватить только его, но не соседние дугу и трек. У меня нельзя.
Я даже для проверки убил пересекающиеся дугу и трек, чтобы оставить этот трек нулевой длины - ничего не осталось. И в импортированном в Аллегро дизайне этих нулевых треков тоже нет.


Да, вижу.
Вот еще картинка.



Вот свойства нулевого проводника.




Он выделяется как обычно.
И при удалении смежной дуги и трека тоже удаляется автоматически.
Но при трансляции в другие САПРы (в т.ч. в Автокад и Компас) - этот нулевой трек идет отдельной строкой в списке.
Tiger
Цитата(MaxiZ @ Nov 30 2017, 13:51) *
Да, вижу.
Вот еще картинка.
Он выделяется как обычно.
И при удалении смежной дуги и трека тоже удаляется автоматически.
Но при трансляции в другие САПРы (в т.ч. в Автокад и Компас) - этот нулевой трек идет отдельной строкой в списке.

Нет, у меня не так. У меня его нет. Причем точно нет, поскольку вот такой запрос возвращает лишь действительно дорожку короче 3мил, дорожки нулевой длины должны были бы быть выделены тоже, но увы...
(ObjectKind = 'Track') And (Net = '1DQ6_DDR2') AND (TraceLength < 3)
Нажмите для просмотра прикрепленного файла
Владимир
Не понятно однако. Если бы все сделано было автоматом или симметрично-- то на верхнем плече должен быть выделится второй такой же Track
Tiger
Цитата(Владимир @ Nov 30 2017, 14:46) *
Не понятно однако. Если бы все сделано было автоматом или симметрично-- то на верхнем плече должен быть выделится второй такой же Track

Я не знаю, как именно велась эта дорожка. Если вручную с Length Matching - такое вполне возможно, чуть сдвинули ближний сегмент в сторону до выравнивания и все
Tiger
Нашел я способ. Через одно место, правда, но работает.
1. Идем в Shape->Global Dynamic Params и меняем значение "suppress shapes less than" с 25 на 1 (можно больше - зависит от толщины дорожек, как будет ясно дальше)
2. Создаем Shape на нужном слое размером 2х4 mils, или больше, если дорожка толстая. У меня - 4 mils, так что 2х4 в самый раз. И присваиваем полигону имя нужной цепи.
3. Копируем этот Shape в нужном количестве и располагаем эту скопированную кучу рядом.
4. Берем по одному полигону и кидаем его в точки соединений дорожек с Arc-ами, которые Not A Net. Почему надо именно в точки соединений - ХЗ, м.б. кто умный объяснит, но просто брошенный на Arc или Track в произвольном месте полигон не переименовывает ничего.
5. Перезаливаем полигоны через Shape Fill->Force Update и делаем Tools->Derive Connectivity.
6. Профит! У нас есть полностью разведенная цепь c нужным именем. переходим к следующей.
Правда, переразводить эту цепь будет сущим мучением, но у меня эти дуги использованы в DDR2, которую переразводить как раз не нужно, один раз развели и достаточно.
Нажмите для просмотра прикрепленного файла
Может быть, кому-то полезно будет.
Uree
Быстрее было бы включить трассировку и "тыкая" в стыки подключить висящие дуги.
Tiger
Цитата(Uree @ Dec 4 2017, 16:51) *
Быстрее было бы включить трассировку и "тыкая" в стыки подключить висящие дуги.

Нет, не быстрее. Висящая дуга - это не безымянная цепь, а неявно именованная цепь с именем Not a Net, и трассировка пытается ее как раз обойти, в полном соответствии с логикой и правилами. М.б. это можно как-то отключить, но я не знаю.
Нажмите для просмотра прикрепленного файла
Я поискал по инету, с том числе - англоязычному, решения не через одно место нет. Есть в конфах Кейденса упоминание о десятилетней давности нетестированной фиче от Аллегро же, написанной на Skill, которая делает то, что Вы советуете, но у меня она не проходит, да и в релиз не вошла, судя по отсутствию этой функции.
Uree
Естественно можно это обойти. Выключаете bubble в положение Off и дотягиваете сегменты цепей к сегментам Not a Net, как я Вам сразу и писал. Пару часов на это уйдет, но две недели назад уже могло быть готово...
Tiger
Цитата(Uree @ Dec 5 2017, 11:57) *
Естественно можно это обойти. Выключаете bubble в положение Off и дотягиваете сегменты цепей к сегментам Not a Net, как я Вам сразу и писал. Пару часов на это уйдет, но две недели назад уже могло быть готово...

Как хорошо, что у нас в помещении чисто мужская компания, можно без помех выразить свои радостные чувства... Работает!
Но я не припомню слова "bubble" в нашем обсуждении. Для уверенности поискал его по всему electronix.ru в гугле, но нашел только вот это, годовой давности - тоже, кстати, по делу, но по названию топика об этом не догадаться.
И спасибо огромное, конечно!
Uree
Я же сразу писал - вручную, т.е. с отключением расталкиваний, обтеканий и прочего. Уже намного позже догадался, что Вы слабо знакомы с системой, так бы сразу расписал подробно, как это делается.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.