Extending Model-Based Design for HW/SW Design and Verification in MPSoCs Jim Tung MathWorks Fellow

Similar documents
Motor Control: Model-Based Design from Concept to Implementation on heterogeneous SoC FPGAs Alexander Schreiber, MathWorks

Integrated Workflow to Implement Embedded Software and FPGA Designs on the Xilinx Zynq Platform Puneet Kumar Senior Team Lead - SPC

Hardware-Software Co-Design and Prototyping on SoC FPGAs Puneet Kumar Prateek Sikka Application Engineering Team

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

Hardware and Software Co-Design for Motor Control Applications

Hardware and Software Co-Design for Motor Control Applications

Hardware and Software Co-Design for Motor Control Applications

Introduction to C and HDL Code Generation from MATLAB

Accelerating FPGA/ASIC Design and Verification

Modeling HDL components for FPGAs in control applications

Targeting Motor Control Algorithms to System-on-Chip Devices

Model-Based Design for effective HW/SW Co-Design Alexander Schreiber Senior Application Engineer MathWorks, Germany

Design and Verification of FPGA Applications

컴퓨터비전의최신기술 : Deep Learning, 3D Vision and Embedded Vision

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

Model-Based Design: Generating Embedded Code for Prototyping or Production

Introducing Simulink R2012b for Signal Processing & Communications Graham Reith Senior Team Leader, UK Application Engineering

SoC Systeme ultra-schnell entwickeln mit Vivado und Visual System Integrator

Making the Most of your MATLAB Models to Improve Verification

How Real-Time Testing Improves the Design of a PMSM Controller

What's new in MATLAB and Simulink for Model-Based Design

Ein Modell - viele Zielsysteme

Design and Verify Embedded Signal Processing Systems Using MATLAB and Simulink

Modelling and Simulation Made Easy with Simulink Tiffany Liang Application Engineer MathWorks

Real-Time Testing in a Modern, Agile Development Workflow

SoC Systeme ultra-schnell entwickeln mit Vivado und Visual System Integrator

Simulation, prototyping and verification of standards-based wireless communications

Modeling a 4G LTE System in MATLAB

Model-Based Design for Video/Image Processing Applications

Implementing MATLAB Algorithms in FPGAs and ASICs By Alexander Schreiber Senior Application Engineer MathWorks

Design and Verify Embedded Signal Processing Systems Using MATLAB and Simulink

Optimization and Implementation of Embedded Signal Processing Algorithms Jonas Rutström Senior Application Engineer

Optimizing HW/SW Partition of a Complex Embedded Systems. Simon George November 2015.

Intro to System Generator. Objectives. After completing this module, you will be able to:

Model-Based Design: Design with Simulation in Simulink

Modeling and Verifying Mixed-Signal Designs with MATLAB and Simulink

Reducing the cost of FPGA/ASIC Verification with MATLAB and Simulink

Design and Verification of FPGA and ASIC Applications Graham Reith MathWorks

Designing and Targeting Video Processing Subsystems for Hardware

[Sub Track 1-3] FPGA/ASIC 을타겟으로한알고리즘의효율적인생성방법및신기능소개

Designing and Analysing Power Electronics Systems Using Simscape and SimPowerSystems

Simulink as Your Enterprise Simulation Platform

High-Level and Model-Based Design Targeting FPGAs and SoCs

Advanced AC Motor Control S/W Development Sang-Ho Yoon Senior Application Engineer The MathWorks

2015 The MathWorks, Inc. 1

Hardware Implementation and Verification by Model-Based Design Workflow - Communication Models to FPGA-based Radio

Connecting MATLAB & Simulink with your SystemVerilog Workflow for Functional Verification

Avnet Speedway Design Workshop

Codegenerierung für Embedded Systeme leicht gemacht So geht s!

Optimize DSP Designs and Code using Fixed-Point Designer

CE 435 Embedded Systems Spring 2018

Designing a Multi-Processor based system with FPGAs

FPGA Entering the Era of the All Programmable SoC

Accelerate FPGA Prototyping with

What s New in Simulink in R2015b and R2016a

MATLAB/Simulink in der Mechatronik So einfach geht s!

Atlys (Xilinx Spartan-6 LX45)

Reducing Design Errors in Complex State Machines using Model-Based Design

Copyright 2014 Xilinx

Introducing Simulink Release 2012b for Control System Development Mark Walker MathWorks

Model to Code, Made Simple and Easy Sebastien Dupertuis Application Engineer Applications Engineering Group MathWorks Switzerland June 11, 2015

Addressing Fixed Point Design Challenges

From Design to Production

Cover TBD. intel Quartus prime Design software

Cover TBD. intel Quartus prime Design software

Effective Team Collaboration with Simulink

Four Best Practices for Prototyping MATLAB and Simulink Algorithms on FPGAs by Stephan van Beek, Sudhir Sharma, and Sudeepa Prakash, MathWorks

Reuse MATLAB Functions and Simulink Models in UVM Environments with Automatic SystemVerilog DPI Component Generation

Déploiement embarqué et connectivité hardware avec MATLAB et Simulink

The Application of SystemC to the Design and Implementation of a High Data Rate Satellite Transceiver

Model-Based Design for Altera FPGAs Using HDL Code Generation The MathWorks, Inc. 1

Adding Custom IP to the System

Lab #1: Introduction to Design Methodology with FPGAs part 1 (80 pts)

Tutorial - Using Xilinx System Generator 14.6 for Co-Simulation on Digilent NEXYS3 (Spartan-6) Board

System Level Design with IBM PowerPC Models

Implementation and Verification Daniel MARTINS Application Engineer MathWorks

What s New in MATLAB and Simulink

EEL 5722C Field-Programmable Gate Array Design

Getting started with Digilent NetFPGA SUME, a Xilinx Virtex 7 FPGA board for high performance computing and networking systems

Model-Based Design Using Simulink, HDL Coder, and DSP Builder for Intel FPGAs By Kiran Kintali, Yongfeng Gu, and Eric Cigan

Control System Design and Rapid Prototyping Using Simulink Chirag Patel Sr. Application Engineer Modeling and Simulink MathWorks India

MathWorks Products and Prices North America January 2018

FCUDA-SoC: Platform Integration for Field-Programmable SoC with the CUDAto-FPGA

Introduction to DSP/FPGA Programming Using MATLAB Simulink

Five Ways to Build Flexibility into Industrial Applications with FPGAs

A Matlab/Simulink Simulation Approach for Early Field-Programmable Gate Array Hardware Evaluation

Team-Based Collaboration in Simulink

SYSTEMS ON CHIP (SOC) FOR EMBEDDED APPLICATIONS

Modern State Space Representation Using ADwin DAQ Systems

Embarquez votre Intelligence Artificielle (IA) sur CPU, GPU et FPGA

Turning an Automated System into an Autonomous system using Model-Based Design Autonomous Tech Conference 2018

NEW FPGA DESIGN AND VERIFICATION TECHNIQUES MICHAL HUSEJKO IT-PES-ES

Simulink for AUTOSAR: Best Practices

Parallel Simulation Accelerates Embedded Software Development, Debug and Test

High-Level Synthesis with LabVIEW FPGA

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

Software Driven Verification at SoC Level. Perspec System Verifier Overview

FPGA design with National Instuments

DRYING CONTROL LOGIC DEVELOPMENT USING MODEL BASED DESIGN

II. LITERATURE SURVEY

Transcription:

Extending Model-Based Design for HW/SW Design and Verification in MPSoCs Jim Tung MathWorks Fellow jim@mathworks.com 2014 The MathWorks, Inc. 1

Model-Based Design: From Concept to Production RESEARCH DESIGN Environment Models Physical Components s IMPLEMENTATION REQUIREMENTS TEST & VERIFICATION Model multi-domain systems Explore and optimize system behavior in floating point and fixed point Collaborate across teams and continents Generate efficient code Explore and optimize implementation tradeoffs C, C++ VHDL, Verilog MCU, DSP, CPU INTEGRATION FPGA Automate regression testing Detect design errors Support certification and standards 2

MBD for Embedded Software Development A widely used engineering approach for designing, analyzing, and implementing embedded software Automotive OEMs and Suppliers Aero & Defense Industrial automation & machinery Robotics, and more 3

A Span of Systems Tightly coupled Loosely coupled Symmetric / Asymmetric Multicore Software+Hardware Multiprocessor Compute Clusters Help me design, validate, and verify my algorithms for deployment on a distributed processing platform. 4

Support for Symmetric/Assymmetric Multicore Tightly coupled Loosely coupled Symmetric / Asymmetric Multicore (e.g., ARM, Simulink Real-Time) Software+Hardware Multiprocessor Compute Clusters Concurrent Execution Dialog Core occupancy report 5

Support for Processor+FPGA Architectures Tightly coupled Loosely coupled Symmetric / Asymmetric Multicore (e.g. ARM, Simulink Real-Time) Software+Hardware (e.g. Xilinx Zynq, Simulink Real-Time w/ FPGA) Multiprocessor (e.g. ARM + DSP, multiple Simulink Real-Time) Compute Clusters xpc Target + FPGA Xilinx Zynq 6

MBD for Hardware Development From Concept to Production RESEARCH REQUIREMENTS DESIGN Environment Models Physical Components s IMPLEMENTATION TEST & VERIFICATION Includes newer capabilities Built on the same MATLAB and Simulink foundation Has established success Automotive OEMs and Suppliers Aero & Defense Communications and electronics C, C++ VHDL, Verilog MCU, DSP, CPU FPGA INTEGRATION 7

FLIR Accelerates Development of Thermal Imaging FPGA Challenge Accelerate the implementation of advanced thermal imaging filters and algorithms on FPGA hardware Solution Use MATLAB to develop, simulate, and evaluate algorithms, and use HDL Coder to implement the best algorithms on FPGAs Results Time from concept to field-testable prototype reduced by 60% Enhancements completed in hours, not weeks Code reuse increased from zero to 30% Link to user story Raw image (left) and image after applying filter developed with HDL Coder (right). With MATLAB and HDL Coder we are much more responsive to marketplace needs. We now embrace change, because we can take a new idea to a real-time-capable hardware prototype in just a few weeks. There is more joy in engineering, so we ve increased job satisfaction as well as customer satisfaction. Nicholas Hogasten FLIR Systems 8

Wolfson Microelectronics Accelerates Audio Hub Design Verification Challenge Develop a multipath, multichannel audio hub for smartphones Solution Use Simulink to model and simulate the DSP design and use HDL Coder to generate bit-true Verilog models for verification of the digital implementation Results Months of hand-coding eliminated Datapath verification coverage increased to 100% Debugging process accelerated by 20% Link to user story Wolfson Microelectronics digital audio hub. For development of the world s first highly optimized digital audio hub solution, Simulink and HDL Coder were the best options. The design and verification flow we applied using MathWorks tools scales well and provides the route to build more complex DSP and signal mixing paths. Brian Paisley Wolfson Microelectronics 9

Support for Processor+FPGA Architectures Tightly coupled Loosely coupled Symmetric / Asymmetric Multicore (e.g. ARM, Simulink Real-Time) Software+Hardware (e.g. Xilinx Zynq, Simulink Real-Time w/ FPGA) Multiprocessor (e.g. ARM + DSP, multiple Simulink Real-Time) Compute Clusters xpc Target + FPGA Xilinx Zynq ZedBoard 10

Model-Based Design for Zynq: New Challenges How do I model interconnect? How do I partition my design? How do I generate IP Core with AXI interface? How do I write the driver for the IP Core? How do I easily integrate the IP Core with the synthesis tool like Vivado? 11

Partitioning and mapping for distributed execution 1. Express concurrency (target independent) Task Task Task 1554PE4 3. Map & evaluate I T E R A T E Scheduler Core Core CPU FPGA 2. Express target architecture and configuration Channel 12

AXI-lite Isolation Example: Design a motor controller Processing System 1 khz Cortex -A9 Programmable Logic 10 MHz Motor FMC Card Velocity Control Six-Step Commutation PWM Inverter Module Velocity Estimate Hall Hall Interface Open-source LINUX Period Ethernet C code HDL code 13

Design with simulation Simulation Simulink Prototype Production Model Model Motor Model 14

Design with simulation System Simulation Testbench Model: Provides test stimulus, integrates controller with physical model of plant, predicts system dynamics with continuous time solver, instruments/logs signals C Specification Model HDL Specification Model 15

Reuse components to prototype on hardware Simulation Prototype Production Simulink Model Model Embedded Coder HDL Coder ARM C Linux Driver AXI Bus AXI Interface HDL Prog. Logic Motor Model Motor 16

Generate bitstream and interface Simulation Prototype Production Simulink Model Model Embedded Coder HDL Coder ARM C Linux Driver AXI Bus AXI Interface HDL Prog. Logic Motor Model Motor 17

Generate bitstream and interface HDL Specification Model + Zynq Support Package: Generates algorithmic code, wraps into an IP Core, and integrates into MathWorks provided project for programmable logic HDL Coder + Zynq Support Package HDL Bitstream HDL Interface Model 18

Vivado IP Integrator Support for Zynq R2014b Integrate Xilinx Vivado IP Integrator tool flow into HDL Workflow Advisor Insert the generated IP core into Vivado Zynq system design Build and Program Zynq board AXI4 AXI4-Lite Accessible Registers from MATLAB/ Simulink Programmable Logic IP Core External Ports 19

Target Independence AND Optimization Options Expose vendor-provided attributes Currently implemented for some blocks (* use_dsp48 = yes/no *) wire signed [w:0] out ; assign out = a * b ; (* multstyle = dsp/logic *) wire signed [w:0] out ; assign out = a * b ; Infrastructure to support more, available to block authors 20

Generate ARM executable Simulation Prototype Production Simulink Model Model Embedded Coder HDL Coder ARM C Linux Driver AXI Bus AXI Interface HDL Prog. Logic Motor Model Motor 21

Generate ARM executable ARM Prototype Specification Model + Zynq Support Package Generates algorithmic code and automates integration with MathWorks project for ARM. Model acts as graphical user interface to hardware (switches, sliders, scopes) Embedded Coder + Zynq Support Package C Specification Model HDL Interface Model 22

C Code Generation for ARM Cortex-A9 Automatic AXI Interface generation Multi-threaded Linux code Code optimizations using ARM Neon intrinsics 23

Performance Profiling On desktop profiling Tasks execution time on desktop machines On target profiling Tasks execution time when running on target SIL/PIL based profiling Functions and tasks execution time when running in-the-loop type of simulations 24

Performance Measurements and Resource Usage CPU Execution profiler FPGA Resource report and critical path highlighting 25

AXI4-Lite Processor-In-the-Loop (External Mode) Control Tune parameters Gather real-time results Control IPCore from Simulink TCP/IP AXI4-Lite Blocks IP Core Registers C ARM Cortex-A9 MP (Running Linux) FPGA IPCore 26

From simulation to prototype to production Simulink ARM ARM Model Embedded Coder C Linux Driver Vivado C Linux Driver System Code AXI Bus AXI Bus Model HDL Coder AXI Interface HDL Vivado AXI Interface HDL IP1 IP2 IP3 Prog. Logic Programmable Logic Motor Model Motor Motor System 27

And more? Tightly coupled Loosely coupled Symmetric / Asymmetric Multicore (e.g., ARM, Simulink Real-Time) Software+Hardware (e.g., Xilinx Zynq, Simulink Real-Time w/ FPGA) Multiprocessor (e.g., ARM + DSP, multiple Simulink Real-Time, other MPSoC platforms) Compute Clusters Target authoring 28

Tooling for MPSoC Development Opportunities and Questions 29

Summary Model-Based Design, using MATLAB and Simulink, is well-established for embedded software development MBD use is growing for FPGA prototyping and development MATLAB and Simulink now have fundamental capabilities for hardware/software co-design We seek your input: What do you need in a MPSoC development platform? 30