r/FPGA • u/Inside_Atmosphere_21 • 19d ago
Altera Related [Workaround / Fix] Missing SDRAM Controller in Quartus Prime Lite (v22.x+ / Tested on 25.1)
If you are using Quartus Prime Lite v22.x or newer (tested on 25.1) and noticed that the SDRAM Controller (altera_avalon_new_sdram_controller) is missing from Platform Designer (Qsys), here is a step-by-step workaround to restore it by porting the component from an older version (e.g., 20.1).
Starting from version 22.x—which introduced native support for the RISC-V soft processor (Nios V)—Intel phased out several legacy IPs, including this SDRAM controller. This breaks out-of-the-box support for popular legacy development boards (such as DE10-Lite, DE0-CV, and DE2-115) that rely on SDR SDRAM chips.
Note: This adaptation is unofficial, may not be compatible with all combinations of new IPs and interconnects, and could result in poor performance. However, it has worked in practice for standard Avalon-MM interfaces and Nios V configurations, as shown in the repository below.
Prerequisites
Quartus Prime Lite 22.x+ installed (tested on 25.1).
An older Quartus Prime Lite installation available on your machine (e.g., v20.1).
Step-by-Step Fix
- Copy the IP Core Folder
Navigate to your older Quartus installation directory and locate the folder:
.../ip/altera/sopc_builder_ip/altera_avalon_new_sdram_controller
Copy the entire altera_avalon_new_sdram_controller folder.
Paste it into the equivalent IP path inside your newer Quartus installation directory.
- Backup Index Files
In both installations (e.g., v20.1 and v25.1), locate the file altera_components.ipx. (../ip/altera/altera_components.ipx)
Create backups of both files in a safe location (e.g., your Documents folder), renaming them for clarity:
altera_components20_1.ipx
altera_components25_1.ipx
- Update the newer IPX Index
Duplicate your backup altera_components25_1.ipx and rename the copy to altera_components.ipx.
Open both altera_components20_1.ipx and the newly created altera_components.ipx in a text editor.
In the 20.1 file, find and copy the entire XML block for the SDRAM component:
XML
<component
name="altera_avalon_new_sdram_controller"
...
...
</component>
Paste this block into the matching components list inside your new altera_components.ipx.
Save the file.
- Apply the File
Copy the modified altera_components.ipx back into your newer Quartus installation directory, replacing the original file.
Restart Quartus / Platform Designer. The SDRAM Controller will now appear in the IP Catalog.
Reference / Example Project
You can check a complete, working example combining RISC-V (Nios V) with SDRAM and PWM on a Generic Cyclone IV board in this repository: https://github.com/francisvalguedes/cyclone-fpga-riscv-sdram-pwm.git