@@ -20,16 +20,22 @@ class R(FieldAction):
2020 port : :class:`FieldPort`
2121 Field port.
2222 r_data : Signal(shape)
23- Read data. Drives the :attr:`~FieldPort.r_data` signal of ``port``.
23+ Read data. Drives ``port.r_data``. See :class:`FieldPort`.
24+ r_stb : Signal()
25+ Read strobe. Driven by ``port.r_stb``. See :class:`FieldPort`.
2426 """
2527 def __init__ (self , shape ):
2628 super ().__init__ (shape , access = "r" , members = {
2729 "r_data" : In (shape ),
30+ "r_stb" : Out (1 )
2831 })
2932
3033 def elaborate (self , platform ):
3134 m = Module ()
32- m .d .comb += self .port .r_data .eq (self .r_data )
35+ m .d .comb += [
36+ self .port .r_data .eq (self .r_data ),
37+ self .r_stb .eq (self .port .r_stb ),
38+ ]
3339 return m
3440
3541
@@ -46,16 +52,22 @@ class W(FieldAction):
4652 port : :class:`FieldPort`
4753 Field port.
4854 w_data : Signal(shape)
49- Write data. Driven by the :attr:`~FieldPort.w_data` signal of ``port``.
55+ Write data. Driven by ``port.w_data``. See :class:`FieldPort`.
56+ w_stb : Signal()
57+ Write strobe. Driven by ``port.w_stb``. See :class:`FieldPort`.
5058 """
5159 def __init__ (self , shape ):
5260 super ().__init__ (shape , access = "w" , members = {
5361 "w_data" : Out (shape ),
62+ "w_stb" : Out (1 ),
5463 })
5564
5665 def elaborate (self , platform ):
5766 m = Module ()
58- m .d .comb += self .w_data .eq (self .port .w_data )
67+ m .d .comb += [
68+ self .w_data .eq (self .port .w_data ),
69+ self .w_stb .eq (self .port .w_stb ),
70+ ]
5971 return m
6072
6173
0 commit comments