Skip to content

Commit b1e5b9e

Browse files
author
Sebastien Bourdeauducq
committedMar 31, 2012
tb/asmicon/bankmachine: test buffer and NACK
1 parent c129c98 commit b1e5b9e

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed
 

‎tb/asmicon/selector.py

+13-4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from random import Random
2+
13
from migen.fhdl.structure import *
24
from migen.bus.asmibus import *
35
from migen.sim.generic import Simulator, TopLevel
@@ -24,18 +26,25 @@ def my_generator(dt, offset):
2426
class Selector:
2527
def __init__(self, slicer, bankn, slots):
2628
self.selector = _Selector(slicer, bankn, slots)
29+
self.buf = _Buffer(self.selector)
2730
self.queue = []
31+
self.prng = Random(876)
2832

2933
def do_simulation(self, s):
30-
if s.rd(self.selector.stb):
31-
tag = s.rd(self.selector.tag)
34+
if self.prng.randrange(0, 5):
35+
s.wr(self.buf.ack, 1)
36+
else:
37+
s.wr(self.buf.ack, 0)
38+
if s.rd(self.buf.stb) and s.rd(self.buf.ack):
39+
tag = s.rd(self.buf.tag)
3240
self.queue.append(tag)
3341
print("==> SELECTED: " + str(tag))
3442
print("")
3543

3644
def get_fragment(self):
37-
comb = [self.selector.ack.eq(1)]
38-
return self.selector.get_fragment() + Fragment(comb, sim=[self.do_simulation])
45+
return self.selector.get_fragment() + \
46+
self.buf.get_fragment() + \
47+
Fragment(sim=[self.do_simulation])
3948

4049
class Completer:
4150
def __init__(self, hub, queue):

0 commit comments

Comments
 (0)
Please sign in to comment.