How do I set up Virtuoso Schematic Editor IC6.1.4 to pan the view by clicking and dragging the middle mouse button?
Skill code to apply instance orientation to a cordinate
problem passing waveforms as function arguments
I'm trying to build a fuction that takes two waveform families as arguments.
procedure( findBestIMDs(IMDfam PAEfam)
//function
)
I load it in the CIW and try to use it:
load("./ocean/fam.ocn")
function findBestIMDs redefined
t
IMD
srrWave:0x2c3178d0
PAE
srrWave:0x2d0db3b0
findBestIMDs(IMD)
*Error* findBestIMDs: too few arguments (2 expected, 1 given) - (srrWave:0x2c3178d0)
findBestIMDs(IMD PAE)
*Error* findBestIMDs: too few arguments (2 expected, 1 given) - (srrWave:0x2d0db740)
findBestIMDs(IMD PAE PAE)
*Error* findBestIMDs: too many arguments (2 expected, 3 given) - (srrWave:0x2c3178d0 srrWave:0x2d0db3b0 srrWave:0x2d0db3b0)
Why, when I provide the two wave families as arguments, does the srrWave number change and it say there's only 1?
Thanks!
how to create pin(pinname) using skill scripting.
To check layout vs schematic pins.
How to find the pin direction in the schematic?
pins attachment
Updating CIW and layouts while script is running
I have a lengthy SKILL script on a layout and it would be helpful to be able to see progress as it occurs. Is there a way to have the layout update at selected points in the script?
Also, the CIW is updating but doesn't make its first update visible until part way through the script after several printf statements have executed. Is there a way to force an update to the CIW as printf statements are executed?
Having this capability would help with the user interface so that users can plan their activities better and not be confused by what might look like a frozen script.
Thanks.
How to define a stop layer in connectivity for VIA
I am using IC 6.1.4 and I have the following questions.
After I use mark net in the connectivity, how to set it up (after pressing F3) such that M1 is not shorted to M2.
I wish to define it as "when MQ and V1 is present, M2 is connected to MQ through V1, otherwise, M2 is connected to M1 through V1).
The attachment shows the drawings.
Support, in a CMOS technology, M1-V1-M2 is connected.
Now MQ is a layer inserted between M1 and M2. (This layer is meant for MIMCAP purpose).
So the new connectivity is
MQ-V1-M2
Form locked when callback fails
Hi,
The skill below is used to create a simple form containing a string field with a modifyCallback.
Eveything goes fine writing in the string field, but when the callback generates an error (artificially reproduced typing "abc") the form is locked and "OK"/"Cancel" buttons can't be used anymore. Once this happens, even if the form is invoked again or it is set to 'unbound in the CIW, the issue persists.
Could someone be so kind and explain me why this wrong behaviour?
Thank you
procedure(testMyForm()
let(()
hiCreateAppForm(
?name'test_form
?formTitle"TEST"
?fields list(
list( hiCreateStringField(?name 'myString ?prompt "->" ?modifyCallback"matchCB" ?editable t) 10:10 200:20 100 ))
?buttonLayout list( 'OKCancelDef)
?callback list( "printf(\"OK\")""printf(\"CANCEL\")")
)
hiDisplayForm('test_form)
))
procedure(matchCB( @rest arg)
let(( )
stringItem = test_form->myString->value
if( equal(stringItem "abc") then
printf("ERROR %s \n" ) ;;;; ERROR HERE, it locks the form
else
printf("Hello world %s \n" stringItem)
)
t ;any value is allowed in the string field
))
Adjust rubberbandding path
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
add instance from library via pulldown menu.
My experience with Cadence’s Skill is very limited. I have created a pull down menu with sliders in the upper layout editor banner window with some success. My question is, how do I utilize the callback function to place an instance from a cell library into the layout editor window, when selected.
software version: 5.1.41
Example below:
mlf_frame = hiCreatePulldownMenu( 'editMenu "edit"
list(
hiCreateMenuItem(
?name `3x3
?itemText "M_3X3"
?callback "??????()"
What command should I place here in the callback function ??????. Any help would be greatly
appreciated.
Thanks
Johnny
SKILL Variable
I am new to Cadence SKILL. I am trying to understand a SKILL script file containing many procedures. Many of these procedures use a variable which holds a constant list. But it doesn't seem to be assigned anywhere in the script file. Can you suggest any possible place from where it could be assigned? Is there any way in SKILL to import variables from another file?
Release the memory by skill
Stopping a SKILL script
Techfile techDerivedLayers() class
I am wanting to include several derived layers in aCadence 6.1 techfile and here are my quiries
(1) Is there any documentation on this tschfile class? So far all i been able to get (online serach) is a 2006 presentation by Cadence
(2) Can one perform sizing in addition to boolean on layers?
(3) Does the class create actual layers when the boolean is satified and will the derived layer stream out?
Thanks,
Henry
Double Spacing Rule Tables.
how to pass CDF parameter's value of an instance in schematic pcell to CDF parameter of schematic pcell
An explanation of the problem I am facing is in order -
I have created a schematic pcell (A) in which I am instantiating the instance of a foundry delivered pcell (B). There are some independent (e.g. Bp, Bq ) and some dependent CDF parameters (e.g. Bx) defined for the CDF of the pcell B.
So, Bx = FB_callback(Bp Bq)
Bx is calculated whenever I change Bp or Bq, using a call back function which I have absolutely no access to.
I have created 2 independent CDF parameters for A (which is the pcell I created) - Ap and Aq. In the code for my schematic pcell I pass these values Ap and Aq to Bp and Bq respectively. Something like this -
master_b = dbOpenCellViewByType( "foundry_library" "foundry_cell_B" "symbol" )
inst_b = dbCreateInst( pcCellView master_b "I_B" list( 0.0 0.0 ) "R0")
inst_b~>Bp = Ap
inst_b~>Bq = Aq
However, after this when I print out the inst_b~>Bx then I see that it is not getting changed and is always the default.
How do I make sure that the callback routine for the foudry cell gets called? Also how do I pass the new value of Bx back into my pcell's CDF Ax?
Thanks,