Hi,
Regarding the power-up restriction reported for altera_scfifo in retiming.rpt / fastforward.rpt, this is not generally something that can be resolved by forcing the tool to ignore the power-up condition.
For RAM/DSP retiming, retiming is only supported when:
- the RAM/DSP is in a supported mode
- the pipelining FFs before the RAM/DSP have power-up don’t care for forward retiming
- the pipelining FFs after the RAM/DSP have power-up don’t care for backward retiming
There are also RAM configurations that are not retimed, such as:
- RAMs with memory initialization
- mixed-width RAMs
- RAMs with forwarding mode enabled
For altera_scfifo, the restriction is typically more limiting than for a simple RAM, because the FIFO contains internal state and startup behavior beyond a plain memory array. Because of that, even if the report shows a power-up restriction, there may not be a safe or supported method to force retiming through the FIFO.
The recommended guidance is:
- do not try to override the power-up restriction
- treat the FIFO as a retiming boundary
- improve timing by adding explicit pipeline stages around the FIFO
- where applicable, use FIFO configuration options that help timing
In short, the restriction exists to preserve functional correctness, and bypassing it is not recommended.
I will attached a simple design show how retiming works for the RAM, kindly check your inbox on this.
Thanks,
Best regards,
Kenny Tan