aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/scala/firrtl/Namespace.scala12
-rw-r--r--src/main/scala/firrtl/passes/memlib/MemUtils.scala5
2 files changed, 11 insertions, 6 deletions
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))