litescope/core/port: fix LiteScopeEdgeDetector (refactoring issues)
authorFlorent Kermarrec <florent@enjoy-digital.fr>
Mon, 24 Aug 2015 16:15:13 +0000 (18:15 +0200)
committerFlorent Kermarrec <florent@enjoy-digital.fr>
Mon, 24 Aug 2015 16:23:38 +0000 (18:23 +0200)
misoclib/tools/litescope/core/port.py

index d1c87859cf3970de039867f54395aed2e191d2ba..dae91a6a2fafea804a0e08b8e721c06e6e36e6a7 100644 (file)
@@ -77,22 +77,22 @@ class LiteScopeEdgeDetectorUnit(Module):
 
         # # #
 
-        self.buffer = Buffer(self.sink.description)
-        self.comb += Record.connect(self.sink, self.buffer.sink)
+        self.submodules.buffer = Buffer(self.sink.description)
+        self.comb += Record.connect(self.sink, self.buffer.d)
 
         rising = Signal(dw)
-        rising.eq(self.rising_mask & sink.data & ~self.buffer.source.data)
+        rising.eq(self.rising_mask & sink.data & ~self.buffer.q.data)
 
         falling = Signal(dw)
-        falling.eq(self.falling_mask & sink.data & ~self.buffer.source.data)
+        falling.eq(self.falling_mask & ~sink.data & self.buffer.q.data)
 
         both = Signal(dw)
-        both.eq(self.both_mask & sink.data & ~self.buffer.source.data)
+        both.eq(self.both_mask & (rising | falling))
 
         self.comb += [
-            source.stb.eq(sink.stb & self.buffer.source.stb),
-            self.buffer.source.ack.eq(source.ack),
-            source.hit.eq(rising | falling | both)
+            source.stb.eq(sink.stb & self.buffer.q.stb),
+            self.buffer.q.ack.eq(source.ack),
+            source.hit.eq((rising | falling | both) != 0)
         ]
 
 
@@ -106,7 +106,7 @@ class LiteScopeEdgeDetector(LiteScopeEdgeDetectorUnit, AutoCSR):
         # # #
 
         self.comb += [
-            self.rising.eq(self._rising.storage),
-            self.falling.eq(self._falling.storage),
-            self.both.eq(self._both.storage)
+            self.rising_mask.eq(self._rising.storage),
+            self.falling_mask.eq(self._falling.storage),
+            self.both_mask.eq(self._both.storage)
         ]