200 likes | 210 Views
Matlab as a Design Environment for Wireless ASIC Design. Erik Lindskog. Beceem Communications, Inc. elindskog@beceem.com. June 16, 2005. Introduction to Beceem. Wireless communication system developer Using Matlab for ASIC design Product development phase: Algorithm development - Matlab
E N D
Matlab as a Design Environment for Wireless ASIC Design Erik Lindskog Beceem Communications, Inc. elindskog@beceem.com June 16, 2005
Introduction to Beceem • Wireless communication system developer • Using Matlab for ASIC design Product development phase: • Algorithm development - Matlab • Algorithm and system modeling - Matlab • RTL design – Verilog • RTL verification - SystemC, Verilog and Matlab • SW design – C++ • SW verification – C++ and Matlab
Advantages With Matlab • Rich support for mathematical operations and visualization • Most common tool for signal processing research • Graduates in communication and signal processing engineering are typically highly familiar with Matlab • Fewer people have experience in programming in C++ • Full fledged programming as well as scripting language • Interpretating language – Integrates well with other programs • Powerful debugging support • Not a typed language - Highly ‘moldable’
Matlab Simulator Design • Common simulator for: • PHY algorithm development and studies • Small network full PHY studies of • Effect of co- and adjacent channel interference on PHY algorithms • Synchronization and hand-over • Link-adaptation • Fixed point modeling • RTL signal processing reference • Standalone code for • Independent lower complexity studies • Generation of independent references
Matlab Simulator Design, cont. • Organization • Common core source code • Simulation examples driving source code • Single file with default parameter settings enables developers to work reasonably independently while using the common code
Open Source/Freeware Software • CVS - Concurrent Version Control system • Cygwin – Unix emulator for Windows • CVS Tortoise – File browser based CVS client • Integrates external free software tools like ExamDiff for CVS diffing • WinCVS – GUI based CVS client
Signal Processing Design Flow • Module design • In standalone code, or • Direct in main simulator • Floating point system modeling • Integration of modules into main simulator • Floating point performance simulations
Signal Processing Design Flow, cont. • Fixed point module design • In module design environment to excite corner cases • Integrated in main simulator to get realistic signal levels • Fixed point system modeling • Full system fixed performance simulations • Ability to turn fixed point on/off per block • Analysis of quantization statistics to pin-point problems
Matlab – RTL Design Flow • Matlab fixed point design handed over to RTL • Module verification • File-in-file-out test vector comparison between MATLAB and Verilog • Extensive testing to cover corner cases in fixed point arithmetic • Random signals to guarantee fixed point equivalence
Matlab – RTL Design Flow • System testing • Side-by-side testing of Verilog and MATLAB in SystemC testbench • MATLAB simulator compiled and linked to C-program called from SystemC testbench • Verilog code excited from SystemC testbench • Verilog simulation speed is the limiting factor • Common test for Matlab and Verilog code • Directed testing for initial coverage • Random testing for extensive coverage • All system tests part of Matlab automated regression testing
Matlab – SW Design Flow • Matlab fixed point design handed over to SW • Module verification • File-in-file-out test vector comparison between MATLAB and C++ SW code • Simulation example test cases in Matlab for C++ SW code • System testing • Side-by-side testing of SW on FPGA and Matlab system simulation
Fixed Point Modeling • Currently performed in regular Matlab • Regular arithmetic operations where precision is allowed to grow • Quantization with quantization functions where precision is to be limited • Automatic fixed point statistics collection
Object Oriented Fixed Point Modeling • Simultaneous floating and fixed point • Fixed point format embedded in variable • Matlab object oriented support limited • Assignment operator cannot be overloaded – Traditional quantization with assignment operation in C++ cannot be done • Function overloading only sensitive to first argument • Catalytic have an object oriented fixed point modeling tool • Matlab also now have an object oriented fixed point toolbox
Fixed Point Analysis • Analysis of fixed point quantization statistics • Headroom – E.g. headroom above 67th percentile • Signal to quantization noise ratio – SQNR • Over- and underflow ratios • Signal level histogram • Full system simulation fixed point analysis • Example Matlab implementation • Fixed point analysis function • Example call: fxp_stat(x, 2, 5) • Store statistics in function call stack tree structure • Analyze statistics after completed simulation • Block-swapping analysis • Switching of fixed and floating point blocks
Lab use of Matlab Simulator • Modeling of Tx or Rx part of modem against HW Rx or Tx modem • Interoperability testing with signal generators and signal analyzers • MAC-PHY interoperability testing • Simple RF testing • Over the air transmission demonstration when combined with RF
Matlab Regression Testing • Developer regression testing • To many tests to run all • Directed and/or randomly selected set of tests. • Automated Regression Testing • All regression tests checked for each block of commits • Breaking commit identified for each failing regression test • Result of testing automatically emailed to developer • High SNR Tx-Rx tests • Single SNR BER tests • Simulation example execution tests • RTL verification tests mimicing exact use in RTL test bench
Matlab Regression Testing, cont. • Automated Random Testing • Script generating random traffic for testing of Matlab simulator and RTL • Periodic random testing of code in repository with random Tx-Rx tests • Result automatically emailed to developers • Provides extensive coverage • Scripting language - Matlab
Speeding up Matlab Code • Scalar loops • Loop over scalar operation are slow • Vectorization • Convert scalar loops to matrix operations • Conversion to C-code • Compilation of Matlab • Removes the need for other language • Limits the need for vectorization of code • Limits duplication of code in Matlab and C • Example compiler: Catalytic Matlab Compiler
Summary Matlab • Powerful tool for signal processing design • Lessens ‘distance’ between algorithms and HW • Facilitates for algorithm designers to be closely involved in fixed point testing and RTL verification • Interacts easily with other programs and equipment • Attractive design environment for ASIC design