FPGA Prototyping Primer

Similar documents
White Paper. S2C Inc Technology Drive, Suite 620 San Jose, CA 95110, USA Tel: Fax:

Electronic system-level development: Finding the right mix of solutions for the right mix of engineers.

Hybrid Platform Application in Software Debug

Agenda. Michele Taliercio, Il circuito Integrato, Novembre 2001

High Performance or Cycle Accuracy?

Virtual Platforms Addressing challenges in telecom product development

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

Rapid System Prototyping with FPGAs

Codesign: The World Of Practice

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

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

ELEC 5260/6260/6266 Embedded Computing Systems

Architectures and Platforms

Engineering Change Order (ECO) Support in Programmable Logic Design

VON BRAUN LABS. Issue #1 WE PROVIDE COMPLETE SOLUTIONS ULTRA LOW POWER STATE MACHINE SOLUTIONS VON BRAUN LABS. State Machine Technology

EEM870 Embedded System and Experiment Lecture 1: SoC Design Overview

Near Field Communication in the real world part III

Trace Port Analysis for ARM7-ETM and ARM9-ETM Microprocessors

Introduction to Digital System Design

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

Hardware Virtualization for Pre-Silicon Software Development in Automotive Electronics

Figure 1 FPGA Growth and Usage Trends

Modeling a GPS Receiver Using SystemC

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

White Paper FPGA Performance Benchmarking Methodology

System-on. on-chip Design Flow. Prof. Jouni Tomberg Tampere University of Technology Institute of Digital and Computer Systems.

Using Altera MAX Series as Microcontroller I/O Expanders

White Paper 40-nm FPGAs and the Defense Electronic Design Organization

on-chip and Embedded Software Perspectives and Needs

BY STEVE BROWN, CADENCE DESIGN SYSTEMS AND MICHEL GENARD, VIRTUTECH

What is a System on a Chip?

ARM Webinar series. ARM Based SoC. Abey Thomas

Prototyping ARM Cortex -A Processors using FPGA platforms

9/14/ :38

Embedded Development Tools

design Synopsys and LANcity

Modeling Latches and Flip-flops

How to design and implement firmware for embedded systems

All Programmable Logic. Hans-Joachim Gelke Institute of Embedded Systems. Zürcher Fachhochschule

Defining Platform-Based Design. System Definition. Platform Based Design What is it? Platform-Based Design Definitions: Three Perspectives

Eingebettete Systeme. 4: Entwurfsmethodik, HW/SW Co-Design. Technische Informatik T T T

Concurrent Hardware/Software Development Platforms Speed System Integration and Bring-Up

ESP-CV Custom Design Formal Equivalence Checking Based on Symbolic Simulation

Network connectivity controllers

High-Level Synthesis for FPGA Designs

Custom design services

Fundamentals of Information Systems, Fifth Edition. Chapter 8 Systems Development

White Paper Utilizing Leveling Techniques in DDR3 SDRAM Memory Interfaces

Software Life Cycle Processes

Digital Systems Design! Lecture 1 - Introduction!!

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

Design and Verification of Nine port Network Router

Manage Software Development in LabVIEW with Professional Tools

JTAG Applications. Product Life-Cycle Support. Software Debug. Integration & Test. Figure 1. Product Life Cycle Support

Contents. System Development Models and Methods. Design Abstraction and Views. Synthesis. Control/Data-Flow Models. System Synthesis Models

AVR151: Setup and Use of the SPI. Introduction. Features. Atmel AVR 8-bit Microcontroller APPLICATION NOTE

HARDWARE IMPLEMENTATION OF TASK MANAGEMENT IN EMBEDDED REAL-TIME OPERATING SYSTEMS

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

The Advanced JTAG Bridge. Nathan Yawn 05/12/09

Technical Note. Micron NAND Flash Controller via Xilinx Spartan -3 FPGA. Overview. TN-29-06: NAND Flash Controller on Spartan-3 Overview

Verification and Validation of Software Components and Component Based Software Systems

ARM Ltd 110 Fulbourn Road, Cambridge, CB1 9NJ, UK.

HMS Industrial Networks

Universal Flash Storage: Mobilize Your Data

From Bus and Crossbar to Network-On-Chip. Arteris S.A.

Measuring Resistance Using Digital I/O

Extending the Power of FPGAs. Salil Raje, Xilinx

high-performance computing so you can move your enterprise forward

A Hardware and Software Monitor for High-Level System-on-Chip Verification

FPGAs in Next Generation Wireless Networks

Hardware Acceleration for High-density Datacenter Monitoring

Embedded systems in the Masters education at KTH

Designing VM2 Application Boards

Hunting Asynchronous CDC Violations in the Wild

FPGAs for High-Performance DSP Applications

Pre-tested System-on-Chip Design. Accelerates PLD Development

evm Virtualization Platform for Windows

Testing of Digital System-on- Chip (SoC)

ESE566 REPORT3. Design Methodologies for Core-based System-on-Chip HUA TANG OVIDIU CARNU

Fundamentals of Measurements

EEC 119B Spring 2014 Final Project: System-On-Chip Module

Fastest Path to Your Design. Quartus Prime Software Key Benefits

FPGA Implementation of an Advanced Traffic Light Controller using Verilog HDL

DDR Memory Overview, Development Cycle, and Challenges

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

FPGA-Centric Functional Verification

Allegro Design Authoring

Java Programming (10155)

Technology Update White Paper. High Speed RAID 6. Powered by Custom ASIC Parity Chips

Ping Pong Game with Touch-screen. March 2012

VtRES Towards Hardware Embedded Virtualization Technology: Architectural Enhancements to an ARM SoC. ESRG Embedded Systems Research Group

Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming

Development With ARM DS-5. Mervyn Liu FAE Aug. 2015

Transcription:

FPGA Prototyping Primer S2C Inc. 1735 Technology Drive, Suite 620 San Jose, CA 95110, USA Tel: +1 408 213 8818 Fax: +1 408 213 8821 www.s2cinc.com

What is FPGA prototyping? FPGA prototyping is the methodology to prototype SoC and ASIC designs on FPGAs for hardware verification and for early software development. This methodology is sometimes referred also as ASIC prototyping or SoC prototyping. Prototyping SoC and ASIC designs on FPGAs has become a mainstream verification methodology for hardware design as well as a method for early software and firmware co-design. Why is it important to prototype? 1. With SoC designs becoming more complex than ever, designers are increasingly finding it difficult to rely only on software simulations to verify that their hardware design is correct -- due to both simulation speed and modeling accuracy limitations. Running your SoC design on a FPGA prototype is the most reliable way to ensure that your design is functionally correct. 2. But, hardware verification is no longer the number one reason why most designs today are prototyped on FPGAs. Early software and/or firmware development on FPGA prototypes, pre-silicon, has become more important as many unforeseen software bugs stem from the complexity of integrating operating system (OS), applications, and hardware. Most projects can't afford to wait until the silicon is back from the foundry to start software testing. An atspeed FPGA prototype allows for many extra months of rigorous software development and testing at the crucial software-hardware integration stage. 3. FPGA prototyping is also critical if your SoC design utilizes many commercial IPs. Prototyping on FPGAs will be your most reliable method to make sure all these IPs work well together. 4. FPGA prototypes can also be used as demo platforms to the SoC customers for getting them interested in the chip you build and allow you to work with them on improving features before chip tape-out. Current Challenges in FPGA Prototyping Long Bring-Up Time Designers need a clear board-testing strategy prior to manufacturing because there will be thousands of pins to test. Without a good test plan, it will be hard to pinpoint problems if the board does not operate according to specifications. The key question you should answer before you decide to build your own FPGA prototyping board is How long it will take to bring up the board and test thousands of IOs? In many cases, your

FPGA prototypes might require a re-spin in order to work, which may add up to 2 months to your project. Solution: Source a prototyping tool with comprehensive self-test capabilities to detect and deal with hardware issues as soon as they happen. Performance Designers always prefer to run the FPGA prototype at real-time or near real time speed to more closely approximate performance of the end product. FPGA prototyping performance might not be able to achieve the actual performance of the target SoC/ASIC. There are generally two reasons for this performance discrepancy: FPGA limitations and PCB board limitations. Solution to FPGA Limitations: Use different synthesis tools, tighten timing constraints, or modify your design. Solution to PCB board limitations: Work with a well-designed prototyping board with equal-length clock traces, equal length IOs, and stable power and ground to accommodate prototyping at high speeds. Impedance matching may also be needed for extreme high-performance IOs such as DDR memory interfaces. Reusability The ability to reuse your existing prototype or at least part of your prototype can save development time and lower implementation risk for future projects. SoC design sizes continue to grow as new semiconductor processes become available and consumers desire new application features. Your FPGA prototype will probably require upgrading as well. Many designers like to build the interface to external systems directly on the FPGA board. This approach may serve for single projects but renders both the FPGA and the peripheral interface unfit for reuse in other projects if the design size is larger or the

peripheral interface is different. Solution: Structure your FPGA prototyping system into independent FPGA and interface boards to create modularity that allows for a high degree of FPGA reusability. Design Partitioning Design partitioning is needed for designs that cannot fit into one FPGA. Partitioning problems arise when the number of FPGA pins is limited, and is further magnified as the number of FPGAs increases. There are generally two main issues to deal with: - How do you interconnect the IOs among multiple FPGAs on your prototype? - How do you partition your design to fit the architecture of your FPGA prototype board? Hand partitioning a design to multiple FPGAs is error-prone and time-consuming. Examples of potential problems include: insufficient number of pins, clock synchronizations, failure to meet performance expectations, and external pin entry point. Solution: Partition the design at the block-level, then utilize a userguided partitioning solution to quickly to arrive at an optimal result in terms of performance, area balancing, and enabling incremental revisions. Employing this type of integrated HW/SW prototyping system upholds interconnect quantity and quality (via HW) and automatic partitioning (via SW), thereby saving development time. Debug-ability Taking steps to ensure a design is debug friendly minimizes the time spent on debugging later on in the process/schedule. It's unlikely your design will work the first time after you download it to a FPGA. Your design might not be working because 1) the FPGA prototype itself has problems, 2) the design may have a problem and/or 3) an error has accrued during design compiling (e.g. wrong pin assignments). Ideally, you would first need a good testing method to identify if the hardware is running correctly and all the pins in the design are functioning normally. Then, either an External

Logic Analyzer and/or Internal Logic Analyze (e.g. Xilinx's Chipscope) would be needed to identify problems arising from design or mapping errors. This sometimes requires tedious work to get internal signals out to the boundary for external LA probing. Moreover, most internal logic analyzers today do not support debugging designs mapped to multiple FPGAs making your debugging job even more difficult. Solution: Select a prototyping system that includes self-test function capabilities and supports logic analyzers that can debug multiple FPGAs. Build-Your-Own vs. Off-The-Shelf: Which Is Right for You? Do you view the decision to build-or-buy your prototyping system as a short-term cost-driven tactic or part of your functional verification strategy -- with implications on future product development? For chip design companies that operate on huge economies of scale and adhere to a great degree of format-specific processes in their design flow, full custom capability may be important. However, given execution risk along with time and cost constraints - purchasing a proven prototyping system becomes hard to ignore and a much more compelling choice (especially for companies operating at less than huge economies of scale). Verification can consume from two-thirds to four-fifths of total development time. A mature off-the-shelf product provides guaranteed timing parameters, can be re-used for multiple designs, and comes with dedicated technical support minimizing the risks of porting a prototype that doesn't work according to specifications. The time spent on building a prototype from scratch is eliminated, along with associated non-recurring engineering costs, which translate to faster time-to-prototype and in the end, lower overall costs. FPGA Prototyping Design Flow - First Time Off-the-Shelf vs. Build-Your-Own Ready-made prototyping solutions have matured considerably in recent years, providing stable design environments and greater control through software and peripherals. The traditional build-your-own in-house modules may not only increase project time but also result in greater overall development costs.

FPGA Prototyping Design Flow - Reiteration SoC design specifications must often be modified due to market or technical reasons. Therefore, it is important to keep the FPGA prototyping environment flexible, in case such events occur. The diagram below illustrates the flow difference when a design undergoes significant changes.

Summary FPGA prototyping has many benefits including overcoming speed accuracy limitations from simulation, developing software and firmware much earlier, testing IP integration with high reliability, and creating demo platforms for early customer engagements. And although, FPGA has some perceived challenges, overcoming those challenges with the right prototyping solutions is easy and cost-effective leading to much faster time-to-market.