diff options
author | Jannis Harder <me@jix.one> | 2022-11-23 15:12:17 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-23 15:12:17 +0100 |
commit | fc2f622a27dbc604a4acce68bea8c20b208c1742 (patch) | |
tree | a19dac08ea32661da5c418fae41756cbbb086164 | |
parent | 13e4f343b9818d1066e910f396fc634981fc07db (diff) | |
parent | a862642fac5d5b7700b2e13829a411f2755273a0 (diff) | |
download | yosys-fc2f622a27dbc604a4acce68bea8c20b208c1742.tar.gz yosys-fc2f622a27dbc604a4acce68bea8c20b208c1742.tar.bz2 yosys-fc2f622a27dbc604a4acce68bea8c20b208c1742.zip |
Merge pull request #3552 from daglem/fix-sv-c-array-dimensions
Correct interpretation of SystemVerilog C-style array dimensions
-rw-r--r-- | frontends/verilog/verilog_parser.y | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/frontends/verilog/verilog_parser.y b/frontends/verilog/verilog_parser.y index c533b0c40..70ee47561 100644 --- a/frontends/verilog/verilog_parser.y +++ b/frontends/verilog/verilog_parser.y @@ -229,9 +229,9 @@ static AstNode *checkRange(AstNode *type_node, AstNode *range_node) static void rewriteRange(AstNode *rangeNode) { if (rangeNode->type == AST_RANGE && rangeNode->children.size() == 1) { - // SV array size [n], rewrite as [n-1:0] - rangeNode->children[0] = new AstNode(AST_SUB, rangeNode->children[0], AstNode::mkconst_int(1, true)); - rangeNode->children.push_back(AstNode::mkconst_int(0, false)); + // SV array size [n], rewrite as [0:n-1] + rangeNode->children.push_back(new AstNode(AST_SUB, rangeNode->children[0], AstNode::mkconst_int(1, true))); + rangeNode->children[0] = AstNode::mkconst_int(0, false); } } |