Design and Verification of FPGA Applications

Similar documents
Design and Verification of FPGA and ASIC Applications Graham Reith MathWorks

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

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

Making the Most of your MATLAB Models to Improve Verification

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

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

Accelerating FPGA/ASIC Design and Verification

Introduction to C and HDL Code Generation from MATLAB

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

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

Connecting MATLAB & Simulink with your SystemVerilog Workflow for Functional Verification

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

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

Accelerate FPGA Prototyping with

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

Method We follow- How to Get Entry Pass in SEMICODUCTOR Industries for 3rd year engineering. Winter/Summer Training

Modeling a 4G LTE System in MATLAB

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

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

Simulink Design Environment

Simulation, prototyping and verification of standards-based wireless communications

Modeling and Verifying Mixed-Signal Designs with MATLAB and Simulink

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

Optimize DSP Designs and Code using Fixed-Point Designer

Hardware and Software Co-Design for Motor Control Applications

Design and Verify Embedded Signal Processing Systems Using MATLAB and Simulink

Design and Verify Embedded Signal Processing Systems Using MATLAB and Simulink

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

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

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

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

Targeting Motor Control Algorithms to System-on-Chip Devices

Model-Based Design for Video/Image Processing Applications

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

Hardware and Software Co-Design for Motor Control Applications

System-on-Chip Design for Wireless Communications

Implementation and Verification Daniel MARTINS Application Engineer MathWorks

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

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

An introduction to CoCentric

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

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

What s New in Simulink in R2015b and R2016a

FPGA for Software Engineers

System Level Design with IBM PowerPC Models

Mentor Graphics Solutions Enable Fast, Efficient Designs for Altera s FPGAs. Fall 2004

Extending the Power of FPGAs

Avnet Speedway Design Workshop

Hardware and Software Co-Design for Motor Control Applications

Early Models in Silicon with SystemC synthesis

Simulink Matlab To Vhdl Route For Full Custom Fpga Rapid

FPGA Based Digital Design Using Verilog HDL

Abstraction Layers for Hardware Design

Reprint. Transmission Systems Prototyping based on Stateflow/Simulink Models

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

Designing and Analysing Power Electronics Systems Using Simscape and SimPowerSystems

SDR Spring KOMSYS-F6: Programmable Digital Devices (FPGAs)

Complex Signal Processing Verification under DO-254 Constraints by François Cerisier, AEDVICES Consulting

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

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

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

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

Designing and Targeting Video Processing Subsystems for Hardware

Comprehensive AMS Verification using Octave, Real Number Modelling and UVM

Performance Verification for ESL Design Methodology from AADL Models

Hardware Design and Simulation for Verification

Hardware Modelling. Design Flow Overview. ECS Group, TU Wien

Cadence SystemC Design and Verification. NMI FPGA Network Meeting Jan 21, 2015

Lorenz Kolb, Missing Link Electronics

Advanced FPGA Design. Jan Pospíšil, CERN BE-BI-BP ISOTDAQ 2018, Vienna

Cover TBD. intel Quartus prime Design software

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

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

Cover TBD. intel Quartus prime Design software

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

ESL design with the Agility Compiler for SystemC

MATLAB/Simulink in der Mechatronik So einfach geht s!

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

Graph-Based IP Verification in an ARM SoC Environment by Andreas Meyer, Verification Technologist, Mentor Graphics Corporation

Introduction to DSP/FPGA Programming Using MATLAB Simulink

Vivado HLx Design Entry. June 2016

Basic Xilinx Design Capture. Objectives. After completing this module, you will be able to:

Co-Emulation of Scan-Chain Based Designs Utilizing SCE-MI Infrastructure

Intro to High Level Design with SystemC

World Class Verilog & SystemVerilog Training

Moving MATLAB Algorithms into Complete Designs with Fixed-Point Simulation and Code Generation

Case Study on DiaHDL: A Web-based Electronic Design Automation Tool for Education Purpose

Verilog for High Performance

FPGA design with National Instuments

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

ZeBu : A Unified Verification Approach for Hardware Designers and Embedded Software Developers

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

: : (91-44) (Office) (91-44) (Residence)

Philip Andrew Simpson. FPGA Design. Best Practices for Team-based Reuse. Second Edition

Appendix SystemC Product Briefs. All product claims contained within are provided by the respective supplying company.

UVM for VHDL. Fast-track Verilog for VHDL Users. Cont.

MODEL BASED HARDWARE DESIGN WITH SIMULINK HDL CODER

Will Everything Start To Look Like An SoC?

Vivado Design Suite User Guide

INDUSTRIAL TRAINING: 6 MONTHS PROGRAM TEVATRON TECHNOLOGIES PVT LTD

Transcription:

Design and Verification of FPGA Applications Giuseppe Ridinò Paola Vallauri MathWorks giuseppe.ridino@mathworks.it paola.vallauri@mathworks.it Torino, 19 Maggio 2016, INAF 2016 The MathWorks, Inc. 1

Agenda -Based Design for FPGA Generating HDL Code from MATLAB and Simulink For prototyping and production Optimizing code for efficiency Verifying HDL Designs with MATLAB and Simulink Co-simulation with HDL simulators FPGA-in-the-Loop verification Verifying HDL Designs outside MATLAB and Simulink Generating code for integration with SystemC/TLM and SystemVerilog/DPI-C 2

-Based Design for FPGA RESEARCH REQUIREMENTS ALGORITHM DESIGN Environment s Digital s Analog s RF s Timing and Control Logic Algorithms ALGORITHM IMPLEMENTATION C/C++ HDL RF & Analog MCU DSP FPGA ASIC Transistor ALGORITHM TEST & VERIFICATION multi-domain systems Explore and optimize system behavior Collaborate across multidisciplinary teams Generate bit-accurate models Explore and optimize implementation tradeoffs Generate efficient code INTEGRATION Verify designs to detect errors earlier in development Reuse testbenches Automate regression testing 3

It s about Collaboration Usually, many engineers get involved in different parts of the design flow: Systems Verification Algorithms Firmware Etc. Each brings valuable expertise from their discipline -Based Design aids collaboration across the project integrating the workflow providing the backbone of a common modelling environment 4

Algorithm A Typical Structure Data Source Environment Analysis Algorithmic System-level Testbench Algorithm interacts with outside environment through other components. Algorithm is stimulated with data Algorithm performance is analysed. 5

Algorithm Algorithm Development Generation of HDL Source Code Data Source HDL Coder Generation of synthesible RTL HDL (VHDL or Verilog) Analysis Environment Support for MATLAB Simulink Stateflow Algorithmic System-level Testbench RTL HDL (VHDL, Verilog) HDL Coder Workflow Advisor Guides through process Preparing model for generation of HDL Configuring HDL Generation options Integrated with FPGA synthesis tools for timing annotation on model Configurations for turnkey FPGA targets and IP Core generation 6

Simulink Library Support for HDL Generation HDL Supported Blocks ~180 blocks supported Core Simulink Basic and Array Arithmetic, Look-Up Tables, Signal Routing (Mux / Demux, Delays, Selectors), Logic & Bit Operations, Dual and single port RAMs, FIFOs, CORDICs, Busses Digital Signal Processing NCOs, FFTs, Digital Filters (FIR, IIR, Multirate, Adaptive, Multi-channel), Rate Changes (Up & Down Sample), Statistics (Min / Max) Communications Pseudo-random Sequence Generators, Modulators / Demodulators, Interleavers / Deinterleavers, Viterbi Decoders, Reed Solomon Encoders / Decoders, CRC Generator / Detector 7

MATLAB & Stateflow for HDL Generation HDL Supported Blocks MATLAB Relevant subset of the MATLAB language for modeling and generating HDL implementations Useful MATLAB Function Block Design Patterns for HDL Stateflow ing FSMs (Mealy, Moore) Different modeling paradigms (Graphical Methods, State Transition Tables, Truth Tables) Integrate MATLAB code 8

HDL code generation 9

Critical Path Highlighting and Design Review Feedback in Simulink Review results in synthesis tools 10

Algorithm Algorithm Verification Data-driven Verification of HDL Source Code Data Source Analysis Algorithmic System-level Testbench Environment Stand-alone HDL testbench Stand-alone Executable in any 3 rd -party HDL simulator Self-contained Instantiated algorithmic RTL HDL (DUT) Input stimuli stream at DUT top-level interface Expected output stream at DUT top-level interface Self-testing Checks on bit and cycle accuracy Handwritten or generated code input stimuli RTL HDL (VHDL, Verilog) == With HDL Coder, RTL HDL and standalone testbenches are created automatically expected outputs Stand-alone HDL Testbench 11

Algorithm Algorithm Verification Co-simulation for Verification of HDL Source Code Data Source Environment Co-simulation with 3 rd -party HDL simulator Reuse of existing testbench in MATLAB/Simulink Analysis == Co-Sim Algorithmic System-level Testbench HDL code execution in 3 rd -party HDL simulator Flexible HDL sources Handwritten or generated code RTL HDL (VHDL, Verilog) cosimwizard (HDL Verifier), HDL Workflow Advisor (HDL Coder) HDL Verifier Automated generation of co-simulation infrastructure Automatic handshaking Combined analysis and debugging in both simulators 3 rd -party HDL Simulator 12

Co-simulation 13

Algorithm Algorithm Verification FPGA-in-the-Loop Verification of HDL Source Code Data Source Prototype your algorithm in hardware connected to the system-level test environment Analysis FIL Algorithmic System-level Testbench Environment filwizard (HDL Verifier), HDL Workflow Advisor (HDL Coder) FIL simulation with FPGA development board Reuse existing testbench HDL code execution on FPGA Handwritten or generated HDL code Automated generation of co-simulation infrastructure Encapsulation of algorithm within GBit Ethernet MAC, or JTAG Automatic handshaking HDL Verifier HDL 14

FPGA-in-the-Loop Target Device 15

FPGA-in-the-Loop Enable regression testing with FPGA-in-the-loop simulation Re-use test benches for regression testing Integrate with Altera / Xilinx FPGA Development Boards Flexible test bench creation: closed loop, multi domain Also works with handwritten code 16

Key Takeaway Best Practice 1: Algorithm and System Design with Fixed-Point Quantization Analysis Best Practice 2: Automatic HDL Code Generation Best Practice 3: HDL Cosimulation Implement Design Best Practice 4: FPGA Hardware-in-the-Loop 17

Integrating with other Verification Activities Verification is the single biggest cost in hardware design Investment in developing simulations for verification SystemVerilog and UVM test frameworks SystemC/TLM virtual platforms Shift towards model-based verification Enabling techniques like Constrained Random testing Rather than recreate a behavioural model, we can reuse the assets developed in the system models in MATLAB & Simulink Maintains connection with earlier part of the flow Removes risk of manual error in test framework Avoids duplicating effort 18

Algorithm System Verification Reuse of models in SystemVerilog Testbench Data Source Environment Code generation translates models to other languages (e.g. C, HDL) Implementation code Verification models Analysis Algorithmic System-level Testbench For verification, C code generation is convenient analog and digital models Wider block and langauge support for C generation DPI-C DPI-C DPI-C DPI-C SystemVerilog Testbench Environment HDL Verifier Embedded Coder HDL Verifier extends code generation tools to provide wrappers for SystemVerilog DPI-C SystemC TLM 19

Integrating DPI-C/SV into Existing Testbench Using a public SystemVerilog Testbench example*, adapted to execute the DPI-C as a golden reference: * Example from MicroElectronics Student Group at the University of Porto: http://wiki.usgroup.eu/wiki/public/tutorials/svverification. 20

SoC-LEVEL TEST & VERIFICATION Integrated Verification -Based Design and SystemVerilog/SystemC RESEARCH REQUIREMENTS MODEL GENERATION SystemC Digital s Virtual Platform DPI-C ALGORITHM DESIGN Environment s Timing and Control Logic SPICE Analog s Algorithms ALGORITHM IMPLEMENTATION C/C++ HDL MCU DSP FPGA ASIC RF s RF Analog Transistor ALGORITHM TEST & VERIFICATION ALGORITHM INTEGRATION SoC-LEVEL INTEGRATION 21

AXI4-Lite Bus Embedded System Integration Zynq HW/SW Co-design Workflow Summary HW Design SW IP Core Generation AXI Lite Accessible registers FPGA IP Core Algorithm from MATLAB and Simulink External Ports Simulink SW I/O Driver Blocks SW Generate SW Interface Processor AXI Lite Accessible registers FPGA IP Core Algorithm from MATLAB and Simulink External Ports SW Interface Embedded System Project SW Build FPGA Bitstream 22

Summary -Based Design for FPGA Generating HDL Code from MATLAB and Simulink For prototyping and production Optimizing code for efficiency Verifying HDL Designs with MATLAB and Simulink Co-simulation with HDL simulators FPGA-in-the-Loop verification Verifying HDL Designs outside MATLAB and Simulink Generating code for integration with SystemC/TLM and SystemVerilog/DPI-C 23