Mapping Cartesian to Hexagonal Layouts
This algorithm maps Cartesian 2DDWave-clocked layouts used for Quantum-dot Cellular Automata (QCA) to hexagonal row-clocked layouts, which are suitable for Silicon Dangling Bonds (SiDBs).
The respective coordinates on the hexagonal grid are calculated as follows:
Header: fiction/algorithms/physical_design/hexagonalization.hpp
-
struct hexagonalization_params
This structure encapsulates settings that determine how primary inputs (PIs) and primary outputs (POs) are handled during the conversion from a Cartesian to a hexagonal layout.
Public Types
-
enum io_pin_extension_mode
Specifies how primary inputs/outputs should be handled in the hexagonalization process.
Values:
-
enumerator NONE
Do not extend primary inputs/outputs to the top/bottom row (default).
-
enumerator EXTEND
Extend primary inputs/outputs to the top/bottom row.
-
enumerator EXTEND_PLANAR
Extend primary inputs/outputs to the top/bottom row with planar rerouting (i.e., without crossings).
-
enumerator NONE
Public Members
-
io_pin_extension_mode input_pin_extension = NONE
Input extension mode. Defaults to none
-
io_pin_extension_mode output_pin_extension = NONE
Output extension mode. Defaults to none
-
enum io_pin_extension_mode
-
struct hexagonalization_stats
This struct stores statistics about the hexagonalization process.
Public Functions
-
inline void report(std::ostream &out = std::cout) const
Reports the statistics to the given output stream.
- Parameters:
out – Output stream.
Public Members
-
mockturtle::stopwatch::duration time_total = {0}
Runtime of the hexagonalization process.
-
inline void report(std::ostream &out = std::cout) const
-
template<typename HexLyt, typename CartLyt>
HexLyt fiction::hexagonalization(const CartLyt &lyt, const hexagonalization_params ¶ms = {}, hexagonalization_stats *stats = nullptr) Transforms a 2DDWave-clocked Cartesian layout into a hexagonal even row clocked layout suitable for SiDBs by remapping all gates and wires as originally proposed in “Scalable Physical Design for Silicon Dangling Bond Logic: How a 45° Turn Prevents the Reinvention of the Wheel” by S. Hofmann, M. Walter, and R. Wille in IEEE NANO 2023 (https://ieeexplore.ieee.org/document/10231278).
- Template Parameters:
HexLyt – Even-row hexagonal gate-level layout return type.
CartLyt – Input Cartesian gate-level layout type.
- Parameters:
lyt – 2DDWave-clocked Cartesian gate-level layout to hexagonalize.
params – Parameters.
stats – Statistics.
- Returns:
Hexagonal representation of the Cartesian layout.
- class mnt.pyfiction.hexagonalization_params
This structure encapsulates settings that determine how primary inputs (PIs) and primary outputs (POs) are handled during the conversion from a Cartesian to a hexagonal layout.
- property input_pin_extension
Input extension mode. Defaults to none
- property output_pin_extension
Output extension mode. Defaults to none
- class mnt.pyfiction.hexagonalization_stats
This struct stores statistics about the hexagonalization process.
- property time_total
Runtime of the hexagonalization process.
- mnt.pyfiction.hexagonalization(layout: mnt.pyfiction.pyfiction.cartesian_gate_layout, parameters: mnt.pyfiction.pyfiction.hexagonalization_params = <mnt.pyfiction.pyfiction.hexagonalization_params object at 0x7b94bc710030>, statistics: mnt.pyfiction.pyfiction.hexagonalization_stats = None) mnt.pyfiction.pyfiction.hexagonal_gate_layout
Transforms a 2DDWave-clocked Cartesian layout into a hexagonal even row clocked layout suitable for SiDBs by remapping all gates and wires as originally proposed in "Scalable Physical Design for Silicon Dangling Bond Logic: How a 45° Turn Prevents the Reinvention of the Wheel" by S. Hofmann, M. Walter, and R. Wille in IEEE NANO 2023 (https://ieeexplore.ieee.org/document/10231278).
- Template parameter
HexLyt
: Even-row hexagonal gate-level layout return type.
- Template parameter
CartLyt
: Input Cartesian gate-level layout type.
- Parameter
lyt
: 2DDWave-clocked Cartesian gate-level layout to hexagonalize.
- Parameter
params
: Parameters.
- Parameter
stats
: Statistics.
- Returns:
Hexagonal representation of the Cartesian layout.
- Template parameter