soc/interconnect/stream: use reset_less attr of signal for payload and param
authorFlorent Kermarrec <florent@enjoy-digital.fr>
Wed, 28 Jun 2017 21:10:45 +0000 (23:10 +0200)
committerFlorent Kermarrec <florent@enjoy-digital.fr>
Wed, 28 Jun 2017 21:10:45 +0000 (23:10 +0200)
litex/gen/genlib/record.py
litex/soc/interconnect/stream.py

index 2692ab4b6124efcadadcdcb122b104b076c17920..a82f9168f01bda130a98eeee2e7b16f1d1615df7 100644 (file)
@@ -96,11 +96,14 @@ class Record:
             prefix = ""
         for f in self.layout:
             if isinstance(f[1], (int, tuple)):  # cases 1/2
-                if(len(f) == 3):
+                freset_less = False
+                if(len(f) == 4):
+                    fname, fsize, fdirection, freset_less = f
+                elif(len(f) == 3):
                     fname, fsize, fdirection = f
                 else:
                     fname, fsize = f
-                finst = Signal(fsize, name=prefix + fname)
+                finst = Signal(fsize, name=prefix + fname, reset_less=freset_less)
             elif isinstance(f[1], list):  # case 3
                 fname, fsublayout = f
                 finst = Record(fsublayout, prefix + fname)
index 69a109a1ec22a2e4456ddac0dc339c3a48f8e2cb..63772a20927fd4b5fb1f47f0e99bcc91783a6a09 100644 (file)
@@ -4,11 +4,11 @@ from litex.gen.genlib import fifo
 
 (DIR_SINK, DIR_SOURCE) = range(2)
 
-def _make_m2s(layout):
+def _make_m2s(layout, reset_less=False):
     r = []
     for f in layout:
         if isinstance(f[1], (int, tuple)):
-            r.append((f[0], f[1], DIR_M_TO_S))
+            r.append((f[0], f[1], DIR_M_TO_S, reset_less))
         else:
             r.append((f[0], _make_m2s(f[1])))
     return r
@@ -34,8 +34,8 @@ class EndpointDescription:
             ("ready", 1, DIR_S_TO_M),
             ("first", 1, DIR_M_TO_S),
             ("last", 1, DIR_M_TO_S),
-            ("payload", _make_m2s(self.payload_layout)),
-            ("param", _make_m2s(self.param_layout))
+            ("payload", _make_m2s(self.payload_layout, True)),
+            ("param", _make_m2s(self.param_layout, True))
         ]
         return full_layout