Apply Gate Library
Applies an FCN gate library to a gate_level_layout
to obtain a cell_level_layout
implemented
in the same technology as the provided gate library. Thereby, this function creates cell-accurate
implementations for each gate present in the passed gate_level_layout
.
Header: fiction/algorithms/physical_design/apply_gate_library.hpp
-
template<typename CellLyt, typename GateLibrary, typename GateLyt>
CellLyt fiction::apply_gate_library(const GateLyt &lyt) Applies a gate library to a given gate-level layout and, thereby, creates and returns a cell-level layout. The gate library type should provide all functions specified in fcn_gate_library. It is, thus, easiest to extend fcn_gate_library to implement a new gate library. Examples are
qca_one_library
,inml_topolinano_library
, andsidb_bestagon_library
.May pass through, and thereby throw, an
unsupported_gate_type_exception
or anunsupported_gate_orientation_exception
.- Template Parameters:
CellLyt – Type of the returned cell-level layout.
GateLibrary – Type of the gate library to apply.
GateLyt – Type of the gate-level layout to apply the library to.
- Parameters:
lyt – The gate-level layout.
- Returns:
A cell-level layout that implements
lyt
’s gate types with building blocks defined inGateLibrary
.
-
template<typename DefectLyt, typename GateLibrary, typename GateLyt>
DefectLyt fiction::apply_gate_library_to_defective_surface(const GateLyt &lyt, const DefectLyt &defect_surface) Applies a gate library to a given gate-level layout and maps the SiDB and defect locations onto a defect surface. The gate library type should provide all functions specified in fcn_gate_library. It is, thus, easiest to extend fcn_gate_library to implement a new gate library. Examples are
qca_one_library
,inml_topolinano_library
, andsidb_bestagon_library
.May pass through, and thereby throw, an
unsupported_gate_type_exception
or anunsupported_gate_orientation_exception
.- Template Parameters:
CellLyt – Type of the returned cell-level layout.
GateLibrary – Type of the gate library to apply.
GateLyt – Type of the gate-level layout to apply the library to.
- Parameters:
lyt – The gate-level layout.
- Returns:
A cell-level layout that implements
lyt
’s gate types with building blocks defined inGateLibrary
.
-
template<typename CellLyt, typename GateLibrary, typename GateLyt, typename Params>
CellLyt fiction::apply_parameterized_gate_library(const GateLyt &lyt, const Params ¶ms) Applies a parameterized gate library to a given gate-level layout and, thereby, creates and returns a cell-level layout.
May pass through, and thereby throw, an
unsupported_gate_type_exception
, anunsupported_gate_orientation_exception
and any further custom exceptions of the gate libraries.- Template Parameters:
CellLyt – Type of the returned cell-level layout.
GateLibrary – Type of the gate library to apply.
GateLyt – Type of the gate-level layout to apply the library to.
Params – Type of the parameter used for SiDB on-the-fly gate library.
- Parameters:
lyt – The gate-level layout.
params – Parameter for the gate library.
- Returns:
A cell-level layout that implements
lyt
’s gate types with building blocks defined inGateLibrary
.
-
template<typename DefectLyt, typename GateLibrary, typename GateLyt, typename Params>
DefectLyt fiction::apply_parameterized_gate_library_to_defective_surface(const GateLyt &lyt, const Params ¶ms, const DefectLyt &defect_surface) Applies a defect-aware parameterized gate library to a given gate-level layout and, thereby, creates and returns a cell-level layout.
May pass through, and thereby throw, an
unsupported_gate_type_exception
, anunsupported_gate_orientation_exception
and any further custom exceptions of the gate libraries.- Template Parameters:
DefectLyt – Type of the returned cell-level layout.
GateLibrary – Type of the gate library to apply.
GateLyt – Type of the gate-level layout to apply the library to.
Params – Type of the parameter used for SiDB on-the-fly gate library.
- Parameters:
lyt – The gate-level layout.
params – Parameter for the gate library.
defect_lyt – Defect surface.
- Returns:
A cell-level layout that implements
lyt
’s gate types with building blocks defined inGateLibrary
.
- mnt.pyfiction.apply_qca_one_library(layout: mnt.pyfiction.pyfiction.cartesian_gate_layout) mnt.pyfiction.pyfiction.qca_layout
Applies a gate library to a given gate-level layout and, thereby, creates and returns a cell-level layout. The gate library type should provide all functions specified in fcn_gate_library. It is, thus, easiest to extend fcn_gate_library to implement a new gate library. Examples are qca_one_library, inml_topolinano_library, and sidb_bestagon_library.
May pass through, and thereby throw, an unsupported_gate_type_exception or an unsupported_gate_orientation_exception.
- Template parameter
CellLyt
: Type of the returned cell-level layout.
- Template parameter
GateLibrary
: Type of the gate library to apply.
- Template parameter
GateLyt
: Type of the gate-level layout to apply the library to.
- Parameter
lyt
: The gate-level layout.
- Returns:
A cell-level layout that implements lyt’s gate types with building blocks defined in GateLibrary.
- Template parameter
- mnt.pyfiction.apply_topolinano_library(layout: mnt.pyfiction.pyfiction.shifted_cartesian_gate_layout) mnt.pyfiction.pyfiction.inml_layout
Applies a gate library to a given gate-level layout and, thereby, creates and returns a cell-level layout. The gate library type should provide all functions specified in fcn_gate_library. It is, thus, easiest to extend fcn_gate_library to implement a new gate library. Examples are qca_one_library, inml_topolinano_library, and sidb_bestagon_library.
May pass through, and thereby throw, an unsupported_gate_type_exception or an unsupported_gate_orientation_exception.
- Template parameter
CellLyt
: Type of the returned cell-level layout.
- Template parameter
GateLibrary
: Type of the gate library to apply.
- Template parameter
GateLyt
: Type of the gate-level layout to apply the library to.
- Parameter
lyt
: The gate-level layout.
- Returns:
A cell-level layout that implements lyt’s gate types with building blocks defined in GateLibrary.
- Template parameter
- mnt.pyfiction.apply_bestagon_library(layout: mnt.pyfiction.pyfiction.hexagonal_gate_layout) mnt.pyfiction.pyfiction.sidb_layout
Applies a gate library to a given gate-level layout and, thereby, creates and returns a cell-level layout. The gate library type should provide all functions specified in fcn_gate_library. It is, thus, easiest to extend fcn_gate_library to implement a new gate library. Examples are qca_one_library, inml_topolinano_library, and sidb_bestagon_library.
May pass through, and thereby throw, an unsupported_gate_type_exception or an unsupported_gate_orientation_exception.
- Template parameter
CellLyt
: Type of the returned cell-level layout.
- Template parameter
GateLibrary
: Type of the gate library to apply.
- Template parameter
GateLyt
: Type of the gate-level layout to apply the library to.
- Parameter
lyt
: The gate-level layout.
- Returns:
A cell-level layout that implements lyt’s gate types with building blocks defined in GateLibrary.
- Template parameter