Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

OCEAN: connecting the corner ID to the plotted waveform

Status
Not open for further replies.

dlevy212

Newbie level 4
Joined
Jul 2, 2008
Messages
5
Helped
1
Reputation
2
Reaction score
1
Trophy points
1,283
Activity points
1,349
runobjfile

I'm an experienced analog IC designer who hasn't used OCEAN and I now have to use it. It's widely regarded as offering a great deal of flexibility, and I look forward to getting better at it.

My problem is the following. I have a "case" statement with sections, one section for each corner model file. I have a "for" statement to make a loop and to run the corners. The script runs and my plot statement is executed. I see the plots overlayed on the waveform viewer. So far, so good. The only problem is that when I'm looking at the plotted waveforms, I don't know which one corresponds to which corner. I think I need some way to connect a parameter in, say, the "fast-fast" section of the case statement, to an expression (which I have to add) to the plot statement, so that when the waveform is plotted, there is a tag assoicated with the waveform which identifies the corner producing that waveform. There must be a way to do this. We would be very grateful for any insight and help you can provide. Thanks Much.
 

cadence corner plot

You can always save the data into a File and import it into Matlab. You can give the file a name and so you now what corner it is. I always bring the importent data to Matlab (more flexibel, nicer Plots and so), how to give names for the result browser I have now Idea
Martin
 

ocean

Thanks, I appreciate your input. But what I really need is for the waveforms to be plotted directly in the Cadence Waveform viewer. These plot as the ocean script is being executed. That's fast. I want to see the results as quickly as possible so that I can make iterative design changes. I'm in the design phase, I'm not putting together a material for a review. The Cadence corner gui does what I want to do. In the waveform viewer it identifies each corner file with the corner name. So there's a way to do it. We'll keep digging. I'll let you know what we find.
 

corners ocean out script

as far as i know the output waveforms should be numbered as the order of the simulation, and since u know the sequence of the simulation u can make a small map.
however, i think it is simple to attach label to a wavefrom, see attached docs
 

ocean plot waveform

I read this in the ocean reference as well, but unfortunately this is not what is needed. All that does is attach a lable to a waveform. For example, if I do a parametric run with W, 2W, and 3W where W is a variable and is the width of a transistor, then when the sim is done, I will get 3 waveforms in my waveform viewer. I can then use this addWavelabel command to connect the strings "W=1u", "W=2u", and "W=3u" to each waveform. But I already know which waveform corresponds to which W; I'm just adding text to the plot. That's not what I need. I need a way to connect a variable to a waveform. The variable is the name of the model file (corner) that the "for loop" of my ocean script is using in its current step in the "for loop". And when that step is simulated and a net from the data file is plotted, the waveform will include not only the net name but also the corner name. This is exactly what the Cadence gui does. When it plots a waveform in the waveform viewer, it plots,for example: C= FAST; VS("/net060"). Here there was a dc sweep and the voltage on net 060 was plotted when the fast models were used. Somebody at Cadence wrote some skill to do that. We can use the Cadence gui, but it has its limitations and we want to write our own skill which will be more flexible. I am going to use a contact at Cadence to get this problem solved. I will post the answer here. In the meantime I'm going to try your addWavelabel command, but I'm 90% sure it's not what I need. Thanks anyway.
 

cadence ocean plot command

i cannot get what is wrong with add label command, what i meant is that u can add a variable name as a label this variable name indicates the current for loop (which corresponds to a certain corner), do u mean that u can't add a variable string as the input to add label command?
anyway waiting for cadance's response
 

ocean script connect string

Hello dlevy212. I think you have to change plot statement. Look for Virtuouso ADE SKILL Language Reference. Function like awvPlotWaveform() with key ?expr would make possiblr to add any label for waveform.
 

    dlevy212

    Points: 2
    Helpful Answer Positive Rating
awvplotwaveform

Safwatonline:

I ran a sim trying the addLabel command and it did what I expected: it printed the text "CORNER" on the waveform viewer. In my code "CORNER" is a variable holding the name of the corner, but it wasn't recognized in the addLabel command. It appears to me that the addLabel command is just for adding strings (text).

DenisMark:

I'm sure that your suggegtion could work, but I was unable to use awvPlotWaveform command without getting syntax errors. Another forum user has also communicated to me a different way to solve this problem. But I have been unable to use the runObjFile command without syntax errors. Actually, I can't find "runObjFile" as a command, but I am supposed to apply my plot command to different runObjFile files (one runObjFile file for each corner).

These are all very good ideas. Although I can't get them to work, I have learned more about the Cadence directory structure from this forum and this will help us when we get support from Cadence.

This is a pretty amazing forum. Thanks guys. When we get our solution from Cadence, I'll post it. I just found out about edaboard a few days ago. Very cool place.
 

ocean script forloop

So, there are different ways to skin this cat. The following one works. I have verified it. I got it from Cadence this morning.

In Cadence versions 4.4.5 or later you can use SKILL expressions in the ?expr statement. I used the string concatenation function (strcat), which takes strings or symbols and combines them. So, the loop assigns the corner (tt, ss, ff, sf, fs, etc.) to a variable (CORNER) and we used:

plot( VS("/out") ?expr list(strcat(CORNER "_out")) )

then on the waveform viewer you get

tt_out
ss_out
ff_out

as the names of the plotted waveforms.
 
ocean cadence user input

thanks for sharing,
actually after a bit of thinking this could have been done using if conditions but cadence's way is much easier/cleaner
 

ocean script plotting waveform

How do I modify the above command given by dlevy212 to include 2 variables? I need this because I run corners over supply and temperature variations and I need the waveform's label to tell me which combination of the variables it corresponds to. I tried using all these options within the strcat command, but strcat takes only 2 strings, one being a constant string. Also, supply and temperature aren't strings.
 

So, i have the same problem about the strcat.

Anybody can give a solution?
 

So, i have the same problem about the strcat.

Anybody can give a solution?


Its a long bygone thread, however I found a solution to the problem which I was also facing. Hence the reply.

I ran a sim which is supposed to sweep between two temperatures and two corners, (SS_0, SS_100, FF_0, FF_100). Temps were stored in a variable mark_temp inside the loop while invoking the same. corners were called in the usual fashion inside the loop. The following command did the trick for me.


plot(getData("/vout")) ?expr list(strcat(corner mark_temp))
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top