Community
cancel
Showing results for 
Search instead for 
Did you mean: 
ACoff2
Beginner
219 Views

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

Hardware Setup

DVK600 (https://www.waveshare.com/dvk600.htm)

CoreEP4CE10 (https://www.waveshare.com/wiki/CoreEP4CE10)

NOR Flash Board B (https://www.waveshare.com/norflash-board-b.htm)

 

Software

Quartus prime 18.1

Device family Cyclone IV E

 

Details

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
ACoff2
Beginner
58 Views

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.

 

platform_designer.png

Don't forget to setup your pins

 

Ahmed_H_Intel1
Employee
58 Views

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

 

Reply