remove unneeded data_value
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 27 Mar 2019 21:07:13 +0000 (21:07 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 27 Mar 2019 21:07:13 +0000 (21:07 +0000)
src/add/multipipe.py

index f0c9aeacd34d97761da25fe27ba8794edf7b29e2..e3ab586c75a39fe6c932dfe39ea0e72f2ea2c5e3 100644 (file)
@@ -1,4 +1,13 @@
-""" Combinatorial Multi-input multiplexer block conforming to Pipeline API
+""" Combinatorial Multi-input and Multi-output multiplexer blocks
+    conforming to Pipeline API
+
+    Multi-input is complex because if any one input is ready, the output
+    can be ready, and the decision comes from a separate module.
+
+    Multi-output is simple (pretty much identical to UnbufferedPipeline),
+    and the selection is just a mux.  The only proviso (difference) being:
+    the outputs not being selected have to have their o_ready signals
+    DEASSERTED.
 """
 
 from math import log
@@ -69,7 +78,6 @@ class MultiInControlBase:
         return res
 
 
-
 class MultiOutControlBase:
     """ Common functions for Pipeline API
     """
@@ -166,14 +174,12 @@ class CombMultiOutPipeline(MultiOutControlBase):
 
         mid = self.n_mux.m_id
 
-        data_valid = Signal() # is data valid or not
         p_i_valid = Signal(reset_less=True)
         m.d.comb += p_i_valid.eq(self.p.i_valid_logic())
 
         for i in range(len(self.n)):
             m.d.comb += self.n[i].o_valid.eq(0)
         data_valid = self.n[mid].o_valid
-        #m.d.comb += self.n[mid].o_valid.eq(data_valid)
         m.d.comb += self.p.o_ready.eq(~data_valid | self.n[mid].i_ready)
         m.d.comb += data_valid.eq(p_i_valid | \
                                     (~self.n[mid].i_ready & data_valid))