graycounter: expose binary output

This commit is contained in:
Sebastien Bourdeauducq 2013-04-25 13:11:15 +02:00
parent 0f9df2d732
commit 6c08cd67aa
2 changed files with 8 additions and 8 deletions

View file

@ -11,8 +11,8 @@ class TB(Module):
self.prng = Random(7345)
def do_simulation(self, s):
print("{0:0{1}b} CE={2}".format(s.rd(self.gc.q),
self.width, s.rd(self.gc.ce)))
print("{0:0{1}b} CE={2} bin={3}".format(s.rd(self.gc.q),
self.width, s.rd(self.gc.ce), s.rd(self.gc.q_binary)))
s.wr(self.gc.ce, self.prng.getrandbits(1))
sim = Simulator(TB())

View file

@ -78,20 +78,20 @@ class GrayCounter(Module):
self.ce = Signal()
self.q = Signal(width)
self.q_next = Signal(width)
self.q_binary = Signal(width)
self.q_next_binary = Signal(width)
###
q_binary = Signal(width)
q_next_binary = Signal(width)
self.comb += [
If(self.ce,
q_next_binary.eq(q_binary + 1)
self.q_next_binary.eq(self.q_binary + 1)
).Else(
q_next_binary.eq(q_binary)
self.q_next_binary.eq(self.q_binary)
),
self.q_next.eq(q_next_binary ^ q_next_binary[1:])
self.q_next.eq(self.q_next_binary ^ self.q_next_binary[1:])
]
self.sync += [
q_binary.eq(q_next_binary),
self.q_binary.eq(self.q_next_binary),
self.q.eq(self.q_next)
]