From ab505c765d1f256d8fbe74a3a6d96e0d4dc3daa1 Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Mon, 8 Dec 2025 15:14:55 +0100 Subject: [PATCH] Fix wrong name and select proper timing --- gatemate/chip.py | 39 +++++++++++++++++++++++++++++++++++++++ gatemate/die.py | 1 + 2 files changed, 40 insertions(+) diff --git a/gatemate/chip.py b/gatemate/chip.py index 661d71e..e32cd24 100644 --- a/gatemate/chip.py +++ b/gatemate/chip.py @@ -304,12 +304,51 @@ def get_timings(name): name = f"om_x{i1+1}_y{i2+1}_p{i3+9}_d{i4}" val[name] = convert_delay(d) + cnt_ccy1 = 1 + cnt_cpy1 = 1 + cnt_pcy1 = 1 + cnt_ppy1 = 1 for i1 in range(10): # [0..9] for i2 in range(19): # [1..19] for i3 in range(10): # [1..10] d = timing_data.CPE_del_tile_arr[i1][i2][i3] if d.name == "CPE": # not used continue + # These are wrong names in timing database + # and need fixing + if d.name == "_ROUTING_CINY2_COUTY": + d.name = "_ROUTING_CINY2_COUTY2" + if d.name == "_ROUTING_PINY2_POUTY": + d.name = "_ROUTING_PINY2_POUTY2" + + if d.name == "_ROUTING_CINY1_COUTY": + if cnt_ccy1 == 1: + d.name = "_ROUTING_CINY1_COUTY1" + cnt_ccy1 = 2 + else: + d.name = "_ROUTING_CINY1_COUTY2" + cnt_ccy1 = 1 + if d.name == "_ROUTING_CINY1_POUTY": + if cnt_cpy1 == 1: + d.name = "_ROUTING_CINY1_POUTY1" + cnt_cpy1 = 2 + else: + d.name = "_ROUTING_CINY1_POUTY2" + cnt_cpy1 = 1 + if d.name == "_ROUTING_PINY1_COUTY": + if cnt_pcy1 == 1: + d.name = "_ROUTING_PINY1_COUTY1" + cnt_pcy1 = 2 + else: + d.name = "_ROUTING_PINY1_COUTY2" + cnt_pcy1 = 1 + if d.name == "_ROUTING_PINY1_POUTY": + if cnt_ppy1 == 1: + d.name = "_ROUTING_PINY1_POUTY1" + cnt_ppy1 = 2 + else: + d.name = "_ROUTING_PINY1_POUTY2" + cnt_ppy1 = 1 val[d.name] = convert_delay(d.val) for i1 in range(165): # [-2..162] diff --git a/gatemate/die.py b/gatemate/die.py index 720c9ed..5fb8c48 100644 --- a/gatemate/die.py +++ b/gatemate/die.py @@ -3525,6 +3525,7 @@ def get_mux_connections_for_type(type): create_mux("CPE.EN", "CPE.EN_int", 1, 0, False, "C_ENSEL", False, delay="del_dummy") create_mux("CPE.PINY2", "CPE.EN_int", 1, 1, False, "C_ENSEL", False, delay="del_dummy") + create_mux("CPE.CINY2", "CPE.COUTY2", 1, 1, False, "PASS", False, delay="_ROUTING_CINY2_COUTY2") for p in range(1,13): plane = f"{p:02d}"