soc/interconnect/stream/gearbox: remove bit reversing by changing words order
authorFlorent Kermarrec <florent@enjoy-digital.fr>
Fri, 30 Nov 2018 22:12:30 +0000 (23:12 +0100)
committerFlorent Kermarrec <florent@enjoy-digital.fr>
Fri, 30 Nov 2018 22:12:30 +0000 (23:12 +0100)
litex/soc/interconnect/stream.py

index 6c47841c039db95a3dfe93aab54c24b324bba250..1bf81ef134ab77a0fd1beff45211412cf7a0b291 100644 (file)
@@ -404,12 +404,12 @@ class Gearbox(Module):
 
         i_cases = {}
         for i in range(io_lcm//i_dw):
-            i_cases[i] = shift_register[i_dw*i:i_dw*(i+1)].eq(sink.data[::-1])
+            i_cases[i] = shift_register[io_lcm - i_dw*(i+1):io_lcm - i_dw*i].eq(sink.data)
         self.sync += If(sink.valid & sink.ready, Case(i_count, i_cases))
 
         o_cases = {}
         for i in range(io_lcm//o_dw):
-            o_cases[i] = source.data.eq(shift_register[o_dw*i:o_dw*(i+1)][::-1])
+            o_cases[i] = source.data.eq(shift_register[io_lcm - o_dw*(i+1):io_lcm - o_dw*i])
         self.comb += Case(o_count, o_cases)
 
 # TODO: clean up code below