diff options
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/scala/chiselTests/BundleWire.scala | 28 | ||||
| -rw-r--r-- | src/test/scala/chiselTests/FixedPointSpec.scala | 41 | ||||
| -rw-r--r-- | src/test/scala/chiselTests/Vec.scala | 6 |
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() } |
