aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/firrtl/passes/Resolves.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/firrtl/passes/Resolves.scala')
-rw-r--r--src/main/scala/firrtl/passes/Resolves.scala36
1 files changed, 18 insertions, 18 deletions
diff --git a/src/main/scala/firrtl/passes/Resolves.scala b/src/main/scala/firrtl/passes/Resolves.scala
index e4a06525..53aac229 100644
--- a/src/main/scala/firrtl/passes/Resolves.scala
+++ b/src/main/scala/firrtl/passes/Resolves.scala
@@ -22,7 +22,7 @@ object ResolveKinds extends Pass {
case sx: WDefInstance => kinds(sx.name) = InstanceKind
case sx: DefMemory => kinds(sx.name) = MemKind
case _ =>
- }
+ }
s map find_stmt(kinds)
}
@@ -40,14 +40,14 @@ object ResolveKinds extends Pass {
map find_stmt(kinds)
map resolve_stmt(kinds))
}
-
+
def run(c: Circuit): Circuit =
c copy (modules = c.modules map resolve_kinds)
}
-object ResolveGenders extends Pass {
- def resolve_e(g: Gender)(e: Expression): Expression = e match {
- case ex: WRef => ex copy (gender = g)
+object ResolveFlows extends Pass {
+ def resolve_e(g: Flow)(e: Expression): Expression = e match {
+ case ex: WRef => ex copy (flow = g)
case WSubField(exp, name, tpe, _) => WSubField(
Utils.field_flip(exp.tpe, name) match {
case Default => resolve_e(g)(exp)
@@ -56,25 +56,25 @@ object ResolveGenders extends Pass {
case WSubIndex(exp, value, tpe, _) =>
WSubIndex(resolve_e(g)(exp), value, tpe, g)
case WSubAccess(exp, index, tpe, _) =>
- WSubAccess(resolve_e(g)(exp), resolve_e(MALE)(index), tpe, g)
+ WSubAccess(resolve_e(g)(exp), resolve_e(SourceFlow)(index), tpe, g)
case _ => e map resolve_e(g)
}
-
+
def resolve_s(s: Statement): Statement = s match {
//TODO(azidar): pretty sure don't need to do anything for Attach, but not positive...
case IsInvalid(info, expr) =>
- IsInvalid(info, resolve_e(FEMALE)(expr))
+ IsInvalid(info, resolve_e(SinkFlow)(expr))
case Connect(info, loc, expr) =>
- Connect(info, resolve_e(FEMALE)(loc), resolve_e(MALE)(expr))
+ Connect(info, resolve_e(SinkFlow)(loc), resolve_e(SourceFlow)(expr))
case PartialConnect(info, loc, expr) =>
- PartialConnect(info, resolve_e(FEMALE)(loc), resolve_e(MALE)(expr))
- case sx => sx map resolve_e(MALE) map resolve_s
+ PartialConnect(info, resolve_e(SinkFlow)(loc), resolve_e(SourceFlow)(expr))
+ case sx => sx map resolve_e(SourceFlow) map resolve_s
}
- def resolve_gender(m: DefModule): DefModule = m map resolve_s
+ def resolve_flow(m: DefModule): DefModule = m map resolve_s
def run(c: Circuit): Circuit =
- c copy (modules = c.modules map resolve_gender)
+ c copy (modules = c.modules map resolve_flow)
}
object CInferMDir extends Pass {
@@ -111,7 +111,7 @@ object CInferMDir extends Pass {
case e => e map infer_mdir_e(mports, dir)
}
- def infer_mdir_s(mports: MPortDirMap)(s: Statement): Statement = s match {
+ def infer_mdir_s(mports: MPortDirMap)(s: Statement): Statement = s match {
case sx: CDefMPort =>
mports(sx.name) = sx.direction
sx map infer_mdir_e(mports, MRead)
@@ -125,17 +125,17 @@ object CInferMDir extends Pass {
sx
case sx => sx map infer_mdir_s(mports) map infer_mdir_e(mports, MRead)
}
-
- def set_mdir_s(mports: MPortDirMap)(s: Statement): Statement = s match {
+
+ def set_mdir_s(mports: MPortDirMap)(s: Statement): Statement = s match {
case sx: CDefMPort => sx copy (direction = mports(sx.name))
case sx => sx map set_mdir_s(mports)
}
-
+
def infer_mdir(m: DefModule): DefModule = {
val mports = new MPortDirMap
m map infer_mdir_s(mports) map set_mdir_s(mports)
}
-
+
def run(c: Circuit): Circuit =
c copy (modules = c.modules map infer_mdir)
}