How to sweep the ndet width

Discussion in 'Cadence' started by Kuan Zhou, Apr 8, 2005.

  1. Kuan Zhou

    Kuan Zhou Guest

    Hi,

    I want to sweep the transistor width and plot the gain of the op-amp
    with the frequency. My op-amp is differential. But the ac analysis only
    allows sweep of one component parameter in ONE component. I want to sweep
    the widths for the differential nfet pair. Can anybody teach me how to do
    it?

    Another difficulty I have is: since I sweep the differential pair
    widths and frequency at the same time, how can I configure it in the ac
    analysis? I want to draw a group of gain plots with different widths for
    the transistor pair.


    Kuan
     
    Kuan Zhou, Apr 8, 2005
    #1
  2. Kuan Zhou

    Marc Heise Guest

    You are looking for the Parametric analysis, which can be found under the tools
    menu in the simulation environment
    Setup your AC frequency sweep like you are used to. Define your designvariables
    (w, l) and then setup the parameter analysis. It will run an AC for every
    combination of parameters you setup.

    Have a look into the documentation for further informations.

    Marc
     
    Marc Heise, Apr 8, 2005
    #2
  3. Kuan Zhou

    S. Badel Guest

    an advice: beware of CDF callbacks. for plotting the gain, it wouldn't
    change, but if you were plotting AC response then make sure the MOS
    as,ad,ps,pd are not computed by a CDF callback - it happens - because
    callbacks are only called when changing from the UI.

    alternatively use a MDL control file.

    stéphane
     
    S. Badel, Apr 9, 2005
    #3
  4. Kuan Zhou

    Kuan Zhou Guest

    Hi,

    What is MDL control file?

    Kuan

     
    Kuan Zhou, Apr 11, 2005
    #4
  5. Kuan Zhou

    S. Badel Guest

    MDL - measurement description language. a somewhat new feature in spectre (IC5032 i believe).

    look into mdlref.pdf ("Spectre MDL User Guide and Reference")

    i'm lazy, the following example is from the manual, it demonstrates nesting loops.


    alias measurement findmax {
    run tran(stop=1u) export real maxout=max(out)
    }

    foreach vdd_val from swp(start=5, stop=7, step=0.5) {
    foreach temp from swp(start=25, stop=75, step=25) {
    run findmax
    }
    }

    stephane
     
    S. Badel, Apr 11, 2005
    #5
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.