Skip to content

Commit 77a3bff

Browse files
authored
Make chisel3.internal.firrtl.* private (#3732)
* Width, KnownWidth, and Unknown width promoted to package chisel3 * Other classes moved to new package private chisel3.internal.firrtl.ir
1 parent 7b8ffad commit 77a3bff

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+508
-587
lines changed

binder/src/main/scala/PanamaCIRCTConverter.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ import chisel3.{Data => ChiselData, _}
1313
import chisel3.properties.PropertyType
1414
import chisel3.experimental._
1515
import chisel3.internal._
16-
import chisel3.internal.firrtl._
16+
import chisel3.internal.firrtl.ir._
17+
import chisel3.internal.firrtl.Converter
1718
import chisel3.assert.{Assert => VerifAssert}
1819
import chisel3.assume.{Assume => VerifAssume}
1920
import chisel3.cover.{Cover => VerifCover}

core/src/main/scala/chisel3/Aggregate.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import chisel3.experimental.{BaseModule, BundleLiteralException, HasTypeAlias, O
1212
import chisel3.experimental.{SourceInfo, UnlocatableSourceInfo}
1313
import chisel3.internal._
1414
import chisel3.internal.Builder.pushCommand
15-
import chisel3.internal.firrtl._
15+
import chisel3.internal.firrtl.ir._
1616
import chisel3.internal.sourceinfo.{SourceInfoTransform, VecTransform}
1717
import chisel3.reflect.DataMirror
1818
import _root_.firrtl.{ir => fir}

core/src/main/scala/chisel3/Bits.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ import scala.language.experimental.macros
66
import chisel3.experimental.{requireIsHardware, SourceInfo}
77
import chisel3.internal.{throwException, BaseModule}
88
import chisel3.internal.Builder.pushOp
9-
import chisel3.internal.firrtl._
9+
import chisel3.internal.firrtl.ir._
1010
import chisel3.internal.sourceinfo.{
1111
IntLiteralApplyTransform,
1212
SourceInfoTransform,
1313
SourceInfoWhiteboxTransform,
1414
UIntTransform
1515
}
16-
import chisel3.internal.firrtl.PrimOp._
16+
import chisel3.internal.firrtl.ir.PrimOp._
1717
import _root_.firrtl.{ir => firrtlir}
1818
import chisel3.internal.{castToInt, Builder, Warning, WarningID}
1919
import chisel3.util.simpleClassName

core/src/main/scala/chisel3/BlackBox.scala

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,9 @@ package chisel3
55
import chisel3.experimental.{BaseModule, Param}
66
import chisel3.internal.BaseBlackBox
77
import chisel3.internal.Builder.pushCommand
8-
import chisel3.internal.firrtl._
8+
import chisel3.internal.firrtl.ir._
99
import chisel3.internal.throwException
1010
import chisel3.experimental.{SourceInfo, UnlocatableSourceInfo}
11-
import scala.annotation.nowarn
1211

1312
package internal {
1413

@@ -68,7 +67,6 @@ package experimental {
6867
* }}}
6968
* @note The parameters API is experimental and may change
7069
*/
71-
@nowarn("msg=class Port") // delete when Port becomes private
7270
abstract class ExtModule(val params: Map[String, Param] = Map.empty[String, Param]) extends BaseBlackBox {
7371
private[chisel3] override def generateComponent(): Option[Component] = {
7472
require(!_closed, "Can't generate module more than once")
@@ -126,7 +124,6 @@ package experimental {
126124
* }}}
127125
* @note The parameters API is experimental and may change
128126
*/
129-
@nowarn("msg=class Port") // delete when Port becomes private
130127
abstract class BlackBox(
131128
val params: Map[String, Param] = Map.empty[String, Param])
132129
extends BaseBlackBox {

core/src/main/scala/chisel3/BoolFactory.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
package chisel3
44

5-
import chisel3.internal.firrtl.{ULit, Width}
5+
import chisel3.internal.firrtl.ir.ULit
66

77
trait BoolFactory {
88

core/src/main/scala/chisel3/ChiselEnum.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ import scala.reflect.macros.blackbox.Context
88
import scala.collection.mutable
99
import chisel3.experimental.{annotate, requireIsHardware, ChiselAnnotation, SourceInfo, UnlocatableSourceInfo}
1010
import chisel3.internal.Builder.pushOp
11-
import chisel3.internal.firrtl.PrimOp._
12-
import chisel3.internal.firrtl._
11+
import chisel3.internal.firrtl.ir.PrimOp._
12+
import chisel3.internal.firrtl.ir._
1313
import chisel3.internal.sourceinfo._
1414
import chisel3.internal.{
1515
containsProbe,

core/src/main/scala/chisel3/Clock.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ package chisel3
55
import scala.language.experimental.macros
66
import chisel3.experimental.SourceInfo
77
import chisel3.internal.Builder.pushOp
8-
import chisel3.internal.firrtl._
8+
import chisel3.internal.firrtl.ir._
99
import chisel3.internal.sourceinfo._
10-
import chisel3.internal.firrtl.PrimOp.AsUIntOp
10+
import chisel3.internal.firrtl.ir.PrimOp.AsUIntOp
1111

1212
object Clock {
1313
def apply(): Clock = new Clock

core/src/main/scala/chisel3/Data.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import chisel3.experimental.dataview.reifySingleData
1111
import chisel3.internal.Builder.pushCommand
1212
import chisel3.internal._
1313
import chisel3.internal.sourceinfo._
14-
import chisel3.internal.firrtl._
14+
import chisel3.internal.firrtl.ir._
1515
import chisel3.properties.Property
1616
import chisel3.reflect.DataMirror
1717
import chisel3.util.simpleClassName

core/src/main/scala/chisel3/Element.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
package chisel3
44

55
import chisel3.internal.Builder.pushCommand
6-
import chisel3.internal.firrtl._
6+
import chisel3.internal.firrtl.ir._
77
import chisel3.experimental.SourceInfo
88
import chisel3.internal._
99

core/src/main/scala/chisel3/Layer.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ package chisel3
44

55
import chisel3.experimental.{SourceInfo, UnlocatableSourceInfo}
66
import chisel3.internal.{Builder, HasId}
7-
import chisel3.internal.firrtl.{LayerBlockBegin, LayerBlockEnd, Node}
7+
import chisel3.internal.firrtl.ir.{LayerBlockBegin, LayerBlockEnd, Node}
88
import chisel3.util.simpleClassName
99
import scala.collection.mutable.LinkedHashSet
1010

core/src/main/scala/chisel3/Mem.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import firrtl.{ir => fir}
88

99
import chisel3.internal._
1010
import chisel3.internal.Builder.pushCommand
11-
import chisel3.internal.firrtl._
11+
import chisel3.internal.firrtl.ir._
1212
import chisel3.internal.sourceinfo.{MemTransform, SourceInfoTransform}
1313
import chisel3.experimental.{SourceInfo, SourceLine}
1414

core/src/main/scala/chisel3/Module.scala

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import scala.language.experimental.macros
88

99
import chisel3.internal._
1010
import chisel3.internal.Builder._
11-
import chisel3.internal.firrtl._
11+
import chisel3.internal.firrtl.ir._
1212
import chisel3.experimental.{BaseModule, SourceInfo, UnlocatableSourceInfo}
1313
import chisel3.internal.sourceinfo.{InstTransform}
1414
import chisel3.properties.{Class, Property}
@@ -20,8 +20,6 @@ import chisel3.util.simpleClassName
2020

2121
object Module extends SourceInfoDoc {
2222

23-
import scala.annotation.nowarn
24-
2523
/** A wrapper method that all Module instantiations must be wrapped in
2624
* (necessary to help Chisel track internal state).
2725
*
@@ -32,7 +30,6 @@ object Module extends SourceInfoDoc {
3230
def apply[T <: BaseModule](bc: => T): T = macro InstTransform.apply[T]
3331

3432
/** @group SourceInfoTransformMacro */
35-
@nowarn("msg=class Port") // delete when Port becomes private
3633
def do_apply[T <: BaseModule](bc: => T)(implicit sourceInfo: SourceInfo): T = {
3734
// Instantiate the module definition.
3835
val module = evaluate[T](bc)
@@ -345,7 +342,6 @@ package internal {
345342
package experimental {
346343

347344
import chisel3.experimental.hierarchy.core.{IsInstantiable, Proto}
348-
import scala.annotation.nowarn
349345

350346
object BaseModule {
351347
implicit class BaseModuleExtensions[T <: BaseModule](b: T)(implicit si: SourceInfo) {
@@ -366,7 +362,6 @@ package experimental {
366362
/** Abstract base class for Modules, an instantiable organizational unit for RTL.
367363
*/
368364
// TODO: seal this?
369-
@nowarn("msg=class Port") // delete when Port becomes private
370365
abstract class BaseModule extends HasId with IsInstantiable {
371366
_parent.foreach(_.addId(this))
372367

core/src/main/scala/chisel3/Mux.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ import chisel3.internal._
88
import chisel3.internal.Builder.pushOp
99
import chisel3.experimental.{requireIsHardware, SourceInfo}
1010
import chisel3.internal.sourceinfo.MuxTransform
11-
import chisel3.internal.firrtl._
12-
import chisel3.internal.firrtl.PrimOp._
11+
import chisel3.internal.firrtl.ir._
12+
import chisel3.internal.firrtl.ir.PrimOp._
1313

1414
object Mux extends SourceInfoDoc {
1515

core/src/main/scala/chisel3/Printable.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
package chisel3
44

5-
import chisel3.internal.firrtl.Component
5+
import chisel3.internal.firrtl.ir.Component
66

77
import scala.collection.mutable
88

core/src/main/scala/chisel3/Printf.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ object printf {
162162

163163
Printable.checkScope(pable)
164164

165-
pushCommand(chisel3.internal.firrtl.Printf(printfId, sourceInfo, clock.ref, pable))
165+
pushCommand(chisel3.internal.firrtl.ir.Printf(printfId, sourceInfo, clock.ref, pable))
166166
printfId
167167
}
168168
private[chisel3] def printfWithoutReset(

core/src/main/scala/chisel3/RawModule.scala

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,12 @@ package chisel3
44

55
import scala.util.Try
66
import scala.language.experimental.macros
7-
import scala.annotation.nowarn
87
import chisel3.experimental.{BaseModule, SourceInfo, UnlocatableSourceInfo}
98
import chisel3.internal._
109
import chisel3.experimental.hierarchy.{InstanceClone, ModuleClone}
1110
import chisel3.properties.{DynamicObject, StaticObject}
1211
import chisel3.internal.Builder._
13-
import chisel3.internal.firrtl._
12+
import chisel3.internal.firrtl.ir._
1413
import _root_.firrtl.annotations.{IsModule, ModuleTarget}
1514
import scala.collection.immutable.VectorBuilder
1615
import scala.collection.mutable.ArrayBuffer
@@ -19,7 +18,6 @@ import scala.collection.mutable.ArrayBuffer
1918
* This abstract base class is a user-defined module which does not include implicit clock and reset and supports
2019
* multiple IO() declarations.
2120
*/
22-
@nowarn("msg=class Port") // delete when Port becomes private
2321
abstract class RawModule extends BaseModule {
2422

2523
/** Hook to invoke hardware generators after the rest of the Module is constructed.
@@ -102,7 +100,7 @@ abstract class RawModule extends BaseModule {
102100
//
103101
// Other Internal Functions
104102
//
105-
private var _firrtlPorts: Option[Seq[firrtl.Port]] = None
103+
private var _firrtlPorts: Option[Seq[Port]] = None
106104

107105
private[chisel3] def checkPorts(): Unit = {
108106
for ((port, source) <- getModulePortsAndLocators) {

core/src/main/scala/chisel3/Reg.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import scala.language.experimental.macros
66

77
import chisel3.internal._
88
import chisel3.internal.Builder.pushCommand
9-
import chisel3.internal.firrtl._
9+
import chisel3.internal.firrtl.ir._
1010
import chisel3.experimental.SourceInfo
1111
import chisel3.internal.sourceinfo.SourceInfoTransform
1212

core/src/main/scala/chisel3/SIntFactory.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
package chisel3
44

5-
import chisel3.internal.firrtl.{SLit, Width}
5+
import chisel3.internal.firrtl.ir.SLit
66

77
trait SIntFactory {
88

core/src/main/scala/chisel3/UIntFactory.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
package chisel3
44

5-
import chisel3.internal.firrtl.{KnownWidth, ULit, UnknownWidth, Width}
5+
import chisel3.internal.firrtl.ir.ULit
66
import firrtl.Utils
77

88
// This is currently a factory because both Bits and UInt inherit it.

core/src/main/scala/chisel3/VerificationStatement.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import scala.reflect.macros.blackbox.Context
66
import scala.language.experimental.macros
77
import chisel3.internal._
88
import chisel3.internal.Builder.pushCommand
9-
import chisel3.internal.firrtl._
9+
import chisel3.internal.firrtl.ir._
1010
import chisel3.experimental.SourceInfo
1111

1212
import scala.annotation.nowarn

core/src/main/scala/chisel3/When.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ package chisel3
55
import scala.language.experimental.macros
66
import chisel3.internal._
77
import chisel3.internal.Builder.pushCommand
8-
import chisel3.internal.firrtl._
8+
import chisel3.internal.firrtl.ir._
99
import chisel3.experimental.{SourceInfo, UnlocatableSourceInfo}
1010

1111
object when {
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
// SPDX-License-Identifier: Apache-2.0
2+
3+
package chisel3
4+
5+
object Width {
6+
def apply(x: Int): Width = KnownWidth(x)
7+
def apply(): Width = UnknownWidth()
8+
}
9+
10+
sealed abstract class Width {
11+
type W = Int
12+
def min(that: Width): Width = this.op(that, _ min _)
13+
def max(that: Width): Width = this.op(that, _ max _)
14+
def +(that: Width): Width = this.op(that, _ + _)
15+
def +(that: Int): Width = this.op(this, (a, b) => a + that)
16+
def shiftRight(that: Int): Width = this.op(this, (a, b) => 0.max(a - that))
17+
def dynamicShiftLeft(that: Width): Width =
18+
this.op(that, (a, b) => a + (1 << b) - 1)
19+
20+
def known: Boolean
21+
def get: W
22+
protected def op(that: Width, f: (W, W) => W): Width
23+
}
24+
25+
sealed case class UnknownWidth() extends Width {
26+
def known: Boolean = false
27+
def get: Int = None.get
28+
def op(that: Width, f: (W, W) => W): Width = this
29+
override def toString: String = ""
30+
}
31+
32+
sealed case class KnownWidth(value: Int) extends Width {
33+
require(value >= 0)
34+
def known: Boolean = true
35+
def get: Int = value
36+
def op(that: Width, f: (W, W) => W): Width = that match {
37+
case KnownWidth(x) => KnownWidth(f(value, x))
38+
case _ => that
39+
}
40+
override def toString: String = s"<${value.toString}>"
41+
}

core/src/main/scala/chisel3/aop/Aspect.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ object Aspect {
4141
* @param chiselIR
4242
* @return
4343
*/
44-
def getFirrtl(chiselIR: chisel3.internal.firrtl.Circuit): firrtl.ir.Circuit = {
44+
def getFirrtl(chiselIR: chisel3.internal.firrtl.ir.Circuit): firrtl.ir.Circuit = {
4545
chisel3.internal.firrtl.Converter.convert(chiselIR)
4646
}
4747
}

core/src/main/scala/chisel3/connectable/Connection.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ package chisel3.connectable
55
import chisel3.{Aggregate, BiConnectException, Data, DontCare, InternalErrorException, RawModule}
66
import chisel3.internal.{BiConnect, Builder}
77
import chisel3.internal.Builder.pushCommand
8-
import chisel3.internal.firrtl.DefInvalid
8+
import chisel3.internal.firrtl.ir.DefInvalid
99
import chisel3.experimental.{prefix, SourceInfo, UnlocatableSourceInfo}
1010
import chisel3.experimental.{attach, Analog}
1111
import chisel3.reflect.DataMirror.hasProbeTypeModifier

core/src/main/scala/chisel3/experimental/Analog.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22

33
package chisel3.experimental
44

5-
import chisel3.internal.firrtl.Width
65
import chisel3.internal._
7-
import chisel3.{ActualDirection, Bits, Data, Element, PString, Printable, RawModule, SpecifiedDirection, UInt}
6+
import chisel3.{ActualDirection, Bits, Data, Element, PString, Printable, RawModule, SpecifiedDirection, UInt, Width}
87

98
import scala.collection.mutable
109

core/src/main/scala/chisel3/experimental/Attach.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ package chisel3.experimental
55
import chisel3.{ChiselException, RawModule}
66
import chisel3.internal._
77
import chisel3.internal.Builder.pushCommand
8-
import chisel3.internal.firrtl._
8+
import chisel3.internal.firrtl.ir._
99

1010
object attach {
1111
// Exceptions that can be generated by attach

core/src/main/scala/chisel3/experimental/IntrinsicModule.scala

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,12 @@ package chisel3.experimental
55
import chisel3.SpecifiedDirection
66
import chisel3.experimental.{BaseModule, Param}
77
import chisel3.internal.Builder.pushCommand
8-
import chisel3.internal.firrtl._
9-
import scala.annotation.nowarn
8+
import chisel3.internal.firrtl.ir._
109

1110
private[chisel3] abstract class BaseIntrinsicModule(intrinsicName: String) extends BaseModule {
1211
val intrinsic = intrinsicName
1312
}
1413

15-
@nowarn("msg=class Port") // delete when Port becomes private
1614
abstract class IntrinsicModule(intrinsicName: String, val params: Map[String, Param] = Map.empty[String, Param])
1715
extends BaseIntrinsicModule(intrinsicName) {
1816
private[chisel3] override def generateComponent(): Option[Component] = {

core/src/main/scala/chisel3/experimental/OpaqueType.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ package chisel3.experimental
44

55
import chisel3._
66
import chisel3.internal.{Builder, ChildBinding}
7-
import chisel3.internal.firrtl.Arg
7+
import chisel3.internal.firrtl.ir.Arg
88

99
/** Indicates if this Record represents an "Opaque Type"
1010
*

core/src/main/scala/chisel3/experimental/hierarchy/DefinitionClone.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ package chisel3.experimental.hierarchy
44

55
import chisel3.experimental.BaseModule
66
import chisel3.internal.{HasId, PseudoModule}
7-
import chisel3.internal.firrtl.{Component, Ref}
7+
import chisel3.internal.firrtl.ir.{Component, Ref}
88

99
/** Represents a Definition root module, when accessing something from a definition
1010
*

0 commit comments

Comments
 (0)