QCA

QCA ONE Library

Header: fiction/technology/qca/qca_one_library.hpp

class qca_one_library : public fiction::fcn::gate_library<qca::layout, 5, 5>

A concrete FCN gate library based on QCA ONE proposed in “A Methodology for Standard Cell Design for QCA” by Dayane Alfenas Reis, Caio Araújo T. Campos, Thiago Rodrigues B. S. Soares, Omar Paranaiba V. Neto, and Frank Sill Torres in IEEE International Symposium on Circuits and Systems, 2016. QCA ONE was originally proposed for the USE clocking scheme. The version used here is an extension to the original QCA ONE by also theoretically allowing multiple wires in the same tile. Furthermore, it can be used for a range of clocking schemes. Tiles in QCA ONE are \(5 \times 5\) QCA cells.

Public Static Functions

template<typename GateLyt>
static inline gate set_up_gate(const GateLyt &lyt, const fiction::layouts::layout_base::coordinate &t)

Overrides the corresponding function in gate_library. Given a tile t, this function takes all necessary information from the stored grid into account to choose the correct gate representation for that tile. May it be a gate or wires. Rotation and special marks like input and output, const cells etc. are computed additionally.

Template Parameters:

GateLyt – Cartesian gate-level layout type.

Parameters:
  • lyt – Layout that hosts tile t.

  • t – Tile to be realized as a QCA ONE gate.

Throws:

fcn::unsupported_gate_type_exception – If a terminal also acts as a fanout. Connect the terminal to a separate fanout wire instead.

Returns:

QCA ONE gate representation of t including I/Os, rotation, const cells, etc.

static inline void post_layout_optimization(qca::layout &lyt)

Post-layout optimization that turns the ends of crossing wires into vias: a crossing-layer cell with at most one neighbor gets the via mode, and a via cell is added below it on the ground layer. The optimization visits occupied cells inside the frame and ignores empty positions.

Parameters:

lyt – The QCA layout that has been created via application of set_up_gate.