FIR Filter Fits in an FPGA using a Bit Serial Approach

Similar documents
Implementing Logic with the Embedded Array

[Krishna, 2(9): September, 2013] ISSN: Impact Factor: INTERNATIONAL JOURNAL OF ENGINEERING SCIENCES & RESEARCH TECHNOLOGY

A New network multiplier using modified high order encoder and optimized hybrid adder in CMOS technology

Digital Integrated CircuitDesign

CHAPTER 4 ANALYSIS OF LOW POWER, AREA EFFICIENT AND HIGH SPEED MULTIPLIER TOPOLOGIES

AUTOMATIC IMPLEMENTATION OF FIR FILTERS ON FIELD PROGRAMMABLE GATE ARRAYS

An Optimized Wallace Tree Multiplier using Parallel Prefix Han-Carlson Adder for DSP Processors

Abstract. 2. MUX Vs XOR-XNOR. 1. Introduction.

6. DSP Blocks in Stratix II and Stratix II GX Devices

Design A Redundant Binary Multiplier Using Dual Logic Level Technique

Digital Electronics 8. Multiplexer & Demultiplexer

Multiplier Design and Performance Estimation with Distributed Arithmetic Algorithm

An Optimized Implementation of CSLA and CLLA for 32-bit Unsigned Multiplier Using Verilog

Computer Arithmetic (2)

10. DSP Blocks in Arria GX Devices

CHAPTER 1 INTRODUCTION

AREA EFFICIENT DISTRIBUTED ARITHMETIC DISCRETE COSINE TRANSFORM USING MODIFIED WALLACE TREE MULTIPLIER

Implementation of Parallel Multiplier-Accumulator using Radix- 2 Modified Booth Algorithm and SPST

Multi-Channel FIR Filters

An Optimized Design for Parallel MAC based on Radix-4 MBA

A New High Speed Low Power Performance of 8- Bit Parallel Multiplier-Accumulator Using Modified Radix-2 Booth Encoded Algorithm

DESIGN OF EFFICIENT MULTIPLIER USING ADAPTIVE HOLD LOGIC

Techniques for Implementing Multipliers in Stratix, Stratix GX & Cyclone Devices

DIGIT SERIAL PROCESSING ELEMENTS. Bit-Serial Multiplication. Digit-serial arithmetic processes one digit of size d in each time step.

Modified Booth Encoding Multiplier for both Signed and Unsigned Radix Based Multi-Modulus Multiplier

International Journal Of Scientific Research And Education Volume 3 Issue 6 Pages June-2015 ISSN (e): Website:

Lecture 14: Datapath Functional Units Adders

Data output signals May or may not be same a input signals

CHAPTER 3 ANALYSIS OF LOW POWER, AREA EFFICIENT AND HIGH SPEED ADDER TOPOLOGIES

IJCSIET--International Journal of Computer Science information and Engg., Technologies ISSN

Design and Characterization of 16 Bit Multiplier Accumulator Based on Radix-2 Modified Booth Algorithm

Vector Arithmetic Logic Unit Amit Kumar Dutta JIS College of Engineering, Kalyani, WB, India

ENHANCING SPEED AND REDUCING POWER OF SHIFT AND ADD MULTIPLIER

On Built-In Self-Test for Adders

CS302 Digital Logic Design Solved Objective Midterm Papers For Preparation of Midterm Exam

CHAPTER 5 DESIGN OF COMBINATIONAL LOGIC CIRCUITS IN QCA

Mahendra Engineering College, Namakkal, Tamilnadu, India.

High Speed Binary Counters Based on Wallace Tree Multiplier in VHDL

A Survey on Power Reduction Techniques in FIR Filter

A Novel High Performance 64-bit MAC Unit with Modified Wallace Tree Multiplier

Using Soft Multipliers with Stratix & Stratix GX

IJMIE Volume 2, Issue 5 ISSN:

Design of a High Speed FIR Filter on FPGA by Using DA-OBC Algorithm

High Speed Vedic Multiplier Designs Using Novel Carry Select Adder

High performance Radix-16 Booth Partial Product Generator for 64-bit Binary Multipliers

Digital Logic, Algorithms, and Functions for the CEBAF Upgrade LLRF System Hai Dong, Curt Hovater, John Musson, and Tomasz Plawski

Modified Partial Product Generator for Redundant Binary Multiplier with High Modularity and Carry-Free Addition

Performance Analysis of Multipliers in VLSI Design

Low Power Approach for Fir Filter Using Modified Booth Multiprecision Multiplier

Design of a Power Optimal Reversible FIR Filter ASIC Speech Signal Processing

SIGNED PIPELINED MULTIPLIER USING HIGH SPEED COMPRESSORS

EXPERIMENT #5 COMBINATIONAL and SEQUENTIAL LOGIC CIRCUITS Hardware implementation and software design

Combinational Logic Circuits. Combinational Logic

POWER GATING. Power-gating parameters

Keysight Technologies Pulsed Antenna Measurements Using PNA Network Analyzers

VLSI Implementation & Design of Complex Multiplier for T Using ASIC-VLSI

Adder (electronics) - Wikipedia, the free encyclopedia

COMBINATIONAL and SEQUENTIAL LOGIC CIRCUITS Hardware implementation and software design

Multiple Constant Multiplication for Digit-Serial Implementation of Low Power FIR Filters

EE241 - Spring 2004 Advanced Digital Integrated Circuits. Announcements. Borivoje Nikolic. Lecture 15 Low-Power Design: Supply Voltage Scaling

Chapter 11. Digital Integrated Circuit Design II. $Date: 2016/04/21 01:22:37 $ ECE 426/526, Chapter 11.

CHAPTER 4 GALS ARCHITECTURE

JDT EFFECTIVE METHOD FOR IMPLEMENTATION OF WALLACE TREE MULTIPLIER USING FAST ADDERS

AN FPGA IMPLEMENTATION OF ALAMOUTI S TRANSMIT DIVERSITY TECHNIQUE

A Survey on A High Performance Approximate Adder And Two High Performance Approximate Multipliers

CHAPTER III THE FPGA IMPLEMENTATION OF PULSE WIDTH MODULATION

UNIT-II LOW POWER VLSI DESIGN APPROACHES

ELLIPTIC curve cryptography (ECC) was proposed by

Performance Analysis of a 64-bit signed Multiplier with a Carry Select Adder Using VHDL

Tirupur, Tamilnadu, India 1 2

Design and Analysis of Row Bypass Multiplier using various logic Full Adders

A Parallel Multiplier - Accumulator Based On Radix 4 Modified Booth Algorithms by Using Spurious Power Suppression Technique

A Review on Different Multiplier Techniques

Trade-Offs in Multiplier Block Algorithms for Low Power Digit-Serial FIR Filters

Design and Simulation of Convolution Using Booth Encoded Wallace Tree Multiplier

DESIGN OF LOW POWER MULTIPLIER USING COMPOUND CONSTANT DELAY LOGIC STYLE

Design of Baugh Wooley Multiplier with Adaptive Hold Logic. M.Kavia, V.Meenakshi

DESIGN OF MULTIPLE CONSTANT MULTIPLICATION ALGORITHM FOR FIR FILTER

Comparative Analysis of Multiplier in Quaternary logic

Module 5. DC to AC Converters. Version 2 EE IIT, Kharagpur 1

Design of Area and Power Efficient FIR Filter Using Truncated Multiplier Technique

Implementing Multipliers with Actel FPGAs

FPGA Implementation of Wallace Tree Multiplier using CSLA / CLA

Lecture #2 Solving the Interconnect Problems in VLSI

AREA AND DELAY EFFICIENT DESIGN FOR PARALLEL PREFIX FINITE FIELD MULTIPLIER

Review of Booth Algorithm for Design of Multiplier

IMPLEMENTATION OF AREA EFFICIENT MULTIPLIER AND ADDER ARCHITECTURE IN DIGITAL FIR FILTER

Lecture 3, Handouts Page 1. Introduction. EECE 353: Digital Systems Design Lecture 3: Digital Design Flows, Simulation Techniques.

Design and Implementation Radix-8 High Performance Multiplier Using High Speed Compressors

EE141-Spring 2007 Digital Integrated Circuits

Spec. Instructor: Center

PROGRAMMABLE ASIC INTERCONNECT

Study of Power Consumption for High-Performance Reconfigurable Computing Architectures. A Master s Thesis. Brian F. Veale

Functional analysis of DSP blocks in FPGA chips for application in TESLA LLRF system

EECS 150 Homework 4 Solutions Fall 2008

Towards Real-time Hardware Gamma Correction for Dynamic Contrast Enhancement

Implementation of Memory Less Based Low-Complexity CODECS

An Efficient Reconfigurable Fir Filter based on Twin Precision Multiplier and Low Power Adder

An Analysis of Multipliers in a New Binary System

COMPARISION OF LOW POWER AND DELAY USING BAUGH WOOLEY AND WALLACE TREE MULTIPLIERS

Transcription:

FIR Filter Fits in an FPG using a it erial pproach Raymond J. ndraka, enior Engineer Raytheon Company, Missile ystems Division, Tewksbury M 01876 INTRODUCTION Early digital processors almost exclusively used bit serial architectures because of the high cost of hardware. it serial machines have been supplanted by parallel architectures mostly due to the low cost of hardware today. s a result, bit serial solutions are often overlooked in applications where they may be the better choice. This is especially true when designing with Field Programmable Gate rrays. Many of the elements (Eg. multipliers) used in parallel structures will not even fit in an FPG. In those cases where an element fits, the routing resources often are insufficient or the resulting design is to slow to be an attractive replacement for dedicated function parts. y returning to a bit-serial architecture, it is frequently possible to pack a relatively complex function into a single FPG. throughput improvement may even be realized over an equivalent parallel structure implemented in FPGs. To illustrate the advantages of bit serial designs for FPGs, I examine the implementation of an entire FIR filter in a single FPG using only bit serial elements. What is it erial? it parallel designs process all of the bits of an input simultaneously at a significant hardware cost. In contrast, a bit serial structure processes the input one bit at a time, generally using the results of the operations on the first bits to influence the processing of subsequent bits. The advantage enjoyed by the bit serial design is that all of the bits pass through the same logic, resulting in a huge reduction in the required hardware. Typically, the bit serial approach requires 1/n th of the hardware required for the equivalent n-bit parallel design. The price of this logic reduction is that the serial hardware takes n clock cycles to execute, while the equivalent parallel structure executes in one. The time-hardware product, however, for the serial structure is often smaller than for equivalent parallel designs because the logic delays between registers are generally significantly smaller. This means that the serial machine can operate at a higher clock frequency. In the case of FPGs, signal routing contributes significant propagation delays and often uses up logic cells. The serial structures tend to have very localized routing, often to only one destination. In contrast, the parallel machines usually need signals extended across the width of the processing element. The limited and slow routing resources in FPGs make the serial processing elements even more attractive. In some cases, the overall throughput for a serial design implemented in an FPG can actually exceed that of an equivalent parallel design in the same device. FPG selection and background The techniques described in this paper apply to any FPG, as well as to VLI designs (which may benefit from the same advantages-especially where high data rates are not necessary). For the purpose of this project, the CLI 6000 series FPGs made by Concurrent Logic Inc (CLI) were selected. These FPGs are RM based, and contain a 56 x 56 array of logic cells interconnected via busses and direct wires to nearest neighbors. Each cell basically consists of a half adder with a D flip flop on the sum output and some extra logic to allow other functions to be programmed. The cell is programmed to one of 64 configurations by a dedicated ram under the cell. The cells each have 2 (3 for certain special functions) inputs and 2 outputs, all of which are accessible from any side of the cell. Each input and output can be directly wired to/from any of the cell s four nearest neighbors, or to any of 4 local busses which extend to other cells in the row or column. The local busses are broken into segments eight cells long and are connected across the breaks by programmable repeaters. The relatively simple cell in the CLI array is fairly well suited to the bit serial structures. THE IC UILDING LOCK The most basic functions required for nearly any signal processor include addition, negation and delays. These blocks can then be used to construct the more complicated structures such as multipliers. In most cases, using a bit-serial ar- 1

chitecture simplifies the hardware required since all of the bits pass through a single bit wide element. I will discuss the construction of these basic elements in the next paragraphs. D Q it erial dder bit-serial adder is constructed using a full adder with registers on both its carry and sum outputs. The registered carry output is wired back to the carry input of that full adder. In operation, the two words to be added together are simultaneously shifted least significant bit first into the remaining two inputs. The carry out from the addition of each bit is stored and then used in the summation of the next bit. In effect, the carries are held stationary while the inputs are rippled past. This adder is also known as a Carry ave dder because of the nature of its operation. The output of the circuit is registered to allow bit pipelining. The resulting latency is one bit time. The serial adder must be cleared before each word to avoid errors. The input words and output word are always equal length. s with parallel addition, the radix points of the input words must be aligned. Y H C POND H C D Q D Q a) Carry-ave dder chematic Y PH 1 PH PINV b) Example Carry-ave dder implementation. Figure 1. Carry-ave dder schematic and layout. Cells are: PH= half adder with a register on sum output, POND = non-registered half adder, PINV = inverter (necessary to correct inverted half adder output). + D a) Two's Complement chematic + POR PH b) Two's Complement Layout and Implementation (input wired to two cells and must be a buss input) Figure 2. Two's Complement schematic and layout. FPG cells are: PH= half adder with a register on sum output, POR = OR with register on output. it erial Two s Complement The second elementary function required is a part which will compute the two's complement of the input argument. Recalling the serial algorithm for two's complement (starting at least significant bit copy each bit until first one is encountered then invert remaining bits) yields a simple solution. serial two's complement circuit is shown in figure 2. The input should be presented least significant bit first. The carry (detect)flip-flop must be reset before each input word, since it causes the OR to invert the input continuously after the first logic one is detected. The output is registered, so the function has a one bit latency. Delays The remaining elementary function is the bit delay (a bit time is one clock cycle). The delay is useful for aligning words as well as for producing word delays required by some algorithms. The delay is simply a D flip-flop inserted into the data path for each bit of delay desired. Word delays are constructed from a string of bit delays equal in length to the number of bits in the word. sample layout of a word delay for a filter is shown in figure 3. Q 2

out (to next delay and to YIN bus) figure 3. Example Word delay HIGHER FUNCTION The repertoire of functions required to implement a FIR filter is rounded out with a multiplier and a column adder, both of which are constructed from the elements already discussed. Other DP functions may require additional functions. Multiplier Multipliers are essential to most signal processing algorithms. The simple serial by parallel multiplier is particularly well suited for FPG implementation because all of its routing is to nearest neighbors with the exception of the input. The number of cells is proportional to the number of bits in the parallel input. One input of this multiplier is parallel while the other is bit serial with the least significant bit presented first. The output is bit serial, also with the least significant bit first. The architecture of a general serial by parallel multiplier is shown in figure 4a. This multiplier performs the familiar shift-add algorithm: the parallel input is multiplied in turn by each bit of the serial input as it is presented, and each of those partial products is added to the shifted accumulation of the previous products. The bitwise products are simply the logical NDs of the input bit with each of the parallel input bits. The shifting accumulator is easily constructed by chaining a series of carrysave adders together so that inputs to the accumulator are bit parallel and the sum is downshifted on each operation. The serial output is then taken from the output of the least significant bit adder. The output bit has the same weight as the previous serial input bit, yielding a latency of one bit. The number of bits in the output is equal to the sum of the number of bits in each of the inputs. ince the serial input has to be of the same length as the output, it is extended with sign bits. in Multiplication of negative (two s complement) numbers using an unmodified shift-add algorithm will yield an error in the upper half of the product. This error is the result of the inputs not being sign extended to account for the growth of the product (number of bits in the product is equal to the sum of the bits in the multiplicands). The serial input of the parallel by serial multiplier does not suffer from this error since it must be extended to account for the growth in the product. The parallel () input will suffer if not corrected. Fortunately, the correction can be made without adding bits to the multiplier hardware by recognizing that the sign extension of, if taken alone, multiplies the serial input by either zero or negative one. This result is shifted into the lower bits of the multiplier during the course of the multiplication. The sign extension of the parallel input can be accomplished by replacing the most significant adder of the multiplier by a two's complement stage. The input of this stage is the bit product (ND) of the serial input and the sign bit of the parallel input. The analysis of the correction for negative inputs reveals that the and Y inputs do not have to have the same number of bits. The input is essentially sign extended infinitely by the two s complement block, and the Y input is dependent only upon the length of the serial input. The hardware for the multiplier is independent of the precision of the serial input. It is therefore possible to save some hardware in cases where the parallel input does not need the precision of the serial input. This fact - could be advantageous in the FIR filter, since limited precision in the coefficients limits the placement of the filter s zeros but does not otherwise contribute to noise in the output. The serial multiplier must be cleared before a new word is input to prevent errors. This is especially true if the (parallel) input is negative since the two s complement circuit cannot self clear. No other controls are required. econdly, the serial input has to be sign extended by the number of bits in the parallel input (ie to make the number of bits in the serial input equal to the number of bits in the output). The output is always a full precision output. 3

Y erial Input Parallel Input n-1 n-2 1 0 erial Output P 2's C CDD CDD CDD a) igned erial by Parallel Multiplier chematic Logic ero Y erial Input 2's C CDD CDD erial Output P CDD b) igned erial by Parallel Multiplier with fixed parallel input (value determined by connections to Yin or logic zero) Y 2's C CDD CDD CDD CDD CDD c) Multiplier Layout for Pitch=2. haded cells correspond to POND cell in adders (note adders have been flipped vertically with respect to the adder shown earlier) Figure 4 erial by Parallel Multiplier rchitectures and Layouts P The partial products presented to the shifting accumulator are generated by the logical ND of the input serial bit with each bit of the parallel input. If the parallel input is fixed, the ND gates can be eliminated by connecting the inputs to each adder directly to the Y (serial) input or to logic zero depending upon the value of the corresponding bit in the fixed parallel input. The FPG is RM based, so the value of the parallel input can still be changed by reprogramming if this is done. ince the coefficients of an FIR filter are normally changed infrequently with respect to the data rate, I chose to take advantage of this simplification. This eliminates the ND gates used to generate the product, and more significantly, the logic required for setting and holding the parallel input values. s a note, a further simplification of the fixed input multiplier is possible by noting that the adders associated with zeros in the parallel input reduce to a single delay flip-flop. I chose not to implement that reduction to minimize the changes required in reprogramming coefficients to the FIR filter. The simplified multiplier is shown in figure 4b. The n bit multiplier is constructed in the FPG by stringing n-1 of the carry-save adders (CDD) and a two's complement together. One input of each CDD is supplied by the previous stage output. The other inputs are supplied by one of two local busses (the Y input to the multiplier for ones, or logic zero for zeros): the parallel input to the multiplier is programmed by the local bus connections only. The layout used is shown in figure 4c. lternatively, a multiplier with a 3 cell pitch may be created using a different layout for the CDD adders to allow more parallel input bits to fit in the width of the FPG. Column dder n adder structure capable of simultaneously adding more than two inputs is a desirable function. This is easily accomplished by a tree of serial adders. Each serial adder (carry save adder) combines two input streams into one output, hence each level of the tree structure reduces the number of serial streams by half, adding one bit time of latency in the process. column adder constructed in this manner allows an arbitrarily large number of inputs to be summed together without a sacrifice in the bit rate. If an odd number of inputs exist in a level, the odd input can be passed on to the next level via a register to keep the alignment of the bits. If overflow is to be avoided, one bit of growth must be allowed for 4

each level in the adder. ince the input and output must have a similar number of bits, the input must include extra sign (guard) bits to prevent overflow. The number of levels and hence the latency and number of guard bits for an n input column adder is equal to Log 2 (n) rounded up to an integer. s with single serial adders, the inputs and output are presented least significant bit first. The column adder architecture is illustrated in figure 5. n FPG implementation designed to match to a stack of 2 cell tall multipliers is shown in figure 6. Note that the CDD layouts were optimized for the application. 10 9 8 7 6 5 4 3 2 1 0 D Q D Q CDD CDD CDD CDD CDD CDD CDD CDD CDD CDD Figure 5. Example erial Column dder rchitecture PUTTING IT LL TOGETHER: N FIR FILTER The FIR filter is essentially a discrete convolution of the input signal with a set of coefficients. Mathematically, the filter can be defined as: Y [k] = n C i [k-i] The signal flow diagram shown in figure 7 illustrates the algorithm and suggests an architecture using the elements created above. The word delays are inserted for the delay blocks. The multiplications shown in the flow graph correspond to the serial by parallel multipliers with their parallel inputs programmed with the value of the associated coefficient. separate word delay and multiplier are used for each tap in the filter. ll of the summation blocks shown are combined and replaced by a column adder with as many inputs as there are taps. Figure 8 shows an example layout and interconnect for a seven tap filter using the functions developed earlier. 0 1 2 3 POND PH PH PH POND PH 1 PINV 1 PINV POND PH CDD for higher level Connected by busses PH 1 PINV Figure 6. Portion of erial Column dder layout designed to match the outputs of a stack of 2 cell high multipliers. Each shaded cell group is a carry save adder. This pattern is repeated to create the first two levels of the column adder. The remaining levels are inserted in the 2 x 3 voids left in the resulting layout. s each word is shifted into the filter (least significant bit first of course) it is fed to the first multiplier where it is multiplied by C0. t the same time, The input is fed to the delay chain where it is delayed exactly one word time interval so it arrives at the second multiplier on the same clock that the second word is presented to the first multiplier. The succeeding words eventually fill the delay so that the each of the last n (n=number of taps) words received are simultaneously multiplied by the appropriate coefficients. The outputs of the multipliers are fed to the column adder to perform the summation. The latency for the entire filter is Log2(# taps) +1 rounded up to the next integer. This reflects the latency of one for the multiplier 5

added to the column adder latency. The delays do not contribute to the latency figure, as they are used to provide the past inputs to multipliers. input C 0 logic zero source 0 C 1 C n-2 C n-1 output Figure 7. FIR filter signal flow diagram. erial Input erial Multiplier erial Multiplier erial Multiplier erial Multiplier erial Multiplier erial Multiplier erial Multiplier C O L U M N D D E R erial Output Figure 8. erial FIR Filter as implemented in FPG (example has 7 taps). The Coefficients are fixed inputs to the serial by parallel multipliers. Input, Output and Control oth the input and output of the filter are serial data streams with each word presented least significant bit first. The input words are of the same length as the output. The word length is equal to the sum of the word sizes of the input (number of bits excluding sign extension required for processor), the coefficients (length of multipliers) and the number of levels in the column adder. The word size of the input need not be the same as that of the coefficients. The input is sign extended to bring it to the same length as the output. This requirement is due to the nature of the serial processing; the inputs need to be as long as the outputs. The extra few bits due to the column adder allow the column sum to grow without overflow. The multiplier array must be reset before each new word begins to shift in. The delays, however, cannot be reset since they hold the old words. In the FPG implementation, a local reset was wired to the array columns corresponding to to the multipliers and column adder instead of the global reset. That local reset was brought out as a control line in addition to the global reset which clears the filter. More taps may be obtained by cascading two filters. This is done by adding an extra word delay to the end of the delay chain to feed the serial input of the second filter. The serial outputs of the two filters are summed using a serial adder to obtain the final output. This expansion scheme can be extended to create any number of taps by chaining chips together via the delay chain and summing their outputs with a column adder. That column adder could easily be included one of the devices. The filter coefficients are determined when the device is programmed. The value of each bit of the coefficient is determined by connections to a single cell (except for the coefficient sign bits which have two connections), so to change a bit, only one cell needs to be updated in the device program (assuming the device was routed in a predictable manner). The bit values of the filter coefficients are defined by the connections of each stage of the multiplier to the corresponding Y bus (for a 1) or logic zero bus (for a 0). The coefficient bits are ordered on the multipliers so that the most significant bit corresponds to the input end of the multiplier. The coefficients are ordered in the FIR filter so that C0 is at the input end of the filter. The CLI FPG has a feature which allows partial reprogramming of the array while the remaining portion remains functional. This feature should allow changing coefficients on the fly. Even if this feature is not usable, FIR coefficients are usually changed as a result of a change of context, where the outputs are meaningless during the change anyway. ccording to the CLI data sheets, complete device reprogramming typically takes place in 8ms. DEIGN EMENT The real-estate occupied by the filter is determined mainly by the layout of the carry-save adders, the number of bits in the coefficients and the number of taps in the filter. If the multipliers are constructed of adders 3 cells wide and 2 cells tall (adders are chained horizontally), one device can contain a 27 tap filter with 12 bit coefficients and 17 bit inputs. lternatively, if the multipliers are made of 3 cell tall by 2 cell wide adders, one device will support up to 18 taps with 18 bit coefficients and 25 bit inputs. These are respectable results for a single FPG. dditional taps are easily had by expanding the filter to multiple devices as discussed above. 6

Using the maximum timing parameters from the CLI device specification, I found the maximum internal clock to clock delay in the FIR filter to be about 30 ns (attributed to the bus transit time on the Y inputs to the multipliers). This translates to a bit rate of about 33 Mhz. For the example 27 tap filter with 12 bit coefficients and 16 bit input data (33 bit output), this means a data rate approaching 1 million words per second. Placement and Routing The regular structure and compactness of the elements yields a remarkably high utilization of around 70%. This figure is arrived at by counting the number of cells used as logic (not wire cells) and dividing by the total number of cells in the rectangular area covered by the filter. s a comparison, a 25% utilization is considered good. The placement and routing of the cells is critical to obtaining the predicted data rate and logic density. Unfortunately, the automatic placement tool is incapable of producing satisfactory results, so hand placement is necessary. The automatic router does a decent job provided it has a good placement to start from. The routed solution, however, is not optimum. dditionally, the auto route does not connect the multiplier Y and busses in a predictable manner, so partial reprogramming would not be possible. These limitations could be overcome by writing a generator program which takes advantage of the regular structure of the filter to create a placed and routed data base. The generator would have the added benefit of drastically reducing design time and probability of errors. REFERENCE [1] P. Denyer and D. Renshaw, VLI ignal Processing: it erial pproach. elected Readings, ddison-wesley, 1985. [2] C.R. Rupp, Digital Functions and Processors, work in progress, University of Massachusetts at Lowell, 1992. [3] P.J. Graumann and L.E. Turner, Implementing Digital ignal Processing lgorithms using Pipelined it-erial rithmetic and Field Programmable Gate rrays, FPG 92, February 1992. [4] Concurrent Logic Inc., "CLI 6000 eries Field Programmable Gate rrays", Data heet, Concurrent Logic Inc., December 1991. CONCLUION In this paper, I have shown that it is possible to pack a relatively complex digital signal processing function into an FPG by using bit serial structures. The cost of bit serial architectures in terms of more clock cycles can be offset to some degree by the shorter delay paths between pipeline registers. The resulting design is fast enough for many applications where a bit serial process may not have been considered. The bit serial design philosophy is extendable to other FPGs, VLI designs and other places, and is as applicable today as it was for the early processors. 7

UTHOR' IOGRPHY Raymond J. ndraka is a senior engineer for Raytheon Company's Missile ystems Division, where he has been designing digital signal processors for radar systems and managing projects for the last 5 years. Ray graduated from Lehigh University in December 1983 with his EE. He then spent 4 1 /2 years in the ir Force researching techniques for recovering data masked by noise and managing development contracts before joining Raytheon. He recently earned his MEE from the University of Massachusetts at Lowell. Ray enjoys flying, tinkering and spending time with his wife and two boys. 8