diff options
author | Eddie Hung <eddie@fpgeh.com> | 2019-06-24 20:01:43 -0700 |
---|---|---|
committer | Eddie Hung <eddie@fpgeh.com> | 2019-06-24 20:01:43 -0700 |
commit | cec2292b0bac819568c3d982e544cbe0aff99cb8 (patch) | |
tree | 9d20dd6ba7c36b8b69dbf2b571860fed46d13f55 | |
parent | 6027549464bf91cee4d4bcbe9586e719dce78c80 (diff) | |
parent | e32cef4063316e4f12030841a0682abbb948e20b (diff) | |
download | yosys-cec2292b0bac819568c3d982e544cbe0aff99cb8.tar.gz yosys-cec2292b0bac819568c3d982e544cbe0aff99cb8.tar.bz2 yosys-cec2292b0bac819568c3d982e544cbe0aff99cb8.zip |
Merge remote-tracking branch 'origin/master' into xaig
-rw-r--r-- | backends/json/json.cc | 4 | ||||
-rw-r--r-- | frontends/json/jsonparse.cc | 12 |
2 files changed, 16 insertions, 0 deletions
diff --git a/backends/json/json.cc b/backends/json/json.cc index 1781a28cd..dda4dfedd 100644 --- a/backends/json/json.cc +++ b/backends/json/json.cc @@ -126,6 +126,10 @@ struct JsonWriter f << stringf("%s\n", first ? "" : ","); f << stringf(" %s: {\n", get_name(n).c_str()); f << stringf(" \"direction\": \"%s\",\n", w->port_input ? w->port_output ? "inout" : "input" : "output"); + if (w->start_offset) + f << stringf(" \"offset\": %d,\n", w->start_offset); + if (w->upto) + f << stringf(" \"upto\": 1,\n"); f << stringf(" \"bits\": %s\n", get_bits(w).c_str()); f << stringf(" }"); first = false; diff --git a/frontends/json/jsonparse.cc b/frontends/json/jsonparse.cc index b74d41dd2..f5ae8eb72 100644 --- a/frontends/json/jsonparse.cc +++ b/frontends/json/jsonparse.cc @@ -292,6 +292,18 @@ void json_import(Design *design, string &modname, JsonNode *node) if (port_wire == nullptr) port_wire = module->addWire(port_name, GetSize(port_bits_node->data_array)); + if (port_node->data_dict.count("upto") != 0) { + JsonNode *val = port_node->data_dict.at("upto"); + if (val->type == 'N') + port_wire->upto = val->data_number != 0; + } + + if (port_node->data_dict.count("offset") != 0) { + JsonNode *val = port_node->data_dict.at("offset"); + if (val->type == 'N') + port_wire->start_offset = val->data_number; + } + if (port_direction_node->data_string == "input") { port_wire->port_input = true; } else |