FCN Cell Technologies

Header: fiction/technology/cell_technologies.hpp

Supported technological implementations of the FCN concept. Each has its own set of cell types and properties.

Quantum-dot Cellular Automata (QCA)

struct qca_technology

Quantum-dot Cellular Automata (QCA) technology implementation of the FCN concept.

Public Types

enum cell_type

Possible types of QCA cells.

Values:

enumerator EMPTY

Symbol used for empty QCA cells.

enumerator NORMAL

Symbol used for normal QCA cells.

enumerator INPUT

Symbol used for input QCA cells.

enumerator OUTPUT

Symbol used for output QCA cells.

enumerator CONST_0

Symbol used for constant 0 input QCA cells.

enumerator CONST_1

Symbol used for constant 1 input QCA cells.

enum class cell_mode : uint8_t

Possible cell modes for QCA cells.

Values:

enumerator NORMAL
enumerator ROTATED
enumerator VERTICAL
enumerator CROSSOVER
enum class cell_mark : uint8_t

Possible marks to be applied to a cell to change its type.

Values:

enumerator EMPTY
enumerator INPUT
enumerator OUTPUT

Public Static Attributes

static constexpr uint64_t CELL_WIDTH = 18ul

Default width of a QCA cell in QCADesigner (https://waluslab.ece.ubc.ca/qcadesigner/).

static constexpr uint64_t CELL_HEIGHT = 18ul

Default height of a QCA cell in QCADesigner.

static constexpr uint64_t CELL_HSPACE = 2ul

Default horizontal spacing between two QCA cells in QCADesigner.

static constexpr uint64_t CELL_VSPACE = 2ul

Default vertical spacing between two QCA cells in QCADesigner.

in-plane Nanomagnet Logic (iNML)

struct inml_technology

in-plane Nanomagnet Logic (iNML) technology implementation of the FCN concept.

Public Types

enum cell_type

Possible types of iNML cells.

Values:

enumerator EMPTY

Symbol used for empty iNML cells.

enumerator NORMAL

Symbol used for normal iNML cells.

enumerator INPUT

Symbol used for input iNML cells.

enumerator OUTPUT

Symbol used for output iNML cells.

enumerator SLANTED_EDGE_UP_MAGNET

Symbol used for upper slanted edge magnets.

enumerator SLANTED_EDGE_DOWN_MAGNET

Symbol used for lower slanted edge magnets.

enumerator INVERTER_MAGNET

Symbol used for inverter magnets.

enumerator CROSSWIRE_MAGNET

Symbol used for cross-wire magnets.

enumerator FANOUT_COUPLER_MAGNET

Symbol used for coupler (fan-out) magnets.

enum class cell_mark : uint8_t

Possible marks to be applied to a cell to change its type.

Values:

enumerator EMPTY
enumerator INPUT
enumerator OUTPUT

Public Static Attributes

static constexpr uint64_t CELL_WIDTH = 50ul

Default width of a iNML cell in NMLSim.

static constexpr uint64_t CELL_HEIGHT = 100ul

Default height of a iNML cell in NMLSim.

static constexpr uint64_t CELL_HSPACE = 10ul

Default horizontal spacing between two iNML cells in NMLSim.

static constexpr uint64_t CELL_VSPACE = 25ul

Default vertical spacing between two iNML cells in NMLSim.

struct cell_mode

iNML cells do not have modes.

Silicon Dangling Bonds (SiDB)

struct sidb_technology

Silicon Dangling Bond (SiDB) technology implementation of the FCN concept.

Public Types

enum cell_type

Possible types of SiDB cells.

Values:

enumerator EMPTY

Symbol used for empty SiDB cells.

enumerator NORMAL

Symbol used for normal SiDB cells.

enumerator INPUT

Symbol used for input SiDB cells.

enumerator OUTPUT

Symbol used for output SiDB cells.

enum class cell_mark : uint8_t

Possible marks to be applied to a cell to change its type.

Values:

enumerator EMPTY
enumerator INPUT
enumerator OUTPUT

Public Static Attributes

static constexpr double CELL_WIDTH = 0.0

Default width of a SiDB in SiQAD (https://github.com/siqad/siqad). Dots are considered to be 0-dimensional entities for simulation purposes.

static constexpr double CELL_HEIGHT = 0.0

Default height of a SiDB in SiQAD. Dots are considered to be 0-dimensional entities for simulation purposes.

static constexpr double CELL_HSPACE = 0.384

Default horizontal spacing between two SiDBs in SiQAD.

static constexpr double CELL_VSPACE = 0.384

Default average vertical spacing between two SiDBs in SiQAD. Depending on whether they are on the same or different dimer rows, SiDBs can be closer together or further apart.

struct cell_mode

SiDB cells do not have modes.