aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/scala/firrtl/passes/ReplaceAccesses.scala5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/main/scala/firrtl/passes/ReplaceAccesses.scala b/src/main/scala/firrtl/passes/ReplaceAccesses.scala
index 75cca77a..6992b6b8 100644
--- a/src/main/scala/firrtl/passes/ReplaceAccesses.scala
+++ b/src/main/scala/firrtl/passes/ReplaceAccesses.scala
@@ -18,7 +18,10 @@ object ReplaceAccesses extends Pass with PreservesAll[Transform] {
def run(c: Circuit): Circuit = {
def onStmt(s: Statement): Statement = s map onStmt map onExp
def onExp(e: Expression): Expression = e match {
- case WSubAccess(ex, UIntLiteral(value, width), t, g) => WSubIndex(onExp(ex), value.toInt, t, g)
+ case WSubAccess(ex, UIntLiteral(value, _), t, g) => ex.tpe match {
+ case VectorType(_, len) if (value < len) => WSubIndex(onExp(ex), value.toInt, t, g)
+ case _ => e map onExp
+ }
case _ => e map onExp
}