fast fpga resource estimation paul schumacher & pradip jha xilinx, inc

Post on 16-Dec-2015

218 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Fast FPGAResource EstimationPaul Schumacher & Pradip Jha

Xilinx, Inc.

Outline

Motivations

Estimation Details

Results, Examples, & Demo

Conclusions & Future Improvements

The Need for More Information

Logic Utilization: Number of Slice Flip Flops: 301 out of 12,288 2% Number of 4 input LUTs: 900 out of 12,288 7%Logic Distribution: Number of occupied Slices: 498 out of 6,144 8%Total Number 4 input LUTs: 920 out of 12,288 7% Number used as logic: 900 Number used as a route-thru: 20 Number of bonded IOBs: 21 out of 320 6% Number of BUFG/BUFGCTRLs: 1 out of 32 3% Number used as BUFGs: 1 Number used as BUFGCTRLs: 0

Total equivalent gate count for design: 8,944

How are these resources being used?!?

Virtex®-6 FPGA

®

Exemplary FPGA Design Flow

HLL Definition

Optimization

RTL Generation

Synthesis & Simulation

Constraints met?

Place & Route

Y

N

FPGA Bitstream

Issue #1: Perspective– Overlook vast design space from high level

– Your implementation: very low level

– You need to deftly navigate both levels

Issue #2: Time– Designing can be very iterative process

– Performing what if scenarios can be costly

– Possible tradeoffs: speed vs. accuracy

Exemplary FPGA Design Flow

High-Level Estimation

HLL Definition

Optimization

RTL Generation

Synthesis & Simulation

Constraints met?

Place & Route

Y

N

FPGA Bitstream

In-depth information– Supply perspective desired by designers

– Provide context: where, when, why

Immediate feedback– Offer quick estimations

– Increasing benefits with multiple runs

What Do We Have?

Provides estimated FPGA resources of RTL designs– Without running synthesis– All resources reported– All FPGA families supported

Benefits– Fast: 100x faster than synthesis– Accurate: 15.2% average error– Transparent: in default RTL flow– Useful: help user select part, etc.

Released with ISE® 11

PlanAhead™

Resource Estimation Tool Flow

User-provided input– RTL source code

– Settings (e.g., FPGA family)

– Tcl script (batch mode)

Obtain netlist from HDL parser/elaborator

Estimate each macro in netlist

Refine using synthesis modeling

Estimation output– Interactive database (GUI)

– Report files (XML, Excel)

HDL Source Code

Library Characterization

HDL Parser/Elaborator

Design Netlist

Macro-Level Estimations

Refinements

Estimation Database

PlanAhead Tool

Benchmark Results

FPGA

Resource

Post-Map Estimation Error (Avg.)*

Slices 15.2%

LUTs 15.6%

Flip-Flops 11.5%

BlockRAMs 6.4%

DSP48s 2.2%

Run-Time** 17.2 sec

* Using suite of 100 customer designs across three FPGA families** Run-time includes HDL parser/elaborator + estimation

Estimation Run-Time

Demo: MPEG-4 Decoder

PlanAhead Integration

Resources by Function

Resources by Hierarchy

Results: MPEG-4 Decoder

FPGA Family Comparison Memory Comparison

Both experiments performed in less than one minute!

QCIF CIF 4CIF 720p 1080p

Estimation Use Models

Early in design: immediate feedback

Later in design: “hot spot” identification

Design space exploration (DSE)

Increased abstraction level

Design benchmarking & comparison

Conclusions

Resource estimator integrated into PlanAhead Provides detailed analysis of design

– Breakdown of resources by functionality & hierarchy– Statistics on memories and bit widths

Future releases– Improved QoR– Estimation of other requested design budgets– Integration with other tools

Contact us with any questions!– Email: {paul.schumacher, pradip.jha}@xilinx.com

top related