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

Bounding box of a layer in an instance in layout

$
0
0

Hi ,

I want to get bounding box of a drawing layer inside an instance (could be a pcell or a userdefined cell). (Ex: Bounding box of Poly 1 layer inside a transistor pcell ). dbComuteBBoxNoNLP gives me the bounding box of the instance.

Is there a function that can do this? 

Thanks

Vishal


Not able to select Alt Key for Bindkeys

$
0
0

Hi all..

I am using Virtuoso6.1 version.In this i am not able to set Alt key for bind keys.If any one knows to set Alt key for bindkeys please give me reply.

Thanks..

Veera.K Pramod 

Instance True BBox value

$
0
0

Just try to keep the script simple.

 

Is there a variable that will give the TrueBBox value of an instance in layiout or will I have to look in the cellview and get the prBoundary bbox??

 

Thanks

Clone in new window

$
0
0

Is there any option to open the Clone in new layout window, as I can do edit place only

Skill function to open schematic and check a box from dropdown

$
0
0

Hi 

I'm new to skill programming,

I would like to know if this is possible using skill , my problem is

open a schematic-->open a setting form(ex: Create-->Cellview-->from Cellview)--> click on a button

and  disable the checkbox(ex: Display Cellview....remove the tick mark)

I would like to automate this procedure and generate different netlists for lot of cells.

please let me know if this is possible using skill function 

 

regards

Vijay 

How to find the final time value of a signal?

$
0
0

( I did search the forum and support.cadence.. no luck)

Say my simulation terminates earlier than the input file specifies, I want to analyze the last 10 us of a waveform. 

How can I get tmax, which is the final timepoint?

xmax gives the time value corresponding to the max value that the signal attained.

Thanks

How to write more efficient skill code for PCell?

$
0
0

I wrote a PCell program for a MEMS project recently. The code imitates virtuoso automatic generated PCell program. It looks lengthy and run very slowly.

How can i make it more effective? 

1. How to retrieve PCell parameters more simply. Here is my let paragraph, looks ugly:

    let((p1_d1 p1_r2 p1_r3 v1_r p1_leaf_style p1_leaf_l p1_leaf_w p1_leaf_hd 

p1_notch_w p1_slot_angle p1_slot_ir p1_slot_or p1_slot p2_notch_angle

p2_notch_ir p2_notch_or p2_notch ang ang0 ang1 angi inita DPI x y i num 

p1 p2 p3 p4 sides

pcInst  pcParameters pcParamProp pcLayer pcPurpose 

) ;local parameters 

(pcLib = (pcCellView~>lib)) 

;Retrieve pCell parameters

(pcParameters = ((pcCellView~>parameters)~>value)) 

(pcParamProp = car(exists(prop pcParameters 

   ((prop~>name) == "P1_Visible")

)

   )) 

(p1v = (pcParamProp~>value));P1_Visible

(pcParamProp = car(exists(prop pcParameters 

   ((prop~>name) == "P2_Style")

)

   )) 

(p2s = (pcParamProp~>value));P2_Style

(pcParamProp = car(exists(prop pcParameters 

   ((prop~>name) == "P1_D1")

)

   )) 

(p1_d1 = (pcParamProp~>value));P1_D1

(pcParamProp = car(exists(prop pcParameters 

   ((prop~>name) == "P2_D1")

)

   )) 

(p2_d1 = (pcParamProp~>value));P2_D1

(pcParamProp = car(exists(prop pcParameters 

   ((prop~>name) == "P1_R2")

)

   )) 

(p1_r2 = (pcParamProp~>value));P1_R2

(pcParamProp = car(exists(prop pcParameters 

   ((prop~>name) == "P2_R2")

)

   )) 

(p2_r2 = (pcParamProp~>value));P2_R2

(pcParamProp = car(exists(prop pcParameters 

   ((prop~>name) == "P1_R3")

)

   )) 

(p1_r3 = (pcParamProp~>value));P1_R3

(pcParamProp = car(exists(prop pcParameters 

   ((prop~>name) == "P2_R3")

)

   )) 

(p2_r3 = (pcParamProp~>value));P2_R3

(pcParamProp = car(exists(prop pcParameters 

   ((prop~>name) == "V1_R")

)

   )) 

(v1_r = (pcParamProp~>value)) ;V1_R

(pcParamProp = car(exists(prop pcParameters 

   ((prop~>name) == "V1_L")

)

   )) 

(v1_l = (pcParamProp~>value));V1_L

(pcParamProp = car(exists(prop pcParameters 

   ((prop~>name) == "V3_D")

)

   )) 

(v3_d = (pcParamProp~>value));V3_D

(pcParamProp = car(exists(prop pcParameters 

   ((prop~>name) == "V3_SP")

)

   )) 

(v3_sp = (pcParamProp~>value));V3_SP

(pcParamProp = car(exists(prop pcParameters 

   ((prop~>name) == "V3_EE")

)

   )) 

(v3_ee = (pcParamProp~>value));V3_EE

(pcParamProp = car(exists(prop pcParameters 

   ((prop~>name) == "P1_Leaf_Style")

)

   )) 

(p1_leaf_style = (pcParamProp~>value)) ;P1_Leaf_Style

(pcParamProp = car(exists(prop pcParameters 

   ((prop~>name) == "P1_Leaf_L")

)

   )) 

(p1_leaf_l = (pcParamProp~>value)) ;P1_Leaf_L

(pcParamProp = car(exists(prop pcParameters 

   ((prop~>name) == "P1_Leaf_W")

)

   )) 

(p1_leaf_w = (pcParamProp~>value)) ;P1_Leaf_W

(pcParamProp = car(exists(prop pcParameters 

   ((prop~>name) == "P1_Leaf_HD")

)

   )) 

(p1_leaf_hd = (pcParamProp~>value)) ;P1_Leaf_HD

(pcParamProp = car(exists(prop pcParameters 

   ((prop~>name) == "P1_Notch_W")

)

   )) 

(p1_notch_w = (pcParamProp~>value)) ;P1_Notch_W

(pcParamProp = car(exists(prop pcParameters 

   ((prop~>name) == "P2_Notch_W")

)

   )) 

(p2_notch_w = (pcParamProp~>value)) ;P2_Notch_W

2. How to fill shape A with array of circular shape B efficiently,

    make sure B is inside A and the distance of B edge to A edge should be larger than 3um?

    I tried to use dbCreateEllipse in multiple loops. And it took several minutes to get a final result, seems very inefficient.

Pin/terminal locations on symbol

$
0
0

Am I following the correct path?

geGetSelSet()~>instTerms~>term~>??

What is the path the find the pin/terminal location of a symbol in a schematic?

 


skill writing style

$
0
0
I am new to skill and was looking at skill codes available on the web. I found abMapAndWire.ils by Andrew Beckett and noticed that variables are assigned in the first form below rather than the second. What are the differences? and advantages of the former? Tried searching the web and this forum and couldn't find something that directly mentioned these, probably because I don't know the proper names for them.
 
Form 1 (syntax form???):
(setq pin (car (getq terminal pins)))
 
Form 2 (assignment???):
pin=car(terminal~>pins)
 
Also, in the skill language reference, the syntax is given as
setq( x 5 )
rather than
(setq x 5)
 
What are the differences? and the preferred way? 
 
Thanks 
Regards

bbox values in menu

$
0
0

Is there a way to store several bbox values in a menu without converting it to a string?

Example of value

bboxList = '(((131.8625 -760.5125) (131.8875 -760.4875)) ((131.8625 -749.5125) (131.8875 -749.4875)))

 I have tried several of the hiCreate* menus but it seems the functions are wanting strings or a single coordinate list.

 

Paul

Skill Script for off-grid correction of donut shape?

$
0
0

Hi,

 I have been looking for a Skill script which corrects off-grid edges of a donut shape in Cadence(IC6) Layout editor. I have found this script but it says it is not for donut. http://support.cadence.com/wps/mypoc/cos?uri=deeplinkmin:ViewSolution;solutionNumber=1800103.

 What I need to do is that I need to draw a donut for real tape but it is off-grid so I need a script for grid correction. Actually, I don't know which way is better: drawing donut in layout and putting edge of it  on grid with a script or drawing on-grid donut with Skill script from the beginning. I prefer the first one since in addition to donut I may have other off-grid shapes which need to be corrected.

 I will appreciate if you can provide the Skill script for this purpose. 

 Thanks,

 

yayla 

Trigger Warning at Virtuoso start up

$
0
0
*WARNING* (DEBASE-102068): No user triggers registered for viewType schematicSymbol.

*WARNING* (DEBASE-102068): No user triggers registered for viewType maskLayout.

*WARNING* (DEBASE-102068): No user triggers registered for viewType maskLayoutXL.

*WARNING* No application registered for prefix awv.

*WARNING* No application registered for prefix awv.

*WARNING* No application registered for prefix awv.


What are these warnings and how do I get rid of them? What do these mean? My IC version is IC6.1.5-64b.500.15

 

Thank you in advance.

Warning (TECH-230035): warning when create library

$
0
0

Hi everyone, 

I would like to ask about a warning in CIW. My systems: Cadence IC615, IBM cmrf7sf V2000 pdk. When I try to create a library which "Attach to an existting techfile" option, the CIW displays warning:

*WARNING* (TECH-230035): User-defined rule "minExtensionDistance" in constraint
                         group "foundry" of techDB "cmrf7sf" conflicts with
                         a built-in constraint with the same name.
                         You may write out "constraintGroups" section to an
                         ASCII file, reopen the technology database in "a"
                         mode, and reload the file to update the database.
                         Another option is to rename this rule. 

I searched on Google and found only one link:

http://www.cadence.com/Community/CSSharedFiles/forums/storage/38/1310402/qrc.inverter_test.log.txt

I read. However, I could not understand what I should do. Can anyone figure out this problem, please?

Thank you so much.

Regards.

 

Print text somewhere on layout window when I click mouse

$
0
0

Hi All,

       I am trying to print some text when I click mouse <Btn1Down> . The text has to print some where on layout window (beside menus.. etc).

I know how to create menus, etc . But this mesg (two word mesg) is interactive. It will change every mouse click.

Can anybody help me, how to print mesg somewhere in layout window.

 

Thanks in Advance.

bsrin

 

 

How to copy and rotate a shape with special angle like 30 degree in skill coding?

$
0
0

Hello, 

I failed to search the manual and the forum to find a way to copy and rotate a shape I created with any agle like 15, 30, 45 etc.

I noticed some posts said that rotate with any angle may raise lithography issues. But in MEMS application, it's very popular to use all kinds of "strange" shapes. As the line/space is over 1um, the litho problem can be neglected. Then, what can I do in skill code?

 Thanks. 


pCell need load .il file every time I open icfb

$
0
0

Every time I open the cell containing my pCell instance from a new terminal, it has a label "pCellEvalFailed" and cannot reveal some of the layers. The log has warning:

 ("eval" 3 t nil ("*Error* eval: undefined function" TTPointInGap))

But actually the function has been defined in the .il file. And after I load the file in the CIW, all the layers look normal.

What can I do if I want to use the pCell instance without load the .il file every time? 

I want to add opPointLabelSet list something else id vgs vds gm vdsat vth.

$
0
0

I've read the method to add cdsParam(N) symbol of cell.

I add somthing(ron, gmbs, lx9, region, ... etc) " to opPointLabelSet.

But adding parameter is not displayed at back-annotated schematic.

Help me.

Skill code for getting coordinates of both ends of instances

$
0
0

Hello

 I am getting coordinates of instance using code given below but is only giving of one end. How can I get of other end? 

cv = geGetEditCellView()
foreach(inst cv~>instances
    geSelectFig(inst)
    printf("Inst name: %s  xy: %L  bBox: %L \n" inst~>name inst~>xy inst~>bBox)
)

Varun 

Problem with bindkeys and fin-grid

$
0
0

Hi All,

I am using ICADV12. version of virtuoso since few days.

I have couple of problems.

1) I have bindkey for all layer invisible and all layer visible. But, to reflect this in layout window, I have to press Ctrl+r or f or w button.  Can anybody help me out in this. Its flustrated to press Ctrl+r or f or w keys every time after I press bindkey for all layer visible/invisible.

 2) In this version, The grid snaping is automatically taken care of . It is really helping me alot. But , the grid color is thick yellow which is hard to watch the design with grid visible. I want to change the grid color. Can it possible to change the grid color  ICADV12 version.

 Can anybody help me in the above issues.

Thanks in Advance,

bsrin.

[Assura 414] Fail to load context file

$
0
0

Hi everyone,

I have a question about Assura 414. My systems: Cadence IC615 Assura 414. When I open a layout, there is a warning:

*WARNING* Failed to load context file <install_dir>/ASSURA412/bin/32bit/etc/context/6.1.5/sna.cxt'

I did not find that file or that link in installed directory. I wonder it may cause error or not? and where can I find the file which tries to load sna.cxt file?

Please give me an advice.

Thank you so much.

Viewing all 5066 articles
Browse latest View live


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