@@ -232,22 +232,28 @@ def elaborate(self, platform):
232
232
wrapper .sink .last .eq (1 ),
233
233
]
234
234
with m .If (display .done & ~ display .source .valid ):
235
- # On the first time after initialization
236
- # we want to clear the frame buffer to make
237
- # sure we do not display crap.
238
- with m .If (~ self .ready ):
239
- m .next = "CLEAR"
240
- with m .Else ():
241
- m .next = "FRAMEBUFFER"
242
-
243
- with m .State ("CLEAR" ):
244
- m .d .comb += [
245
- wrapper .sink .valid .eq (1 ),
246
- wrapper .sink .data .eq (0 ), # Black pixels
247
- wrapper .sink .last .eq (cnt == self ._size - 1 ),
248
- wrapper .sink .d_cn .eq (1 ), # Framebuffer data
249
- ]
250
- with m .If (wrapper .sink .ready ):
235
+ m .next = "FRAMEBUFFER"
236
+
237
+ with m .State ("FRAMEBUFFER" ):
238
+ # On the first time after initialization
239
+ # we want to clear the frame buffer to make
240
+ # sure we do not display crap.
241
+ with m .If (~ self .ready ):
242
+ m .d .comb += [
243
+ wrapper .sink .valid .eq (1 ),
244
+ wrapper .sink .data .eq (0 ), # Black pixels
245
+ wrapper .sink .last .eq ((cnt == self ._size - 1 )),
246
+ ]
247
+ with m .Else ():
248
+ m .d .comb += [
249
+ wrapper .sink .valid .eq (sink .valid ),
250
+ wrapper .sink .data .eq (sink .data ),
251
+ wrapper .sink .last .eq ((cnt == self ._size - 1 ) | sink .last ),
252
+ sink .ready .eq (wrapper .sink .ready ),
253
+ ]
254
+ m .d .comb += wrapper .sink .d_cn .eq (1 ) # Framebuffer data
255
+
256
+ with m .If (wrapper .sink .valid & wrapper .sink .ready ):
251
257
with m .If (~ wrapper .sink .last ):
252
258
m .d .sync += cnt .eq (cnt + 1 )
253
259
with m .Else ():
@@ -256,13 +262,4 @@ def elaborate(self, platform):
256
262
m .d .comb += display .rewind .eq (1 )
257
263
m .next = "DISPLAY"
258
264
259
- with m .State ("FRAMEBUFFER" ):
260
- m .d .comb += [
261
- sink .connect (wrapper .sink ),
262
- wrapper .sink .d_cn .eq (1 ),
263
- ]
264
- with m .If (sink .valid & sink .ready & sink .last ):
265
- m .d .comb += display .rewind .eq (1 )
266
- m .next = "DISPLAY"
267
-
268
265
return m
0 commit comments