Development of Reusable Algorithms Based on C++
ANSI C and C++ are languages commonly used by systems engineers to develop DSP and communications algorithms. Typically, these algorithms are first described using floating point representation. The algorithms are then recoded by hand either in C code containing user-defined fixed point arithmetic types, VHDL, or Verilog for implementation into hardware. A novel template-based approach will be examined that supports the specification of fixed-point math in the C and C++ languages. Such a methodology allows the development of robust descriptions for fixed-point algorithms by providing a set of C++ data classes and operators that encapsulate the characteristics of fixed-point arithmetic and accurately model quantization and overflow effects. This paper also includes an introduction to a methodology which fosters design reuse by both system and hardware engineers by providing a path directly from C and C++ to VHDL and Verilog hardware description languages. Aspects of integrating this type of methodology into a system and hardware engineering environment will also be introduced.
Please disable any pop-up blockers for proper viewing of this Whitepaper.