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
.
- mnt.pyfiction.apply_qca_one_library(layout: mnt.pyfiction.cartesian_gate_layout) mnt.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.shifted_cartesian_gate_layout) mnt.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.hexagonal_gate_layout) mnt.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