Quantcast
Channel: Cadence Custom IC Skill Forum
Viewing all 5066 articles
Browse latest View live

How handle deleting files in Cadence Library Manager?

$
0
0

This code handle copying and renamimg files, but not handle deleteing files. p, li { white-space: pre-wrap; }

procedure(copyTriggerPrint(myFunction copyPhaseStr checkOffList supplementList otherFromSpecs otherToSpecs updateList retHint ctxList reserved "stgggggggx")

let((retOK)

retOK = t

printf("Copy phase is '%s'\n" copyPhaseStr)

printf("Calling options were %L\n", ctxList)

printf("Pre copy set is %L\n", checkOffList)

printf("Post copy is from %L\n", otherFromSpecs)

printf(" to %L\n", otherToSpecs)

;;---------------------------------------------------------------------

;; Exclude all .svn dirs and files from copy

;;---------------------------------------------------------------------

foreach( copyObj checkOffList

when( fromSpec = cadr(copyObj)

fromSpec = gdmInspectSpec(fromSpec)

objStr = buildString(setof(x fromSpec stringp(x)) "/")

printf("Checking %L\n" objStr);

printf("oBJECT %L\n" fromSpec)

); when fromSpec

); foreach copyObj

t

retOK

)

)

  p, li { white-space: pre-wrap; }

ccpRegTrigger("ccpPostExpandTrigger" 'copyTriggerPrint nil)

ccpRegTrigger("ccpPreTransferTrigger" 'copyTriggerPrint nil)

ccpRegTrigger("ccpPostTransferTrigger" 'copyTriggerPrint nil)

ccpRegTrigger("ccpPreUpdateTrigger" 'copyTriggerPrint nil)

ccpRegTrigger("ccpPostCopyTrigger" 'copyTriggerPrint nil)

 

 How handle deleting files?


How to open a schematic window from a layout window

$
0
0

 Hi All,

Im looking to write code to open a corresponding schematic view from a layout window. I have the command below, (which uses predefined variables BSlibname1, BSblockname1 and BSviewname1 to call the cell info) but I'm hoping to extract this info from the open layout window. Would anyone know how to go about this?

Thanks,
Brian.

BSlibname1="adf4355_1"
BSblockname1="adf4355_1_r0"
BSviewname1="schematic"

hiSetBindKey("Layout" "Ctrl Alt Shift<key>1""win1=hiCreateWindow('((0 248) (1410 1175)) \"graphics\" \"schematic_win\" \"\" t) geOpen(?window win1 ?lib BSlibname1 ?cell BSblockname1 ?view BSviewname1 ?mode \"r\") hiResizeWindow(win1 list(0:248 1410:1175))")

Turn off Enter Forms in v6

$
0
0

Does anyone know how to turn off the visibility of the Enter Forms for common functions in Virtuoso v6?

For example, the stretch, move, copy, etc commands under the Edit menu, whether called by the pulldown or by bindkey, popup an Enter Form that I only saw in v5 by using the F3 key.

Is there a setting that controls the visibility of this form by default so I can keep the form from automatically popping up when I am executing simple, common commands frequently?

Adjust rubberbandding path

$
0
0

Hi,

I have created several skill procedures that draw cutom paths.  The problem is that I don't see a preview while drawing the path, only a rubberbanding path with always has a with of 1.

Idealy, I would see a preview while adding points to the path (like in the Create Path and create Multipart path functions).

I hear you think, why don't you just make a multipart path template, but I want to use an options form to set different parrameters instead of having a huge list with template flavors.

 

Thx

Rik

Code works a cds6 but not on cds5

$
0
0

 Hi, I have a procedure witch creates a pcell.  This is working in cds 6, but when I try to use it in cds5 it goes wrong.

 First piece of code is :

procedure( icsMatchedArrayUnit(libName cellName mosType l w pcDrainN)

 pcDefinePCell(

    ; Declare cell identifier
    list(ddGetObj(libName) cellName "layout")

    ; Set pcell parameters
    (
    (Unit int 1)
    (l float l)
    (w float w)
    (pcLibName string car(mosType))
    (pcViewName string cadr(mosType))
    (pcViewType string caddr(mosType))
    (pcDrainN int pcDrainN)
    )

 

It goes wrong after the second line, error I get is *WARNING* Invalid cell name - nil

 

Does somebody know what's wrong here?

Thanks
Rik

Need a code for align instances by checking layer spacing

$
0
0

 Hi all,

            I need a code which will align group of instances by comparing their spacing between specified layer ( like leHiAlign() in 615). Please suggest me about this.

 

Thank you,

Sarvani

leSearchHierarchy() layers origin problem

$
0
0

 Hi all,

 1) I have used m1=leSearchHierarchy( cv cv~>bBox 32 "any shape" list(list("layer" "==" list("M1" "drawing")))) to get all M1 layers (from hirerchy also). But when I enter dbLayerSize(cv list("y2" "drawing")  m1 0.2) in CIW then Y2 layer is placed at different points from original m1 layers(getting mismatch for hirerchy m1 layers only). Please let me know how can I overcame this.

2) And  is there any command which is faster than leSearchHierarchy.

 

Thank you,

Sarvani

 

define input waveform in ADE XL

$
0
0
H! there,I have an ADE XL test in which I need to sweep one input pin through 5 bit serial address (32 addresses) and i need it to be done in a single run. toggling the input through 32 combination (i.e 5x32=160 pulses is not an option) is too slow and will take a long time. I need to run all these combinations in parallel. please let me know how can i define an input for this task.

dbGetNeighborList output explained

$
0
0

I need a clarification of the data output of the function dbGetNeighborList.

The first number is the distance, second is the hierarchal path of the object.

What is the third set referring to?

My output of the function.
dbGetNeighborList(geGetEditCellView() car(geGetSelSet())~>bBox "b" '("M1") 32)
 ((0.021 db:0x1cacaaef
    (0.038 -0.021)
   )

Thanks

Create new PCell attributes or properties to hold a list of object identifiers

$
0
0

Dear All,

I am trying to do the following with SKILL in IC6.1.5.500.12:
================================
Given: an object identifier of a schematic instance Inst0_sch = db: 0x15b7f112, where Inst0_sch is a MOSFET PCell

Obj: assign a list of object identifiers (from the same schematic) listA = list( db:0x15b7f345 db:0x15b7f456 db:0x15b7f678 ) to Inst0_sch as a new attribute or property: "impactNeighbors"
================================

I am thinking this would make query much easier, sort of to minic the reference/pointers in C/C++.
But haven't been able to get it work. Somehow I cannot make new attributes.. And in making a new property, I did not see supported valueType of l_objId?

Alternatively we can define a global list of lists: memlist_, to hold these "impactNeighbors", then assign the list index as a new property to Inst0_sch, e.g.,
dbSetq(Inst0_sch 32 "impactNeighbors"), where nth(32 memlist_) is listA..

But I'd strongly prefer the first way.. Could anyone give me some pointers?

Thanks a bunch!
Duo p, li { white-space: pre-wrap; }

ciCacheFind with dbOpenCellViewByType

$
0
0

Hi,

We are trying to asses how many layout cells in our current design library have constraints.

I am trying to write a skill code to open every layout cell in my design library and check if it has constraints.

What I am doing :

cv=dbOpenCellViewByType(libName cellName "layout")

cache = ciCacheFind(cv)

when(cache~>constraints printf("Found constraints\n")

But unfortunately ciCacheFind(cv) can't find anythig because I am opening cell in the memory(dbOpen) without building constraints cache.

I was told that it works only when you physically  open layout XL window.But in this case it is painfull to do foreach(cell library~>cells geOpen(...)).

Painfull because I need to open Virtuoso XL and I didn't find any other way than to use deInstallApp(getCurrentWindow() "Virtuoso XL") function.And deInstallApp(getCurrentWindow() "Virtuoso XL")  fails if layout doesn't have corresponding schematic(I don't need schematic to open VXL manually if I choose too).Painfull because it opens 1000+ windows.I can purge them, but here is another pain.When I do hiGetWindowList() I am getting list of windows including CIW and others which I can't purge.Trying to purge CIW gives an error.

I was wondering if  somebody knows how to check constraint existance in more easy way.

It looks like a simple skill, but not a simple way to implement.

Any ideas?

 

Thanks a lot,

Eduard Raines

 

Single Via Contact to Double Via Contact

$
0
0

Hello,

Our default Via Contact is only single when instanciated, is it possible to have a skill code that can be attached to a bindkey that when a Via Contact is instanciated, it will be doubled?

Instead of using Window or Bindkey - "Create Contact" to double or multiple contact by changing Row or Column, is it possible to have a code when used with a bindkey automatically call a M1M2 Via Contact 1x2?

How to display terminals of both schematic and layout in single form.

$
0
0

 Hi All,

Could you please suggest me how to display terminals of both schematic and layout in single popup menu? Is there any command for it?

Thanks,

Sritha

How to get data of CIW in new popup window?

$
0
0

 Is there any command to get the data from CIW(command interupter window) and display it in a new popup window.

Thanks,

Leela.

Assigning net name to schematic symbol terminals

$
0
0

Hi,

Is it possible to assign net name to the symbol term in the schematic through skill without creating wire(wire stub) from the terminal?

Thanks,

Eduard Raines


Long script runs out of memory

$
0
0

I have a SKILL script that runs out of memory and terminates Cadence when running on a medium-sized MMIC.  I will try assigning intermediate variables to nil after they are used but is there anything I can do either to increase memory or in general to redue its use?

pPar not works for intiger CDF parameters

$
0
0

 Hi all,

        Is pPar works for all CDF parameters? I need to pass intiger numbers (like no. of fingers) from top level to bottem level in schematic. But when I enter pPar(NF) through edit object properties options then it doesn't work's. How can I get this intiger values to bottom level? Let me know if any other set up is needed.

thankyou,

sarvani

rodCreateRect taking too long

$
0
0

Using the profiler and also just putting print statements in I found that I am having trouble with rodCreateRect taking longer and longer to process.  I have some very simple code:

for(i 0 Nx

   for(j 0 Ny

      <compute X & Y>

      rodCreateRect(?cvId Cv ?layer LPP ?bBox <Computed from X and Y by a simple linear formula>)

   );End for j

);End for i

This is such a simple code segment but when you have 700 or 800 rectangles to place on each inner loop, things are slowing down to the point that it takes hours to get throught this.  I realize that every time you create an object it has to add it to a large data structure, but is there no way to do this?  I cannot use the array or mosaic functions because the array is not cartesian.

Anyone have any ideas about how to speed this up?

How to use hierarchy objects in dbLayerSize() command.

$
0
0

Hi all,

        I have to generate M1 layer under M2 in layout.

cv=geGetEditCellView()

 figList2= dbGetOverlaps(cv list(car(pts) car(pts)) list("M2" "drawing") 32 t)

 dbLayerSize(cv list("M1" "drawing")  figList2 -0.08)

It works well for M2 layers in present level. Doesn't works for hirerchy M2 layers. Please help me.

 

Thank you,

Sarvani.

Layout (X)L pop-up windows default position

$
0
0

 

Hello,

 

Is there a way to set the default position where the various pop-up windows (i.e. "Copy", "Move", "Create Ruler", etc.) appear in Layout (X)L? These continuously appear around the middle of the screen and present an annoyance. Having them appear consistently in one of the corners would be nice.

 

Alternatively, is there a way to turn these off altogether?

 

Thanks in advance!

Viewing all 5066 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>