@@ -19,7 +19,9 @@ class Signature(wiring.Signature):
19
19
Parameters
20
20
----------
21
21
payload_shape : :class:`~.hdl.ShapeLike`
22
- Shape of the payload.
22
+ Shape of the payload member.
23
+ payload_init : :ref:`constant-castable <lang-constcasting>` object
24
+ Initial value of the payload member.
23
25
always_valid : :class:`bool`
24
26
Whether the stream has a payload available each cycle.
25
27
always_ready : :class:`bool`
@@ -35,14 +37,15 @@ class Signature(wiring.Signature):
35
37
ready : :py:`In(1)`
36
38
Whether a payload is accepted. If the stream is :py:`always_ready`, :py:`Const(1)`.
37
39
"""
38
- def __init__ (self , payload_shape : ShapeLike , * , always_valid = False , always_ready = False ):
40
+ def __init__ (self , payload_shape : ShapeLike , * , payload_init = None ,
41
+ always_valid = False , always_ready = False ):
39
42
Shape .cast (payload_shape )
40
43
self ._payload_shape = payload_shape
41
44
self ._always_valid = bool (always_valid )
42
45
self ._always_ready = bool (always_ready )
43
46
44
47
super ().__init__ ({
45
- "payload" : Out (payload_shape ),
48
+ "payload" : Out (payload_shape , init = payload_init ),
46
49
"valid" : Out (1 ),
47
50
"ready" : In (1 )
48
51
})
@@ -119,4 +122,4 @@ def p(self):
119
122
120
123
def __repr__ (self ):
121
124
return (f"stream.Interface(payload={ self .payload !r} , valid={ self .valid !r} , "
122
- f"ready={ self .ready !r} )" )
125
+ f"ready={ self .ready !r} )" )
0 commit comments