litex/milkymist/dvisampler/__init__.py

31 lines
897 B
Python
Raw Normal View History

2013-03-13 14:56:26 -04:00
from migen.fhdl.structure import *
from migen.fhdl.module import Module
from migen.bank.description import *
from milkymist.dvisampler.edid import EDID
from milkymist.dvisampler.clocking import Clocking
from milkymist.dvisampler.datacapture import DataCapture
2013-03-13 14:56:26 -04:00
class DVISampler(Module, AutoReg):
def __init__(self, inversions="", debug_data_capture=True):
self.submodules.edid = EDID()
self.sda = self.edid.sda
self.scl = self.edid.scl
self.submodules.clocking = Clocking()
self.clk = self.clocking.clkin
2013-03-13 14:56:26 -04:00
for datan in "012":
name = "data" + str(datan)
cap = DataCapture(8, debug_data_capture)
setattr(self.submodules, name + "_cap", cap)
2013-03-13 14:56:26 -04:00
if datan in inversions:
name += "_n"
s = Signal(name=name)
setattr(self, name, s)
self.comb += [
cap.pad.eq(s),
cap.serdesstrobe.eq(self.clocking.serdesstrobe),
cap.delay_rst.eq(~self.clocking.locked)
]