summaryrefslogtreecommitdiff
path: root/src/test/scala/chiselTests/GCD.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/scala/chiselTests/GCD.scala')
-rw-r--r--src/test/scala/chiselTests/GCD.scala19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/test/scala/chiselTests/GCD.scala b/src/test/scala/chiselTests/GCD.scala
index 1ef20610..12499abf 100644
--- a/src/test/scala/chiselTests/GCD.scala
+++ b/src/test/scala/chiselTests/GCD.scala
@@ -37,22 +37,22 @@ import org.scalatest.prop._
class GCD extends Module {
val io = new Bundle {
- val a = Bits(INPUT, 16)
- val b = Bits(INPUT, 16)
+ val a = UInt(INPUT, 32)
+ val b = UInt(INPUT, 32)
val e = Bool(INPUT)
- val z = Bits(OUTPUT, 16)
+ val z = UInt(OUTPUT, 32)
val v = Bool(OUTPUT)
}
- val x = Reg(Bits(width = 16))
- val y = Reg(Bits(width = 16))
+ val x = Reg(UInt(width = 32))
+ val y = Reg(UInt(width = 32))
when (x > y) { x := x -% y }
.otherwise { y := y -% x }
when (io.e) { x := io.a; y := io.b }
io.z := x
- io.v := y === Bits(0)
+ io.v := y === UInt(0)
}
-class GCDSpec extends ChiselSpec {
+class GCDSpec extends ChiselPropSpec {
class GCDTester(a: Int, b: Int, z: Int) extends BasicTester {
val dut = Module(new GCD)
@@ -67,13 +67,16 @@ class GCDSpec extends ChiselSpec {
}
}
+ //TODO: use generators and this function to make z's
+ def gcd(a: Int, b: Int): Int = if(b == 0) a else gcd(b, a%b)
+
val gcds = Table(
("a", "b", "z"), // First tuple defines column names
( 64, 48, 16), // Subsequent tuples define the data
( 12, 9, 3),
( 48, 64, 12))
- "GCD" should "return the correct result" in {
+ property("GCD should return the correct result") {
forAll (gcds) { (a: Int, b: Int, z: Int) =>
assert(execute{ new GCDTester(a, b, z) })
}