.. _technology_library:
Technology library
------------------
Technology library aims to describe transistor-level parameters to be applied to the physical design of FPGAs. In addition to transistor models, technology library also supports the definition of process variations on any transistor models.
General organization is as follows.
.. code-block:: xml
Device Library
^^^^^^^^^^^^^^
Device library contains detailed description on device models, such as transistors and Resistive Random Access Memories (RRAMs).
A device library may consist of a number of ```` and each of them denotes a different transistor model.
A device model represents a transistor/RRAM model available in users' technology library.
.. option::
Specify the name and type of a device model
- ``name=""`` is the unique name of the device model in the context of ````.
- ``type="transistor|rram"`` is the type of device model in terms of functionality
Currently, OpenFPGA supports two types: transistor and RRAM.
.. note:: the name of ```` may not be the name in users' technology library.
.. option::
Specify the technology library that defines the device model
- ``type="academia|industry"`` For the industry library, FPGA-SPICE will use ``.lib `` to include the library file in SPICE netlists. For academia library, FPGA-SPICE will use ``.include `` to include the library file in SPICE netlists
- ``corner=""`` is the process corner name available in technology library.
For example, the type of transistors can be ``TT``, ``SS`` and ``FF`` *etc*.
- ``ref=""`` specify the reference of in calling a transistor model. In SPICE netlists, define a transistor follows the convention:
.. code-block:: xml
The reference depends on the technology and the type of library. For example, the PTM bulk model uses “M” as the reference while the PTM FinFET model uses “X” as the reference.
- ``path=""`` specify the path of the technology library file. For example:
.. code-block:: xml
lib_path=/home/tech/45nm.pm.
.. option::
Specify transistor-level design parameters
- ``vdd=""`` specify the working voltage for the technology. The voltage will be used as the supply voltage in all the SPICE netlists.
- ``pn_ratio=""`` specify the ratio between *p*-type and *n*-type transistors. The ratio will be used when building circuit structures such as inverters, buffers, etc.
.. option::
Specify device-level parameters for transistors
- ``name=""`` specify the name of the p/n type transistor, which can be found in the manual of the technology provider.
- ``chan_length=""`` specify the channel length of a *p/n* type transistor.
- ``min_width=""`` specify the minimum width of a *p/n* type transistor. This parameter will be used in building inverter, buffer, *etc*. as a base number for transistor sizing.
- ``max_width=""`` specify the maximum width of a *p/n* type transistor. This parameter will be used in building inverter, buffer, *etc*. as a base number for transistor sizing. If the required transistor width exceeds the maximum width, multiple transistors will be instanciated. Note that for FinFET technology, your ``max_width`` should be the same as your ``min_width``.
.. note:: The ``max_width`` is optional. By default, it will be set to be same as the ``min_width``.
- ``variation=""`` specify the variation name defined in the ````
.. option::
Specify device-level parameters for RRAMs
- ``rlrs=""`` specify the resistance of Low Resistance State (LRS) of a RRAM device
- ``rhrs=""`` specify the resistance of High Resistance State (HRS) of a RRAM device
- ``variation=""`` specify the variation name defined in the ````
Variation Library
^^^^^^^^^^^^^^^^^
Variation library contains detailed description on device variations specified by users.
A variation library may consist of a number of ```` and each of them denotes a different variation parameter.
.. option::
Specify detail variation parameters
- ``name=""`` is the unique name of the device variation in the context of ````. The name will be used in ```` to bind variations
- ``abs_variation=""`` is the absolute deviation of a variation
- ``num_sigma=""`` is the standard deviation of a variation