@@ -125,24 +125,19 @@ def __init__(self, pads, flash, clock_domain, default_divisor, cs_delay):
125125 4 : dq_o [1 ].eq (sr_out [- 4 :]),
126126 8 : dq_o [1 ].eq (sr_out [- 8 :]),
127127 }),
128- Case (sink .width , {
129- 1 : sr_out_shifted .eq (Cat (Signal (1 ), sr_out [:- 1 ])),
130- 2 : sr_out_shifted .eq (Cat (Signal (2 ), sr_out [:- 2 ])),
131- 4 : sr_out_shifted .eq (Cat (Signal (4 ), sr_out [:- 4 ])),
132- 8 : sr_out_shifted .eq (Cat (Signal (8 ), sr_out [:- 8 ])),
133- }),
128+ sr_out_shifted .eq (sr_out << sink .width ),
134129 sr_out_loaded .eq (sink .data << (len (sink .data ) - sink .len ))
135130 ]
136131 self .sync += If (sr_out_load ,
132+ sr_in .eq (0 ),
137133 sr_out .eq (sr_out_loaded ),
138134 Case (sink .width , {
139135 1 : dq_o [0 ].eq (sr_out_loaded [- 1 :]),
140136 2 : dq_o [0 ].eq (sr_out_loaded [- 2 :]),
141137 4 : dq_o [0 ].eq (sr_out_loaded [- 4 :]),
142138 8 : dq_o [0 ].eq (sr_out_loaded [- 8 :]),
143139 }),
144- )
145- self .sync += If (sr_out_shift [0 ],
140+ ).Elif (sr_out_shift [0 ],
146141 Case (sink .width , {
147142 1 : dq_o [0 ].eq (sr_out_shifted [- 1 :]),
148143 2 : dq_o [0 ].eq (sr_out_shifted [- 2 :]),
@@ -153,7 +148,7 @@ def __init__(self, pads, flash, clock_domain, default_divisor, cs_delay):
153148 ).Elif (sr_out_shift [1 ],
154149 dq_o [0 ].eq (dq_o [1 ]),
155150 sr_out .eq (sr_out_shifted ),
156- ).Elif ( ~ sr_out_load ,
151+ ).Else (
157152 dq_o [0 ].eq (dq_o [1 ]),
158153 )
159154
0 commit comments