class DVISampler(Module, AutoCSR):
- def __init__(self, pads, lasmim, n_dma_slots=2):
+ def __init__(self, pads, lasmim, n_dma_slots=2, fifo_depth=512):
self.submodules.edid = EDID(pads)
self.submodules.clocking = Clocking(pads)
self.resdetection.vsync.eq(self.syncpol.vsync)
]
- self.submodules.frame = FrameExtraction(24*lasmim.dw//32)
+ self.submodules.frame = FrameExtraction(24*lasmim.dw//32, fifo_depth)
self.comb += [
self.frame.valid_i.eq(self.syncpol.valid_o),
self.frame.de.eq(self.syncpol.de),
class FrameExtraction(Module, AutoCSR):
- def __init__(self, word_width):
+ def __init__(self, word_width, fifo_depth):
# in pix clock domain
self.valid_i = Signal()
self.vsync = Signal()
]
# FIFO
- fifo = RenameClockDomains(AsyncFIFO(word_layout, 512),
+ fifo = RenameClockDomains(AsyncFIFO(word_layout, fifo_depth),
{"write": "pix", "read": "sys"})
self.submodules += fifo
self.comb += [