- Research Article
- Open Access
Design and Implementation of Numerical Linear Algebra Algorithms on Fixed Point DSPs
EURASIP Journal on Advances in Signal Processing volume 2007, Article number: 087046 (2007)
Numerical linear algebra algorithms use the inherent elegance of matrix formulations and are usually implemented using C/C++ floating point representation. The system implementation is faced with practical constraints because these algorithms usually need to run in real time on fixed point digital signal processors (DSPs) to reduce total hardware costs. Converting the simulation model to fixed point arithmetic and then porting it to a target DSP device is a difficult and time-consuming process. In this paper, we analyze the conversion process. We transformed selected linear algebra algorithms from floating point to fixed point arithmetic, and compared real-time requirements and performance between the fixed point DSP and floating point DSP algorithm implementations. We also introduce an advanced code optimization and an implementation by DSP-specific, fixed point C code generation. By using the techniques described in the paper, speed can be increased by a factor of up to 10 compared to floating point emulation on fixed point hardware.
van Dooren P: Numerical aspects of system and control algorithms. Journal A 1989,30(1):25-32.
Jollife I: Principal Component Analysis. Springer, New York, NY, USA; 1986.
Grewal MS, Andrews AP: Kalman Filtering Theory and Practice, Prentice Hall Information and Systems Sciences Series. Prentice-Hall, Upper Saddle River, NJ, USA; 1993.
Frantz G, Simar R: Comparing Fixed and Floating Point DSPs. SPRY061, Texas Instruments, 2004
Kim S, Sung W: A floating-point to fixed-point assembly program translator for the TMS 320C25. IEEE Transactions on Circuits and Systems II: Analog and Digital Signal Processing 1994,41(11):730-739. 10.1109/82.331543
Simulink : Simulation and Model Based Design. Simulink Reference, Version 6, The Mathworks 2006
IEEE Std 1666–2005 IEEE Standard SystemC Language Reference Manual https://doi.org/standards.ieee.org/getieee/1666/download/1666-2005.pdf
Matlab The Language of Technical Computing Function Reference, Version 7, The Mathworks 2006
Coors M, Keding H, Lüthje O, Meyr H: Design and DSP implementation of fixed-point systems. EURASIP Journal on Applied Signal Processing 2002,2002(9):908-925. 10.1155/S1110865702205065
Liu B: Effect of finite word length on the accuracy of digital filters—a review. IEEE Transactions on Circuit Theory 1971,18(6):670-677.
Kim S, Kum K-II, Sung W: Fixed-point optimization utility for C and C++ based digital signal processing programs. IEEE Transactions on Circuits and Systems II: Analog and Digital Signal Processing 1998,45(11):1455-1464. 10.1109/82.735357
Gelb A: Applied Optimal Estimation. The MIT Press, Cambridge, Mass, USA; 1992.
Aamodt T, Chow P: Numerical error minimizing floating point to fixed-point ANSI C compilation. The 1st Workshop on Media Processors and Digital Signal Processing (MP-DSP '99), November 1999, Haifa, Israel 3–12.
Han K, Evans BL: Optimum word length search using sensitivity information. EURASIP Journal on Applied Signal Processing 2006, 2006: 14 pages.
Shi C, Brodersen RW: Floating-point to fixed-point conversion with decision errors due to quantization. Proceedings of IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP '04), May 2004, Montreal, Que, Canada 5: 41–44.
Golub G, van Loan C: Matrix Computations. Johns Hopkins University Press, Baltimore, Md, USA; 1996.
Golub G, Mitchell I: Matrix factorizations in fixed point on the C6x VLIW architecture. Stanford University, Stanford, Calif, USA, 1998
Hedayat GA: Numerical linear algebra and computer architecture: an evolving interaction. In Tech. Rep. UMCS-93-1-5. Department of Computer Science, University of Manchester, Manchester, UK; 1993.
Wadekar SA, Parker AC: Accuracy sensitive word length selection for algorithm optimization. Proceedings of IEEE International Conference on Computer Design: VLSI in Computers and Processors (ICCD '98), October 1998, Austin, Tex, USA 54–61.
Constantinides GA, Cheung PYK, Luk W: Word length optimization for linear digital signal processing. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 2003,22(10):1432-1442. 10.1109/TCAD.2003.818119
Stephenson M, Babb J, Amarasinghe S: Bit width analysis with application to silicon compilation. Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, June 2000, Vancouver, BC, Canada 108–120.
Shi C, Brodersen RW: Automated fixed-point data-type optimization tool for signal processing and communication systems. Proceedings of 41st Annual Conference on Design Automation, June 2004, San Diego, Calif, USA 478–483.
Nayak A, Haldar M, Choudhary A, Banerjee P: Precision and error analysis of MATLAB applications during automated hardware synthesis for FPGAs. Proceedings of Design, Automation and Test in Europe, Conference and Exhibition (DATE '01), March 2001, Munich, Germany 722–728.
Cmar R, Rijnders L, Schaumont P, Vernalde S, Bolsens I: A methodology and design environment for DSP ASIC fixed point refinement. Proceedings of Design, Automation and Test in Europe, Conference and Exhibition (DATE '99), March 1999, Munich, Germany 271–276.
Kamath S, Magotra N, Shrivastava A: Quantization analysis tool for fixed-point implementation of real time algorithms on the TMS320C5000. Proceedings of IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP '02), May 2002, Orlando, Fla, USA 4: 3784–3787.
Han K, Evans BL: Word length optimization with complexity-and-distortion measure and its application to broadband wireless demodulator design. Proceedings of IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP '04), May 2004, Montreal, Que, Canada 5: 37–40.
Jackson LB: On the interaction of the round-off noise and dynamic range in digital filters. The Bell System Technical Journal 1970,49(2):159-184.
Mathews VJ, Xie Z: Fixed-point error analysis of stochastic gradient adaptive lattice filters. IEEE Transactions on Acoustics, Speech, and Signal Processing 1990,38(1):70-80. 10.1109/29.45619
Oppenheim AV, Schafer RW, Buck JR: Discrete-Time Signal Processing. Prentice-Hall, Upper Saddle River, NJ, USA; 1998.
Press WH, Flannery BP, Teukolsky SA, Vetterling WT: Numerical Recipes in C: The Art of Scientific Computing. Cambridge University Press, Cambridge, UK; 1992.
Cammack W, Paley M: Fixpt: a C++ method for development of fixed point digital signal processing algorithms. Proceedings of the 27th Annual Hawaii International Conference on System Sciences (HICSS '94), January 1994, Maui, Hawaii, USA 1: 87–95.
TMS320C64/C64x+ DSP CPU and Instruction Set Reference Guide SPRU732C, Texas Instruments, August 2006, https://doi.org/focus.ti.com/lit/ug/spru732c/spru732c.pdf
TMS320C67x/C67x+ DSP CPU and Instruction Set Reference Guide SPRU733, Texas Instruments, May 2005
Seshan N, Hiers T, Martinez G, Seely A, Nikolić Z: Digital signal processors for communications, video infrastructure, and audio. Proceedings of IEEE International SOC Conference (SOCC '05), September 2005, Herndon, Va, USA 319–321.
TMS320C64x+ DSP Mega-module Reference Guide SPRU871, Texas Instruments, June 2007, https://doi.org/focus.ti.com/lit/ug/spru871g/spru871g.pdf
TMS320C6000 Programer's Guide SPRU198i, Texas Instruments, March 2006, https://doi.org/focus.ti.com/lit/ug/spru198i/spru198i.pdf
IQmath Librar : A Virtual Floating Point Engine, Module User's Guide C28x Foundation Software. version 1.4.1, Texas Instruments, 2002
Granston E: Hand tuning loops and control code on the TMS320C6000. In Application Report SPRA666. Texas Instruments, Stafford, Tex, USA; 2006.
Halleck J: Least squares network adjustments via QR factorization. Surveying and Land Information Systems 2001,61(2):113-122.
About this article
Cite this article
Nikolić, Z., Nguyen, H.T. & Frantz, G. Design and Implementation of Numerical Linear Algebra Algorithms on Fixed Point DSPs. EURASIP J. Adv. Signal Process. 2007, 087046 (2007). https://doi.org/10.1155/2007/87046
- Digital Signal Processor
- Floating Point
- Code Optimization
- Hardware Cost
- Practical Constraint