Synaptic Labs (S/Labs) HyperBus Memory Controller (HBMC) Tutorial for Intel FPGA devices

Size: px
Start display at page:

Download "Synaptic Labs (S/Labs) HyperBus Memory Controller (HBMC) Tutorial for Intel FPGA devices"

Transcription

1 Benjamin Gittins Chief Technical Officer Mbl: Synaptic Laboratories Ltd. Company ID Monday, July 16, 2018 Synaptic Labs (S/Labs) HyperBus Memory Controller (HBMC) Tutorial for Intel FPGA devices T001B: A Qsys based Nios II reference design with a simple Memory Bandwidth Benchmark of the HyperRAM device using S/ Labs' HBMC IP This tutorial is a a Qsys based Nios II reference design with a simple Memory Bandwidth Benchmark of the HyperRAM device using S/Labs' HBMC IP. This tutorial also shows how to download the Nios II firmware into the FPGA device using the Nios II development environment. This tutorial should be started only after completing all the steps described in the previous tutorial in this series titled: T001A: A Qsys based Nios II Reference design with a simple self test of the HyperFlash and HyperRAM device using S/Labs' HBMC IP The reference project for this Tutorial is bundled with a Free Trial License for the full-edition of S/Labs HBMC IP That Quartus License Key never expires. Please note: This tutorial assumes that the FPGA board type field in the Master Configuration tab of S/Labs HyperBus Memory Controller IP has been set to: Devboards - HyperMAX 10M25 (HyperRAM), or Devboards - HyperMAX 10M50 (HyperRAM), or Intel Cyclone 10LP Evaluation Kit (HyperRAM) T001B 16 July page 1 of 14

2 Table of Contents Synaptic Labs (S/Labs) HyperBus Memory Controller (HBMC) Tutorial for Intel FPGA devices 1 T001B: A Qsys based Nios II reference design with a simple Memory Bandwidth Benchmark of the HyperRAM device using S/Labs' HBMC IP 1 Table of Contents 2 1. Modify the memory initialization field(s) in Qsys 3 2. Synthesize the Design 3 3. Preparing the memory benchmarking firmware 4 4. Configure the Board Support Package (BSP) 6 5. Generate the BSP and clean the project 9 6. Install the memory testing source code 9 7. Build the Nios II Application 9 8. Program the FPGA Bitstream into the FPGA device Run the Benchmark from within Nios II SBT Obtaining good to excellent levels of effective memory bandwidth when using HyperBus devices 14 T001B 16 July page 2 of 14

3 1. Modify the memory initialization field(s) in Qsys 1.1. This memory benchmarking project does not fit within the 40 KB on-chip SRAM. Therefore, we are going to remove the.hex file initialization file for the on-chip memory in the Qsys project: In the Platform Designer application, open the hypernios.qsys project Open the parameters for the On-Chip Memory module Untick the [ ] Enable non-default initialization file field Optional: Untick the [ ] Initialize memory content field as memory initialization of this On-Chip Memory is not required in this example project Save and regenerate the Qsys design Close the Qsys window. 2. Synthesize the Design 2.1. Go to the Quartus Prime window In the menu bar, select: Processing Start Compilation 2.3. The assembler step will create the SRAM FPGA Bitstream file (.sof). Please note: The memory initialisation file (.hex) for the SRAM will no longer be embedded in that FPGA Bitstream file Please note that it is possible to configure the NIOS II Software Built Tools for Eclipse (SBT) independently of (re)compiling the FPGA bitstream. This is because: (a) the SBT tools use the hypernios.sopcinfo file generated by Qsys; but (b) does not use any files generated during hardware compilation process So while the computer is compiling your design we can immediately proceed to the next step below. T001B 16 July page 3 of 14

4 3. Preparing the memory benchmarking firmware 3.1. We will now open the NIOS II Software Built Tools for Eclipse In Quartus Prime, go to the menu bar and select: Tools NIOS II Software Built Tools for Eclipse. /software Click the [ Browse ] button. A new file selector window will open. In this tutorial we are going to select the software folder located inside the project folder as the workspace. Note: This is the same software folder that we previously used in Tutorial 001A of this Tutorial Series Be sure to leave the [ ] Use this as the default field unticked Click the [ OK ] button Create a simple application and BSP The software folder in the reference project will have the HelloWorld application from Tutorial 001A We now want to create a new Nios II application, and Nios II board support package for the Nios II software HyperRAM bandwidth benchmarking application In the Eclipse window, goto the menu bar and select: File New NIOS II Application and BSP from Template T001B 16 July page 4 of 14

5 A new window will pop up: (most of the fields below will initially be empty) /hypernios.sopcinfo In the Target hardware information section, click on the [ ] button A file browser window will open. Locate and select the hypernios.sopcinfo file generated by Qsys and stored in the reference project directory. Click [ Open ] It may take around 30 seconds for the Eclipse application to parse the.sopcinfo file Select a Project name. In this example, we are using Benchmark as the project name Ensure that: [x] Use default location is ticked We now need to select a template from the Project Template list. In this example, select the Hello World template Press the [ Finish ] button to complete the current step The Nios II SBT will now generate: T001B 16 July page 5 of 14

6 a Benchmark application folder that contains the hello_world.c file. We will replace that hello_world.c file with a custom program that tests the HyperRAM device later in this tutorial a Benchmark_bsp folder that contains the Nios II Board Support Package (BSP) hardware abstraction layer (HAL) specifically for the Benchmark application. 4. Configure the Board Support Package (BSP) 4.1. The Nios II BSP must be configured before we can compile the source code In the Project Explorer tab, right click on: Benchmark_bsp Nios II BSP Editor 4.3. A BSP Editor window will open In the Main Tab of the BSP editor, in the panel on the left hand side, select: Settings Common 4.5. Set the sys_clk_timer field to timer_0 This is used to generate a recurring system clock interrupt for the hardware abstraction layer Set the timestamp_timer field to interval_timer This field is used to enable the hardware abstraction layer to perform fine precision event timing The Newlib ANSI C standard library can be configured as small or normal: Generally, when mapping code and data to on-chip memory: Tick the [x] enable_small_c_library field to reduce the size of the executable code generated by the hardware abstraction layer (HAL). Ticking this option also reduces the functionality and performance of the HAL. Please note that the inbuilt memset() and memcpy() routines will be very slow Generally, when mapping code and data to HyperRAM and/or HyperFlash: Untick the [ ] enable_small_c_library field to increase the functionality and performance of the executable code generated by the hardware abstraction layer (HAL). Please note that the inbuilt memset() and memcpy() routines will achieve relatively good performance. However, the executable code will be considerably larger due to other code that is included by the Newlib library In this tutorial, as we have more memory capacity available to store the.elf file. Therefore we recommend ensuring the [ ] enable_small_c_library field is Unticked to improve the performance results of the memcpy benchmarking software. T001B 16 July page 6 of 14

7 4.8. In the Main Tab of the BSP editor, in the panel on the left hand side, select: Settings Advanced hal 4.9. Then, in the panel on the right hand side, scroll down to find the hal.linker as illustrated below We will use the following configuration: Tick [x] allow_code_at_reset Tick [x] enable_alt_load Tick [x] enable_alt_load_copy_rodata Tick [x] enable_alt_load_copy_rwdata Tick [x] enable_alt_load_copy_exception Please Note: This specific configuration may not be the best configuration for your future project s needs. Please refer to Altera s documentation for detailed information on how to setup the hal.linker fields in the: T001B 16 July page 7 of 14

8 Generic Nios II Booting Methods User Guide, UG-20001, niosii_generic_booting_methods.pdf Select the Linker Script Tab of the BSP editor: In this tutorial, we are going to: Map the reset vector (.reset) to the onchip memory (onchip_memory2_0). This is generated by Qsys and depends on the location of the Nios II reset vector Map the exception vector (.exceptions) to the onchip memory (onchip_memory2_0). This is generated by Qsys and depends on the location of the Nios II exception vector Map the instruction code (.text) to the HyperRAM memory (sll_hyperbus_controller_top_0) Map all other data regions (.bss,.heap,.rodata,.rwdata,.stack) to the HyperRAM memory (sll_hyperbus_controller_top_0) For more information about linker sections in general, please see: Nios II Gen2 Software Developer's Handbook, NII5V2Gen2, Section 5, Nios II Software Build Tools n2sw_nii5v2gen2.pdf Click on the [ Exit ] button on the bottom right hand corner of the BSP Editor window Then click on the [ Yes, Save ] button on the Save Changes window to save the BSP settings. T001B 16 July page 8 of 14

9 5. Generate the BSP and clean the project 5.1. The software developer must regenerate the BSP every time the Qsys project is regenerated. This ensures that the device drivers and addresses of peripherals are reflected correctly in the hardware abstract library To (re)generate the BSP for the Benchmark application: Go to the Nios II eclipse window Right click on Benchmark_bsp project then select Nios II then select Generate BSP Right click on the Benchmark project then select Clean Project to delete any intermediate files generated by the gcc compiler for this application library Right click on the Benchmark_bsp project then select Clean Project to delete any intermediate files generated by the gcc compiler for this board support package folder. 6. Install the memory testing source code 6.1. We now want to replace the original HelloWorld.c source code with software that benchmarks Nios II software memory access performance to the HyperRAM Copy and replace the files located in: /source/testmbs to: /software/benchmark 6.3. In the project explorer window of Eclipse, right click on the Benchmark folder. Then select Refresh. The new source code files should now be visible within Eclipse. 7. Build the Nios II Application 7.1. We now want to run the C compiler and linker: Go to the Nios II eclipse window Right click on the Benchmark project, then select Build Project If the project produces warning / error messages, you may need to build the project twice The Benchmark executable firmware.elf is now generated This.ELF file can be downloaded directly into on-chip SRAM and off-chip SDRAM using the Nios II Debugger. T001B 16 July page 9 of 14

10 8. Program the FPGA Bitstream into the FPGA device 8.1. Ensure that the HyperMAX / Intel C10 LP Evaluation Kit board is connected to the USB port of your computer 8.2. Open the Quartus Prime window 8.3. To start the Altera Programmer, in the menu bar, select: Tools Programmer 8.4. If the HyperMAX/Intel C10LP Evaluation kit device is not already selected: Click on Hardware Setup A new window will open Double Click on the HyperMax (or Intel C10 LP Evaluation Kit) device Click the [ Close ] button If the NIOS_HyperRAM_time_limited.sof is not already selected: Click Add File... in the programmer window Go to the output_files folder Double click on NIOS_HyperRAM_time_limited.sof 8.6. On the left hand side of the Programmer window, click the [ Start ] button 8.7. The FPGA bitstream will now be programmed into the SRAM configuration memory of the FPGA device A window called OpenCore Plus Status should open. T001B 16 July page 10 of 14

11 9. Run the Benchmark from within Nios II SBT 9.1. Select the Nios II Software Built Tools for Eclipse window Right click on Benchmark. Then left click on Run As Run Configurations 9.3. A new window will open 9.4. Make sure the Name: field says Benchmark Nios II Hardware configuration T001B 16 July page 11 of 14

12 9.5. Select the Target Configuration tab Press the [ Refresh Connections ] button to detect the Nios II processor on the FPGA board PLEASE NOTE: Please ensure that [ ] Disable Nios II Console view is Unticked to enable the Nios II output to be displayed in the Nios II Console tab in the Nios II Eclipse environment; If [X] Disable Nios II Console view is Ticked you will have to use the nios2-terminal application to see the output of the Nios II core While not normally recommended in day-to-day design, in this tutorial you can optionally: Tick the [x] Ignore mismatched System ID field Tick the [x] Ignore mismatched System timestamp field By ticking these two fields, the Nios II Debugger will attempt to load the software, no matter what version of the Qsys project / FPGA bitstream has been loaded into the FPGA design In most projects, you typically want to the development tools to check the System ID and System timestamp to avoid accidentally loading new software into a FPGA device programmed with an older / incompatible FPGA bitstream Press the [ Run ] button located in the bottom right of the window. This will: Download the.elf firmware from the desktop and program the contents into the relevant volatile memories. In this case, it will program the on-chip memory; and the HyperRAM Boot the firmware from on-chip memory, and run software resident in the HyperRAM If the download does not work, please check that the static timing constraints of your project are passing The output of the Memory Bandwidth Benchmarking program should be displayed in the Nios II Console Window. It will look something like the screenshot below. T001B 16 July page 12 of 14

13 9.12. In this reference design, the 32-bit Nios II core is only running at 100 MHz. The Nios II is an in order execution core that can issue and retire at most one 32-bit OPCODE per clock cycle. The average memcpy() speed is around 19.5 to 24.5 Megabyte/s depending on the length of memory copied per memcpy invocation. This is a good result for this type of simple soft processor core when accessing external memories. Increasing the CPU clock speed, while keeping the HyperBus channel clock speed constant, will measurably increase the performance of the memcpy() result To achieve significantly higher memory throughput use a dedicated Direct Memory Addressing (DMA) module. For example, Intel s Modular Scatter Gather Direct Memory Access (MSGDMA) unit can sustain up to ~281 MegaBytes/s throughput from HyperRAM running at 150 MHz clock speed. T001B 16 July page 13 of 14

14 10. Obtaining good to excellent levels of effective memory bandwidth when using HyperBus devices The HyperBus protocol has a memory access performance behavior that is conceptually similar to operating DDRx SDRAM devices in closed page mode. (e.g. SDRAM PRECHARGE, ROW, COL, PRECHARGE, ) To obtain good performance, all bus-masters directly or indirectly accessing S/Labs HyperBus Memory Controller IP should employ a memory transfer requests with a burst length of 256-bits (8 x 32-bit words) or higher For this reason, please ensure that the Nios II/f instruction and data caches have burst mode enabled in all your HyperBus enabled designs Furthermore, S/Labs HBMC IP can sustain up to ~281 MegaBytes/s (MBps) on the 8-bit DDR HyperRAM channel running at 150 MHz with memory transfer requests with long bursts! Therefore we strongly recommend using large burst lengths where possible (e.g. by using Intel s MSGDMA module configured with bursts lengths that are larger than or equal to 16 words and less than or equal to 128 words where possible). T001B 16 July page 14 of 14

Synaptic Labs' HyperBus Memory Controller (HBMC) Tutorial

Synaptic Labs' HyperBus Memory Controller (HBMC) Tutorial Synaptic Labs' HyperBus Memory Controller (HBMC) Tutorial T001B: A Qsys based Nios II reference design with a simple Memory Bandwidth Benchmark of the HyperRAM device using S/Labs' HBMC IP This tutorial

More information

Synaptic Labs HyperBus Memory Controller (HBMC) Tutorial for Intel FPGA devices

Synaptic Labs HyperBus Memory Controller (HBMC) Tutorial for Intel FPGA devices Benjamin Gittins Chief Technical Officer Mbl: +995 551 026 588 b.gittins@synaptic-labs.com Synaptic Laboratories Ltd. Company ID 41272593 www.synaptic-labs.com info@synaptic-labs.com Monday, July 16, 2018

More information

HyperBus Memory Controller (HBMC) Tutorial

HyperBus Memory Controller (HBMC) Tutorial Synaptic Labs' HyperBus Memory Controller (HBMC) Tutorial T001A: A Qsys based Nios II Reference design with a simple self test of the HyperFlash and HyperRAM device using S/Labs' HBMC IP This tutorial

More information

HyperBus Memory Controller (HBMC) Tutorial

HyperBus Memory Controller (HBMC) Tutorial Synaptic Labs' HyperBus Memory Controller (HBMC) Tutorial T002A: A Qsys based Nios II reference design using Intel s MSGDMA to benchmark memory copy operations on the HyperRAM device using S/Labs' HBMC

More information

HyperBus Memory Controller (HBMC) Tutorial

HyperBus Memory Controller (HBMC) Tutorial Synaptic Labs' HyperBus Memory Controller (HBMC) Tutorial T002A: A Qsys based Nios II reference design using Intel s MSGDMA to benchmark memory copy operations on the HyperRAM device using S/Labs' HBMC

More information

HyperBus Memory Controller (HBMC) Tutorial

HyperBus Memory Controller (HBMC) Tutorial Synaptic Labs' HyperBus Memory Controller (HBMC) Tutorial T005B: A Qsys based Nios II Reference design with a simple application running from HyperFlash and HyperRAM device using S/Labs' HBMC IP. The HyperRAM

More information

HyperBus Memory Controller (HBMC) Tutorial

HyperBus Memory Controller (HBMC) Tutorial Synaptic Labs' HyperBus Memory Controller (HBMC) Tutorial T005C: A Qsys based Nios II Reference design with a simple HyperFlash test device using S/Labs' HBMC IP and S/Labs' Memory Region Mapper IP This

More information

Excellent for XIP applications"

Excellent for XIP applications Synaptic Labs' Tiny System Cache (CMS-T003) Tutorial T001A: Boot from On-chip Flash: A Qsys based Nios II Reference design based on S/Labs' Tiny System Cache IP and Intel's On-chip Flash Memory Controller

More information

HyperBus Memory Controller (HBMC) Tutorial

HyperBus Memory Controller (HBMC) Tutorial Synaptic Labs' HyperBus Memory Controller (HBMC) Tutorial T001: A Qsys based Nios II Reference design with HelloWorld test running in HyperRAM device using S/Labs' HBMC IP This tutorial describes a simple

More information

System Cache (CMS-T002/CMS-T003) Tutorial

System Cache (CMS-T002/CMS-T003) Tutorial Synaptic Labs' System Cache (CMS-T002/CMS-T003) Tutorial T006A: Arduino Style Nios II/e embedded system: A Qsys Nios II Reference design based on S/Labs' HBMC IP and S/Labs' System Cache for accelerating

More information

Synaptic Labs. HyperFlash Programmer for the Nios II Ecosystem. Introduction

Synaptic Labs. HyperFlash Programmer for the Nios II Ecosystem. Introduction Synaptic Labs HyperFlash Programmer for the Nios II Ecosystem User Manual An easy to use solution for programming the HyperFlash memory with Nios II based projects. Introduction Synaptic Labs HyperFlash

More information

Synaptic Labs' AXI HyperBus Memory Controller (HBMC) IP for Xilinx FPGA Devices Tutorial

Synaptic Labs' AXI HyperBus Memory Controller (HBMC) IP for Xilinx FPGA Devices Tutorial Synaptic Labs' AXI HyperBus Memory Controller (HBMC) IP for Xilinx FPGA Devices Tutorial X-T001A: A Vivado based MicroBlaze Reference design with a simple application running on a HyperRAM device using

More information

Synaptic Labs' Hyperbus Controller Design Guidelines

Synaptic Labs' Hyperbus Controller Design Guidelines Synaptic Labs' Hyperbus Controller Design Guidelines Table of Contents Introduction...1 1.0 Synaptic Labs' HBMC Controller IP Qsys Component...3 2.0 Typical S/Labs HBMC connection in Qsys...4 3.0 Typical

More information

University of Massachusetts Amherst Computer Systems Lab 1 (ECE 354) LAB 1 Reference Manual

University of Massachusetts Amherst Computer Systems Lab 1 (ECE 354) LAB 1 Reference Manual University of Massachusetts Amherst Computer Systems Lab 1 (ECE 354) LAB 1 Reference Manual Lab 1: Using NIOS II processor for code execution on FPGA Objectives: 1. Understand the typical design flow in

More information

Designing with Nios II Processor for Hardware Engineers

Designing with Nios II Processor for Hardware Engineers Designing with Nios II Processor for Hardware Engineers Course Description This course provides all theoretical and practical know-how to design ALTERA SoC FPGAs based on the Nios II soft processor under

More information

NIOS II Processor Booting Methods In MAX 10 Devices

NIOS II Processor Booting Methods In MAX 10 Devices 2015.01.23 AN-730 Subscribe MAX 10 device is the first MAX device series which supports Nios II processor. Overview MAX 10 devices contain on-chip flash which segmented to two types: Configuration Flash

More information

Xilinx Vivado/SDK Tutorial

Xilinx Vivado/SDK Tutorial Xilinx Vivado/SDK Tutorial (Laboratory Session 1, EDAN15) Flavius.Gruian@cs.lth.se March 21, 2017 This tutorial shows you how to create and run a simple MicroBlaze-based system on a Digilent Nexys-4 prototyping

More information

Board Update Portal based on Nios II Processor with EPCQ (Arria 10 GX FPGA Development Kit)

Board Update Portal based on Nios II Processor with EPCQ (Arria 10 GX FPGA Development Kit) Board Update Portal based on Nios II Processor with EPCQ (Arria 10 GX FPGA Development Kit) Date: 1 December 2016 Revision:1.0 2015 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY,

More information

NIOS CPU Based Embedded Computer System on Programmable Chip

NIOS CPU Based Embedded Computer System on Programmable Chip 1 Objectives NIOS CPU Based Embedded Computer System on Programmable Chip EE8205: Embedded Computer Systems This lab has been constructed to introduce the development of dedicated embedded system based

More information

University of Massachusetts Amherst Computer Systems Lab 2 (ECE 354) Spring Lab 1: Using Nios 2 processor for code execution on FPGA

University of Massachusetts Amherst Computer Systems Lab 2 (ECE 354) Spring Lab 1: Using Nios 2 processor for code execution on FPGA University of Massachusetts Amherst Computer Systems Lab 2 (ECE 354) Spring 2007 Lab 1: Using Nios 2 processor for code execution on FPGA Objectives: After the completion of this lab: 1. You will understand

More information

NIOS CPU Based Embedded Computer System on Programmable Chip

NIOS CPU Based Embedded Computer System on Programmable Chip NIOS CPU Based Embedded Computer System on Programmable Chip 1 Lab Objectives EE8205: Embedded Computer Systems NIOS-II SoPC: PART-I This lab has been constructed to introduce the development of dedicated

More information

Digital Systems Design. System on a Programmable Chip

Digital Systems Design. System on a Programmable Chip Digital Systems Design Introduction to System on a Programmable Chip Dr. D. J. Jackson Lecture 11-1 System on a Programmable Chip Generally involves utilization of a large FPGA Large number of logic elements

More information

Bare Metal User Guide

Bare Metal User Guide 2015.11.30 UG-01165 Subscribe Introduction This guide will provide examples of how to create and debug Bare Metal projects using the ARM DS-5 Altera Edition included in the Altera SoC Embedded Design Suite

More information

Nios II Embedded Design Suite Release Notes

Nios II Embedded Design Suite Release Notes Nios II Embedded Design Suite Release Notes Subscribe Send Feedback Latest document on the web: PDF HTML Contents Contents 1...3 1.1 Product Revision History... 3 1.2 Nios II EDS v15.0 Updates...4 1.3

More information

Using NIOS 2 Embedded Design Suite 10

Using NIOS 2 Embedded Design Suite 10 Quick Start Guide Embedded System Course LAP IC EPFL 2010 Version 0.1 (Preliminary) Cagri Onal, René Beuchat 1 Installation and documentation Main information in this document has been found on: http:\\www.altera.com

More information

Introduction to the Altera SOPC Builder Using Verilog Designs. 1 Introduction

Introduction to the Altera SOPC Builder Using Verilog Designs. 1 Introduction Introduction to the Altera SOPC Builder Using Verilog Designs 1 Introduction This tutorial presents an introduction to Altera s SOPC Builder software, which is used to implement a system that uses the

More information

Laboratory Exercise 3 Comparative Analysis of Hardware and Emulation Forms of Signed 32-Bit Multiplication

Laboratory Exercise 3 Comparative Analysis of Hardware and Emulation Forms of Signed 32-Bit Multiplication Laboratory Exercise 3 Comparative Analysis of Hardware and Emulation Forms of Signed 32-Bit Multiplication Introduction All processors offer some form of instructions to add, subtract, and manipulate data.

More information

NIOS CPU Based Embedded Computer System on Programmable Chip

NIOS CPU Based Embedded Computer System on Programmable Chip NIOS CPU Based Embedded Computer System on Programmable Chip EE8205: Embedded Computer Systems NIOS-II SoPC: PART-II 1 Introduction This lab has been constructed to introduce the development of dedicated

More information

427 Class Notes Lab2: Real-Time Clock Lab

427 Class Notes Lab2: Real-Time Clock Lab This document will lead you through the steps of creating a new hardware base system that contains the necessary components and connections for the Real-Time Clock Lab. 1. Start up Xilinx Platform Studio

More information

Creating projects with Nios II for Altera De2i-150. By Trace Stewart CPE 409

Creating projects with Nios II for Altera De2i-150. By Trace Stewart CPE 409 Creating projects with Nios II for Altera De2i-150 By Trace Stewart CPE 409 CONTENTS Chapter 1 Hardware Design... 1 1.1 Required Features... 1 1.2 Creation of Hardware Design... 1 Chapter 2 Programming

More information

Hello World on the ATLYS Board. Building the Hardware

Hello World on the ATLYS Board. Building the Hardware 1. Start Xilinx Platform Studio Hello World on the ATLYS Board Building the Hardware 2. Click on Create New Blank Project Using Base System Builder For the project file field, browse to the directory where

More information

Generic Serial Flash Interface Intel FPGA IP Core User Guide

Generic Serial Flash Interface Intel FPGA IP Core User Guide Generic Serial Flash Interface Intel FPGA IP Core User Guide Updated for Intel Quartus Prime Design Suite: 18.0 Subscribe Send Feedback Latest document on the web: PDF HTML Contents Contents 1. Generic

More information

Using Tightly Coupled Memory with the Nios II Processor

Using Tightly Coupled Memory with the Nios II Processor Using Tightly Coupled Memory with the Nios II Processor TU-N2060305-1.2 This document describes how to use tightly coupled memory in designs that include a Nios II processor and discusses some possible

More information

Spartan-6 LX9 MicroBoard Embedded Tutorial. Tutorial 1 Creating an AXI-based Embedded System

Spartan-6 LX9 MicroBoard Embedded Tutorial. Tutorial 1 Creating an AXI-based Embedded System Spartan-6 LX9 MicroBoard Embedded Tutorial Tutorial 1 Creating an AXI-based Embedded System Version 13.1.01 Revision History Version Description Date 13.1.01 Initial release for EDK 13.1 5/15/2011 Table

More information

Customizable Flash Programmer User Guide

Customizable Flash Programmer User Guide Customizable Flash Programmer User Guide Subscribe Latest document on the web: PDF HTML Contents Contents 1. Customizable Flash Programmer Overview... 3 1.1. Device Family Support...3 1.2. Software Support...

More information

Intel SoC FPGA Embedded Development Suite User Guide

Intel SoC FPGA Embedded Development Suite User Guide Intel SoC FPGA Embedded Development Suite User Guide Updated for Intel Quartus Prime Design Suite: 18.0 Subscribe Send Feedback Latest document on the web: PDF HTML Contents Contents 1. Introduction to

More information

Practical Hardware Debugging: Quick Notes On How to Simulate Altera s Nios II Multiprocessor Systems Using Mentor Graphics ModelSim

Practical Hardware Debugging: Quick Notes On How to Simulate Altera s Nios II Multiprocessor Systems Using Mentor Graphics ModelSim Practical Hardware Debugging: Quick Notes On How to Simulate Altera s Nios II Multiprocessor Systems Using Mentor Graphics ModelSim Ray Duran Staff Design Specialist FAE, Altera Corporation 408-544-7937

More information

Synaptic Labs' AXI-Hyperbus Controller Design Guidelines

Synaptic Labs' AXI-Hyperbus Controller Design Guidelines Synaptic Labs' AXI-Hyperbus Controller Design Guidelines Table of Contents Introduction...3 1.0 Set-Up Requirements...4 Step 1: Obtain core materials...4 Step 2: License Setup...4 Step 3: Install AXI HBMC

More information

Intel Cyclone 10 LP FPGA Webinar

Intel Cyclone 10 LP FPGA Webinar Intel Cyclone 10 LP FPGA Webinar Uniquest Train the Trainer February 2018 Learn about Intel Cyclone 10 LP FPGA Intel s next generation low cost and low power FPGA Get hands on experience with hardware

More information

Designing with ALTERA SoC Hardware

Designing with ALTERA SoC Hardware Designing with ALTERA SoC Hardware Course Description This course provides all theoretical and practical know-how to design ALTERA SoC devices under Quartus II software. The course combines 60% theory

More information

Introduction to the Altera SOPC Builder Using Verilog Design

Introduction to the Altera SOPC Builder Using Verilog Design Introduction to the Altera SOPC Builder Using Verilog Design This tutorial presents an introduction to Altera s SOPC Builder software, which is used to implement a system that uses the Nios II processor

More information

SISTEMI EMBEDDED. Embedded Systems SOPC Design Flow. Federico Baronti Last version:

SISTEMI EMBEDDED. Embedded Systems SOPC Design Flow. Federico Baronti Last version: SISTEMI EMBEDDED Embedded Systems SOPC Design Flow Federico Baronti Last version: 20160229 Definition(s) of Embedded Systems Systems with embedded processors Hamblen, Hall, Furman, Rapid Prototyping Of

More information

Building an Embedded Processor System on Xilinx NEXYS3 FPGA and Profiling an Application: A Tutorial

Building an Embedded Processor System on Xilinx NEXYS3 FPGA and Profiling an Application: A Tutorial Building an Embedded Processor System on Xilinx NEXYS3 FPGA and Profiling an Application: A Tutorial Introduction: Modern FPGA s are equipped with a lot of resources that allow them to hold large digital

More information

Alternative Nios II Boot Methods

Alternative Nios II Boot Methods Alternative Nios II Boot Methods September 2008, ver. 1.1 Application Note 458 Introduction In any stand-alone embedded system that contains a microprocessor, the processor runs a small piece of code called

More information

Debugging Nios II Systems with the SignalTap II Logic Analyzer

Debugging Nios II Systems with the SignalTap II Logic Analyzer Debugging Nios II Systems with the SignalTap II Logic Analyzer May 2007, ver. 1.0 Application Note 446 Introduction As FPGA system designs become more sophisticated and system focused, with increasing

More information

Nios II Studio Help System

Nios II Studio Help System Nios II Studio Help System 101 Innovation Drive San Jose, CA 95134 www.altera.com Nios II Studio Version: 8.1 Beta Document Version: 1.2 Document Date: November 2008 UG-01042-1.2 Table Of Contents About

More information

A. FPGA Basics Manuals

A. FPGA Basics Manuals A. FPGA Basics Manuals In this practical course, Field-Programmable Gate Array (FPGA) is used as the experimental platform, which means to creation of a hardware description for the FPGA and writing software

More information

Building an Embedded Processor System on a Xilinx Zync FPGA (Profiling): A Tutorial

Building an Embedded Processor System on a Xilinx Zync FPGA (Profiling): A Tutorial Building an Embedded Processor System on a Xilinx Zync FPGA (Profiling): A Tutorial Embedded Processor Hardware Design October 6 t h 2017. VIVADO TUTORIAL 1 Table of Contents Requirements... 3 Part 1:

More information

NIOS II Pixel Display

NIOS II Pixel Display NIOS Pixel Display SDRAM 512Mb Clock Reset_bar CPU Onchip Memory External Memory Controller JTAG UART Pixel DMA Resampler Scaler Dual Port FIFO VGA Controller Timer System ID VGA Connector PLL 2 tj SDRAM

More information

Design of Embedded Hardware and Firmware

Design of Embedded Hardware and Firmware Design of Embedded Hardware and Firmware Introduction on "System On Programmable Chip" NIOS II Avalon Bus - DMA Andres Upegui Laboratoire de Systèmes Numériques hepia/hes-so Geneva, Switzerland Embedded

More information

Embedded Design Handbook

Embedded Design Handbook Subscribe Send Feedback Latest document on the web: PDF HTML Contents Contents 1 Introduction... 6 1.1 Document Revision History... 6 2 First Time Designer's Guide... 7 2.1 FPGAs and Soft-Core Processors...

More information

NOTE: This tutorial contains many large illustrations. Page breaks have been added to keep images on the same page as the step that they represent.

NOTE: This tutorial contains many large illustrations. Page breaks have been added to keep images on the same page as the step that they represent. CSE 352 Tutorial # 4 Synthesizing onto an FPGA Objectives This tutorial will walk you through the steps of implementing a design made in Active-HDL onto the Altera Cyclone II FPGA NOTE: This tutorial contains

More information

Nios II Performance Benchmarks

Nios II Performance Benchmarks Subscribe Performance Benchmarks Overview This datasheet lists the performance and logic element (LE) usage for the Nios II Classic and Nios II Gen2 soft processor, and peripherals. Nios II is configurable

More information

ERIKA Enterprise Multicore Tutorial. for the Altera Nios II platform

ERIKA Enterprise Multicore Tutorial. for the Altera Nios II platform ERIKA Enterprise Multicore Tutorial for the Altera Nios II platform version: 1.0.1 May 27, 2009 About Evidence S.r.l. Evidence is a spin-off company of the ReTiS Lab of the Scuola Superiore S. Anna, Pisa,

More information

High Bandwidth Memory (HBM2) Interface Intel FPGA IP Design Example User Guide

High Bandwidth Memory (HBM2) Interface Intel FPGA IP Design Example User Guide High Bandwidth Memory (HBM2) Interface Intel FPGA IP Design Example Updated for Intel Quartus Prime Design Suite: 18.1.1 Subscribe Latest document on the web: PDF HTML Contents Contents 1. High Bandwidth

More information

CHAPTER 1 Introduction of the tnano Board CHAPTER 2 tnano Board Architecture CHAPTER 3 Using the tnano Board... 8

CHAPTER 1 Introduction of the tnano Board CHAPTER 2 tnano Board Architecture CHAPTER 3 Using the tnano Board... 8 CONTENTS CHAPTER 1 Introduction of the tnano Board... 2 1.1 Features...2 1.2 About the KIT...4 1.3 Getting Help...4 CHAPTER 2 tnano Board Architecture... 5 2.1 Layout and Components...5 2.2 Block Diagram

More information

Chapter 2: Hardware Design Flow Using Verilog in Quartus II

Chapter 2: Hardware Design Flow Using Verilog in Quartus II Chapter 2: Hardware Design Flow Using Verilog in Quartus II 2.1 Introduction to Quartus II System Development Software This chapter is an introduction to the Quartus II software that will be used for analysis

More information

Introduction to the Altera Qsys System Integration Tool. 1 Introduction. For Quartus Prime 15.1

Introduction to the Altera Qsys System Integration Tool. 1 Introduction. For Quartus Prime 15.1 Introduction to the Altera Qsys System Integration Tool For Quartus Prime 15.1 1 Introduction This tutorial presents an introduction to Altera s Qsys system integration tool, which is used to design digital

More information

Chapter 2 Getting Hands on Altera Quartus II Software

Chapter 2 Getting Hands on Altera Quartus II Software Chapter 2 Getting Hands on Altera Quartus II Software Contents 2.1 Installation of Software... 20 2.2 Setting Up of License... 21 2.3 Creation of First Embedded System Project... 22 2.4 Project Building

More information

Arria 10 JESD204B IP Core Design Example User Guide

Arria 10 JESD204B IP Core Design Example User Guide Arria 10 JESD204B IP Core Design Example User Guide UG-DEX-A10-JESD204B 2017.05.08 Last updated for Intel Quartus Prime Design Suite: 17.0 Subscribe Send Feedback Contents Contents 1 Arria 10 JESD204B

More information

Nios II Classic Software Developer s Handbook

Nios II Classic Software Developer s Handbook Nios II Classic Software Developer s Handbook Subscribe NII5V2 101 Innovation Drive San Jose, CA 95134 www.altera.com TOC-2 Contents Overview of Nios II Embedded Development...1-1 Prerequisites for Understanding

More information

AN 829: PCI Express* Avalon -MM DMA Reference Design

AN 829: PCI Express* Avalon -MM DMA Reference Design AN 829: PCI Express* Avalon -MM DMA Reference Design Updated for Intel Quartus Prime Design Suite: 18.0 Subscribe Latest document on the web: PDF HTML Contents Contents 1....3 1.1. Introduction...3 1.1.1.

More information

Guidelines for Developing a Nios II HAL Device Driver

Guidelines for Developing a Nios II HAL Device Driver Guidelines for Developing a Nios II HAL Device Driver AN-459-4.0 Application Note This application note explains the process of creating and debugging a hardware abstraction layer (HAL) software device

More information

ECEN 449: Microprocessor System Design Department of Electrical and Computer Engineering Texas A&M University

ECEN 449: Microprocessor System Design Department of Electrical and Computer Engineering Texas A&M University ECEN 449: Microprocessor System Design Department of Electrical and Computer Engineering Texas A&M University Prof. Sunil Khatri TA: Monther Abusultan (Lab exercises created by A. Targhetta / P. Gratz)

More information

Embedded System Design Lab 3: Peripherals and Device Drivers

Embedded System Design Lab 3: Peripherals and Device Drivers csee 4840 Embedded System Design Lab 3: Peripherals and Device Drivers Stephen A. Edwards Columbia University Spring 2019 Implement on the fpga a memory-mapped peripheral that can receive communication

More information

DE2 Board & Quartus II Software

DE2 Board & Quartus II Software January 23, 2015 Contact and Office Hours Teaching Assistant (TA) Sergio Contreras Office Office Hours Email SEB 3259 Tuesday & Thursday 12:30-2:00 PM Wednesday 1:30-3:30 PM contre47@nevada.unlv.edu Syllabus

More information

Using the NicheStack TCP/IP Stack - Nios II Edition Tutorial

Using the NicheStack TCP/IP Stack - Nios II Edition Tutorial Using the NicheStack TCP/IP Stack - Nios II Edition Tutorial Subscribe Send Feedback Latest document on the web: PDF HTML Contents Contents 1... 3 1.1 Introduction...3 1.2 Hardware and Software Requirements...

More information

Cyclone V SoC PCI-Express Root Port Example Design. Application Note

Cyclone V SoC PCI-Express Root Port Example Design. Application Note Cyclone V SoC PCI-Express Root Port Example Design Application Note 7/1/2013 Table of Contents 1 Revision History... 4 2 Overview... 5 2.1 GSRD... 5 3 Hardware and Software Packages... 6 3.1 GSRD... 6

More information

DDR and DDR2 SDRAM Controller Compiler User Guide

DDR and DDR2 SDRAM Controller Compiler User Guide DDR and DDR2 SDRAM Controller Compiler User Guide 101 Innovation Drive San Jose, CA 95134 www.altera.com Operations Part Number Compiler Version: 8.1 Document Date: November 2008 Copyright 2008 Altera

More information

Simulating Nios II Embedded Processor Designs

Simulating Nios II Embedded Processor Designs Simulating Nios II Embedded Processor Designs May 2004, ver.1.0 Application Note 351 Introduction The increasing pressure to deliver robust products to market in a timely manner has amplified the importance

More information

MICROTRONIX AVALON MULTI-PORT FRONT END IP CORE

MICROTRONIX AVALON MULTI-PORT FRONT END IP CORE MICROTRONIX AVALON MULTI-PORT FRONT END IP CORE USER MANUAL V1.0 Microtronix Datacom Ltd 126-4056 Meadowbrook Drive London, ON, Canada N5L 1E3 www.microtronix.com Document Revision History This user guide

More information

AN 812: Qsys Pro System Design Tutorial

AN 812: Qsys Pro System Design Tutorial AN 812: Qsys Pro System Design Tutorial AN-812 2017.08.15 Subscribe Send Feedback Contents Contents Qsys Pro System Design Tutorial... 3 Hardware and Software Requirements... 4 Download and Install the

More information

Implementing Fractional PLL Reconfiguration with ALTERA_PLL and ALTERA_PLL_RECONFIG Megafunctions

Implementing Fractional PLL Reconfiguration with ALTERA_PLL and ALTERA_PLL_RECONFIG Megafunctions Implementing Fractional PLL Reconfiguration with ALTERA_PLL and ALTERA_PLL_RECONFIG AN-661-1.1 Application Note This application note describes the flow for implementing fractional phase-locked loop (PLL)

More information

ECEN 449: Microprocessor System Design Department of Electrical and Computer Engineering Texas A&M University

ECEN 449: Microprocessor System Design Department of Electrical and Computer Engineering Texas A&M University ECEN 449: Microprocessor System Design Department of Electrical and Computer Engineering Texas A&M University Prof. Sunil P Khatri (Lab exercise created and tested by Ramu Endluri, He Zhou, Andrew Douglass

More information

P&E Microcomputer Systems, Inc. PKGPPCNEXUS

P&E Microcomputer Systems, Inc. PKGPPCNEXUS P&E Microcomputer Systems, Inc. PKGPPCNEXUS Quick Start Guide for the PHYTEC phycore-mpc5554 Rapid Development Kit Visit us on the web: www.pemicro.com 2006 P&E Microcomputer Systems, Inc. All Rights Reserved

More information

EXPERIMENT 1. INTRODUCTION TO ALTERA

EXPERIMENT 1. INTRODUCTION TO ALTERA EXPERIMENT 1. INTRODUCTION TO ALTERA I. Introduction I.I Objectives In this experiment, you will learn computer aided digital design and verification of it using Field Programmable Gate Arrays (FPGA).

More information

Creating Multiprocessor Nios II Systems Tutorial

Creating Multiprocessor Nios II Systems Tutorial Creating Multiprocessor Nios II Systems Tutorial May 2006, Version 6.0 Tutorial Introduction...2 Benefits of Multiprocessor Systems...2 Nios II Multiprocessor Systems...2 Hardware Design Considerations...3

More information

IMPLEMENTING SCL PROGRAMS. Using Codeblocks

IMPLEMENTING SCL PROGRAMS. Using Codeblocks IMPLEMENTING SCL PROGRAMS Using Codeblocks With the GSL on Linux Dr. José M. Garrido Department of Computer Science Updated September 2014 College of Science and Mathematics Kennesaw State University c

More information

SISTEMI EMBEDDED. Building a Nios II Computer from scratch. Federico Baronti Last version:

SISTEMI EMBEDDED. Building a Nios II Computer from scratch. Federico Baronti Last version: SISTEMI EMBEDDED Building a Nios II Computer from scratch Federico Baronti Last version: 20160321 1 Introduction Problem: Build a (NIOS II) Computer tailored to application needs Solutions: Use library

More information

AN 839: Design Block Reuse Tutorial

AN 839: Design Block Reuse Tutorial AN 839: Design Block Reuse Tutorial for Intel Arria 10 FPGA Development Board Updated for Intel Quartus Prime Design Suite: 17.1 Subscribe Send Feedback Latest document on the web: PDF HTML Contents Contents

More information

MICROTRONIX AVALON MOBILE DDR MEMORY CONTROLLER IP CORE

MICROTRONIX AVALON MOBILE DDR MEMORY CONTROLLER IP CORE MICROTRONIX AVALON MOBILE DDR MEMORY CONTROLLER IP CORE USER MANUAL V1.6 126-4056 Meadowbrook Drive. London, ON Canada N5L 1E3 www.microtronix.com Document Revision History This user guide provides basic

More information

CPE 200L LABORATORY 4: INTRODUCTION TO DE2 BOARD UNIVERSITY OF NEVADA, LAS VEGAS GOALS: BACKGROUND:

CPE 200L LABORATORY 4: INTRODUCTION TO DE2 BOARD UNIVERSITY OF NEVADA, LAS VEGAS GOALS: BACKGROUND: CPE 200L LABORATORY 4: INTRODUCTION TO DE2 BOARD DEPARTMENT OF ELECTRICAL AND COMPUTER ENGINEERING UNIVERSITY OF NEVADA, LAS VEGAS GOALS: Getting familiar with DE2 board installation, properties, usage.

More information

Laboratory Exercise 5

Laboratory Exercise 5 Laboratory Exercise 5 Bus Communication The purpose of this exercise is to learn how to communicate using a bus. In the designs generated by using Altera s SOPC Builder, the Nios II processor connects

More information

ERIKA Enterprise Multicore Tutorial

ERIKA Enterprise Multicore Tutorial ERIKA Enterprise Multicore Tutorial for the Altera Nios II platform version: 1.1.1 December 11, 2012 About Evidence S.r.l. Evidence is a spin-off company of the ReTiS Lab of the Scuola Superiore S. Anna,

More information

Microtronix Avalon I 2 C

Microtronix Avalon I 2 C Microtronix Avalon I 2 C User Manual 9-1510 Woodcock St. London, ON Canada N5H 5S1 www.microtronix.com This user guide provides basic information about using the Microtronix Avalon I 2 C IP. The following

More information

Copyright 2014 Xilinx

Copyright 2014 Xilinx IP Integrator and Embedded System Design Flow Zynq Vivado 2014.2 Version This material exempt per Department of Commerce license exception TSU Objectives After completing this module, you will be able

More information

Creating PCI Express Links in Intel FPGAs

Creating PCI Express Links in Intel FPGAs Creating PCI Express Links in Intel FPGAs Course Description This course provides all necessary theoretical and practical know how to create PCI Express links in Intel FPGAs. The course goes into great

More information

Introduction to Embedded System Design using Zynq

Introduction to Embedded System Design using Zynq Introduction to Embedded System Design using Zynq Zynq Vivado 2015.2 Version This material exempt per Department of Commerce license exception TSU Objectives After completing this module, you will be able

More information

Interrupt Creation and Debug on ML403

Interrupt Creation and Debug on ML403 Interrupt Creation and Debug on ML403 This tutorial will demonstrate the different debugging techniques used for debugging Interrupt based applications. To show this we will build a simple Interrupt application

More information

BASICS OF THE RENESAS SYNERGY PLATFORM

BASICS OF THE RENESAS SYNERGY PLATFORM BASICS OF THE RENESAS SYNERGY PLATFORM TM Richard Oed 2017.12 02 CHAPTER 9 INCLUDING A REAL-TIME OPERATING SYSTEM CONTENTS 9 INCLUDING A REAL-TIME OPERATING SYSTEM 03 9.1 Threads, Semaphores and Queues

More information

Altera SoC Embedded Design Suite User Guide

Altera SoC Embedded Design Suite User Guide Altera SoC Embedded Design Suite User Guide Subscribe ug-1137 2014.12.15 101 Innovation Drive San Jose, CA 95134 www.altera.com TOC-2 Contents Introduction to SoC Embedded Design Suite... 1-1 Overview...

More information

Nios II Embedded Design Suite Release Notes and Errata

Nios II Embedded Design Suite Release Notes and Errata Nios II Embedded Design Suite Release Notes and Errata January 2011 RN-EDS-8.0 About These Release Notes These release notes cover versions 9.1 through 10.1 of the Altera Nios II Embedded Design Suite

More information

AXI Interface Based KC705. Embedded Kit MicroBlaze Processor Subsystem (ISE Design Suite 14.4)

AXI Interface Based KC705. Embedded Kit MicroBlaze Processor Subsystem (ISE Design Suite 14.4) AXI Interface Based KC705 j Embedded Kit MicroBlaze Processor Subsystem (ISE Design Suite 14.4) Software Tutorial Notice of Disclaimer The information disclosed to you hereunder (the Materials ) is provided

More information

Quick Tutorial for Quartus II & ModelSim Altera

Quick Tutorial for Quartus II & ModelSim Altera Quick Tutorial for Quartus II & ModelSim Altera By Ziqiang Patrick Huang Hudson 213c Ziqiang.huang@duke.edu Download & Installation For Windows or Linux users : Download Quartus II Web Edition v13.0 (ModelSim

More information

Profiling Nios II Systems

Profiling Nios II Systems February 2006, ver. 1.2 Application Note 391 Introduction This application note describes a variety of ways to measure the performance of a Nios II system with three tools: the GNU profiler, called nios2-elf-gprof,

More information

4K Format Conversion Reference Design

4K Format Conversion Reference Design 4K Format Conversion Reference Design AN-646 Application Note This application note describes a 4K format conversion reference design. 4K resolution is the next major enhancement in video because of the

More information

DKAN0011A Setting Up a Nios II System with SDRAM on the DE2

DKAN0011A Setting Up a Nios II System with SDRAM on the DE2 DKAN0011A Setting Up a Nios II System with SDRAM on the DE2 04 November 2009 Introduction This tutorial details how to set up and instantiate a Nios II system on Terasic Technologies, Inc. s DE2 Altera

More information

Disassemble the machine code present in any memory region. Single step through each assembly language instruction in the Nios II application.

Disassemble the machine code present in any memory region. Single step through each assembly language instruction in the Nios II application. Nios II Debug Client This tutorial presents an introduction to the Nios II Debug Client, which is used to compile, assemble, download and debug programs for Altera s Nios II processor. This tutorial presents

More information

FPGA Introductory Tutorial: Part 1

FPGA Introductory Tutorial: Part 1 FPGA Introductory Tutorial: Part 1 This tutorial is designed to assist in learning the basics of the Altera Quartus II v9.0 software. Part 1 of the tutorial will cover the basics of creating a Project,

More information

PCI Express Avalon-MM DMA Reference Design

PCI Express Avalon-MM DMA Reference Design PCI Express Avalon-MM DMA Reference Design AN-690 2016.05.28 Subscribe Send Feedback Contents Contents 1 AN 690:...3 1.1 Deliverables Included with the Reference Design...3 1.2 Reference Design Functional

More information