Nios II
From Wikipedia, the free encyclopedia
Nios II is the second-generation soft-core embedded processor after Nios from Altera.
Contents |
[edit] Nios II CPU Family
Nios II processors implement a 32-bit instruction set based on a RISC architecture. Because it is a soft-core processor, FPGA developers can choose from a myriad of system configurations, picking the best-fit CPU core as well as selecting processor peripherals. There are three Nios II CPU cores: Nios II/f (fast), Nios II/e (economy) and Nios II/s (standard).
The Nios II/f core is designed for maximum performance at the expense of core size.
[edit] Features of Nios II/f include:
- Separate instruction and data caches (512 bytes to 64 Kbytes)
- Access to up to 2 Gbytes of external address space
- Optional tightly coupled memory for instructions and data
- Six-stage pipeline to achieve maximum DMIPS/MHz
- Single-cycle hardware multiply and barrel shifter
- Optional hardware divide option
- Dynamic branch prediction
- Up to 256 custom instructions and unlimited hardware accelerators
- JTAG debug module
- Optional JTAG debug module enhancements, including hardware breakpoints, data triggers, and real-time trace
The Nios II/e core is designed for smallest possible logic utilization of FPGAs. This is especially efficient for low-cost Cyclone II FPGA applications.
[edit] Features of Nios II/e include:
- Up to 2 Gbytes of external address space
- JTAG debug module
- Complete systems in fewer than 700 LEs
- Optional debug enhancements
- Up to 256 custom instructions
Nios II/s core is designed to maintain a balance between performance and cost.
[edit] Features of Nios II/s include:
- Instruction cache
- Up to 2 Gbytes of external address space
- Optional tightly coupled memory for instructions
- 5-stage pipeline
- Static branch prediction
- Hardware multiply, divide, and shift options
- Up to 256 custom instructions
- JTAG debug module
- Optional JTAG debug module enhancements, including hardware breakpoints, data triggers, and real-time trace
[edit] Key Features of Nios II:
- Custom Instructions
The soft-core nature of the Nios II processor lets designers integrate custom logic into the arithmetic logic unit (ALU). Similar to native Nios II instructions, custom instructions accept values from up to two 32-bit source registers and optionally write back a result to a 32-bit destination register. By using custom instructions, The system designers can fine-tune the system hardware to meet performance goals and also the designer can easily handle the instruction as a macro in C/C++.
- Custom Peripherals
System designers also can create their own custom peripherals that can be integrated with Nios II processor systems. For performance-critical systems that spend most CPU cycles executing a specific section of code, it is a common technique to create a custom peripheral that implements the same function in hardware. Using this approach, performance is doubled: the hardware implementation is faster than software; and the processor is free to perform other functions in parallel while the custom peripheral operates on data.
[edit] Avalon Switch Fabric Interface
Nios II uses the Avalon switch fabric as the interface to its embedded peripherals. Compared to a traditional bus in a processor-based system, which lets only one bus master access the bus at a time, the Avalon switch fabric, using a slave-side arbitration scheme, lets multiple masters operate simultaneously.
[edit] Development Processes
The development tools for Nios II embedded system involves two processes: (1) Hardware Generation, and (2) Software Creation.
Hardware Generation Process. Nios II hardware designers use the SOPC (System-on-Programmable-Chips) Builder development tool to specify, configure, and generate the embedded system using a graphical user interface (GUI).
Software Creation Process. Nios II software development tasks can be accomplished within an Eclipse-based Nios II integrated development environment (IDE).
[edit] Open Source Support
The development environment for Nios II is based on the Eclipse IDE and the GNU toolchain, and μCLinux has been ported to the processor. The vast majority of pre-existing Open Source programs for Linux will compile and run on Nios II without modifying the source code.