summaryrefslogtreecommitdiff
path: root/core/src/main/scala/chisel3/experimental/package.scala
diff options
context:
space:
mode:
authorAdam Izraelevitz2020-07-29 20:48:31 -0700
committerGitHub2020-07-29 20:48:31 -0700
commit164490c8fbf132ca65644d05d6ff8d0d7a3beb20 (patch)
tree862750b85dca5b8496c40c24b3a4e5e67c268bd4 /core/src/main/scala/chisel3/experimental/package.scala
parent8aeb39b9b3755ccd0e3aa600b813ed4220ac72d8 (diff)
Improved Chisel Naming via Compiler Plugins + Prefixing (#1448)
Added prefixing and a compiler plugin to improve naming. Only works for Scala 2.12 and above. Co-authored-by: Jack Koenig <koenig@sifive.com>
Diffstat (limited to 'core/src/main/scala/chisel3/experimental/package.scala')
-rw-r--r--core/src/main/scala/chisel3/experimental/package.scala14
1 files changed, 14 insertions, 0 deletions
diff --git a/core/src/main/scala/chisel3/experimental/package.scala b/core/src/main/scala/chisel3/experimental/package.scala
index da103318..71fd186c 100644
--- a/core/src/main/scala/chisel3/experimental/package.scala
+++ b/core/src/main/scala/chisel3/experimental/package.scala
@@ -136,4 +136,18 @@ package object experimental {
}
}
}
+
+ // Use to add a prefix to any component generated in input scope
+ val prefix = chisel3.internal.prefix
+ // Use to remove prefixes not in provided scope
+ val noPrefix = chisel3.internal.noPrefix
+ // Used by Chisel's compiler plugin to automatically name signals
+ def autoNameRecursively[T <: Any](name: String, nameMe: T): T = {
+ chisel3.internal.Builder.nameRecursively(
+ name.replace(" ", ""),
+ nameMe,
+ (id: chisel3.internal.HasId, n: String) => id.autoSeed(n)
+ )
+ nameMe
+ }
}