Is there a 'standard' (Altera supported) method to run my Nios II from off chip memory like SRAM or SDRAM? Since the design is in prototype stages, it means that I am using JTAG for configuration and all the configuration bit stream and the compiled Nios II program, does not have to be copied into the configuration memory like EPCS, EPCQ or CFI flash device.Since on-chip memory is very limited it is better to use off chip memory for the program.
How do I get the program into off chip memory then? I know this will require something called boot loader, but is there an application note or example of this? I have not found clear instructions on this yet.During development one will have to compile and load program into the Nios dozens of times.
Therefore, if each time one has to load a boot loader FPGA design to load the Nios II program into the external memory and then load the Nios II design into the FPGA, this 2 step process seems cumbersome. Loading directly from an external ram is probably going to be more trouble than its worth, it may require hacking, I have not tried this and probably never will, I believe it is possible. Here we go:You need to get the compiled code using one of the methods listed in the ' document I think the.hex file looks the most promising.Load the memory from the JTAG, describes how to write to memory and other avalon MM devices.Point your reset memory vector in the NOIS processor to the boot address in your external ram.Then your going to have to trigger a reset without resetting the external ram. This is the hack part, since I don't know your setup, your going to have to do this.Good luck, sounds like a fun project. I'd try it out if I had the time, maybe I will someday (I've also ran into this problem, for me it was much less time consuming and cheaper to upgrade the FPGA, in fact if your developing you should almost always use the biggest fpga possible)Here is another on booting from an external processor.
Altera University Program Flash Memory Demo Pc
During development, you don't need to have flash at all to run your code from external RAM. The debugger will load the code there and run the CPU from that location.
You only need to deal with flash when you want your code to survive a shutdown.If you do need flash, you should be aware some flash controllers support direct code execution while others don't. With the first class, you can forego the bootloader (called boot copier in the documentation) and run the code directly from flash, which saves you RAM but is often significantly slower. With the second class, you have no choice but to use the boot copier and run your code from RAM.A typical example of the second class is the Legacy EPCS controller. It maps a small ROM containing the boot copier into the address space, so CPU reset vector should point to it in order to get your code into RAM on reset. Notably, this controller is designed in a way enabling you to keep both the FPGA configuration and your code in the same flash device. As a result, the for flashing your code is somewhat complicated.An example of the first class is the newer EPCQ controller.
Unlike EPCS, it maps the entire flash contents into the memory space, which is required for in-place execution. You can still choose to put a boot copier in it and run your code from RAM to achieve faster execution speed. The Embedded Peripherals IP User Guide explains you how to choose between the two options:The Nios II SBT tools know whether to append a boot copier based on the.text linker section location. If the.text linker section is located in a different memory than where the reset vector points, it indicates a code copy is required.
At this scenario a boot copier is required. You can use the existing logic to generate a programming file with or without a boot copier depending on the scenario.In case you don't know, linker sections are configured in the Board Support Package configuration dialog.
How To Program Flash
Ravenouspak.jimdo.com Altera University Program Flash Memory Demonstration - ravenouspak 526 × 470 - 107k - jpg altera.com Altera DE0 Board 2000 × 1680 - 406k - jpg altera.com Cyclone V GX FPGA Development Kit 650 × 424 - 115k - jpg aliexpress.com ALTERA FPGA development board DE2 Cyclone II EP2C35F672 shipping.