Skip to content

Latest commit

 

History

History
71 lines (49 loc) · 3.65 KB

README.md

File metadata and controls

71 lines (49 loc) · 3.65 KB

Softcore IP Configuration with NIOS II on FPGA

Overview

This project demonstrates the configuration of a Softcore IP with NIOS II on an FPGA platform using the Altera DE10-Lite board and Quartus Prime software. The project involved setting up a NIOS II processor, creating a custom Board Support Package (BSP), hardware abstraction layer (HAL), and custom drivers to optimize the performance of the processor. The softcore was programmed to execute a counting routine and enable UART communication for interaction with external devices.

Project Highlights

1. Softcore IP Configuration

The NIOS II softcore processor is configured to function as the central processor within the FPGA. This configuration includes defining essential elements such as:

  • Memory blocks
  • I/O interfaces
  • Peripheral configurations

The configurability of the NIOS II processor allows for tailored resource allocation, adapting the softcore to specific requirements for processing and communication tasks.

2. Board Support Package (BSP) and Hardware Abstraction Layer (HAL)

The BSP and HAL form the software foundation, enabling seamless communication between the softcore and the hardware. The structure includes:

  • BSP: Initializes key hardware components and interfaces.
  • HAL: Provides standardized access to hardware resources, abstracting low-level device operations.

This modularity allows for consistent hardware communication, simplifying future modifications or scaling of hardware components.

3. Custom Drivers and Peripheral Integration

Custom drivers are developed to enable precise control over specific hardware peripherals. Key highlights include:

  • Optimized communication protocols with peripherals
  • Configurable routines for data acquisition and control
  • Extension of the softcore's processing capabilities by interfacing with external devices

These drivers enhance the project’s adaptability, allowing the NIOS II processor to manage peripheral interactions efficiently.

4. UART Communication and Counting Routine

The NIOS II processor is programmed to execute a simple counting routine, demonstrating basic computational capability. Additionally, a UART interface is integrated, providing a direct channel for communication between the FPGA and external devices. This enables:

  • Data transmission and reception with external systems
  • A structured framework for real-time testing and communication

5. Development Environment: Eclipse IDE

The Eclipse IDE is used for the entire development workflow, offering a unified environment for coding, debugging, and testing. It facilitates:

  • Efficient code management and organization
  • Real-time debugging for effective issue resolution
  • Integrated testing and optimization of the softcore’s functionality

Tools and Technologies Used

  • FPGA: Altera DE10-Lite Board
  • Development Tools: Quartus Prime, Eclipse IDE
  • Programming Languages: C, Hardware Description Language (HDL)
  • Protocols: UART communication
  • Softcore Processor: NIOS II

Setup & Installation

  1. Clone this repository to your local machine.
    git clone https://github.com/WassimHedfi/Nios-II-IP-core
  2. Install Quartus Prime and configure the DE10-Lite board.
  3. Import the Quartus Prime project and configure the NIOS II processor.
  4. Set up the Board Support Package (BSP), Hardware Abstraction Layer (HAL), and drivers.
  5. Compile the project and load it onto the FPGA board using Quartus.
  6. Use Eclipse IDE for programming and testing the softcore. Ensure you have the necessary NIOS II tools and libraries installed.

License

This project is licensed under the MIT License - see the LICENSE file for details.