Forum Discussion
NiosV Development
Hi, We're starting a new embedded project using the Nios V processor on an Altera FPGA. Where should I begin as a developer, and what key resources or guidance does Altera provide to get up and running with Nios V?
Thanks
2 Replies
- BoonBengT_Altera
Moderator
Great question — here's a practical rundown of where to start and what resources to lean on.Start with a Development Kit
An easy way to start designing effectively is to purchase an Altera FPGA development kit that includes documentation, a ready-made evaluation board, a getting-started reference design, and all the development tools necessary to write Nios® V processor programs.
Key Documentation
The two primary references you'll live in are:
- The Nios® V Processor Software Developer Handbook, which describes the basic information needed to develop embedded software for the Nios® V processor — covering the software development environment, the Nios® V Processor Tools available, and the process for developing software.
- The Nios® V Embedded Processor Design Handbook, which covers hardware system design, debugging, simulation, and optimization using Altera-provided tools.
Development Tools
Altera uses the following applications to build Nios® V processor software programs:
- Nios V processor command line tools
- BSP Editor in Platform Designer (part of Quartus Prime software)
- Ashling® RiscFree® IDE for Altera FPGAs
Both Quartus Prime Standard Edition and Quartus Prime Pro Edition support the Nios V/c, Nios V/m, and Nios V/g processor cores.
Software Development Flow
The software generation process follows these stages:
- Hardware configuration — obtain the hardware design (.qsys file) on which the Nios V processor software runs. You can get this from a Nios® V processor design example or your own Platform Designer design.
- BSP configuration — decide what features the BSP requires (e.g., RTOS, specialized software support, small memory footprint), define the BSP components and settings, then generate the settings.bsp file and create a BSP CMakeLists.txt using the niosv-bsp utility.
- Application project configuration — develop the application code based on the hardware design (example code is available in Nios V Design Example Scripts), then create an application CMakeLists.txt using the niosv-app utility.
CMakeLists.txt is Central
CMakeLists.txt acts as the central component of a Nios V processor software project, whether created with the RiscFree IDE for Altera FPGAs or with the Nios V Command Shell. It describes all the components of a software project and how they are compiled and linked. With a CMakeLists.txt and a complete set of C/C++ source files, your Nios V processor software project is fully defined.
Getting Started Tips
Altera recommends beginning with a known hardware design from the Nios V Design Example Scripts, which includes a set of known working designs that are excellent starting points. Similarly, begin with a known software example design — the Nios V Design Example Scripts includes preconfigured application projects you can use as a starting point and parameterize to suit your application goals.
Make incremental, testable changes to compartmentalize your software development process, and use a version control system to maintain distinct versions of your source files as you develop.
Important Note on Nios II Compatibility
Generated Nios® II processor software files are not compatible with the Nios® V processor — so if you're migrating from Nios II, plan to regenerate your BSP and application projects from scratch.
The Nios® V Processor Developer Center is your best single landing page — it links to the Software Developer Handbook, Reference Manual, Embedded Processor Design Handbook, and the AN 985 tutorial (a Hello World walkthrough) all in one place. That tutorial is a great first hands-on exercise to validate your toolchain setup end-to-end.
Sources: Agilex 3 · HPS/Embedded, Agilex 3 · HPS/Embedded, Agilex 3 · Quartus/Tools, Agilex 3 · HPS/Embedded, Agilex 3 · HPS/Embedded, Generating the Application Project File, CMakeLists.txt, Agilex 3 · Quartus/Tools
- Scott_Altera
New Contributor
Hi bbT. You don't mention which board you are using but the best place to start is the Nios V Developer Center where you will find links to a lot of different documentation and design examples for different boards.