view single layout net 5141

S

stuso

Guest
Hi all,

In days gone by i used a Skill function that could take a Diva
extracted view and create a new layout/extracted view with only the
metal,poly,via & contact of pre-selected net(s) remaining i.e all
other polygons were stripped away.

For example, you may wish to see a layout only with GND in it, so you
can review it's electromgration or weak points.

Is there something similar kicking about for Assura or PVS...or
perhaps
even 5141 has such a function hidden away? The "mark net" function is
close to what i want, but not quite.

Thanks

Stu
 
On Jan 14, 9:30 am, stuso <stuart.dun...@gigle.biz> wrote:
Hi all,

In days gone by i used a Skill function that could take a Diva
extracted view and create a new layout/extracted view with only the
metal,poly,via & contact of pre-selected net(s) remaining i.e all
other polygons were stripped away.

For example, you may wish to see a layout only with GND in it, so you
can review it's electromgration or weak points.

Is there something similar kicking about for Assura or PVS...or
perhaps
even 5141 has such a function hidden away? The "mark net" function is
close to what i want, but not quite.

Thanks

Stu
I do not have an answer for you, but I also need the same
functionality. I agree that mark net is close, but leaves some to be
desired.

PolyPusher.
 
On Jan 14, 7:30 am, stuso <stuart.dun...@gigle.biz> wrote:
Is there something similar kicking about for Assura or PVS...or
perhaps
even 5141 has such a function hidden away? The "mark net" function is
close to what i want, but not quite.
Stu,

Not to mention that "mark net" on a power or ground layout of any
size can take for bloody ever...

What you want to do is start with your LVS deck (it already has the
layers and connectivity you want), then add a net select command
for each layer you want to extract, then output it.

For Assura (which I used to use) that looks like this (in the extract
deck:

if( avSwitch( "probe_GND" )
then
m1p = geomGetNet( m1 "GND" )
vi1p = geomGetNet( vi1 "GND" )
m2p = geomGetNet( m2 "GND" )
vi2p = geomGetNet( vi2 "GND" )
m3p = geomGetNet( m3 "GND" )
vi3p = geomGetNet( vi3 "GND" )
m4p = geomGetNet( m4 "GND" )
vi4p = geomGetNet( vi4 "GND" )
m5p = geomGetNet( m5 "GND" )
vi5p = geomGetNet( vi5 "GND" )
m6p = geomGetNet( m6 "GND" )
vi6p = geomGetNet( vi6 "GND" )
m7p = geomGetNet( m7 "GND" )
vi7p = geomGetNet( vi7 "GND" )
m8p = geomGetNet( m8 "GND" )
)

Then like this in the RSF:

outFile( "DFII" "PROBE_GND" "."
"/path/to/your/techfile.tf" flat
outLayer( m1p "METAL1" type("drawing"))
outLayer( vi1p "VIA12" type("drawing"))
outLayer( m2p "METAL2" type("drawing"))
outLayer( vi2p "VIA23" type("drawing"))
outLayer( m3p "METAL3" type("drawing"))
outLayer( vi3p "VIA34" type("drawing"))
outLayer( m4p "METAL4" type("drawing"))
outLayer( vi4p "VIA45" type("drawing"))
outLayer( m5p "METAL5" type("drawing"))
outLayer( vi5p "VIA56" type("drawing"))
outLayer( m6p "METAL6" type("drawing"))
outLayer( vi6p "VIA67" type("drawing"))
outLayer( m7p "METAL7" type("drawing"))
outLayer( vi7p "VIA78" type("drawing"))
outLayer( m8p "METAL8" type("drawing"))
)

So the output is a new dfII library with a flat cell in
it containing your data. You can add any layer that
shows up in geomConnect().

You can obviously parameterize this, and put it in a
batchmode wrapper script, etc., etc. I did that for
Assura back in the day, and I've also done it in
Hercules. You can do it in any LVS tool.

-Jay-
 
On Jan 15, 9:12 pm, jayl-n...@accelerant.net wrote:
On Jan 14, 7:30 am, stuso <stuart.dun...@gigle.biz> wrote:

Is there something similar kicking about for Assura or PVS...or
perhaps
even 5141 has such a function hidden away? The "mark net" function is
close to what i want, but not quite.

Stu,

Not to mention that "mark net" on a power or ground layout of any
size can take for bloody ever...

What you want to do is start with your LVS deck (it already has the
layers and connectivity you want), then add a net select command
for each layer you want to extract, then output it.

For Assura (which I used to use) that looks like this (in the extract
deck:

  if( avSwitch( "probe_GND" )
  then
    m1p = geomGetNet( m1 "GND" )
    vi1p = geomGetNet( vi1 "GND" )
    m2p = geomGetNet( m2 "GND" )
    vi2p = geomGetNet( vi2 "GND" )
    m3p = geomGetNet( m3 "GND" )
    vi3p = geomGetNet( vi3 "GND" )
    m4p = geomGetNet( m4 "GND" )
    vi4p = geomGetNet( vi4 "GND" )
    m5p = geomGetNet( m5 "GND" )
    vi5p = geomGetNet( vi5 "GND" )
    m6p = geomGetNet( m6 "GND" )
    vi6p = geomGetNet( vi6 "GND" )
    m7p = geomGetNet( m7 "GND" )
    vi7p = geomGetNet( vi7 "GND" )
    m8p = geomGetNet( m8 "GND" )
  )

Then like this in the RSF:

outFile( "DFII" "PROBE_GND" "."
         "/path/to/your/techfile.tf" flat
         outLayer( m1p  "METAL1" type("drawing"))
         outLayer( vi1p "VIA12"  type("drawing"))
         outLayer( m2p  "METAL2" type("drawing"))
         outLayer( vi2p "VIA23"  type("drawing"))
         outLayer( m3p  "METAL3" type("drawing"))
         outLayer( vi3p "VIA34"  type("drawing"))
         outLayer( m4p  "METAL4" type("drawing"))
         outLayer( vi4p "VIA45"  type("drawing"))
         outLayer( m5p  "METAL5" type("drawing"))
         outLayer( vi5p "VIA56"  type("drawing"))
         outLayer( m6p  "METAL6" type("drawing"))
         outLayer( vi6p "VIA67"  type("drawing"))
         outLayer( m7p  "METAL7" type("drawing"))
         outLayer( vi7p "VIA78"  type("drawing"))
         outLayer( m8p  "METAL8" type("drawing"))
  )

So the output is a new dfII library with a flat cell in
it containing your data.  You can add any layer that
shows up in geomConnect().

You can obviously parameterize this, and put it in a
batchmode wrapper script, etc., etc.  I did that for
Assura back in the day, and I've also done it in
Hercules. You can do it in any LVS tool.

-Jay-
Can anybody give me a leg up on the syntax for Calibre.

Thank you for sharing this, I knew it could be done.
PolyPusher
 
stuso wrote, on 01/14/10 15:30:
Hi all,

In days gone by i used a Skill function that could take a Diva
extracted view and create a new layout/extracted view with only the
metal,poly,via & contact of pre-selected net(s) remaining i.e all
other polygons were stripped away.

For example, you may wish to see a layout only with GND in it, so you
can review it's electromgration or weak points.

Is there something similar kicking about for Assura or PVS...or
perhaps
even 5141 has such a function hidden away? The "mark net" function is
close to what i want, but not quite.

Thanks

Stu
As I also posted at http://www.cadence.com/Community/forums/p/14499/24917.aspx#24917

This takes care of following nets with presistors on too.

I'll post the code here for completeness:


/* abSelectExtractedNet.il

Author A.D.Beckett
Group Custom IC (UK), Cadence Design Systems Ltd.
Language SKILL
Date Jan 20, 2010
Modified
By

Functions for selecting or copying all figures associated
with a net in an extracted view. Can also cope with following
nets through presistors.

Should work in both IC5141 and IC61X.

The four public functions are described below in more detail:

abGetExtractedNetFigs()
abSelectExtractedNet()
abSelectSelectedExtractedNets()
abCopySelectedExtractedNets(?lib "lib" ?cell "cell" ?view "layout")

***************************************************

SCCS Info: @(#) abSelectExtractedNet.il 01/20/10.14:40:02 1.1

*/

/**********************************************************************
* *
* (abGetExtractedNetFigs ?net netId [?followResistors '("presistor")] *
* [?includeResistors t] [?netTable table]) *
* *
* Get all the figures on the netId passed in. Can follow through *
* any parasitic resistors - ?followResistors is a list of parasitic *
* resistor cellNames (nil is the default). ?includeResistors says *
* whether the resistors themselves will be included in the figures *
* returned. ?netTable is only used inside the function when it *
* recursively calls itself. *
* *
**********************************************************************/

(defun abGetExtractedNetFigs (@key net (followResistors '("presistor"))
netTable (includeResistors t))
;----------------------------------------------------------------------
; If following resistors, it's more complicated - need to track which
; nets you've been to avoid loops
;----------------------------------------------------------------------
(if followResistors
(let (figs inst)
;------------------------------------------------------------------
; First time around, this table won't exist - so create it and
; pass it recursively down
;------------------------------------------------------------------
(unless netTable
(setq netTable (makeTable 'netTable nil))
)
(setarray netTable net t)
;------------------------------------------------------------------
; Get the figures directly on this piece of the net
;------------------------------------------------------------------
(setq figs (dbGetq net figs))
;------------------------------------------------------------------
; Now follow any resistors on the net
;------------------------------------------------------------------
(foreach instTerm (dbGetq net instTerms)
(when (member (dbGetq (setq inst (dbGetq instTerm inst))
cellName)
followResistors)
(foreach instInstTerm (dbGetq inst instTerms)
;----------------------------------------------
; Only look at nets which have not already visited
;----------------------------------------------
(unless (arrayref netTable
(dbGetq instInstTerm net))
(when includeResistors
(setq figs (cons inst figs)))
;--------------------------------------------
; Recursively follow the nets on any connected
; resistor, and add to the figures. Figures
; collected on the way back up the recursive
; call.
;--------------------------------------------
(foreach fig
(abGetExtractedNetFigs
?net (dbGetq instInstTerm net)
?followResistors followResistors
?includeResistors includeResistors
?netTable netTable)
(setq figs (cons fig figs))
)
) ; unless
) ; foreach instInstTerm
) ; when it's a resistor to be followed through
) ; foreach instTerm
;------------------------------------------------------------------
; Finally return the figures to pass back up
;------------------------------------------------------------------
figs
)
;--------------------------------------------------------------------
; Or in the simple case (no following of resistors) only have to
; get the figures directly on the net
;--------------------------------------------------------------------
(dbGetq net figs)
) ; if
) ; defun abGetExtractedNetFigs

/*********************************************************************
* *
* (abSelectExtractedNet ?net netId [?followResistors '("presistor")] *
* [?includeResistors t]) *
* *
* Select all the figures on the net id passed in. See *
* abGetExtractedNetFigs for meaning of other two arguments *
* *
*********************************************************************/

(defun abSelectExtractedNet (@key net (followResistors '("presistor"))
(includeResistors t))
(foreach fig
(abGetExtractedNetFigs ?net net ?followResistors followResistors
?includeResistors includeResistors)
(geSelectFig fig)
) ; foreach fig
) ; defun abSelectExtractedNet

/***************************************************************
* *
* (abSelectSelectedExtractedNets [?shapes l_shapes] *
* [?followResistors '("presistor")] *
* [?includeResistors t]) *
* *
* Looks at the nets associated with a set of shapes - default *
* is the selected set - and selects all the figures associated *
* with them. See abGetExtractedNetFigs for details of other *
* two arguments. *
* *
***************************************************************/

(defun abSelectSelectedExtractedNets (@key (shapes (geGetSelSet))
(followResistors '("presistor"))
(includeResistors t))
(foreach shape shapes
(when (dbGetq shape net)
(abSelectExtractedNet ?net (dbGetq shape net)
?followResistors followResistors
?includeResistors includeResistors)
) ; when
) ; foreach
t
) ; defun abSelectSelectedExtractedNets

/**********************************************************************
* *
* (abCopySelectedExtractedNets [?shapes l_shapes] *
* ?lib "libName" ?cell "cellName" *
* ?view "viewName" *
* [?followResistors '("presistor")] *
* [?includeResistors t]) *
* *
* Looks at the nets associated with a set of shapes - default *
* is the selected set - and copies all the figures associated *
* with them to the specified lib/cell/view. See abGetExtractedNetFigs *
* for details of other two arguments. *
* *
**********************************************************************/
(defun abCopySelectedExtractedNets (@key (shapes (geGetSelSet))
lib cell view
(followResistors '("presistor"))
(includeResistors t))
(let (destCV)
;--------------------------------------------------------------------
; Check lib/cell/view valid
;--------------------------------------------------------------------
(unless (and
(stringp lib)
(stringp cell)
(stringp view))
(error
"abCopySelectedExtractedNets: ?lib/?cell/?view must be strings: %L/%L/%L\n"
lib cell view)
)
(setq destCV
(dbOpenCellViewByType lib cell view "maskLayout" "a"))
(unless destCV
(error
"abCopySelectedExtractedNets: Could not open cellView %L/%L/%L for append\n"
lib cell view)
)
;--------------------------------------------------------------------
; Find the figures on the selected nets, and copy them to the
; destination cellView
;--------------------------------------------------------------------
(foreach shape shapes
(when (dbGetq shape net)
(foreach fig
(abGetExtractedNetFigs
?net (dbGetq shape net)
?followResistors followResistors
?includeResistors includeResistors)
(dbCopyFig fig destCV)
) ; foreach fig
) ; when
) ; foreach shape
;--------------------------------------------------------------------
; Return the destination cellView
;--------------------------------------------------------------------
destCV
) ; let
) ; defun abCopySelectedExtractedNets
 
On Jan 20, 6:52 am, Andrew Beckett <andr...@DcEaLdEeTnEcTe.HcIoSm>
wrote:
stuso wrote, on 01/14/10 15:30:

Hi all,

In days gone by i used a Skill function that could take a Diva
extracted view and create a new layout/extracted view with only the
metal,poly,via & contact of pre-selected net(s) remaining i.e all
other polygons were stripped away.

For example, you may wish to see a layout only with GND in it, so you
can review it's electromgration or weak points.

Is there something similar kicking about for Assura or PVS...or
perhaps
even 5141 has such a function hidden away? The "mark net" function is
close to what i want, but not quite.

Thanks

Stu

As I also posted athttp://www.cadence.com/Community/forums/p/14499/24917.aspx#24917

This takes care of following nets with presistors on too.

I'll post the code here for completeness:

/* abSelectExtractedNet.il

Author     A.D.Beckett
Group      Custom IC (UK), Cadence Design Systems Ltd.
Language   SKILL
Date       Jan 20, 2010
Modified
By

Functions for selecting or copying all figures associated
with a net in an extracted view. Can also cope with following
nets through presistors.

Should work in both IC5141 and IC61X.

The four public functions are described below in more detail:

abGetExtractedNetFigs()
abSelectExtractedNet()
abSelectSelectedExtractedNets()
abCopySelectedExtractedNets(?lib "lib" ?cell "cell" ?view "layout")

***************************************************

SCCS Info: @(#) abSelectExtractedNet.il 01/20/10.14:40:02 1.1

*/

/**********************************************************************
*                                                                     *
* (abGetExtractedNetFigs ?net netId [?followResistors '("presistor")] *
*              [?includeResistors t] [?netTable table])               *
*                                                                     *
*   Get all the figures on the netId passed in. Can follow through    *
*  any parasitic resistors - ?followResistors is a list of parasitic  *
*   resistor cellNames (nil is the default). ?includeResistors says   *
*  whether the resistors themselves will be included in the figures   *
*    returned. ?netTable is only used inside the function when it     *
*                      recursively calls itself.                      *
*                                                                     *
**********************************************************************/

(defun abGetExtractedNetFigs (@key net (followResistors '("presistor"))
                                   netTable (includeResistors t))
   ;----------------------------------------------------------------------
   ; If following resistors, it's more complicated - need to track which
   ; nets you've been to avoid loops
   ;----------------------------------------------------------------------
   (if followResistors
     (let (figs inst)
       ;------------------------------------------------------------------
       ; First time around, this table won't exist - so create it and
       ; pass it recursively down
       ;------------------------------------------------------------------
       (unless netTable
        (setq netTable (makeTable 'netTable nil))
        )
       (setarray netTable net t)
       ;------------------------------------------------------------------
       ; Get the figures directly on this piece of the net
       ;------------------------------------------------------------------
       (setq figs (dbGetq net figs))
       ;------------------------------------------------------------------
       ; Now follow any resistors on the net
       ;------------------------------------------------------------------
       (foreach instTerm (dbGetq net instTerms)
               (when (member (dbGetq (setq inst (dbGetq instTerm inst))
                                     cellName)
                             followResistors)
                 (foreach instInstTerm (dbGetq inst instTerms)
                          ;----------------------------------------------
                          ; Only look at nets which have not already visited
                          ;----------------------------------------------
                          (unless (arrayref netTable
                                            (dbGetq instInstTerm net))
                            (when includeResistors
                              (setq figs (cons inst figs)))
                            ;--------------------------------------------
                            ; Recursively follow the nets on any connected
                            ; resistor, and add to the figures. Figures
                            ; collected on the way back up the recursive
                            ; call.
                            ;--------------------------------------------
                            (foreach fig
                                     (abGetExtractedNetFigs
                                       ?net (dbGetq instInstTerm net)
                                       ?followResistors followResistors
                                       ?includeResistors includeResistors
                                       ?netTable netTable)
                                     (setq figs (cons fig figs))
                                     )
                            ) ; unless
                          ) ; foreach instInstTerm
                 ) ; when it's a resistor to be followed through
               ) ; foreach instTerm
       ;------------------------------------------------------------------
       ; Finally return the figures to pass back up
       ;------------------------------------------------------------------
       figs
       )
     ;--------------------------------------------------------------------
     ; Or in the simple case (no following of resistors) only have to
     ; get the figures directly on the net
     ;--------------------------------------------------------------------
     (dbGetq net figs)
     ) ; if
   ) ; defun abGetExtractedNetFigs

/*********************************************************************
*                                                                    *
* (abSelectExtractedNet ?net netId [?followResistors '("presistor")] *
*                       [?includeResistors t])                       *
*                                                                    *
*        Select all the figures on the net id passed in. See         *
*      abGetExtractedNetFigs for meaning of other two arguments      *
*                                                                    *
*********************************************************************/

(defun abSelectExtractedNet (@key net (followResistors '("presistor"))
                                  (includeResistors t))
   (foreach fig
           (abGetExtractedNetFigs ?net net ?followResistors followResistors
                                  ?includeResistors includeResistors)
           (geSelectFig fig)
           ) ; foreach fig
   ) ; defun abSelectExtractedNet

/***************************************************************
*                                                              *
*      (abSelectSelectedExtractedNets [?shapes l_shapes]       *
*              [?followResistors '("presistor")]               *
*                    [?includeResistors t])                    *
*                                                              *
* Looks at the nets associated with a set of shapes - default  *
* is the selected set - and selects all the figures associated *
*  with them. See abGetExtractedNetFigs for details of other   *
*                        two arguments.                        *
*                                                              *
***************************************************************/

(defun abSelectSelectedExtractedNets (@key (shapes (geGetSelSet))
                                           (followResistors '("presistor"))
                                           (includeResistors t))
   (foreach shape shapes
           (when (dbGetq shape net)
             (abSelectExtractedNet ?net (dbGetq shape net)
                                   ?followResistors followResistors
                                   ?includeResistors includeResistors)
             ) ; when
           ) ; foreach
   t
   ) ; defun abSelectSelectedExtractedNets

/**********************************************************************
*                                                                     *
*           (abCopySelectedExtractedNets [?shapes l_shapes]           *
*                   ?lib "libName" ?cell "cellName"                   *
*                          ?view "viewName"                           *
*                  [?followResistors '("presistor")]                  *
*                       [?includeResistors t])                        *
*                                                                     *
*     Looks at the nets associated with a set of shapes - default     *
*     is the selected set - and copies all the figures associated     *
* with them to the specified lib/cell/view. See abGetExtractedNetFigs *
*                 for details of other two arguments.                 *
*                                                                     *
**********************************************************************/
(defun abCopySelectedExtractedNets (@key (shapes (geGetSelSet))
                                           lib cell view
                                           (followResistors '("presistor"))
                                           (includeResistors t))
   (let (destCV)
     ;--------------------------------------------------------------------
     ; Check lib/cell/view valid
     ;--------------------------------------------------------------------
     (unless (and
              (stringp lib)
              (stringp cell)
              (stringp view))
       (error
"abCopySelectedExtractedNets: ?lib/?cell/?view must be strings: %L/%L/%L\n"
             lib cell view)
       )
     (setq destCV
          (dbOpenCellViewByType lib cell view "maskLayout" "a"))
     (unless destCV
       (error
"abCopySelectedExtractedNets: Could not open cellView %L/%L/%L for append\n"
             lib cell view)
       )
     ;--------------------------------------------------------------------
     ; Find the figures on the selected nets, and copy them to the
     ; destination cellView
     ;--------------------------------------------------------------------
     (foreach shape shapes
             (when (dbGetq shape net)
               (foreach fig
                        (abGetExtractedNetFigs
                          ?net (dbGetq shape net)
                          ?followResistors followResistors
                          ?includeResistors includeResistors)
                        (dbCopyFig fig destCV)
                        ) ; foreach fig
               ) ; when
             ) ; foreach shape
     ;--------------------------------------------------------------------
     ; Return the destination cellView
     ;--------------------------------------------------------------------
     destCV
     ) ; let
   ) ; defun abCopySelectedExtractedNets
Can you please post the command syntax to execute this code.

Thanks
 
rick wrote, on 02/17/10 16:31:
On Jan 20, 6:52 am, Andrew Beckett<andr...@DcEaLdEeTnEcTe.HcIoSm
wrote:

Can you please post the command syntax to execute this code.

Thanks
Isn't that in the comments in the code?

For example, open your extracted view, select a piece of one net, and then do:

abCopySelectedExtractedNets(?lib "lib" ?cell "cell" ?view "layout")

and it will copy all the shapes associated with the net which you've selected a
piece of into a lib/cell/view called "lib", "cell", "layout".

Or if you just want to select all the shapes, rather than copying them, just use:

abSelectSelectedExtractedNets()

Regards,

Andrew.
 
On Feb 19, 7:12 am, Andrew Beckett <andr...@DcEaLdEeTnEcTe.HcIoSm>
wrote:
rick wrote, on 02/17/10 16:31:

On Jan 20, 6:52 am, Andrew Beckett<andr...@DcEaLdEeTnEcTe.HcIoSm
wrote:

Can you please post the command syntax to execute this code.

Thanks

Isn't that in the comments in the code?

For example, open  your extracted view, select a piece of one net, and then do:

abCopySelectedExtractedNets(?lib "lib" ?cell "cell" ?view "layout")

and it will copy all the shapes associated with the net which you've selected a
piece of into a lib/cell/view called "lib", "cell", "layout".

Or if you just want to select all the shapes, rather than copying them, just use:

abSelectSelectedExtractedNets()

Regards,

Andrew.
Thanks for the clarification! BTW, is there anyway to get the via's
into the extracted view so they can
be copied also? ...or would this require an Assura deck?

Thanks again
 
rick wrote, on 02/19/10 22:29:
On Feb 19, 7:12 am, Andrew Beckett<andr...@DcEaLdEeTnEcTe.HcIoSm
wrote:
rick wrote, on 02/17/10 16:31:

On Jan 20, 6:52 am, Andrew Beckett<andr...@DcEaLdEeTnEcTe.HcIoSm
wrote:

Can you please post the command syntax to execute this code.

Thanks

Isn't that in the comments in the code?

For example, open your extracted view, select a piece of one net, and then do:

abCopySelectedExtractedNets(?lib "lib" ?cell "cell" ?view "layout")

and it will copy all the shapes associated with the net which you've selected a
piece of into a lib/cell/view called "lib", "cell", "layout".

Or if you just want to select all the shapes, rather than copying them, just use:

abSelectSelectedExtractedNets()

Regards,

Andrew.

Thanks for the clarification! BTW, is there anyway to get the via's
into the extracted view so they can
be copied also? ...or would this require an Assura deck?

Thanks again
The via shapes would be in the extracted view normally (although this does
depend on what interconnect layers the extraction rules save). So I don't
understand your question.

Regards,

Andrew.
 
On Feb 22, 3:03 am, Andrew Beckett <andr...@DcEaLdEeTnEcTe.HcIoSm>
wrote:
rick wrote, on 02/19/10 22:29:





On Feb 19, 7:12 am, Andrew Beckett<andr...@DcEaLdEeTnEcTe.HcIoSm
wrote:
rick wrote, on 02/17/10 16:31:

On Jan 20, 6:52 am, Andrew Beckett<andr...@DcEaLdEeTnEcTe.HcIoSm
wrote:

Can you please post the command syntax to execute this code.

Thanks

Isn't that in the comments in the code?

For example, open  your extracted view, select a piece of one net, and then do:

abCopySelectedExtractedNets(?lib "lib" ?cell "cell" ?view "layout")

and it will copy all the shapes associated with the net which you've selected a
piece of into a lib/cell/view called "lib", "cell", "layout".

Or if you just want to select all the shapes, rather than copying them, just use:

abSelectSelectedExtractedNets()

Regards,

Andrew.

Thanks for the clarification!   BTW, is there anyway to get the via's
into the extracted view so they can
be copied also?    ...or would this require an Assura deck?

Thanks again

The via shapes would be in the extracted view normally (although this does
depend on what interconnect layers the extraction rules save). So I don't
understand  your question.

Regards,

Andrew.- Hide quoted text -

- Show quoted text -
Hi,

When you refer to "extracted" data, is this the output of Assura
loaded back into Virtuoso? Is there a similar path for Calibre as
well. Some of our PDKs use Assura, some don't.

Thank you,
Eric
 
On Feb 22, 5:32 am, PolyPusher <eric.d.fitzsimm...@gmail.com> wrote:
On Feb 22, 3:03 am, Andrew Beckett <andr...@DcEaLdEeTnEcTe.HcIoSm
wrote:



rick wrote, on 02/19/10 22:29:

On Feb 19, 7:12 am, Andrew Beckett<andr...@DcEaLdEeTnEcTe.HcIoSm
wrote:
rick wrote, on 02/17/10 16:31:

On Jan 20, 6:52 am, Andrew Beckett<andr...@DcEaLdEeTnEcTe.HcIoSm
wrote:

Can you please post the command syntax to execute this code.

Thanks

Isn't that in the comments in the code?

For example, open  your extracted view, select a piece of one net, and then do:

abCopySelectedExtractedNets(?lib "lib" ?cell "cell" ?view "layout")

and it will copy all the shapes associated with the net which you've selected a
piece of into a lib/cell/view called "lib", "cell", "layout".

Or if you just want to select all the shapes, rather than copying them, just use:

abSelectSelectedExtractedNets()

Regards,

Andrew.

Thanks for the clarification!   BTW, is there anyway to get the via's
into the extracted view so they can
be copied also?    ...or would this require an Assura deck?

Thanks again

The via shapes would be in the extracted view normally (although this does
depend on what interconnect layers the extraction rules save). So I don't
understand  your question.

Regards,

Andrew.- Hide quoted text -

- Show quoted text -

Hi,

When you refer to "extracted" data, is this the output of Assura
loaded back into Virtuoso?   Is there a similar path for Calibre as
well.   Some of our PDKs use Assura, some don't.

Thank you,
Eric
The extracted view does not contain via layers and it does not appear
that they are being saved by
looking at the rules file. The main goal is to get a power plot.
The solution listed on sourcelink has
very little info
 
rick wrote, on 02/22/10 16:52:
Hi,

When you refer to "extracted" data, is this the output of Assura
loaded back into Virtuoso? Is there a similar path for Calibre as
well. Some of our PDKs use Assura, some don't.

Thank you,
Eric

The extracted view does not contain via layers and it does not appear
that they are being saved by
looking at the rules file. The main goal is to get a power plot.
The solution listed on sourcelink has
very little info
Rick,

Which solution are you talking about?

Saving the via layers in the Assura rules should be straightforward enough. I
think you can probably use saveInterconnect to do this (don't have a chance to
try it right now, but I think it should be OK).

Regards,

Andrew.
 
On Feb 23, 12:43 am, Andrew Beckett <andr...@DcEaLdEeTnEcTe.HcIoSm>
wrote:
rick wrote, on 02/22/10 16:52:

Hi,

When you refer to "extracted" data, is this the output of Assura
loaded back into Virtuoso?   Is there a similar path for Calibre as
well.   Some of our PDKs use Assura, some don't.

Thank you,
Eric

The extracted view does not contain via layers and it does not appear
that they are being saved by
looking at the rules file.    The main goal is to get a power plot.
The solution listed on sourcelink has
very little info

Rick,

Which solution are you talking about?

Saving the via layers in the Assura rules should be straightforward enough. I
think you can probably use saveInterconnect to do this (don't have a chance to
try it right now, but I think it should be OK).

Regards,

Andrew.
The extract.rul file is missing saveInterconnect for all of the
vias. I got it work but it
was alot harder than it should have been because of the revision
control software and
the PDK configuration.

On sourceLink there is a solution(Solution ID:11071310) that is not
very complete or
helpful.
 
rick wrote, on 02/23/10 15:40:
On sourceLink there is a solution(Solution ID:11071310) that is not
very complete or
helpful.
It's OK, but it starts from the assumption that you know how the rest of the
existing extract rules work and are structured - it's aimed at a rule deck
writer. It probably should do a better job of explaining the prerequisites.

You should give some constructive feedback on the support site when looking at
this solution - this will help the solution author improve the solution.

Thanks,

Andrew.
 

Welcome to EDABoard.com

Sponsor

Back
Top