a cordic processor for fft computation and its implementation

13
18 IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL. 6, NO. 1, MARCH 1998 A CORDIC Processor for FFT Computation and Its Implementation Using Gallium Arsenide Technology Roberto Sarmiento, Member, IEEE, elix Tobajas, Valent´ ın de Armas, Roberto Esper-Cha´ ın, Jos´ e F. L´ opez, Member, IEEE, Juan A. Montiel-Nelson, Member, IEEE, and Antonio N´ nez Abstract—In this paper, the architecture and the implementa- tion of a complex fast Fourier transform (CFFT) processor using 0.6 m gallium arsenide (GaAs) technology are presented. This processor computes a 1024-point FFT of 16 bit complex data in less than 8 s, working at a frequency beyond 700 MHz, with a power consumption of 12.5 W. The architecture of the processor is based on the COordinate Rotation DIgital Computer (CORDIC) algorithm, which avoids the use of conventional multiplication- and-accumulation (MAC) units, but evaluates the trigonometric functions using only add and shift operations. Improvements to the basic CORDIC architecture are introduced in order to reduce the area and power of the processor. This together with the use of pipelining and carry save adders produces a very regular and fast processor. The CORDIC units were fabricated and tested in order to anticipate the final performance of the processor. This work also demonstrates the maturity of GaAs technology for implementing ultrahigh-performance signal processors. Index Terms—Application specific integrated circuits (ASIC’s), carry save adders, COordinate Rotation DIgital Computer (CORDIC), fast Fourier transform (FFT), full-custom, gallium arsenide (GaAs) VLSI design, high-performance systems. I. INTRODUCTION F FT (fast Fourier transform) is the most popular algorithm in digital signal processing. FFT has many high-end applications, such as radar, sonar, spread-spectrum commu- nications, image processing, general filtering, convolution, etc. Many of them require a good precision and real-time response. With the advent of VLSI, digital signal proces- sors (DSP’s) provide a convenient way to develop these applications. However, high-performance applications are out of the reach of a single processor and parallel DSP chips and application specific DSP chips have been introduced for this reason. Application specific circuits developed in silicon compute a 1024-point FFT in tens of milliseconds [1]. Higher performance is only possible using several of these Silicon chips in parallel. However, digital gallium arsenide (GaAs) technology can provide a superior performance using monolithic solutions. Most signal processing algorithms (e.g., fast Fourier trans- form) require the evaluation of trigonometric functions, which Manuscript received February 3, 1997. This work was supported in part by the ESPRIT project CT93-0385, and the Spanish National Science Foundation (DGICYT) project CE94-0013. The authors are with the Centro de Microelectr´ onica Aplicada, Universidad de Las Palmas de Gran Canaria, 35017 Las Palmas de Gran Canaria, Spain (e-mail: [email protected]). Publisher Item Identifier S 1063-8210(98)01319-5. normally create a bottleneck in digital signal processors. These functions are frequently implemented using a multiplication- and-accumulation unit (MAC), which basically consists of multipliers, adders, and registers. The design and implementa- tion of these primitives has already been studied in gallium arsenide [2]. However, mimicking the silicon solutions in GaAs could produce inefficient systems in terms of perfor- mance or cost. The CORDIC (COordinate Rotation DIgital Computer) al- gorithm has been shown to be an efficient way of evaluating the elementary functions [3], such as trigonometric, expo- nential, and logarithmic functions. Although the CORDIC algorithm was proposed in 1959, current VLSI technology has created a new interest in a number of applications of the algorithm. In this paper, the architecture and the implementation of a complex fast Fourier transform (CFFT) processor using 0.6 m gallium arsenide technology are presented. This processor computes a 1024-point FFT of 16 bit complex data in less than 8 s, working at a frequency beyond 700 MHz, with a power consumption of only 12.5 W. The architecture of the processor is based on the CORDIC algorithm, that evaluates the trigonometric functions using only add and shift schemes. Previous work [4], [5] has shown that the CORDIC algorithm usually yields slow and area demanding circuits. Hence, an application specific CORDIC has been used and other improvements (such as a novel mixed radix2/radix4 approach) have been made in order to over- come these drawbacks. To increase the throughput, pipelining and redundant arithmetic representation have been used. For this architecture, functional units have been designed and optimized for an enhancement/depletion self-aligned process taking into account such issues as process spread, temperature variations, etc. The processor is laid-out in full-custom using the merged logic approach [6] optimizing area and power consumption. The organization of the paper is as follows. In Section II, an overview of the CORDIC processor is presented. A basic description of the FFT processor architecture, which includes a mixed radix2/radix4 approach is presented in Section III. The design and implementation of the different units and the design of the system using the selected technology is given in Section IV. This section also focuses on the implementation challenges put forward by this demanding technology. In Section V, the performance of the processor is highlighted 1063–8210/98$10.00 1998 IEEE

Upload: hoangxuyen

Post on 08-Dec-2016

243 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A CORDIC Processor For FFT Computation And Its Implementation

18 IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL. 6, NO. 1, MARCH 1998

A CORDIC Processor for FFT Computation and ItsImplementation Using Gallium Arsenide Technology

Roberto Sarmiento,Member, IEEE,Felix Tobajas, Valentın de Armas, Roberto Esper-Chaın,Jose F. Lopez,Member, IEEE,Juan A. Montiel-Nelson,Member, IEEE,and Antonio Nunez

Abstract—In this paper, the architecture and the implementa-tion of a complex fast Fourier transform (CFFT) processor using0.6 �m gallium arsenide (GaAs) technology are presented. Thisprocessor computes a 1024-point FFT of 16 bit complex data inless than 8�s, working at a frequency beyond 700 MHz, with apower consumption of 12.5 W. The architecture of the processor isbased on the COordinate Rotation DIgital Computer (CORDIC)algorithm, which avoids the use of conventional multiplication-and-accumulation (MAC) units, but evaluates the trigonometricfunctions using only add and shift operations. Improvements tothe basic CORDIC architecture are introduced in order to reducethe area and power of the processor. This together with the useof pipelining and carry save adders produces a very regular andfast processor. The CORDIC units were fabricated and testedin order to anticipate the final performance of the processor.This work also demonstrates the maturity of GaAs technologyfor implementing ultrahigh-performance signal processors.

Index Terms—Application specific integrated circuits (ASIC’s),carry save adders, COordinate Rotation DIgital Computer(CORDIC), fast Fourier transform (FFT), full-custom, galliumarsenide (GaAs) VLSI design, high-performance systems.

I. INTRODUCTION

FFT (fast Fourier transform) is the most popular algorithmin digital signal processing. FFT has many high-end

applications, such as radar, sonar, spread-spectrum commu-nications, image processing, general filtering, convolution,etc. Many of them require a good precision and real-timeresponse. With the advent of VLSI, digital signal proces-sors (DSP’s) provide a convenient way to develop theseapplications. However, high-performance applications are outof the reach of a single processor and parallel DSP chipsand application specific DSP chips have been introducedfor this reason. Application specific circuits developed insilicon compute a 1024-point FFT in tens of milliseconds [1].Higher performance is only possible using several of theseSilicon chips in parallel. However, digital gallium arsenide(GaAs) technology can provide a superior performance usingmonolithic solutions.

Most signal processing algorithms (e.g., fast Fourier trans-form) require the evaluation of trigonometric functions, which

Manuscript received February 3, 1997. This work was supported in part bythe ESPRIT project CT93-0385, and the Spanish National Science Foundation(DGICYT) project CE94-0013.

The authors are with the Centro de Microelectronica Aplicada, Universidadde Las Palmas de Gran Canaria, 35017 Las Palmas de Gran Canaria, Spain(e-mail: [email protected]).

Publisher Item Identifier S 1063-8210(98)01319-5.

normally create a bottleneck in digital signal processors. Thesefunctions are frequently implemented using a multiplication-and-accumulation unit (MAC), which basically consists ofmultipliers, adders, and registers. The design and implementa-tion of these primitives has already been studied in galliumarsenide [2]. However, mimicking the silicon solutions inGaAs could produce inefficient systems in terms of perfor-mance or cost.

The CORDIC (COordinate Rotation DIgital Computer) al-gorithm has been shown to be an efficient way of evaluatingthe elementary functions [3], such as trigonometric, expo-nential, and logarithmic functions. Although the CORDICalgorithm was proposed in 1959, current VLSI technologyhas created a new interest in a number of applications of thealgorithm.

In this paper, the architecture and the implementation of acomplex fast Fourier transform (CFFT) processor using 0.6

m gallium arsenide technology are presented. This processorcomputes a 1024-point FFT of 16 bit complex data in less than8 s, working at a frequency beyond 700 MHz, with a powerconsumption of only 12.5 W.

The architecture of the processor is based on the CORDICalgorithm, that evaluates the trigonometric functions usingonly add and shift schemes. Previous work [4], [5] has shownthat the CORDIC algorithm usually yields slow and areademanding circuits. Hence, an application specific CORDIChas been used and other improvements (such as a novel mixedradix2/radix4 approach) have been made in order to over-come these drawbacks. To increase the throughput, pipeliningand redundant arithmetic representation have been used. Forthis architecture, functional units have been designed andoptimized for an enhancement/depletion self-aligned processtaking into account such issues as process spread, temperaturevariations, etc. The processor is laid-out in full-custom usingthe merged logicapproach [6] optimizing area and powerconsumption.

The organization of the paper is as follows. In Section II,an overview of the CORDIC processor is presented. A basicdescription of the FFT processor architecture, which includesa mixed radix2/radix4 approach is presented in Section III.The design and implementation of the different units and thedesign of the system using the selected technology is given inSection IV. This section also focuses on the implementationchallenges put forward by this demanding technology. InSection V, the performance of the processor is highlighted

1063–8210/98$10.00 1998 IEEE

Page 2: A CORDIC Processor For FFT Computation And Its Implementation

SARMIENTO et al.: A CORDIC PROCESSOR FOR FFT COMPUTATION 19

based on the fabrication and test of processor units. A summaryof the work realized and a discussion of future processorextensions and implementations conclude this paper.

II. CORDIC OVERVIEW

The CORDIC algorithm was proposed by Volder [7] andlater generalized for the three coordinate system by Walther[8]. After this basic work, modifications to the algorithm havebeen presented [9].

The CORDIC algorithm provides an efficient mean ofcomputing trigonometric functions by rotating a vector throughsome angle, specified by its coordinates. This rotation isobtained by performing a number of microrotations throughelementary rotation angles , into which the total rotationangle has been decomposed. In circular coordinates, therotation of a vector through an angle is given by

(1)

(2)

(3)

where is the microrotation index, and thefinal angle is:with and . Equation (3) is for angle updating.The traditional solution for these equations has been in radix2where the selected angles are and therefore

. Equations (1) and (2) forradix2 become

(4)

(5)

Here, the result has been divided by the scaling factor. Hence,for computation of FFT it is necessary to multiply the finalresult of the CORDIC iterations by this scaling factor. Inradix2 the scaling factor is constant, as can be shown in thefollowing expression:

(6)

The scaling factor compensation requires extra hardware inthe processor. Several methods have been developed [3] forthis purpose. Among them, in the FFT architecture we haveused the repetition of several microrotations and the inclusionof specific scaling microrotations. Other solutions based onmodifications to the basic algorithms made to eliminate thescaling factor can be found in the literature [10].

Convergence criteria for the CORDIC algorithm requiresthat the maximum value of the variable be in the range of

(7)

which for infinite precision ( ) implies that

In CORDIC, the precision is obtained as a function of thenumber of iterations or microrotations. If a precision ofis

needed a CORDIC in radix2 should have microrotations.The main problem of GaAs CORDIC processors (in general)is the large area that is required. Increasing the radix from 2 to4 brings down the number of microrotations from to only

/2. The higher the radix the smaller the CORDIC processorarea.

However, increasing the radix of the processor has severaldrawbacks. The most important one is that in order to keepthe convergence of the algorithm would take the followingvalues . Likewise, the scaling factor has thefollowing expression:

(8)

and, therefore, is a function of the iteration indexbe-cause is not 1 as in radix2. Moreover, the approximation

is not valid in radix4, because isnot longer ±1

On the other hand, as can be derived from (8), the scalingfactor in radix4 is only affected by the microrotations from

0 to /(2 1) and if the radix4 microrotations areintroduced after the second half of microrotations (from

/2 to 1) the global scaling factor is kept constant[11], [12]. Furthermore, for the small angles involved in thesecond half of the microrotations the error incurred with thesimplification would be less than theprecision obtained by the CORDIC [13]. This approach hasbeen implemented in the FFT processor in order to save 25%of the microrotation stages.

III. FFT PROCESSORARCHITECTURE

Given a discrete sequence of complex numbers , 0 ≤≤ 1, its Discrete Fourier Transform , 0 ≤ ≤

1 is defined as

(9)

where is the twidle factor. In the FFTalgorithm, the -point DFT is computed as two /2-pointDFT subproblems for each [14]. Thus, the FFT can beevaluated through a recursive algorithm. Using decimation intime algorithm, the basic operation of a FFT, called aButterflyoperation, is

(10)

where , , ,and are complex numbers.

The use of the CORDIC algorithm for computation of thatiterative process means that the exponential factor is realizedby cosine and sine operations. Since the CORDIC processordevelops the computation of vector ( ) as

(11)

Page 3: A CORDIC Processor For FFT Computation And Its Implementation

20 IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL. 6, NO. 1, MARCH 1998

(a)

(b)

Fig. 1. (a) Block diagram of FFT computation based on CORDIC and (b) detail of processing section.

a further postprocessing is required in order to evaluate thebutterfly

(12)

where and R denotes the real part andIdenotes the imaginary part.

The CORDIC processor for CFFT computation includes twosubprocessors: the processing section (PS), for computation ofequations, and a routing section (RS) for data recirculation[see Fig. 1(a)]. For simplicity in this paper only the PS willbe considered because in the RS the clock frequency is halfthan in PS and is not critical. The block diagram of theprocessing section is shown in Fig. 1(b). It consists of a

CORDIC processor and a postprocessing unit. Following thedecimation in time algorithm, one set of points is processedin the CORDIC which results in a vector and the otherone is used in the postprocessing unit, which implements aspecified orthogonal transform (in this case an FFT).

The floorplan of the processor is given in Fig. 2. The realand imaginary components of the input vector are takenas the initial values of and . The CORDIC processorfor realization of a 1024-point FFT of 16 bits requires 18stages: initiation, seven radix2 microrotations, four radix4microrotations, four repetitions of radix2 microrotation, andtwo scaling stages. In this mixed radix2–radix4 architecture

/2 /4 3 /4 iterations are performed in order toproduce bits of precision. The resulting and values

Page 4: A CORDIC Processor For FFT Computation And Its Implementation

SARMIENTO et al.: A CORDIC PROCESSOR FOR FFT COMPUTATION 21

Fig. 2. Floorplan of the processing section based on CORDIC.

are added to the sum that will become after repetitionsof this process where .

The convergence of CORDIC algorithm is limited toas has been made clear after (7). In order to expand

the angle range of the processor from 0 to(required forFFT computation) a initiation stage is used. This initiationstage rotates clockwise by all the angles whose associatedrotation is greater than , as expressed by

(13)

where are the data to be processed in the first radix2microrotation.

In the FFT implementation, the angles are knowna prioriand therefore the evaluation of (3) is not necessary. The anglescan simply be stored in a ROM, which maps the requiredangles into the equivalent sequence of’s. The control unitis used for reading data stored in the ROM. It consists of a9-bit counter, a shift register and several 2 : 1 multiplexers.As mentioned before, there are several methods for realizationof scaling. In our case some iterations are repeated and twoscaling stages are included.

The processor is pipelined and uses redundant notationbased on carry–save adders (CSA), for the sake of avoidingcarry propagation when evaluating (5). The postprocessingunit is in charge of the evaluation of (12), that is simply asum. In order to speed-up the process CSA’s are also used.Finally, a vector merging adder (VMA) stage is used to convertredundant notation to binary notation. This is one of the critical

units of the processor and is also pipelined in order to matchthe microrotations delay.

IV. FFT CHIP IMPLEMENTATION

This section presents the logic design and different basicprimitives for VLSI implementation of the CORDIC processorfor FFT computation. The design strategy has included threemajor steps:

• algorithm transformation and physical mapping;• design and implementation of basic computational and

storage primitives;• abutment and interconnections of cells in order to create

the processor.

Due to the complexity of the processor in terms of chiparea and power dissipation, the approach used for the designof the primitives has been to optimize the area and powerconsumption of the cells. A number of logic families areavailable in GaAs. One of the initial objectives has been toidentify the logic families most suited for this architecture.This is based on performance figures measured in terms ofpropagation delays, power dissipation, transition times, chiparea and noise margins. Since factors such as capacitiveloads, fan-out and process spread have a large influence uponperformance careful consideration has been given to theseparameters during the design cycle.

A. GaAs VLSI Technology and Logic

Taking into consideration the complexity of the CORDICarchitecture, the 0.6m H–GaAs III process of Vitesse Semi-conductor Corporation, US, has been selected. The chosen 0.6

m gate technology features different length MESFET’s andup to five levels of interconnections and provides both en-hancement (E-type) and depletion (D-type) self-aligned metalsemiconductor FET’s (MESFET’s) [15]. In this process, E-MESFET’s are formed initially. This is followed by an additiveimplantation technique to create D-MESFET’s. Therefore,the technology generates circuits which are predominantlyfast–fast(fast E and D-MESFET’s) orslow–slow(slow E andD-MESFET’s). Thus, when studying the influence of processspread on circuit performance onlyfast–fastand slow–slowcorners need to be considered. For both, E-MESFET’s andD-MESFET’s, the more positive the threshold voltage is theslower the transistor becomes. For VLSI complexity, toleranceof at least±2 is necessary.

Direct coupled FET logic(DCFL) is the most simple, denseand low power consumption logic for GaAs VLSI design.However, its high sensitivity to capacitance load implies needfor buffering. Therefore, the approach pursued in the logicdesign of the CORDIC processor has been to usemergedlogic which combines different logic structures. SDCFL isused to implement the O–A–I structure, as shown in Fig. 3.Although OR gate performance is very sensitive to fan-in, withthis structure it is possible to design exclusive-OR, exclusive-NOR and multiplexer functions using the same transistor sizesas for SDCFL inverters. This is because the E-MESFET’s ofthe OR gate cannot be active at the same time. The delay

Page 5: A CORDIC Processor For FFT Computation And Its Implementation

22 IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL. 6, NO. 1, MARCH 1998

Fig. 3. The O–A–I structure in SDCFL.

of the O–A–I gate is smaller than the delay of the NOR–ORstructure in DCFL.

B. Implementation of the CORDIC Processor

The basic operation of the radix2 CORDIC microrotation isthe addition/subtraction (4) and (5). In order to speed up theprocessor, pipelining and redundant arithmetic representation[16] are used. In redundant notation, each vector is repre-sented bysumandcarry words. Hence, the basic cell for theimplementation of microrotations is a 4–2 adder/subtracter.A register is necessary for pipelining. The radix2 cell iscomposed of one 4–2 adder and two D-flip flops. Althoughthe connection of several of these cells together will produceFFT processors for different data widths, in this section thedesign of the CORDIC cells for a 16 bit wide processor forcomputation of a 1024 point CFFT is presented. This processorincorporates more than 800 4–2 adders/subtracters and morethan 1600 registers in the microrotation stages. It is obviousthat both primitives must be optimized in area and powerconsumption.

1) The Radix2 Cell:The radix2 cell implements (4) and(5). The 4–2 adder/subtracter in redundant notation is im-plemented using two levels carry–save adders (CSA) [16] asillustrated in Fig. 4. In the first full adder, the operands ,

, and are added. The second stage adds the sum( ) and carry ( ) of the previous stage to . Theresult of the adder/subtracter is obtained in redundant formof representation. The two exclusive-OR gates, for and

data, are included for performing subtraction. A “1”should be added to the least significant bit.

Fig. 4. 4–2 adder/subtracter.

Fig. 5 represents the logic diagram of the radix2 cell usingthe merged logicapproach. Basically, the adder has beendone using DCFL and SDCFL logic families. In SDCFL theexclusive-OR is realized in the O–A–I structure. The O–A–Iproduces better results in terms of area and speed than thedesign in DCFL using only NOR gates. The performance ofthe 4–2 adder/subtracter and its sensitivity to process variationsis shown in Table I.

The layout of the carry–save adder is shown in Fig. 6. Allinputs and outputs have been chosen to lie on a grid of 5m.This facilitates the routing of signals between microrotations.In order to keep as many routing paths open as possible, all

Page 6: A CORDIC Processor For FFT Computation And Its Implementation

SARMIENTO et al.: A CORDIC PROCESSOR FOR FFT COMPUTATION 23

Fig. 5. Logic diagram of the radix2 cell.

TABLE IPERFORMANCE AND SENSITIVITY TO PROCESSSPREAD OF RADIX 2 CELL

Fig. 6. Layout of the radix2 cell.

horizontal connections inside the cell are made in metal 2 andmetal 1, with the exception of some short connections. Gatemetal, in spite of its high resistance and capacitance, is usedfor vertical and short horizontal connections. The power issupplied to the metal 2 power wires by metal 3 power planes(not shown in Fig. 6). In this way, the (2 V) and(GND) metal 2 wires can be kept with minimum dimensions,producing layouts which are area efficient. The only signalsrouted in metal 3 are the clock and clear, which are vertical(like all metal 3 lines) in order to simplify their distribution.The radix2 cell width is 157 m and its height is 109 m.

It is well known [16] that carry save adders introduce anerror calledcarry overflow, caused by the truncation of thecarry generated by the full adder in the sign position. Logic

Fig. 7. Block diagram of the radix4 cell.

design of this full adder is modified in order to avoid this error.The two most significant bits ofsumandcarry words, namely,

and , are substituted by and as expressed in thefollowing equations:

ifotherwise

that can be directly implemented using exclusive-OR’s

(14)

Due to the more complex function realized in the sign positioncells, those cells are part of the critical path in the CORDICprocessor.

2) The Radix4 Cell:The radix4 stages implement the fol-lowing equations:

(15)

(16)

Page 7: A CORDIC Processor For FFT Computation And Its Implementation

24 IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL. 6, NO. 1, MARCH 1998

Fig. 8. Layout of the radix4 cell.

TABLE IIPERFORMANCE AND SENSITIVITY TO PROCESS

SPREAD OF MOST SIGNIFICANT BIT RADIX 4 CELL

where . The realization of radix4 cellsincludes the same adder/subtracter unit, but whena multiplication by two is needed. This multiplication canbe done with a shift. Hence, the radix2 stage can be con-verted to radix4 stage by including a multiplexer at theinput, as shown in Fig. 7. This multiplexer is designed basedon the SDCFL O–A–I structure. The output of this mul-tiplexer is the one’s complement of the inputs, so rear-rangements of a few connections in the radix2 cell are re-quired.

The layout of the radix4 cell is depicted in Fig. 8. This cellis 132 m in height, with the same width of the radix2 cell inorder to be abutted in the pipeline.

As was mentioned before, acarry overflow correction isalso needed in the radix4 cell. Due to the increment of logicgates in the signal path, the cell corresponding to the mostsignificant bit is the one to be considered in the criticalpath delay computation of the CORDIC processor. Table IIsummarizes the performance of this cell for different thresholdvariations.

Other stages of the CORDIC processor, such as scalingcompensation stages, are based on these two cells with someminor modifications to obtain simple schemes, and, hence nofurther details will be given in this paper.

3) D-Flip Flop: In order to increase the speed of the pro-cessor a segmentation technique is used, by adding twosequential elements per bit (one for addition and one for carry)to the output of each 4–2 adder. The choice and design of flip-flop are important as they determine the clock structure and,therefore, the final performance. The flip-flop can be designedas one phase or two phases and either level triggered or edgetriggered.

In order to avoid complex structures for clock distributionthe falling edge triggered flip-flop of Fig. 9 was selected.However, this flip-flop has the following several drawbacks:

1) number of transistors;2) frequency limitation of where is the average

delay per gate;3) asymmetrical characteristics.

The flip-flop was designed using the DCFL class of logicto produce a more compact and faster design. This designhas been carried out with area and power consumption opti-mization. All the gates are sized to the minimal dimensionsdepending on the fan-out they are driving. So, NOR gateslabeled 1 and 5 have 10m E-MESFET, gates 3, 4, and 6have 12 m and gate 2 has 15m because they drive a fan-out of 1, 2, and 3, respectively. The flip-flop characteristics canbe seen in Table III. The delay of the flip-flop corresponds tothe path from clock signal to the output of the flip-flop

(17)

and the setup is

(18)

The flip-flop can reach frequencies higher than 2 GHz, asshown in Table III, that are suitable for the purpose of the

Page 8: A CORDIC Processor For FFT Computation And Its Implementation

SARMIENTO et al.: A CORDIC PROCESSOR FOR FFT COMPUTATION 25

(a)

(b)

Fig. 9. (a) Logic diagram and (b) layout of the D-flip-flop.

TABLE IIIPERFORMANCE OF D-FLIP FLOPS

CORDIC processor, and the power consumption is about 1.9mW.

Table III also shows the sensitivity of the D-flip-flop toprocess variations. Since the flip-flop is implemented usingthree-input NOR gates with a fan-out up to three, the aver-age delay per gate is higher than in the DCFL 4–2 adderimplementation.

The output of the flip-flop is taken from which is fasterthan the output. This output is then suitably buffered todrive the wiring capacitance and fan-out.

4) Rounding Error: Once all cells involved in the CORDICprocessor have been designed the microrotation stages aremade by abutment of cells horizontally (depending on thenumber of data bits) and vertically. For a 16 bit processor32 cells are required in each row. However, there is an

error associated to the fixed point representation used in theprocessor and some extra bits should be added in order to getthe required precision and avoid underflow.

The error incurred in the CORDIC processor for 1024 pointFFT of 16-bit due to the representation of the data in fixedpoint with a limited number of bits is as follows [13]:

(19)

Where is the spectral norma of the operation realized inthe iteration of index , and isthe maximum error incurred when representing data in fixedpoint with bits, so . Evaluating (19) for allmicrorotation stages, we conclude

(20)

where and, hence, is taken for the FFTprocessor, which means that 3 underflow bits should be addedto the data width in order to avoid the rounding error. So, dataprocessed in the CORDIC are represented as(0, 18) and (0,18) where 18 is the least significant bit.

Page 9: A CORDIC Processor For FFT Computation And Its Implementation

26 IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL. 6, NO. 1, MARCH 1998

Fig. 10. Placement of the microrotation cells.

5) Placement of the Microrotation Cells:The routing areaof the CORDIC processor is substantial, since the rotationalgorithm requires two shifts of at each level of thepipelined array. Hence, the placement of the different cellsplay an important role in the area of routing and in the globallength of interconnection as well. Two methods have beenproposed for placement:

• the standard method, where both vectors(0, 18) and (0,18) are arranged as continuous vectors

• the method proposed in [17].

In the standard method, using 2 levels of metal for routing(metal1 and metal2, because the wires are long and gate metalrouting would introduce high capacitance), the area requiredfor routing is

(21)

where is the number of bits, is the microrotation index andis the minimal metal 2 pitch.

The second method eliminates the shift of one vector, i.e.,(0, 18), by positioning the cell over the cell ,

. The area of the routing channels and the maximumlength of connections are reduced. The maximum length is[ ], where is the width of the cell, 157 m.In this case the buffer of the D-flip-flop for cells operatingon vector (0, 18) is different from that for cells operatingon vector (0, 18). However, this method is not suitable forthe proposed architecture of the CORDIC processor becausealthough a reduction in channel area for radix2 stages isachieved, this particular placement scheme creates a higherchannel area for radix4 stages.

A more efficient approach is to intercalate theand cellsas presented in Fig. 10. The length of the interconnections forthe sum bits are and for the carry

TABLE IVROUTING AREA IN FUNCTION OF ITERATION INDEX i

bits . The area required for routing is

(22)

where is the minimal metal 2 pitch (we took 5.8m forHGaAs-III Technology). Table IV represents the routing arearequired in this case for each microrotation compared with thestandard placement. A reduction of almost 50% is obtained.

6) Buffering: At the output of each flip-flop an inverter-buffer is placed, whose type and size depend on the associatedload due to wiring and fan-out. The load of each cell is variablesince the length of the connections grows in the order of

where is the iteration index and is thecell width. A sign extension has also to be made and thereforesome of the cells have a high fan-out at their output.

Three versions of the inverter-buffer have been implementedfor three different types of load. The first version consists of aDCFL inverter-buffer. This is used when the cell has a low fan-out and a small load capability, which is the condition under

Page 10: A CORDIC Processor For FFT Computation And Its Implementation

SARMIENTO et al.: A CORDIC PROCESSOR FOR FFT COMPUTATION 27

Fig. 11. Floorplanning of the VMA unit.

which most of the cells work. For higher charge values, due towiring, a SDCFL version has been implemented. Finally, whenlong length wiring (more than 2 mm) is combined with fan-out greater than three, SBFL Logic (super buffer FET logic)is used [18]. The main disadvantage of the SBFL is that itproduces high current peaks at gate switching, which impliesnoise in the power supply buses. Therefore, the power supplyfor SBFL circuits is implemented separately from the rest ofthe logic.

C. Coefficients Table and Control Unit

In order to evaluate the butterflies of the computation stage( ) the angles to take into account are

where . This means that the angles involved in theoperations in stageare a subset of the angles correspondingto the stage 1. As we have mentioned before, including theinitiation stage assures the CORDIC convergence and reducesthe number of angles stored in the ROM to .For the 1024 point FFT a 256-word ROM is required. Takinginto account that 1 bit is needed for coding of for eachradix2 stage and 3 bits for each radix4 stage, we conclude thata 256-word 23-bit ROM is required.

However, a further reduction in the ROM size can beobtained using a novel approach: including an additionalrotation after the initiation stage. In this case, the size of theROM can be reduced to positions and the anglescomputed in the CORDIC are in the range

. It can be shown [13] that the coefficients for intervalsand differ only in the

sign. With an appropriate coding of the coefficients forradix4 it is possible to store only the required one for range

. The control unit, based on the angle beingevaluated, complements these coefficients when needed. In thisway, the ROM designed for storing of’s is 23-bits wide andhas only 129-words.

The main problem found at the time of implementationof ROM memories is the large leakage currents which areproduced in the MESFET transistors. This fact produces adegradation in the noise margins, which is aggravated by thetemperature effects. To overcome this problem, we use PCML(pseudo-current mode logic) in the design of the ROM. The

TABLE VCRITICAL PATH DELAYS AND POWER CONSUMPTION OF VMA

memory which stores the coefficients consists of two coresof 65 24 bits, extracted via a multiplexing stage [19]. Themaximum access time obtained is 0.8 ns, and the averagepower is 0.4 W. The area occupied by this memory is 0.9mm2 with a transistor density of 5500 transistors/mm2.

In order to synchronize the coefficients with the data it isnecessary to add a shift register at the output of the ROM. Thisshift register is made with D flip-flops, similar to those usedfor microrotation pipelining. SBFL buffers must be added atthe output of these flip-flops in order to drive eachline.

D. Postprocessing

The postprocessing stage is application dependent. For thecomplex Fourier transform, after the CORDIC microrotations,(12) is implemented. As data appear in redundant notationthe same adders/subtracters of the basic radix2 cell can beused. Thus the postprocessing stage can be realized with 3–2carry–save adders.

1) Vector Merging Adder:The conversion from redundantrepresentation to two’s complement is performed by a vectormerging adder (VMA). The VMA adds the vectorsum andcarry for each vector element and propagates the carry. It isclear that this operation takes more than one cycle and somekind of pipelining is needed. Following a study of severaladders a carry–lookahead adder (CLA) [2] is implementedconnected as shown in Fig. 11. Table V represents the criticalpath delays of both adders (CLA1 and CLA2) and the powerconsumption of the VMA.

E. Clock Distribution

The clock distribution is the most critical factor in the designof the FFT processor in GaAs MESFET technology. Althoughthere is only one clock signal, its distribution throughout thewhole circuit must be carried out avoiding any possible skew.The clock distribution is made vertically in metal 3 (screenedby ground planes) with which short connection sections canbe made. Each radix2 cell will be moved along vertically bytwo clock lines, one for the addition bit flip-flop and the otherfor the carry bit flip-flop. All the clock lines have the samelength and drive the same number of transistors.

The clock distribution is made via a fan-out tree of threeand five branches, which in the last branch have 81 clocklines. Given that logic families in GaAs exhibit very differentrise and fall times, it is necessary to add two inverters perbranch, as can be seen in Fig. 12, to prevent the pulses fromswallowing too much. The size ratio of these inverters is 1 : 3but in the last stage the ratio is 1 : 1. The inverter-buffer thatdrives the clock input of the flip-flops, is made with SBFL and

Page 11: A CORDIC Processor For FFT Computation And Its Implementation

28 IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL. 6, NO. 1, MARCH 1998

Fig. 12. Clock distribution.

has a fan-out of 25 and a load capacitance of approximately800 fF.

For skew calculations it is necessary to take into account thedriver delay over the clock tree and the effect of line delays.As mentioned before, the clock tree has to be designed andimplemented in such a way that the load conditions of thedrivers and line length in each branch of the tree are exactly thesame. The skew in that case would come from the differencesin the threshold voltage of the transistors placed far away fromeach other and from the line delays. The line delay depends onthe dielectric used. For Vitesse process the mean delay is about11 ps/mm. The skew incurred between the first microrotationcells and the last is in the order of 70 ps due to the line effectand about 80 ps in variations of threshold voltage. The totalskew is in the order of 150 ps.

V. PERFORMANCE EVALUATION

In order to evaluate the performance of the FFT processor,each of its cells has been simulated (including the criticalcharge conditions, temperature variations and voltage drop).The complexity of the FFT processor, with regard to the num-ber of transistors, means that we must consider the variationsin threshold voltage with the manufacturing process (processspread). Cycle time of the processor is given by the followingexpression:

Cycle time Flip-Flop delay Buffers delay

Radix cell delay + Flip-Flop setup

where the radix cell delay term corresponds to the radix4cell associated to the most significant bit that requires signcorrection. In the buffer delay term the buffer associated tothis cell is considered. Maximum clock skew is also takeninto account. Table VI represents the performance of CORDICprocessor and its dependency with process spread.

As it can be seen, the frequency can vary from 700–870MHz. In all cases, the noise margins are kept at acceptablelevels. The processing section occupies an area of about 36

TABLE VICORDIC PERFORMANCE AND SENSITIVITY TO PROCESSSPREAD

mm2, not including the input/output cells. The package usedfor this die is the LD256 (a core limited design), a LDCCpackage which supplies up to 196 inputs/outputs, although lessthan half are needed. The LD256 has a maximum workingfrequency of 700 MHz.

Following the delay evaluation in the critical path, andtaking into account the clock skew and the most criticalconditions, it can be concluded that the FFT processor canoperate at frequencies higher than 700 MHz. With this fre-quency, the evaluation of a 16-bit FFT, with 1024 pointshas an approximate time of 7.5s and an estimated powerconsumption of 12.5 W.

Two integrated circuits have been sent for manufacturing,one containing the different cells that make up the microro-tations and the other containing ROM coefficients. With thefirst of these we tested the operation of the cells under realconditions; and with the second we tested the operation of theROM under diverse temperatures, etc. Fig. 13 shows the chipcontaining the different cells and VMA.

Application specific processors for FFT computation im-plemented in Silicon are by far slower than the presentGaAs realization, e.g., the BDSP9124 from Butterfly DSP,considered the fastest monolithic implementation in CMOS,computes a 1024-point complex FFT in 54s. To reach per-formance levels similar to those achieved, up to six integratedcircuits in CMOS technology working in parallel should beused. This is the case of the series of high performancefast Fourier transform processors from Dassault Electronique,called UFFT, which carry out a 1024 point FFT in 12.8susing six integrated circuits of the same type. The GaAs

Page 12: A CORDIC Processor For FFT Computation And Its Implementation

SARMIENTO et al.: A CORDIC PROCESSOR FOR FFT COMPUTATION 29

Fig. 13. Chip containing CORDIC cells for testing.

implementation compares favorably in terms of speed, powerconsumption and area occupied.

VI. CONCLUSIONS

The GaAs implementation of a 1024-point complex fastFourier transform for 16 bit data has been reported. The archi-tecture is based on an application specific CORDIC algorithmwhich overcomes critical drawbacks of the algorithm. Withonly a few modifications this processor can be adapted tocompute any other orthogonal transform (cosine transform,chirp-Z transform, etc.) or for higher precision. Likewise,the regularity of the architecture makes it convenient forautomated synthesis [20]. The CFFT processor implementedin GaAs operates at 700 MHz clock frequency, contains morethan 120 000 transistors and dissipates about 12.5 W. With thisperformance a 1024-point FFT can be solved in less than 8s.

This work also demonstrates the maturity of GaAs tech-nology in order to implement ultra-high performance signalprocessors in only one chip. With this technology and usingthe same package, a FFT processor for single precision floatingpoint data is also possible. Furthermore, currently availableGaAs technologies (gate lengths less than 0.4m) makefeasible the implementation of double precision floating pointprocessors.

ACKNOWLEDGMENT

The authors would like to thank E. Zapata, J. Bruguera, andK. Eshraghian for their comments on this research.

REFERENCES

[1] M. A. Bayoumi and E. E. Swartzlander, Eds.,VLSI Signal ProcessingTechnology. Boston, MA: Kluwer Academic, 1994.

[2] R. Sarmiento, P. P. Carballo, and A. N´u~nez, “High speed primitives ofhardware accelerators for DSP in GaAs technology,” inInst. Elec. Eng.Proc.—G,Apr. 1992, vol. 139, no. 2, pp. 205–216.

[3] Y. H. Hu, “CORDIC based VLSI architecture for digital signal process-ing,” IEEE Signal Processing Mag.,pp. 16–35, July 1992.

[4] A. M. Despain, “Fourier transform computers using CORDICiterations,” IEEE Transactions on Computers,vol. c-23, no. 10, pp.993–1001, Oct. 1974.

[5] , “Very fast Fourier transform algorithms hardware for implemen-tation,” IEEE Trans. Comput.,vol. C-28, pp. 333–341, May 1979.

[6] K. Eshraghian, A. Blanksby, R. Sarmiento, and C. C. Lim, “Galliumarsenide design methodology & performance estimates for very highspeed circuits using normally-off classes of logic,” inGallium ArsenideApplications Symp.,IEEE-MTT Society, Torino, Italy, Apr. 1994, pp.203–206.

[7] J. V. Volder, “The CORDIC trigonometric computing techniques,”IRETrans. Electron. Computing,vol. EC-8, pp. 330–334, Sept. 1959.

[8] J. S. Walther, “A unified algorithm for elementary functions,” inSpringJoint Comput. Conf.,1971, pp. 379–385.

[9] S.-F. Hsiao and J. M. Delosme, “Householder CORDIC algorithm,”IEEE Trans. Comput.,vol. 44, Aug. 1995.

[10] H. David and H. Meyr, “The differential CORDIC algorithm: Constantsscale factor redundant implementations,”IEEE Trans. Comput.,vol. 45,Mar. 1996.

[11] E. Antelo, J. D. Bruguera, and E. Zapata, “Unified mixed radix2-radix4redundant CORDIC,”IEEE Trans. Comput.,vol. 45, Sept. 1995.

[12] E. L. Zapata and F. Arguello, “Application-specific architecture forfast transforms based on the successive doubling method,”IEEE Trans.Signal Processing,vol. 41, pp. 1476–1481, Mar. 1993.

[13] F. Tobajas, “Application specific processor for FFT computation inGaAs technology,” Master thesis, Centre for Appl. Microelectron., Univ.Las Palmas de Gran Canaria, Spain, May 1996, in Spanish.

[14] J. W. Cooley and J. W. Tukey, “An algorithm for the machine calcu-lation of complex Fourier series,”Math. Comput.,vol. 19, no. 4, pp.297–301, 1965.

[15] Foundry Design Manual Ver. 5.0,Vitesse Semiconductor Corp., Mar.1991.

[16] T. G. Noll, “Carry-save architectures for high-speed digital signalprocessing,”J. VLSI Signal Processing, 3,pp. 121–140, 1991.

[17] J. A. Harding, “Second generation redundant CORDIC rotation en-gines,” Masters thesis, Univ. California, Los Angeles (UCLA), 1991.

[18] S. Long and S. Butner,Gallium Arsenide Digital Integrated CircuitDesign. New York: McGraw Hill, 1990.

[19] L. Hernandez, F. Tobajas, J. F. Lopez, R. Sarmiento, and A. Nu~nez,“Current mode techniques for embedded gallium arsenide ROM’s,”in Proc. XI Design Integrated Circuits Syst. Conf. DCIS’96,CPDAPublishers, Diagonal 647, 08028, Nov. 1996, pp. 87–92.

[20] J. A. Montiel, “OLYMPO: A gallium arsenide cell compiler,” Ph.D.dissertation, Center for Appl. Microelectron., Univ. Las Palmas de GranCanaria, Spain, 1994, (in Spanish).

Roberto Sarmiento (S’89–M’92) received the En-gineer and Doctorate degrees from the School ofElectrical and Electronic Engineering, University ofLas Palmas de Gran Canaria, Las Palmas de GranCanaria, Spain.

In 1993, he was a Visiting Professor at theUniversity of Adelaide, South Australia, Australia.Since 1987, he has been working in gallium arsenideVLSI design. In this topic, he was Activity Leaderwithin PATMOS project (ESPRIT BRA 3237) andcurrently is involved in two ESPRIT projects and

two research programs funded by the Spanish Government. He is alsodesigning full-custom circuits for Vitesse Semiconductor Corporation usingGaAs technology. He has published 14 journal papers and more than 40conference papers in the field. In 1995 and 1996, he was Director of theinternational course “GaAs VLSI: Circuits and Systems,” held in Las Palmasde Gran Canaria. His research interests are: design for performance, high-speed DSP’s, GaAs VLSI design, logic synthesis, and data-path generation.

Page 13: A CORDIC Processor For FFT Computation And Its Implementation

30 IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL. 6, NO. 1, MARCH 1998

Felix Tobajaswas born in Zaragoza, Spain, in 1971.He received the M.E. degree in telecommunicationengineering from the University of Las Palmas deGran Canaria, Spain, in 1996. He is working towardthe Ph.D. degree in telecommunication engineeringat the University of Las Palmas de Gran Canaria.

His research interests include computer arith-metic, GaAs VLSI design, and application-specificVLSI architectures for digital signal processing.

Valentın de Armaswas born in Las Palmas de GranCanaria, Spain, in November 1966. He received theM.S. degree in electrical engineering from the Uni-versity of Las Palmas de Gran Canaria, Las Palmasde Gran Canaria, Spain, in 1991. He is workingtoward the Ph.D. degree in electrical engineering atthe University of Las Palmas de Gran Canaria.

In 1991, he joined the Centre for Applied Micro-electronics as a Researcher engaged on hardwareaccelerators systems and subsystems design. He hasparticipated in PATMOS (ESPRIT BRA 3237) and

is involved in two ESPRIT projects and two research programs funded by theSpanish Government. His research interests include GaAs integrated circuitsand systems design and datapath design automation.

Roberto Esper-Chaın was born in Las Palmas deGran Canaria, Spain, in 1966. He received the B.E.degree in computer science and the M.E. degree intelecommunication engineering from the Universityof Las Palmas de Gran Canaria, Spain. Since 1993,he is working in GaAs and BiCMOS high-speed de-sign toward the Ph.D. degree in telecommunicationengineering at the University of Las Palmas de GranCanaria.

He is currently Assistant Professor of AnalogElectronics. In 1990, he joined the Centre of Applied

Microelectronics. From 1990 to 1991, he worked in software development forinstrumentation and communication areas and participated in PATMOS project(ESPRIT BRA 3237). In 1992, he worked for Telefonica de Espana S.A. at theSatellite Communication Center of Gran Canaria, Spain. His research interestsare analog and digital high-speed design, digital communications, and ATMswitch design.

Jose F. Lopez (M’94) received the five-year de-gree in electronic physics (Licenciado en F´ısicaElectronica) from the University of Sevilla, Spain,in 1989, and the Ph.D. degree from the Universityof Las Palmas de Gran Canaria (ULPGC), LasPalmas de Gran Canaria, Spain, in 1994, where heis currently an Associate Professor.

In 1992, he was with Thomson–CSF, Orsay,France, where he was in charge of GaAs memorydesigns. In 1995, he was with the ElectromagneticsInstitute at the Technical University of Denmark and

in 1996 was an Invited Researcher at Edith Cowan University, Perth, WesternAustralia. His research interests are high-speed digital systems and testing.

Dr. Lopez received an award from the ULPGC for his contributions onGaAs memories during his doctorate.

Juan A. Montiel-Nelson (M’93) received the M.S.degree in electrical engineering from the Universityof Las Palmas de Gran Canaria, Las Palmas de GranCanaria, Spain, in 1991, and the Ph.D. degree fromthe same university in 1994.

In 1996, he was a Visiting Scientist at the Depart-ment of Computer and Communication Engineer-ing of Edith Cowan University, Western Australia,Australia. He is currently Titular Professor at theUniversity of Las Palmas de Gran Canaria. Since1990, he has been with the Centre for Applied

Microelectronics (CMA) working on gallium arsenide VLSI design. Hehas participated in three EU ESPRIT Programme projects and two CICYTNational Programme projects. His chief interests include VLSI physicaldesign automation focusing on high-speed circuits and systems, and high-performance VLSI signal and video processors.

Antonio Nunezwas born in Madrid, Spain, in 1951.He received the engineering degree in 1974 fromthe School of Telecommunication Engineering at theTechnical University of Madrid, Spain, and receivedthe Ph.D. degree in 1981 from the same university.

From 1974 to 1976, he worked as a Consultantfor Telefonica de Espana, S.A. He was a ResearchScientist with the Electrical Engineering Departmentof EPFL Lausanne in 1981, and a Visiting Scientist(1986–1987) and Visiting Professor (1987–1988)at the School of Electrical Engineering of Purdue

University, IN. He was appointed Titular Professor at the University of LasPalmas GC, in 1982, and Professor, in 1989. He is currently Director ofthe Centre for Applied Microelectronics (CMA) at the same university. Hehas published five edited books, over 30 journal papers, and 70 conferencepapers. His current research fields include GaAs technology (circuit, logic, andmodule design, RISC and DSP processor core designs, telecom IC designs,GaAs ASIC synthesis, and GaAs full custom compilation), VLSI microarchi-tectures (advanced digital signal processor and application specific integratedprocessors), and optimization of digital integrated circuits (including routingand layout techniques, power estimation, timing, and interconnect analysis).