- cases = {}
- for i in range(ratio):
- n = ratio-i-1 if reverse else i
- cases[i] = self.source.data.eq(self.sink.data[n*nbits_to:(n+1)*nbits_to])
- m.d.comb += Case(mux, cases).makedefault()
+ # cases = {}
+ # for i in range(self.ratio):
+ # n = self.ratio-i-1 if self._reverse else i
+ # cases[i] = self.source.data.eq(self.sink.data[n*self._nbits_to:(n+1)*self._nbits_to])
+ # m.d.comb += Case(mux, cases).makedefault()
+
+ with m.Switch(mux):
+ for i in range(self.ratio):
+ with m.Case(i):
+ n = self.ratio-i-1 if self._reverse else i
+ m.d.comb += self.source.data.eq(self.sink.data[n*self._nbits_to:(n+1)*self._nbits_to])