У меня есть схема с несколькими экземплярами, подключенными к одной из сетей. Мне нужна функция SKILL, которая будет печатать для всех экземпляров список выводов, подключенных к этой сети.
Как получить список контактов экземпляра, подключенных к сети, в схеме Cadence Virtuoso с помощью SKILL
comment
просто для будущих вопросов, лучше задать их на форуме каденции. просто погуглите на форуме SKILL cadence :)
- person Paddy   schedule 07.07.2017
Ответы (1)
Или короче:
procedure( ABC_findInstsAndPinsByNet(cvId netName)
let( (netId returnTable)
returnTable = makeTable("ABC_findInstsAndPinsByNet" nil)
netId = dbFindNetByName(cvId netName)
foreach( termId netId~>instTerms
returnTable[termId~>inst] = cons(termId~>name returnTable[termId~>inst])
)
returnTable ;;return
)
)
И затем, чтобы прочитать это:
rezTbl = ABC_findInstsAndPinsByNet(cv() "net2")
printstruct(rezTbl)
и вы получите что-то вроде:
printstruct(rezTbl)
Structure of type association table (table:ABC_findInstsAndPinsByNet):
db:0x3f04079b: ("d")
db:0x3f04079c: ("d" "g")
db:0x3f04079a: ("s")
t
или если вы хотите разобрать все:
foreach( elem rezTbl
printf("%L => %L\n" elem rezTbl[elem])
)
person
Adi Nistor
schedule
29.07.2019
В моей версии кода я захожу внутрь иерархий и печатаю иерархический путь. Ваша версия будет печатать только текущий уровень.
- person Alex; 31.07.2019
хм... не могли бы вы помочь мне с более подробной информацией: я только что попробовал код (спасибо за редактирование также недостающих частей) для сети, подключенной к блоку. И я получил в результате только inst/pin верхнего символа, а не внутри иерархии. Где именно (в коде) вы идете внутри иерархии? Спасибо
- person Adi Nistor; 01.08.2019
На самом деле я взял это с сайта Cadence и почти не использую. Вроде порты устройств не печатаются. Только экземпляры.
- person Alex; 04.08.2019