diff options
| author | Andrew Waterman | 2015-12-11 15:44:48 -0800 |
|---|---|---|
| committer | Andrew Waterman | 2015-12-11 15:44:48 -0800 |
| commit | bffc67c2bbeb107d2ff9903aa35e85fbb7da73f9 (patch) | |
| tree | e1bf7395536231ae22b587f31c66b00e4e5d9436 /src | |
| parent | 8582ab12c288d8177c8b4a8a6172b58691cc6430 (diff) | |
| parent | 3e34e66416e86286c4396941c665cf9b0d28f050 (diff) | |
Merge pull request #66 from ucb-bar/stop
Add stop() in BasicTester as a replacement for io.done
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/scala/Chisel/testers/BasicTester.scala | 10 | ||||
| -rw-r--r-- | src/test/scala/chiselTests/Stop.scala | 18 |
2 files changed, 28 insertions, 0 deletions
diff --git a/src/main/scala/Chisel/testers/BasicTester.scala b/src/main/scala/Chisel/testers/BasicTester.scala index 398e49e7..fecbe2a9 100644 --- a/src/main/scala/Chisel/testers/BasicTester.scala +++ b/src/main/scala/Chisel/testers/BasicTester.scala @@ -3,6 +3,10 @@ package Chisel.testers import Chisel._ +import internal._ +import internal.Builder.pushCommand +import firrtl._ + class BasicTester extends Module { val io = new Bundle { val done = Bool() @@ -12,4 +16,10 @@ class BasicTester extends Module { io.error := UInt(0) def popCount(n: Long): Int = n.toBinaryString.count(_=='1') + + /** Ends the test, reporting success. + */ + def stop() { + pushCommand(Stop(Node(clock), 0)) + } } diff --git a/src/test/scala/chiselTests/Stop.scala b/src/test/scala/chiselTests/Stop.scala new file mode 100644 index 00000000..7ce9461b --- /dev/null +++ b/src/test/scala/chiselTests/Stop.scala @@ -0,0 +1,18 @@ +// See LICENSE for license details. + +package chiselTests + +import org.scalatest._ +import Chisel._ +import Chisel.testers.BasicTester + +class StopTester() extends BasicTester { + io.done := Bool(false) + stop() +} + +class StopSpec extends ChiselFlatSpec { + "stop()" should "stop and succeed the testbench" in { + assert(execute{ new StopTester }) + } +} |
