bc6b81cdee56cf3921aa32628db05c3a8a6097be
2 from itertools
import count
4 from ...compat
import *
5 from ...compat
.genlib
.fifo
import SyncFIFO
7 from .support
import SimCase
10 class SyncFIFOCase(SimCase
, unittest
.TestCase
):
11 class TestBench(Module
):
13 self
.submodules
.dut
= SyncFIFO(64, 2)
16 If(self
.dut
.we
& self
.dut
.writable
,
17 self
.dut
.din
[:32].eq(self
.dut
.din
[:32] + 1),
18 self
.dut
.din
[32:].eq(self
.dut
.din
[32:] + 2)
22 def test_run_sequence(self
):
26 # fire re and we at "random"
27 yield self
.tb
.dut
.we
.eq(cycle
% 2 == 0)
28 yield self
.tb
.dut
.re
.eq(cycle
% 3 == 0)
29 # the output if valid must be correct
30 if (yield self
.tb
.dut
.readable
) and (yield self
.tb
.dut
.re
):
35 self
.assertEqual((yield self
.tb
.dut
.dout
[:32]), i
)
36 self
.assertEqual((yield self
.tb
.dut
.dout
[32:]), i
*2)