реклама на сайте
подробности

 
 
> Не получается использовать module, design reuse
vitan
сообщение Mar 3 2011, 11:30
Сообщение #1


не указал(а) ничего о себе.
******

Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887



Есть схема с иерархическими блоками (в менторовском DxD).
Генерится нетлист. Импортируется в аллегро. Появляются Module Instances.
Все хорошо, но при установке этого самого Instance на плату не происходит привязка компонента из нетлиста к символу из module (пробовал несколько вариантов, сейчас мучаю модуль из одного резистора и двух иерархический пинов, для простоты).
Возникает ошибка
Код
Component not found for symbol <имя корпуса>
И далее, как следствие
Код
Logic syncronization failed. Continuig.

В результате работать невозможно (не подгружается нетлист модуля).

Встает вопрос. Как аллегро ищет соотвествие между символами в модулях и реальными компонентами в схеме?
По-идее, написано, что это делается через свойства REUSE_NAME и REUSE_ID. Проверял нетлист вручную, для каждого instance в нем правильно прописаны эти свойства и их значения. Т.е. для двух разных instance резисторов есть одинаковые ID и NAME, отличаются они только Refdes-ом.
Обновлял символы. Та же ошибка, только в окошке лога.

Как быть?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Old1
сообщение Mar 3 2011, 14:15
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 697
Регистрация: 26-07-05
Из: Могилев
Пользователь №: 7 095



Цитата(vitan @ Mar 3 2011, 13:30) *
...
Проверял нетлист вручную, для каждого instance в нем правильно прописаны эти свойства и их значения. Т.е. для двух разных instance резисторов есть одинаковые ID и NAME, отличаются они только Refdes-ом.
Обновлял символы. Та же ошибка, только в окошке лога.

Как быть?

REUSE_ID - у instance-в должны быть разные.
Go to the top of the page
 
+Quote Post
vitan
сообщение Mar 3 2011, 14:26
Сообщение #3


не указал(а) ничего о себе.
******

Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887



Цитата(Old1 @ Mar 3 2011, 17:15) *
REUSE_ID - у instance-в должны быть разные.

Как же так?
Вот цитата:
Цитата
REUSE_ID
The REUSE_ID property, automatically attached to a component, allows for the correct assignment of logic within a module instance. The REUSE_ID property is a number that uniquely identifies each symbol and component within a module. It is used to reconnect reference designators when a module is used in a design, thus allowing for the correct assignment of logic within a module instance. The property is stored within the module file and the Allegro PCB Editor or Allegro Package Designer design file that represents the module information, and is backannotated to the schematic that represents the module's logic.

Note: Because this property is for Cadence internal use only, you must not edit it.


REUSE_INSTANCE
The REUSE_INSTANCE property, assigned on the reuse block when instantiating it in Allegro Design Entry HDL, uniquely identifies the instance of the reuse block. The PCB Editor uses the REUSE_INSTANCE property to differentiate among multiple instances of a reuse module. Unlike other schematic properties, the REUSE_INSTANCE property, defined on the topmost block, wins in the case of nested blocks

Reuse_id мне создает сам pcb editor, когда я выполняю команду create module. Далее делается backannotate, и reuse_id без изменений попадает в схему. Там я назначаю вручную на каждую instance своё instance_name и снова отправляю в плату. Получаю столько instance, сколько и указал, с теми же именами. Но без компонентов (при установке появляются только символы). Более того, компоненты тоже есть, и их моно выставить вручную, и они даже помечены буквой M на иконках. И если их выставить рядом с модулем, а потом сделать show element, поставив галочку groups, то выделяется весь модуль (с "пустым" символом) и этот компонент (!).
Какой-то бред...

Вы не могли бы привести кусок нетлиста, в котором точно работают модули?
Go to the top of the page
 
+Quote Post
Old1
сообщение Mar 3 2011, 15:03
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 697
Регистрация: 26-07-05
Из: Могилев
Пользователь №: 7 095



Цитата(vitan @ Mar 3 2011, 16:26) *
Как же так?
Вот цитата:

Reuse_id мне создает сам pcb editor, когда я выполняю команду create module. Далее делается backannotate, и reuse_id без изменений попадает в схему. Там я назначаю вручную на каждую instance своё instance_name и снова отправляю в плату. Получаю столько instance, сколько и указал, с теми же именами. Но без компонентов (при установке появляются только символы). Более того, компоненты тоже есть, и их моно выставить вручную, и они даже помечены буквой M на иконках. И если их выставить рядом с модулем, а потом сделать show element, поставив галочку groups, то выделяется весь модуль (с "пустым" символом) и этот компонент (!).
Какой-то бред...

Вы не могли бы привести кусок нетлиста, в котором точно работают модули?

По поводу теории Design reusa точно сразу не отвечу, уже подзабыл, нужно почитать. Но на практике для каждого instance схемный редактор (при аннотации и создании нетлиста) помимо прочих свойств генерит свойства REUSE_ID и REUSE_PID. REUSE_PID у всех "потомков" одинаковый -такой как REUSE_ID у родителя . REUSE_ID "потомков" все разные, если они пересекаются, то начинаются косяки... Прилагаю один из файлов нетлиста который генерит Capture, и скриншот редактора свойств, где видны REUSE_ID instanse. Крайний справа столбец (R2) это "родитель", остальные -"потомки" -Прикрепленный файл  pstxprt.rar ( 2.93 килобайт ) Кол-во скачиваний: 83
Прикрепленное изображение
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 18:58
Рейтинг@Mail.ru


Страница сгенерированна за 0.01337 секунд с 7
ELECTRONIX ©2004-2016