fix rle when used with subsampler

This commit is contained in:
Florent Kermarrec 2015-02-19 11:34:20 +01:00
parent e495e2f537
commit 37e463da9a
1 changed files with 6 additions and 2 deletions

View File

@ -45,7 +45,7 @@ class LiteScopeRunLengthEncoderUnit(Module):
change = Signal() change = Signal()
self.comb += change.eq( self.comb += change.eq(
(sink.stb & buf.q.stb) & sink.stb &
(sink.data != buf.q.data) (sink.data != buf.q.data)
) )
@ -60,6 +60,7 @@ class LiteScopeRunLengthEncoderUnit(Module):
) )
) )
fsm.act("COUNT", fsm.act("COUNT",
buf.q.ack.eq(1),
counter.ce.eq(sink.stb), counter.ce.eq(sink.stb),
If(~self.enable, If(~self.enable,
NextState("BYPASS") NextState("BYPASS")
@ -67,7 +68,10 @@ class LiteScopeRunLengthEncoderUnit(Module):
source.stb.eq(1), source.stb.eq(1),
source.data[:flen(counter.value)].eq(counter.value), source.data[:flen(counter.value)].eq(counter.value),
source.data[-1].eq(1), # Set RLE bit source.data[-1].eq(1), # Set RLE bit
NextState("BYPASS") buf.q.ack.eq(source.ack),
If(source.ack,
NextState("BYPASS")
)
) )
) )