Skip to content

Commit de6bba2

Browse files
committed
Support for, and use of, cocotb parametrize
1 parent 8035d1e commit de6bba2

File tree

2 files changed

+12
-9
lines changed

2 files changed

+12
-9
lines changed

src/examples/tt_um_factory_test/tt_um_factory_test.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,13 @@
55
@copyright: Copyright (C) 2024 Pat Deegan, https://psychogenic.com
66
'''
77

8-
import math
98
import gc
109
from ttboard.demoboard import DemoBoard
1110
from microcotb.clock import Clock
1211
from microcotb.triggers import RisingEdge, FallingEdge, ClockCycles, Timer
1312
import microcotb as cocotb
1413
from microcotb.utils import get_sim_time
15-
14+
gc.collect()
1615

1716
@cocotb.test()
1817
async def test_loopback(dut):
@@ -98,12 +97,16 @@ async def test_should_fail(dut):
9897
async def test_will_skip(dut):
9998
dut._log.info("This should not be output!")
10099

101-
# DISABLED cocotb.test(timeout_time=100, timeout_unit='us', expect_fail=True)
102-
async def test_timeout(dut):
103-
clock = Clock(dut.clk, 10, units="us")
100+
101+
@cocotb.test(timeout_time=100, timeout_unit='us', expect_fail=True)
102+
@cocotb.parametrize(
103+
clk_period=[10,125],
104+
timer_t=[101, 200])
105+
async def test_timeout(dut, clk_period:int, timer_t:int):
106+
clock = Clock(dut.clk, clk_period, units="us")
104107
cocotb.start_soon(clock.start())
105-
106-
await Timer(200, 'us')
108+
# will timeout before the timer expires, hence expect_fail=True above
109+
await Timer(timer_t, 'us')
107110

108111
@cocotb.test()
109112
async def test_timer(dut):
@@ -121,7 +124,7 @@ def __init__(self):
121124
self.tt = DemoBoard.get()
122125
# inputs
123126
self.some_bit = self.new_bit_attribute(self.tt.uo_out, 5)
124-
127+
125128
tt = DemoBoard.get()
126129
tt.shuttle.tt_um_factory_test.enable()
127130
tt.uio_oe_pico.value = 0 # all inputs

0 commit comments

Comments
 (0)