From 69e27b2fd9e02d4e3a024eec0cafce5b4b46c10a Mon Sep 17 00:00:00 2001 From: Adam Izraelevitz Date: Mon, 14 Sep 2020 10:17:49 -0700 Subject: 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.--- core/src/main/scala/chisel3/internal/Builder.scala | 2 +- .../scala/chisel3/internal/plugin/package.scala | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 core/src/main/scala/chisel3/internal/plugin/package.scala (limited to 'core/src/main/scala/chisel3/internal') 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 + } +} -- cgit v1.2.3