From 601b32948b8c8e79bf1ac394ce2f42f5d3d9fce9 Mon Sep 17 00:00:00 2001 From: Tim Pambor Date: Wed, 30 Mar 2022 17:35:16 +0200 Subject: [PATCH] gowin: Fix z-index of oscillator --- gowin/arch.cc | 8 ++++---- gowin/arch.h | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/gowin/arch.cc b/gowin/arch.cc index 2c1e50b7..89bdade3 100644 --- a/gowin/arch.cc +++ b/gowin/arch.cc @@ -1012,7 +1012,7 @@ Arch::Arch(ArchArgs args) : args(args) case ID_OSC: snprintf(buf, 32, "R%dC%d_OSC", row + 1, col + 1); belname = id(buf); - addBel(belname, id_OSC, Loc(col, row, 0), false); + addBel(belname, id_OSC, Loc(col, row, BelZ::osc_z), false); portname = IdString(pairLookup(bel->ports.get(), bel->num_ports, ID_OSCOUT)->src_id); snprintf(buf, 32, "R%dC%d_%s", row + 1, col + 1, portname.c_str(this)); addBelOutput(belname, id_OSCOUT, id(buf)); @@ -1020,7 +1020,7 @@ Arch::Arch(ArchArgs args) : args(args) case ID_OSCH: snprintf(buf, 32, "R%dC%d_OSCH", row + 1, col + 1); belname = id(buf); - addBel(belname, id_OSCH, Loc(col, row, 0), false); + addBel(belname, id_OSCH, Loc(col, row, BelZ::osc_z), false); portname = IdString(pairLookup(bel->ports.get(), bel->num_ports, ID_OSCOUT)->src_id); snprintf(buf, 32, "R%dC%d_%s", row + 1, col + 1, portname.c_str(this)); addBelOutput(belname, id_OSCOUT, id(buf)); @@ -1028,7 +1028,7 @@ Arch::Arch(ArchArgs args) : args(args) case ID_OSCF: snprintf(buf, 32, "R%dC%d_OSCF", row + 1, col + 1); belname = id(buf); - addBel(belname, id_OSCF, Loc(col, row, 0), false); + addBel(belname, id_OSCF, Loc(col, row, BelZ::osc_z), false); portname = IdString(pairLookup(bel->ports.get(), bel->num_ports, ID_OSCOUT)->src_id); snprintf(buf, 32, "R%dC%d_%s", row + 1, col + 1, portname.c_str(this)); addBelOutput(belname, id_OSCOUT, id(buf)); @@ -1039,7 +1039,7 @@ Arch::Arch(ArchArgs args) : args(args) case ID_OSCZ: snprintf(buf, 32, "R%dC%d_OSCZ", row + 1, col + 1); belname = id(buf); - addBel(belname, id_OSCZ, Loc(col, row, 0), false); + addBel(belname, id_OSCZ, Loc(col, row, BelZ::osc_z), false); portname = IdString(pairLookup(bel->ports.get(), bel->num_ports, ID_OSCOUT)->src_id); snprintf(buf, 32, "R%dC%d_%s", row + 1, col + 1, portname.c_str(this)); addBelOutput(belname, id_OSCOUT, id(buf)); diff --git a/gowin/arch.h b/gowin/arch.h index bc29a59b..c5804bc4 100644 --- a/gowin/arch.h +++ b/gowin/arch.h @@ -484,7 +484,8 @@ enum mux_0_z = 10, // start Z for the MUX2LUT5 bels iologic_0_z = 20, // start Z for the IOLOGIC bels vcc_0_z = 277, // virtual VCC bel Z - gnd_0_z = 278 // virtual VSS bel Z + gnd_0_z = 278, // virtual VSS bel Z + osc_z = 280 // Z for the oscillator bels }; }