aboutsummaryrefslogtreecommitdiffstats
path: root/frontends/json/jsonparse.cc
diff options
context:
space:
mode:
authorJim Lawson <ucbjrl@berkeley.edu>2019-07-24 10:20:46 -0700
committerJim Lawson <ucbjrl@berkeley.edu>2019-07-24 10:20:46 -0700
commitc66b7402c06455535bb43ee65fe20515b5b9c0ee (patch)
treead135d83bf75e72b65e3136b4f6746c1f9cafab3 /frontends/json/jsonparse.cc
parent349c47250a9779bc58634870d2e3facfe95fbff8 (diff)
parenta66f17b6a78af8f6989235f0c72d5548b0560a58 (diff)
downloadyosys-c66b7402c06455535bb43ee65fe20515b5b9c0ee.tar.gz
yosys-c66b7402c06455535bb43ee65fe20515b5b9c0ee.tar.bz2
yosys-c66b7402c06455535bb43ee65fe20515b5b9c0ee.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'frontends/json/jsonparse.cc')
-rw-r--r--frontends/json/jsonparse.cc24
1 files changed, 24 insertions, 0 deletions
diff --git a/frontends/json/jsonparse.cc b/frontends/json/jsonparse.cc
index 82361ea9b..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
@@ -372,6 +384,18 @@ void json_import(Design *design, string &modname, JsonNode *node)
if (wire == nullptr)
wire = module->addWire(net_name, GetSize(bits_node->data_array));
+ if (net_node->data_dict.count("upto") != 0) {
+ JsonNode *val = net_node->data_dict.at("upto");
+ if (val->type == 'N')
+ wire->upto = val->data_number != 0;
+ }
+
+ if (net_node->data_dict.count("offset") != 0) {
+ JsonNode *val = net_node->data_dict.at("offset");
+ if (val->type == 'N')
+ wire->start_offset = val->data_number;
+ }
+
for (int i = 0; i < GetSize(bits_node->data_array); i++)
{
JsonNode *bitval_node = bits_node->data_array.at(i);