summaryrefslogtreecommitdiff
path: root/core/src/main/scala/chisel3/internal
diff options
context:
space:
mode:
authorAdam Izraelevitz2020-09-14 10:17:49 -0700
committerGitHub2020-09-14 17:17:49 +0000
commit69e27b2fd9e02d4e3a024eec0cafce5b4b46c10a (patch)
treeda496ac9fcc2ae6d02560edf9cf10d10e9b3964b /core/src/main/scala/chisel3/internal
parent3b5fda0c604b393833769250ade9f7d13ca4e5e7 (diff)
Documentation and minor plugin changes. (#1573)
* Added documentation. Bugfix in plugin. Moved plugin APIs to separate package * Revert reg naming behavior (omit underscore) * Added documentation and a test * Addressed reviewer feedback.
Diffstat (limited to 'core/src/main/scala/chisel3/internal')
-rw-r--r--core/src/main/scala/chisel3/internal/Builder.scala2
-rw-r--r--core/src/main/scala/chisel3/internal/plugin/package.scala22
2 files changed, 23 insertions, 1 deletions
diff --git a/core/src/main/scala/chisel3/internal/Builder.scala b/core/src/main/scala/chisel3/internal/Builder.scala
index e55f1af7..741a2498 100644
--- a/core/src/main/scala/chisel3/internal/Builder.scala
+++ b/core/src/main/scala/chisel3/internal/Builder.scala
@@ -119,7 +119,7 @@ private[chisel3] trait HasId extends InstanceId {
* @param seed Seed for the name of this component
* @return this object
*/
- def autoSeed(seed: String): this.type = {
+ private [chisel3] def autoSeed(seed: String): this.type = {
auto_seed = Some(seed)
for(hook <- auto_postseed_hooks) { hook(seed) }
prefix_seed = Builder.getPrefix()
diff --git a/core/src/main/scala/chisel3/internal/plugin/package.scala b/core/src/main/scala/chisel3/internal/plugin/package.scala
new file mode 100644
index 00000000..6d78b1c3
--- /dev/null
+++ b/core/src/main/scala/chisel3/internal/plugin/package.scala
@@ -0,0 +1,22 @@
+// See LICENSE for license details.
+
+package chisel3.internal
+
+package object plugin {
+ /** Used by Chisel's compiler plugin to automatically name signals
+ * DO NOT USE in your normal Chisel code!!!
+ *
+ * @param name The name to use
+ * @param nameMe The thing to be named
+ * @tparam T The type of the thing to be named
+ * @return The thing, but now named
+ */
+ 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
+ }
+}