From 164490c8fbf132ca65644d05d6ff8d0d7a3beb20 Mon Sep 17 00:00:00 2001 From: Adam Izraelevitz Date: Wed, 29 Jul 2020 20:48:31 -0700 Subject: 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 --- core/src/main/scala/chisel3/experimental/package.scala | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'core/src/main/scala/chisel3/experimental') 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 + } } -- cgit v1.2.3