summaryrefslogtreecommitdiff
path: root/src/test/scala/ChiselTests/SIntOps.scala
diff options
context:
space:
mode:
authorHenry Cook2015-08-12 19:32:43 -0700
committerHenry Cook2015-08-12 19:32:57 -0700
commit85d7403f9bf7bc2b3520f924736c237f21f70ebd (patch)
tree64560f779063a419395a2fb8a31ea52c52af4404 /src/test/scala/ChiselTests/SIntOps.scala
parent7e69966362b1dbd9835695250494857f3a3767c8 (diff)
being to convert tests to scala-test; tests compile and run
Diffstat (limited to 'src/test/scala/ChiselTests/SIntOps.scala')
-rw-r--r--src/test/scala/ChiselTests/SIntOps.scala82
1 files changed, 0 insertions, 82 deletions
diff --git a/src/test/scala/ChiselTests/SIntOps.scala b/src/test/scala/ChiselTests/SIntOps.scala
deleted file mode 100644
index 6624183c..00000000
--- a/src/test/scala/ChiselTests/SIntOps.scala
+++ /dev/null
@@ -1,82 +0,0 @@
-package ChiselTests
-import Chisel._
-import Chisel.testers._
-
-class SIntOps extends Module {
- val io = new Bundle {
- val a = SInt(INPUT, 16)
- val b = SInt(INPUT, 16)
- val addout = SInt(OUTPUT, 16)
- val subout = SInt(OUTPUT, 16)
- val timesout = SInt(OUTPUT, 16)
- val divout = SInt(OUTPUT, 16)
- val modout = SInt(OUTPUT, 16)
- val lshiftout = SInt(OUTPUT, 16)
- val rshiftout = SInt(OUTPUT, 16)
- val lessout = Bool(OUTPUT)
- val greatout = Bool(OUTPUT)
- val eqout = Bool(OUTPUT)
- val noteqout = Bool(OUTPUT)
- val lesseqout = Bool(OUTPUT)
- val greateqout = Bool(OUTPUT)
- val negout = SInt(OUTPUT, 16)
- }
-
- val a = io.a
- val b = io.b
- val ub = b.toUInt
-
- io.addout := a +% b
- io.subout := a -% b
- io.timesout := (a * b)(15, 0)
- // TODO:
- // io.divout := a / Mux(b === SInt(0), SInt(1), b)
- io.divout := (a * b)(15, 0)
- // io.divout := (a / b)(15, 0)
- io.modout := UInt(0)
- io.lshiftout := (a << 12)(15, 0) // (a << ub(3, 0))(15, 0).toSInt
- io.rshiftout := (a >> 8) // (a >> ub).toSInt
- io.lessout := a < b
- io.greatout := a > b
- io.eqout := a === b
- io.noteqout := (a != b)
- io.lesseqout := a <= b
- io.greateqout := a >= b
- // io.negout := -a(15, 0).toSInt
- io.negout := (SInt(0) -% a)
-}
-
-class SIntOpsTester(c: SIntOps) extends Tester(c) {
- def sintExpect(d: Bits, x: BigInt) {
- val mask = (1 << 16) - 1
- val sbit = (1 << 15)
- val y = x & mask
- val r = if ((y & sbit) == 0) y else (-(~y)-1)
- expect(d, r)
- }
- for (t <- 0 until 16) {
- val test_a = (1 << 15) - rnd.nextInt(1 << 16)
- val test_b = (1 << 15) - rnd.nextInt(1 << 16)
- poke(c.io.a, test_a)
- poke(c.io.b, test_b)
- step(1)
- sintExpect(c.io.addout, test_a + test_b)
- sintExpect(c.io.subout, test_a - test_b)
- sintExpect(c.io.timesout, test_a * test_b)
- // sintExpect(c.io.divout, if (test_b == 0) 0 else test_a / test_b)
- sintExpect(c.io.divout, test_a * test_b)
- // sintExpect(c.io.modout, test_a % test_b)
- // sintExpect(c.io.lshiftout, test_a << (test_b&15))
- // sintExpect(c.io.rshiftout, test_a >> test_b)
- sintExpect(c.io.lshiftout, test_a << 12)
- sintExpect(c.io.rshiftout, test_a >> 8)
- sintExpect(c.io.negout, -test_a)
- expect(c.io.lessout, int(test_a < test_b))
- expect(c.io.greatout, int(test_a > test_b))
- expect(c.io.eqout, int(test_a == test_b))
- expect(c.io.noteqout, int(test_a != test_b))
- expect(c.io.lessout, int(test_a <= test_b))
- expect(c.io.greateqout, int(test_a >= test_b))
- }
-}
-