summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/test.yml2
-rw-r--r--build.sbt31
-rw-r--r--core/src/main/scala-2.12/scala/collection/immutable/package.scala13
-rw-r--r--core/src/main/scala/chisel3/Aggregate.scala12
-rw-r--r--core/src/main/scala/chisel3/Bits.scala1
-rw-r--r--core/src/main/scala/chisel3/Data.scala45
-rw-r--r--core/src/main/scala/chisel3/Module.scala4
-rw-r--r--core/src/main/scala/chisel3/Num.scala2
-rw-r--r--core/src/main/scala/chisel3/RawModule.scala1
-rw-r--r--core/src/main/scala/chisel3/internal/Binding.scala4
-rw-r--r--core/src/main/scala/chisel3/internal/Builder.scala2
-rw-r--r--core/src/main/scala/chisel3/internal/Error.scala6
-rw-r--r--core/src/main/scala/chisel3/internal/Namer.scala14
-rw-r--r--core/src/main/scala/chisel3/package.scala3
-rw-r--r--plugin/src/main/scala/chisel3/internal/plugin/BundleComponent.scala (renamed from plugin/src/main/scala-2.12/chisel3/internal/plugin/BundleComponent.scala)0
-rw-r--r--plugin/src/main/scala/chisel3/internal/plugin/ChiselComponent.scala (renamed from plugin/src/main/scala-2.12/chisel3/internal/plugin/ChiselComponent.scala)0
-rw-r--r--plugin/src/main/scala/chisel3/internal/plugin/ChiselPlugin.scala (renamed from plugin/src/main/scala-2.12/chisel3/internal/plugin/ChiselPlugin.scala)0
-rw-r--r--src/main/scala/chisel3/aop/Select.scala8
-rw-r--r--src/main/scala/chisel3/aop/injecting/InjectingAspect.scala2
-rw-r--r--src/main/scala/chisel3/compatibility.scala2
-rw-r--r--src/main/scala/chisel3/util/MixedVec.scala4
-rw-r--r--src/test/scala/chiselTests/ChiselSpec.scala2
-rw-r--r--src/test/scala/chiselTests/ExtModule.scala16
-rw-r--r--src/test/scala/examples/VendingMachineUtils.scala2
24 files changed, 105 insertions, 71 deletions
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 6d9fe475..5d321bfa 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -15,7 +15,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- scala: [2.12.13]
+ scala: [2.13.5, 2.12.13]
container:
image: ucbbar/chisel3-tools
options: --user github --entrypoint /bin/bash
diff --git a/build.sbt b/build.sbt
index a9e18216..60b83a3e 100644
--- a/build.sbt
+++ b/build.sbt
@@ -15,12 +15,23 @@ lazy val commonSettings = Seq (
organization := "edu.berkeley.cs",
version := "3.5-SNAPSHOT",
autoAPIMappings := true,
- scalaVersion := "2.12.13",
- crossScalaVersions := Seq("2.12.13"),
- scalacOptions := Seq("-deprecation", "-feature",
- ),
+ scalaVersion := "2.13.5",
+ crossScalaVersions := Seq("2.13.5", "2.12.13"),
+ scalacOptions := Seq("-deprecation", "-feature"),
libraryDependencies += "org.scala-lang" % "scala-reflect" % scalaVersion.value,
- addCompilerPlugin("org.scalamacros" % "paradise" % "2.1.1" cross CrossVersion.full),
+ // Macros paradise is integrated into 2.13 but requires a scalacOption
+ scalacOptions ++= {
+ CrossVersion.partialVersion(scalaVersion.value) match {
+ case Some((2, n)) if n >= 13 => "-Ymacro-annotations" :: Nil
+ case _ => Nil
+ }
+ },
+ libraryDependencies ++= {
+ CrossVersion.partialVersion(scalaVersion.value) match {
+ case Some((2, n)) if n >= 13 => Nil
+ case _ => compilerPlugin("org.scalamacros" % "paradise" % "2.1.1" cross CrossVersion.full) :: Nil
+ }
+ }
)
lazy val publishSettings = Seq (
@@ -93,6 +104,12 @@ lazy val pluginScalaVersions = Seq(
"2.12.11",
"2.12.12",
"2.12.13",
+ "2.13.0",
+ "2.13.1",
+ "2.13.2",
+ "2.13.3",
+ "2.13.4",
+ "2.13.5"
)
lazy val plugin = (project in file("plugin")).
@@ -108,9 +125,7 @@ lazy val plugin = (project in file("plugin")).
crossTarget := {
// workaround for https://github.com/sbt/sbt/issues/5097
target.value / s"scala-${scalaVersion.value}"
- },
- // Only publish for Scala 2.12
- publish / skip := !scalaVersion.value.startsWith("2.12")
+ }
).
settings(
mimaPreviousArtifacts := {
diff --git a/core/src/main/scala-2.12/scala/collection/immutable/package.scala b/core/src/main/scala-2.12/scala/collection/immutable/package.scala
new file mode 100644
index 00000000..7ae87d9b
--- /dev/null
+++ b/core/src/main/scala-2.12/scala/collection/immutable/package.scala
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package scala.collection
+
+import scala.collection.immutable.ListMap
+
+package object immutable {
+ val SeqMap = ListMap
+ type SeqMap[K, +V] = ListMap[K, V]
+
+ val VectorMap = ListMap
+ type VectorMap[K, +V] = ListMap[K, V]
+}
diff --git a/core/src/main/scala/chisel3/Aggregate.scala b/core/src/main/scala/chisel3/Aggregate.scala
index c0b965b6..0031e53b 100644
--- a/core/src/main/scala/chisel3/Aggregate.scala
+++ b/core/src/main/scala/chisel3/Aggregate.scala
@@ -4,7 +4,7 @@ package chisel3
import chisel3.experimental.VecLiterals.AddVecLiteralConstructor
-import scala.collection.immutable.ListMap
+import scala.collection.immutable.{SeqMap, VectorMap}
import scala.collection.mutable.{HashSet, LinkedHashMap}
import scala.language.experimental.macros
import chisel3.experimental.{BaseModule, BundleLiteralException, ChiselEnum, EnumType, VecLiteralException}
@@ -516,7 +516,7 @@ sealed class Vec[T <: Data] private[chisel3] (gen: => T, val length: Int)
}
}
- clone.bind(VecLitBinding(ListMap(vecLitLinkedMap.toSeq:_*)))
+ clone.bind(VecLitBinding(VectorMap(vecLitLinkedMap.toSeq:_*)))
clone
}
}
@@ -595,7 +595,7 @@ object VecInit extends SourceInfoDoc {
/** A trait for [[Vec]]s containing common hardware generators for collection
* operations.
*/
-trait VecLike[T <: Data] extends collection.IndexedSeq[T] with HasId with SourceInfoDoc {
+trait VecLike[T <: Data] extends IndexedSeq[T] with HasId with SourceInfoDoc {
def apply(p: UInt): T = macro CompileOptionsTransform.pArg
/** @group SourceInfoTransformMacro */
@@ -835,7 +835,7 @@ abstract class Record(private[chisel3] implicit val compileOptions: CompileOptio
s"$className$bindingString"
}
- val elements: ListMap[String, Data]
+ def elements: SeqMap[String, Data]
/** Name for Pretty Printing */
def className: String = this.getClass.getSimpleName
@@ -958,7 +958,7 @@ abstract class Bundle(implicit compileOptions: CompileOptions) extends Record {
* assert(uint === "h12345678".U) // This will pass
* }}}
*/
- final lazy val elements: ListMap[String, Data] = {
+ final lazy val elements: SeqMap[String, Data] = {
val nameMap = LinkedHashMap[String, Data]()
for (m <- getPublicFields(classOf[Bundle])) {
getBundleField(m) match {
@@ -985,7 +985,7 @@ abstract class Bundle(implicit compileOptions: CompileOptions) extends Record {
}
}
}
- ListMap(nameMap.toSeq sortWith { case ((an, a), (bn, b)) => (a._id > b._id) || ((a eq b) && (an > bn)) }: _*)
+ VectorMap(nameMap.toSeq sortWith { case ((an, a), (bn, b)) => (a._id > b._id) || ((a eq b) && (an > bn)) }: _*)
}
/**
diff --git a/core/src/main/scala/chisel3/Bits.scala b/core/src/main/scala/chisel3/Bits.scala
index 17829143..aa5b1abb 100644
--- a/core/src/main/scala/chisel3/Bits.scala
+++ b/core/src/main/scala/chisel3/Bits.scala
@@ -1147,6 +1147,7 @@ sealed class Bool() extends UInt(1.W) with Reset {
package experimental {
import chisel3.internal.firrtl.BinaryPoint
+ import chisel3.internal.requireIsHardware // Fix ambiguous import
/** Chisel types that have binary points support retrieving
* literal values as `Double` or `BigDecimal`
diff --git a/core/src/main/scala/chisel3/Data.scala b/core/src/main/scala/chisel3/Data.scala
index 0241f248..0832161e 100644
--- a/core/src/main/scala/chisel3/Data.scala
+++ b/core/src/main/scala/chisel3/Data.scala
@@ -122,6 +122,7 @@ object ActualDirection {
}
package experimental {
+ import chisel3.internal.requireIsHardware // Fix ambiguous import
/** Experimental hardware construction reflection API
*/
@@ -763,35 +764,33 @@ object WireDefault {
}
}
-package internal {
- /** RHS (source) for Invalidate API.
- * Causes connection logic to emit a DefInvalid when connected to an output port (or wire).
- */
- private[chisel3] object InternalDontCare extends Element {
- // This object should be initialized before we execute any user code that refers to it,
- // otherwise this "Chisel" object will end up on the UserModule's id list.
- // We make it private to chisel3 so it has to be accessed through the package object.
+/** RHS (source) for Invalidate API.
+ * Causes connection logic to emit a DefInvalid when connected to an output port (or wire).
+ */
+final case object DontCare extends Element {
+ // This object should be initialized before we execute any user code that refers to it,
+ // otherwise this "Chisel" object will end up on the UserModule's id list.
+ // We make it private to chisel3 so it has to be accessed through the package object.
- private[chisel3] override val width: Width = UnknownWidth()
+ private[chisel3] override val width: Width = UnknownWidth()
- bind(DontCareBinding(), SpecifiedDirection.Output)
- override def cloneType: this.type = DontCare
+ bind(DontCareBinding(), SpecifiedDirection.Output)
+ override def cloneType: this.type = DontCare
- override def toString: String = "DontCare()"
+ override def toString: String = "DontCare()"
- override def litOption: Option[BigInt] = None
+ override def litOption: Option[BigInt] = None
- def toPrintable: Printable = PString("DONTCARE")
+ def toPrintable: Printable = PString("DONTCARE")
- private[chisel3] def connectFromBits(that: Bits)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): Unit = {
- Builder.error("connectFromBits: DontCare cannot be a connection sink (LHS)")
- }
+ private[chisel3] def connectFromBits(that: Bits)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): Unit = {
+ Builder.error("connectFromBits: DontCare cannot be a connection sink (LHS)")
+ }
- def do_asUInt(implicit sourceInfo: chisel3.internal.sourceinfo.SourceInfo, compileOptions: CompileOptions): UInt = {
- Builder.error("DontCare does not have a UInt representation")
- 0.U
- }
- // DontCare's only match themselves.
- private[chisel3] def typeEquivalent(that: Data): Boolean = that == DontCare
+ def do_asUInt(implicit sourceInfo: chisel3.internal.sourceinfo.SourceInfo, compileOptions: CompileOptions): UInt = {
+ Builder.error("DontCare does not have a UInt representation")
+ 0.U
}
+ // DontCare's only match themselves.
+ private[chisel3] def typeEquivalent(that: Data): Boolean = that == DontCare
}
diff --git a/core/src/main/scala/chisel3/Module.scala b/core/src/main/scala/chisel3/Module.scala
index ede9ccc6..b204be8d 100644
--- a/core/src/main/scala/chisel3/Module.scala
+++ b/core/src/main/scala/chisel3/Module.scala
@@ -4,9 +4,7 @@ package chisel3
import scala.collection.immutable.ListMap
import scala.collection.mutable.{ArrayBuffer, HashMap}
-import scala.collection.JavaConversions._
import scala.language.experimental.macros
-import java.util.IdentityHashMap
import chisel3.internal._
import chisel3.internal.Builder._
@@ -139,6 +137,8 @@ abstract class Module(implicit moduleCompileOptions: CompileOptions) extends Raw
package experimental {
+ import chisel3.internal.requireIsChiselType // Fix ambiguous import
+
object IO {
/** Constructs a port for the current Module
*
diff --git a/core/src/main/scala/chisel3/Num.scala b/core/src/main/scala/chisel3/Num.scala
index e1af9bdb..70f2fbf0 100644
--- a/core/src/main/scala/chisel3/Num.scala
+++ b/core/src/main/scala/chisel3/Num.scala
@@ -226,7 +226,7 @@ trait NumObject {
*/
def toBigInt(x: BigDecimal, binaryPoint: Int): BigInt = {
val multiplier = math.pow(2, binaryPoint)
- val result = (x * multiplier).rounded.toBigInt()
+ val result = (x * multiplier).rounded.toBigInt
result
}
diff --git a/core/src/main/scala/chisel3/RawModule.scala b/core/src/main/scala/chisel3/RawModule.scala
index d2ba6e84..f678c587 100644
--- a/core/src/main/scala/chisel3/RawModule.scala
+++ b/core/src/main/scala/chisel3/RawModule.scala
@@ -4,7 +4,6 @@ package chisel3
import scala.collection.mutable.{ArrayBuffer, HashMap}
import scala.util.Try
-import scala.collection.JavaConversions._
import scala.language.experimental.macros
import chisel3.experimental.BaseModule
diff --git a/core/src/main/scala/chisel3/internal/Binding.scala b/core/src/main/scala/chisel3/internal/Binding.scala
index 8a3c4330..300803ce 100644
--- a/core/src/main/scala/chisel3/internal/Binding.scala
+++ b/core/src/main/scala/chisel3/internal/Binding.scala
@@ -6,7 +6,7 @@ import chisel3._
import chisel3.experimental.BaseModule
import chisel3.internal.firrtl.LitArg
-import scala.collection.immutable.ListMap
+import scala.collection.immutable.VectorMap
/** Requires that a node is hardware ("bound")
*/
@@ -126,4 +126,4 @@ case class ElementLitBinding(litArg: LitArg) extends LitBinding
// Literal binding attached to the root of a Bundle, containing literal values of its children.
case class BundleLitBinding(litMap: Map[Data, LitArg]) extends LitBinding
// Literal binding attached to the root of a Vec, containing literal values of its children.
-case class VecLitBinding(litMap: ListMap[Data, LitArg]) extends LitBinding
+case class VecLitBinding(litMap: VectorMap[Data, LitArg]) extends LitBinding
diff --git a/core/src/main/scala/chisel3/internal/Builder.scala b/core/src/main/scala/chisel3/internal/Builder.scala
index 084bdc88..e1e4d460 100644
--- a/core/src/main/scala/chisel3/internal/Builder.scala
+++ b/core/src/main/scala/chisel3/internal/Builder.scala
@@ -655,7 +655,7 @@ private[chisel3] object Builder extends LazyLogging {
errors.checkpoint()
logger.warn("Done elaborating.")
- (Circuit(components.last.name, components, annotations), mod)
+ (Circuit(components.last.name, components.toSeq, annotations.toSeq), mod)
}
}
initializeSingletons()
diff --git a/core/src/main/scala/chisel3/internal/Error.scala b/core/src/main/scala/chisel3/internal/Error.scala
index 134f4c87..454be360 100644
--- a/core/src/main/scala/chisel3/internal/Error.scala
+++ b/core/src/main/scala/chisel3/internal/Error.scala
@@ -45,7 +45,7 @@ object ExceptionHelpers {
}
// Step 1: Remove elements from the top in the package trimlist
- ((a: Array[StackTraceElement]) => a.view.dropWhile(inTrimlist))
+ ((a: Array[StackTraceElement]) => a.dropWhile(inTrimlist))
// Step 2: Optionally remove elements from the bottom until the anchor
.andThen(_.reverse)
.andThen( a =>
@@ -125,10 +125,10 @@ class ChiselException(message: String, cause: Throwable = null) extends Exceptio
}
val trimmedLeft = throwable.getStackTrace().view.dropWhile(isBlacklisted)
- val trimmedReverse = trimmedLeft.reverse
+ val trimmedReverse = trimmedLeft.toIndexedSeq.reverse.view
.dropWhile(ste => !ste.getClassName.startsWith(builderName))
.dropWhile(isBlacklisted)
- trimmedReverse.reverse.toArray
+ trimmedReverse.toIndexedSeq.reverse.toArray
}
def chiselStackTrace: String = {
diff --git a/core/src/main/scala/chisel3/internal/Namer.scala b/core/src/main/scala/chisel3/internal/Namer.scala
index 1694d71d..c6e36cb6 100644
--- a/core/src/main/scala/chisel3/internal/Namer.scala
+++ b/core/src/main/scala/chisel3/internal/Namer.scala
@@ -8,9 +8,8 @@ import chisel3.experimental.NoChiselNamePrefix
import scala.collection.mutable.Stack
import scala.collection.mutable.ListBuffer
-import scala.collection.JavaConversions._
-
import java.util.IdentityHashMap
+import scala.collection.JavaConverters._
/** Recursive Function Namer overview
*
@@ -81,7 +80,14 @@ class NamingContext extends NamingContextInterface {
def addDescendant(ref: Any, descendant: NamingContext) {
ref match {
case ref: AnyRef =>
- descendants.getOrElseUpdate(ref, ListBuffer[NamingContext]()) += descendant
+ // getOrElseUpdate
+ val l = descendants.get(ref)
+ val buf = if (l != null) l else {
+ val value = ListBuffer[NamingContext]()
+ descendants.put(ref, value)
+ value
+ }
+ buf += descendant
case _ => anonymousDescendants += descendant
}
}
@@ -111,7 +117,7 @@ class NamingContext extends NamingContextInterface {
}
}
- for (descendant <- descendants.values().flatten) {
+ for (descendant <- descendants.values.asScala.flatten) {
// Where we have a broken naming link, just ignore the missing parts
descendant.namePrefix(prefix)
}
diff --git a/core/src/main/scala/chisel3/package.scala b/core/src/main/scala/chisel3/package.scala
index d5a4bfae..64cfa8b9 100644
--- a/core/src/main/scala/chisel3/package.scala
+++ b/core/src/main/scala/chisel3/package.scala
@@ -207,9 +207,6 @@ package object chisel3 {
a.allElements
}
def getModulePorts(m: Module): Seq[Port] = m.getPorts
- // Invalidate API - a DontCare element for explicit assignment to outputs,
- // indicating the signal is intentionally not driven.
- val DontCare = chisel3.internal.InternalDontCare
class BindingException(message: String) extends ChiselException(message)
/** A function expected a Chisel type but got a hardware object
diff --git a/plugin/src/main/scala-2.12/chisel3/internal/plugin/BundleComponent.scala b/plugin/src/main/scala/chisel3/internal/plugin/BundleComponent.scala
index 96851e95..96851e95 100644
--- a/plugin/src/main/scala-2.12/chisel3/internal/plugin/BundleComponent.scala
+++ b/plugin/src/main/scala/chisel3/internal/plugin/BundleComponent.scala
diff --git a/plugin/src/main/scala-2.12/chisel3/internal/plugin/ChiselComponent.scala b/plugin/src/main/scala/chisel3/internal/plugin/ChiselComponent.scala
index b1302ba3..b1302ba3 100644
--- a/plugin/src/main/scala-2.12/chisel3/internal/plugin/ChiselComponent.scala
+++ b/plugin/src/main/scala/chisel3/internal/plugin/ChiselComponent.scala
diff --git a/plugin/src/main/scala-2.12/chisel3/internal/plugin/ChiselPlugin.scala b/plugin/src/main/scala/chisel3/internal/plugin/ChiselPlugin.scala
index 23082329..23082329 100644
--- a/plugin/src/main/scala-2.12/chisel3/internal/plugin/ChiselPlugin.scala
+++ b/plugin/src/main/scala/chisel3/internal/plugin/ChiselPlugin.scala
diff --git a/src/main/scala/chisel3/aop/Select.scala b/src/main/scala/chisel3/aop/Select.scala
index e2689f39..b9ad808b 100644
--- a/src/main/scala/chisel3/aop/Select.scala
+++ b/src/main/scala/chisel3/aop/Select.scala
@@ -248,7 +248,7 @@ object Select {
case other =>
}
})
- predicatedConnects
+ predicatedConnects.toSeq
}
/** Selects all stop statements, and includes the predicates surrounding the stop statement
@@ -264,7 +264,7 @@ object Select {
case other =>
}
})
- stops
+ stops.toSeq
}
/** Selects all printf statements, and includes the predicates surrounding the printf statement
@@ -280,7 +280,7 @@ object Select {
case other =>
}
})
- printfs
+ printfs.toSeq
}
// Checks that a module has finished its construction
@@ -321,7 +321,7 @@ object Select {
}
} catch {
case e: ChiselException => i.getOptionRef.get match {
- case l: LitArg => l.num.intValue().toString
+ case l: LitArg => l.num.intValue.toString
}
}
diff --git a/src/main/scala/chisel3/aop/injecting/InjectingAspect.scala b/src/main/scala/chisel3/aop/injecting/InjectingAspect.scala
index 768680ed..c540fc83 100644
--- a/src/main/scala/chisel3/aop/injecting/InjectingAspect.scala
+++ b/src/main/scala/chisel3/aop/injecting/InjectingAspect.scala
@@ -89,7 +89,7 @@ abstract class InjectorAspect[T <: RawModule, M <: RawModule](
Seq(other)
}
- InjectStatement(ModuleTarget(circuit, module.name), ir.Block(stmts), modules, annotations)
+ InjectStatement(ModuleTarget(circuit, module.name), ir.Block(stmts.toSeq), modules, annotations)
}.toSeq
}
}
diff --git a/src/main/scala/chisel3/compatibility.scala b/src/main/scala/chisel3/compatibility.scala
index 3b9a3dcc..dde2321d 100644
--- a/src/main/scala/chisel3/compatibility.scala
+++ b/src/main/scala/chisel3/compatibility.scala
@@ -398,8 +398,8 @@ package object Chisel {
}
// Deprecated as of Chsiel3
- @throws(classOf[Exception])
object throwException {
+ @throws(classOf[Exception])
def apply(s: String, t: Throwable = null): Nothing = {
val xcpt = new Exception(s, t)
throw xcpt
diff --git a/src/main/scala/chisel3/util/MixedVec.scala b/src/main/scala/chisel3/util/MixedVec.scala
index a632ec3a..14d6be38 100644
--- a/src/main/scala/chisel3/util/MixedVec.scala
+++ b/src/main/scala/chisel3/util/MixedVec.scala
@@ -91,6 +91,10 @@ final class MixedVec[T <: Data](private val eltsIn: Seq[T]) extends Record with
eltsIn.foreach(e => requireIsChiselType(e))
}
+ // In Scala 2.13, this is protected in IndexedSeq, must override as public because it's public in
+ // Record
+ override def className: String = "MixedVec"
+
// Clone the inputs so that we have our own references.
private val elts: IndexedSeq[T] = eltsIn.map(_.cloneTypeFull).toIndexedSeq
diff --git a/src/test/scala/chiselTests/ChiselSpec.scala b/src/test/scala/chiselTests/ChiselSpec.scala
index 9503089a..37c4a2b7 100644
--- a/src/test/scala/chiselTests/ChiselSpec.scala
+++ b/src/test/scala/chiselTests/ChiselSpec.scala
@@ -292,7 +292,7 @@ trait Utils {
exceptions.collectFirst{ case a: A => a } match {
case Some(a) => throw a
case None => exceptions match {
- case Nil => Unit
+ case Nil => ()
case h :: t => throw h
}
}
diff --git a/src/test/scala/chiselTests/ExtModule.scala b/src/test/scala/chiselTests/ExtModule.scala
index 0c3a0633..161b6f5f 100644
--- a/src/test/scala/chiselTests/ExtModule.scala
+++ b/src/test/scala/chiselTests/ExtModule.scala
@@ -9,7 +9,7 @@ import chisel3.testers.{BasicTester, TesterDriver}
// Avoid collisions with regular BlackBox tests by putting ExtModule blackboxes
// in their own scope.
-package ExtModule {
+package extmoduletests {
import chisel3.experimental.ExtModule
@@ -25,8 +25,8 @@ package ExtModule {
}
class ExtModuleTester extends BasicTester {
- val blackBoxPos = Module(new ExtModule.BlackBoxInverter)
- val blackBoxNeg = Module(new ExtModule.BlackBoxInverter)
+ val blackBoxPos = Module(new extmoduletests.BlackBoxInverter)
+ val blackBoxNeg = Module(new extmoduletests.BlackBoxInverter)
blackBoxPos.in := 1.U
blackBoxNeg.in := 0.U
@@ -42,10 +42,10 @@ class ExtModuleTester extends BasicTester {
*/
class MultiExtModuleTester extends BasicTester {
- val blackBoxInvPos = Module(new ExtModule.BlackBoxInverter)
- val blackBoxInvNeg = Module(new ExtModule.BlackBoxInverter)
- val blackBoxPassPos = Module(new ExtModule.BlackBoxPassthrough)
- val blackBoxPassNeg = Module(new ExtModule.BlackBoxPassthrough)
+ val blackBoxInvPos = Module(new extmoduletests.BlackBoxInverter)
+ val blackBoxInvNeg = Module(new extmoduletests.BlackBoxInverter)
+ val blackBoxPassPos = Module(new extmoduletests.BlackBoxPassthrough)
+ val blackBoxPassNeg = Module(new extmoduletests.BlackBoxPassthrough)
blackBoxInvPos.in := 1.U
blackBoxInvNeg.in := 0.U
@@ -71,7 +71,7 @@ class ExtModuleSpec extends ChiselFlatSpec {
"DataMirror.modulePorts" should "work with ExtModule" in {
ChiselStage.elaborate(new Module {
val io = IO(new Bundle { })
- val m = Module(new ExtModule.BlackBoxPassthrough)
+ val m = Module(new extmoduletests.BlackBoxPassthrough)
assert(DataMirror.modulePorts(m) == Seq(
"in" -> m.in, "out" -> m.out))
})
diff --git a/src/test/scala/examples/VendingMachineUtils.scala b/src/test/scala/examples/VendingMachineUtils.scala
index 131256f8..6847768a 100644
--- a/src/test/scala/examples/VendingMachineUtils.scala
+++ b/src/test/scala/examples/VendingMachineUtils.scala
@@ -34,6 +34,6 @@ object VendingMachineUtils {
value += incValue
}
}
- outputs
+ outputs.toSeq
}
}