Jump to content

    

Encounter: Передача результата команды get_cells в переменную

Приветствую! Стоит задача получить список связанных с net-ом ячеек.

Не могу/не знаю как передать результат команды get_cells в переменную.

Как пробовал...

encounter 51> get_cells -of_objects [get_nets n400]
U526 U525 U524
0x15
  
encounter 52> set a [get_cells -of_objects [get_nets n400]]
0x17
encounter 53> puts $a
0x17
  
encounter 54> get_cells -of_objects [get_nets n400] > 456

Usage: get_cells [-help] [-filter <expr>] [-hierarchical] [-hsc <char>] [-leaf]
                 [-nocase] [-quiet] [-regexp] [ <patterns> | -of_objects <object_list> ]

**ERROR: (ENCTCM-48):	"456" is not a legal option for command "get_cells". Either the current option or an option prior to it is not specified correctly.

  
encounter 55> exec echo [get_cells -of_objects [get_nets n400]] > 123

В файл 123 записывается "0x1a".

 

Что посоветуете?

 

 

Share this post


Link to post
Share on other sites

В Синопсисе есть такая же команда get_cells - она возвращает коллекцию. Чтобы получить имена элементов этой коллекции используется команда get_object_name [get_cells ...]

Может и в Encounter есть что-то подобное?

Share this post


Link to post
Share on other sites
26 minutes ago, oratie said:

В Синопсисе есть такая же команда get_cells - она возвращает коллекцию. Чтобы получить имена элементов этой коллекции используется команда get_object_name [get_cells ...]

Может и в Encounter есть что-то подобное?

Большое спасибо, помогли. В DC я писал в файл и затем читал из него. Оказывается все просто...

Share this post


Link to post
Share on other sites

Маленькое уточнение. get_cells -of [get_nets ] будет работать криво, поскольку в базе данных обьектов цепь присоединяется к пину, а пин уже принадлежит селле. Поэтому правильнее использовать конструкцию get_cells -of [get_pins -of [get_nets  ]]   или, к примеру get-nets -of [get_pins -of [get_cells ]].   На самом деле, все и еще сложнее - бывают ассайны (цепь присоединяется к цепи, а не пину), порты (цепь присоединяется к порту, а не пину - разные типы обьектов) и т.д., поэтому найти селлы подключенные к конкретной цепи часто бывает куда сложнее чем может показаться на первый взгляд.

И еще одно учтонение - вместо get_object_name можно просто получить property/attribute обьекта через get_attribute (synopsys) или get_property (cadence).

Share this post


Link to post
Share on other sites

Вместо get_cells можно использовать all_connected

all_connected [get_nets net_name]

Так же дает указатель на ячейки который можно вывести через get_object_name

В 27.09.2019 в 16:07, Aleх сказал:

Маленькое уточнение. get_cells -of [get_nets ] будет работать криво, поскольку в базе данных обьектов цепь присоединяется к пину, а пин уже принадлежит селле. Поэтому правильнее использовать конструкцию get_cells -of [get_pins -of [get_nets  ]]   или, к примеру get-nets -of [get_pins -of [get_cells ]].   На самом деле, все и еще сложнее - бывают ассайны (цепь присоединяется к цепи, а не пину), порты (цепь присоединяется к порту, а не пину - разные типы обьектов) и т.д., поэтому найти селлы подключенные к конкретной цепи часто бывает куда сложнее чем может показаться на первый взгляд.

И еще одно учтонение - вместо get_object_name можно просто получить property/attribute обьекта через get_attribute (synopsys) или get_property (cadence).

В таких случаях можно использовать ключ -leaf, если нужны именно ячейки подключенные к проводу(не знаю проходит ли он через асайны). Есть еще вариант dbGet [all_connected net_name].inst.defName - тут сначала ищутся все пины подключенные к нету а затем определяются имена ячеек.

Edited by MickeyMouse

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this