1
0
mirror of https://github.com/myhdl/myhdl.git synced 2025-01-24 21:52:56 +08:00
myhdl/example/cookbook/stopwatch/test_bcd2led.py
2006-02-21 09:24:55 +00:00

40 lines
733 B
Python

from random import randrange
import seven_segment
from myhdl import *
from bcd2led import bcd2led
PERIOD = 10
def bench():
led = Signal(intbv(0)[7:])
bcd = Signal(intbv(0)[4:])
clock = Signal(bool(0))
dut = bcd2led(led, bcd, clock)
@always(delay(PERIOD//2))
def clkgen():
clock.next = not clock
@instance
def check():
for i in range(100):
bcd.next = randrange(10)
yield clock.posedge
yield clock.negedge
expected = int(seven_segment.encoding[int(bcd)], 2)
assert led == expected
raise StopSimulation
return dut, clkgen, check
def test_bench():
sim = Simulation(bench())
sim.run()