2 from migen
.genlib
.record
import Record
4 from misoc
.cores
.dvi_sampler
.common
import control_tokens
, channel_layout
7 class Decoding(Module
):
9 self
.valid_i
= Signal()
10 self
.input = Signal(10)
11 self
.valid_o
= Signal()
12 self
.output
= Record(channel_layout
)
16 self
.sync
.pix
+= self
.output
.de
.eq(1)
17 for i
, t
in enumerate(control_tokens
):
18 self
.sync
.pix
+= If(self
.input == t
,
22 self
.sync
.pix
+= self
.output
.d
[0].eq(self
.input[0] ^ self
.input[9])
24 self
.sync
.pix
+= self
.output
.d
[i
].eq(self
.input[i
] ^ self
.input[i
-1] ^ ~self
.input[8])
25 self
.sync
.pix
+= self
.valid_o
.eq(self
.valid_i
)