RFIC Design

RFInsights

Print Noise Summary to a File in Cadence

When netlist of your circuit is too big, printing noise often crashes Cadence and it gets too slow in loading results, going to print window etc. Instead, we can just directly print noise summary to a file without needing to go to maestro itself. Here is how we can do this using ocean command noiseSummary.

 

    1.  Go to CIW window and type openResults(“/full/path/to/data/directory”)
      • Path to directory is from root to psf folder
      • Example:
        • openResults(“/user/analog/prj/myWorkspace/myLibrary/myCell/maestro/results/maestro/simName/psf”)
    2. Open results by typing: results()
      • It will print something like this
        • (hb_td hb_fd hb_fi hbnoiseOut1 model instance output designParamVals primitives subckts variables)
      • Note you can see your test analysis name here, which is hbnoiseOut1 for our case
    3. Print noise summary to a file
        • noiseSummary( ‘spot ?frequency 40M ?paramValues list(“schematic” “lpe_RC_55” “schematic” 325 273 0 60) ?result “hbnoiseOut1” ?truncateType ‘top ?truncateData 5000 ?deviceType ‘all ?output “/user/Desktop/myNoiseSummar.txt”)
      • Above command reads as print spot noise at 40M offset for these parameter values, truncate the data to top 5000 contributions, include all types of noise elements, and write that noise summary to this file.
  •  

What are paramValues?

You saw in noiseSummary command we have ?paramValues list (bla bla bla). These paramValues define your simulation settings. You may have swept variables or have multiple corners in your simulation. How do you get the data of specific corner or specific variable value. Use command sweepNames() to find out what variables settings were used and what is the order.

 

When you type sweepNames() in CIW window (after step 1 & 2), it will print something like this:

(“CONFIG/myLibrary/myMixer” “CONFIG/myLibrary/myAmp” “rbankValue” “cBankValue” “gainCtrl” “someOtherVariable” “relative frequency)

These are the variables you had used, you can specify what values of these variables using list() command. For example, we used these values:

list(“schematic” “schematic” 325 263 0 60)

Note: Do not specify anything for relative frequency parameter.

I forgot. How do I know what were the values of variables I swept?

Use command sweepValues()

Author: RFInsights 
Date Published: 21 Dec 2022
Last Edit: 02 Feb 2023