aboutsummaryrefslogtreecommitdiffstats
path: root/gowin/arch.h
diff options
context:
space:
mode:
authorYRabbit <rabbit@yrabbit.cyou>2023-01-30 12:49:57 +1000
committerYRabbit <rabbit@yrabbit.cyou>2023-01-30 12:49:57 +1000
commit6a1212a1e14d19bda114317e9f544b534cbf2841 (patch)
tree2c74bf137a3972c52986c7af6a8f4753fd1d5e05 /gowin/arch.h
parentf80b871dd54b5215480a8eb00313a7ac16d9e883 (diff)
downloadnextpnr-6a1212a1e14d19bda114317e9f544b534cbf2841.tar.gz
nextpnr-6a1212a1e14d19bda114317e9f544b534cbf2841.tar.bz2
nextpnr-6a1212a1e14d19bda114317e9f544b534cbf2841.zip
gowin: Add PLL support for the GW1NR-9 chip
And also unified the fixing of PLL to bels: the point is that PLL being at a certain location has the possibility to use a direct implicit wire to the clock source, but once we decide to use this direct wire, the PLL can no longer be moved. Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
Diffstat (limited to 'gowin/arch.h')
-rw-r--r--gowin/arch.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/gowin/arch.h b/gowin/arch.h
index f060165a..6f76d577 100644
--- a/gowin/arch.h
+++ b/gowin/arch.h
@@ -482,6 +482,7 @@ struct Arch : BaseArch<ArchRanges>
void add_rpll_ports(DatabasePOD const *db, BelsPOD const *bel, IdString belname, int row, int col);
void fix_pll_nets(Context *ctx);
bool is_GCLKT_iob(const CellInfo *cell);
+ void bind_pll_to_bel(CellInfo *ci, int loc);
GowinGlobalRouter globals_router;
void mark_gowin_globals(Context *ctx);
@@ -530,6 +531,14 @@ enum
};
}
+namespace PLL { // fixed PLL locations
+enum
+{
+ left = 0,
+ right = 1
+};
+}
+
NEXTPNR_NAMESPACE_END
#endif /* GOWIN_ARCH_H */