diff options
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/scala/chiselTests/Counter.scala | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/test/scala/chiselTests/Counter.scala b/src/test/scala/chiselTests/Counter.scala index 985cf3fd..41f550a8 100644 --- a/src/test/scala/chiselTests/Counter.scala +++ b/src/test/scala/chiselTests/Counter.scala @@ -29,6 +29,19 @@ class EnableTester(seed: Int) extends BasicTester { } } +class ResetTester(n: Int) extends BasicTester { + val triggerReset = WireInit(false.B) + val wasReset = RegNext(triggerReset) + val (value, _) = Counter(0 until 8, reset = triggerReset) + + triggerReset := value === (n-1).U + + when(wasReset) { + assert(value === 0.U) + stop() + } +} + class WrapTester(max: Int) extends BasicTester { val (cnt, wrap) = Counter(true.B, max) when(wrap) { @@ -61,6 +74,10 @@ class CounterSpec extends ChiselPropSpec { forAll(safeUInts) { (seed: Int) => whenever(seed >= 0) { assertTesterPasses{ new EnableTester(seed) } } } } + property("Counter can be reset") { + forAll(smallPosInts) { (seed: Int) => assertTesterPasses{ new ResetTester(seed) } } + } + property("Counter should wrap") { forAll(smallPosInts) { (max: Int) => assertTesterPasses{ new WrapTester(max) } } } |
