diff options
Diffstat (limited to 'src/test/scala/chiselTests/GCD.scala')
| -rw-r--r-- | src/test/scala/chiselTests/GCD.scala | 19 |
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) }) } |
