From d5f804832f1accf318e8f62a9989149f5bc0b34a Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Mon, 3 Jun 2019 21:13:47 +0200 Subject: hacky way to support ECP5 for now --- json/jsonparse.cc | 6 +++++- json/jsonwrite.cc | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) 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) -- cgit v1.2.3