From df23431d7782172b6bfcdac3074928c9d59086f3 Mon Sep 17 00:00:00 2001 From: Sebastien Bourdeauducq Date: Thu, 13 Jun 2013 09:41:17 +0200 Subject: [PATCH] framebuffer: work around dysfunctional Xst retiming --- milkymist/framebuffer/__init__.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/milkymist/framebuffer/__init__.py b/milkymist/framebuffer/__init__.py index dff5817a..7911b32a 100644 --- a/milkymist/framebuffer/__init__.py +++ b/milkymist/framebuffer/__init__.py @@ -53,7 +53,8 @@ class Framebuffer(Module): class Blender(PipelinedActor, AutoCSR): def __init__(self, nimages, latency): - self.sink = Sink([("i"+str(i), pixel_layout) for i in range(nimages)]) + sink_layout = [("i"+str(i), pixel_layout) for i in range(nimages)] + self.sink = Sink(sink_layout) self.source = Source(pixel_layout) factors = [] for i in range(nimages): @@ -65,7 +66,10 @@ class Blender(PipelinedActor, AutoCSR): ### - imgs = [getattr(self.sink.payload, "i"+str(i)) for i in range(nimages)] + sink_registered = Record(sink_layout) + self.sync += If(self.pipe_ce, sink_registered.eq(self.sink.payload)) + + imgs = [getattr(sink_registered, "i"+str(i)) for i in range(nimages)] outval = Record(pixel_layout) for e in pixel_layout: name = e[0] @@ -85,7 +89,7 @@ class Blender(PipelinedActor, AutoCSR): ] pipe_stmts = [] - for i in range(latency): + for i in range(latency-1): new_outval = Record(pixel_layout) pipe_stmts.append(new_outval.eq(outval)) outval = new_outval -- 2.30.2