diff options
author | YRabbit <rabbit@yrabbit.cyou> | 2023-01-31 18:46:38 +1000 |
---|---|---|
committer | YRabbit <rabbit@yrabbit.cyou> | 2023-01-31 18:46:38 +1000 |
commit | 5d5ea57e2123a6d66aa63bf82ac6110713ab8bc7 (patch) | |
tree | 30a85495e08625500190e7113287a771297c350e | |
parent | aac36ecf3f5869498876fda03d9e5f0a2ab9f2a3 (diff) | |
download | nextpnr-5d5ea57e2123a6d66aa63bf82ac6110713ab8bc7.tar.gz nextpnr-5d5ea57e2123a6d66aa63bf82ac6110713ab8bc7.tar.bz2 nextpnr-5d5ea57e2123a6d66aa63bf82ac6110713ab8bc7.zip |
gowin: Add PLL support for the GW1NS-2C chip
Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
-rw-r--r-- | gowin/arch.cc | 7 | ||||
-rw-r--r-- | gowin/pack.cc | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/gowin/arch.cc b/gowin/arch.cc index 734ff911..fbe26cdd 100644 --- a/gowin/arch.cc +++ b/gowin/arch.cc @@ -2123,6 +2123,13 @@ void Arch::bind_pll_to_bel(CellInfo *ci, PLL loc) bel = id("R1C18_rPLL"); break; } + if (family == "GW1NS-2") { + if (loc == PLL::left) { + return; + } + bel = id("R10C20_rPLL"); + break; + } if (family == "GW1N-4") { bel = loc == PLL::left ? id("R1C10_rPLL") : id("R1C28_rPLL"); break; diff --git a/gowin/pack.cc b/gowin/pack.cc index bed0a8df..fc870890 100644 --- a/gowin/pack.cc +++ b/gowin/pack.cc @@ -1044,7 +1044,7 @@ static void pack_plls(Context *ctx) switch (ci->type.hash()) { case ID_rPLL: { if (parm_device == "GW1N-1" || parm_device == "GW1NZ-1" || parm_device == "GW1NR-9C" || - parm_device == "GW1NR-9" || parm_device == "GW1N-4") { + parm_device == "GW1NR-9" || parm_device == "GW1N-4" || parm_device == "GW1NS-2C") { pll_disable_unused_ports(ctx, ci); // A cell std::unique_ptr<CellInfo> cell = create_generic_cell(ctx, id_rPLL, ci->name.str(ctx) + "$rpll"); |