From fbba13d195ee8408ceb51253bbaadaad01d709eb Mon Sep 17 00:00:00 2001 From: Adam Izraelevitz Date: Fri, 15 Apr 2022 14:59:36 -0700 Subject: [PATCH 1/2] Moved D/I sinternals to new core package --- core/src/main/scala/chisel3/Module.scala | 6 +++--- .../experimental/hierarchy/{ => core}/Definition.scala | 2 +- .../experimental/hierarchy/{ => core}/Hierarchy.scala | 2 +- .../experimental/hierarchy/{ => core}/Instance.scala | 2 +- .../hierarchy/{ => core}/IsInstantiable.scala | 2 +- .../experimental/hierarchy/{ => core}/IsLookupable.scala | 2 +- .../experimental/hierarchy/{ => core}/LibraryHooks.scala | 2 +- .../experimental/hierarchy/{ => core}/Lookupable.scala | 2 +- .../experimental/hierarchy/{ => core}/Underlying.scala | 2 +- .../scala/chisel3/experimental/hierarchy/package.scala | 9 +++++++++ core/src/main/scala/chisel3/internal/Builder.scala | 2 +- src/main/scala/chisel3/aop/Select.scala | 2 +- 12 files changed, 22 insertions(+), 13 deletions(-) rename core/src/main/scala/chisel3/experimental/hierarchy/{ => core}/Definition.scala (98%) rename core/src/main/scala/chisel3/experimental/hierarchy/{ => core}/Hierarchy.scala (99%) rename core/src/main/scala/chisel3/experimental/hierarchy/{ => core}/Instance.scala (99%) rename core/src/main/scala/chisel3/experimental/hierarchy/{ => core}/IsInstantiable.scala (91%) rename core/src/main/scala/chisel3/experimental/hierarchy/{ => core}/IsLookupable.scala (95%) rename core/src/main/scala/chisel3/experimental/hierarchy/{ => core}/LibraryHooks.scala (96%) rename core/src/main/scala/chisel3/experimental/hierarchy/{ => core}/Lookupable.scala (99%) rename core/src/main/scala/chisel3/experimental/hierarchy/{ => core}/Underlying.scala (89%) diff --git a/core/src/main/scala/chisel3/Module.scala b/core/src/main/scala/chisel3/Module.scala index 84139630da0..fc7375d03c0 100644 --- a/core/src/main/scala/chisel3/Module.scala +++ b/core/src/main/scala/chisel3/Module.scala @@ -201,7 +201,7 @@ package experimental { package internal { import chisel3.experimental.BaseModule - import chisel3.experimental.hierarchy.{Clone, IsInstantiable, Proto} + import chisel3.experimental.hierarchy.core.{Clone, IsInstantiable, Proto} object BaseModule { @@ -392,11 +392,11 @@ package internal { package experimental { - import chisel3.experimental.hierarchy.{IsInstantiable, Proto} + import chisel3.experimental.hierarchy.core.{IsInstantiable, Proto} object BaseModule { implicit class BaseModuleExtensions[T <: BaseModule](b: T) { - import chisel3.experimental.hierarchy.{Definition, Instance} + import chisel3.experimental.hierarchy.core.{Definition, Instance} def toInstance: Instance[T] = new Instance(Proto(b)) def toDefinition: Definition[T] = new Definition(Proto(b)) } diff --git a/core/src/main/scala/chisel3/experimental/hierarchy/Definition.scala b/core/src/main/scala/chisel3/experimental/hierarchy/core/Definition.scala similarity index 98% rename from core/src/main/scala/chisel3/experimental/hierarchy/Definition.scala rename to core/src/main/scala/chisel3/experimental/hierarchy/core/Definition.scala index 59b4c692954..81a661bafc1 100644 --- a/core/src/main/scala/chisel3/experimental/hierarchy/Definition.scala +++ b/core/src/main/scala/chisel3/experimental/hierarchy/core/Definition.scala @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 -package chisel3.experimental.hierarchy +package chisel3.experimental.hierarchy.core import scala.language.experimental.macros import chisel3._ diff --git a/core/src/main/scala/chisel3/experimental/hierarchy/Hierarchy.scala b/core/src/main/scala/chisel3/experimental/hierarchy/core/Hierarchy.scala similarity index 99% rename from core/src/main/scala/chisel3/experimental/hierarchy/Hierarchy.scala rename to core/src/main/scala/chisel3/experimental/hierarchy/core/Hierarchy.scala index 2016bb542ac..ec504987653 100644 --- a/core/src/main/scala/chisel3/experimental/hierarchy/Hierarchy.scala +++ b/core/src/main/scala/chisel3/experimental/hierarchy/core/Hierarchy.scala @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 -package chisel3.experimental.hierarchy +package chisel3.experimental.hierarchy.core import chisel3._ import scala.collection.mutable.{HashMap, HashSet} diff --git a/core/src/main/scala/chisel3/experimental/hierarchy/Instance.scala b/core/src/main/scala/chisel3/experimental/hierarchy/core/Instance.scala similarity index 99% rename from core/src/main/scala/chisel3/experimental/hierarchy/Instance.scala rename to core/src/main/scala/chisel3/experimental/hierarchy/core/Instance.scala index cc926771499..d24a8aebe7a 100644 --- a/core/src/main/scala/chisel3/experimental/hierarchy/Instance.scala +++ b/core/src/main/scala/chisel3/experimental/hierarchy/core/Instance.scala @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 -package chisel3.experimental.hierarchy +package chisel3.experimental.hierarchy.core import scala.collection.mutable.{ArrayBuffer, HashMap} import scala.language.experimental.macros diff --git a/core/src/main/scala/chisel3/experimental/hierarchy/IsInstantiable.scala b/core/src/main/scala/chisel3/experimental/hierarchy/core/IsInstantiable.scala similarity index 91% rename from core/src/main/scala/chisel3/experimental/hierarchy/IsInstantiable.scala rename to core/src/main/scala/chisel3/experimental/hierarchy/core/IsInstantiable.scala index 27e06d926f9..64bafc68003 100644 --- a/core/src/main/scala/chisel3/experimental/hierarchy/IsInstantiable.scala +++ b/core/src/main/scala/chisel3/experimental/hierarchy/core/IsInstantiable.scala @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 -package chisel3.experimental.hierarchy +package chisel3.experimental.hierarchy.core /** While this is public, it is not recommended for users to extend directly. * Instead, use the [[@instantiable]] annotation on your trait or class. diff --git a/core/src/main/scala/chisel3/experimental/hierarchy/IsLookupable.scala b/core/src/main/scala/chisel3/experimental/hierarchy/core/IsLookupable.scala similarity index 95% rename from core/src/main/scala/chisel3/experimental/hierarchy/IsLookupable.scala rename to core/src/main/scala/chisel3/experimental/hierarchy/core/IsLookupable.scala index a82cbd7d9a5..76b01ef5c60 100644 --- a/core/src/main/scala/chisel3/experimental/hierarchy/IsLookupable.scala +++ b/core/src/main/scala/chisel3/experimental/hierarchy/core/IsLookupable.scala @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 -package chisel3.experimental.hierarchy +package chisel3.experimental.hierarchy.core /** A User-extendable trait to mark metadata-containers, e.g. parameter case classes, as valid to return unchanged * from an instance. diff --git a/core/src/main/scala/chisel3/experimental/hierarchy/LibraryHooks.scala b/core/src/main/scala/chisel3/experimental/hierarchy/core/LibraryHooks.scala similarity index 96% rename from core/src/main/scala/chisel3/experimental/hierarchy/LibraryHooks.scala rename to core/src/main/scala/chisel3/experimental/hierarchy/core/LibraryHooks.scala index d4818f63916..7acd1cc0da2 100644 --- a/core/src/main/scala/chisel3/experimental/hierarchy/LibraryHooks.scala +++ b/core/src/main/scala/chisel3/experimental/hierarchy/core/LibraryHooks.scala @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 -package chisel3.experimental.hierarchy +package chisel3.experimental.hierarchy.core import scala.annotation.implicitNotFound diff --git a/core/src/main/scala/chisel3/experimental/hierarchy/Lookupable.scala b/core/src/main/scala/chisel3/experimental/hierarchy/core/Lookupable.scala similarity index 99% rename from core/src/main/scala/chisel3/experimental/hierarchy/Lookupable.scala rename to core/src/main/scala/chisel3/experimental/hierarchy/core/Lookupable.scala index 46a38e7c89c..c34caff2681 100644 --- a/core/src/main/scala/chisel3/experimental/hierarchy/Lookupable.scala +++ b/core/src/main/scala/chisel3/experimental/hierarchy/core/Lookupable.scala @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 -package chisel3.experimental.hierarchy +package chisel3.experimental.hierarchy.core import chisel3.experimental.BaseModule import chisel3.internal.sourceinfo.SourceInfo diff --git a/core/src/main/scala/chisel3/experimental/hierarchy/Underlying.scala b/core/src/main/scala/chisel3/experimental/hierarchy/core/Underlying.scala similarity index 89% rename from core/src/main/scala/chisel3/experimental/hierarchy/Underlying.scala rename to core/src/main/scala/chisel3/experimental/hierarchy/core/Underlying.scala index 864cc8af4cd..76079d27eea 100644 --- a/core/src/main/scala/chisel3/experimental/hierarchy/Underlying.scala +++ b/core/src/main/scala/chisel3/experimental/hierarchy/core/Underlying.scala @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 -package chisel3.experimental.hierarchy +package chisel3.experimental.hierarchy.core import chisel3.internal.BaseModule.IsClone diff --git a/core/src/main/scala/chisel3/experimental/hierarchy/package.scala b/core/src/main/scala/chisel3/experimental/hierarchy/package.scala index c309ab52c90..5738356e9f3 100644 --- a/core/src/main/scala/chisel3/experimental/hierarchy/package.scala +++ b/core/src/main/scala/chisel3/experimental/hierarchy/package.scala @@ -45,4 +45,13 @@ package object hierarchy { * }}} */ class public extends chisel3.internal.public + + type Instance[P] = core.Instance[P] + val Instance = core.Instance + type Definition[P] = core.Definition[P] + val Definition = core.Definition + type Hierarchy[P] = core.Hierarchy[P] + val Hierarchy = core.Hierarchy + type IsInstantiable = core.IsInstantiable + type IsLookupable = core.IsLookupable } diff --git a/core/src/main/scala/chisel3/internal/Builder.scala b/core/src/main/scala/chisel3/internal/Builder.scala index 4180f580ebe..c0403081ec6 100644 --- a/core/src/main/scala/chisel3/internal/Builder.scala +++ b/core/src/main/scala/chisel3/internal/Builder.scala @@ -6,7 +6,7 @@ import scala.util.DynamicVariable import scala.collection.mutable.ArrayBuffer import chisel3._ import chisel3.experimental._ -import chisel3.experimental.hierarchy.{Clone, Instance} +import chisel3.experimental.hierarchy.core.{Clone, Instance} import chisel3.internal.firrtl._ import chisel3.internal.naming._ import _root_.firrtl.annotations.{CircuitName, ComponentName, IsMember, ModuleName, Named, ReferenceTarget} diff --git a/src/main/scala/chisel3/aop/Select.scala b/src/main/scala/chisel3/aop/Select.scala index 3a2a8931d14..e318b55cd24 100644 --- a/src/main/scala/chisel3/aop/Select.scala +++ b/src/main/scala/chisel3/aop/Select.scala @@ -7,7 +7,7 @@ import chisel3.internal.{HasId} import chisel3.experimental.BaseModule import chisel3.experimental.FixedPoint import chisel3.internal.firrtl.{Definition => DefinitionIR, _} -import chisel3.experimental.hierarchy._ +import chisel3.experimental.hierarchy.core._ import chisel3.internal.PseudoModule import chisel3.internal.BaseModule.ModuleClone import firrtl.annotations.ReferenceTarget From 628d711126085fb4cfcecb3e78c9fd1bc8115100 Mon Sep 17 00:00:00 2001 From: Adam Izraelevitz Date: Fri, 15 Apr 2022 15:02:47 -0700 Subject: [PATCH 2/2] move library hooks back to hierarchy --- .../experimental/hierarchy/{core => }/LibraryHooks.scala | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) rename core/src/main/scala/chisel3/experimental/hierarchy/{core => }/LibraryHooks.scala (93%) diff --git a/core/src/main/scala/chisel3/experimental/hierarchy/core/LibraryHooks.scala b/core/src/main/scala/chisel3/experimental/hierarchy/LibraryHooks.scala similarity index 93% rename from core/src/main/scala/chisel3/experimental/hierarchy/core/LibraryHooks.scala rename to core/src/main/scala/chisel3/experimental/hierarchy/LibraryHooks.scala index 7acd1cc0da2..c6d7212f5cb 100644 --- a/core/src/main/scala/chisel3/experimental/hierarchy/core/LibraryHooks.scala +++ b/core/src/main/scala/chisel3/experimental/hierarchy/LibraryHooks.scala @@ -1,7 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 -package chisel3.experimental.hierarchy.core +package chisel3.experimental.hierarchy +import chisel3.experimental.hierarchy.core.Underlying import scala.annotation.implicitNotFound @implicitNotFound("These functions are only for building hierarchy-compatible Chisel libraries! Users beware!")