Chapter 1: Nios II Hardware Development
1–7
Nios II System Development Flow
May 2011
Altera Corporation
Nios II Hardware Development Tutorial
■
Hexadecimal (Intel-Format) File (
.hex
)—Contains initialization information for
on-chip memories. The Nios II SBT for Eclipse generate these initialization files for
on-chip memories that support initialization of contents.
■
Flash memory programming data—Is boot code and other arbitrary data you
might write to flash memory. The Nios II SBT for Eclipse includes a flash
programmer, which allows you to write your program to flash memory. The flash
programmer adds appropriate boot code to allow your program to boot from flash
memory. You can also use the flash programmer to write arbitrary data to flash
memory.
This tutorial focuses on downloading only the
.elf
directly to the Nios II system.
f
For extensive information about developing software for the Nios II processor, refer to
the
Nios II Software Developer's Handbook
Running and Debugging Software on the Target Board
The Nios II SBT for Eclipse provides complete facilities for downloading software to a
target board, and running or debugging the program on hardware. The Nios II SBT
for Eclipse debugger allows you to start and stop the processor, step through code, set
breakpoints, and analyze variables as the program executes.
f
For information about running and debugging Nios II programs, refer to the tutorial
in the
Getting Started with the Graphical User Interface
Nios II Software
Developer’s Handbook
.
Varying the Development Flow
The development flow is not strictly linear. This section describes common variations.
Refining the Software and Hardware
After running software on the target board, you might discover that the Nios II
system requires higher performance. In this case, you can return to software design
steps to make improvements to the software algorithm. Alternatively, you can return
to hardware design steps to add acceleration logic. If the system performs multiple
mutually exclusive tasks, you might even decide to use two (or more) Nios II
processors that divide the workload and improve the performance of each individual
processor.
Iteratively Creating a Nios II System
A common technique for building a complex Nios II system is to start with a simpler
Qsys system, and iteratively add to it. At each iteration, you can verify that the system
performs as expected. You might choose to verify the fundamental components of a
system, such as the processor, memory, and communication channels, before adding
more complex components. When developing a custom component or a custom
instruction, first integrate the custom logic into a minimal system to verify that it
works as expected; later you can integrate the custom logic into a more complex
system.