TiNat 0 28 марта, 2014 Опубликовано 28 марта, 2014 · Жалоба Добрый день. Использую Cadence 5141. В Virtuoso Layout Editor хочу заменить элементы одной библиотеки такими же элементами из другой бибилотеки. Выбираю команду Search... и там использую опцию replace. В случае если число элементов к примеру 70000, они выделяются за ~10 секунд, если их число 120000, то времени необходимо больше, но незначительно: ~30 секунд. Но если их число 180000, то cadence виснет. Я ждал порядка часа, но элементы так и не выделились, при этом, память на машине не забита. Кто-небудь может подсказать, это глюк Cadence, или у них зашито в программе количество выделяемых объектов в какой-небудь буфер. Можно ли вообще побороть такую проблему? P.S. Такая же проблема возникла и в Schematic Editor при выделении большого числа объектов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nikolascha 0 29 марта, 2014 Опубликовано 29 марта, 2014 · Жалоба А нельзя ли в каденсе изменить ссылку на библиотеку не открывая схему/топологию? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TiNat 0 29 марта, 2014 Опубликовано 29 марта, 2014 · Жалоба А нельзя ли в каденсе изменить ссылку на библиотеку не открывая схему/топологию? Можно. Но в этом случае поменяется ссылка во всех ячейках, которые относятся к старой библиотеке. А мне надо поменять ссылку только одного типа ячейки (поэтому я могу поставить два условия: cell name = pmos и lib name = projlib к примеру). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fragment 0 29 марта, 2014 Опубликовано 29 марта, 2014 · Жалоба А если через SKILL попробовать? Я набросал примерную процедуру. Писал по памяти, поэтому возможны ошибки example.il.txt Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
TiNat 0 29 марта, 2014 Опубликовано 29 марта, 2014 · Жалоба А если через SKILL попробовать? Я набросал примерную процедуру. Писал по памяти, поэтому возможны ошибки Спасибо. Опробую такой вариант. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KMC 0 31 марта, 2014 Опубликовано 31 марта, 2014 · Жалоба В Virtuoso Layout для замены элементов используется команда Design -> Remaster instances ... Работает эта команда считанные секунды даже на больших проектах. В вашем случае надо изменить только имя библиотеки у всех ячеек. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
baumanets 12 3 апреля, 2014 Опубликовано 3 апреля, 2014 · Жалоба А если через 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 0 3 апреля, 2014 Опубликовано 3 апреля, 2014 · Жалоба Не заработает твой код. Присвоить иное имя библиотеки без ремастера не получится. Автору темы. Вот код, на базе которго надо делать. Через графический интерфейс имеет смысл работать, коли элементов мало. Если много -то обязательно через 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) Результат аналогичный. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться