ad1

Friday, October 30, 2015

Transition Label Syntax in Stateflow

The action types follow the label notation with this general format:
         event_or_message trigger[condition]{condition_action}/{transition_action}

Default Action Types for a State

If you do not specify the action type explicitly for a statement, the chart treats that statement as an entry action.

In fact, Matlab uses a mechanism called Action Language Auto Correction that automatically correct some syntax in state transition diagrams

Quote in LISP

The form 'foo is simply a faster way to type the special form
        (quote foo)
which is to say, "do not evaluate the name foo and replace it with its value; I really mean the name "foo".

Enumerated Name in Spectre/SpectreMDL

Note that an enumerated name needs a single quote mark (') in front.

Simulate DFF Setup/Hold Time Using SpectreMDL

stub

Smooth Function & Analytic Function

stub

Thursday, October 29, 2015

Wednesday, October 28, 2015

Exterior Derivatives of Differential Forms

Write out first-order form L as:
and replace each of the scalar factors (A, B, C) by its differential, formed in the ordinary sense.
Thus, if we associate with L the vector R=(A,B,C), we have the remarkable fact that the coefficients of dL are just the components of the curl of R.

The exterior derivative extends the concept of the differential of a function to differential forms of higher degree. (function itself is differential form of 0 degree)





"percent" Flag in Monte Carlo Simulation

stub

CIS: CMOS Image Sensor

CIS

Add Newline in Wavescan Label:

use <br>

Tuesday, October 27, 2015

Sunday, October 25, 2015

Type in Distribution Symbol in Mathematica

\dist


Noncentral Χ-Squared Distributions

stub

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")
}




Saturday, October 24, 2015

Branch Cut & Branch Points

In general, branch cuts are not unique, but are instead chosen by convention to give simple analytic properties (Kahan 1987).

An alternative to branch cuts for representing multivalued functions is the use of Riemann surfaces.

In addition to branch cuts, singularities known as branch points also exist. It should be noted, however, that the endpoints of branch cuts are not necessarily branch points.

Single-Valued Analytic Branch

Friday, October 23, 2015

Complex Power Function

Complex Power Function is defined by




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).