From cb48b4dee02abe2080b665b26db9fc2e0c865d4c Mon Sep 17 00:00:00 2001 From: Angie Date: Wed, 22 Feb 2017 17:44:52 -0800 Subject: added more helpers --- src/main/scala/firrtl/Namespace.scala | 12 ++++++------ src/main/scala/firrtl/passes/memlib/MemUtils.scala | 5 +++++ 2 files changed, 11 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/main/scala/firrtl/Namespace.scala b/src/main/scala/firrtl/Namespace.scala index 798458c4..b3629211 100644 --- a/src/main/scala/firrtl/Namespace.scala +++ b/src/main/scala/firrtl/Namespace.scala @@ -14,13 +14,13 @@ class Namespace private { private var n = 0L def tryName(value: String): Boolean = { - if (!namespace.contains(value)) { - namespace += value - true - } else { - false - } + val unused = !contains(value) + if (unused) namespace += value + unused } + + def contains(value: String): Boolean = namespace.contains(value) + def newName(value: String): String = { var str = value while (!tryName(str)) { diff --git a/src/main/scala/firrtl/passes/memlib/MemUtils.scala b/src/main/scala/firrtl/passes/memlib/MemUtils.scala index 0962015e..75378824 100644 --- a/src/main/scala/firrtl/passes/memlib/MemUtils.scala +++ b/src/main/scala/firrtl/passes/memlib/MemUtils.scala @@ -94,6 +94,7 @@ object castRhs { lhst match { case _: SIntType => DoPrim(AsSInt, Seq(rhs), Seq.empty, lhst) case FixedType(_, IntWidth(p)) => DoPrim(AsFixedPoint, Seq(rhs), Seq(p), lhst) + case _: ClockType => DoPrim(AsClock, Seq(rhs), Seq.empty, lhst) case _: UIntType => rhs } } @@ -154,6 +155,10 @@ object createSubField { def apply(exp: Expression, n: String) = WSubField(exp, n, field_type(exp.tpe, n), UNKNOWNGENDER) } +object createInstance { + def apply(name: String, module: String) = WDefInstance(NoInfo, name, module, UnknownType) +} + object connectFields { def apply(lref: Expression, lname: String, rref: Expression, rname: String): Connect = Connect(NoInfo, createSubField(lref, lname), createSubField(rref, rname)) -- cgit v1.2.3