AN 717: Nios II Gen2 Hardware Development Tutorial

ID 683615
Date 9/22/2014
Public
Document Table of Contents

1.4.6. Varying the Development Flow

The development flow is not strictly linear. The following lost the common variations:

  • Refining the Software and Hardware
  • Iteratively Creating a System
  • Verifying the System with Hardware Simulation Tools

Refining the Software and Hardware

After running software on the target board, you might discover that the system requires higher performance. In this case, you can:

  • return to software design steps to make improvements to the software algorithm; or
  • 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) processors that divide the workload and improve the performance of each individual processor.

Iteratively Creating a System

A common technique for building a complex system is to start with a simpler 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; then integrate the custom logic into a more complex system.

Verifying the System with Hardware Simulation Tools

You can perform hardware simulation of software executing on the system, using tools such as the ModelSim® RTL simulator. Hardware simulation is useful to meet certain needs, including the following cases:

  • To verify the cycle-accurate performance of a system before target hardware is available.
  • To verify the functionality of a custom component or a custom instruction before trying it on hardware.

If you are building a system based on the standard components provided with the EDS, the easiest way to verify functionality is to download the hardware and software directly to a development board.