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

SKILL++ variable in form callback

$
0
0

Another SKILL++ question!

 I have a procedure that has a class instances as well as a form declaration. I would like to have the form callback use a class instance method. My current solution is to declare the class instance using "inSkill" so that it is global to the form. Is there a way to keep it private?

 

procedure( makeForm() <-----this procedure is in a SKILL++ .ils file 

 obj = makeInstance( 'MyClass)

   b_run =hiCreateButton(

            ?name 'run_button

            ?buttonText "Run" 

            ?callback Run(obj)  ; <--- Option 1 Evaluates immediatly

            ?callback strcat("Run(" myObjName ")"); Option 2 requires myObjName, a string that refers to an object instances, as well as whatever the object instance is to be global

   ) 

Option 1 doesn't work at all but is kinda what I'm looking for, where I just want Run(obj) to happen when the button is pressed. obj is kept private

Option 2 is what I am currently doing, in another area I run the makeInstance "inSkill".


Hierarchy editor for netlisting w/o modifying CDF

$
0
0

Problem statement is:

===========================

User would provide i/p in hierarchy editor on an instance-basis (Tree view) through an user-introduced property (Edit-->Add property column). And during netlisting, I need to read that property and instantiate that instance to my_subckt. Else usual descend and netlisting as per set view. Also, the property need not propagate hierarchically for child instances.

 Now, I understand this can be achieved in the CDF way, too:

===============================

1) Introduce CDF property "model" (base/user/effective) for the cell. Set it to default "my_subckt".

2) Create a new view out of symbol view (say my_spectre view)

3) Put my_spectre view in the stop and view lists in the config.

4) Change the particular instance desired to my_spectre view

But say I don't want it to do it that way since I don't want to create new views or introduce new CDF properties for almost every cell in the library, etc. since -- (a) I have to create my_spectre view on-the-fly for that instance's master (b) If I want to change base CDF, I do not have write permissions (c) Even if I achieve (a) or (b) [through local copies, effective CDFs, etc.], things might just not scale for bigger and bigger blocks.

So is custom netlisting routine the only way? If so, some pointer would be helpful for this kind of problem statement:

For any instance, read a hierarchy editor property (say my_prop) --> If my_prop=a, introduce my_subckt for model/subckt defintion. Else, if my_prop=<nothing>/b, fall back to usual netlisting.

Any help would be greatly appreciated for this custom IC SKILL problem.

Regards,

Tito 

Cadence IC5.1.41 libInit.il

$
0
0
Hi,

I wanted to know is it possible to overwrite the libInit.il file, which is specified in the project area by a local version of the same??
I am actually trying to load a user defined set of "modelPath"s for the analog design environment. So i have another skill script in my local area to do that (this is loaded using .cdsinit). But the libInit.il file in the project area, that is sourced whenever i open the library manager, overwrites the "modelPath"s by loading a script in the project area.

Any suggestions how this can be done?

Any other suggestions on how to add some default set of "modelPath"s for the ADE?

Thanks

OA to CDB convertion script

$
0
0

 HI,

  we are presently using cadence 5.4.1 vertion

we need OA to CDB convertion ,

how we will convert, is there any script to convert that

please tell me that code

 

thanks,

venkatasiva

 

 

SKILL++ class slots

$
0
0

I have a few question on slots in a class. Given the following class that implements string utilities:

defclass( String()

 ()

(

(str @initarg nil) ; The string

(len @initarg nil); The length of the string 

)

)

defmethod( Length ((s String))

s->len = strlen(str)

 

Is there a way to trigger Length() whenever the slot "str" is updated? I know I could make another method like "SetStr" but that is a little messy, I also have to remember to always use that method and not set str directly.

Thank you,

Aaron 

SKILL Materials

$
0
0

Hi andrew, i'm a beginner in SKILL & i want to be an expert in this . please point me to location where i can find appropriate SKILL material & examples  to achieve what i desire in SKILL.

Thanks,

Megharaj 

 

not able to create via in clone

$
0
0

Hi 

  I am trying to create via inside clone using the command dbCreateVia(cell_id obj_id obj_origin obj_orient v_params)

Inside clone, but it is creating in the cellview not inside the clone.

Skill function to create Verilog-Header file by export from "symbol"

$
0
0

Hello,

I am looking for a solution for the following task: creating 2 Verilog-Header files (with and without power/ground pins) out of the Symbol view.

Can you perhaps help me with this?

Best Regards

 


triggering the done procedure for enterPoints()

$
0
0
I am using an enterPoints function that does not seem to recognize use of the Enter key, or a double click (typical done trigger for enterPath) as triggers for its done procedure.  How does one trigger the done procedure for enterPoints?  The esc key is recognized as a cancel function.  The form contains a cancel button, but no done button.

pCell skill for beginners ...part II

$
0
0

Hi all, 

 

I was following the simple creation of a box with handles on this thread pCell skill for beginners.

 

I want to advance it a level up: 

Say I want to create a mosaic of the box. I am trying to implement something like 

(array=dbCreateSimpleMosaic

            pcCellView                     ;Name of the cellview
            pcMaster                     ;Name of the master cellview
            nil                     ;if specified, the instance is named t_name; if nil, the program assigns a unique name to the instance.
            (0.0:0.0)             ;Origin of the lower left instance in the array.
            "R0"                  ;Orientation of the instance.
              1                     ;Number of rows defining the size of the array.
               3                    ;Number of columns defining the size of the array.
            3
            2.101                     ;Spacing between the origins of the mosaic elements in x-direction.
            2                     ;Spacing between the origins of the mosaic elements in y-direction.
            ))    

 

 

I am trying to implement it in the pCell creation section but wither I am not using the correct Cell view name, or it doesn't create anything. 

 

What would be the optimum posaic implementation for multiplying the box n (3 in this case) time?

 

Thanks in advance ! 

 

D.

Strange Issues in spiceIn

$
0
0

Hi, all

 I have a problem during spiceIn.  I want to import hspice to schematic, but I get an error of:

Inst: RXM0
Found net 'AIN'.
Found net 'AINOUT'.
Master Cell: 'resistor'.
Did not find 'silterraC13.resistor:symbol'.
ERROR (SPICEIN-24): Spice In did not find the symbol view of the master cell 'resistor' of the instance
'RXM0' in the subcircuit 'ANALOGIO60_33'. Specify the reference library that has the symbol
view of the master cell, or use device-mapping to map 'resistor' to a different

Actually, in the spice file, the model of RXM0 is not resistor but "sbpp". And sbpp does exist in the reference library.

.subckt ANALOGIO60_33 AIN AINOUT AVDD33 AVSS33 VDD VSS VSSIO VREF DIFREF
DXDM16 AVSS33 AIN pnt AREA=75.717P PJ=112.208528U
DXDM17 AIN AVDD33 pnt AREA=75.717P PJ=112.208528U
DXDM14 AINOUT AVDD33 pnt M=4 AREA=75.717P PJ=112.208528U
DXDM15 AVSS33 AINOUT pnt M=4 AREA=75.717P PJ=112.208528U
MM6 AVSS33 AVDD33 AVSS33 AVSS33 nm_33 W=324U L=8U M=1
RXM0 AIN AINOUT sbpp w=6U l=6U
.ends

 When I mapped "resistor" to "sbpp" in device mapping file, all the resistors in the spice file are mapped to sbpp. 

 The cadence version is IC6.1.5, any one knows how to fix this ?

Thank you!

 

Cadence IC5.1.41 Current probing

$
0
0

Hi,

 I have a query wrt the probing currents in cadence.

To probe the current i click on the pin (device or Instance symbol) , which shows a circle around it. The problem that i am facing is that this works perfectly when my simulator is Spectre.

But when my simulator is hspice probing a device pin gives a warning :

 Element xpm1 in print, plot, probe or measure statements is invalid. Output is ignored.

And the currents are not plotted.

I am trying to probe the drain currents of PMOS in a simple current mirror circuit.

When i check the netlist created for hspice, there exists a definition for xpm1 and the probe statement for it is I1(xpm1). For the same simulation i am able to plot the transient node voltages as well current at the plus terminal of an ideal current source or a instance symbol pin.

 

Another difference that i noticed between the two input files (.scs and .ckt) is that:

In input.ckt (hspice) : the devices are defined as XPM or XNM instead of MPM or MNM

In input.scs (spectre) : the devices are defined as PM or NM.

The model files for both spectre and hspice contain the definition of mosfets as subckt.. 

 

Could anyone please suggest what could be the reason for this? 

Netlist creation error

$
0
0

Hi, I'm trying to use the schematics and simulation setups provided in CMOSedu.com.

When I added IC6.1 library (I'm using virtuoso 6.1.5 version) and other directories and ran the spectre simulation, I got Netlist Error:  

Could not find netlist procedure:ABbnNetlistProc instance "M0" in cell-view "Ch26_IC61" "Fig26_10" "schematic"

for all of the 3-terminal nmos and pmos transistors.

In the CDF editing window, the netlistProcedure field is written as "ABbnNetlistProc". After I deleted 'ABbnNetlistProc' and empty the field, the error message disappeared and netlist could be created, however, there's another error message: Error found by spectre during hierarchy flattening. ERROR (CMI-2116): M0: Too few terminals given (3 < 4) while running simulation. 

Any suggestion to solve this error?

Re-directing text output to a text window other than the CIW

$
0
0

I would like to open up a text window, and re-direct text output to that window.  The only thing that I can seem to find is to re-direct text output to a file by opening up a port. I have successfully created and displayed a new text window, but anything I try when printing text, always goes to the CIW.  Below is the code that I am using to create and display the new text window.

twID=hiCreateWindow('default "text" "my app")
hiDisplayWindow(twID)
print("Cell checked with no errors or warnings!!!\n")

Thanks for any help

 Tracy

 

Regarding via generation through key

$
0
0

Hi ,

I wrote a skill program which generate via in the cursor point on layout window. My requirement is to have this via attached to cursor untill i clicked on layout window. I mean it should not place in layout window but to generate and move along with cursor untill the next click.

Here is the part of code i pasted

dbCreateVia(cv viaid1 hiGetPoint(wi) "R0" viaparams)

Kindly let me know. 


Error in storing output data into file

$
0
0

Hi experts,

I am new to cadence ocean scripting. I need to store the data of output wave that is generated, into a file. I am able to print the output value at a certain instant say the max value of the output wave using the following code.

V=ymax(v("/V" ?result "tran-tran"))

fprintf(of "%6.3e \n" V)

This code works fine and gives the correct max value.

But, now I want to get data about the entire output wave.

I tried by using the following code fragment for that.

V=v("/V" ?result "tran-tran")

fprintf(of "%6.3e \n" V)

But, this does not work as I expected it to be and all that I get as o/p is something like "srrWave:0x16832018"

Please suggest how I can proceed. I want to get the entire data stored into file. 

Also, if there is a way by which I can store the o/p result at periodic instants say 'every 10ns' or something like that, that would be nice too.

Regards,

Indra

Skill code to change layout pin direction to match schematic direction.

$
0
0

Can anyone share with me a skill program that will change layout pin directions to match the schematic pin directions?  Pins made by the generate pins from labels function all come in with the direction inputoutput, and I would like a skill program that changes them to match the schematic.

Thank you

fluid GuardRing?

$
0
0

Hi Experts,

Is there a similar features like fluid guardring for via provided by CADENCE?

if NO, anyone thinking to write a similar code for this?

 

Thanks,

Peter

 

Adding the properties on abstract using skill

$
0
0

Hi ,

    We were trying to add the properties like " CLASS PAD INOUT" in the abstract using skill.

We can add properties like "CLASS PAD"  but we are unable to find how to add the further sub attributes like INOUT,INPUT etc.

Also we cannot set the symmetry type to  "SYMMETRY x y r90 " using skill.

Is there any way that we can add such properties using cadence skill ?

If it is there where can we find all the required functions.

 

I am using cadence virtuoso 6.1.5.500.16. 

Please help us in this regard 

 

Thanks and Regards,

Marthand. 

Force increment step in parameter

$
0
0

Hi,

 

I am trying to force the minimum increment in parameters that user defines.

 I managed to implement the min max to force the limits of my parameter (i.e. if 3<=x<=10, I write x=max(x 3)   x=min(x 10))

 I can not find the correct expresion on setting the acceptable step i.e. if the grid is 0.1, then values of x.xxx are not accepted.

 

An suggestions will be warmly welcomed!

 

Many thanks!

 

BR,

Viewing all 5093 articles
Browse latest View live


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