summaryrefslogtreecommitdiff
path: root/src/main/scala/Chisel/Tester.scala
diff options
context:
space:
mode:
authorducky2015-10-26 18:08:47 -0700
committerducky2015-10-26 18:08:47 -0700
commit4b51975ec7a543e165660d654fa84eaa9b9b3b3e (patch)
tree40db3dbf3f7cbb4f1a7753840ddac72fee52fee2 /src/main/scala/Chisel/Tester.scala
parent9430600381d52b10a6f5aad7140f355c3abf963c (diff)
Break Core.scala into bite-sized pieces
Diffstat (limited to 'src/main/scala/Chisel/Tester.scala')
-rw-r--r--src/main/scala/Chisel/Tester.scala39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/main/scala/Chisel/Tester.scala b/src/main/scala/Chisel/Tester.scala
new file mode 100644
index 00000000..d02af842
--- /dev/null
+++ b/src/main/scala/Chisel/Tester.scala
@@ -0,0 +1,39 @@
+// See LICENSE for license details.
+
+package Chisel
+
+import scala.util.Random
+
+class Tester[+T <: Module](c: T, isTrace: Boolean = true) {
+ def t: Int = 0
+ var ok: Boolean = true // TODO: get rid of this
+
+ def rnd: Random = new Random()
+
+ def peek(data: Bits): BigInt = 0
+ def poke(data: Bits, x: BigInt): Unit = {}
+ def expect(data: Bits, expected: BigInt): Boolean = true
+ def step(n: Int): Unit = {}
+
+ // TODO: unify and disambiguate expect(...)
+ def expect(ok: Boolean, failureMsg: String): Boolean = true
+}
+
+object chiselMainOld {
+ val wrapped = true
+ val unwrapped = false
+
+ def apply[T <: Module](args: Array[String], gen: () => T): T = gen()
+
+ def apply[T <: Module](args: Array[String], gen: () => T, ftester: T => Tester[T]): T = gen()
+
+ // Assumes gen needs to be wrapped in Module()
+ def run[T <: Module] (args: Array[String], gen: () => T): T = gen()
+
+ def run[T <: Module] (args: Array[String], gen: () => T, ftester: T => Tester[T]): T = gen()
+}
+
+object chiselMainTest {
+ def apply[T <: Module](args: Array[String], gen: () => T)(tester: T => Tester[T]): T =
+ chiselMainOld(args, gen, tester)
+}