diff options
| author | Angie | 2017-02-22 17:44:52 -0800 |
|---|---|---|
| committer | Adam Izraelevitz | 2017-02-23 14:55:00 -0800 |
| commit | cb48b4dee02abe2080b665b26db9fc2e0c865d4c (patch) | |
| tree | 1bd6a0d56affdc8b725cf0a60cd3015f95e335fb /src | |
| parent | 25e80f734c2accf7d520e74cac545d639376dca9 (diff) | |
added more helpers
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/scala/firrtl/Namespace.scala | 12 | ||||
| -rw-r--r-- | src/main/scala/firrtl/passes/memlib/MemUtils.scala | 5 |
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)) |
