summaryrefslogtreecommitdiff
path: root/src/test/scala/chiselTests
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/scala/chiselTests')
-rw-r--r--src/test/scala/chiselTests/BundleWire.scala28
-rw-r--r--src/test/scala/chiselTests/FixedPointSpec.scala41
-rw-r--r--src/test/scala/chiselTests/Vec.scala6
3 files changed, 72 insertions, 3 deletions
diff --git a/src/test/scala/chiselTests/BundleWire.scala b/src/test/scala/chiselTests/BundleWire.scala
index 53d46e93..5b38ff6e 100644
--- a/src/test/scala/chiselTests/BundleWire.scala
+++ b/src/test/scala/chiselTests/BundleWire.scala
@@ -24,6 +24,27 @@ class BundleWire(n: Int) extends Module {
}
}
+class BundleToUnitTester extends BasicTester {
+ val bundle1 = Wire(new Bundle {
+ val a = UInt(width = 4)
+ val b = UInt(width = 4)
+ })
+ val bundle2 = Wire(new Bundle {
+ val a = UInt(width = 2)
+ val b = UInt(width = 6)
+ })
+
+ // 0b00011011 split as 0001 1011 and as 00 011011
+ bundle1.a := 1.U
+ bundle1.b := 11.U
+ bundle2.a := 0.U
+ bundle2.b := 27.U
+
+ assert(bundle1.asUInt() === bundle2.asUInt())
+
+ stop()
+}
+
class BundleWireTester(n: Int, x: Int, y: Int) extends BasicTester {
val dut = Module(new BundleWire(n))
dut.io.in.x := UInt(x)
@@ -43,3 +64,10 @@ class BundleWireSpec extends ChiselPropSpec {
}
}
}
+
+class BundleToUIntSpec extends ChiselPropSpec {
+ property("Bundles with same data but different, underlying elements should compare as UInt") {
+ assertTesterPasses( new BundleToUnitTester )
+ }
+}
+
diff --git a/src/test/scala/chiselTests/FixedPointSpec.scala b/src/test/scala/chiselTests/FixedPointSpec.scala
new file mode 100644
index 00000000..69015e42
--- /dev/null
+++ b/src/test/scala/chiselTests/FixedPointSpec.scala
@@ -0,0 +1,41 @@
+// See LICENSE for license details.
+
+package chiselTests
+
+import chisel3._
+import chisel3.testers.BasicTester
+import org.scalatest._
+
+//scalastyle:off magic.number
+class FixedPointSpec extends FlatSpec with Matchers {
+ behavior of "fixed point utilities"
+
+ they should "allow conversion between doubles and the bigints needed to represent them" in {
+ val initialDouble = 0.125
+ val bigInt = FixedPoint.toBigInt(initialDouble, 4)
+ val finalDouble = FixedPoint.toDouble(bigInt, 4)
+
+ initialDouble should be(finalDouble)
+ }
+}
+
+class SBP extends Module {
+ val io = IO(new Bundle {
+ val in = Input(FixedPoint(6, 2))
+ val out = Output(FixedPoint(4, 0))
+ })
+ io.out := io.in.setBinaryPoint(0)
+}
+class SBPTester extends BasicTester {
+ val dut = Module(new SBP)
+ dut.io.in := FixedPoint.fromDouble(3.75, binaryPoint = 2)
+
+ assert(dut.io.out === FixedPoint.fromDouble(3.0, binaryPoint = 0))
+
+ stop()
+}
+class SBPSpec extends ChiselPropSpec {
+ property("should allow set binary point") {
+ assertTesterPasses { new SBPTester }
+ }
+}
diff --git a/src/test/scala/chiselTests/Vec.scala b/src/test/scala/chiselTests/Vec.scala
index c5447610..0d5a2188 100644
--- a/src/test/scala/chiselTests/Vec.scala
+++ b/src/test/scala/chiselTests/Vec.scala
@@ -23,9 +23,9 @@ class TabulateTester(n: Int) extends BasicTester {
val x = Vec(Array.tabulate(n){ i => UInt(i * 2) })
val u = Vec.tabulate(n)(i => UInt(i*2))
- assert(v.toBits === x.toBits)
- assert(v.toBits === u.toBits)
- assert(x.toBits === u.toBits)
+ assert(v.asUInt() === x.asUInt())
+ assert(v.asUInt() === u.asUInt())
+ assert(x.asUInt() === u.asUInt())
stop()
}