73a6718a3b577e98c5289d7f878d674819cd4c03
1 from migen
.fhdl
.std
import *
2 from migen
.genlib
.record
import Record
4 from misoclib
.dvisampler
.common
import control_tokens
, channel_layout
6 class Decoding(Module
):
8 self
.valid_i
= Signal()
9 self
.input = Signal(10)
10 self
.valid_o
= Signal()
11 self
.output
= Record(channel_layout
)
15 self
.sync
.pix
+= self
.output
.de
.eq(1)
16 for i
, t
in enumerate(control_tokens
):
17 self
.sync
.pix
+= If(self
.input == t
,
21 self
.sync
.pix
+= self
.output
.d
[0].eq(self
.input[0] ^ self
.input[9])
23 self
.sync
.pix
+= self
.output
.d
[i
].eq(self
.input[i
] ^ self
.input[i
-1] ^ ~self
.input[8])
24 self
.sync
.pix
+= self
.valid_o
.eq(self
.valid_i
)