《数字信号 外文翻译 外文文献 英文文献 基于FPGA的CORDIC算法综述》由会员分享,可在线阅读,更多相关《数字信号 外文翻译 外文文献 英文文献 基于FPGA的CORDIC算法综述(9页珍藏版)》请在金锄头文库上搜索。
1、A survey of CORDIC algorithms for FPGA based computers1. ABSTRACTThe current trend back toward hardware intensive signal processing has uncovered a relative lack of understanding of hardware signal processing architectures. Many hardware efficient algorithms exist, but these are generally not well k
2、nown due to the dominance of software systems over the past quarter century. Among these algorithms is a set of shift-add algorithms collectively known as CORDIC for computing a wide range of functions including certain trigonometric, hyperbolic, linear and logarithmic functions. While there are num
3、erous articles covering various aspects of CORDIC algorithms, very few survey more than one or two, and even fewer concentrate on implementation in FPGAs. This paper attempts to survey commonly used functions that may be accomplished using a CORDIC architecture, explain how the algorithms work, and
4、explore implementation specific to FPGAs.2. INTRODUCTIONThe digital signal processing landscape has long been dominated by microprocessors with enhancements such as single cycle multiply-accumulate instructions and special addressing modes. While these processors are low cost and offer extreme flexi
5、blility, they are often not fast enough for truly demanding DSP tasks. The advent of reconfigurable logic computers permits the higher speeds of dedicated hardware solutions at costs that are competitive with the traditional software approach. Unfortunately, algorithms optimized for these microproce
6、ssor based systems do not usually map well into hardware. While hardware efficient solutions often exist, the dominance of the software systems has kept those solutions out of the spotlight. Among these hardware-efficient algorithms is a class of iterative solutions for trigonometric and other trans
7、cendental functions that use only shifts and adds to perform. The trigonometric functions are based on vector rotations, other functions such as square root are implemented using an incremental expression of the desired function. The trigonometric algorithm is called CORDIC, an acronym for coordinat
8、e rotation digital computer. The incremental functions are performed with a very simple extension to the hardware architecture, and while not CORDIC in the strict sense, are often included because of the close similarity. The CORDIC algorithms generally produce one additional bit of accuracy for eac
9、h iteration.3. CORDIC THEORY: AN ALGORITHM FOR VECTOR ROTATIONAll of the trigonometric functions can be computed or derived from functions using vector rotations, as will be discussed in the following sections. Vector rotation can also be used for polar to rectangular and rectangular to polar conver
10、sions, for vector magnitude, and as a building block in certain transforms such as the DFT and DCT. The CORDIC algorithm provides an iterative method ofperforming vector rotations by arbitrary angles using only shifts and adds. The algorithm is derived from the general (Givens) rotation transform:co
11、sinxyyxwhich rotates a vector in a Cartesian plane by the angle These can be rearranged so that: costanxy tyxSo far, nothing is simplified. However, if the rotation angles are restricted so that tan2i, the multiplication by the tangent term is reduced to simple shift operation. Arbitrary angles of r
12、otation are obtainable by performing a series of successively smaller elementary rotations. If the decision at each iteration, i, is which direction to rotate rather than whether or not to rotate, then the cos()i term becomes a constant.The iterative rotation can now be expressed as: 12iiiixkydiiiiy
13、xWhere: 21/iikidRemoving the scale constant from the iterative equations yields a shift-add algorithm for vector rotation. The product of the Kis can be applied elsewhere in the system or treated as part of a system processing gain. That product approaches 0.6073 as the number of iterations goes to
14、infinity. Therefore, the rotation algorithm has a gain, An , of approximately 1.647. The exact gain depends on the number of iterations, and obeys the relation.21inAThe angle of a composite rotation is uniquely defined by the sequence of the directions of the elementary rotations. That sequence can
15、be represented by a decision vector. The set of all possible decision vectors is an angular measurement system based on binary arctangents. Conversions between this angular system and any other can be accomplished using a look-up. A better conversion method uses an additional adder-subtractor that a
16、ccumulates the elementary rotation angles at each iteration. The elementary angles can be expressed in any convenient angular unit. Those angular values are supplied by a small lookup table (one entry per iteration) or are hardwired, depending on the implementation. The angle accumulator adds a third difference equation to the CORDIC algorithm:11tan(2)iiizdObviously, in cases where the angle is useful in the arctangent base, this extra e