Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема генерации нетлиста с одинаковыми Instance name для разных refdes
Форум разработчиков электроники ELECTRONIX.ru > Печатные платы (PCB) > Разрабатываем ПП в САПР - PCB development > Cadence
Hoodwin
Все таки жестокие люди писали этот транслятор... После трансляции развалилась связность многих цепей питания в слоях питания, особенно в тех случаях, когда полигоны в разных слоях связывались через переходные отверстия, не подключенные явно к проводникам с такой цепью. Поскольку отверстия проходят также через слой земли, то транслятор почему-то решил переподключить их на землю, в итоге связь полигонов питания и вовсе пропала. Еще круче обстоят дела с падстеками переходных отверстий в слоях питания. В layout традиционно слои питания имеют негативный трафарет, и в падстеке задается диаметр выреза в меди. Транслятор переделал слои в позитивные и вырез превратился в полноценный кружок меди, вокруг которого еще надо дополнительно прорыть канаву размером "VIA-to-SHAPE spacing". В итоге полигоны питания под BGA превратились в решето, и опять вся связность куда-то делась. В общем трансляция проекта - это такая лотерея разнообразных нетривиальных ошибок. Ну ладно, с PCB, еще придется возиться и дальше. А пока...

Имеем очередную проблему, но теперь уже со схемой, точнее, с получением из нее нетлиста. Вдруг ни с того, ни с сего оно не захотело делать нетлист и стало ругаться. Причем ругается примерно так:
Код
ERROR(SPCODD-413):
  Error at line 91 in file .../pstxnet.dat. Reference designators inconsistent in xprt and xnet files. Reference Designator in xprt file: R175. Reference Designator in xnet file: R215. Schematic Instance :@...(sch_1):i16521538000005900110@basic.\r0603.normal\(chips) (MODULE: A; PART: R0603).


В общем-то таких ошибок довольно много для разных компонентов. Общая беда в том, что у каждой пары одинаковое значение свойства Name, которое попадает в нетлист как instance. В приведенном примере это строка i16521538000005900110.

Предыстория такая. В схеме стоят два одинаковых процессора с одинаковым окружением (память, питание и т.п.) Схема создавалась для одного процессора, затем несколько страниц были скопированы копипастом и даны другие refdes'ы. Все это прекрасно работало с ECO в Layout, и тут вдруг сейчас выясняется, что у скопированных компонентов остался точно такой же instance, и это мешает сделать нетлист в PCB Editor.

Опытным путем проверено, что если компонент удалить Ctrl-X, и снова вставить Ctrl-V, то instance изменяется на новый, но все свойства компонента сохраняются. Но проблема в том, что компонентов порядка 200 штук у каждого процессора и ручной способ не кажется самым удобным.

Вопрос: можно ли как-то порешать эту проблему гуманным путем?
Ant_m
Цитата(Hoodwin @ Mar 31 2012, 15:36) *
Вопрос: можно ли как-то порешать эту проблему гуманным путем?


Прокачать SKILL и написать скрипт? smile3046.gif
Или Tcl в Orcad, есть документ...
Нажмите для просмотра прикрепленного файла Нажмите для просмотра прикрепленного файла
Hoodwin
За изучение Skill мне все никак не сесть, времени не хватает.
Проблему удалось решить таким вот способом:
1. Сначала нужно причесать дизайн и перевести его из occurence в instance mode. Потому что при удалении компонента и вставке его обратно все свойства occurence теряются, а свойства instance применяются, и в итоге компонент теряет свой refdes, если аннотация шла в occurence mode? а у меня было именно так. Чтобы это проделать, скрипт не нужен, достаточно готового меню, см. картинку 1.
2. После того, как свойства скорректированы, нужно на любой странице схемы по правой кнопке мыши вызвать из контекстного меню Selection Filter, см. картинки 2 и 3. Далее в фильтре оставить только Parts.
3. В этом режиме выделяем все компоненты на каждой странице, затем жмем Ctrl-X, Ctrl-V. Компоненнты вставляются из кармана со всеми своими свойствами, только их нужно аккуратно плюхнуть на то же место, чтобы не поехали соединения.
4. теперь можно вызвать транслятор проекта печатной платы, см. картинки 4 и 5. При указании опции транслятора нужно выбрать галку Update dsn with brd, чтобы свойство PCB Footprint было изменено в соответствии алфавитом, принятым в PCB Editor для наименования PSM. Из имен удаляются все непристойные знаки вроде точки, слешей и пр.
5. После успешной трнасляции проекта нужно експортировать его как библиотеку в каталог, прописанный в PSM путях, я делаю в ./allegro/symbols.
6. Теперь можно приступать к попыткам собрать нетлист и сделать ECO.
7. Еще бывает необходимо подправить свойства PCB Footprint некоторых компонентов, поскольку иногда отдельные компоненты получают персональную копию футпринта в layout. Например SMR0603 превращается в SMR0603_R175. Возможно, это связано с тем, что в проекте платы я редактировал свойства футпринта для устранения некоторых DRC - разрешал ставить via близко от КП некоторых резисторов.
8. Ну и потом под чутким руководством генератора нетлиста добавлять свойства NC, переделывать часть выводов в механические и прочие коррекции делать в футпринтах.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.