ECE 448 Lecture 15. Overview of Embedded SoC Systems

Similar documents
A Simple SoC Platform for the Integrated Computer Engineering Lab Framework

ECE 448 Lecture 9. Bare Metal System Software Development

EMBEDDED SOPC DESIGN WITH NIOS II PROCESSOR AND VHDL EXAMPLES

SYSTEMS ON CHIP (SOC) FOR EMBEDDED APPLICATIONS

Chapter 5: ASICs Vs. PLDs

Chapter 10 Objectives

Lab 5. Using Fpro SoC with Hardware Accelerators Fast Sorting

Hardware/Software Co-design

Digital Design Methodology

Hardware-Software Codesign. 1. Introduction

Digital Design Methodology (Revisited) Design Methodology: Big Picture

EE382V: System-on-a-Chip (SoC) Design

ECE 111 ECE 111. Advanced Digital Design. Advanced Digital Design Winter, Sujit Dey. Sujit Dey. ECE Department UC San Diego

System on Chip (SoC) Design

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements.

Design of DMA Controller Using VHDL

Copyright 2014 Xilinx

Midterm Exam. Solutions

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

Introduction to Embedded System Design using Zynq

Bibliography. Measuring Software Reuse, Jeffrey S. Poulin, Addison-Wesley, Practical Software Reuse, Donald J. Reifer, Wiley, 1997.

CE 435 Embedded Systems Spring 2018

Digital Systems Design. System on a Programmable Chip

Park Sung Chul. AE MentorGraphics Korea

Software Driven Verification at SoC Level. Perspec System Verifier Overview

Codesign Framework. Parts of this lecture are borrowed from lectures of Johan Lilius of TUCS and ASV/LL of UC Berkeley available in their web.

Introduction to Embedded Systems

Design Space Exploration Using Parameterized Cores

Overview of Microcontroller and Embedded Systems

Test and Verification Solutions. ARM Based SOC Design and Verification

Designing and Prototyping Digital Systems on SoC FPGA The MathWorks, Inc. 1

Design Issues in Hardware/Software Co-Design

FPGA-Based Rapid Prototyping of Digital Signal Processing Systems

DIGITAL DESIGN TECHNOLOGY & TECHNIQUES

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

Lecture 1: Introduction Course arrangements Recap of basic digital design concepts EDA tool demonstration

Introduction to System-on-Chip

Midterm Exam. Solutions

Hardware/Software Codesign

MATLAB/Simulink 기반의프로그래머블 SoC 설계및검증

Design of Digital Circuits

Programmable Logic Devices II

Extending Fixed Subsystems at the TLM Level: Experiences from the FPGA World

Lecture 2 Hardware Description Language (HDL): VHSIC HDL (VHDL)

ARM Processors for Embedded Applications

EE595. Part VIII Overall Concept on VHDL. EE 595 EDA / ASIC Design Lab

RISC-V based core as a soft processor in FPGAs Chowdhary Musunuri Sr. Director, Solutions & Applications Microsemi

ELEC 2520 Embedded Systems Engineering II

Introduction to the Qsys System Integration Tool

Hardware-Software Codesign. 1. Introduction

ECE 1160/2160 Embedded Systems Design. Midterm Review. Wei Gao. ECE 1160/2160 Embedded Systems Design

Summer 2003 Lecture 21 07/15/03

Intellectual Property Macrocell for. SpaceWire Interface. Compliant with AMBA-APB Bus

EE 466/586 VLSI Design. Partha Pande School of EECS Washington State University

FPGA Based Digital Design Using Verilog HDL

Embedded Systems: Architecture

A Hardware / Software Co-Design System using Configurable Computing Technology

Embedded Systems. 8. Hardware Components. Lothar Thiele. Computer Engineering and Networks Laboratory

COE 561 Digital System Design & Synthesis Introduction

Co-synthesis and Accelerator based Embedded System Design

Prog. Logic Devices Schematic-Based Design Flows CMPE 415. Designer could access symbols for logic gates and functions from a library.

Evolution of CAD Tools & Verilog HDL Definition

Designing with ALTERA SoC Hardware

HES-7 ASIC Prototyping

Full Linux on FPGA. Sven Gregori

Embedded Systems. 7. System Components

EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs)

Designing with Nios II Processor for Hardware Engineers

PS2 VGA Peripheral Based Arithmetic Application Using Micro Blaze Processor

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

Contents 1 Introduction 2 Functional Verification: Challenges and Solutions 3 SystemVerilog Paradigm 4 UVM (Universal Verification Methodology)

The SOCks Design Platform. Johannes Grad

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

ELCT 912: Advanced Embedded Systems

EEM870 Embedded System and Experiment Lecture 4: SoC Design Flow and Tools

Outline. EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs) FPGA Overview. Why FPGAs?

FPGA: What? Why? Marco D. Santambrogio

Designing with VHDL and FPGA

8. Best Practices for Incremental Compilation Partitions and Floorplan Assignments

Parameterized System Design

Does FPGA-based prototyping really have to be this difficult?

ECE 5775 (Fall 17) High-Level Digital Design Automation. Hardware-Software Co-Design

Lattice Semiconductor Design Floorplanning

A Device-Controlled Dynamic Configuration Framework Supporting Heterogeneous Resource Management

Overview of Digital Design with Verilog HDL 1

DoCD IP Core. DCD on Chip Debug System v. 6.02

FPGA. Agenda 11/05/2016. Scheduling tasks on Reconfigurable FPGA architectures. Definition. Overview. Characteristics of the CLB.

Hardware Software Bring-Up Solutions for ARM v7/v8-based Designs. August 2015

HVSoCs: A Framework for Rapid Prototyping of 3-D Hybrid Virtual System-on-Chips

SpecC Methodology for High-Level Modeling

EEL 4783: HDL in Digital System Design

ICS 180 Spring Embedded Systems. Introduction: What are Embedded Systems and what is so interesting about them?

Embedded Applications. COMP595EA Lecture03 Hardware Architecture

New System Solutions for Laser Printer Applications by Oreste Emanuele Zagano STMicroelectronics

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

Introduction to reconfigurable systems

Hardware Design with VHDL PLDs IV ECE 443

Design Verification Lecture 01

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

Survey of Commercially available chips and IP cores implementing cryptographic algorithms

Transcription:

ECE 448 Lecture 15 Overview of Embedded SoC Systems ECE 448 FPGA and ASIC Design with VHDL George Mason University

Required Reading P. Chu, FPGA Prototyping by VHDL Examples Chapter 8, Overview of Embedded SoC Systems Source Code of Examples http://academic.csuohio.edu/chu_p/rtl/fpga_mcs_vhdl.html Basys 3 FPGA Board Reference Manual 7. VGA Port ECE 448 FPGA and ASIC Design with VHDL 2

Embedded Systems vs. General-Purpose Computing Source: ETHZ, Prof. Lothar Thiele

Types of Embedded Systems Example: Low-End microwave oven High-End Example: camera Features: simple control functions & user interface Implementation: 8-bit single-chip microcontroller Features: 1. input/output, menu, storing image files 2. preprocessing & data compression Implementation: 1. Microcontroller 2. Hardware accelerator

FPGA with Soft Processor Core = FPGA-Based System on Chip (SoC) Source: The Zynq Book

Simplified Hardware Architecture of an Embedded SoC I/O Devices Hardware Accelerator Source: The Zynq Book

IP Cores (Intellectual Property Cores) blocks of logic used in developing FPGA or ASIC systems essential elements of design reuse part of the growing electronic design automation (EDA) industry trend towards repeated use of previously designed components. ideally, an IP core should be entirely portable that is, able to easily be inserted into any vendor technology or design methodology can be developed by the device manufacturers, third-party vendors, or the users themselves

Classification of IP Cores Hard cores - physical manifestations of the IP design; best for plug-and-play applications; less portable and flexible than the other two types of cores Firm (sometimes called semi-hard ) cores carry placement data but are configurable to various applications Soft cores exist either as a netlist (a list of the logic gates and associated interconnections) or hardware description language ( HDL ) code

What is Software/Hardware Codesign? Integrated design of systems that consist of hardware and software components Analysis of HW/SW boundaries and interfaces Evaluation of design alternatives

Software vs. Hardware Trade-offs Improve Performance Improve Energy Efficiency Reduce Power Density Manage Design Complexity Reduce Design Cost Stick to Design Schedule Handle Deep Submicron Implement more in Hardware Implement more in Software Source: A Practical Introduction to Hardware/Software Codesign

Why Codesign?

The Embedded SoC Design Process Partition the tasks to software routines and hardware accelerators Design user custom IP cores if needed Develop the hardware Develop the software Implement the hardware and software and perform testing

IP-Centered SoC Development Flow

Elements of the Development Flow hardware platform specification file: contains the definition of the SoC design, including the processor configuration, memory size and structure, I/O peripheral cores used, memory address mapping, etc. BSP (board support package): a mechanism to encapsulate the system codes; a customized collection of device drivers and initialization routines that support a particular system device driver: a set of routines that operate or control a particular peripheral device. A driver acts as a translator between the hardware peripheral and application programs and enables the application programs to access peripheral functions without needing to know precise details..elf file: the Executable and Linkable Format

Custom IP Core Development Design a custom digital circuit to implement the computation algorithm or special functionality Derive an interface to connect the circuit to the bus or interconnect structure of the vendor's IP framework. Develop a device driver to control the new hardware core and integrate it into vendor's software library

FPro System FPGA Prototyping or Fun and Professional Simple. It defines a simple synchronous bus protocol and a straightforward device driver structure. Once a hardware circuit is developed, it can be converted to an IP core by adding a simple interface circuit and a device driver. Functional. It provides a variety of I/O peripherals and commonly used serial interfaces (UART, SPI, and I 2 C) and includes working device drivers. It resembles a bare-metal 32-bit microprocessor board and can implement real-world projects targeted for this type of boards.

FPro System (cont.) FPGA Prototyping or Fun and Professional Portable. Except for the processor, FPro SoC's IP cores are developed from scratch in HDL and do not use any vendor's proprietary components. The bus protocol and device drivers are not tied to any specific commercial platform, either. Thus, the IP cores and software codes are portable and can be reused for different FPGA devices and prototyping boards. Upward compatible. The development follows rigorous and proven design principles and practices. These knowledge and skills can be applied in the future for more complicated commercial platforms and larger projects. In fact, the IP cores and drivers developed can be easily modified to be incorporated into existing commercial IP frameworks.

FPro System (cont.) FPGA Prototyping or Fun and Professional Fun. It can incorporate existing I/O modules and quickly develop a functional prototyping project. It can provide hardware acceleration capability and thus is more capable and more flexible than any microprocessor board. This give us an opportunity to develop interesting and challenging projects and make studying hardware more fun.

Platform Hardware Organization Processor module 32-bit-wide data path 32-bit memory address space Memory-Mapped-I/O scheme for I/O access FPro bridge and FPro bus simple synchronous bus protocol for the two subsystems MMIO (memory mapped I/O) subsystem the memory and registers of the I/O peripherals are mapped to the same address space accessing memory and I/O peripherals involves the same instructions Video subsystem coordinates the operation of video cores

Top-level diagram of an FPro system

MMIO Subsystem Includes a standard slot interface that conforms to the FPro bus protocol The MMIO subsystem consists of a controller to select a specific slot and can accommodate up to 64 instantiated cores After being wrapped with an interface circuit, custom digital logic can be plugged into the FPro platform. About a dozen IP cores have been developed and integrated into the MMIO subsystem.

Video Subsystem Establishes a framework to coordinate the operation of video cores. A video core generates or processes the video data stream. The cores are arranged as a cascading chain. The data stream is pipelined and blended through each stage and eventually displayed on a VGA monitor. The video subsystem demonstrates the principles of handling stream data, in which data are generated continuously and passed through a chain of components for processing.

Software hierarchy of an FPro SoC system

Platform Software Organization A simple bare metal software scheme No operating system The processor boots directly into an infinite main loop Software hierarchy of an FPro system contains a hardware layer, a driver layer, and an application layer A boot routine is associated with the processor. It performs the basic initialization process, such as clearing the caches, configuring the stack and heap segments, and initializing the interrupt, and then transfers control to the main program. The timer core and UART maintain a system time and assist displaying a debug message on the console.

FPro SoC Development Flow

Modified Development Flow In Step 3, only the processor module, which contains a processor core and RAM, is generated via the IP integration utility. We must manually construct the HDL code for the toplevel system, which is composed of the instantiation of the previously generated processor module and the MMIO and video subsystems from Step 2. In Step 6, since only the processor module configuration is listed in the hardware specification file, only processor-related codes, such as the boot routine, will be included in the BSP library. We must manually examine the IP cores in the toplevel HDL file and include the corresponding driver files in the application software project.

Modified Development Flow Since the processor module is the same most of the time, Steps 1 and 6 only need to be executed once. The generated HDL files and BSP library can be use in subsequent designs.

Vanilla FPro System (Part II of the Textbook)