A floating-point to integer C converter with shift reduction for fixed-point digital signal processors

A floating-point to integer C program translator is developed for convenient programming and efficient use of fixed-point programmable digital signal processors (DSPs). It not only converts data types and supports automatic scaling, but also conducts shift optimization to enhance execution speed. Since the input and output of this translator are ANSI C compliant programs, it can be used for any fixed-point DSP that supports ANSI C compiler. A shift reduction method is developed for minimizing the scaling overhead of translated integer C programs. It considers the data-path of a target processor and profiling results. Using the shift reduction method, 4% to 37% speedup is obtained. The translated integer C codes are 20 to 400 times faster than the floating-point versions when applied to TMS320C50, TMS320C60 and Motorola 56000 DSPs.

[1]  C. D. Gelatt,et al.  Optimization by Simulated Annealing , 1983, Science.

[2]  Seehyun Kim,et al.  Fixed-point optimization utility for C and C++ based digital signal processing programs , 1998 .

[3]  William R. Gardner,et al.  QCELP: A Variable Rate Speech Coder for CDMA Digital Cellular , 1993 .

[4]  Seehyun Kim,et al.  A floating-point to fixed-point assembly program translator for the TMS 320C25 , 1994 .

[5]  Wonyong Sung,et al.  Fixed-point C compiler for TMS320C50 digital signal processor , 1997, 1997 IEEE International Conference on Acoustics, Speech, and Signal Processing.

[6]  Heinrich Meyr,et al.  FRIDGE: an interactive code generation environment for HW/SW codesign , 1997, 1997 IEEE International Conference on Acoustics, Speech, and Signal Processing.

[7]  Wonyong Sung An automatic scaling method for the programming of fixed-point digital signal processors , 1991, 1991., IEEE International Sympoisum on Circuits and Systems.