defining outputs through include file?

Discussion in 'Cadence' started by analogweb, Feb 19, 2008.

  1. analogweb

    analogweb Guest

    Hi,
    I have set of calculator expression inside a file called
    'outputs.scs'. The expressions are:

    freqclk1=frequency(clip(VT("/CLK1") 10n 50n)
    skewclk1=delay(..someexpr)

    I want to include this file inside the analog artist simulation
    environment and I want spectre to evalute outputs accordingly. Or
    better still is there way to make expressions written in a file to
    appear in the "Outputs" section of the analogartist window ?

    I have more than 50 clocks and I have to measure several parameters on
    each one of them (frequency, dutycycle, skew, rise/fall times). If I
    type all the expressions inside analog artist using calculator my
    fingers will no numb with the number of clicks or cut-n-paste that I
    will have to do. Doing this stuff in Vi/Vim is way easier.

    Thanks,
    Alex
     
    analogweb, Feb 19, 2008
    #1
  2. analogweb

    S. Badel Guest

    Hi,
    Well, you could simply load() your file after simulation (in fact, it's just SKILL expressions).
    The difference being that your outputs wouldn't be defined in ADE and thus they won't be plotted
    automatically (you have to plot() yourself).

    Unfortunately I don't think there's any way of defining ADE outputs other than interactively... But
    that's where OCEAN comes in handy.


    Stéphane
     
    S. Badel, Feb 19, 2008
    #2
  3. S. Badel wrote, on 02/19/08 09:38:
    I agree, I'd do this with OCEAN. There is a way of adding ADE outputs (I was
    asked this recently), but it involves a number of private SKILL functions,
    so best avoided (i.e. I'm not going to advertise it here since private
    functions are liable to change - you should ask for a public way to be added
    via customer support).

    There is however a way to do this in ADE-XL in IC61 - using the axlAddOutputs()
    function.

    But probably the simplest thing to do here is to write an OCEAN script which
    performs all your measurements - you can then use a foreach loop on a list
    of signal names, and do the common calculation on each:

    foreach(signal list("/CLK1" "/CLK2" "/CLK3")
    rise=riseTime(v(signal ?result 'tran) ...)
    fall=...
    slew=...
    printf("%s: rise=%g fall=%g slew=%g\n" signal rise fall slew)
    )

    is a rough code template.

    Regards,

    Andrew.
     
    Andrew Beckett, Feb 19, 2008
    #3
  4. analogweb

    analogweb Guest

    Thanks a lot for your help Andrew and Stephane.

    Andrew,
    I would like to know how do I make the OCEAN script a part of my
    simulation setup, I mean how exactly am I suppose to use the script
    that you have sent. You can tell me stepwise perhaps.

    Thanks,
    Alex.
     
    analogweb, Feb 20, 2008
    #4
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.