1
0
mirror of https://github.com/myhdl/myhdl.git synced 2024-12-14 07:44:38 +08:00
myhdl/example/cookbook/bitonic/test_bitonic.py
2006-08-18 21:13:16 +00:00

41 lines
856 B
Python

from random import randrange
from myhdl import *
from bitonic import Array8Sorter, Array8Sorter_v
def bench():
n = 8
w = 4
a0, a1, a2, a3, a4, a5, a6, a7 = inputs = [Signal(intbv(0)[w:]) for i in range(n)]
z0, z1, z2, z3, z4, z5, z6, z7 = outputs = [Signal(intbv(0)[w:]) for i in range(n)]
inst = Array8Sorter_v(a0, a1, a2, a3, a4, a5, a6, a7,
z0, z1, z2, z3, z4, z5, z6, z7)
@instance
def check():
for i in range(100):
data = [randrange(2**w) for i in range(n)]
for i in range(n):
inputs[i].next = data[i]
yield delay(10)
data.sort()
assert data == outputs
return inst, check
def test_bench():
sim = Simulation(bench())
sim.run()
if __name__ == '__main__':
test_bench()