aboutsummaryrefslogtreecommitdiffstats
path: root/frontends
diff options
context:
space:
mode:
authorJannis Harder <me@jix.one>2022-11-23 15:12:17 +0100
committerGitHub <noreply@github.com>2022-11-23 15:12:17 +0100
commitfc2f622a27dbc604a4acce68bea8c20b208c1742 (patch)
treea19dac08ea32661da5c418fae41756cbbb086164 /frontends
parent13e4f343b9818d1066e910f396fc634981fc07db (diff)
parenta862642fac5d5b7700b2e13829a411f2755273a0 (diff)
downloadyosys-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
Diffstat (limited to 'frontends')
-rw-r--r--frontends/verilog/verilog_parser.y6
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);
}
}