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

hierarchy delete

$
0
0

Hi, is there any skill code that would delete hierarchically all the cells/views (layout, schematic, symbols, etc) of a given circuit block in a library?

 

Thanks in advance. 


Ultrasim: error measurement on internal node

$
0
0

Hello J,

I would like to launch from a batch simulation through Ultrasim, a transient simulation. Firstly, I generate a netlist from ADE in Cadence, then I have included manually .measure line to extract value as the following syntax: .measure tran Voltage_avg  avg v(*) from = 0ns to 2ns It works well in that case for all node of my circuit. The outputs are something like that: voltage_avg@masterctrl.arefb =   4.8336e-07 But if I want to measured directly the voltage on the internal node masterctrl.arefb  as:.measure tran Volt_avg  avg v(masterctrl.arefb) from = 0ns to 2ns I’ve got the following error message: Volt_avg=failed  ignored, possibly due to nodes or elements not found I want to extract some measurement from internal nodes and I need to know the right syntax. My question is: What should I do to extract measurement on internal node ?

Many thanks JT

 

Connectivity lost while changing technology.

$
0
0

Hi there,

As the subject suggests I am trying to migrate a design from one technology to another. The method adopted is by changing the master:

selectedObject=car(geGetSelSet())

masterID=dbOpenCellViewByType("newTechLibName" "newTechCellName" "symbol" "schematicSymbol") 

selectedObject~>master=masterID

This indeed changes the master and I can see the MOS of new technology appearing, but the wires connecting them are not connected now (it seems as if because of change in symbol).

A slight adjustment does the job at graphical schematic level. Is there any way to change the master and preserve the connectivity also (the w's and l's value remains same, fortunately!)

Thanks and Regards,

Atul 

Edit Pin Name and Width

$
0
0

Hello,
I want to create a new schematic from the library which is created by me. I put an instance from this library to the new schematic. I want to change pin names of this instance. The problem is that some pin names have a bus notation ( Ex: A<3:0>) and i want to change width of this pin (Ex: A<5:0>). Cadence document says width of pin cannot change by " myInst~>pin~>term~>numBits". Is there any way to do this?

Regards 

CDF parameters connection between AND symbol to schematic transistors

$
0
0

 Hi all,

          I have created a AND(2*1) gate symbol with PW(pmos width), PL(pmos length), NW(nmos width) and NL(nmos length) CDF parameters. And I had a schematic. I need to attach transistors widths and lengths in schematic to symbol(pmos width in schematic to PW , pmos length in schematic to PL something like that.), So that I can directly see the values on symbol from top level without entering into schematic. Let me know is there any solution.

Thank you,

sarvani

How to find value of viaCutClass param?

$
0
0
Hi,

I have been unable to figure out how to find the cutClass of a VIA - I have been able to find cutRows/cutColumns and everything else I need but am not sure where the value of cutClass is stored.
Any help would be appreciated.

Thanks,
Elizabeth

integration operation and delay operation with spectre input.scs simulation

$
0
0

Hello !!

I would like to launch from a batch simulation through spectre, a transient simulation and to do an integration of the voltage and current curves to get the consumed power.

I have not managed yet to find the syntaxe for the "integration operation". Plus I would like to get the syntaxe for a "delay operation".

 

Extract of the input.scs :

tran tran stop=6.6nn write="spectre.ic" writefinal="spectre.fc"  annotate=status save=selected maxiters=5 

finalTimeOP info what=oppoint where=rawfile

modelParameter info what=models where=rawfile

element info what=inst where=rawfile

outputParameter info what=output where=rawfile

designParamVals info what=parameters where=rawfile

primitives info what=primitives where=rawfile

subckts info what=subckts  where=rawfile

save vinput vss net_pl device_state vdd Rdevice:1

export power_dyn_consumed = int((i("Rdevice:1") * v("vinput")) 2n 4.6n)

saveOptions options save=selected subcktprobelvl=2 

 

 

for the delay, it should be something like :

delay_writing = delay(?wf1 v("vinput" ?result "tran") ?value1 0.5 ?edge1 "rising" ?nth1 1 ?td1 0.0 ?wf2 v("device_state" ?result "tran") ?value2 0.5 ?edge2 "rising" ?nth2 1 ?td2 0.0 ?stop nil ?multiple nil)

 

 

Commandline :

spectre /home/.../simulations/FF_svtsvt_1V_0C/TC_TR/1_0.04//input.scs +log /home/.../simulations/FF_svtsvt_1V_0C/TC_TR/1_0.04//log_file.log

 

 spectre -W

sub-version  10.1.1.181.isr12 

 

 

Thanks a lot !! 

Is there a function to get first several elements of a list?

$
0
0

I need to get part of a list. Is there a function in skill? It's better return a list.

I tried some coding, but failed:

a = list((0:0) (1:1) (2:2) (3:3) (4:2) (5:0))

b = nthcdr(3 a) 

c = remove(b a)

As I suppose, c should be a list of ((0:0) (1:1) (2:2)). But actually c is equal to a. 

What's wrong?

 


A question regarding CCSchangeCells.il ?

$
0
0

 Hai! I found a code which will change cells from one lib/view to another.. in cadence sourcelink ...

I am using cadence IC6X version.. and a IBM(90nm) PDK kit ..

The code is working fine when I tried to convert cells from 'analogLib' to  'gpdk090'..

But when I tried this code in changing cells from 'analogLib' to  'IBM' models it's not happening..

I thought this is because of the following reason.. the IBM PDK kit defines the following params for w(width), l(length), m(multiplier) as

wf(string type),(wff float type), lf(string type), (lfffloat type) and  mpl(int type)...

The params w, l, and m assigned as user defined params after running the code..

I tried to assign the w, l, and m values to the wf, lf and mpl ... the form displaying the values correctly(in schematic).. but when I attempt generate from source it is picking the transistors of default values but the form values remains unchanged.. (in the layout)..

I hope the problem is understandable.... If not I will provide some more information...

Can please some one guide me to achieve this............

Prabhakar. K -- Layout Engineer 

bindkey problem.

$
0
0

Hi All,

I have some set of bindkeys for layers like (M1, M2...), but few of them are not working properly. To work that bindkey I have to press "Esc" button before pressing bindkey (let say <Key> 1)

when I check the definition of that bindkey (key 1)  in bindkey Editior window, I see some special command which I don't know under Enter function command column.

<Key>1               leSetEntryLayer(list("M1" "drawing"))                     drdEnabelPixelThreshold(!drdlsPixelThresholdEnabled())

  Can anybody tell me what is    drdEnablePixelThreshold(!drdlsPixelThresholdEnabled())     . And how to avoid it.

 Below is the code.

 

procedure( SMac(n)

               let( (a b)

              sprintf(a "<Key>%d" n)

              sprintf(b "leSetEntryLayer(list(\"M%d\" \"drawing\"))" n)

             hiSetBindkey("Layout" a b)

            ) ; let

) ; Smac

for(i 1 9 SMac(i))

----------

 

 

 

Multiple variable MonteCarlo simulation in OCEAN

$
0
0

Hello,

 I've been wondering, is there any way of doing multiple variable Monte Carlo simulations using OCEAN programming language? Monte Carlo simulations from ADE provide only a singe parameter to be swept, but what about several? Is that even possible?

 

My guess is that it might be impossible due to the specifics of the algorithm that is implemented, but I might be mistaking.

 

 Regards,

Aleksandr

 

Skill code to automatically map instances via name in layout xl

$
0
0
Sometimes the layout instances don't map with the schematic (vxl clean) even if the lvs comes clean. I have to mannualy go to device correspondance & map them. Is there any skill code that can be used to map them when the layout xl fails to automatically map.

Mouse bindkey with button 8 and 9

$
0
0
I have a mouse with more than just 3 buttons and a scroll wheel. XEV shows the extra buttons as "button 8" and "button 9". I want to use them as bindkeys but does not work like buttons 1-5 do. Any ideas?

how to change the default wire width of layers

$
0
0

is there a way i can change the default wire width of layers? for example we use metal1 and the default is .32um but i'm using .4um since the via is .4um, so i always need to change it to .4um which is my personal preference.

how can i setup my layers to my personal prefence wire width?

 

 

Error when importing outputs into ADE-XL using OCEAN

$
0
0

Hi,

I'm trying to import some expressions into ADE-XL test environment using OCEAN. I created a SKILL file (foo.il) with the following:

 session1 = axlCreateSession("foo")
 handle1 = axlSetMainSetupDB(session1 "./data.sdb")
 print "About to import outputs..."

 axlOutputsImportFromFile(session1 "./outputs.csv" ?operation "overwrite")
 axlSaveSetup()
 exit

Then I run ocean (6.1.6.500.2) using ocean < foo.il

 Here's what I get:

 ocean> "About to import outputs..."nil
 ocean> *Error* asiGet: no applicable method for the class - list(symbol)

If I invoke ocean in the interactive mode and  enter the above command, it works fine.

Any help will be appreciated!

Thanks,

hpan.


generating multiple block placements

$
0
0
Is there a skill that could possible generate multiple block placement with just one run?

Get a .txt file as output in ADE-XL

$
0
0

Hi All,

 I'm looking to display a .txt file as output in ADE-XL. I'm running an Ocean script on each corner which creates a text file (noise summary) that I can print directly (eg. ipcBeginProcess(strcat("nedit " outFile "&"))).

Actually, I'd like these files to be linked as outputs in ADE-XL, not being displayed automatically (that is, I'd like to open only the text files corresponding to the worst corners - having 20 or 30 report text files opened at the same time is pretty cumbersome).
It'd be better to only have to click on an output field of a specific corner to have it displayed. When using the above expression as output ('outFile' is the path of the output file, defined as a string output with axlOutputResults()), I only get a waveform window with a dot at (0 0) displayed when clicking on the output field.

 I've also tried adding another ADE-XL output to the script, but I got an MPS_ERROR with ipcUT (couldn't understand its meaning):

axlOutputResult(ipcBeginProcess(strcat("nedit " outFile " &")) "nsum.txt")
or
axlOutputResult(evalstring("ipcBeginProcess(strcat(\"nedit \" outFile \" &\"))") "nsum.txt")

By the way, when running the simulation without the script and reevaluating with the script afterwards, I get no error and clicking on an output field gives me back the waveform window (0,0) AND the text file... unfortunately, it's not very convenient to run the simulation and enable+reevaluate the script afterwards each time...

Thanks for your input,
Best regards,
Matthieu

corner simulations in ocnXL while saving the space

$
0
0

Hi,

    I would like to do corner sims with ocnXL, save only the output of each run in a data file and nothing else. Basically I would like to delete all the the rest of sim data . In ocn ADE I could do it by each time selcting a model file and doing "run" in a loop. How could I possibly do it in OcnXL. Thanks much.

Shaf

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. 

The edge is hilighted when the cursor is close to, how to use skill to achieve it.

$
0
0

Hi ALL,

         When the cursor is close to the edge of object, the edge is hilighted for ruler operation(bindkey: k) in Cadence615.

         How can I use skill procedure to achieve it?

         Thanks!

Viewing all 5067 articles
Browse latest View live


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