• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC Design
  3. MonteCarlo simulation is taking much longer time than e...

Stats

  • Locked Locked
  • Replies 14
  • Subscribers 125
  • Views 19947
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

MonteCarlo simulation is taking much longer time than expected

RFStuff
RFStuff over 7 years ago

Dear All,

I am simulating Monte-carlo of 100 runs on a test-bench with PSS/PAC analysis.

The standalone PSS/PAC run takes just 30 seconds.

But when I run with Monte-carlo, it is taking much longer time than expected. Each run is taking more than 5 minutes. 

More interestingly, as the run number increases, the time increases further. For example, the run#5 took 2 minutes. Now the run#45 is taking 12 minutes.

Why this is happening like this ?  I have disabled  Montecarlo data Save and Plot save.

Could anybody please tell how to get rid of this issue ?

My Virtuoso and Spectre versions are below:-

virtuoso -W
sub-version IC6.1.6-64b.500.14
spectre -W
sub-version 14.1.0.988.isr20

Kind Regards,

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago

    No idea, without seeing it. I don't recall seeing this reported. It's possible that mismatch can take more time because it separates the models to be individual per device, and also some of the device combination that happens when using APS is turned off so the matrices to be solved are bigger as a result. 

    I'd suggest first trying with a current version of spectre, and then contacting customer support if it persists.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RFStuff
    RFStuff over 7 years ago in reply to Andrew Beckett

    Dear Andrew,

    Thanks a lot for your suggestions. I will install and try with the latest version.

    Could you please tell why as the run number increases the time taken by each run is increasing ?

    ( For example, the run#5 took 2 minutes. Now the run#45 is taking 12 minutes. )

    Kind Regards,

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to RFStuff

    RFStuff said:

    Could you please tell why as the run number increases the time taken by each run is increasing ?

    If I knew why that was happening, I'd probably have been able to answer your question already. There are certainly some things which are done incrementally for each point, but I wouldn't expect any significant slowdown over iterations. That's why we'd need to see this if it's still happening in current versions...

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RFStuff
    RFStuff over 7 years ago in reply to Andrew Beckett

    Dear Andrew,

    I installed the latest specter  sub-version  17.1.0.160.isr2.

    But  it is saying no license for this version. (though we have full support license)

    I filed a case regarding this . ( Fighting with one problem I am running into another problem).

    Meanwhile,  (as I have to meet a critical timeline) is it possible to do the MonteCarlo analysis with OceanScript/Command. I think this my be faster without need of any GUI interface.

    I have earlier done MonteCarlo in Ocean with IC5141 and It was much faster  even with an Extracted circuit. The current circuit does NOT need APS as it is small.

    With IC616/7,  it looks like all MonteCarlo Commnads have been changed.

    Could you please point me to any reference document which can guide me to run Montecarlo using OCEAN script.

    Kind Regards,

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to RFStuff

    Each new major release of any of our software requires you to ensure you have the latest version in your license file. The features are the same, but the version numbers get increased (this is to ensure that a customer is on maintenance). You can order updated licenses yourself through support.cadence.com and then going to Software->Order Licenses (or something like that).

    If the simulation is getting slower per iteration, it's highly unlikely that running through OCEAN will make it any better (since it's the same simulator and netlist, including analysis statements underneath). The primary way is to run Monte Carlo using OCEAN XL, which is in essence a scripted equivalent of the ADE XL flow. The old monteRun/monteCarlo functions should still work for legacy support - but they end up the same underneath.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RFStuff
    RFStuff over 7 years ago in reply to Andrew Beckett

    Ok, so I have to wait for customer support reply.

    By the way, if I set run points = 100, it shows in the run bar as  " running- 74 /200 complete". It should have been " running- 74 /100 complete". Why it is so ?

    Kind Regards,

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to RFStuff

    Do you have more than one corner enabled? Or corner and nominal? Perhaps a screen shot would help...

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RFStuff
    RFStuff over 7 years ago in reply to Andrew Beckett

     H

    Attached is the snapshot.  Also  I want to know whether it is becoming slow because of many output parameters to be evaluated as shown in the snapshot ?

    I have attached the generated the oceanScript  file of the ADEXL setup (ocean.txt) and the  oceanScript output parameter evaluation file (oceanMC.ocn) which  ADEXL refers.

    Fullscreen ocean.txt Download
    ;====================== Set to XL mode =========================================
    ocnSetXLMode()
    ocnxlProjectDir( "/home/manas/simulation_IC616_130nm" )
    ocnxlTargetCellView( "RES_FB_NC_REVISIT_NEW" "TB_B1DB_GM_MAIN_CMOS_SWITCH_REAL_TIA" "adexl" )
    ocnxlResultsLocation( "" )
    ocnxlSimResultsLocation( "" )
    
    ;====================== Tests setup ============================================
    
    ;---------- Test "RES_FB_NC_REVISIT_NEW:TB_B1DB_GM_MAIN_CMOS_SWITCH_REAL_TIA:4" ------------- 
    ocnxlBeginTest("RES_FB_NC_REVISIT_NEW:TB_B1DB_GM_MAIN_CMOS_SWITCH_REAL_TIA:4")
    simulator( 'spectre )
    design( "RES_FB_NC_REVISIT_NEW" "TB_B1DB_GM_MAIN_CMOS_SWITCH_REAL_TIA" "schematic")
    modelFile( 
        '("/home/manas/work_cad/UMC130FDKMFC_B08_PB/Models/Spectre/Monte_Carlo/l130e_12_rf_v102_mc_corner.lib.scs" "mc")
        '("/home/manas/work_cad/UMC130FDKMFC_B08_PB/Models/Spectre/Monte_Carlo/mm130e_mom_v041_mc_corner.lib.scs" "typ")
        '("/home/manas/work_cad/UMC130FDKMFC_B08_PB/Models/Spectre/Monte_Carlo/l130e_hs12_v241_mc_corner.lib.scs" "ss")
        '("/home/manas/work_cad/UMC130FDKMFC_B08_PB/Models/Spectre/Monte_Carlo/l130e_res_v101_mc_corner.lib.scs" "res_typ")
        '("/home/manas/work_cad/UMC130FDKMFC_B08_PB/Models/Spectre/Monte_Carlo/l130e_hg_rvt33_v161_mc_corner.lib.scs" "ss")
    )
    analysis('pnoise ?MultiEna t  ?MultiEna1 t  ?sweeptype "absolute"  
    		?start "0.1M"  ?stop "2.5M"  ?step "0.5M"  ?maxsideband "100"  
    		?p "/MAIN_TIA_I_OUT"  ?n "/gnd!"  ?oprobe ""  ?iprobe "/PORT1"  
    		?refsideband "1"  )
    analysis('pac ?outType "Voltage"  ?start "2G-100M"  ?stop "2G+100M"  
    		?step "1M"  ?values list("2.0001G" "2.00001G" "1.9999G")  ?maxsideband ""  
    		?sidebands list("0" "-1" "-20" "-22" "-25" "-27" "-50" "-52" "-10" "-12")
    		?freqaxis "out"  )
    analysis('pss ?fund "2G"  ?harms "10"  ?errpreset "moderate"  
    		?tstab "0.1u"  ?saveinit "yes"  ?method "gear2only"  ?tstabmethod "gear2only"  
    		?maxacfreq "200G"  )
    analysis('dc ?saveOppoint t  )
    desVar(	  "RES_TIA_IN" 0	)
    desVar(	  "LO_0" "\"/home/manas/DIVIDER_OUTPUT_CAPTURE/OLD_DIVIDER/LO_0_2GHZ_PEX_350_SS_OLD.vcsv\""	)
    desVar(	  "LO_180" "\"/home/manas/DIVIDER_OUTPUT_CAPTURE/OLD_DIVIDER/LO_180_2GHZ_PEX_350_SS_OLD.vcsv\""	)
    desVar(	  "LO_270" "\"/home/manas/DIVIDER_OUTPUT_CAPTURE/OLD_DIVIDER/LO_270_2GHZ_PEX_350_SS_OLD.vcsv\""	)
    desVar(	  "LO_90" "\"/home/manas/DIVIDER_OUTPUT_CAPTURE/OLD_DIVIDER/LO_90_2GHZ_PEX_350_SS_OLD.vcsv\""	)
    desVar(	  "RSW_OFF" 400K	)
    desVar(	  "RF" 10k	)
    desVar(	  "RES_COMP_L" 18K	)
    desVar(	  "RES_FB" 6K	)
    desVar(	  "TIA_MAIN_RF" 6K	)
    desVar(	  "TIA_AUX_RF" 5K	)
    desVar(	  "R_BB" 200	)
    desVar(	  "RSW_MAIN_NOISE" 15	)
    desVar(	  "RSW_AUX" 15	)
    desVar(	  "RSW_AUX_NOISE" 15	)
    desVar(	  "RSW_FB_L" 10	)
    desVar(	  "RSW_FB_R" 10	)
    desVar(	  "MIX_FILT" 10	)
    desVar(	  "MIX_FILT_NOISE" 10	)
    desVar(	  "RSW_MAIN" 10	)
    desVar(	  "RSW_ON" 1	)
    desVar(	  "prf" 0	)
    desVar(	  "MIX_FILT_NON_COEFF" .7	)
    desVar(	  "RSW_MAIN_NON_COEFF" .7	)
    desVar(	  "RSW_AUX_NON_COEFF" .7	)
    desVar(	  "VBIAS" 656.39m	)
    desVar(	  "SWITCH_ON" 600.5m	)
    desVar(	  "SWITCH_OFF" 600.1m	)
    desVar(	  "GM_TIA" 400m	)
    desVar(	  "R_GM_NOISE" 150m	)
    desVar(	  "GM_RF" 60m	)
    desVar(	  "L_BOND" 2.2n	)
    desVar(	  "T" 0.5n	)
    desVar(	  "C_MIX_FILT" 102p	)
    desVar(	  "C_BOOST_FB" 45p	)
    desVar(	  "TIA_AUX_CF" 14p	)
    desVar(	  "C_MIX_FILT_PAR" 12p	)
    desVar(	  "TIA_MAIN_CF" 12p	)
    desVar(	  "T_FALL" 10p	)
    desVar(	  "T_RISE" 10p	)
    desVar(	  "C_BLOCK" 1p	)
    desVar(	  "GM_RF_3RD" 0	)
    desVar(	  "GM_TIA_3RD" 0	)
    desVar(	  "sigma" 3	)
    envOption(
    	'firstRun  nil 
    	'analysisOrder  list("tran" "dc" "pss" "pac" "pxf" "psp" "pnoise" "pstb" "hb" "hbac" "hbnoise" "pz" "dcmatch" "stb" "envlp" "ac" "lf" "noise" "xf" "sp" "qpss" "qpac" "qpnoise" "qpxf" "qpsp" "sens" "acmatch") 
    )
    option(	'dochecklimit  "no" 
    	'generalnoiseinst  list("/M0_GM_PMOS" "/M36_GM_NMOS" "/M22_FILT" "/M23" "/M24" "/M25" "/M17_MAIN_MIX" "/M16" "/M15" "/M14") 
    	'generalnoiseinstonoff  "off" 
    	'temp  "120.0" 
    	'iabstol  "1e-14" 
    	'vabstol  "1e-8" 
    	'reltol  "1e-2" 
    )
    option( ?categ 'turboOpts
    	'numThreads  "10" 
    	'uniMode  "APS" 
    )
    saveOption( 'currents "all" )
    saveOption( 'save "all" )
    saveOpPoint( "/M22_FILT" ?operatingPoints "cgg  cdd vth gds" )
    saveOpPoint( "/M17_MAIN_MIX" ?operatingPoints "cgg cdd vth gds" )
    saveOpPoint( "/M0_GM_PMOS" ?operatingPoints "cgg cdd vth gm gds" )
    saveOpPoint( "/M36_GM_NMOS" ?operatingPoints "cgg cdd vth gm gds vds" )
    temp( 120.0 ) 
    ocnxlOutputTerminal( "/V0_GM_OUT/PLUS")
    ocnxlOutputTerminal( "/V32_GM_FILT/PLUS")
    ocnxlOutputExpr( "db(vh('pac \"/MAIN_TIA_I_OUT\" '-1))" ?name "v /MAIN_TIA_I_OUT h=-1; pac dB20(V)" ?plot t ?save t)
    ocnxlOutputOceanScript( "/home/manas/work_cad_IC616_130nm/RES_FB_NC_REVISIT_NEW/TB_B1DB_GM_MAIN_CMOS_SWITCH_REAL_TIA/adexl/test_states/RES_FB_NC_REVISIT_NEW/TB_B1DB_GM_MAIN_CMOS_SWITCH_REAL_TIA/spectre/RES_FB_NC_REVISIT_NEW:TB_B1DB_GM_MAIN_CMOS_SWITCH_REAL_TIA:4_active/outputsScriptsDir/oceanScript_PSS_MC.ocn" ?name "ocnMeasure_0" ?plot t)
    ocnxlEndTest() ; "RES_FB_NC_REVISIT_NEW:TB_B1DB_GM_MAIN_CMOS_SWITCH_REAL_TIA:4"
    
    ;====================== Sweeps setup ===========================================
    ocnxlSweepVar("RES_TIA_IN" "0")
    ocnxlSweepVar("LO_0" "\"/home/manas/DIVIDER_OUTPUT_CAPTURE/OLD_DIVIDER/LO_0_2GHZ_PEX_350_SS_OLD.vcsv\"")
    ocnxlSweepVar("LO_180" "\"/home/manas/DIVIDER_OUTPUT_CAPTURE/OLD_DIVIDER/LO_180_2GHZ_PEX_350_SS_OLD.vcsv\"")
    ocnxlSweepVar("LO_270" "\"/home/manas/DIVIDER_OUTPUT_CAPTURE/OLD_DIVIDER/LO_270_2GHZ_PEX_350_SS_OLD.vcsv\"")
    ocnxlSweepVar("LO_90" "\"/home/manas/DIVIDER_OUTPUT_CAPTURE/OLD_DIVIDER/LO_90_2GHZ_PEX_350_SS_OLD.vcsv\"")
    ocnxlSweepVar("RSW_OFF" "400K")
    ocnxlSweepVar("RF" "10k")
    ocnxlSweepVar("RES_COMP_L" "18K")
    ocnxlSweepVar("RES_FB" "6K")
    ocnxlSweepVar("TIA_MAIN_RF" "6K")
    ocnxlSweepVar("TIA_AUX_RF" "5K")
    ocnxlSweepVar("R_BB" "200")
    ocnxlSweepVar("RSW_MAIN_NOISE" "15")
    ocnxlSweepVar("RSW_AUX" "15")
    ocnxlSweepVar("RSW_AUX_NOISE" "15")
    ocnxlSweepVar("RSW_FB_L" "10")
    ocnxlSweepVar("RSW_FB_R" "10")
    ocnxlSweepVar("MIX_FILT" "10")
    ocnxlSweepVar("MIX_FILT_NOISE" "10")
    ocnxlSweepVar("RSW_MAIN" "10")
    ocnxlSweepVar("RSW_ON" "1")
    ocnxlSweepVar("prf" "-60")
    ocnxlSweepVar("MIX_FILT_NON_COEFF" ".7")
    ocnxlSweepVar("RSW_MAIN_NON_COEFF" ".7")
    ocnxlSweepVar("RSW_AUX_NON_COEFF" ".7")
    ocnxlSweepVar("VBIAS" "656.39m")
    ocnxlSweepVar("SWITCH_ON" "600.5m")
    ocnxlSweepVar("SWITCH_OFF" "600.1m")
    ocnxlSweepVar("GM_TIA" "400m")
    ocnxlSweepVar("R_GM_NOISE" "150m")
    ocnxlSweepVar("GM_RF" "60m")
    ocnxlSweepVar("L_BOND" "2.2n")
    ocnxlSweepVar("T" "0.5n")
    ocnxlSweepVar("C_MIX_FILT" "102p")
    ocnxlSweepVar("C_BOOST_FB" "45p")
    ocnxlSweepVar("TIA_AUX_CF" "14p")
    ocnxlSweepVar("C_MIX_FILT_PAR" "12p")
    ocnxlSweepVar("TIA_MAIN_CF" "12p")
    ocnxlSweepVar("T_FALL" "10p")
    ocnxlSweepVar("T_RISE" "10p")
    ocnxlSweepVar("C_BLOCK" "1p")
    ocnxlSweepVar("GM_RF_3RD" "0")
    ocnxlSweepVar("GM_TIA_3RD" "0")
    ocnxlSweepVar("C_PI_L" "35p")
    ocnxlSweepVar("C_PI_R" "35p")
    ocnxlSweepVar("C_GM_FB" "1f")
    ocnxlSweepVar("sigma" "3")
    
    ;====================== Model Group setup ==========================================
    
    ;====================== Corners setup ==========================================
    ocnxlCorner( "C0"
       '(
          ("variable" "temperature" "-40:40:125")
          ("variable" "prf" "-60")
          ("model" "/home/manas/work_cad/UMC130FDKMFC_B08_PB/Models/Spectre/L130E_HS12_V241.lib.scs" ?enabled nil  ?section "\"ss\"")
          ("model" "/home/manas/work_cad/UMC130FDKMFC_B08_PB/Models/Spectre/MML130E_RES_V152.lib.scs" ?enabled nil  ?section "\"res_typ\"")
          ("model" "/home/manas/work_cad/UMC130FDKMFC_B08_PB/Models/Spectre/mm130e_mom_v031.lib.scs" ?enabled nil  ?section "\"typ\"")
          ("model" "/home/manas/work_cad/UMC130FDKMFC_B08_PB/Models/Spectre/L130E_HG_RVT33_V131.lib.scs" ?enabled nil  ?section "\"ss\"")
          ("model" "/home/manas/work_cad/UMC130FDKMFC_B08_PB/Models/Spectre/Monte_Carlo/l130e_12_rf_v102_mc_corner.lib.scs" ?section "\"ss\"")
          ("model" "/home/manas/work_cad/UMC130FDKMFC_B08_PB/Models/Spectre/Monte_Carlo/l130e_hs12_v241_mc_corner.lib.scs" ?section "\"ss\"")
          ("model" "/home/manas/work_cad/UMC130FDKMFC_B08_PB/Models/Spectre/Monte_Carlo/l130e_res_v101_mc_corner.lib.scs" ?section "\"res_typ\"")
          ("model" "/home/manas/work_cad/UMC130FDKMFC_B08_PB/Models/Spectre/Monte_Carlo/l130e_hg_rvt33_v161_mc_corner.lib.scs" ?section "\"ss\"")
          ("model" "/home/manas/work_cad/UMC130FDKMFC_B08_PB/Models/Spectre/Monte_Carlo/mm130e_mom_v041_mc_corner.lib.scs" ?section "\"typ\"")
          ("modelGroup" "")
       )
    )
    ocnxlCorner( "C1"
       '(
          ("variable" "temperature" "120")
          ("model" "/home/manas/work_cad/UMC130FDKMFC_B08_PB/Models/Spectre/L130E_HS12_V241.lib.scs" ?enabled nil  ?section "")
          ("model" "/home/manas/work_cad/UMC130FDKMFC_B08_PB/Models/Spectre/MML130E_RES_V152.lib.scs" ?enabled nil  ?section "")
          ("model" "/home/manas/work_cad/UMC130FDKMFC_B08_PB/Models/Spectre/mm130e_mom_v031.lib.scs" ?enabled nil  ?section "")
          ("model" "/home/manas/work_cad/UMC130FDKMFC_B08_PB/Models/Spectre/L130E_HG_RVT33_V131.lib.scs" ?enabled nil  ?section "")
          ("model" "/home/manas/work_cad/UMC130FDKMFC_B08_PB/Models/Spectre/Monte_Carlo/l130e_12_rf_v102_mc_corner.lib.scs" ?section "\"mc\"")
          ("model" "/home/manas/work_cad/UMC130FDKMFC_B08_PB/Models/Spectre/Monte_Carlo/l130e_hs12_v241_mc_corner.lib.scs" ?section "\"ss\"")
          ("model" "/home/manas/work_cad/UMC130FDKMFC_B08_PB/Models/Spectre/Monte_Carlo/l130e_res_v101_mc_corner.lib.scs" ?section "\"res_typ\"")
          ("model" "/home/manas/work_cad/UMC130FDKMFC_B08_PB/Models/Spectre/Monte_Carlo/l130e_hg_rvt33_v161_mc_corner.lib.scs" ?section "\"ss\"")
          ("model" "/home/manas/work_cad/UMC130FDKMFC_B08_PB/Models/Spectre/Monte_Carlo/mm130e_mom_v041_mc_corner.lib.scs" ?section "\"typ\"")
          ("modelGroup" "")
       )
    )
    
    ;====================== Test v/s corners setup =================================
    
    ;====================== Job setup ==============================================
    ocnxlJobSetup( '(
    	"blockemail" "1"
    	"configuretimeout" "300"
    	"distributionmethod" "Local"
    	"lingertimeout" "300"
    	"maxjobs" "1"
    	"name" "ADE XL Default"
    	"preemptivestart" "1"
    	"reconfigureimmediately" "1"
    	"runtimeout" "-1"
    	"showerrorwhenretrying" "1"
    	"showoutputlogerror" "0"
    	"startmaxjobsimmed" "1"
    	"starttimeout" "300"
    	"usesameprocess" "1"
    ) )
    
    ;====================== Disabled items =========================================
    ocnxlDisableCorner("C0")
    
    ;====================== Run Mode Options ======================================
    ocnxlMonteCarloOptions( ?ignoreFlag "0" ?mcMethod "mismatch" ?mcNumPoints "100" ?mcNumBins "" ?mcStopEarly "0" ?mcStopMethod "Significance Test" ?samplingMode "random" ?saveProcess "1" ?saveMismatch "0" ?useReference "0" ?donominal "1" ?saveAllPlots "0" ?monteCarloSeed "" ?mcStartingRunNumber "" ?dumpParamMode "yes" ?dutSummary "RES_FB_NC_REVISIT_NEW:TB_B1DB_GM_MAIN_CMOS_SWITCH_REAL_TIA:4%/M25, /M24, /M23, /M22_FILT, /M36_GM_NMOS, /M0_GM_PMOS, /M14, /M15, /M16, /M17_MAIN_MIX, /M10, /M11, /M12, /M13%Schematic%Schematic#" )
    
    ;====================== Starting Point Info ======================================
    
    ;====================== Run command ============================================
    ocnxlRun( ?mode 'monteCarlo ?nominalCornerEnabled t ?allCornersEnabled t ?allSweepsEnabled t)
    ocnxlOutputSummary(?yieldSummary t ?exprSummary nil ?specSummary nil ?detailed nil)
    ocnxlOpenResults()
    
    ;====================== End XL Mode command ===================================
    ocnxlEndXLMode()
    
                        
    Fullscreen oceanMC.txt Download
    simulator( 'spectre )
    saveOption( 'currents "all" )
    saveOption( 'save "all" )
    save( 'v "/net030" "/MAIN_TIA_I_OUTP" )
    save( 'i "/V32_GM_FILT/PLUS" "/V0_GM_OUT/PLUS" )
    resultsDir( "/home/manas/simulation_IC616_130nm/TB_B1DB_GM_MAIN_CMOS_SWITCH_REAL_TIA/spectre/schematic" )
    BB_GAIN=db(vh('pac "/MAIN_TIA_I_OUT" '-1))
    
    BB_GAIN_DC=value(BB_GAIN 100e3)
    BB_GAIN_R_2_5M=value(BB_GAIN 2.5e6)
    BB_GAIN_L_2_5M=value(BB_GAIN -2.5e6)
    
    BB_GAIN_R_40M=value(BB_GAIN 40e6)
    BB_GAIN_R_80M=value(BB_GAIN 80e6)
    BB_GAIN_R_100M=value(BB_GAIN 100e6)
    
    BB_GAIN_R_REJ_40M= BB_GAIN_DC-BB_GAIN_R_40M
    BB_GAIN_R_REJ_80M= BB_GAIN_DC-BB_GAIN_R_80M
    BB_GAIN_R_REJ_100M= BB_GAIN_DC-BB_GAIN_R_100M
    
    
    BB_GAIN_L_40M=value(BB_GAIN -40e6)
    BB_GAIN_L_80M=value(BB_GAIN -80e6)
    BB_GAIN_L_100M=value(BB_GAIN -100e6)
    
    BB_GAIN_L_REJ_40M= BB_GAIN_DC-BB_GAIN_L_40M
    BB_GAIN_L_REJ_80M= BB_GAIN_DC-BB_GAIN_L_80M
    BB_GAIN_L_REJ_100M= BB_GAIN_DC-BB_GAIN_L_100M
    
    
    
    RF_IN_VALUE=db(vh('pac "/RF_IN" '(0)))
    
    RF_REJ_R_40M=value(RF_IN_VALUE 2.040e9)
    RF_REJ_R_80M=value(RF_IN_VALUE 2.080e9)
    RF_REJ_R_100M=value(RF_IN_VALUE 2.1e9)
    
    RF_REJ_L_40M=value(RF_IN_VALUE 1.96e9)
    RF_REJ_L_80M=value(RF_IN_VALUE 1.92e9)
    RF_REJ_L_100M=value(RF_IN_VALUE 1.9e9)
    
    
    
    
    NF_DSB_VALUE=getData("NFdsb" ?result "pnoiseOut1")
    
    NF_DSB_1M=value(NF_DSB_VALUE 1e6)
    NF_DSB_2_5M=value(NF_DSB_VALUE 2.5e6)
    NF_DSB_DELTA=NF_DSB_2_5M - NF_DSB_1M
    
    
    axlOutputResult( BB_GAIN_DC "BB_GAIN_DC")
    axlOutputResult( BB_GAIN_R_2_5M "BB_GAIN_R_2_5M")
    axlOutputResult( BB_GAIN_L_2_5M "BB_GAIN_L_2_5M")
    
    axlOutputResult( BB_GAIN_R_REJ_40M "BB_GAIN_R_REJ_40M")
    axlOutputResult( BB_GAIN_R_REJ_80M "BB_GAIN_R_REJ_80M")
    axlOutputResult( BB_GAIN_R_REJ_100M "BB_GAIN_R_REJ_100M")
    
    axlOutputResult( BB_GAIN_L_REJ_40M "BB_GAIN_L_REJ_40M")
    axlOutputResult( BB_GAIN_L_REJ_80M "BB_GAIN_L_REJ_80M")
    axlOutputResult( BB_GAIN_L_REJ_100M "BB_GAIN_L_REJ_100M")
    
    axlOutputResult( RF_REJ_R_40M "RF_REJ_R_40M")
    axlOutputResult( RF_REJ_R_80M "RF_REJ_R_80M")
    axlOutputResult( RF_REJ_R_100M "RF_REJ_R_100M")
    
    axlOutputResult( RF_REJ_L_40M "RF_REJ_L_40M")
    axlOutputResult( RF_REJ_L_80M "RF_REJ_L_80M")
    axlOutputResult( RF_REJ_L_100M "RF_REJ_L_100M")
    
    
    
    axlOutputResult( NF_DSB_1M "NF_DSB_1M")
    axlOutputResult( NF_DSB_2_5M "NF_DSB_2_5M")
    axlOutputResult( NF_DSB_DELTA "NF_DSB_DELTA")
    
    

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to RFStuff

    OK, there are 200 runs because you have 100 monte carlo points but two corners - nominal (which is the default test model setup) and corner C1. So that's 2*100.

    As for the number of outputs, it's not exactly excessive - and anyway that shouldn't hold up the simulation. I'm assuming you are giving the slowdown related to the times it gives in the spectre log file.

    Anyway, if you're already dealing with customer support, probably wise to continue talking to them - then an AE can look in more detail at your setup, check the timings and so on (especially as it's the weekend for me...)

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RFStuff
    RFStuff over 7 years ago in reply to Andrew Beckett

    Thanks a lot Andrew.

     But for the shake of clarification of my doubt:-

    I think the nominal should run one time at the beginning. Not for each montecarlo (MC) run.

    If it is running with each MC run then, it is just repeating the same nominal simulation unless nominal simulation is having some parameter variations in itself for each run.

    Moreover, I am running only Mismatch not both Process & Mismatch.

    I am curious to know, with mismatch in which process corner each MC run is simulated ?

    Kind Regards,

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
>

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information