diff options
| author | Alejandro Soto <alejandro@34project.org> | 2023-11-15 17:00:47 -0600 |
|---|---|---|
| committer | Alejandro Soto <alejandro@34project.org> | 2023-11-16 16:43:59 -0600 |
| commit | ba803067cb54edece9ffa8b92f9bb97317d082e5 (patch) | |
| tree | 4d94c1d3d82df91079d70407865f98472d0a16c9 /rtl/gfx/gfx_pipes.sv | |
| parent | ebd16f54913aaafd0b6f86223f53fc40b2d64d03 (diff) | |
rtl/gfx: improve divider timing closure
Diffstat (limited to 'rtl/gfx/gfx_pipes.sv')
| -rw-r--r-- | rtl/gfx/gfx_pipes.sv | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/rtl/gfx/gfx_pipes.sv b/rtl/gfx/gfx_pipes.sv index 09b1d43..390a481 100644 --- a/rtl/gfx/gfx_pipes.sv +++ b/rtl/gfx/gfx_pipes.sv @@ -17,8 +17,13 @@ module gfx_pipes if (!stall) begin pipes[0] <= in; - for (integer i = 1; i < DEPTH; ++i) - pipes[i] <= pipes[i - 1]; + /* Esto tiene que ir así porque Verilator no soporta <= en for + * loops a las que no logre hacerle unrolling. Nótese que el + * orden de iteración descendiente es necesario porque estamos + * usando un blocking assignment dentro de always_ff. + */ + for (integer i = DEPTH - 1; i > 0; --i) + pipes[i] = pipes[i - 1]; end endmodule |
