Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Выделение огромного числа объектов в Virtuoso Layout Editor
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Разработка цифровых, аналоговых, аналого-цифровых ИС
TiNat
Добрый день. Использую Cadence 5141. В Virtuoso Layout Editor хочу заменить элементы одной библиотеки такими же элементами из другой бибилотеки. Выбираю команду Search... и там использую опцию replace. В случае если число элементов к примеру 70000, они выделяются за ~10 секунд, если их число 120000, то времени необходимо больше, но незначительно: ~30 секунд. Но если их число 180000, то cadence виснет. Я ждал порядка часа, но элементы так и не выделились, при этом, память на машине не забита. Кто-небудь может подсказать, это глюк Cadence, или у них зашито в программе количество выделяемых объектов в какой-небудь буфер. Можно ли вообще побороть такую проблему?
P.S. Такая же проблема возникла и в Schematic Editor при выделении большого числа объектов.
nikolascha
А нельзя ли в каденсе изменить ссылку на библиотеку не открывая схему/топологию?
TiNat
Цитата(nikolascha @ Mar 29 2014, 09:13) *
А нельзя ли в каденсе изменить ссылку на библиотеку не открывая схему/топологию?

Можно. Но в этом случае поменяется ссылка во всех ячейках, которые относятся к старой библиотеке. А мне надо поменять ссылку
только одного типа ячейки (поэтому я могу поставить два условия: cell name = pmos и lib name = projlib к примеру).
fragment
А если через SKILL попробовать?
Я набросал примерную процедуру. Писал по памяти, поэтому возможны ошибки
TiNat
Цитата(fragment @ Mar 29 2014, 17:32) *
А если через SKILL попробовать?
Я набросал примерную процедуру. Писал по памяти, поэтому возможны ошибки

Спасибо. Опробую такой вариант.
KMC
В Virtuoso Layout для замены элементов используется команда Design -> Remaster instances ...
Работает эта команда считанные секунды даже на больших проектах. В вашем случае надо изменить только имя библиотеки у всех ячеек.
baumanets
Цитата(fragment @ Mar 29 2014, 18:32) *
А если через SKILL попробовать?
Я набросал примерную процедуру. Писал по памяти, поэтому возможны ошибки


Не заработает твой код. Присвоить иное имя библиотеки без ремастера не получится.

Автору темы. Вот код, на базе которго надо делать.
Через графический интерфейс имеет смысл работать, коли элементов мало. Если много -то обязательно через SKILL пиши.

cv=dbOpenCellViewByType("techliboa2_copy" "TOP_LEVEL" "layout" nil "a")
foreach(inst cv~>instances
if( (inst~>libName=="FEOAreflib") then
new_master = dbOpenCellViewByType("techliboa2_copy" inst~>cellName inst~>viewName nil "r")
inst~>master=new_master
dbClose(new_master)
printf( "Processing %s\n" inst~>cellName)
))
dbSave(cv)
TiNat
Цитата(baumanets @ Apr 3 2014, 09:10) *
Не заработает твой код. Присвоить иное имя библиотеки без ремастера не получится.

Автору темы. Вот код, на базе которго надо делать.
Через графический интерфейс имеет смысл работать, коли элементов мало. Если много -то обязательно через SKILL пиши.

cv=dbOpenCellViewByType("techliboa2_copy" "TOP_LEVEL" "layout" nil "a")
foreach(inst cv~>instances
if( (inst~>libName=="FEOAreflib") then
new_master = dbOpenCellViewByType("techliboa2_copy" inst~>cellName inst~>viewName nil "r")
inst~>master=new_master
dbClose(new_master)
printf( "Processing %s\n" inst~>cellName)
))
dbSave(cv)


Я именно такой код и использовал. Но можно вместо этого кода использовать следующий:
ih = car(setof( instHead cv~>instHeaders instHead~>libName == "projlib" && instHead~>cellName == "pmos"))
dbSetInstHeaderMasterName(ih "new_projlib" ih~>cellName ih~>viewName)
Результат аналогичный.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.