ad1

Showing posts with label Integrated Circuit. Show all posts
Showing posts with label Integrated Circuit. Show all posts

Tuesday, October 27, 2015

SAR ADC & Charge Redistribution DAC

There is a extra Vin pin on SAR ADC caps array.

DNL of Charge Scaling DAC






TSMC model: difference between nch and nch_mac





Update pPar("param_name") parameter input

Suppose you have a cell, and want to change one of its device property from a definite value to a pPar value (that is, a parent parameter). After you change the property value, you have to add a dummy pin and then recreate the symbol view. That way, the pPar parameter is updated correctly.

Sunday, October 25, 2015

Check Monte Carlo Simulation Simulation Netlist in ADE (IC5141)

Get Monte Carlo simulation netlist in IC5141
The Monte Carlo portion of the netlist is shown below:
mc1 montecarlo numruns=100 seed=1 variations=mismatch donominal=yes \
    scalarfile="../monteCarlo/mcdata" paramfile="../monteCarlo/mcparam" \
    saveprocessparams=yes processparamfile="../monteCarlo/processParam" \
    processscalarfile="../monteCarlo/processData" savefamilyplots=yes \
    sampling=lhs {
        dcOp dc write="spectre.dc" maxiters=150 maxsteps=10000 annotate=status
        dcOpInfo info what=oppoint where=rawfile
        modelParameter info what=models where=rawfile
        element info what=inst where=rawfile
        outputParameter info what=output where=rawfile
        designParamVals info what=parameters where=rawfile
        primitives info what=primitives where=rawfile
        subckts info what=subckts  where=rawfile
        export noExprs=oceanEval("0")
}




Friday, October 23, 2015

Mismatch Simulation

When simulating with mismatch, spectre will generate a random value for each of the varied global parameters for each subckt instance

There is a commonly mistaken belief that you must use inline subckts for mismatch simulation. In fact, the subckt does not need to be inline, that is merely to make back-annotation of operating point data simpler because the result database does not contain an additional level of hierarchy for the inline device.

Pick a Particular Iteration from Monte Carlo Simulation Result

value(VT("/myOut")   'iteration <iterationNumberHere>)

pv

pv( t_name t_param)

  • Returns the value for the specified component parameter. 
  • You can use the outputParams command to get the list of parameters for a particular component.

Spectre Gotcha! -- parameters

parameters not parameter

parameters   rval=948

Specifying Parameter Distributions in Spectre -- Use Statistics Blocks

Statistics block can contain:
  • One or more process blocks;
  • One or more mismatch blocks;
  • One or more correlation statements;
  • A truncate statement (for generating truncated distributions);

Process blocks:
  • sampled once per Monte Carlo run


Mismatch blocks:
  • sampled once per subcircuit instance

Correlation statements:
Two types of correlation statements that you can use:
  • Process parameter correlation statements
  • Instance or mismatch correlation statements (matched devices)




Thursday, October 22, 2015

Sample Monte Carlo Analysis

mc2 montecarlo donominal=no variations=mismatch seed=1234 numruns=200 {
      dcop2 dc
      tran2 tran start=0 stop=1u
      export slewrate=oceanEval("slewRate(v(\"vout\"),10n,t,30n,t,10,90 )"
}

Notes:
  1. Monte Carlo analysis statement applies only mismatch variations (variations=mismatch);
  2. It does not perform a nominal run (donomial=no).