Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- dd = 0xab
- class NandDmaWriter(Module):
- def __init__(self, lasmim, nandconf):
- self._magic = CSRStatus(16)
- self._reset = CSR()
- self._shoot = CSR()
- self.submodules._dma = DMAWriteController(
- dma_lasmi.Writer(lasmim),
- MODE_EXTERNAL)
- en = Signal()
- en_counter = Signal(lasmim.aw)
- self.comb += en.eq(en_counter != 0)
- self.sync += [
- If(self._shoot.re,
- en_counter.eq(self._dma.length)
- ).Elif(en_counter != 0,
- en_counter.eq(en_counter - 1)
- )
- ]
- ###
- self.comb += self._magic.status.eq(nandread_magic)
- self.sync += [
- # LEDs
- nandconf.io1.o.eq(self._dma.data.stb),
- nandconf.io2.o.eq(self._dma.data.ack),
- nandconf.io7.o.eq(en),
- nandconf.io8.o.eq(en_counter),
- ]
- self.comb += [
- self._dma.trigger.eq(self._shoot.re),
- self._dma.data.stb.eq(en),
- self._dma.data.d.eq(dd)
- ]
- def get_csrs(self):
- return [self._magic, self._reset, self._shoot] + self._dma.get_csrs()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement