Remove wen term and shift If blocks to remove NOT need
[soc.git] / TLB / src / Cam.py
index 937811fb47f794d5046b57c2d198fbd6ae353bba..3606234b1180c96324480bb71d13ca73150d6b41 100644 (file)
@@ -70,29 +70,26 @@ class Cam():
             self.decoder.n.eq(0)
         ]
 
-        # XXX change name of write_enable interface to write_enable_n ?
-        wen = Signal(reset_less=True)
-        m.d.comb += wen.eq(~self.write_enable)
-
         with m.If(self.enable):
             # Set the key value for every CamEntry
             for index in range(self.cam_size):
 
-                # Read Operation
-                with m.If(wen):
-                    m.d.comb += entry_array[index].command.eq(1)
-
                 # Write Operation
-                with m.Else():
+                with m.If(self.write_enable):
                     with m.If(self.decoder.o[index]):
                         m.d.comb += entry_array[index].command.eq(2)
                     with m.Else():
-                        m.d.comb += entry_array[index].command.eq(0)
+                        m.d.comb += entry_array[index].command.eq(0)                    
+
+                # Read Operation
+                with m.Else():
+                    m.d.comb += entry_array[index].command.eq(1)
 
                 # Send data input to all entries
                 m.d.comb += entry_array[index].data_in.eq(self.data_in)
-                #Send all entry matches to encoder
-                m.d.comb += self.vector_assembler.input[index].eq(entry_array[index].match)
+                # Send all entry matches to encoder
+                ematch = entry_array[index].match
+                m.d.comb += self.vector_assembler.i[index].eq(ematch)
 
             # Give input to and accept output from encoder module
             m.d.comb += [