Simulation Models
=================

Spectre
-------

The Spectre models have been successfully used with the Spectre simulator, and simulation results match the electrical parameter specs.

Spectre Model Qualification
~~~~~~~~~~~~~~~~~~~~~~~~~~~

Full model qualification requires the following checks:

* Confirm that all supported devices netlist and simulate when the appropriate model files are included.
* Check process corner simulation results against electrical specification limits.
* Run performance simulations on various IP and determine if results sufficiently match existing published simulation results.
* Compare simulated performance of isolated devices and IP to measured hardware results.

The V1.3.0 models have not been systematically tested with all five of those tasks. The V1.3.0 devices have been netlisted and simulated, certain characteristics have been evaluated at nominal and process corners, and a small number of IP blocks have been evaluated. The V1.3.0 models are considered functional but not fully qualified.

Spectre Model Setup
~~~~~~~~~~~~~~~~~~~

All stack-specific Spectre model files are found in the directory $PDK_HOME/MODELS/SPECTRE/s8phirs_10r /Models. The file design_wrapper.lib.scs provides the sections necessary to simulate every corner (e.g. typical tt, fast-fast ff, slow-fast sf, etc.). For the FETs, the corner naming is based on P followed by N, so sf indicates the slow PMOS fast NMOS corner. Table 6 elaborates the sections in the Design Wrapper.

.. table:: Design Wrapper Sections

    +-----------------------------+------------------------------------+-------------+-------------------------------+-------------------------------------+
    |                             | **Devices**                        | **Section** | **Included Files**            | **Description**                     |
    +-----------------------------+------------------------------------+-------------+-------------------------------+-------------------------------------+
    | **Transistor Corners**      | FET, PNP                           | tt_fet      | tt.cor                        | Typical pmos, typical nmos          |
    +-----------------------------+------------------------------------+-------------+-------------------------------+-------------------------------------+
    |                             |                                    | ff_fet      | ff.cor                        | Fast pmos, fast nmos                |
    +-----------------------------+------------------------------------+-------------+-------------------------------+-------------------------------------+
    |                             |                                    | ss_fet      | ss.cor                        | Slow pmos, slow nmos                |
    +-----------------------------+------------------------------------+-------------+-------------------------------+-------------------------------------+
    |                             |                                    | fs_fet      | fs.cor                        | Fast pmos, slow nmos                |
    +-----------------------------+------------------------------------+-------------+-------------------------------+-------------------------------------+
    |                             |                                    | sf_fet      | sf.cor                        | Slow pmos, fast nmos                |
    +-----------------------------+------------------------------------+-------------+-------------------------------+-------------------------------------+
    | **Parasitic Corners**       | Parasitic Capacitors and Resistors | tt_parRC    | trtc.cor                      | Typical resistor, typical capacitor |
    +-----------------------------+------------------------------------+-------------+-------------------------------+-------------------------------------+
    |                             |                                    | hl_parRC    | hrlc.cor                      | High resistor, low capacitor        |
    +-----------------------------+------------------------------------+-------------+-------------------------------+-------------------------------------+
    |                             |                                    | lh_parRC    | lrhc.cor                      | Low resistor, high capacitor        |
    +-----------------------------+------------------------------------+-------------+-------------------------------+-------------------------------------+
    | **Linear Device Corners**   | Capacitors and Resistors           | tt_rc       | trtclin.cor                   | Typical resistor, typical capacitor |
    +-----------------------------+------------------------------------+-------------+-------------------------------+-------------------------------------+
    |                             |                                    | lh_rc       | lrhclin.cor                   | Low resistor, high capacitor        |
    +-----------------------------+------------------------------------+-------------+-------------------------------+-------------------------------------+
    |                             |                                    | hl_rc       | hrlclin.cor                   | High resistor, low capacitor        |
    +-----------------------------+------------------------------------+-------------+-------------------------------+-------------------------------------+
    |                             |                                    | ll_rc       | lrlclin.cor                   | Low resistor, low capacitor         |
    +-----------------------------+------------------------------------+-------------+-------------------------------+-------------------------------------+
    |                             |                                    | hh_rc       | hrhclin.cor                   | High resistor, high capacitor       |
    +-----------------------------+------------------------------------+-------------+-------------------------------+-------------------------------------+
    | **Cell Transistor Corners** | Cell FETs, low leakage models      | tt_cell     | ttcell.cor                    | Typical pmos, typical nmos          |
    +-----------------------------+------------------------------------+-------------+-------------------------------+-------------------------------------+
    |                             |                                    | ff_cell     | ffcell.cor                    | Fast pmos, fast nmos                |
    +-----------------------------+------------------------------------+-------------+-------------------------------+-------------------------------------+
    |                             |                                    | ss_cell     | sscell.cor                    | Slow pmos, slow nmos                |
    +-----------------------------+------------------------------------+-------------+-------------------------------+-------------------------------------+
    |                             |                                    | fs_cell     | fscell.cor                    | Fast pmos, slow nmos                |
    +-----------------------------+------------------------------------+-------------+-------------------------------+-------------------------------------+
    |                             |                                    | sf_cell     | sfcell.cor                    | Slow pmos, fast nmos                |
    +-----------------------------+------------------------------------+-------------+-------------------------------+-------------------------------------+
    | **Wafer**                   | Standard FETs, BJTs                | wafer_fet   | wafer.cor                     | FET models extracted from wafer     |
    +-----------------------------+------------------------------------+-------------+-------------------------------+-------------------------------------+
    |                             | Cell FETs                          | wafer_cell  | wafer_cell.cor                | FET models extracted from wafer     |
    +-----------------------------+------------------------------------+-------------+-------------------------------+-------------------------------------+
    | **Leakage**                 | Standard FETs, BJTs                | leak_fet    | leak.cor                      | Average worst case leakage models   |
    +-----------------------------+------------------------------------+-------------+-------------------------------+-------------------------------------+
    |                             | Cell FETs                          | leak_cell   | leakcell.cor                  | Average worst case leakage models   |
    +-----------------------------+------------------------------------+-------------+-------------------------------+-------------------------------------+
    | **NPN Corners**             | NPN Corners                        | npn_t       | npn_t.cor                     | Typical NPN                         |
    +-----------------------------+------------------------------------+-------------+-------------------------------+-------------------------------------+
    |                             |                                    | npn_f       | npn_f.cor                     | Fast NPN                            |
    +-----------------------------+------------------------------------+-------------+-------------------------------+-------------------------------------+
    |                             |                                    | npn_s       | npn_s.cor                     | Slow NPN                            |
    +-----------------------------+------------------------------------+-------------+-------------------------------+-------------------------------------+
    | **Montecarlo**              | All devices                        | mc          | monte.cor critical_params.cor | Montecarlo process and mismatch     |
    +-----------------------------+------------------------------------+-------------+-------------------------------+-------------------------------------+

This PDK does not support process Montecarlo. The models are available but they have not been qualified. To run Montecarlo, all of the corner sections need to be excluded and the mc section needs to be included.

All units in the PDK are specified in microns (1e-6). For example, the minimum size FET has W=0.28 and L=0.15.

There is an example of automatic model file loading in the .cdsinit found in $PDK_HOME/VirtuosoOA/examples. The resulting Cadence Model Library Setup dialog is shown here.

|process5|
