External Memory Interfaces Intel® Agilex™ 7 F-Series and I-Series FPGA IP User Guide

ID 683216
Date 4/03/2023

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

10.4.13. Controller Pre-pay and Post-pay Refresh (DDR4 Only)

There is some flexibility in the refresh interval for postponing or hastening refresh commands; you can use this flexibility to achieve improved controller efficiency in scheduling and switching between tasks. A maximum of 8 refresh commands can be postponed or hastened at one time for DDR4; the maximum interval between the surrounding refresh commands is 9 × tREFI.

You can postpone or hasten a refresh command using the Enable controller post-pay refresh and Enable controller pre-pay refresh parameters on the Controller tab in the parameter editor. You can select a lower limit and upper limit for the post-pay refresh, and an upper limit for the pre-pay refresh. The combined total of post-pay refresh and pre-pay refresh upper limit cannot exceed the refresh command limit of 8.

For example, a maximum of 8 refreshes in a row may be postponed for a design with the post-pay refresh upper limit set to 8. The accumulated refresh commands are issued continuously when the upper limit is reached. For the pre-pay refresh, the refresh command can be issued in advance or hastened depending on the specified refresh pre-pay upper limit. The refresh command is issued opportunistically when there is no traffic. When you have enabled both pre-pay and post-pay refreshes, the post-pay policy takes priority, and the refreshes are always accumulated. When post-pay refreshes have been opportunistically drained and there is no traffic, pre-pay refresh commands are then issued.

For traffic pattern in blocks, you must calculate the block time and schedule the refresh in the gaps between the blocks. You should select the pre-pay or pre-pay refresh limits (or both) that suit the design. For designs implementing non-stop access or random traffic, you should simulate the traffic pattern and check for the efficiency improvement using these settings. If you prefer to enable this feature while implementing random traffic, the controller efficiency might increase with a post-pay refresh lower limit of 1 and pre-pay refresh plus post-pay refresh upper limit combination of 8.