Skip to content

Commit

Permalink
gateware/sim: Implemented sim tests for the timeout block
Browse files Browse the repository at this point in the history
  • Loading branch information
dragonmux committed Dec 14, 2023
1 parent 2eb93b5 commit 9ea015f
Showing 1 changed file with 46 additions and 0 deletions.
46 changes: 46 additions & 0 deletions gateware/dragonBoot/sim/timeout.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# SPDX-License-Identifier: BSD-3-Clause
from torii.sim import Settle
from torii.test import ToriiTestCase

from ..timeout import ConnectTimeout

class ConnectTimeoutTestCase(ToriiTestCase):
dut = ConnectTimeout
dut_args = {
'timeout': (1 / 12) * 10e-6,
'clockFreq': 12e6,
}
domains = (('usb', 12e6), )

@ToriiTestCase.simulation
@ToriiTestCase.sync_domain(domain = 'usb')
def testTimeout(self):
self.assertEqual((yield self.dut.triggerReboot), 0)
yield from self.step(7)
yield Settle()
self.assertEqual((yield self.dut.triggerReboot), 0)
yield
yield Settle()
self.assertEqual((yield self.dut.triggerReboot), 1)
yield
yield Settle()
self.assertEqual((yield self.dut.triggerReboot), 1)

@ToriiTestCase.simulation
@ToriiTestCase.sync_domain(domain = 'usb')
def testConnected(self):
self.assertEqual((yield self.dut.triggerReboot), 0)
yield from self.step(5)
yield Settle()
self.assertEqual((yield self.dut.triggerReboot), 0)
yield self.dut.stop.eq(1)
yield
yield Settle()
self.assertEqual((yield self.dut.triggerReboot), 0)
yield self.dut.stop.eq(0)
yield
yield Settle()
self.assertEqual((yield self.dut.triggerReboot), 0)
yield from self.step(10)
yield Settle()
self.assertEqual((yield self.dut.triggerReboot), 0)

0 comments on commit 9ea015f

Please sign in to comment.