aboutsummaryrefslogtreecommitdiffstats
path: root/json
diff options
context:
space:
mode:
authorMiodrag Milanovic <mmicko@gmail.com>2019-06-03 21:13:47 +0200
committerMiodrag Milanovic <mmicko@gmail.com>2019-06-03 21:13:47 +0200
commitd5f804832f1accf318e8f62a9989149f5bc0b34a (patch)
tree6138c40e16f3d15e250a4155acdbdf7f6161cc80 /json
parent44d6f16b66e5f7b89e8cf5711744d6e5f6a40b4a (diff)
downloadnextpnr-d5f804832f1accf318e8f62a9989149f5bc0b34a.tar.gz
nextpnr-d5f804832f1accf318e8f62a9989149f5bc0b34a.tar.bz2
nextpnr-d5f804832f1accf318e8f62a9989149f5bc0b34a.zip
hacky way to support ECP5 for now
Diffstat (limited to 'json')
-rw-r--r--json/jsonparse.cc6
-rw-r--r--json/jsonwrite.cc5
2 files changed, 10 insertions, 1 deletions
diff --git a/json/jsonparse.cc b/json/jsonparse.cc
index df21eb0f..7d11cd03 100644
--- a/json/jsonparse.cc
+++ b/json/jsonparse.cc
@@ -349,7 +349,11 @@ void json_import_net_attrib(Context *ctx, string &modname, NetInfo *net, JsonNod
else
log_error("JSON parameter type of \"%s\' of net \'%s\' not supported\n", pId.c_str(ctx),
net->name.c_str(ctx));
-
+#ifdef ARCH_ECP5
+ if (param_node->data_dict_keys[param_id]== "NEXTPNR_IS_GLOBAL") {
+ net->is_global = (*dest)[pId].num;
+ }
+#endif
if (json_debug)
log_info(" Added parameter \'%s\'=%s to net \'%s\' "
"of module \'%s\'\n",
diff --git a/json/jsonwrite.cc b/json/jsonwrite.cc
index 9f29d510..eb1ed3a4 100644
--- a/json/jsonwrite.cc
+++ b/json/jsonwrite.cc
@@ -79,6 +79,11 @@ void write_routing(std::ostream &f, Context *ctx, NetInfo *net, bool first)
f << stringf("%s\n", first ? "" : ",");
f << stringf(" \"NEXTPNR_ROUTING\": ");
f << get_string(routing);
+#ifdef ARCH_ECP5
+ f << stringf(",\n");
+ f << stringf(" \"NEXTPNR_IS_GLOBAL\": ");
+ f << std::to_string(net->is_global ? 1:0);
+#endif
}
void write_constraints(std::ostream &f, Context *ctx, CellInfo *cell, bool first)