aboutsummaryrefslogtreecommitdiffstats
path: root/gowin/pack.cc
diff options
context:
space:
mode:
authorYRabbit <rabbit@yrabbit.cyou>2022-07-04 10:32:39 +1000
committerYRabbit <rabbit@yrabbit.cyou>2022-07-04 10:32:39 +1000
commit3172a38daeb4588d3aaa686816c09d64ccf08587 (patch)
tree7dd071befb4f13acf4a135984856867fed881531 /gowin/pack.cc
parent6d85de43ee1f9585e3c3a170f52513755ed924b5 (diff)
downloadnextpnr-3172a38daeb4588d3aaa686816c09d64ccf08587.tar.gz
nextpnr-3172a38daeb4588d3aaa686816c09d64ccf08587.tar.bz2
nextpnr-3172a38daeb4588d3aaa686816c09d64ccf08587.zip
gowin: Let the placer know about global networks
Refactor in order to detect networks that will be routed in a special mode earlier. This makes it possible to mark the source of such networks as a global buffer, thereby removing their influence on element placement. In addition, timing classes are set for some cells. Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
Diffstat (limited to 'gowin/pack.cc')
-rw-r--r--gowin/pack.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/gowin/pack.cc b/gowin/pack.cc
index 83820142..5b304f10 100644
--- a/gowin/pack.cc
+++ b/gowin/pack.cc
@@ -26,6 +26,8 @@
#include "log.h"
#include "util.h"
+#include "globals.h"
+
NEXTPNR_NAMESPACE_BEGIN
static void make_dummy_alu(Context *ctx, int alu_idx, CellInfo *ci, CellInfo *packed_head,
@@ -1009,6 +1011,7 @@ bool Arch::pack()
Context *ctx = getCtx();
try {
log_break();
+ pre_pack(ctx);
pack_constants(ctx);
pack_gsr(ctx);
pack_io(ctx);
@@ -1018,6 +1021,7 @@ bool Arch::pack()
pack_alus(ctx);
pack_lut_lutffs(ctx);
pack_nonlut_ffs(ctx);
+ post_pack(ctx);
ctx->settings[id_pack] = 1;
ctx->assignArchInfo();
log_info("Checksum: 0x%08x\n", ctx->checksum());