Download presentation
Presentation is loading. Please wait.
2
Tejas Bhatt and Dennis McCain Hardware Prototype Group, NRC/Dallas Matlab as a Development Environment for FPGA Design Tejas Bhatt June 16, 2005
3
Outline Requirements for Rapid Hardware Prototyping Requirements for Rapid Hardware Prototyping Matlab – As a Research and Development Tool Matlab – As a Research and Development Tool Fixed-point Design in Matlab Fixed-point Design in Matlab Matlab Based FPGA Design Flow Matlab Based FPGA Design Flow Conclusion Conclusion
4
Motivations for Prototyping Performance Measurement Performance Measurement –Real-time performance evaluation –Technology proof-of-concept –HW/SW partitioning & architecture trade-offs Product Development Product Development –Easier technology transfer –Early detection of implementation bottlenecks –Speed-up time-to-market Business Motives Business Motives –Marketing the technology –Technology demonstration –Technology assessment
5
Design Flow Requirements Rapid Transition: Algorithm HW Implementation Rapid Transition: Algorithm HW Implementation –Common platform for R & D –Stronger link between simulation & implementation –Common test-bench for floating-point and RTL Flexibility and Re-Programmability Flexibility and Re-Programmability –Supports ongoing research and improvements –Allows for parameter optimization –Allows evaluation of different architectures Simple Simple –Less time in verification simplified test-bench –Easier development e.g. fixed-point conversion –HW/SW co-simulation
6
FPGA for Prototyping High Processing Power High Processing Power –Handle complex algorithms –High through-put applications –Allows for a high degree of parallelism Fast Design Flow Fast Design Flow –Well-supported in EDA community –Easily reconfigured when design changes Re-Configurable Hardware Re-Configurable Hardware –No need for rigorous front-end verification Cost-Effective Compared to ASIC in small volumes Cost-Effective Compared to ASIC in small volumes
7
Matlab: A Research Tool Ease of Use Ease of Use –Simple, familiar interface –Intuitive matrix/array processing –Improved simulation speed – JIT, faster HW, C-MEX interface Fast Simulation Development Fast Simulation Development –Various toolboxes / library functions –Effective data processing – Plots, fast statistics simple test-bench Generates Functional Specifications Generates Functional Specifications
8
Matlab: System Development Tool WHY ? WHY ? –Straightforward transition from R to D –Common interface between researchers and designers – Less time required for technology transfer – Easier iteration on algorithm improvements Requirements Requirements –Fixed-point modeling – Transparent to researcher –Implementation specifications for HW/SW – Access to basic operations – adders, multipliers etc. –Verification of RTL implementation – Test-vector generation – Test-bench: co-simulation
9
Matlab-From Research To Development Matlab-based Development Flow Matlab-based Development Flow
10
Fixed-Point Algorithm Development Traditional Approach Traditional Approach –Toolbox functions to user-defined functions –Convert Generic M-code –to– Flat M-Code –Verify Performance with Fixed-Point Interface –Determination of fixed-point attributes –Optimization of different functional units
11
Fixed-Point Algorithm Development Example: HSDPA Chip Equalizer Chip Equalizer for HSDPA System Chip Equalizer for HSDPA System –LMMSE Equalizer to counter multipath in HSDPA –3-Main Blocks – Correlation Matrix Computation (R-Matrix) – FIR Tap Computation (w-vector) – FIR (d = wr) – FIR (d = w H r)
12
Fixed-Point Algorithm Development Example: HSDPA Chip Equalizer Chip Equalizer for HSDPA System… Chip Equalizer for HSDPA System… –Matrix-Inverse handled using FFT/IFFT –Intuitive Operations –Matrix Multiplication, FFT/IFFT, Sub Matrix Inverse –Basic Operations – Multipliers, Adders, Dividers Rx Data
13
Fixed-Point Algorithm Development Example: HSDPA Chip Equalizer Traditional Approach Traditional Approach –Convert Generic M-code –to– Flat M-Code – Toolbox functions to user-defined functions – Intuitive (Matrix) to Basic (Add, Sub) Operations – C-Like coding to understand data-flow
14
Fixed-Point Algorithm Development Example: HSDPA Chip Equalizer Traditional Approach… Traditional Approach… –Verify Performance with Fixed-Point Interface – Determine Required Input/Output Word-lengths –Determination of fixed-point attributes – Simulations to determine Data Range – Add Checks to verify overflow/underflow
15
Fixed-Point Algorithm Development Traditional Approach… Traditional Approach… –Optimization of different functional units – Optimize word-lengths of multipliers, adders etc. – Verification with simulations Bottlenecks in Traditional Approach Bottlenecks in Traditional Approach –Fixed-Word-length “doubles” instead of true fixed- point data types –Hand coding for overflow checks –Complex algorithms – Many variables and operations slow simulation – Prone to errors –May require translation to fixed-point C to speed-up the simulation
16
Fixed-Point Algorithm Development Requirements For Automated Design Flow Requirements For Automated Design Flow –User friendly –Fixed-point data-types – Transparent to user –Automated Process for word-length determination –Easy accommodation of legacy Matlab code Possible Approaches Possible Approaches –Matlab fixed-point –Third-Party Matlab fixed-point tool box – E.g. Catalytic
17
RTL Development Hand-Coded VHDL Hand-Coded VHDL –Special expertise is required –Time consuming, complex, and not easily modified Graphical Schematic Capture (HDL Designer, HDS) Graphical Schematic Capture (HDL Designer, HDS) –Intuitive (block-diagram based) –Manual layout fixed architecture –Great for HW integration Automated (e.g. Catapult C) Automated (e.g. Catapult C) –C/C++ level abstraction –Easy to analyze architectures and scheduling –Algorithm must be partitioned think architecture –Fixed-Point C + C-MEX Matlab as test-bed
18
Matlab Based Design Flow RTL Design RTL Synthesis FPGA P & R Candidate Algorithms Fixed-Point C / C++ HDL Generation Architecture Analysis Custom IP Block Implementation APTIX NALLATECH FPGA Platforms WILDCARD Floating/Fixed-Point MATLAB or C-Code Technology Transfer Level Fixed-Point Design
19
Matlab As a Test-Bench for RTL Validating Fixed-Point C Validating Fixed-Point C –Manual translation from M to C –Fixed-point C can be called from Matlab test-bed Manual/Automated translation of fixed-point C to RTL Manual/Automated translation of fixed-point C to RTL RTL Simulation RTL Simulation –Matlab as a test-bench –Stand-Alone – File I/O –Possible Option – Co-Simulation – Matlab to ModelSim Link Validating FPGA Implementation Validating FPGA Implementation –Stand-Alone – Simulate captured data in Matlab –Co-Simulation – Matlab to PCMCIA (e.g. WildCard)
20
Conclusion Advantages of Matlab Based Design Flow Advantages of Matlab Based Design Flow –Allows quick development of simulation/algorithm –Enables faster transition from algorithm to architecture –Common test-bench between floating-point and RTL implementation –Matlab based design flow cuts the overall development time Major Bottlenecks Major Bottlenecks –Laborious Floating-point to Fixed-point transition – Fixed-point word-length and range analysis – Fixed-point data types –Manual transition from M to fixed-point C code –Partitioning C Code in different functional units
21
THANK YOU!!!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.