Nios® II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
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.
12409 Discussions

Can the NIOS II f be used as a dropin replacement for NIOS II e?

Honored Contributor II

Can the NIOS II f be used as a dropin replacement for the NIOS II e? In other words are there any things that need to be taken into consideration when switching from the e version to the f version in QSYS? Is there anything in the e version that would not work in the f version? Our problem appears to lie in the communication between the NIOS II f and a register file generated in the SoC. 


Quartus Version: Quartus II 64-Bit 15.0.0 Build 145 SJ Web Edition 

Board: Altera DE2-115 Development and Education Board 

Language of code running on NIOS: C 


0 Kudos
2 Replies
Honored Contributor II

SOLUTION: Set data cache size of the NIOS II/f through QSYS (edit) to 0. This fixed everything. 


Found at this post. Kind of hard to find on Google due to the many ways one can spell NIOS II/f.
Honored Contributor II

Yes the cache is the main difference between the cores that can cause problems with the software. If you still want to use the speed bump provided by the cache, you need to change the way you communicate with your components. You can use uncached addresses (I think the function to do that is called alt_remap_uncached() IIRC), or use the cache control functions to flush the cache after writing and invalidate it before reading. 

This applies also to memory buffers read/written by DMA: