Fact-checked by Grok 2 weeks ago

Nios II

The Nios II is a family of soft-core, 32-bit (RISC) processors developed by (formerly ) for embedding in their field-programmable gate arrays (FPGAs) and system-on-chip () devices. Introduced in May 2004 as the successor to Nios processor, it provides a configurable that allows designers to implement complete systems—including the CPU core, on-chip peripherals, memory blocks, and interfaces to external memory—entirely within FPGA fabric. The Nios II family includes three main variants optimized for different trade-offs in resource usage, performance, and power consumption: the Nios II/e (economy core), which prioritizes minimal for cost-sensitive designs (typically around 500–700 LEs with basic peripherals); the Nios II/s (standard core), offering a balance of features like optional caches and multipliers; and the Nios II/f (fast core), designed for maximum performance with branch prediction, larger caches, and dynamic branch handling (achieving up to approximately 0.75 per MHz, or 75 DMIPS at 100 MHz). All variants share a consistent 32-bit , 32 general-purpose registers, support for up to 32 interrupts, optional and , hardware multipliers/dividers, and compatibility with C/C++ toolchain via the Nios II Embedded Design Suite (EDS). Performance varies by FPGA and configuration, with fmax (maximum clock ) typically ranging from 100–200 MHz depending on the core and target , and logic utilization scaling with enabled options like /data caches (up to 64 KB each) or custom instructions. Nios II systems integrate seamlessly with Intel's Avalon Memory-Mapped (MM) and Streaming (ST) interconnect fabrics, enabling rapid prototyping of embedded applications such as , industrial control, and communications protocols. Key features include optional tightly coupled memory for low-latency access, with precise interrupts, and debug support via interfaces compatible with Intel's SignalTap Logic Analyzer. The processor supports bare-metal, real-time operating systems (RTOS) like FreeRTOS, and full Linux distributions through board support packages (BSPs) generated by the Nios II Software Build Tools (SBT). As of Quartus Prime version 25.1 (released in 2025), the Nios II processor has been designated as legacy and discontinued for new designs, with Intel recommending migration to the Nios V processor family—based on the open-source RISC-V architecture—for ongoing and future embedded FPGA projects. Additionally, as of GCC 15 (released in 2025), compiler support for Nios II has been discontinued. Despite this, legacy support, documentation, and tools remain available for existing implementations across Intel's FPGA portfolio, including Cyclone, Arria, and Stratix families.

Overview

Introduction

The Nios II is a configurable 32-bit reduced instruction set (RISC) soft-core developed by (acquired by in ), designed to be implemented within the programmable logic fabric of Intel field-programmable gate arrays (FPGAs). It functions as a general-purpose equivalent to a or "computer on a chip," enabling designers to create custom system-on-chip () solutions for applications such as , control systems, and real-time . Architecturally, Nios II employs a Harvard design with separate 32-bit buses for instructions and , supporting a 32-bit , 32 general-purpose registers, and optional features like tightly coupled for optimization. The core accommodates up to 256 instructions, which can extend its functionality for specialized tasks, and supports programming in C/C++ or via Intel's Nios II Embedded Design Suite (EDS). Depending on the processor variant and target FPGA fabric, it achieves maximum clock frequencies up to approximately 200 MHz, delivering up to about 150 million (DMIPS) in optimized configurations. Nios II evolved from the original Nios processor, introduced by in fall 2000 to address the inflexibility and high non-recurring engineering costs of fixed (ASIC) processors in FPGA-based designs. Launched in 2004, it offered improved configurability, performance, and integration capabilities for soft-core embedded systems. has since announced Nios V, a RISC-V-based successor, as the replacement for Nios II in new Intel FPGA developments.

History and Development

The was initially developed by Corporation as a configurable 16-bit soft-core , with its first release in 2000, marking one of the earliest commercial offerings for FPGA-based systems. This was followed by the launch of Nios II in May 2004, a 32-bit RISC designed as a successor with significantly improved performance, configurability, and support for a family of cores including the high-performance Nios II/f, standard Nios II/s, and economy Nios II/e variants. Nios II quickly became integral to 's ecosystem, enabling customizable processing within FPGAs through tools like SOPC Builder for system-on-chip design. Key development milestones for Nios II included enhanced integration with Altera's Quartus II design software in version 7.2 released in October 2007, which streamlined hardware and software flows for embedded development. In May 2008, version 8.0 introduced optional (MMU) and (MPU) support, enabling advanced operating system compatibility and security features. Multi-core capabilities emerged in the , facilitated by SOPC Builder's ability to instantiate multiple Nios II processors in a single design, with dedicated tutorials and reference designs supporting configurations by around 2010. A significant evolution occurred in 2014 with the introduction of Nios II Gen2 architecture, which optimized the Nios II/e core for low-resource designs while maintaining binary compatibility with prior versions. Altera's acquisition by , announced on June 1, 2015, and completed on December 28, 2015, led to rebranding as Intel FPGA and continued Nios II enhancements, including final major updates in Quartus Prime version 21.3 in 2021, which coincided with the preview of its -based successor, Nios V. Following offloading of a majority stake in in April 2025, operates independently, with legacy Nios II support continuing through available tools and documentation. However, in June 2023, announced the discontinuation of Nios II IP through Product Discontinuance Notification PDN2312, citing a strategic shift to Nios V for its open ecosystem, improved performance, and broader tooling support like the Ashling RiscFree . New IP sales ended on March 22, 2024, with last shipments by March 29, 2024, though legacy designs received support in Quartus Prime up to version 24.1 in 2024; beyond that, preservation guides were provided for existing projects. Additionally, GCC 15, released in early 2025, fully removed Nios II target support following its deprecation in GCC 14. provided migration resources to transition designs to Nios V.

Architecture

Core Design and Key Features

The Nios II processor employs a 32-bit reduced instruction set computing (RISC) architecture, characterized by 32 general-purpose 32-bit registers (r0 through r31) and a load/ design where arithmetic and logical operations occur exclusively between registers, while data movement to and from or peripherals is handled by dedicated load and instructions. This separates instruction and data buses, enabling efficient access to byte-addressable with support for 8-bit, 16-bit, and 32-bit transfers via instructions such as ldb/stb for bytes, ldh/sth for halfwords, and ldw/stw for words. All instructions are fixed-length 32-bit words, ensuring straightforward decoding and alignment in a 32-bit that spans up to 4 . A hallmark of the Nios II core is its high degree of configurability, achieved through parameterization in Intel's Platform Designer tool (formerly Qsys), which allows designers to tailor the processor for specific area, speed, and power requirements. Key optional accelerators include a for single-cycle shifts and rotates, a multiplier supporting 32×32 operations (with options for block or logic element implementation), and a divider for integer division, each selectable to balance resource usage and performance— for instance, multiplication can reduce counts from dozens in software to one . depth is also configurable, ranging from 1 to 6 stages across implementations to optimize throughput versus latency. The core incorporates essential features for embedded systems reliability and integration. Exception handling supports precise, non-vectored exceptions for conditions like resets, illegal instructions, misaligned accesses, and breaks, with dedicated control registers and the eret instruction for returning from handlers. An integrated interrupt controller manages up to 32 level-sensitive sources (irq0 to irq31), with configurable priorities and an external interface for expansion to additional sources via peripherals. Debugging is facilitated by a JTAG-compliant interface supporting hardware breakpoints, watchpoints, and real-time trace capabilities, integrated with Intel's Nios II software tools for on-chip analysis. Power efficiency is enhanced through techniques like clock gating in inactive pipeline stages and configurable feature exclusion to minimize dynamic power in FPGA logic elements. Performance scales with FPGA device and configuration, achieving up to 210 Dhrystone MIPS (DMIPS) at approximately 170 MHz when implemented in Cyclone V devices such as the 5CGXFC7D6F31C6. As a soft core described in synthesizable Verilog, the Nios II integrates seamlessly into Intel FPGA fabrics, targeting devices from Cyclone to Stratix series, and supports multi-core configurations through shared memory spaces and unique CPU identifiers for synchronization. The /f variant includes optional dynamic branch prediction to further boost performance in control-intensive code. Custom instructions can extend the ISA for application-specific acceleration, though details vary by use case.

Processor Variants

The Nios II family includes three core variants—Nios II/e (economy), Nios II/s (standard), and Nios II/f (fast)—each tailored to balance performance, features, and FPGA resource consumption. These variants share the same but differ in depth, optional hardware accelerators, and optimization focus, allowing designers to select based on application needs in FPGAs like the Arria or series. The Nios II/e core prioritizes minimal area for cost-sensitive designs, using a 1-stage with no . It delivers the lowest , up to approximately 31 DMIPS, and consumes the smallest of less than 700 logic elements (LEs), making it suitable for basic control-oriented tasks such as sensor nodes where outweighs speed. In contrast, the Nios II/s core offers a balanced profile with a 5-stage and static . It provides moderate of up to 127 DMIPS and requires less than 1,400 , targeting general applications that need reliable execution without excessive logic overhead. The Nios II/f core is optimized for maximum throughput, featuring a 6-stage and dynamic branch prediction, along with a full feature set including options available in both /f and /s variants. It achieves the highest performance, up to 218 DMIPS in high-end configurations, but demands up to 3,000 with options like MMU, ideal for compute-intensive uses like in performance-critical systems.
VariantPipeline StagesKey FeaturesPerformance (DMIPS)Resource Usage (LEs)Target Applications
Nios II/e1Minimal; no branch prediction; optional FPU via custom instructionsUp to 31<700Simple control, sensors
Nios II/s5Static branch prediction; optional FPU via custom instructionsUp to 127<1,400General embedded systems
Nios II/f6Dynamic branch prediction; optional FPU via custom instructions, MMUUp to 218<1,800 (base); up to 3,000 with options, high-performance tasks
Variant selection hinges on FPGA resource availability and speed demands; for instance, the /e suits low-area designs, while the /f excels in scenarios requiring advanced features and throughput.

Memory Management Units

The Nios II processor incorporates an optional (MMU) in its /f variant to enable virtual-to-physical address translation, facilitating support for full-featured operating systems such as that require management. The MMU divides into fixed 4-KB pages, consisting of a 20-bit virtual page number and a 12-bit page offset within the 32-bit , while physical uses corresponding 4-KB frames across the full 32-bit (4 GB) , divided into low (512 MB) and high memory regions. Translation occurs through a main (TLB) shared between instruction and data accesses, acting as a for the operating system's page tables, along with separate micro-TLBs for instruction (default 4 fully associative entries) and data (default 6 fully associative entries) to accelerate common accesses. The main TLB features a configurable number of entries and set-associativity, optimized via device family settings to balance performance and FPGA resource utilization. is achieved through configurable process identifier (PID) bits in TLB entries, allowing multiple processes to share the securely. Upon a TLB miss, the MMU generates a fast TLB miss exception for software handling, potentially escalating to a double TLB miss exception if the initial handler fails; additional exceptions include page invalid or protection violations treated as page faults. Implementing the MMU in the Nios II/f core increases logic element () consumption by approximately 1,200 , reaching up to 3,000 LEs total depending on other configurations. This overhead supports multi-tasking environments where abstraction enhances and security, particularly in applications running on FPGA-based systems. Complementing the MMU, the Nios II processor offers an optional (MPU) in its /f and /s variants for region-based protection without virtual addressing, ideal for real-time operating systems like that prioritize deterministic behavior over . The MPU defines up to 32 instruction regions and 32 data regions, each configurable with a base address, variable size (minimum 64 bytes, maximum spanning the ), and specific permissions—read and write for data regions, execute for instruction regions—to enforce access controls. Violations, such as attempts to access undefined or protected regions, trigger MPU region violation exceptions, enabling fault isolation without requiring an operating system kernel intervention. The MPU operates in both and modes, supporting lightweight partitioning for applications, and is always enabled once configured post-reset via control registers like mpubase and mpuacc. Including the MPU adds roughly 600 to the core, resulting in up to 2,400 LEs for the /f variant. Common use cases for the MPU include detecting stack overflows by protecting guard regions, preventing null or wild pointer dereferences through reserved low-memory zones, and securing multi-task partitions in resource-constrained systems. Unlike the MMU, the MPU integrates directly with the Layer (HAL) for bare-metal or simple OS environments, offering lower overhead for reliability. Both the MMU and MPU are mutually exclusive options and are configured through the Platform Designer tool (formerly SOPC ), where parameters like TLB sizes or region counts are set, ensuring seamless integration with external memory controllers such as SDRAM for physical address handling.

System Integration

Avalon Switch Fabric Interface

The Avalon Switch Fabric serves as the primary interconnect fabric for the Nios II processor in Intel FPGA-based systems, enabling efficient communication between the processor and on-chip peripherals through standardized interfaces. These interfaces, part of 's protocol family, facilitate modular system design by defining clear electrical, timing, and functional behaviors for data transfers, allowing the Nios II to act primarily as a master device initiating reads and writes to slave peripherals. The Memory-Mapped (MM) interface is the core bus protocol used for memory-mapped I/O in Nios II systems, supporting address-based read and write transactions between the and peripherals such as controllers or registers. It employs a master-slave architecture where the Nios II functions as the host (master), issuing and control signals to agents (slaves) that respond with or acknowledgments. Key features include support for burst transfers via a burstcount signal, which allows sequential accesses up to a maximum length determined by the or width (e.g., 2^(n-1) for n-bit width), and requirements where hosts must issue addresses as multiples of the width to ensure efficient transfers. Data widths are configurable up to 32 bits, with signals like readdata and writedata handling 8-, 16-, or 32-bit payloads to balance performance and resource utilization in FPGA implementations. In contrast, the Streaming (ST) interface addresses high-throughput, unidirectional data flows unsuitable for memory-mapped addressing, such as video or audio streams in Nios II applications. It operates on a packet-based using signals like startofpacket to mark the beginning of a packet and endofpacket to indicate its end, enabling the transfer of variable-length data without explicit addressing. Flow control is managed through valid and ready handshaking, with optional backpressure mechanisms including readyLatency (0 or greater cycles) and readyAllowance to prevent data overruns in bandwidth-constrained paths; additional signals like empty denote unused bytes in the final symbol for precise packet delineation. Integration of these interfaces into Nios II systems occurs through Platform Designer (formerly Qsys), Intel's tool, which generates an AMBA-like interconnect fabric connecting the Nios II master port to multiple slave peripherals. The Nios II issues Avalon-MM transactions for control and status register accesses, while Avalon-ST can be used for (DMA) engines or streaming peripherals to offload the processor; support for multiple clock domains is provided via clock association properties, allowing components to operate asynchronously with clock crossing logic inserted as needed. System-level features enhance reliability and efficiency, including arbitration mechanisms for multi-master scenarios—such as the lock signal for exclusive or fixed-priority arbiters in the interconnect—to resolve contention without stalling the Nios II. handling is incorporated through the response signal in Avalon-MM, which conveys status like slave errors (SLVERR) or decode errors (DECERR), with software timeouts detectable via the Nios II's ; relies on standardized clock and reset signals to enable low-power states in SoC designs. The interfaces have evolved significantly since their inception, with early versions like Avalon-MM 1.3 in the mid-2000s giving way to more robust specifications by the , including the initial formal release of the unified Avalon Interface Specifications in May 2011 (version 11.0 for Quartus 11.0). Subsequent updates, such as those in 2013–2017 (versions 13.0–17.1), introduced pipelined transfers, enhanced burst support, and streaming credit interfaces for lower latency, optimizing the fabric for complex Nios -based SoCs with reduced resource overhead and improved throughput. By the , refinements like expanded signal widths (up to 8192 bits for data) and clarified timing parameters further tailored the interfaces for modern FPGA densities.

Custom Instructions and Peripherals

Custom instructions allow designers to extend the Nios II processor by integrating specialized hardware logic directly into the CPU's arithmetic logic unit (ALU), enabling acceleration of time-critical algorithms such as those in cryptography and digital signal processing (DSP). The interface supports up to 256 distinct custom instructions, selected via an 8-bit opcode extension index (N field, 0-255), with indices 252-255 reserved for optional floating-point instructions if enabled, leaving 0-251 available for user-defined operations, and can include multi-cycle implementations that interface with the processor pipeline for operations like fast Fourier transforms (FFT) or Advanced Encryption Standard (AES) encryption units. This integration occurs seamlessly within the data path, where custom logic receives two 32-bit input operands (dataa and datab) and produces a 32-bit result, with optional extensions for wider data paths or additional control signals in advanced configurations. Custom peripherals, in contrast, are standalone IP blocks that connect to the Nios II system via the interconnect fabric, using memory-mapped () interfaces for register access or streaming () interfaces for high-throughput data transfer. Examples include UART controllers for , Ethernet MAC layers for network connectivity, or interfaces for acquisition, all created as parameterized HDL modules (e.g., in or ) to allow reuse across designs by varying parameters like data width or buffer depth. These peripherals offload I/O and control tasks from the , integrating into the system through Platform Designer (formerly Qsys) for automated address mapping and signal routing. Implementation of both custom instructions and peripherals begins with hardware design in HDL, followed by synthesis using Quartus Prime tools, which generate the necessary integration files (e.g., .qip) and incorporate the components into the FPGA fabric. For software interaction, the Nios II Embedded Design Suite (EDS) automatically produces macros and assembly functions to invoke custom instructions (e.g., ALT_CI_AES for an AES unit), while peripherals are accessed via memory-mapped I/O using standard load/store instructions or Layer (HAL) drivers. This dual hardware-software approach ensures low-latency execution without requiring manual address management. The primary benefits include substantial performance gains, with custom instructions often achieving 10-100x over software equivalents for specialized tasks—for instance, a leading zeros detector custom instruction reduces execution from over 138,000 clock cycles in software to under 9,000 in . Peripherals similarly reduce CPU overhead by handling I/O independently, enabling efficient systems for applications like inference with custom multipliers accelerating matrix operations. Overall, these extensions minimize software bottlenecks and optimize resource utilization in FPGA-based systems. However, trade-offs exist, such as increased logic element consumption in the FPGA, which can limit in resource-constrained designs, and potential reductions in maximum operating frequency (fMAX) due to added stalls from multi-cycle instructions. Debugging custom logic poses additional challenges, as it requires specialized tools like SignalTap or the to trace hardware-software interactions, often complicating verification compared to pure software development.

Development and Deployment

Hardware Generation Process

The hardware generation process for Nios II systems utilizes Intel's FPGA , primarily Platform Designer (formerly Qsys) for system assembly and Quartus Prime for , place-and-route, and into a file. This workflow has evolved from Quartus II (introduced around 2003) through subsequent Quartus Prime versions up to 23.4, where Nios II support was fully integrated before its discontinuation in version 24.1. The process begins with creating a new project in Quartus Prime via the New Project Wizard, specifying the target FPGA device such as Cyclone V or Arria series. Users then launch Platform Designer to assemble the system: select a Nios II core variant (e.g., /f for high performance or /e for economy) from the IP Catalog under Embedded Processors, and configure options like pipeline stages or branch prediction. Next, add peripherals and blocks from the IP Catalog—such as on-chip (e.g., 40 KB ), UART for , or custom serial flash interfaces—specifying parameters like or clock rates. Connections are established via the memory-mapped (MM) or streaming interfaces, with Platform Designer automatically generating the switch fabric interconnect logic; for instance, link the processor's data_master and instruction_master to slaves and peripheral CSRs, while assigning IRQ priorities and base addresses in the System tab. A global clock (e.g., 100 MHz) and reset network are configured to synchronize components. Upon validation of connections and parameters, Platform Designer generates the hardware description files: a .qsys file for the system design, a .sopcinfo XML file detailing the , and synthesizable HDL ( or ) for the entire subsystem. These outputs are integrated into the Quartus Prime by instantiating the top-level HDL , adding constraints if needed, and running full to produce a .sof file for the target FPGA. For multi-core setups, multiple Nios II instances are added to Platform Designer and connected to a shared Avalon-MM bus with an arbiter to manage access priorities, enabling task partitioning for performance gains without custom logic. Simulation for verification integrates with through Platform Designer by generating a simulation model, creating a testbench via the Simulation Source Files dialog, and specifying memory initialization files (.mif or .hex). The Nios II Embedded Design Suite (EDS) launches directly from its using "Run as Nios II ModelSim," allowing cycle-accurate testing of custom logic and peripherals before hardware deployment. Optimization occurs post-generation in Quartus Prime using the Timing Analyzer for static timing analysis to identify violations and validate fmax performance, alongside the Chip Planner for floorplanning to place critical paths (e.g., high-speed pipelines) near I/O pins or reduce congestion in multi-core designs. Techniques include enabling advanced fitter settings for register duplication or retiming to meet timing closure on devices like Arria V. To preserve Nios II IP in Quartus Prime versions 24.1 and later, where the processor is discontinued, users generate HDL in an older supported version (e.g., 23.4) with specific Platform Designer settings—such as enabling "Create HDL" without simulation files and using the Interconnect option—then import the resulting IP as a into newer projects for continued and targeting of supported FPGAs.

Software Creation Process

The software creation process for Nios II systems begins with the Nios II Embedded Design Suite (EDS), an Eclipse-based integrated development environment (IDE) that provides a unified platform for building, deploying, and debugging applications. The EDS incorporates a GNU GCC-based toolchain, supporting languages such as C, C++, and assembly, with compiler versions up to GCC 12.3.1 in the latest supported releases (Quartus Prime Pro Edition 23.4). This toolchain enables cross-compilation for the Nios II architecture, generating executables tailored to the processor's 32-bit RISC design. A key component is the Hardware Abstraction Layer (HAL), which offers a standardized for accessing peripherals in the system, abstracting low-level hardware details and simplifying integration. Developers start by importing a (BSP), generated from the hardware design in Platform Designer, which includes HAL libraries customized to the system's peripherals and . The development workflow typically follows these steps:
  1. Import the into the to establish the runtime environment, including device drivers for components like timers, UARTs, and controllers.
  2. Write application code, leveraging APIs for peripheral interactions and optionally incorporating custom device drivers for specialized .
  3. Build the project to produce an executable, linking the application with the BSP library using the toolchain.
  4. Download the executable to the target FPGA via for direct execution or program it into for persistent storage and boot.
  5. Debug the application using the integrated debugger, which supports features like breakpoints, variable inspection, and step-through execution.
Nios II supports a range of operating system configurations to suit different application needs. Bare-metal development is common for simple, resource-constrained systems, relying solely on the for direct hardware control. Real-time operating systems (RTOS) such as and Micrium MicroC/OS-II are integrated via BSP options, providing task scheduling and inter-task communication with minimal overhead. For more complex systems requiring and multitasking, can be deployed on Nios II variants with a (MMU), often using bootloaders like U-Boot to load the kernel and filesystem from flash or network sources. Debugging capabilities extend beyond basic GDB sessions to include on-chip trace modules for capturing instruction execution history, breakpoints for halting at specific code points, and performance profiling tools to analyze execution time and resource usage within the . Custom instructions, defined in the design, are accessible in software through dedicated that allow inline or C wrappers to invoke accelerated operations, enhancing performance for compute-intensive tasks. Developers must address challenges inherent to environments, such as the processor's default little-endian byte order, which requires careful handling of multi-byte data structures to avoid issues across tools and peripherals. Optimization for limited FPGA resources is also critical, involving techniques like size reduction via compiler flags and selective use of features to balance functionality with and logic constraints.

Licensing and Discontinuation

The Nios II processor is available under a licensing model integrated with the Quartus Prime design software suite. Basic variants of the Nios II core are included free of charge in the Quartus Prime Edition, which does not require a for , , or of time-limited programming files, while full features, including non-time-limited FPGA programming files and advanced development capabilities, necessitate a subscription to the Quartus Prime Pro Edition. The cores themselves are provided as part of the tool suite without any runtime royalties, allowing unlimited deployment in deployed systems once licensed appropriately. Intel announced the discontinuation of the Nios II processor in June 2023 through Product Discontinuance Notification PDN2312, citing the transition to the Nios V processor as the primary reason. IP ordering for Nios II ended on March 22, 2024, with no new features added thereafter, though the core remains supported in Quartus Prime up to version 24.1 released in 2024. For users affected by the discontinuation, Intel provides migration guidance to the Nios V processor, a -based , emphasizing software portability through recompilation of C code with adjustments for ISA differences, as Nios II's proprietary instruction set shares conceptual similarities with RISC-V subsets but requires targeted updates. Hardware migration involves redesigning the processor core and interconnects in the Quartus project, often necessitating updates to peripherals and memory mappings to align with Nios V's architecture. Detailed steps, including project upgrades, are outlined in Intel's application note AN 978. Existing Nios II designs remain maintainable using supported Quartus versions, with offering legacy support resources for debugging and minor updates, though no further enhancements or bug fixes are planned post-2024. Community-driven forks of the Nios II core are feasible for open-source enthusiasts who possess the IP, potentially extending usability beyond official support. compiler support for Nios II was deprecated in version 14 (2024) and fully removed in version 15 (2025), aligning with the processor's end-of-life. As alternatives to Nios II, developers can adopt open-source cores such as the Rocket Chip from UC , which offers configurable 32-bit implementations suitable for FPGAs, or commercial options from vendors like for enhanced performance and ecosystem integration. primarily recommends Nios V for seamless transition within their .

References

  1. [1]
    1.1. Nios® II Processor System Basics - Intel
    A Nios II processor system is equivalent to a microcontroller or “computer on a chip” that includes a processor and a combination of peripherals and memory on ...
  2. [2]
    6.1. Nios II Versions - Intel
    The number for any version of the Nios II processor is determined by the version of the Nios II EDS. For example, in the Nios II EDS version 8.0, all Nios II ...Missing: variants | Show results with:variants
  3. [3]
    [PDF] Upgrading Nios Processor Systems to the Nios II Processor - Intel
    This document discusses all necessary hardware and software changes to use the Nios II CPU, as well as optional changes that can be made to further enhance ...
  4. [4]
    Nios® II Performance Benchmarks - Intel
    This datasheet lists the performance and logic element (LE) usage for a typical implementation of a Nios® II soft processor and peripherals.
  5. [5]
    2. Nios® II Performance Benchmarks - Intel
    Nios II Performance Benchmarks Table 2. f max for Nios II Processor System (MHz) Table 3. Typical Logic Size for Nios II Processor Cores and Peripherals
  6. [6]
    5.4. Nios® II - Intel
    The Nios® II processor supports all Intel® FPGA and SoC families. A Nios® II processor system is equivalent to a microcontroller or “computer on a chip”
  7. [7]
    Nios® II Processor Bare-Metal Developer Center - Altera
    The Nios® II SBT allows you to construct a wide variety of complex embedded software systems using a command-line interface. From this interface, you can create ...
  8. [8]
    [PDF] Preserving Nios® II Processor IP for Quartus® Prime Version 24.1 ...
    Mar 17, 2025 · The Nios® II processor IP was discontinued in Quartus® Prime Pro Edition version 24.1 and Quartus Prime Standard Edition version 24.1std.
  9. [9]
    [PDF] AN 978: Nios® V Processor Migration Guidelines - Intel
    May 22, 2025 · Describes the guidelines for migrating from the Nios II processor to the corresponding Nios V processor core.<|control11|><|separator|>
  10. [10]
    Nios® II Processors Legacy Support | Altera - Intel
    Filterable collection of resources and documentation for Legacy Nios II family of embedded processors.
  11. [11]
    Nios® II Processor - Product Specifications - Intel
    Nios® II Processor quick reference with specifications, features, and technologies.
  12. [12]
    [PDF] Nios II Processor Reference Handbook
    Reference chapter of the Nios II Processor Reference Handbook. Memory and I/O Organization. This section explains hardware implementation details of the Nios ...
  13. [13]
    Altera Delivers the Goods with Nios Processor Version 3.0 ...
    ... Nios community, "Since its introduction in the Fall 2000, the Nios processor has become a huge success with many of our key customers having completed ...
  14. [14]
    Nios® V Processor Developer Center - Altera
    This page is designed to provide documentation and support for the Nios® V family of embedded processors to help you quickly develop and debug your embedded ...
  15. [15]
  16. [16]
    New Nios II Family is a Versatile Embedded Processor for FPGAs
    May 19, 2004 · The Nios II family consists of three soft CPU cores; one for maximum system performance, one optimized for minimum logic usage, and one that ...
  17. [17]
    [PDF] Nios II Processor Reference Handbook - Columbia CS
    Release Date. Notes. 7.2. October 2007. Added the jmpi instruction. 7.1. May 2007 ... Updates for Nios II 1.01 release. May 2004 v1.0. Initial release.
  18. [18]
    6.1. Nios II Versions Revision History - Intel
    Nios II Classic Processor Reference Guide · 3.9.1. Data Transfer Instructions · 3.9.2. Arithmetic and Logical Instructions · 3.9.3. Move Instructions · 3.9.4.
  19. [19]
    [PDF] Creating Multiprocessor Nios II Systems Tutorial
    This tutorial describes the features of the Altera® Nios® II processor and. SOPC Builder tool that are useful for creating systems with two or more.
  20. [20]
    [PDF] AN 717: Nios II Gen2 Hardware Development Tutorial - Intel
    Sep 22, 2014 · This tutorial guides you through the basics of each topic, with special focus on the hardware design steps. Software and Hardware Requirements.
  21. [21]
    Intel Completes Acquisition of Altera
    Dec 28, 2015 · Intel Corporation (Intel) today announced that it has completed the acquisition of Altera Corporation (Altera), a leading provider of field-programmable gate ...
  22. [22]
    None
    ### Summary of Nios II Discontinuation (PDN 2312)
  23. [23]
    GCC 15 Ends Support For Altera Nios II Embedded Processors
    Nov 25, 2024 · The GCC 15 code compiler that is releasing as stable in the early months of 2025 has removed all support for the Altera Nios II CPU target.<|control11|><|separator|>
  24. [24]
    [PDF] Multi-Core NIOS II Processors Reference Design Based on Arria 10 ...
    Oct 20, 2017 · This document describes the features of the Nios. II processor and Qsys tool that are useful for creating systems with multiple processors.Missing: capabilities introduction
  25. [25]
    2.6.2.3.1. I/O Load and Store Instructions Method - Intel
    The load and store I/O instructions such as ldwio and stwio bypass the data cache and force an Avalon® -MM data transfer to a specified address.
  26. [26]
    4.1.2. Multiply and Divide Settings - Intel
    The Nios II/s and Nios II/f cores offer hardware multiply and divide options. ... Note: Shift operations use the multiplier. So, Hardware multiplication ...Missing: barrel | Show results with:barrel
  27. [27]
    1.1. Power Optimization Techniques and Recommendations - Intel
    When you enable a root clock gate, expect a delay of several clock cycles between the assertion of the clock gate and the corresponding change on the output ...Missing: Nios | Show results with:Nios
  28. [28]
    5. Nios II Core Implementation Details - Intel
    DMIPS performance for the Nios II/s and Nios II/f cores depends on the hardware multiply option. 45 Multiply and shift performance depends on the hardware ...
  29. [29]
    4.1. Main Nios® II Tab - Intel
    Nios II/f—The Nios II/f fast core is designed for fast performance. As a result, this core presents the most configuration options allowing you to fine tune the ...Missing: differences | Show results with:differences
  30. [30]
    5.3.5. Execution Pipeline - Intel
    The Nios II/s core employs a 5-stage pipeline. Table 77. Implementation Pipeline Stages for Nios II/s Core. Stage Letter ...
  31. [31]
    1.1. Nios® II Processor System Basics - Intel
    Performance up to 250 DMIPS; Error correcting code (ECC) support for all Nios® II processor internal RAM blocks. A Nios® II processor system is equivalent to ...
  32. [32]
    [PDF] Nios® II Processor Reference Guide - Intel
    This document provides information about the Nios II processor architecture, the programming model, and the instruction set.
  33. [33]
    2.6.5. Memory Management Unit - Intel
    4-KB page and frame size; Low 512 MB of physical address space available ... Note: The Nios II MMU is optional and mutually exclusive from the Nios II MPU.
  34. [34]
    3.2.2.1. Virtual Addressing - Intel
    The Nios II MMU divides virtual memory into 4-KB pages and physical memory ... There is a 20 bit virtual page number (VPN) and a 12 bit page offset.
  35. [35]
    3.2.4. TLB Organization - Intel
    Each TLB entry consists of a tag and data portion. This is analogous to the tag and data portion of instruction and data caches. Refer to the Nios II Core ...
  36. [36]
    5.2.5.1. Micro Translation Lookaside Buffers - Intel
    The TLBs have a configurable number of entries and are fully associative. The default configuration has 6 μDTLB entries and 4 μITLB entries. The hardware ...
  37. [37]
    4.4.1. MMU - Intel
    For information about the MMU, refer to the Programming Model chapter of the Nios II Processor Reference Handbook. For specifics on the Nios II/f core, refer to ...
  38. [38]
    [PDF] Nios II Classic Processor Reference Guide - Intel
    Oct 28, 2016 · Nios II Processor System Basics. The Nios II processor is a general-purpose RISC processor core with the following features: • Full 32-bit ...
  39. [39]
    Nios II Processor with Memory Management Unit - Intel
    You can use this design as a starting point to build your own MMU-enabled Nios® II processor systems. This design supports the following Intel® FPGA development ...
  40. [40]
    2.6.6. Memory Protection Unit - Intel
    The optional Nios II MPU provides the following features and functionality: Memory protection; Up to 32 instruction regions and 32 data regions; Variable ...
  41. [41]
    3.3.1.4. Region Size or Upper Address Limit - Intel
    Any access outside of the Nios II address space is considered not to match any region and triggers an MPU region violation exception. When regions are defined ...
  42. [42]
    3.3.3. Enabling the MPU - Intel
    The MPU is disabled on system reset. System software enables and disables the MPU by writing to a control register. Before enabling the MPU, you must create at ...
  43. [43]
    4.3. Nios® II MPU Usage - Intel
    The Nios® II MPU Usage section covers the basic features of the Nios® II processor's optional memory protection unit (MPU), describing how to use it without ...<|control11|><|separator|>
  44. [44]
    1.4. Example: Avalon® Interfaces in System Designs - Intel
    Jan 24, 2022 · The Nios® II processor accesses the control and status registers of on-chip components through an Avalon® -MM interface. The scatter gather DMAs ...Missing: Fabric | Show results with:Fabric
  45. [45]
    [PDF] Avalon® Interface Specifications - Intel
    Jan 24, 2022 · Avalon interfaces simplify system design by allowing you to easily connect components in Intel FPGAs. The Avalon interface family defines ...
  46. [46]
    B. Document Revision History for the Avalon® Interface Specifications
    Document Revision History for the Avalon® Interface Specifications. Document Version, Intel® Quartus® Prime Version, Changes. 2022.01.24, 20.1, Changed the ...Missing: Nios II
  47. [47]
    1. Nios II Custom Instruction Overview - Intel
    Custom instructions give you the ability to tailor the Nios II processor to meet the needs of a particular application.
  48. [48]
    [PDF] Nios II Custom Instruction User Guide - UNL School of Computing
    resources outside of the Nios II processor data path. Combinatorial. Optional ... custom instruction, this field shows the width of the N port. The op ...<|control11|><|separator|>
  49. [49]
    2.1.3. Extended Custom Instructions - Intel
    Nios II Custom Instruction User Guide · 4.1.1. Setting up the Environment for the CRC Example Design · 4.1.2. Opening the Component Editor · 4.1.3. Specifying the ...
  50. [50]
    7.1.1.3. Creating Nios® II Custom Instructions - Intel
    1.3. Creating Nios® II Custom Instructions. The Nios® II processor employs a RISC architecture which can be expanded with custom instructions.
  51. [51]
    1.7.3. Creating Nios® II Hardware System - Intel
    Select Basic Functions > On Chip Memory > On-Chip Memory (RAM or ROM) Intel FPGA IP. · Set the Total Memory Size to 40960 bytes (40 KBytes). · Click Finish and ...
  52. [52]
    [PDF] Quartus Prime Pro Edition: Version 24.1 Software and Device ... - Intel
    Apr 1, 2024 · Operating System Support Changes in Quartus Prime Pro Edition Version 24.1. Added support for the following operating systems as of Quartus ...
  53. [53]
    3.6.4.2. Defining and Generating the System in Platform Designer
    After analyzing the system hardware requirements, you use Platform Designer to specify the Nios® II processor core(s), memory, and other components your system ...
  54. [54]
    7.1.2.1. Creating Multicore Designs - Intel
    Multicore designs combine multiple processor cores in a single FPGA to create a higher performance computing system. Typically, the processors in a multicore ...
  55. [55]
    3.12.1. Using ModelSim with a Platform Designer-Generated System
    To run a Platform Designer-generated Nios® II system with ModelSim, you must first create a simulation model and test bench, and specify memory initialization ...
  56. [56]
    2.1. Nios® II Toolchain Versions - Intel
    Nios II Toolchain Versions for the Intel Quartus Prime Pro Edition, Table 3. Nios II Toolchain Versions for the Intel Quartus Prime Standard Edition.
  57. [57]
    3.12.1.3. Nios® II GCC Tool Chain - Intel
    The Nios® II EDS version 14.0 is the first version of the Nios® II cores. After 14.0, Nios® II cores are used. The Nios® II GNU tool chain has been upgraded, as ...
  58. [58]
    6.2.2.4. Hardware Abstraction Layer (HAL) - Intel
    The Intel FPGA HAL provides the interfaces and resources required by the device drivers for most Platform Designer system peripherals.
  59. [59]
    4.2.1.2. Nios® II Software Development Process - Intel
    You create the hardware for the system using the Intel® Quartus® Prime and Platform Designer software. The main output produced by generating the hardware for ...
  60. [60]
    2.1.7. Debugging the Project on Nios II Hardware - Intel
    This section describes how to debug a Nios II program using the Nios II SBT for Eclipse on Nios II hardware, such as an Intel FPGA development board.
  61. [61]
    Nios® II Processor Bare-Metal Developer Center - Altera
    The Nios II Processor Bare-Metal Developer Center page will help you start bare-metal development without an operating system (OS) or a real-time operating ...Missing: history | Show results with:history
  62. [62]
    11.3. The Nios II Implementation of MicroC/OS-II - Intel
    Nios® II Processor Core Support 6.3.2. Supported Peripherals 6.3.3. MPU Support 6.3.4. ... The Intel FPGA implementation of MicroC/OS-II is designed to be easy to ...<|separator|>
  63. [63]
    FreeRTOS on Intel/Altera NIOS II, Cyclone V using Quartus 14.1
    Aug 21, 2023 · I have downloaded and worked through the NIOS II port on the FreeRTOS site, but it is having problems: The hardware timer is being configured, ...
  64. [64]
    Nios II Linux User Manual | Documentation - RocketBoards.org
    Jan 25, 2019 · This page provides the latest information of the Linux kernel and components, specific to Nios II. For how to run Nios II Linux on Altera boards, please refer ...
  65. [65]
    3.4.1. Endianness - Intel
    In little endian format, the 4 is the first digit presented or stored. In big endian format, the 1 is the first digit presented or stored. Endianness typically ...
  66. [66]
    [PDF] Nios II Processor Reference Guide
    Apr 18, 2018 · This document provides information about the Nios II processor architecture, the programming model, and the instruction set.<|separator|>
  67. [67]
    5.1.6. Nios® II Embedded Design Suite License - Intel
    You do not need a license to develop software using only the Nios® II Software Build Tools for Eclipse. Note: Starting with Nios® II EDS in the Intel® Quartus® ...
  68. [68]
    1.2.2. Removed Features and Functions - Intel
    Apr 1, 2024 · The Nios® II Processor and Nios® II Embedded Design Suite products are discontinued and removed from the Quartus® Prime Design Suite.
  69. [69]
    4.2. Design Upgrade from Nios® II Processor to Nios® V Processor
    To upgrade a design from the Nios® II processor to the Nios® V processor, you must upgrade two basic components of the embedded system.
  70. [70]
    GCC 15 Release Series — Changes, New Features, and Fixes
    Oct 7, 2025 · Caveats. Support for Nios II targets, which was marked obsolete in GCC 14, has now been removed entirely. In the AArch64 port, support ...Porting to GCC 15 · Statement Attributes · Sarif