Digital Systems Design. System on a Programmable Chip

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

NIOS CPU Based Embedded Computer System on Programmable Chip

ECE332, Week 2, Lecture 3. September 5, 2007

ECE332, Week 2, Lecture 3

DE2 Board & Quartus II Software

NIOS CPU Based Embedded Computer System on Programmable Chip

System-on Solution from Altera and Xilinx

Designing with Nios II Processor for Hardware Engineers

EMBEDDED SOPC DESIGN WITH NIOS II PROCESSOR AND VHDL EXAMPLES

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

IMPLEMENTATION OF TIME EFFICIENT SYSTEM FOR MEDIAN FILTER USING NIOS II PROCESSOR

Embedded Computing Platform. Architecture and Instruction Set

Building A Custom System-On-A-Chip

Excellent for XIP applications"

Design of Embedded Hardware and Firmware

HyperBus Memory Controller (HBMC) Tutorial

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

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

HyperBus Memory Controller (HBMC) Tutorial

Graduate Institute of Electronics Engineering, NTU Advanced VLSI SOPC design flow

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

Embedded Design Handbook

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

HyperBus Memory Controller (HBMC) Tutorial

FPGA for Complex System Implementation. National Chiao Tung University Chun-Jen Tsai 04/14/2011

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

Introduction to the Qsys System Integration Tool

Rapidly Developing Embedded Systems Using Configurable Processors

Synaptic Labs' HyperBus Memory Controller (HBMC) Tutorial

Introduction to Embedded System Design using Zynq

Field Programmable Gate Array (FPGA)

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

NIOS II Pixel Display

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

Designing with ALTERA SoC Hardware

Terasic DE0 Field Programmable Gate Array (FPGA) Development Board

Class 413. Rapidly Developing Embedded Systems Using Configurable Processors

Cover TBD. intel Quartus prime Design software

The S6000 Family of Processors

Learning Outcomes. Spiral 3 1. Digital Design Targets ASICS & FPGAS REVIEW. Hardware/Software Interfacing

HyperBus Memory Controller (HBMC) Tutorial

HyperBus Memory Controller (HBMC) Tutorial

Cover TBD. intel Quartus prime Design software

My First Nios II for Altera DE2-115 Board

HyperBus Memory Controller (HBMC) Tutorial

The SOCks Design Platform. Johannes Grad

Introduction to the Altera SOPC Builder Using Verilog Design

CMPE 415 Programmable Logic Devices Introduction

Nios II Embedded Design Suite Release Notes

Non-Volatile Configuration Scheme for the Stratix II EP2S60 DSP Development Board

Park Sung Chul. AE MentorGraphics Korea

S. Moslehpour *, K. Jenab & S. Valiveti

DESIGN OF STANDARD AND CUSTOM PERIPHERAL USING NIOS II PROCESSOR

FPGA for Software Engineers

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

Design Space Exploration Using Parameterized Cores

ESE Back End 2.0. D. Gajski, S. Abdi. (with contributions from H. Cho, D. Shin, A. Gerstlauer)

Spiral 3-1. Hardware/Software Interfacing

The Nios II Family of Configurable Soft-core Processors

Tutorial on Quartus II Introduction Using Verilog Code

Analysis of Resource Utilization in FPGA Implementation of an Embedded System Using Soft Core Processor.

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

FPGA How do they work?

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

Digital Integrated Circuits

An Introduction to Programmable Logic

NIOS CPU Based Embedded Computer System on Programmable Chip

A Study of the Speedups and Competitiveness of FPGA Soft Processor Cores using Dynamic Hardware/Software Partitioning

Introduction to VHDL Design on Quartus II and DE2 Board

PREFACE. Changes to the SOPC Edition

Chapter 2 Getting Hands on Altera Quartus II Software

System-on-Chip Architecture for Mobile Applications. Sabyasachi Dey

Using System-on-a-Programmable-Chip Technology to Design Embedded Systems

Five Ways to Build Flexibility into Industrial Applications with FPGAs

New development within the FPGA area with focus on soft processors

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

Designing Embedded Processors in FPGAs

DOWNLOADING DESIGNS TO THE ALTERA DE10-LITE FPGA

Embedded Systems. "System On Programmable Chip" NIOS II Avalon Bus. René Beuchat. Laboratoire d'architecture des Processeurs.

Introduction to System-on-Chip

System-on-a-Programmable-Chip (SOPC) Development Board

Nios II Performance Benchmarks

Spiral 2-8. Cell Layout

QUARTUS II Altera Corporation

FPGA-Based Rapid Prototyping of Digital Signal Processing Systems

Laboratory Exercise 5

The University of Reduced Instruction Set Computer (MARC)

Excalibur Device Overview

8. Best Practices for Incremental Compilation Partitions and Floorplan Assignments

ALTERA FPGAs Architecture & Design

Somes French translations :

Embedded Systems Dr. Santanu Chaudhury Department of Electrical Engineering Indian Institute of Technology, Delhi. Lecture - 10 System on Chip (SOC)

IP CORE Design 矽智產設計. C. W. Jen 任建葳.

Digital Systems Laboratory

Qsys and IP Core Integration

Programmable Logic Devices

EN2911X: Reconfigurable Computing Lecture 01: Introduction

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

Intel SoC FPGA Embedded Development Suite User Guide

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

Transcription:

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 Memory on the device Typically includes An Intellectual Property (IP) processor core Common examples include various microcontrollers, microprocessors, etc. A selection of custom hardware Interfaces, busses Basic premise is to have all (or a large majority) of the components on a single chip System-on-a-chip (SOC) Since we are using an FPGA we may call this a system-ona-programmable-chip (SOPC) Dr. D. J. Jackson Lecture 11-2 1

Processor Cores Processor cores can be classified as hard or soft Refers to the flexibility or configurability of the core Hard cores are less configurable but they have higher performance than soft cores Hard processor cores use an embedded processor core (in silicon) in addition to the FPGA s normal memory and logic elements Examples Altera offers an ARM processor core in some of its FPGAs Xilinx also offers ARM processor core in some of its FPGAs Dr. D. J. Jackson Lecture 11-3 Processor Cores (continued) Soft cores (Altera s NIOS II processor is one example) use existing FPGA logic elements to implement the processor logic Can be very feature rich, allowing specification of parameters such as Memory/datapath width ALU functionality Number and types of peripherals Memory and I/O address space Parameters specified at (hardware) compile time Disadvantages Typically have slower clock rates and higher power consumption than hard core counterparts Dr. D. J. Jackson Lecture 11-4 2

SOPC Development Tools A CAD tool, specific to each soft processor core, is used to specify processor options Register file size, hardware multiply and divide support, floating point support, interrupts, I/O hardware, custom hardware The tool outputs a synthesizable HDL model of the processor HDL source code may be protected and not viewable After any additional (user) logic is added, the design can be synthesized using the CAD synthesis tool Application programs (usually in C or C++) are compiled by a custom compiler provided for the processor core Dr. D. J. Jackson Lecture 11-5 SOPC Design Flow SOPC processor core synthesis (and associated tools) are generally a superset of traditional CAD tools Altera Qsys Various commercial and open source processor cores NIOS II www.opencores.org www.leox.org Commercial soft processor cores tend to be more efficiently implemented on FPGAs Typically optimized by manufacturer for a particular FPGA family (or families) Hardware and software can be designed concurrently Hardware/Software Co-Design Dr. D. J. Jackson Lecture 11-6 3

SOPC Design Flow Additional User Hardware (optional) Design Entry Tool HDL or schematic Traditional FPGA Tool Flow Program FPGA & Initialize Memory FPGA Synthesis Tool FPGA Place and Route Tool User Logic Hardware Design Processor Core Configuration Tool HDL or Netlist Netlist Processor Memory Software Design Application Source Code C/C++ Compiler for Processor Binary Program/ Data Files Operating System and Libraries (optional) Dr. D. J. Jackson Lecture 11-7 Initializing Memory Once the program/data file has been generated it must be loaded onto the processor s program and data memories Can be accomplished in several ways On-chip Memory If the application is small, it may fit in the memory blocks available on the FPGA Initialization is through standard FPGA tools On-chip memory is typically limited so this solution is not often an option Bootloader A small program, usually loaded onto on-chip memory or a EPROM, that is responsible for communicating with another device (a PC) and downloading an application program into external memory (SRAM, SDRAM, FLASH, etc.) After downloading, control is transferred to the application program External Non-volatile Storage Dr. D. J. Jackson Lecture 11-8 4

Hardware Bootloader A hardware bootloader provides functionality similar to the software bootloader Implemented in dedicated logic within the processor core Upon power up (or configuration), the bootloader stalls the processor and downloads application code (typically via a serial or JTAG interface) Bootloader can start/stop the processor Has access to at least some of the register set Typically has direct access to the processor s memory or memory registers in the datapath Altera s NIOS II processor supports a hardware bootloader within a JTAG debug module Can support downloading new application code without recompiling (or even reconfiguring) the soft core processor Dr. D. J. Jackson Lecture 11-9 SOPC Design Versus Traditional Design Traditional design includes ASIC Application Specific Integrated Circuit Fixed-Processor Design SOPC design advantages Reconfigurable nature Short development cycle SOPC design disadvantages Higher unit costs in production Relatively high power consumption Dr. D. J. Jackson Lecture 11-10 5

Flexible Hardware Benefits Features and specifications modified throughout the design cycle Marketing detects a shift in demand for additional features Cell phones with cameras, MP3 players A protocol or specification is updated Introduction of USB 2.0 standard for example In traditional design modalities (ASIC and fixed processor), these changes could result in ASIC design Processor selection Printed circuit board design These things tend to increase product time-to-market and product cost Also can affect multiple generations/versions of a single product or multiple product lines Use of a single circuit board for multiple product lines Use of a single circuit board design for multiple versions of a single product Dr. D. J. Jackson Lecture 11-11 Comparing SOPC, ASIC and Fixed Processor Design Modalities Feature SOPC ASIC Fixed Processor S/W Flexibility H/W Flexibility Reconfigurability Development cost/time Peripheral Equipment Costs Performance Production Cost Power Efficiency Good; Moderate; Poor Dr. D. J. Jackson Lecture 11-12 6

Nios II System Development Flow From Nios II Hardware Development Tutorial Dr. D. J. Jackson Lecture 11-13 Analyzing System Requirements The development flow begins with predesign activity which includes an analysis of the application requirements, such as the following questions: What computational performance does the application require? How much bandwidth or throughput does the application require? What types of interfaces does the application require? Does the application require multithreaded software? Dr. D. J. Jackson Lecture 11-14 7

Analyzing System Requirements Based on the answers to these questions, you can determine the concrete system requirements, such as: Which Nios II processor core to use: smaller or faster. What components the design requires and how many of each kind. Which real-time operating system (RTOS) to use, if any. Where hardware acceleration logic can dramatically improve system performance. Analyzing these topics involve both the hardware and software teams Dr. D. J. Jackson Lecture 11-15 Defining and Generating the System in Qsys After analyzing the system hardware requirements, you use Qsys to specify the Nios II processor core(s), memory, and other components your system requires. Qsys automatically generates the interconnect logic to integrate the components in the hardware system. The primary outputs of Qsys are the following file types: Qsys Design File (.qsys) -- Contains hardware contents of the Qsys system. SOPC Information File (.sopcinfo) -- Contains a description of the contents of the.qsys file in Extensible Markup Language File (.xml) format. The Nios II Embedded Design Suite (EDS) uses the.sopcinfo file to create software for the target hardware. Hardware description language (HDL) files -- Hardware design files that describe the Qsys system. The Quartus software uses the HDL files to compile the overall FPGA design into an SRAM Object File (.sof). Dr. D. J. Jackson Lecture 11-16 8

Integrating the Qsys System into the Quartus Project After generating the Nios II system using Qsys, you integrate it into the Quartus project. Using the Quartus software, you perform all tasks required to create the final FPGA hardware design. Using the Quartus software, you also assign pin locations for I/O signals, specify timing requirements, and apply other design constraints. Finally, you compile the Quartus project to produce a.sof to configure the FPGA. Dr. D. J. Jackson Lecture 11-17 Developing Software with the Nios II Software Build Tools for Eclipse Using the Nios II Software Build Tools (SBT) for Eclipse, you perform all software development tasks for your Nios II processor system. After you generate the system with Qsys, you can begin designing your C/C++ application code immediately with the Nios II SBT for Eclipse. Altera provides component drivers and a hardware abstraction layer (HAL) which allows you to write Nios II programs quickly and independently of the low-level hardware details. In addition to your application code, you can design and reuse custom libraries in your Nios II SBT for Eclipse projects. To create a new Nios II C/C++ application project, the Nios II SBT for Eclipse uses information from the.sopcinfo file. Dr. D. J. Jackson Lecture 11-18 9

Developing Software with the Nios II Software Build Tools for Eclipse The Nios II SBT for Eclipse can produce several outputs including: system.h file -- Defines symbols for referencing the hardware in the system. The Nios II SBT for Eclipse automatically create this file when you create a new board support package (BSP). Executable and Linking Format File (.elf) Is the result of compiling a C/C++ application project, that you can download directly to the Nios II processor. Dr. D. J. Jackson Lecture 11-19 10