summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJim Lawson2016-07-27 09:13:45 -0700
committerJim Lawson2016-07-27 09:13:45 -0700
commite065416d59871d790cca9d75dc9a40fcc7b52015 (patch)
tree0d8c515233865db02595a4dc20c8a84b197294d3 /src
parentddeff65c1c50f0a7c3604cdc254538fbf1263d4f (diff)
Additional compatibility code.
Diffstat (limited to 'src')
-rw-r--r--src/main/scala/chisel3/package.scala30
-rw-r--r--src/test/scala/chiselTests/DeqIOSpec.scala4
-rw-r--r--src/test/scala/chiselTests/VectorPacketIO.scala4
3 files changed, 34 insertions, 4 deletions
diff --git a/src/main/scala/chisel3/package.scala b/src/main/scala/chisel3/package.scala
index 926ca00d..5fcf5e67 100644
--- a/src/main/scala/chisel3/package.scala
+++ b/src/main/scala/chisel3/package.scala
@@ -7,6 +7,9 @@ package object chisel3 {
import internal.sourceinfo.{SourceInfo, SourceInfoTransform}
import util.BitPat
+ import chisel3.core.{Binding, Bits, Element, FlippedBinder}
+ import chisel3.util._
+ import chisel3.internal.firrtl.Port
type Direction = chisel3.core.Direction
object Input {
@@ -117,4 +120,31 @@ package object chisel3 {
val NODIR = chisel3.core.Direction.Unspecified
type ChiselException = chisel3.internal.ChiselException
type ValidIO[+T <: Data] = chisel3.util.Valid[T]
+ val Decoupled = chisel3.util.DecoupledIO
+
+ class EnqIO[+T <: Data](gen: T) extends DecoupledIO(gen) {
+ def init(): Unit = {
+ this.noenq()
+ }
+ override def cloneType: this.type = EnqIO(gen).asInstanceOf[this.type]
+ }
+ class DeqIO[+T <: Data](gen: T) extends DecoupledIO(gen) {
+ Binding.bind(this, FlippedBinder, "Error: Cannot flip ")
+ def init(): Unit = {
+ this.nodeq()
+ }
+ override def cloneType: this.type = DeqIO(gen).asInstanceOf[this.type]
+ }
+ object EnqIO {
+ def apply[T<:Data](gen: T): EnqIO[T] = new EnqIO(gen)
+ }
+ object DeqIO {
+ def apply[T<:Data](gen: T): DeqIO[T] = new DeqIO(gen)
+ }
+
+ // Debugger/Tester access to internal Chisel data structures and methods.
+ def getDataElements(a: Aggregate): Seq[Element] = {
+ a.allElements
+ }
+ def getModulePorts(m: Module): Seq[Port] = m.getPorts
}
diff --git a/src/test/scala/chiselTests/DeqIOSpec.scala b/src/test/scala/chiselTests/DeqIOSpec.scala
index cd8a5d63..d41c50e5 100644
--- a/src/test/scala/chiselTests/DeqIOSpec.scala
+++ b/src/test/scala/chiselTests/DeqIOSpec.scala
@@ -17,8 +17,8 @@ class UsesDeqIOInfo extends Bundle {
class UsesDeqIO extends Module {
val io = IO(new Bundle {
- val in = DeqIO(new UsesDeqIOInfo)
- val out = EnqIO(new UsesDeqIOInfo)
+ val in = chisel3.util.DeqIO(new UsesDeqIOInfo)
+ val out = chisel3.util.EnqIO(new UsesDeqIOInfo)
})
}
diff --git a/src/test/scala/chiselTests/VectorPacketIO.scala b/src/test/scala/chiselTests/VectorPacketIO.scala
index 6e1d267d..86c0d66f 100644
--- a/src/test/scala/chiselTests/VectorPacketIO.scala
+++ b/src/test/scala/chiselTests/VectorPacketIO.scala
@@ -28,8 +28,8 @@ class Packet extends Bundle {
* The problem does not occur if the Vec is taken out
*/
class VectorPacketIO(n: Int) extends Bundle {
- val ins = Vec(n, DeqIO(new Packet()))
- val outs = Vec(n, EnqIO(new Packet()))
+ val ins = Vec(n, chisel3.util.DeqIO(new Packet()))
+ val outs = Vec(n, chisel3.util.EnqIO(new Packet()))
}
/**