Skip to content

Commit

Permalink
memtest/LFSR: use module decorators
Browse files Browse the repository at this point in the history
  • Loading branch information
Sebastien Bourdeauducq committed Jul 25, 2013
1 parent 764e7c0 commit 8e04de5
Showing 1 changed file with 7 additions and 10 deletions.
17 changes: 7 additions & 10 deletions milkymist/memtest/__init__.py
Expand Up @@ -4,10 +4,10 @@
from migen.actorlib import dma_lasmi
from migen.actorlib.spi import *

@DecorateModule(InsertReset)
@DecorateModule(InsertCE)
class LFSR(Module):
def __init__(self, n_out, n_state=31, taps=[27, 30]):
self.ce = Signal()
self.reset = Signal()
self.o = Signal(n_out)

###
Expand All @@ -20,18 +20,15 @@ def __init__(self, n_out, n_state=31, taps=[27, 30]):
curval.insert(0, nv)
curval.pop()

self.sync += If(self.reset,
state.eq(0),
self.o.eq(0)
).Elif(self.ce,
state.eq(Cat(*curval[:n_state])),
self.o.eq(Cat(*curval))
)
self.sync += [
state.eq(Cat(*curval[:n_state])),
self.o.eq(Cat(*curval))
]

def _print_lfsr_code():
from migen.fhdl import verilog
dut = LFSR(3, 4, [3, 2])
print(verilog.convert(dut, ios={dut.ce, dut.o}))
print(verilog.convert(dut, ios={dut.ce, dut.reset, dut.o}))

class _LFSRTB(Module):
def __init__(self, *args, **kwargs):
Expand Down

0 comments on commit 8e04de5

Please sign in to comment.