Best Practises for LabVIEW FPGA Design Flow. uk.ni.com ireland.ni.com



Similar documents
Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai Jens Onno Krah

Medical Device Design: Shorten Prototype and Deployment Time with NI Tools. NI Technical Symposium 2008

How To Develop An Iterio Data Acquisition System For A Frustreo (Farc) (Iterio) (Fcfc) (For Aterio (Fpc) (Orterio).Org) (Ater

BUILD VERSUS BUY. Understanding the Total Cost of Embedded Design.

Introduction to the NI Real-Time Hypervisor

Best Practices for Deploying, Replicating, and Managing Real-Time and FPGA Applications. ni.com

7a. System-on-chip design and prototyping platforms

Basics of Simulation Technology (SPICE), Virtual Instrumentation and Implications on Circuit and System Design

NI LabVIEW for CompactRIO Developer s Guide

Design of a High Speed Communications Link Using Field Programmable Gate Arrays

Multicore Programming with LabVIEW Technical Resource Guide

Embedded System Deployment and Management

Bioreactor Process Plant Powered by NI LabVIEW and NI CompactRIO

Rapid System Prototyping with FPGAs

How To Use First Robot With Labview

Lab View with crio Tutorial. Control System Design Feb. 14, 2006

How To Secure Your Computer With Libreware Libreroview (Windows) And Libreros (Windows 2) (Windows 3.5) (For Windows) (Powerpoint) (Networking)

What s New in Mike Bailey LabVIEW Technical Evangelist. uk.ni.com

Eli Levi Eli Levi holds B.Sc.EE from the Technion.Working as field application engineer for Systematics, Specializing in HDL design with MATLAB and

Open Flow Controller and Switch Datasheet

Department of Electrical and Computer Engineering Ben-Gurion University of the Negev. LAB 1 - Introduction to USRP

Nutaq. PicoDigitizer 125-Series 16 or 32 Channels, 125 MSPS, FPGA-Based DAQ Solution PRODUCT SHEET. nutaq.com MONTREAL QUEBEC

High-Level Synthesis for FPGA Designs

Architectures and Platforms

The new frontier of the DATA acquisition using 1 and 10 Gb/s Ethernet links. Filippo Costa on behalf of the ALICE DAQ group

Von der Hardware zur Software in FPGAs mit Embedded Prozessoren. Alexander Hahn Senior Field Application Engineer Lattice Semiconductor

Seeking Opportunities for Hardware Acceleration in Big Data Analytics

9/14/ :38

THREE YEAR DEGREE (HONS.) COURSE BACHELOR OF COMPUTER APPLICATION (BCA) First Year Paper I Computer Fundamentals

Software Development with Real- Time Workshop Embedded Coder Nigel Holliday Thales Missile Electronics. Missile Electronics

AN FPGA FRAMEWORK SUPPORTING SOFTWARE PROGRAMMABLE RECONFIGURATION AND RAPID DEVELOPMENT OF SDR APPLICATIONS

DAC Digital To Analog Converter

Design and Verification of Nine port Network Router

AGIPD Interface Electronic Prototyping

Simplifying Embedded Hardware and Software Development with Targeted Reference Designs

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

Computer Graphics Hardware An Overview

Summer of LabVIEW The Sunny Side of System Design

FPGA-based MapReduce Framework for Machine Learning

System on Chip Platform Based on OpenCores for Telecommunication Applications

Technical Training Module ( 30 Days)

Echtzeittesten mit MathWorks leicht gemacht Simulink Real-Time Tobias Kuschmider Applikationsingenieur

System Considerations

Non-Data Aided Carrier Offset Compensation for SDR Implementation

HMI EMBEDDED SYSTEM DESIGN AS A FUNCTION OF TECU

Fondamenti su strumenti di sviluppo per microcontrollori PIC

GnuRadio CONTACT INFORMATION: phone: fax: web:

What is a System on a Chip?

Quartus II Software Design Series : Foundation. Digitale Signalverarbeitung mit FPGA. Digitale Signalverarbeitung mit FPGA (DSF) Quartus II 1

Embedded Component Based Programming with DAVE 3

Application Note: AN00141 xcore-xa - Application Development

[Download Tech Notes TN-11, TN-18 and TN-25 for more information on D-TA s Record & Playback solution] SENSOR PROCESSING FOR DEMANDING APPLICATIONS 29

INTRODUCTION TO DIGITAL SYSTEMS. IMPLEMENTATION: MODULES (ICs) AND NETWORKS IMPLEMENTATION OF ALGORITHMS IN HARDWARE

Linux. Reverse Debugging. Target Communication Framework. Nexus. Intel Trace Hub GDB. PIL Simulation CONTENTS

Introduction to Xilinx System Generator Part II. Evan Everett and Michael Wu ELEC Spring 2013

Chapter 13. PIC Family Microcontroller

Example-driven Interconnect Synthesis for Heterogeneous Coarse-Grain Reconfigurable Logic

Introduction to Programmable Logic Devices. John Coughlan RAL Technology Department Detector & Electronics Division

LogiCORE IP AXI Performance Monitor v2.00.a

Chapter 13: Verification

National Instruments MIMO Technology Demonstration

ni.com Remote Connectivity with LabVIEW

IMPLEMENTATION OF FPGA CARD IN CONTENT FILTERING SOLUTIONS FOR SECURING COMPUTER NETWORKS. Received May 2010; accepted July 2010

Ingar Fredriksen AVR Applications Manager. Tromsø August 12, 2005

Computer Organization and Components

DESIGN AND VERIFICATION OF LSR OF THE MPLS NETWORK USING VHDL

Aims and Objectives. E 3.05 Digital System Design. Course Syllabus. Course Syllabus (1) Programmable Logic

NI Platform for automotive measurement and test applications

SDLC Controller. Documentation. Design File Formats. Verification

Reconfigurable Architecture Requirements for Co-Designed Virtual Machines

ZigBee Technology Overview

Lab 1: Introduction to Xilinx ISE Tutorial

A Real Time, Object Oriented Fieldbus Management System

10/100/1000Mbps Ethernet MAC with Protocol Acceleration MAC-NET Core with Avalon Interface

Model-based system-on-chip design on Altera and Xilinx platforms

Serial port interface for microcontroller embedded into integrated power meter

Agenda. Michele Taliercio, Il circuito Integrato, Novembre 2001

AN3998 Application note

Lab 3: Introduction to Data Acquisition Cards

Notes and terms of conditions. Vendor shall note the following terms and conditions/ information before they submit their quote.

Getting Started with Embedded System Development using MicroBlaze processor & Spartan-3A FPGAs. MicroBlaze

RAPID PROTOTYPING OF DIGITAL SYSTEMS Second Edition

System Design Issues in Embedded Processing

White Paper FPGA Performance Benchmarking Methodology

Figure 1.Block diagram of inventory management system using Proximity sensors.

Digital Systems Design! Lecture 1 - Introduction!!

Freescale Semiconductor, Inc. Product Brief Integrated Portable System Processor DragonBall ΤΜ

WiSER: Dynamic Spectrum Access Platform and Infrastructure

ni.com/sts NI Semiconductor Test Systems

AND8336. Design Examples of On Board Dual Supply Voltage Logic Translators. Prepared by: Jim Lepkowski ON Semiconductor.

Networking Remote-Controlled Moving Image Monitoring System

Programmable Logic Controller PLC

Eureka Technology. Understanding SD, SDIO and MMC Interface. by Eureka Technology Inc. May 26th, Copyright (C) All Rights Reserved

Designing an efficient Programmable Logic Controller using Programmable System On Chip

Introduction to Digital System Design

Software Engineering Best Practices. Christian Hartshorne Field Engineer Daniel Thomas Internal Sales Engineer

The Evolution of CCD Clock Sequencers at MIT: Looking to the Future through History

Open Architecture Design for GPS Applications Yves Théroux, BAE Systems Canada

Tutorial for MPLAB Starter Kit for PIC18F

Transcription:

Best Practises for LabVIEW FPGA Design Flow 1

Agenda Overall Application Design Flow Host, Real-Time and FPGA LabVIEW FPGA Architecture Development FPGA Design Flow Common FPGA Architectures Testing and Compilation 2

Application Development with LabVIEW Requirements Gathering Application Architecture Development Testing & Validation Deployment 3

Application Development with LabVIEW Requirements Gathering Application Architecture Development Testing & Validation Deployment 4

Real-Time/FPGA Applications Control System Automated Test Safety & Reliability 5

RIO Architecture Host PC RT Target FPGA Inter-process Communication Ethernet Communication Inter-process Communication Inter-process Communication 6

Why use an Field Programmable Gate Array (FPGA)? Execution: Speed, Determinism and Reliability Faster control Custom high speed protocols High speed interlocking/monitoring/alarming Signal Processing Fast signal processing Process information from other PXI modules via peer to peer Access a streamed waveform with custom filtering Application Requirement Pre-built FPGA IP Application is a highly parallel process Using Compact RIO and therefore FPGA 7

FPGA Design Flow 8

FPGAs are Dataflow Systems E F Implementing Logic on FPGA: F = {(A+B)CD} E A B C D 9

FPGAs are Dataflow Systems E F Implementing Logic on FPGA: F = {(A+B)CD} E A B C D 10

FPGAs are Dataflow Systems Implementing Logic on FPGA: F = {(A+B)CD} E LabVIEW FPGA Code E F A B C D 11

FPGAs are Parallel Dataflow Systems E F A B C D Z W X Y 12

FPGAs are Parallel Dataflow Systems E F A B C D Z W X Y 13

FPGA vs Microprocessor Development Task Microprocessor FPGA Paradigm Procedural Parallel Execution Executed commands Logic gates, No OS Maths Up to 64-bit Double Integer & Fixed Threading 10s threads per app Infinite, by design Timing Millisecond Nanosecond Memory Very large Small Compilation Time Near instant 10min..5 Hours...21 Hours.. Development Environment Graphical (LabVIEW) Graphical (LabVIEW FPGA) 14

Using the LabVIEW Project Windows System LabVIEW RT System FPGA Windows VI Network Comm. Host VI Comm. FPGA VI LabVIEW for Windows LabVIEW Real- Time LabVIEW FPGA 15

FPGA Design Flow Requirements Pre-compile Verification Floor Planning and Placement Architectural Design Logic Synthesis Routing Compilation All handled by LV and Xilinx compiler tools Logic Design Formal Verification Formal Post Layout Timing Analysis Component Integration Post Synthesis Timing Analysis Final Test Harness 16

Architectural Design 17

Architectural Design for FPGA Host Application Where to begin?... Look at your requirements Break down your problem Define purpose of the FPGA Define its inputs and outputs Define your internal architecture Other device(s) Realtime FPGA Component Component Unit Unit Component Component 18

FPGA Architecture: Interfaces 3 main interfaces Interface to external world i.e., IO (C-Series modules or other) Interface to control system i.e., RT host Don t forget... Other devices via Peer to peer data streaming FPGA RT IO FPGA 19

External Interfaces IO is defined by FPGA front end modules Add to project Drop I/O nodes onto the block diagram LV FPGA takes care of the rest RIO advanced funtions (e.g., FlexRIO) Access individual I/O pins via CLIP nodes, at 40 MHz within SCTL Access to onboard RAM at high data rates 20

Data to the Host Method 1 The Read/Write Controls method can be used for communicating current value data Host VI FPGA VI 21

Data to the Host Method 2 DMA FIFOs are an efficient mechanism for streaming data from the FPGA to RTOS Most RIO hardware targets have 3 dedicated DMA channels 22

FPGA Architectures Relatively easy and simple Getting data from C-Series modules into LV Real-Time Medium complexity Streaming data, perhaps synchronised with host/other devices, fast control loops Advanced FPGA designs Integrating existing IP, custom communication protocols, high speed deterministic processing, pipeline processing 23

Higher level communication with FPGA Scan Mode Interface Hybrid Mode 24

Simple: FPGA as a basic interface to I/O I/O to and from C-Series modules in a CompactRIO Timing Engine Communication Loop 25

Medium complexity: RIO Control LabVIEW 2012 FPGA Control on CompactRIO (Sample Project) 26

Medium complexity: Techniques Architecture Data Streams: DMA FIFOs to create continuous sample/finite length (CompactRIO Waveform Reference library) State Machine: Enum case-statement control Fast Control: Input -> Fast signal processing -> Output Truly parallel :Utilitise FPGA real power, multiple processing loops Implementation Configuration and setup: Use front panel controls/indicators Group like data together: Clusters (data rates, PID gains) Watchdogs: Monitor communication Check error conditions: FIFO timeout, sample rate overruns 27

Advanced FPGA design: Example State machine control with and interupt driven DMA FIFOs, custom analog input and outputs running @ 80 MHz, PIDs, filtering... Custom Analog Input clocked by FlexRIO CLK input via CLIP node @ 80 MHz (SCTL) TS FIFO A Tx Control State Machine STCL clocked @ 40 MHz (basic enum-case statement state machine) IRQ driven data control Controls data flow to host Application Processing Logic SCTL clocked @ 40 MHz TS FIFO A Rx Logic and addressing Dual port memory blocks DMA FIFOs TS FIFO A Tx Custom Analog Output clocked by derived (x2) CLK @ 80 MHz (SCTL) (with interpolation) TS FIFO A Rx Lower speed peripheral IO via SPI and I2C comms SCTL clocked @ 40 MHz Custom Custom PID PIDs with filtering (multiple ticks) @~100kHz with custom filtering Clocked @ ~100 khz 28

Advanced designs: Techniques Architecture State machine controlled data flow IRQ driven DMA FIFO IP Integration Custom filtering (COREGEN tools, LV Digital Filter Design Toolkit) Custom communication protocols Implementation Use single cycle timed loops (SCTLs) Communicate across multiple clock domains P2P streaming from other devices Fully utilise DMA FIFOs bandwidth 29

Compile Synthesis Compilation VI DFIR LLVM EXE LabVIEW Compiler FPGA VI HDL Netlist Bitfile LabVIEW Back End Xilinx ISE 30

Design Flow Summary Break down your problem into components Identify FPGA interfaces and internal architecture Highly dependant on specific application requirements Use reference designs as examples Implementation Design and test algorithms first on host computer (most resources) Translate design into LV FPGA (bearing in mind the FPGA constraints) Testing the code Pre-compile Test code on host then with random or simulated inputs minimise number of compiles Create unit tests for individual modules and a full system test harness using host interface techniques 31

Design Flow Best Practises Modularise your code to ease debug, testing and code re-use Choose the right architecture for you Keep IO on top level diagram Use space efficiently (numeric sizing, FXP etc) Limit front panel objects Add safe error states and communication watchdogs Manage interface bandwidth e.g. data rates and FIFO sizes Decimate higher rates (with filtering if necessary) to rate required on RT Validate throughout design especially pre-compile Process where most appropriate (RT, CPU or FPGA) Parallel computation on FPGA vs. complex floating point arithmatic on RT 32

LabVIEW RIO Evaluation Kit 90-day LabVIEW FPGA & LabVIEW Real-Time evaluation Step-by-step tutorials and configuration wizard NI RIO evaluation device with daughter card for easy access to I/O Orderable now at ni.com/rioeval 33

Build on what you have learned today Recommended Courses LabVIEW Core Courses LabVIEW FPGA LabVIEW RealTime 1 LabVIEW FPGA Performance 34

Questions? 35