Forum Discussion
ram retiming
- 3 months ago
H Zjji,
Enabling ALLOW_RAM_RETIMING allows Quartus to retime across RAMs when the RAM implementation supports it, but it does not guarantee that every RAM/FIFO instance can be retimed. In this case, the reported node is inside the FIFO RAM hard block, so Quartus cannot move registers through that block boundary.
To improve timing, the recommended action is to modify the RTL/IP structure by enabling optional RAM/FIFO input/output registers, or by adding pipeline registers before or after the FIFO RAM path. This is why the report suggests manual register repositioning even though RAM retiming is enabled.
Thanks,
Best regards,
Kenny
H Zjji,
Enabling ALLOW_RAM_RETIMING allows Quartus to retime across RAMs when the RAM implementation supports it, but it does not guarantee that every RAM/FIFO instance can be retimed. In this case, the reported node is inside the FIFO RAM hard block, so Quartus cannot move registers through that block boundary.
To improve timing, the recommended action is to modify the RTL/IP structure by enabling optional RAM/FIFO input/output registers, or by adding pipeline registers before or after the FIFO RAM path. This is why the report suggests manual register repositioning even though RAM retiming is enabled.
Thanks,
Best regards,
Kenny