Mention contrib/test_failfast in test README
[gram.git] / gram / test / test_core_multiplexer.py
1 from nmigen import *
2
3 from gram.core.multiplexer import _AntiStarvation
4 from utils import *
5
6 class AntiStarvationTestCase(FHDLTestCase):
7 def test_duration(self):
8 def generic_test(timeout):
9 dut = _AntiStarvation(timeout)
10
11 def process():
12 yield dut.en.eq(1)
13 yield
14 yield dut.en.eq(0)
15 yield
16
17 for i in range(timeout):
18 self.assertFalse((yield dut.max_time))
19 yield
20
21 self.assertTrue((yield dut.max_time))
22
23 runSimulation(dut, process, "test_core_multiplexer_antistarvation.vcd")
24
25 def test_formal(self):
26 def generic_test(timeout):
27 dut = _AntiStarvation(timeout)
28 self.assertFormal(dut, mode="bmc", depth=timeout+1)
29
30 generic_test(0)
31 generic_test(5)
32 generic_test(10)
33 generic_test(0x20)