Forum Discussion
User controlled burst refresh
Hi,
I have a problem regarding DDR3 EMIF IP can't bursting user control refresh.
I am debugging my EMIF test design on Cyclone 10 GX development board.
The situation is that it takes long time to get mmr_refresh_ack response.
Below is my environment:
Quartus Prime Pro 23.2 on Windows 11
External Memory Interfaces Intel Cyclone 10 FPGA IP, altera_emif_c10 19.1.1
Cyclone 10 GX FPGA Development Kit (Power Solution 1) DK-DEV-10CX220-A
Cyclone 10 GX 10CX220YF780E5G
First of all, I have a question about the description of the user guide.
I would like to fix my design after question was solved.
I am referring External Memory Interfaces Cyclone 10 GX FPGA IP User Guide Updated for Quartus Prime Design Suite: 24.1 IP Version: 19.1.2.
1. In page 84, Table 4.4.13 for mmr_refresh_req states that Controller clears this bit to 0 when the refresh is executed.
This is inconsistent for the description:
Page 223, 9.4.6.1 Back-to-Back User-Controlled Refresh Usage:
The waveform instruct user to clear mmr_refresh_req before set mmr_refresh_req again at reference time (5).
I guess this waveform explains back-to-back user controlled refresh so, the next refresh request is expected tRFC after reference time (4).
My question is:
Should I clear the mmr_refresh_req register before back-to-back next refresh request?
2. In page 223,
---
Note: If you enable the auto-precharge control, you must ensure that the average periodic
refresh requirement is met, because the controller does not issue any refreshes until
you instruct it to.
---
What happens if I disable the auto-precharge control?
In this case, are both IP planned refresh and user controlled refresh happens?
3. There are two enable user refresh controls in the user guide:
1) IP parameter of Enable User Refresh Control
2) cfg_user_rfsh_en register inside the IP
What is the relationship of them?
Does the IP parameter define initial state of cfg_user_rfsh_en register?
Is the logical AND condition needed for the user controlled refresh?
4. In page 78, table 4.4. Cyclone 10 GX Memory Mapped Register (MMR) Tables:
The cfg_user_rfsh_en register is missing.
Do I need to handle this register?
Masaru
I found three incorrect explanations of section 9.4.6 User-Controlled Refresh.
1. Page 223, Note:, "If you enable the auto-precharge control,..."
should be "If you enable the user controled refresh,...".2. Page 223, 9.4.6.1 Back-to-Back User-Controlled Refresh Usage,
Step 1 to write the cfg_user_rfsh_en register should not be done.
If we write to the register, we do not receive acknolegement for a long time at step 3.3. Page 223, Fighre 87, the tRFC mesurement should start with timing (2) not with (4).
By my interpretations, my design works fine for back to back user contlloled refresh.
altera should fix section 9.4.6 User-Controlled Refresh.
Masaru
7 Replies
- MamaSaru
Occasional Contributor
I found three incorrect explanations of section 9.4.6 User-Controlled Refresh.
1. Page 223, Note:, "If you enable the auto-precharge control,..."
should be "If you enable the user controled refresh,...".2. Page 223, 9.4.6.1 Back-to-Back User-Controlled Refresh Usage,
Step 1 to write the cfg_user_rfsh_en register should not be done.
If we write to the register, we do not receive acknolegement for a long time at step 3.3. Page 223, Fighre 87, the tRFC mesurement should start with timing (2) not with (4).
By my interpretations, my design works fine for back to back user contlloled refresh.
altera should fix section 9.4.6 User-Controlled Refresh.
Masaru
- AdzimZM_Altera
Regular Contributor
Hi Masaru,
1. "Should I clear the mmr_refresh_req register before back-to-back next refresh request?"
- No the IP should handle it.
2. "What happens if I disable the auto-precharge control?
In this case, are both IP planned refresh and user controlled refresh happens?"
- You should control the refresh since the IP doesn't issue the refresh if user controlled refresh is enabled.
3. "What is the relationship of them?
Does the IP parameter define initial state of cfg_user_rfsh_en register?
Is the logical AND condition needed for the user controlled refresh?"
- You don't have to care about that. Only use the MMR interface.
4. "Do I need to handle this register?"
- No need.
Regards,
Adzim
- MamaSaru
Occasional Contributor
Hi Adzim,
Thank you for your reply.
1. >- No the IP should handle it.
So, the section "9.4.6.1. Back-to-Back User-Controlled Refresh Usage" should be revised
not to clear the mmr_refresh_req register.
2. >- You should control the refresh since the IP doesn't issue the refresh if user controlled refresh is enabled.
No, original statement said, "If you enable the auto-precharge control,".
Is this statement correct?
3. >- You don't have to care about that. Only use the MMR interface.
Do you mean the Enable User Refresh IP parameter doesn't affect at all?
Can I run user control refresh under IP parameter is off?
4. - No need.
Do you mean I don't need to handle cfg_user_rfsh_en register?
I am confused about your answer.
Masaru
- AdzimZM_Altera
Regular Contributor
Hi Masaru,
When user control refresh is enabled, user has complete control and responsible to provide sufficient refresh to memory.
The statement in EMIF UG mentioned it here: https://docs.altera.com/r/docs/683663/24.1/external-memory-interfaces-cyclone-10-gx-fpga-ip-user-guide/intel-cyclone-10-gx-emif-ip-ddr3-parameters-controller
The IP should enable the user control refresh already.
I don't think you need to enable it from the user logic.
Regards,
Adzim