SM83 Cells Reference

This document provides information about the cells found in the SM83 CPU core of the Game Boy.

Please report any errors I made here.

Basic logic gates

NOT gates

NOT_A

Simple inverter.

I/ODescription
IN Input to inverter.
Y Outputs inverted IN.

Instances: ZGNA (1 total)

NOT_B

Simple inverter.

I/ODescription
IN Input to inverter.
Y Outputs inverted IN.

Instances: ZUDN (1 total)

NOT_C

Simple inverter.

I/ODescription
IN Input to inverter.
Y Outputs inverted IN.

Instances: YEPJ (1 total)

NOT_D

Simple inverter.

I/ODescription
IN Input to inverter.
Y Outputs inverted IN.

Instances: XURI (1 total)

NOT_E

Simple inverter.

I/ODescription
IN Input to inverter.
Y Outputs inverted IN.

Instances: XWEE (1 total)

NOT_F

Simple inverter.

I/ODescription
IN Input to inverter.
Y Outputs inverted IN.

Instances: XUDO (1 total)

NOT_G

Simple inverter.

I/ODescription
IN Input to inverter.
Y Outputs inverted IN.

Instances: ZKON (1 total)

NOT_X3_P2

Inverter with 3× drive strength and a PMOS-to-NMOS size ratio of 2:1.

I/ODescription
IN Input to inverter.
Y Outputs inverted IN.

Instances: ZJBF (1 total)

NOT_REG

Simple inverter.

I/ODescription
IN Input to inverter.
Y Outputs inverted IN.

Instances: REG_NOT[0], REG_NOT[1], REG_NOT[2], REG_NOT[3], REG_NOT[4], REG_NOT[5], REG_NOT[6], REG_NOT[7] (8 total)

NOT2_IDU

Two simple inverters.

I/ODescription
A_IN Input to inverter A.
A_Y Outputs inverted A_IN.
B_IN Input to inverter B.
B_Y Outputs inverted B_IN.

Instances: IDU_NOT[0], IDU_NOT[1], IDU_NOT[2], IDU_NOT[3], IDU_NOT[4], IDU_NOT[5], IDU_NOT[6], IDU_NOT[7] (8 total)

NOT5_IRQ

Five simple inverters.

I/ODescription
A_IN Input to inverter A.
A_Y Outputs inverted A_IN.
B_IN Input to inverter B.
B_Y Outputs inverted B_IN.
C_IN Input to inverter C.
C_Y Outputs inverted C_IN.
D_IN Input to inverter D.
D_Y Outputs inverted D_IN.
E_IN Input to inverter E.
E_Y Outputs inverted E_IN.

Instances: IRQ_HEAD (1 total)

NOT_REG_WR

Simple inverter.

I/ODescription
IN Input to inverter.
Y Outputs inverted IN.

Instances: REG_C_NOT_WR, REG_D_NOT_WR, REG_IR_NOT_WR, REG_W_NOT_WR, REG_Z_NOT_WR (5 total)

NOT_REG_A_WR

Simple inverter.

I/ODescription
IN Input to inverter.
Y Outputs inverted IN.

Instances: REG_A_NOT_WR (1 total)

NOT_REG_B_WR

Simple inverter.

I/ODescription
IN Input to inverter.
Y Outputs inverted IN.

Instances: REG_B_NOT_WR (1 total)

NOT_REG_H_E_WR

Simple inverter.

I/ODescription
IN Input to inverter.
Y Outputs inverted IN.

Instances: REG_E_NOT_WR, REG_H_NOT_WR (2 total)

NOT_REG_IE_WR

Simple inverter.

I/ODescription
IN Input to inverter.
Y Outputs inverted IN.

Instances: REG_IE_NOT_WR (1 total)

NOT_REG_L_WR

Simple inverter.

I/ODescription
IN Input to inverter.
Y Outputs inverted IN.

Instances: REG_L_NOT_WR (1 total)

NOT_REG_SP_WR

Simple inverter.

I/ODescription
IN Input to inverter.
Y Outputs inverted IN.

Instances: REG_SPH_NOT_WR, REG_SPL_NOT_WR (2 total)

NOT2_REG_PC_WR

Two simple inverters.

I/ODescription
A_IN Input to inverter A.
A_Y Outputs inverted A_IN.
B_IN Input to inverter B.
B_Y Outputs inverted B_IN.

Instances: REG_PCH_NOT_WR, REG_PCL_NOT_WR (2 total)

NOT_ALU_A

Simple inverter.

I/ODescription
IN Input to inverter.
Y Outputs inverted IN.

Instances: ALU_NOT11 (1 total)

NOT_ALU_B

Simple inverter.

I/ODescription
IN Input to inverter.
Y Outputs inverted IN.

Instances: ALU_NOT12 (1 total)

NOT_PCH_X1_ALU

Inverter with precharge.

I/ODescription
IN Input to inverter. Outputs high if PCH is low.
Y Outputs inverted IN.
PCH Active-low precharge input. If low, IN gets driven high for the purpose of precharging the net connected to the input.

Instances: ALU_NOT9 (1 total)

NOT_PCH_X2_ALU

Inverter with precharge. Precharge has 2× drive strength.

I/ODescription
IN Input to inverter. Outputs high if PCH is low.
Y Outputs inverted IN.
PCH Active-low precharge input. If low, IN gets driven high for the purpose of precharging the net connected to the input.

Instances: ALU_NOT1, ALU_NOT2, ALU_NOT3, ALU_NOT4, ALU_NOT5, ALU_NOT6, ALU_NOT7, ALU_NOT8, ALU_NOT10 (9 total)

NOT_DEC1

Simple inverter.

I/ODescription
IN Input to inverter.
Y Outputs inverted IN.

Instances: DEC1_NOT55, DEC1_NOT56, DEC1_NOT57, DEC1_NOT58, DEC1_NOT59, DEC1_NOT60, DEC1_NOT61, DEC1_NOT62, DEC1_NOT63, DEC1_NOT64, DEC1_NOT65, DEC1_NOT66, DEC1_NOT67, DEC1_NOT68, DEC1_NOT69, DEC1_NOT70, DEC1_NOT71, DEC1_NOT72 (18 total)

NOT_PCH_DEC1

Inverter with precharge.

I/ODescription
IN Input to inverter. Outputs high if PCH is low.
Y Outputs inverted IN.
PCH Active-low precharge input. If low, IN gets driven high for the purpose of precharging the net connected to the input.

Instances: DEC1_NOT54 (1 total)

NOT2_PCH_DEC1

Two inverters with precharge.

I/ODescription
A_IN Input to inverter A. Outputs high if PCH is low.
A_Y Outputs inverted A_IN.
B_IN Input to inverter B. Outputs high if PCH is low.
B_Y Outputs inverted B_IN.
PCH Active-low precharge input. If low, A_IN and B_IN get driven high for the purpose of precharging the nets connected to the inputs.

Instances: DEC1_NOT1, DEC1_NOT2, DEC1_NOT3, DEC1_NOT4, DEC1_NOT5, DEC1_NOT6, DEC1_NOT7, DEC1_NOT8, DEC1_NOT9, DEC1_NOT10, DEC1_NOT11, DEC1_NOT12, DEC1_NOT13, DEC1_NOT14, DEC1_NOT15, DEC1_NOT16, DEC1_NOT17, DEC1_NOT18, DEC1_NOT19, DEC1_NOT20, DEC1_NOT21, DEC1_NOT22, DEC1_NOT23, DEC1_NOT24, DEC1_NOT25, DEC1_NOT26, DEC1_NOT27, DEC1_NOT28, DEC1_NOT29, DEC1_NOT30, DEC1_NOT31, DEC1_NOT32, DEC1_NOT33, DEC1_NOT34, DEC1_NOT35, DEC1_NOT36, DEC1_NOT37, DEC1_NOT38, DEC1_NOT39, DEC1_NOT40, DEC1_NOT41, DEC1_NOT42, DEC1_NOT43, DEC1_NOT44, DEC1_NOT45, DEC1_NOT46, DEC1_NOT47, DEC1_NOT48, DEC1_NOT49, DEC1_NOT50, DEC1_NOT51, DEC1_NOT52, DEC1_NOT53 (53 total)

NOT_X1_DEC2

Simple inverter.

I/ODescription
IN Input to inverter.
Y Outputs inverted IN.

Instances: DEC2_NOT1, DEC2_NOT2, DEC2_NOT3, DEC2_NOT4, DEC2_NOT5, DEC2_NOT9, DEC2_NOT10, DEC2_NOT11, DEC2_NOT12, DEC2_NOT13, DEC2_NOT14, DEC2_NOT15, DEC2_NOT16, DEC2_NOT19, DEC2_NOT20, DEC2_NOT22, DEC2_NOT23, DEC2_NOT24, DEC2_NOT25, DEC2_NOT26, DEC2_NOT27, DEC2_NOT28, DEC2_NOT29, DEC2_NOT30, DEC2_NOT31 (25 total)

NOT_X1_P2_DEC2

Inverter with 2× PMOS drive strength.

I/ODescription
IN Input to inverter.
Y Outputs inverted IN.

Instances: DEC2_NOT7, DEC2_NOT8, DEC2_NOT17, DEC2_NOT18 (4 total)

NOT_X1_PCH_DEC2

Inverter with precharge.

I/ODescription
IN Input to inverter. Outputs high if PCH is low.
Y Outputs inverted IN.
PCH Active-low precharge input. If low, IN gets driven high for the purpose of precharging the net connected to the input.

Instances: DEC2_NOT21 (1 total)

NOT_X2_DEC2

Inverter with 2× drive strength.

I/ODescription
IN Input to inverter.
Y Outputs inverted IN.

Instances: DEC2_NOT6 (1 total)

NOT_DEC3

Simple inverter.

I/ODescription
IN Input to inverter.
Y Outputs inverted IN.

Instances: DEC3_NOT68 (1 total)

NOT_PCH_DEC3_A

Inverter with precharge.

I/ODescription
IN Input to inverter. Outputs high if PCH is low.
Y Outputs inverted IN.
PCH Active-low precharge input. If low, IN gets driven high for the purpose of precharging the net connected to the input.

Instances: DEC3_NOT1, DEC3_NOT2, DEC3_NOT3, DEC3_NOT4, DEC3_NOT5, DEC3_NOT6, DEC3_NOT7, DEC3_NOT8, DEC3_NOT9, DEC3_NOT10, DEC3_NOT11, DEC3_NOT12, DEC3_NOT13, DEC3_NOT14, DEC3_NOT15, DEC3_NOT17, DEC3_NOT18, DEC3_NOT19, DEC3_NOT20, DEC3_NOT21, DEC3_NOT22, DEC3_NOT25, DEC3_NOT32, DEC3_NOT33, DEC3_NOT42, DEC3_NOT43, DEC3_NOT44, DEC3_NOT45, DEC3_NOT46, DEC3_NOT53, DEC3_NOT58, DEC3_NOT59, DEC3_NOT60, DEC3_NOT61, DEC3_NOT62, DEC3_NOT63, DEC3_NOT64, DEC3_NOT65, DEC3_NOT66, DEC3_NOT67 (40 total)

NOT_PCH_DEC3_A2

Inverter with precharge.

I/ODescription
IN Input to inverter. Outputs high if PCH is low.
Y Outputs inverted IN.
PCH Active-low precharge input. If low, IN gets driven high for the purpose of precharging the net connected to the input.

Instances: DEC3_NOT24, DEC3_NOT31, DEC3_NOT37 (3 total)

NOT_PCH_DEC3_B

Inverter with precharge.

I/ODescription
IN Input to inverter. Outputs high if PCH is low.
Y Outputs inverted IN.
PCH Active-low precharge input. If low, IN gets driven high for the purpose of precharging the net connected to the input.

Instances: DEC3_NOT16, DEC3_NOT30, DEC3_NOT49, DEC3_NOT50, DEC3_NOT51, DEC3_NOT52, DEC3_NOT56 (7 total)

NOT_PCH_DEC3_B2

Inverter with precharge.

I/ODescription
IN Input to inverter. Outputs high if PCH is low.
Y Outputs inverted IN.
PCH Active-low precharge input. If low, IN gets driven high for the purpose of precharging the net connected to the input.

Instances: DEC3_NOT29, DEC3_NOT38, DEC3_NOT39, DEC3_NOT40, DEC3_NOT41 (5 total)

NOT_P2_DEC3_A

Inverter with 2× PMOS drive strength.

I/ODescription
IN Input to inverter.
Y Outputs inverted IN.

Instances: DEC3_NOT69, DEC3_NOT70, DEC3_NOT73, DEC3_NOT74 (4 total)

NOT_P2_DEC3_B

Inverter with 2× PMOS drive strength.

I/ODescription
IN Input to inverter.
Y Outputs inverted IN.

Instances: DEC3_NOT71, DEC3_NOT72 (2 total)

NOT_P2_PCH_DEC3

Inverter with 2× PMOS drive strength, and precharge.

I/ODescription
IN Input to inverter. Outputs high if PCH is low.
Y Outputs inverted IN.
PCH Active-low precharge input. If low, IN gets driven high for the purpose of precharging the net connected to the input.

Instances: DEC3_NOT23, DEC3_NOT26, DEC3_NOT27, DEC3_NOT28, DEC3_NOT34, DEC3_NOT35, DEC3_NOT36, DEC3_NOT47, DEC3_NOT48, DEC3_NOT54, DEC3_NOT55, DEC3_NOT57 (12 total)

NOT_DBUS

Simple inverter.

I/ODescription
IN Input to inverter.
Y Outputs inverted IN.

Instances: DBUS_NOT[0], DBUS_NOT[1], DBUS_NOT[2], DBUS_NOT[3], DBUS_NOT[4], DBUS_NOT[5], DBUS_NOT[6], DBUS_NOT[7] (8 total)

BUF gates

BUF_DEC2

Simple buffer.

I/ODescription
IN Input to buffer.
Y Outputs IN.

Instances: DEC2_BUF1, DEC2_BUF2, DEC2_BUF3, DEC2_BUF4, DEC2_BUF5, DEC2_BUF6, DEC2_BUF7, DEC2_BUF8 (8 total)

NAND gates

NAND2_A

NAND gate with two inputs.

I/ODescription
IN1, IN2 Inputs to NAND gate.
Y Outputs !(IN1 && IN2).

Instances: ZOXC (1 total)

NAND2_B

NAND gate with two inputs.

I/ODescription
IN1, IN2 Inputs to NAND gate.
Y Outputs !(IN1 && IN2).

Instances: ZZOM (1 total)

NAND2_C

NAND gate with two inputs.

I/ODescription
IN1, IN2 Inputs to NAND gate.
Y Outputs !(IN1 && IN2).

Instances: ZAOC (1 total)

NAND2_D

NAND gate with two inputs.

I/ODescription
IN1, IN2 Inputs to NAND gate.
Y Outputs !(IN1 && IN2).

Instances: ZIKS (1 total)

NAND2_IN1_N_A

NAND gate with two inputs, one of them inverted.

I/ODescription
IN1 Inverted input to NAND gate.
IN2 Non-inverted input to NAND gate.
Y Outputs !(!IN1 && IN2).

Instances: WERF (1 total)

NAND2_IN1_N_B

NAND gate with two inputs, one of them inverted.

I/ODescription
IN1 Inverted input to NAND gate.
IN2 Non-inverted input to NAND gate.
Y Outputs !(!IN1 && IN2).

Instances: WEEN (1 total)

NAND2_IN1_N_C

NAND gate with two inputs, one of them inverted.

I/ODescription
IN1 Inverted input to NAND gate.
IN2 Non-inverted input to NAND gate.
Y Outputs !(!IN1 && IN2).

Instances: WUDZ (1 total)

NAND2_NAND3_OD_IRQ

NAND gate with two inputs and open-drain NAND gate with three inputs.

I/ODescription
A_IN1, A_IN2 Inputs to NAND gate A.
A_Y Outputs !(A_IN1 && A_IN2).
B_IN1, B_IN2, B_IN3 Inputs to NAND gate B.
B_Y Open-drain output. Outputs !(B_IN1 && B_IN2 && B_IN3).

Instances: IRQ_NAND2_NAND3[0], IRQ_NAND2_NAND3[1], IRQ_NAND2_NAND3[2], IRQ_NAND2_NAND3[3], IRQ_NAND2_NAND3[4], IRQ_NAND2_NAND3[5], IRQ_NAND2_NAND3[6], IRQ_NAND2_NAND3[7] (8 total)

REG_A_OUT

Output drivers for A registers.

I/ODescription
A_ENA Input to NAND gate A.
B_ENA Input to NAND gate B.
IN Input to both NAND gates.
A_Y Open-drain output. Outputs !(A_ENA && IN).
B_Y Open-drain output. Outputs !(B_ENA && IN).

Instances: REG_A_OUT[0], REG_A_OUT[1], REG_A_OUT[2], REG_A_OUT[3], REG_A_OUT[4], REG_A_OUT[5], REG_A_OUT[6], REG_A_OUT[7] (8 total)

NAND2_OD_A_DBUS

Open-drain NAND gate with two inputs.

I/ODescription
IN1, IN2 Inputs to NAND gate.
Y Open-drain output. Outputs !(IN1 && IN2).

Instances: DBUS_NAND[0], DBUS_NAND[2], DBUS_NAND[4], DBUS_NAND[6] (4 total)

NAND2_OD_B_DBUS

Open-drain NAND gate with two inputs.

I/ODescription
IN1, IN2 Inputs to NAND gate.
Y Open-drain output. Outputs !(IN1 && IN2).

Instances: DBUS_NAND[1], DBUS_NAND[3], DBUS_NAND[5], DBUS_NAND[7] (4 total)

NAND2_SPARE

NAND gate with two inputs.

There is one external connection always made on this cell (see orange line in the picture) that is required to connect the two Y outputs.

I/ODescription
IN1, IN2 Inputs to NAND gate.
Y Outputs !(IN1 && IN2).

Instances: SPARE_NAND (1 total)

NOR gates

NOR2_A

NOR gate with two inputs.

I/ODescription
IN1, IN2 Inputs to NOR gate.
Y Outputs !(IN1 || IN2).

Instances: ZOWA (1 total)

NOR2_B

NOR gate with two inputs.

I/ODescription
IN1, IN2 Inputs to NOR gate.
Y Outputs !(IN1 || IN2).

Instances: ZWLM (1 total)

NOR2_C

NOR gate with two inputs.

I/ODescription
IN1, IN2 Inputs to NOR gate.
Y Outputs !(IN1 || IN2).

Instances: YNIU (1 total)

NOR2_D

NOR gate with two inputs.

I/ODescription
IN1, IN2 Inputs to NOR gate.
Y Outputs !(IN1 || IN2).

Instances: WAGR (1 total)

NOR2_E

NOR gate with two inputs.

I/ODescription
IN1, IN2 Inputs to NOR gate.
Y Outputs !(IN1 || IN2).

Instances: WAFR (1 total)

NOR2_F

NOR gate with two inputs.

I/ODescription
IN1, IN2 Inputs to NOR gate.
Y Outputs !(IN1 || IN2).

Instances: ZHZO (1 total)

NOR2_IN2_N

NOR gate with two inputs, one of them inverted.

I/ODescription
IN1 Non-inverted input to NOR gate.
IN2 Inverted input to NOR gate.
Y Outputs !(IN1 || !IN2).

Instances: YOLU (1 total)

NOR4_IN2_N_IN4_N

NOR gate with four inputs, two of them inverted.

I/ODescription
IN1, IN3 Non-inverted inputs to NOR gate.
IN2, IN4 Inverted inputs to NOR gate.
Y Outputs !(IN1 || !IN2 || IN3 || !IN4).

Instances: ZAIJ (1 total)

NOR2_PCH_IN1_DEC3

NOR gate with two inputs and precharge on input 1.

I/ODescription
IN1 Input to NOR gate. Outputs high if PCH is low.
IN2 Input to NOR gate.
Y Outputs !(IN1 || IN2).
PCH Active-low precharge input. If low, IN1 gets driven high for the purpose of precharging the net connected to the input.

Instances: DEC3_NOR1, DEC3_NOR2 (2 total)

NOR8_ALU

NOR gate with eight inputs.

I/ODescription
IN1, IN2, IN3, IN4, IN5, IN6, IN7, IN8 Inputs to NOR gate.
Y Outputs !(IN1 || IN2 || IN3 || IN4 || IN5 || IN6 || IN7 || IN8).

Instances: ALU_ZGEN (1 total)

NOR2_SPARE

NOR gate with two inputs.

I/ODescription
IN1, IN2 Inputs to NOR gate.
Y Outputs !(IN1 || IN2).

Instances: SPARE_NOR (1 total)

AND gates

AND2

AND gate with two inputs.

I/ODescription
IN1, IN2 Inputs to AND gate.
Y Outputs (IN1 && IN2).

Instances: ZIUL (1 total)

AND3

AND gate with three inputs.

I/ODescription
IN1, IN2, IN3 Inputs to AND gate.
Y Outputs (IN1 && IN2 && IN3).

Instances: ZYOC (1 total)

AND2_IN1_N_TAP_IN1

AND gate with two inputs, inverted first input, and tap after inversion of first input.

I/ODescription
IN1 Inverted input to AND gate.
IN2 Non-inverted input to AND gate.
Y Outputs (!IN1 && IN2).
TAP_IN1 Outputs inverted IN1.

Instances: VEQU (1 total)

AND2_REG

AND gate with two inputs.

I/ODescription
IN1, IN2 Inputs to AND gate.
Y Outputs (IN1 && IN2).

Instances: REG_AND (1 total)

AND2_AND3_REG

Group of two AND gates with two and three inputs.

I/ODescription
A_IN1, A_IN2 Inputs to AND gate A.
A_Y Outputs (A_IN1 && A_IN2).
B_IN1, B_IN2, B_IN3 Inputs to AND gate B.
B_Y Outputs (B_IN1 && B_IN2 && B_IN3).

Instances: REG_AND2_AND3 (1 total)

AND2_ALU

AND gate with two inputs.

I/ODescription
IN1, IN2 Inputs to AND gate.
Y Outputs (IN1 && IN2).

Instances: ALU_AND[0], ALU_AND[1], ALU_AND[2], ALU_AND[3], ALU_AND[4], ALU_AND[5], ALU_AND[6], ALU_AND[7] (8 total)

OR gates

OR2_A

OR gate with two inputs.

I/ODescription
IN1, IN2 Inputs to OR gate.
Y Outputs (IN1 || IN2).

Instances: ZNDA (1 total)

OR2_B

OR gate with two inputs.

I/ODescription
IN1, IN2 Inputs to OR gate.
Y Outputs (IN1 || IN2).

Instances: ZFEX (1 total)

OR3_A

OR gate with three inputs.

I/ODescription
IN1, IN2, IN3 Inputs to OR gate.
Y Outputs (IN1 || IN2 || IN3).

Instances: YNOZ (1 total)

OR3_B

OR gate with three inputs.

I/ODescription
IN1, IN2, IN3 Inputs to OR gate.
Y Outputs (IN1 || IN2 || IN3).

Instances: YCNF (1 total)

OR2_TAP_NOR_TAP_IN1_N_REG

OR gate with two inputs, tap on intermediate NOR, and inverting tap on IN1.

I/ODescription
IN1 Input to OR gate and inverter.
IN2 Input to OR gate.
Y Outputs (IN1 || IN2).
TAP_NOR Outputs !(IN1 || IN2).
TAP_IN1 Outputs inverted IN1.

Instances: REG_OR (1 total)

XOR gates

XOR_IDU_H

XOR gate with two inputs.

There is one external connection always made on this cell (see orange line in the picture) that is required to connect the two IN1 inputs.

I/ODescription
IN1, IN2 Inputs to XOR gate. There are two IN1 inputs to this cell, which are externally connected to each other (indicated by the orange line in the picture).
Y Outputs (IN1 ^ IN2).

Instances: IDU_XOR_H[0], IDU_XOR_H[1], IDU_XOR_H[2], IDU_XOR_H[3], IDU_XOR_H[4], IDU_XOR_H[5], IDU_XOR_H[6], IDU_XOR_H[7] (8 total)

XOR_IDU_L

XOR gate with two inputs.

I/ODescription
IN1, IN2 Inputs to XOR gate.
Y Outputs (IN1 ^ IN2).

Instances: IDU_XOR_L[0], IDU_XOR_L[1], IDU_XOR_L[2], IDU_XOR_L[3], IDU_XOR_L[4], IDU_XOR_L[5], IDU_XOR_L[6], IDU_XOR_L[7] (8 total)

Compound logic gates

AOI21_A

2-1 AND-OR-INVERT two-level compound gate.

I/ODescription
IN1, IN2 Inputs to AND gate.
IN3 Input to OR gate.
Y Outputs !((IN1 && IN2) || IN3).

Instances: YNEU (1 total)

AOI21_B

2-1 AND-OR-INVERT two-level compound gate.

I/ODescription
IN1, IN2 Inputs to AND gate.
IN3 Input to OR gate.
Y Outputs !((IN1 && IN2) || IN3).

Instances: XTIP (1 total)

AOI331_S3

3-3-1 AND-OR-INVERT two-level compound gate with shared IN3.

I/ODescription
IN1, IN2, IN3, IN4, IN5 Inputs to AND gates.
IN6 Input to OR gate.
Y Outputs !((IN1 && IN2 && IN3) || (IN4 && IN5 && IN3) || IN6).

Instances: ZWUU (1 total)

AO221_XOR_IN4_S1

2-2-1 AND-OR two-level compound gate with XOR gate feeding IN4, and shared IN1 between both gates. The XOR gate in this cell functions as the sum generator of the carry lookahead adder (CLA).

I/ODescription
IN1 Shared input to XOR gate and first AND gate.
IN2, IN3 Inputs to AND gates.
IN4 Input to XOR gate.
IN5 Input to OR gate.
Y Outputs ((IN1 && IN2) || (IN3 && (IN1 ^ IN4)) || IN5).

Instances: ALU_RESULT[0], ALU_RESULT[1], ALU_RESULT[2], ALU_RESULT[3], ALU_RESULT[4], ALU_RESULT[5], ALU_RESULT[6], ALU_RESULT[7] (8 total)

AO31_IN3_N

3-1 AND-OR two-level compound gate with inverted third input.

I/ODescription
IN1, IN2 Non-inverted inputs to AND gate.
IN3 Inverted input to AND gate.
IN4 Input to OR gate.
Y Outputs ((IN1 && IN2 && !IN3) || IN4).

Instances: XOGS (1 total)

AO33_S3_TAP_IN1_N

3-3 AND-OR two-level compound gate with shared IN3, and inverting tap on IN1.

I/ODescription
IN1, IN2, IN3, IN4, IN5 Inputs to AND gates.
Y Outputs ((IN1 && IN2 && IN3) || (IN4 && IN5 && IN3)).
TAP_IN1 Outputs inverted IN1.

Instances: ZBPP (1 total)

OAI21

2-1 OR-AND-INVERT two-level compound gate.

I/ODescription
IN1, IN2 Inputs to OR gate.
IN3 Input to AND gate.
Y Outputs !((IN1 || IN2) && IN3).

Instances: YKUA (1 total)

OA21

2-1 OR-AND two-level compound gate.

I/ODescription
IN1, IN2 Inputs to OR gate.
IN3 Input to AND gate.
Y Outputs ((IN1 || IN2) && IN3).

Instances: WDIN (1 total)

OA21_REG

2-1 OR-AND two-level compound gate.

I/ODescription
IN1, IN2 Inputs to OR gate.
IN3 Input to AND gate.
Y Outputs ((IN1 || IN2) && IN3).

Instances: REG_OA1, REG_OA2 (2 total)

OA211_IN1_N_IN3_N

2-1-1 OR-AND two-level compound gate with inverted IN1 and IN3.

I/ODescription
IN1 Inverted input to OR gate.
IN2 Non-inverted input to OR gate.
IN3 Inverted input to AND gate.
IN4 Non-inverted input to AND gate.
Y Outputs ((!IN1 || IN2) && !IN3 && IN4).

Instances: ZLYZ (1 total)

MUX_IDU_H

Multiplexer with two inputs.

There is one external connection always made on this cell (see orange line in the picture) that is required to connect the two SEL inputs.

I/ODescription
D0, D1 Data inputs.
SEL Select input. There are two SEL inputs to this cell, which are externally connected to each other (indicated by the orange line in the picture).
Y Outputs D1 if SEL is high; outputs D0 if SEL is low.

Instances: IDU_MUX_H[0], IDU_MUX_H[1], IDU_MUX_H[2], IDU_MUX_H[3], IDU_MUX_H[4], IDU_MUX_H[5], IDU_MUX_H[6], IDU_MUX_H[7] (8 total)

MUX_IDU_L

Multiplexer with two inputs.

There is one external connection always made on this cell (see orange line in the picture) that is required to connect the two SEL inputs.

I/ODescription
D0, D1 Data inputs.
SEL Select input. There are two SEL inputs to this cell, which are externally connected to each other (indicated by the orange line in the picture).
Y Outputs D1 if SEL is high; outputs D0 if SEL is low.

Instances: IDU_MUX_L[0], IDU_MUX_L[1], IDU_MUX_L[2], IDU_MUX_L[3], IDU_MUX_L[4], IDU_MUX_L[5], IDU_MUX_L[6], IDU_MUX_L[7] (8 total)

Mixed logic cells

ALU_CGEN

Logic for generating carry signals for the CLA (carry lookahead adder).

The Pn and Gn inputs each consist of two ports that must be externally connected.

This cell must be fed with valid P/G (propagate/generate) signals, otherwise it can short circuit internally, because the NMOS and PMOS networks are not complementary. The signals are valid if Pn = An || Bn, and Gn = An && Bn; when An and Bn are the two operands of a sum operation.

I/ODescription
P0, P1, P2, P3 Inputs for propagate signals.
G0, G1, G2, G3 Inputs for generate signals.
CIN Input carry signal.
COUT0, COUT1, COUT2, COUT3 Output carry signals.

Instances: ALU_CGEN_L, ALU_CGEN_H (2 total)

ALU_PGGEN

Logic for generating P/G (propagate/generate) signals for the CLA (carry lookahead adder).

This cell contains a lot of other logic. The P/G signals are just two tap outputs.

I/ODescription
XOR_IN1, XOR_IN2 Inputs to XOR gate.
AND_OR_IN2 Shared second input for (N)AND and OR gates.
AO221_IN2, AO221_IN3 Inputs to AND gates of AO221 compound gate.
PCH Active-low precharge input. If PCH is low then AO221_IN5 is driven high for the purpose of precharging the net at the input.
AO221_IN5 Input to OR gate of AO221 compound gate. Outputs high if PCH is low.
TAP_XOR Outputs (XOR_IN1 ^ XOR_IN2).
TAP_NAND Outputs !((XOR_IN1 ^ XOR_IN2) && AND_OR_IN2).
TAP_AND Outputs ((XOR_IN1 ^ XOR_IN2) && AND_OR_IN2). This output is used as generate signal for carry generation.
TAP_OR Outputs ((XOR_IN1 ^ XOR_IN2) || AND_OR_IN2). This output is used as propagate signal for carry generation.
Y Outputs ((TAP_AND && AO221_IN2) || (AO221_IN3 && TAP_OR) || !AO221_IN5).

Instances: ALU_PGGEN[0], ALU_PGGEN[1], ALU_PGGEN[2], ALU_PGGEN[3], ALU_PGGEN[4], ALU_PGGEN[5], ALU_PGGEN[6], ALU_PGGEN[7] (8 total)

B2B_WAND_INJ_A

Bidirectional bus bridge with wired-AND behavior (open-drain), active-low output enable, active-low precharge, and open-drain injector on side A.

I/ODescription
A Bidirectional port to bus A. If PCH is high and INJ_EN is low, then A is driven high. If OE and B are both low and PCH is high, then A is driven low. If INJ_EN and PCH are both high and INJ_D is low, then A is driven low.
B Bidirectional port to bus B. If PCH is high and OE is low, then B is driven high. If OE and A are both low and PCH is high, then B is driven low.
OE Active-low bridge enable input. If OE is low and PCH is high, then a low state on any of the two ports A or B will cause both ports A and B to be actively driven low until OE gets released.
PCH Active-low precharge input. If PCH is low and OE is high, then port A is driven high. If PCH and OE both are low, then both ports A and B are driven high. INJ_EN must be low while PCH is low, otherwise the PMOS and NMOS drivers on port A will short circuit.
INJ_D Injector data input. If INJ_D is low and INJ_EN is high, then port A is driven low.
INJ_EN Active-high injector enable input. If INJ_EN is high and INJ_D is low, then port A is driven low. PCH must be high while INJ_EN is high, otherwise the PMOS and NMOS drivers on port A will short circuit.

Instances: DBUS_BRIDGE[0], DBUS_BRIDGE[1], DBUS_BRIDGE[2], DBUS_BRIDGE[3], DBUS_BRIDGE[4], DBUS_BRIDGE[5], DBUS_BRIDGE[6], DBUS_BRIDGE[7] (8 total)

IDU_BIT0

Bits 0 and 8 of the 16 bit increment/decrement unit.

I/ODescription
  TODO: Describe I/Os

Instances: IDU[0] (1 total)

IDU_BIT123456

Bits 1-6 and 9-14 of the 16 bit increment/decrement unit.

I/ODescription
  TODO: Describe I/Os

Instances: IDU[1] IDU[2] IDU[3] IDU[4] IDU[5] IDU[6] (6 total)

IDU_BIT7

Bits 7 and 15 of the 16 bit increment/decrement unit.

I/ODescription
  TODO: Describe I/Os

Instances: IDU[7] (1 total)

IDU_IRQ_CTL

Logic for increment/decrement unit and interrupts.

I/ODescription
  TODO: Describe I/Os

Instances: IDU_IRQ_CTL (1 total)

IRQ_PRIO_BIT0

Interrupt priority decoding and other interrupt related logic.

I/ODescription
  TODO: Describe I/Os

Instances: IRQ_PRIO[0] (1 total)

IRQ_PRIO_BIT1

Interrupt priority decoding and other interrupt related logic.

I/ODescription
  TODO: Describe I/Os

Instances: IRQ_PRIO[1] (1 total)

IRQ_PRIO_BIT2

Interrupt priority decoding and other interrupt related logic.

I/ODescription
  TODO: Describe I/Os

Instances: IRQ_PRIO[2] (1 total)

IRQ_PRIO_BIT3

Interrupt priority decoding and other interrupt related logic.

I/ODescription
  TODO: Describe I/Os

Instances: IRQ_PRIO[3] (1 total)

IRQ_PRIO_BIT4

Interrupt priority decoding and other interrupt related logic.

I/ODescription
  TODO: Describe I/Os

Instances: IRQ_PRIO[4] (1 total)

IRQ_PRIO_BIT5

Interrupt priority decoding and other interrupt related logic.

I/ODescription
  TODO: Describe I/Os

Instances: IRQ_PRIO[5] (1 total)

IRQ_PRIO_BIT6

Interrupt priority decoding and other interrupt related logic.

I/ODescription
  TODO: Describe I/Os

Instances: IRQ_PRIO[6] (1 total)

IRQ_PRIO_BIT7

Interrupt priority decoding and other interrupt related logic.

I/ODescription
  TODO: Describe I/Os

Instances: IRQ_PRIO[7] (1 total)

REG_BC_OUT

Output drivers for BC registers.

I/ODescription
B_IN Input to NAND gate B and AOI gate.
C_IN Input to NAND gate C and AOI gate.
ENA1 Input to both NAND gates.
B_ENA2, C_ENA2 Inputs to AOI gate.
B_Y1 Open-drain output. Outputs !(ENA1 && B_IN).
C_Y1 Open-drain output. Outputs !(ENA1 && C_IN).
Y2 Open-drain output. Outputs !((B_ENA2 && B_IN) || (C_ENA2 && C_IN)).

Instances: REG_BC_OUT[0], REG_BC_OUT[1], REG_BC_OUT[2], REG_BC_OUT[3], REG_BC_OUT[4], REG_BC_OUT[5], REG_BC_OUT[6], REG_BC_OUT[7] (8 total)

REG_BUS_PCH_A_BIT0123

Precharger and zero output for register busses bits 0-3.

There is one external connection always made on this cell (see orange line in the picture) that is required to connect the two PCH inputs.

I/ODescription
PCH Active-low precharge input. If low, outputs A_Y, B_Y and C_Y get driven high for the purpose of precharging their respective nets. There are two PCH inputs to this cell, which are externally connected to each other (indicated by the orange line in the picture).
C_ZERO If C_ZERO and PCH are both high, C_Y outputs 0.
A_Y Open-source output. Outputs high if PCH is low.
B_Y Open-source output. Outputs high if PCH is low.
B_Y Outputs inverted B_Y.
C_Y Outputs low if C_ZERO and PCH are both high. Outputs high if PCH is low.
C_Y Outputs inverted C_Y.

Instances: REG_BUS_PCH_A[0], REG_BUS_PCH_A[1], REG_BUS_PCH_A[2], REG_BUS_PCH_A[3] (4 total)

REG_BUS_PCH_A_BIT4

Precharger and zero output for register busses bit 4.

There is one external connection always made on this cell (see orange line in the picture) that is required to connect the two PCH inputs.

I/ODescription
PCH Active-low precharge input. If low, outputs A_Y, B_Y and C_Y get driven high for the purpose of precharging their respective nets. There are two PCH inputs to this cell, which are externally connected to each other (indicated by the orange line in the picture).
C_ZERO_A If C_ZERO_A and PCH are both high, C_Y outputs 0.
C_ZERO_B1, C_ZERO_B2 If C_ZERO_B1, C_ZERO_B2 and PCH are high, C_Y outputs 0.
A_Y Open-source output. Outputs high if PCH is low.
B_Y Open-source output. Outputs high if PCH is low.
B_Y Outputs inverted B_Y.
C_Y Outputs low if ((C_ZERO_A || (C_ZERO_B1 && C_ZERO_B2)) && PCH) is true. Outputs high if PCH is low.
C_Y Outputs inverted C_Y.

Instances: REG_BUS_PCH_A[4] (1 total)

REG_BUS_PCH_A_BIT5

Precharger and zero output for register busses bit 5.

There is one external connection always made on this cell (see orange line in the picture) that is required to connect the two PCH inputs.

I/ODescription
PCH Active-low precharge input. If low, outputs A_Y, B_Y and C_Y get driven high for the purpose of precharging their respective nets. There are two PCH inputs to this cell, which are externally connected to each other (indicated by the orange line in the picture).
C_ZERO_A If C_ZERO_A and PCH are both high, C_Y outputs 0.
C_ZERO_B1, C_ZERO_B2 If C_ZERO_B1, C_ZERO_B2 and PCH are high, C_Y outputs 0.
A_Y Open-source output. Outputs high if PCH is low.
B_Y Open-source output. Outputs high if PCH is low.
B_Y Outputs inverted B_Y.
C_Y Outputs low if ((C_ZERO_A || (C_ZERO_B1 && C_ZERO_B2)) && PCH) is true. Outputs high if PCH is low.
C_Y Outputs inverted C_Y.

Instances: REG_BUS_PCH_A[5] (1 total)

REG_BUS_PCH_A_BIT6

Precharger and zero output for register busses bit 6.

There is one external connection always made on this cell (see orange line in the picture) that is required to connect the two PCH inputs.

I/ODescription
PCH Active-low precharge input. If low, outputs A_Y, B_Y and C_Y get driven high for the purpose of precharging their respective nets. There are two PCH inputs to this cell, which are externally connected to each other (indicated by the orange line in the picture).
C_ZERO_A If C_ZERO_A and PCH are both high, C_Y outputs 0.
C_ZERO_B1, C_ZERO_B2 If C_ZERO_B1, C_ZERO_B2 and PCH are high, C_Y outputs 0.
A_Y Open-source output. Outputs high if PCH is low.
B_Y Open-source output. Outputs high if PCH is low.
B_Y Outputs inverted B_Y.
C_Y Outputs low if ((C_ZERO_A || (C_ZERO_B1 && C_ZERO_B2)) && PCH) is true. Outputs high if PCH is low.
C_Y Outputs inverted C_Y.

Instances: REG_BUS_PCH_A[6] (1 total)

REG_BUS_PCH_A_BIT7

Precharger and zero output for register busses bit 7.

There is one external connection always made on this cell (see orange line in the picture) that is required to connect the two PCH inputs.

I/ODescription
PCH Active-low precharge input. If low, outputs A_Y, B_Y and C_Y get driven high for the purpose of precharging their respective nets. There are two PCH inputs to this cell, which are externally connected to each other (indicated by the orange line in the picture).
C_ZERO_A If C_ZERO_A and PCH are both high, C_Y outputs 0.
C_ZERO_B1, C_ZERO_B2 If C_ZERO_B1, C_ZERO_B2 and PCH are high, C_Y outputs 0.
A_Y Open-source output. Outputs high if PCH is low.
B_Y Open-source output. Outputs high if PCH is low.
B_Y Outputs inverted B_Y.
C_Y Outputs low if ((C_ZERO_A || (C_ZERO_B1 && C_ZERO_B2)) && PCH) is true. Outputs high if PCH is low.
C_Y Outputs inverted C_Y.

Instances: REG_BUS_PCH_A[7] (1 total)

REG_BUS_PCH_B

Precharger for register busses.

I/ODescription
PCH Active-low precharge input. If low, outputs A_Y and B_Y get driven high for the purpose of precharging their respective nets.
A_Y Open-source output. Outputs high if PCH is low.
B_Y Open-source output. Outputs high if PCH is low.

Instances: REG_BUS_PCH_B[0], REG_BUS_PCH_B[1], REG_BUS_PCH_B[2], REG_BUS_PCH_B[3], REG_BUS_PCH_B[4], REG_BUS_PCH_B[5], REG_BUS_PCH_B[6], REG_BUS_PCH_B[7] (8 total)

REG_DE_OUT

Output drivers for DE registers.

I/ODescription
D_IN Input to NAND gate D and AOI gate.
E_IN Input to NAND gate E and AOI gate.
ENA1 Input to both NAND gates.
D_ENA2, E_ENA2 Inputs to AOI gate.
D_ZERO1, D_ZERO2 If D_ZERO1 or D_ZERO2 is high, D_Y1 outputs 0.
D_Y1 Open-drain output. Outputs (!(ENA1 && D_IN) && !D_ZERO1 && !D_ZERO2).
E_Y1 Open-drain output. Outputs !(ENA1 && E_IN).
Y2 Open-drain output. Outputs !((D_ENA2 && D_IN) || (E_ENA2 && E_IN)).

Instances: REG_DE_OUT[0], REG_DE_OUT[1], REG_DE_OUT[2], REG_DE_OUT[3], REG_DE_OUT[4], REG_DE_OUT[5], REG_DE_OUT[6], REG_DE_OUT[7] (8 total)

REG_HL_OUT

Output drivers for HL registers.

I/ODescription
  TODO: Describe I/Os

Instances: REG_HL_OUT[0], REG_HL_OUT[1], REG_HL_OUT[2], REG_HL_OUT[3], REG_HL_OUT[4], REG_HL_OUT[5], REG_HL_OUT[6], REG_HL_OUT[7] (8 total)

REG_PC_OUT_BIT012

Output drivers for PC register bits 0-2.

I/ODescription
  TODO: Describe I/Os

Instances: REG_PC_OUT[0], REG_PC_OUT[1], REG_PC_OUT[2] (3 total)

REG_PC_OUT_BIT345

Output drivers for PC register bits 3-5.

I/ODescription
  TODO: Describe I/Os

Instances: REG_PC_OUT[3], REG_PC_OUT[4], REG_PC_OUT[5] (3 total)

REG_PC_OUT_BIT67

Output drivers for PC register bits 6 and 7.

I/ODescription
  TODO: Describe I/Os

Instances: REG_PC_OUT[6], REG_PC_OUT[7] (2 total)

REG_SP_OUT

Output drivers for SP registers.

I/ODescription
  TODO: Describe I/Os

Instances: REG_SP_OUT[0], REG_SP_OUT[1], REG_SP_OUT[2], REG_SP_OUT[3], REG_SP_OUT[4], REG_SP_OUT[5], REG_SP_OUT[6], REG_SP_OUT[7] (8 total)

REG_WZ_OUT

Output drivers for WZ registers.

I/ODescription
  TODO: Describe I/Os

Instances: REG_WZ_OUT[0], REG_WZ_OUT[1], REG_WZ_OUT[2], REG_WZ_OUT[3], REG_WZ_OUT[4], REG_WZ_OUT[5], REG_WZ_OUT[6], REG_WZ_OUT[7] (8 total)

Storage elements

SRLATCH_R_N

SR-latch with active-high set input and active-low reset input. Reset takes precedence when both inputs are asserted.

I/ODescription
SET Set input. When high, latch is set to 1. Has no effect when RESET is low at the same time.
RESET Inverted reset input. When low, latch is set to 0.
Q Data output.

Instances: ZJJE, ZKOG, ZLOZ, ZOJZ, ZRSY, ZUMN (6 total)

SRLATCH_R_N_ALT

SR-latch with active-high set input and active-low reset input. Reset takes precedence when both inputs are asserted.

I/ODescription
SET Set input. When high, latch is set to 1. Has no effect when RESET is low at the same time.
RESET Inverted reset input. When low, latch is set to 0.
Q Data output.

Instances: YNKW (1 total)

DLATCH_EE_Q

Gated data latch with externally inverted enable inputs and no inverted output.

There are two enable inputs to this cell. They need to be inverted towards each other.

I/ODescription
D Data input.
ENA Active-high enable input. When high, the value at D transparently propagates through the latch. As soon as ENA goes low, the output of the latch gets held at the level it had in that moment until ENA goes high again.
ENA Active-low enable input. Must always be the inverse of ENA.
Q Data output.

Instances: YODP (1 total)

DLATCH_EE_IRQ

Gated data latch with externally inverted enable inputs and additional dynamically controlled inverted output.

There are two enable inputs to this cell. They need to be inverted towards each other.

I/ODescription
D Data input.
ENA Active-high enable input. When high, the value at D transparently propagates through the latch. As soon as ENA goes low, the output of the latch gets held at the level it had in that moment until ENA goes high again.
ENA Active-low enable input. Must always be the inverse of ENA.
Q Data output.
Q Inverted data output.
GATED_Q Dynamically gated inverted data output. Outputs Q when ENA_Q is low, otherwise outputs low. Needs to be precharged regularly by pulling PCH low and making ENA_Q hi-Z at the same time.
ENA_Q Active-low enable input for dynamically gated GATED_Q output. Must be undriven (hi-Z) when PCH is enabled/low.
PCH Active-low precharge input. If low, GATED_Q gets driven low. Must be disabled/high when ENA_Q is enabled/low.

Instances: IRQ_LATCH[0], IRQ_LATCH[1], IRQ_LATCH[2], IRQ_LATCH[3], IRQ_LATCH[4], IRQ_LATCH[5], IRQ_LATCH[6], IRQ_LATCH[7] (8 total)

DFF_CC_Q

Single-edge-triggered data flip-flop with complementary clock inputs and no inverted output.

There are two clock inputs to this cell. They need to be inverted towards each other. The flip-flop triggers on a positive edge of CLK and a negative edge of CLK.

There are two external connections always made on this cell (see pink and orange lines in the picture).

I/ODescription
D Data input. Gets stored in the flip-flop on positive edge of CLK and a simultanious negative edge of CLK.
CLK Positive clock input. On a positive edge the data input D gets stored in the flip-flop. There needs to be a negative edge on the CLK input at the same time. There are two CLK inputs to this cell, which are externally connected to each other (indicated by the orange line in the picture).
CLK Negative clock input. On a negative edge the data input D gets stored in the flip-flop. There needs to be a positive edge on the CLK input at the same time. There are two CLK inputs to this cell, which are externally connected to each other (indicated by the pink line in the picture).
Q Data output.

Instances: XAYM, XDQF, XIRF, XOGS, YDXA, YOII, YSBT, ZACW, ZAZA, ZIVV, ZKAI, ZKDU, ZORP, ZRBY (14 total)

DFF_CC_Q_ALT

Single-edge-triggered data flip-flop with complementary clock inputs and no inverted output.

There are two clock inputs to this cell. They need to be inverted towards each other. The flip-flop triggers on a positive edge of CLK and a negative edge of CLK.

There are two external connections always made on this cell (see pink and orange lines in the picture).

I/ODescription
D Data input. Gets stored in the flip-flop on positive edge of CLK and a simultanious negative edge of CLK.
CLK Positive clock input. On a positive edge the data input D gets stored in the flip-flop. There needs to be a negative edge on the CLK input at the same time. There are two CLK inputs to this cell, which are externally connected to each other (indicated by the orange line in the picture).
CLK Negative clock input. On a negative edge the data input D gets stored in the flip-flop. There needs to be a positive edge on the CLK input at the same time. There are two CLK inputs to this cell, which are externally connected to each other (indicated by the pink line in the picture).
Q Data output.

Instances: XUFU (1 total)

DFF_CC_EE_Q_X1_REG_BIT

Semi-dynamic data flip-flop with complementary clock inputs, externally inverted enable inputs, level-sensitive D-gating, and no inverted output.

I/ODescription
D Data input. Gets stored in the flip-flop when CLK is low and ENA is high. However, the new data is only visible at the output Q after a positive edge on CLK.
CLK Positive clock input. Edge sensitive for presenting stored data at output; level sensitive for taking new data from input into storage. When CLK is low and ENA is high, the data input D gets stored in the flip-flop. After a positive edge on CLK, the newly stored data is visible at the output Q. CLK must not be held low for an extended amount of time, otherwise the stored data will decay.
CLK Negative clock input. Must always be the inverse of CLK.
ENA Active-high enable input. Input D gets stored in the flip-flop when ENA is high and CLK is low.
ENA Active-low enable input. Must always be the inverse of ENA.
Q Data output.

Instances: REG_B[0], REG_B[1], REG_B[2], REG_B[3], REG_B[4], REG_B[5], REG_B[6], REG_B[7], REG_C[0], REG_C[1], REG_C[2], REG_C[3], REG_C[4], REG_C[5], REG_C[6], REG_C[7], REG_D[0], REG_D[1], REG_D[2], REG_D[3], REG_D[4], REG_D[5], REG_D[6], REG_D[7], REG_E[0], REG_E[1], REG_E[2], REG_E[3], REG_E[4], REG_E[5], REG_E[6], REG_E[7], REG_H[0], REG_H[1], REG_H[2], REG_H[3], REG_H[4], REG_H[5], REG_H[6], REG_H[7], REG_L[0], REG_L[1], REG_L[2], REG_L[3], REG_L[4], REG_L[5], REG_L[6], REG_L[7] (48 total)

DFF_CC_EE_Q_X2_REG_BIT

Semi-dynamic data flip-flop with complementary clock inputs, externally inverted enable inputs, level-sensitive D-gating, 2× drive strength, and no inverted output.

I/ODescription
D Data input. Gets stored in the flip-flop when CLK is low and ENA is high. However, the new data is only visible at the output Q after a positive edge on CLK.
CLK Positive clock input. Edge sensitive for presenting stored data at output; level sensitive for taking new data from input into storage. When CLK is low and ENA is high, the data input D gets stored in the flip-flop. After a positive edge on CLK, the newly stored data is visible at the output Q. CLK must not be held low for an extended amount of time, otherwise the stored data will decay.
CLK Negative clock input. Must always be the inverse of CLK.
ENA Active-high enable input. Input D gets stored in the flip-flop when ENA is high and CLK is low.
ENA Active-low enable input. Must always be the inverse of ENA.
Q Data output.

Instances: REG_A[0], REG_A[1], REG_A[2], REG_A[3], REG_A[4], REG_A[5], REG_A[6], REG_A[7], REG_IR[0], REG_IR[1], REG_IR[2], REG_IR[3], REG_IR[4], REG_IR[5], REG_IR[6], REG_IR[7] (16 total)

DFF_CC_EE_PCH_D_REG_SP_BIT

Semi-dynamic data flip-flop with complementary clock inputs, externally inverted enable inputs, level-sensitive D-gating, and prechargable D input.

I/ODescription
D Data input. Gets stored in the flip-flop when CLK is low and ENA is high. However, the new data is only visible at the outputs Q and Q after a positive edge on CLK. Outputs high if PCH is low.
PCH Active-low precharge input. If low, D gets driven high for the purpose of precharging the net connected to the input.
CLK Positive clock input. Edge sensitive for presenting stored data at output; level sensitive for taking new data from input into storage. When CLK is low and ENA is high, the data input D gets stored in the flip-flop. After a positive edge on CLK, the newly stored data is visible at the outputs Q and Q. CLK must not be held low for an extended amount of time, otherwise the stored data will decay.
CLK Negative clock input. Must always be the inverse of CLK.
ENA Active-high enable input. Input D gets stored in the flip-flop when ENA is high and CLK is low.
ENA Active-low enable input. Must always be the inverse of ENA.
Q Data output.
Q Inverted data output.

Instances: REG_SPH[0], REG_SPH[1], REG_SPH[2], REG_SPH[3], REG_SPH[4], REG_SPH[5], REG_SPH[6], REG_SPH[7], REG_SPL[0], REG_SPL[1], REG_SPL[2], REG_SPL[3], REG_SPL[4], REG_SPL[5], REG_SPL[6], REG_SPL[7] (16 total)

DFF_CC_EE_Q_N_REG_WZ_BIT

Semi-dynamic data flip-flop with complementary clock inputs, externally inverted enable inputs, level-sensitive D-gating, and no non-inverted output.

I/ODescription
D Data input. Gets stored in the flip-flop when CLK is low and ENA is high. However, the new data is only visible at the output Q after a positive edge on CLK.
CLK Positive clock input. Edge sensitive for presenting stored data at output; level sensitive for taking new data from input into storage. When CLK is low and ENA is high, the data input D gets stored in the flip-flop. After a positive edge on CLK, the newly stored data is visible at the output Q. CLK must not be held low for an extended amount of time, otherwise the stored data will decay.
CLK Negative clock input. Must always be the inverse of CLK.
ENA Active-high enable input. Input D gets stored in the flip-flop when ENA is high and CLK is low.
ENA Active-low enable input. Must always be the inverse of ENA.
Q Inverted data output.

Instances: REG_W[0], REG_W[1], REG_W[2], REG_W[3], REG_W[4], REG_W[5], REG_W[6], REG_W[7], REG_Z[0], REG_Z[1], REG_Z[2], REG_Z[3], REG_Z[4], REG_Z[5], REG_Z[6], REG_Z[7] (16 total)

DFFR_CC_EE_REG_IE_BIT

Semi-dynamic data flip-flop with complementary clock inputs, externally inverted enable inputs, level-sensitive D-gating, and active-high reset gated by the clock level.

There is one external connection always made on this cell (see orange line in the picture) that is required to connect the two RESET inputs.

I/ODescription
D Data input. Gets stored in the flip-flop when CLK and RESET are both low and ENA is high. However, the new data is only visible at the outputs Q and Q after a positive edge on CLK.
CLK Positive clock input. Edge sensitive for presenting stored data at output; level sensitive for taking new data from input into storage. When CLK and RESET are both low and ENA is high, the data input D gets stored in the flip-flop. After a positive edge on CLK, the newly stored data is visible at the outputs Q and Q. CLK must not be held low for an extended amount of time, otherwise the stored data will decay.
CLK Negative clock input. Must always be the inverse of CLK.
ENA Active-high enable input. Input D gets stored in the flip-flop when ENA is high and CLK and RESET are both low.
ENA Active-low enable input. Must always be the inverse of ENA.
RESET Active-high reset input. Data inside the flip-flop gets reset to 0 when RESET and CLK are both high. Has no effect while CLK is low. There are two RESET inputs to this cell, which are externally connected to each other (indicated by the orange line in the picture).
Q Data output.
Q Inverted data output.

Instances: REG_IE[0], REG_IE[1], REG_IE[2], REG_IE[3], REG_IE[4], REG_IE[5], REG_IE[6], REG_IE[7] (8 total)

DFFS_CC_EE_PCH_D_REG_PC_BIT

Semi-dynamic data flip-flop with complementary clock inputs, externally inverted enable inputs, level-sensitive D-gating, prechargable D input, and active-low set gated by the clock level.

There is one external connection always made on this cell (see orange line in the picture) that is required to connect the two SET inputs.

I/ODescription
D Data input. Gets stored in the flip-flop when CLK is low and ENA and SET are both high. However, the new data is only visible at the outputs Q and Q after a positive edge on CLK.
PCH Active-low precharge input. If low, D gets driven high for the purpose of precharging the net connected to the input.
CLK Positive clock input. Edge sensitive for presenting stored data at output; level sensitive for taking new data from input into storage. When CLK is low and ENA and SET are both high, the data input D gets stored in the flip-flop. After a positive edge on CLK, the newly stored data is visible at the outputs Q and Q. CLK must not be held low for an extended amount of time, otherwise the stored data will decay.
CLK Negative clock input. Must always be the inverse of CLK.
ENA Active-high enable input. Input D gets stored in the flip-flop when ENA and SET are both high and CLK is low.
ENA Active-low enable input. Must always be the inverse of ENA.
SET Active-low set input. Data inside the flip-flop gets set to 1 when SET is low and CLK is high. Has no effect while CLK is low. There are two SET inputs to this cell, which are externally connected to each other (indicated by the orange line in the picture).
Q Data output.
Q Inverted data output.

Instances: REG_PCH[0], REG_PCH[1], REG_PCH[2], REG_PCH[3], REG_PCH[4], REG_PCH[5], REG_PCH[6], REG_PCH[7], REG_PCL[0], REG_PCL[1], REG_PCL[2], REG_PCL[3], REG_PCL[4], REG_PCL[5], REG_PCL[6], REG_PCL[7] (16 total)

DFFN_EE_PCH_D_ALU_FLAG

Semi-dynamic data flip-flop with externally inverted enable inputs, level-sensitive D-gating, and prechargable D input.

I/ODescription
D Data input. Gets stored in the flip-flop when CLK and ENA are both high. However, the new data is only visible at the outputs Q and Q after a negative edge on CLK. Outputs high if PCH is low.
PCH Active-low precharge input. If low, D gets driven high for the purpose of precharging the net connected to the input.
CLK Clock input. Edge sensitive for presenting stored data at output; level sensitive for taking new data from input into storage. When CLK and ENA are both high, the data input D gets stored in the flip-flop. After a negative edge on CLK, the newly stored data is visible at the outputs Q and Q. CLK must not be held high for an extended amount of time, otherwise the stored data will decay.
ENA Active-high enable input. Input D gets stored in the flip-flop when ENA and CLK are both high.
ENA Active-low enable input. Must always be the inverse of ENA.
Q Data output.
Q Inverted data output.

Instances: FLAG_C, FLAG_H, FLAG_N, FLAG_Z (4 total)

DFFN_EE_Q_ALU_TMP

Semi-dynamic data flip-flop with externally inverted enable inputs, level-sensitive D-gating, and no inverted output.

I/ODescription
D Data input. Gets stored in the flip-flop when CLK and ENA are both high. However, the new data is only visible at the output Q after a negative edge on CLK.
CLK Clock input. Edge sensitive for presenting stored data at output; level sensitive for taking new data from input into storage. When CLK and ENA are both high, the data input D gets stored in the flip-flop. After a negative edge on CLK, the newly stored data is visible at the output Q. CLK must not be held high for an extended amount of time, otherwise the stored data will decay.
ENA Active-high enable input. Input D gets stored in the flip-flop when ENA and CLK are both high.
ENA Active-low enable input. Must always be the inverse of ENA.
Q Data output.

Instances: ALU_DFF (1 total)

DFFRE_CC_Q

Semi-dynamic data flip-flop with complementary clock inputs, level-sensitive D-gating, active-high reset gated by the clock level, and no inverted output.

I/ODescription
D Data input. Gets stored in the flip-flop when CLK and RESET are both low and ENA is high. However, the new data is only visible at the output Q after a positive edge on CLK.
CLK Positive clock input. Edge sensitive for presenting stored data at output; level sensitive for taking new data from input into storage. When CLK and RESET are both low and ENA is high, the data input D gets stored in the flip-flop. After a positive edge on CLK, the newly stored data is visible at the output Q. CLK must not be held low for an extended amount of time, otherwise the stored data will decay.
CLK Negative clock input. Must always be the inverse of CLK.
ENA Active-high enable input. Input D gets stored in the flip-flop when ENA is high and CLK and RESET are both low.
RESET Active-high reset input. Data inside the flip-flop gets reset to 0 when RESET and CLK are both high. Has no effect while CLK is low.
Q Data output.

Instances: XURG (1 total)