summaryrefslogtreecommitdiff
path: root/src/test/scala/chiselTests/IOCompatibility.scala
diff options
context:
space:
mode:
authorJim Lawson2016-10-06 08:57:10 -0700
committerJim Lawson2016-10-06 08:57:10 -0700
commit82625071405672eb4a19363d6f73f359ac28a7f5 (patch)
treedee5beff0e7333fa86c1cdcdb79c0d111114b8c9 /src/test/scala/chiselTests/IOCompatibility.scala
parentb7c6e0d1a2098b545938a5a8dfce2b1d9294532f (diff)
parent7de30c2b893a3f24d43f2e131557430eb64f6bc8 (diff)
Merge branch 'master' into tobits-deprecation
Diffstat (limited to 'src/test/scala/chiselTests/IOCompatibility.scala')
-rw-r--r--src/test/scala/chiselTests/IOCompatibility.scala45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/test/scala/chiselTests/IOCompatibility.scala b/src/test/scala/chiselTests/IOCompatibility.scala
new file mode 100644
index 00000000..7bf3dded
--- /dev/null
+++ b/src/test/scala/chiselTests/IOCompatibility.scala
@@ -0,0 +1,45 @@
+// See LICENSE for license details.
+
+package chiselTests
+
+import chisel3._
+
+class IOCSimpleIO extends Bundle {
+ val in = Input(UInt(width=32))
+ val out = Output(UInt(width=32))
+}
+
+class IOCPlusOne extends Module {
+ val io = IO(new IOCSimpleIO)
+ io.out := io.in + UInt(1)
+}
+
+class IOCModuleVec(val n: Int) extends Module {
+ val io = IO(new Bundle {
+ val ins = Vec(n, Input(UInt(width=32)))
+ val outs = Vec(n, Output(UInt(width=32)))
+ })
+ val pluses = Vec.fill(n){ Module(new IOCPlusOne).io }
+ for (i <- 0 until n) {
+ pluses(i).in := io.ins(i)
+ io.outs(i) := pluses(i).out
+ }
+}
+
+class IOCModuleWire extends Module {
+ val io = IO(new IOCSimpleIO)
+ val inc = Wire(Module(new IOCPlusOne).io.chiselCloneType)
+ inc.in := io.in
+ io.out := inc.out
+}
+
+class IOCompatibilitySpec extends ChiselPropSpec {
+
+ property("IOCModuleVec should elaborate") {
+ elaborate { new IOCModuleVec(2) }
+ }
+
+ property("IOCModuleWire should elaborate") {
+ elaborate { new IOCModuleWire }
+ }
+}