hierarchy delete
Ultrasim: error measurement on internal node
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.
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
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
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?
integration operation and delay operation with spectre input.scs simulation
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?
A question regarding CCSchangeCells.il ?
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.
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
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
Mouse bindkey with button 8 and 9
how to change the default wire width of layers
Error when importing outputs into ADE-XL using OCEAN
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
Get a .txt file as output in ADE-XL
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
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?
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.