Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
15321 Discussions

How to read/write to external memory NOR Flash IC (S29GL128P) from NIOS-II.


Hardware Setup

DVK600 (

CoreEP4CE10 (

NOR Flash Board B (



Quartus prime 18.1

Device family Cyclone IV E



I am new to Quartus prime and Platform Designer. I have a basis project setup with platform designer. I have included a NIOS II core, some onchip memory and a jtag_uart. I have a basic demo of "hello world" from the NIOS working.


I'd now like to add some external memory to my system, a NOR flash IC (S29GL128P). I want to use platform designer to setup this device and connect it to the NIOS. I assume that I need to use some IP which has an Avalon interface to connect the flash IC to the NIOS memory mapped master. To be clear, I don't want to use the external flash to program configuration data into a flash memory device, instead I want to use it as general memory for Read/Write.


I was hoping there would be a generic parallel flash memory, mapped Avalon interface that I could hook up to? Or do I need to roll my own.





0 Kudos
2 Replies

I figured this out, so here is a solution I hope will help someone else.


There is indeed a generic common flash interface (CFI) IP in platform designer. One just needs to know where to look for it.


Expand the Qsys Interconnect category, Tri-State Components sub-category and add Generic Tri-State Controller block. Double-click the Flash Memory Interface (CFI) preset. You then need to fill out the details related to your specific IC, check the datasheet.


There is a caveat here, the output of the Generic Tri-State Controller block is of Tristate Conduit type and it is not suited for direct connection to the flash memory chip pins. A Tri-State Conduit Bridge block (can be found right under the Generic Tri-State Controller block) is required to create the appropriate external connection.



Don't forget to setup your pins



Thanks a lot for your answer and hard work to find the root cause of the issue.