Advertisement
mindrunner

Untitled

Apr 3rd, 2015
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.19 KB | None | 0 0
  1. dd = 0xab
  2.  
  3.  
  4. class NandDmaWriter(Module):
  5.  
  6.     def __init__(self, lasmim, nandconf):
  7.         self._magic = CSRStatus(16)
  8.         self._reset = CSR()
  9.         self._shoot = CSR()
  10.         self.submodules._dma = DMAWriteController(
  11.             dma_lasmi.Writer(lasmim),
  12.             MODE_EXTERNAL)
  13.  
  14.         en = Signal()
  15.         en_counter = Signal(lasmim.aw)
  16.         self.comb += en.eq(en_counter != 0)
  17.         self.sync += [
  18.             If(self._shoot.re,
  19.                en_counter.eq(self._dma.length)
  20.                ).Elif(en_counter != 0,
  21.                 en_counter.eq(en_counter - 1)
  22.                 )
  23.         ]
  24.  
  25.         ###
  26.  
  27.         self.comb += self._magic.status.eq(nandread_magic)
  28.  
  29.         self.sync += [
  30.         # LEDs
  31.             nandconf.io1.o.eq(self._dma.data.stb),
  32.             nandconf.io2.o.eq(self._dma.data.ack),
  33.             nandconf.io7.o.eq(en),
  34.             nandconf.io8.o.eq(en_counter),
  35.             ]
  36.  
  37.         self.comb += [
  38.             self._dma.trigger.eq(self._shoot.re),
  39.             self._dma.data.stb.eq(en),
  40.             self._dma.data.d.eq(dd)
  41.         ]
  42.  
  43.     def get_csrs(self):
  44.         return [self._magic, self._reset, self._shoot] + self._dma.get_csrs()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement