From e1365a0c46b25b2cbc678232f996fe426c2f86a2 Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Tue, 20 Jan 2026 08:32:40 +0100 Subject: [PATCH] Added rest of CP lines pips --- gatemate/die.py | 60 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 48 insertions(+), 12 deletions(-) diff --git a/gatemate/die.py b/gatemate/die.py index 85dc9c5..b10ed4c 100644 --- a/gatemate/die.py +++ b/gatemate/die.py @@ -3321,6 +3321,13 @@ def get_endpoints_for_type(type): create_wire("CPE.PY1_OUT", type="CPE_WIRE_INT") create_wire("CPE.PY2_OUT", type="CPE_WIRE_INT") + create_wire("CPE.CX_OUT2" , type="CPE_WIRE_INT") + create_wire("CPE.CY1_OUT2", type="CPE_WIRE_INT") + create_wire("CPE.CY2_OUT2", type="CPE_WIRE_INT") + create_wire("CPE.PX_OUT2" , type="CPE_WIRE_INT") + create_wire("CPE.PY1_OUT2", type="CPE_WIRE_INT") + create_wire("CPE.PY2_OUT2", type="CPE_WIRE_INT") + create_wire("CPE.CX_VAL" , type="CPE_WIRE_INT") create_wire("CPE.CY1_VAL", type="CPE_WIRE_INT") create_wire("CPE.CY2_VAL", type="CPE_WIRE_INT") @@ -3328,6 +3335,9 @@ def get_endpoints_for_type(type): create_wire("CPE.PY1_VAL", type="CPE_WIRE_INT") create_wire("CPE.PY2_VAL", type="CPE_WIRE_INT") + create_wire("CPE.CIY12" , type="CPE_WIRE_INT") + create_wire("CPE.PIY12", type="CPE_WIRE_INT") + for p in range(1,13): plane = f"{p:02d}" for i in range(8): @@ -3582,18 +3592,37 @@ def get_mux_connections_for_type(type): create_mux("CPE.PINY1", "CPE.POUTY1", 1, 0, False, "CPE.C_PY1_I", True, delay="del_dummy", resource="C_PY1_I") create_mux("CPE.PINY2", "CPE.POUTY2", 1, 0, False, "CPE.C_PY2_I", True, delay="del_dummy", resource="C_PY2_I") - create_mux("CPE.OUT1", "CPE.CX_OUT", 1, 0, False, "CPE.C_SELX", True, delay="del_dummy", resource="C_SELX") - create_mux("CPE.OUT2", "CPE.CX_OUT", 1, 1, False, "CPE.C_SELX", True, delay="del_dummy", resource="C_SELX") - create_mux("CPE.OUT1", "CPE.CY1_OUT", 1, 1, False, "CPE.C_SELY1", True, delay="del_dummy", resource="C_SELY1") - create_mux("CPE.OUT2", "CPE.CY1_OUT", 1, 0, False, "CPE.C_SELY1", True, delay="del_dummy", resource="C_SELY1") - create_mux("CPE.OUT1", "CPE.CY2_OUT", 1, 0, False, "CPE.C_SELY2", True, delay="del_dummy", resource="C_SELY2") - create_mux("CPE.OUT2", "CPE.CY2_OUT", 1, 1, False, "CPE.C_SELY2", True, delay="del_dummy", resource="C_SELY2") - create_mux("CPE.OUT1", "CPE.PX_OUT", 1, 1, False, "CPE.C_SELX", True, delay="del_dummy", resource="C_SELX") - create_mux("CPE.OUT2", "CPE.PX_OUT", 1, 0, False, "CPE.C_SELX", True, delay="del_dummy", resource="C_SELX") - create_mux("CPE.OUT1", "CPE.PY1_OUT", 1, 0, False, "CPE.C_SELY1", True, delay="del_dummy", resource="C_SELY1") - create_mux("CPE.OUT2", "CPE.PY1_OUT", 1, 1, False, "CPE.C_SELY1", True, delay="del_dummy", resource="C_SELY1") - create_mux("CPE.OUT1", "CPE.PY2_OUT", 1, 1, False, "CPE.C_SELY2", True, delay="del_dummy", resource="C_SELY2") - create_mux("CPE.OUT2", "CPE.PY2_OUT", 1, 0, False, "CPE.C_SELY2", True, delay="del_dummy", resource="C_SELY2") + create_mux("CPE.OUT1_IN_int", "CPE.CX_OUT", 1, 0, False, "CPE.C_SELX", True, delay="del_dummy", resource="C_SELX") + create_mux("CPE.OUT2_IN_int", "CPE.CX_OUT", 1, 1, False, "CPE.C_SELX", True, delay="del_dummy", resource="C_SELX") + create_mux("CPE.OUT1_IN_int", "CPE.CY1_OUT", 1, 1, False, "CPE.C_SELY1", True, delay="del_dummy", resource="C_SELY1") + create_mux("CPE.OUT2_IN_int", "CPE.CY1_OUT", 1, 0, False, "CPE.C_SELY1", True, delay="del_dummy", resource="C_SELY1") + create_mux("CPE.OUT1_IN_int", "CPE.CY2_OUT", 1, 0, False, "CPE.C_SELY2", True, delay="del_dummy", resource="C_SELY2") + create_mux("CPE.OUT2_IN_int", "CPE.CY2_OUT", 1, 1, False, "CPE.C_SELY2", True, delay="del_dummy", resource="C_SELY2") + create_mux("CPE.OUT1_IN_int", "CPE.PX_OUT", 1, 1, False, "CPE.C_SELX", True, delay="del_dummy", resource="C_SELX") + create_mux("CPE.OUT2_IN_int", "CPE.PX_OUT", 1, 0, False, "CPE.C_SELX", True, delay="del_dummy", resource="C_SELX") + create_mux("CPE.OUT1_IN_int", "CPE.PY1_OUT", 1, 0, False, "CPE.C_SELY1", True, delay="del_dummy", resource="C_SELY1") + create_mux("CPE.OUT2_IN_int", "CPE.PY1_OUT", 1, 1, False, "CPE.C_SELY1", True, delay="del_dummy", resource="C_SELY1") + create_mux("CPE.OUT1_IN_int", "CPE.PY2_OUT", 1, 1, False, "CPE.C_SELY2", True, delay="del_dummy", resource="C_SELY2") + create_mux("CPE.OUT2_IN_int", "CPE.PY2_OUT", 1, 0, False, "CPE.C_SELY2", True, delay="del_dummy", resource="C_SELY2") + + create_mux("CPE.CINY1", "CPE.CIY12", 1, 0, False, "CPE.C_Y12", True, delay="del_dummy", resource="C_Y12") + create_mux("CPE.CINY2", "CPE.CIY12", 1, 1, False, "CPE.C_Y12", True, delay="del_dummy", resource="C_Y12") + create_mux("CPE.PINY1", "CPE.PIY12", 1, 0, False, "CPE.C_Y12", True, delay="del_dummy", resource="C_Y12") + create_mux("CPE.PINY2", "CPE.PIY12", 1, 1, False, "CPE.C_Y12", True, delay="del_dummy", resource="C_Y12") + + create_mux("CPE.CIY12", "CPE.CX_OUT2", 1, 1, False, "CPE.C_SELX", True, delay="del_dummy", resource="C_SELX") + create_mux("CPE.COMPOUT_IN_int", "CPE.CX_OUT2", 1, 0, False, "CPE.C_SELX", True, delay="del_dummy", resource="C_SELX") + create_mux("CPE.CINX", "CPE.CY1_OUT2", 1, 1, False, "CPE.C_SELY1", True, delay="del_dummy", resource="C_SELY1") + create_mux("CPE.COMPOUT_IN_int", "CPE.CY1_OUT2", 1, 0, False, "CPE.C_SELY1", True, delay="del_dummy", resource="C_SELY1") + create_mux("CPE.CINX", "CPE.CY2_OUT2", 1, 1, False, "CPE.C_SELY2", True, delay="del_dummy", resource="C_SELY2") + create_mux("CPE.COMPOUT_IN_int", "CPE.CY2_OUT2", 1, 0, False, "CPE.C_SELY2", True, delay="del_dummy", resource="C_SELY2") + create_mux("CPE.PIY12", "CPE.PX_OUT2", 1, 1, False, "CPE.C_SELX", True, delay="del_dummy", resource="C_SELX") + create_mux("CPE.COMPOUT_IN_int", "CPE.PX_OUT2", 1, 0, False, "CPE.C_SELX", True, delay="del_dummy", resource="C_SELX") + create_mux("CPE.PINX", "CPE.PY1_OUT2", 1, 1, False, "CPE.C_SELY1", True, delay="del_dummy", resource="C_SELY1") + create_mux("CPE.COMPOUT_IN_int", "CPE.PY1_OUT2", 1, 0, False, "CPE.C_SELY1", True, delay="del_dummy", resource="C_SELY1") + create_mux("CPE.PINX", "CPE.PY2_OUT2", 1, 1, False, "CPE.C_SELY2", True, delay="del_dummy", resource="C_SELY2") + create_mux("CPE.COMPOUT_IN_int", "CPE.PY2_OUT2", 1, 0, False, "CPE.C_SELY2", True, delay="del_dummy", resource="C_SELY2") + create_mux("CPE.CX_OUT", "CPE.CX_VAL", 1, 0, False, "CPE.C_SEL_C", True, delay="del_dummy", resource="C_SEL_C") create_mux("CPE.CY1_OUT", "CPE.CY1_VAL", 1, 0, False, "CPE.C_SEL_C", True, delay="del_dummy", resource="C_SEL_C") @@ -3602,6 +3631,13 @@ def get_mux_connections_for_type(type): create_mux("CPE.PY1_OUT", "CPE.PY1_VAL", 1, 0, False, "CPE.C_SEL_P", True, delay="del_dummy", resource="C_SEL_P") create_mux("CPE.PY2_OUT", "CPE.PY2_VAL", 1, 0, False, "CPE.C_SEL_P", True, delay="del_dummy", resource="C_SEL_P") + create_mux("CPE.CX_OUT2", "CPE.CX_VAL", 1, 1, False, "CPE.C_SEL_C", True, delay="del_dummy", resource="C_SEL_C") + create_mux("CPE.CY1_OUT2", "CPE.CY1_VAL", 1, 1, False, "CPE.C_SEL_C", True, delay="del_dummy", resource="C_SEL_C") + create_mux("CPE.CY2_OUT2", "CPE.CY2_VAL", 1, 1, False, "CPE.C_SEL_C", True, delay="del_dummy", resource="C_SEL_C") + create_mux("CPE.PX_OUT2", "CPE.PX_VAL", 1, 1, False, "CPE.C_SEL_P", True, delay="del_dummy", resource="C_SEL_P") + create_mux("CPE.PY1_OUT2", "CPE.PY1_VAL", 1, 1, False, "CPE.C_SEL_P", True, delay="del_dummy", resource="C_SEL_P") + create_mux("CPE.PY2_OUT2", "CPE.PY2_VAL", 1, 1, False, "CPE.C_SEL_P", True, delay="del_dummy", resource="C_SEL_P") + create_mux("CPE.CX_VAL", "CPE.COUTX", 1, 1, False, "CPE.C_CX_I", True, delay="del_dummy", resource="C_CX_I") create_mux("CPE.CY1_VAL", "CPE.COUTY1", 1, 1, False, "CPE.C_CY1_I", True, delay="del_dummy", resource="C_CY1_I") create_mux("CPE.CY2_VAL", "CPE.COUTY2", 1, 1, False, "CPE.C_CY2_I", True, delay="del_dummy", resource="C_CY2_I")