fix logic-bug in group picker
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Thu, 9 May 2019 08:26:48 +0000 (09:26 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Thu, 9 May 2019 08:26:48 +0000 (09:26 +0100)
src/scoreboard/group_picker.py

index 9518fdf9dd7a6f4c706baaaf8f50d64772536944..333d5b1b8a6e2f6d00cfd71129fd5f06b76bb3a3 100644 (file)
@@ -17,12 +17,13 @@ class PriorityPicker(Elaboratable):
 
         res = []
         for i in range(0, self.wid):
-            tmp = Signal(reset_less = True)
+            t = Signal(reset_less = True)
+            res.append(t)
             if i == 0:
-                m.d.comb += tmp.eq(self.i[0])
+                m.d.comb += t.eq(self.i[0])
             else:
-                m.d.comb += tmp.eq((~tmp) & self.i[i])
-            res.append(tmp)
+                m.d.comb += t.eq((~res[-2]) & self.i[i])
+            res.append(t)
         
         # we like Cat(*xxx).  turn lists into concatenated bits
         m.d.comb += self.o.eq(Cat(*res))