103
Optimization Techniques for Throughput Enhancement in FPGA Specific Designs Author Hamid Mehmood Allah Ditta Kamboh 11-UET/PhD-CASE-CP-59 Thesis Supervisor Dr. Shoab A. Khan DEPARTMENT OF ELECTRICAL AND COMPUTER ENGINEERING, CENTER FOR ADVANCED STUDIES IN ENGINEERING, UNIVERSITY OF ENGINEERING AND TECHNOLOGY TAXILA Summer 2014

Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

Optimization Techniques for Throughput Enhancement in

FPGA Specific Designs

Author

Hamid Mehmood Allah Ditta Kamboh

11-UET/PhD-CASE-CP-59

Thesis Supervisor

Dr. Shoab A. Khan

DEPARTMENT OF ELECTRICAL AND COMPUTER ENGINEERING,

CENTER FOR ADVANCED STUDIES IN ENGINEERING,

UNIVERSITY OF ENGINEERING AND TECHNOLOGY

TAXILA

Summer 2014

Page 2: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

Optimization Techniques for Throughput Enhancement in

FPGA Specific Designs

A dissertation submitted in partial fulfilment of the degree of Doctor of Philosophy (PhD)

in Electrical and Computer Engineering

Author

Hamid Mehmood Allah Ditta Kamboh

11-UET/PhD-CASE-CP-59

Approved by:

_________________

Dr. Shoab A. Khan

Thesis Supervisor

________________ _______________ ______________

Dr. Mohsin Rahmatullah Dr. Zaheer Ahmad Dr. Saad Rehman

Member Research Committee Member Research Committee External Member

ECE Department, CASE ECE Department, CASE College of E&ME

Islamabad Islamabad NUST, Rawalpindi

DEPARTMENT OF ELECTRICAL AND COMPUTER ENGINEERING,

CENTER FOR ADVANCED STUDIES IN ENGINEERING,

UNIVERSITY OF ENGINEERING AND TECHNOLOGY TAXILA

Summer 2014

Page 3: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

iii

Declaration

The substance of this thesis is the original work of the author and due reference and

acknowledgement has been made, where necessary, to the work of others. No part of

the thesis has already been accepted for any degree, and it is not being currently

submitted in candidature of any degree.

_______________________________

Hamid Mehmood Allah Ditta Kamboh

11-UET/PhD-CASE-CP-59

Thesis Scholar

Countersigned:

_________________

Dr. Shoab A. Khan

Thesis Supervisor

Page 4: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

iv

Acknowledgement

Starting in the name of Allah Almighty, the most beneficent, the most merciful. It is

with Allah’s blessing that I have been able to complete this enduring task. I feel

indebted to my parents and my family who had borne with me and constantly

encouraged me in pursuit of higher education. I will like to acknowledge the

wholesome guidance and encouragement constantly provided by Dr. Shoab Ahmed

Khan, without which I could not have carried out the requisite work. In addition, I

will like to thank Dr. Awais Mehmood Kamboh for the untiring support and guidance

on the written works for me.

I will like to acknowledge the support extended to me by Center for Advanced

Research in Engineering and School of Electronics Engineering and Computer

Sciences, National University of Sciences and Technology, that permitted me to use

their laboratory facilities to carry out design simulations and synthesis for FPGA and

ASIC designs.

I will like to acknowledge the support extended by Higher Education

Commission, without which I may not have been able to pursue the higher education

qualification.

Page 5: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

v

Abstract

The prime goal of design and synthesis of Digital Signal Processing (DSP) algorithms

and architectures is to meet the throughput requirements of an application in a

hardware-economic fashion. Economics of hardware implementation includes an

improvement in resource utilization, and power consumption, in the context of widely

accepted application performance metrics, such as design throughput, spectral purity,

and algorithmic precision. DSP tasks are usually computationally intensive and

involve complex operations in real or pseudo-real-time. Choice of implementation

hardware platform thus depends upon application requirements such as minimum data

rate and signal fidelity keeping within the resource utilization and power consumption

budgets. Realization of such cost effective hardware systems requires use of several

complexity reduction methods and optimization techniques.

Modern Field Programmable Gate Arrays (FPGAs) include complex slice

fabric, intricate routing architectures, large input lookup tables, and specialized

hardware blocks. Apart from the configurable logic blocks and routing structure

present in classical FPGAs, modern FPGAs have built-in computational blocks for

specialized functions. However, optimal system performance, in terms of clock speed,

device utilization ratio, and power consumption, can only be achieved with

meticulous and careful use of these advanced and specialized hardware resources.

Standardized design optimizations used in Application Specific Integrated Circuits

(ASICs) cannot be directly employed for algorithms to be implemented on FPGAs

because of the fixed layout and routing structure of FPGAs. Harnessing the power and

flexibility of FPGAs to their full potential to achieve requisite performance and

efficiency gains for these cutting-edge applications, necessitates development of

customized algorithmic and architectural optimizations.

This work concerns two major domains of DSP hardware implementations,

firstly, to gain performance enhancement by optimal mapping of digital designs onto

the FPGA hardware and secondly, to architect algorithmic transformations for

modifying the application architecture to the one more conformant to FPGA

implementation. Which in turn, involves the reduction of computational complexity

by reducing the number of multipliers and adders as well as achieving the higher data

rates through pipelining and efficient encoding.

Page 6: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

vi

Advanced optimizations and customizations for core DSP applications, such

as Finite Impulse Response (FIR) filters, Infinite Impulse Response (IIR) filters,

complex multipliers, various architectural transformations of multi-input adders,

Coordinate Rotation Digital Computer (CORDIC), and multi-rate interpolation and

decimation filter implementations have been proposed during the course of this work.

Furthermore, this thesis proposes novel design methodologies for generating

architectures for optimal mapping on these modern FPGAs containing specialized

computational blocks and hardware functional units. The new methods keep in

perspective the architectural peculiarities of the target FPGAs, and additionally, apply

transformations to achieve higher throughput. The resulting architectures have shown

substantial improvement over state of the art designs reported in literature.

Page 7: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

vii

Table of Contents

Acknowledgement .................................................................................................................... iv

Abstract ...................................................................................................................................... v

Table of Contents ..................................................................................................................... vii

List of Tables ........................................................................................................................... xii

List of Publications ................................................................................................................. xiv

1 Introduction .......................................................................................................................... 1

1.1 FPGA Advantages ............................................................................................. 1

1.2 Optimization Potential ....................................................................................... 3

1.3 Thesis Contributions .......................................................................................... 4

2 FPGA Resources .................................................................................................................. 6

2.1 Introduction ........................................................................................................ 6

2.2 Architectural Peculiarities .................................................................................. 6

2.3 Slice Fabric ........................................................................................................ 7

2.4 Summary ............................................................................................................ 8

3 Adders ................................................................................................................................ 10

3.1 Introduction ...................................................................................................... 10

3.2 Hardware Adder Design .................................................................................. 11

3.2.1 Full Adder ................................................................................................ 11

3.2.2 Ripple Carry Adder .................................................................................. 12

3.2.3 Carry Look Ahead Adder ......................................................................... 12

3.2.4 Carry Skip Adder ..................................................................................... 13

3.2.5 Carry Select Adder & Conditional Sum Adder ....................................... 14

3.2.6 Carry Save Adder ..................................................................................... 15

3.3 FPGA Implementation and Results ................................................................. 17

3.4 Summary .......................................................................................................... 21

4 Filters ................................................................................................................................. 22

4.1 Introduction ...................................................................................................... 22

4.2 Proposed Algorithm ......................................................................................... 24

4.2.1 Architectural Conformance/Selective Pipelining .................................... 25

4.2.2 Customized Compression Trees .............................................................. 26

4.2.3 Data Width Optimization ......................................................................... 29

4.2.4 Unfolding ................................................................................................. 30

Page 8: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

viii

4.2.5 Distributed Arithmetic ............................................................................. 31

4.2.6 Look Ahead Transformation (LAT) ........................................................ 32

4.2.7 Development of Algorithm ...................................................................... 34

4.3 Implementation ................................................................................................ 37

4.3.1 Feed Forward Optimization ..................................................................... 38

4.3.2 Recursive Loop Optimization .................................................................. 41

4.4 Experimental Results ....................................................................................... 42

4.5 Complex Coefficient Multiplication ................................................................ 47

4.6 Implementation Results ................................................................................... 49

4.7 Multirate Filters ............................................................................................... 50

4.8 MDT architectural transformation ................................................................... 52

4.8.1 Transformation of first order section ....................................................... 52

4.8.2 Transformation of second order section .................................................. 53

4.8.3 Transformation of Nth

order Filter ........................................................... 53

4.9 Amplitude Response and Stability Analysis .................................................... 54

4.10 Implementation Results ................................................................................... 57

4.11 Summary .......................................................................................................... 58

5 Coordinate Rotation Digital Computer .............................................................................. 60

5.1 Introduction ...................................................................................................... 60

5.2 CORDIC Algorithm ......................................................................................... 61

5.3 Hardware Implementation Architecture .......................................................... 63

5.4 Basic CORDIC................................................................................................. 64

5.4.1 Novel CORDIC Algorithm ...................................................................... 64

5.5 Modified CORDIC........................................................................................... 66

5.5.1 Angle Recoding ....................................................................................... 66

5.5.2 Multi Iteration Merged CORDIC Algorithm ........................................... 67

5.6 Inverse Recoded Single Iteration CORDIC ..................................................... 68

5.6.1 Hardware Architecture ............................................................................. 71

5.6.2 Latency ..................................................................................................... 73

5.6.3 Implementation Results ........................................................................... 73

5.6.4 ASIC Implementation .............................................................................. 75

5.6.5 Implementation on FPGA ........................................................................ 77

5.7 Summary .......................................................................................................... 78

6 Conclusions ........................................................................................................................ 80

Page 9: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

ix

7 Future Work ....................................................................................................................... 82

Bibliography ............................................................................................................................ 83

Page 10: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

x

List of Figures Figure 1.1: Major FPGA implementation categories for data center application in

cloud computing environment. ........................................................................................... 2

Figure 1.2: FPGA application as the main system peripheral with its extensive IO

capabilities. ......................................................................................................................... 2

Figure 1.3: FPGA parallel implementation architecture provides enhanced

performance as opposed to serial architecture in a DSP chip. ............................................ 3

Figure 2.1: Virtex-5 configurable logic blocks (CLBs) comprising two slices. Each

slice uses four independent 6-LUTs. .................................................................................. 7

Figure 2.2: DSP48E slice in Virtex-5 FPGA. ..................................................................... 7

Figure 2.3: Basic processing element, available pipeline options of DSP48E. .................. 8

Figure 2.4: Carry chain construction within the slice. ........................................................ 9

Figure 3.1: A Full Adder comprises two Half Adders. ..................................................... 12

Figure 3.2: RCA has a critical path through which carry ripples from LSB to MSB. ...... 12

Figure 3.3: CLaA stages for computation of carries in parallel. ....................................... 13

Figure 3.4: 16 bits equal group size CSkA. ...................................................................... 14

Figure 3.5: Uniform group CSeA, employing 4 bits RCA sections. ................................ 14

Figure 3.6: CSA comprising 6:3 compressors. ................................................................. 15

Figure 3.7: CSA comprising 4:2 compressors. ................................................................. 16

Figure 3.8: Relative delay and area values for bi-operand adders as compared to RCA

Inference adders. ............................................................................................................... 19

Figure 3.9: Relative delay and area values for bi-operand adders as compared to RCA

Inference adders. ............................................................................................................... 20

Figure 4.1: Functional diagram illustrating the available pipeline options in DSP48E

block. ................................................................................................................................. 25

Figure 4.2: Custom compression tree architecture utilizes 24 x 6:3 compressors, 7 x

3:2 compressors and a 12-bit CPA for summing 12 x 8 bit operands. ............................. 27

Figure 4.3: Comparison of clock rates for Systolic FIR filter and CSD

implementations by varying data width. ........................................................................... 30

Figure 4.4: Single input / output system is transformed into dual input / output system

utilizing unfolding. ............................................................................................................ 31

Figure 4.5: LUT based DA architecture. .......................................................................... 32

Figure 4.6: Feedback loop of IIR filter causing a bottleneck to further pipelining. ......... 33

Figure 4.7: Transformed filter has two registers in the feedback loop for multiplier

pipelining to two levels. .................................................................................................... 33

Figure 4.8: Flow chart showing the filter architecture formulation from filter

specifications..................................................................................................................... 37

Figure 4.9: 6:3 CSD compression tree implementation architecture using 6

coefficients 6:3 compression trees. ................................................................................... 38

Figure 4.10: DA accumulation stage based on compression tree architecture

composed of 6:3 compressors. .......................................................................................... 40

Figure 4.11: FIR filter Comparison. ................................................................................. 41

Figure 4.12: IIR filter Comparison. .................................................................................. 41

Page 11: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

xi

Figure 4.13: FPGA chip diagram for CSD FIR filter realization for filter number 2 in

table 4.7. ............................................................................................................................ 45

Figure 4.14: Complex multiplier....................................................................................... 47

Figure 4.15: Wallace tree schematic. ................................................................................ 48

Figure 4.16: Booth encoded Wallace tree reduction complex multiplier. ........................ 49

Figure 4.17: Comparison of LUTs and Path Delay of complex multiplier. ..................... 49

Figure 4.18: Architecture of first order recursive filter after MDT. ................................. 52

Figure 4.19: Architecture of Second order recursive filter after MDT. ............................ 53

Figure 4.20: Implementation of Nth

order transformed IIR Filter (for N odd). ................ 54

Figure 4.21: Amplitude response (a) Original filter (b) Transformed filter ..................... 55

Figure 4.22: Pole zero plot (a) Original filter (b) Quantized filter ................................... 56

Figure 4.23: Pole zero plot for (a) Transformed filter architecture (b) Quantized form

of the transformed filter architecture. ............................................................................... 57

Figure 5.1: Angle Rotation ............................................................................................... 62

Figure 5.2: CORDIC architecture (a) CORDIC Element (CE) (b) CORDIC

architecture pipelined . ...................................................................................................... 64

Figure 5.3: CORDIC algorithm principle (incremental rotation by )......................... 65

Figure 5.4: The optimal hardware design with single CE computes sine and cosine

using four multipliers. ....................................................................................................... 71

Figure 5.5: Block diagram of custom Booth multiplier architecture. ............................... 72

Figure 5.6: Mean square error comparison of basic and IS-CORDIC algorithms

varying the number of rotations (a) Sine computation (b) Cosine computation............... 74

Figure 5.7: Comparison of error profiles of fixed-point IS-CORDIC with double

precision sine and cosine values (a) 16-bits implementation (b) 64-bits

implementation. ................................................................................................................ 75

Page 12: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

xii

List of Tables

Table 3.1: Comparison of Single bit Compressor Architectures ...................................... 17

Table 3.2: Comparison of 16-bit Compressor Architectures ............................................ 17

Table 3.3: Comparison of Two Operand Adders .............................................................. 19

Table 3.4: Comparison of Multi-Operand Adders ............................................................ 21

Table 4.1: Error Rate for FIR Filters (15 bits data width) ................................................ 29

Table 4.2: Maximum clock frequency for different bit width operators .......................... 39

Table 4.3: Performance metric for transformed FIR filter architectures .......................... 42

Table 4.4: Performance metric for transformed IIR filter architectures ........................... 43

Table 4.5: Proposed CSD transformed filter implementation .......................................... 43

Table 4.6: Proposed MAC transformed filter implementation ......................................... 45

Table 4.7: Parameters and Specifications for the Test Filters .......................................... 45

Table 4.8: Implementation results of test filters (specified in table 6) ............................. 46

Table 5.1: Comparison of Different Implementation Architectures ................................. 50

Table 4.10: Area and clock rate comparison for FPGA implementation of audio filter .. 57

Table 4.11: Area and clock rate comparison for ASIC implementation of audio filter .... 57

Table 5.1: Booth encoding, sign generation and selection values. ................................... 72

Table 5.2: Normalized Delay and Area Comparison for B=64 ........................................ 77

Table 5.3: Delay and Area Comparison for FPGA implementations with B=16 ............. 78

Table 5.4: Area and clock rate comparison for IS-CORDIC implementations with

different bit widths ............................................................................................................ 78

Page 13: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

xiii

Acronyms

FPGA Field Programmable Gate Array

CORDIC Coordinate Rotation Digital Computer

FIR Finite Impulse Response

IIR Infinite Impulse Response

DA Distributed Arithmetic

MAC Multiply and Accumulate

CSD Canonic Signed Digit

MCM Multiplier less Constant Multiplication

FFT Fast Fourier Transform

ASIC Application Specific Integrated Circuit

RAM Random Access Memory

DDFS Direct Digital Frequency Synthesis

LUT Look up Tables

DFG Data Flow Graph

ROM Read Only Memory

LAT Look Ahead Transformation

TDF Transposed Direct Form

MSE Mean Square Error

CPA Carry Propagate Adder

RCA Ripple Carry Adder

BAAT Bits at a Time

IP Intellectual Property

HDL Hardware Descriptive Language

FDA Filter Design and Analysis

FM Frequency Modulation

QAM Quadrature Amplitude Modulation

RTL Register Transfer Level

CIC Cascaded Integration Combination

MDT Merged Delay Transform

CSA Carry Save Adder

NIC Network Interface Card

DCB Data Centre Bridging

IP Internet Protocol

CoSA Conditional Sum Adder

CSeA Carry Select Adder

CSkA Carry Skip Adder

TPM Transformation Polynomial Multiplier

Page 14: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

xiv

List of Publications

Journal Publications

1. Hamid M. Kamboh, and Shoab A. Khan. "High Throughput Filter

Architecture for Optimal FPGA-Based Implementations", Journal of Circuits,

Systems, and Computers, vol. 22, no 5, Article 1350034, 2013, DOI:

10.1142/S0218126613500345.

2. Hamid M. Kamboh and Shoab A. Khan, “IS-CORDIC: a fixed-point inverse

recoded single iteration CORDIC architecture”, International Journal of Electronics,

vol. 101, no 6, pp. 789-807, 2014, DOI:10.1080/00207217.2013.803432.

Conference Publications

1. H. M. Kamboh and S. A. Khan, “FPGA implementation of fast adder”, in

Proc. Int. Conf. on Computing and Convergence Technology, 2012, pp. 1324-1327.

2. H. M. Kamboh and S. A. Khan, "An algorithmic transformation for high

throughput filter implementation on FPGA," in Proc. Int. Conf. on Emerging

Technology, 2011, pp. 127-132.

Page 15: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

1

1 Introduction

Advancement in fabrication technologies have led to development of very high

density integrated circuits with onboard special functionalities. Focus of the design

engineers have shifted from customary reduction in hardware utilization ratios to the

all-encompassing improvement in the throughputs of the devised hardware

architectures. Higher emphasis has been placed on the throughputs for high end signal

processing applications. Traditionally Field Programmable Gate Arrays (FPGAs)

were used for prototype evaluation of designed algorithms, but with the advancements

in fabrication technologies and consequent reduction of individual component sizes,

very high-density integrated circuits have been made possible that can generate

complete system on chip solutions on single FPGA device.

1.1 FPGA Advantages

At the current state, the FPGA technology can bring numerous advantages for

computing, storage and networking. A case example is the applications of data center

for cloud computing, which strive to become faster, larger, cheaper and greener [1]. It

has diverse domains, firstly, within the networking infrastructure, FPGAs can address

the ever-increasing throughput and processing requirements while remaining highly

power efficient. Furthermore, the inherent flexibility of the FPGA is a crucial benefit

in this landscape, given the continual arrival of new communications protocols.

Thirdly, FPGAs offer the right physical interfaces on a basic level, and provide the

required support and bandwidth for high-speed memory interfaces. They offer

sufficient device complexity to implement packet-processing pipelines greater than

100G. Their flexibility allows for the implementation of perfectly optimized custom

circuits that operate at maximum efficiency [2]. Finally, a basic FPGA IP portfolio

exists that covers the fundamental networking functions. However, more data-center-

specific solutions around data center bridging (DCB), virtual switching and other

specialized technologies have yet to be developed. Within servers, FPGAs are an

attractive implementation on network interface cards (NICs). FPGA implementations

in different application categories in cloud computing are enumerated in Figure 1.1

[1]. The highlighted application categories are the ones termed as most suitable for

FPGA applications.

Page 16: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

Figure 1.1: Major FPGA implementation categories for data center application in

Other applications include the

component [3]. As illustrated in Figure 1.2

is built on flexibility concept

offers multiple connectivity options.

enhance controls for generators, loads and batteries, ensuring greater efficiency.

FPGA with its extensive IO capa

control, allowing numerous flexible options including the remote logging and

monitoring of the system.

=

=

=

=

DSP

DC to DC

Buck/Boost

Bridges

PV

Battery

Power Electronics

Figure 1.2: FPGA application as the main system peripheral with its extensive IO

Group 1

• Hybrid Computing

• Desktop Virtualization

• OPST

• Optical Backhaul

• Custom NICs

• Smart Analytics

• Super Storage

• Smart NICs

• Flash Controllers

2

Major FPGA implementation categories for data center application in

cloud computing environment.

Other applications include the combination of FPGA as prime system control

s illustrated in Figure 1.2 [1], the Demand Response Inverter

concept. Equipped with multiple AC/DC terminals

offers multiple connectivity options. Programmable power curves and charge profiles

enhance controls for generators, loads and batteries, ensuring greater efficiency.

with its extensive IO capability serves as the digital controller for power switch

control, allowing numerous flexible options including the remote logging and

monitoring of the system.

=

=

=

~

=

~

FPGADSP

=

Remote Logging Internet

FPGA

Load Port

AC to DC Bridges

Power Electronics

Tri

gg

er

s

Operator /

User

FPGA application as the main system peripheral with its extensive IO

capabilities.

Desktop Virtualization

Group 2

• QPI NIC

• QPI I/O & Memory Expansion

• Application Specific Servers

• Cloud RAN

Group

• Smart Networking

• Wimpy Nodes

• Optical Interconnects

Major FPGA implementation categories for data center application in

combination of FPGA as prime system control

nverter (DRI)

. Equipped with multiple AC/DC terminals, the DRI

Programmable power curves and charge profiles

enhance controls for generators, loads and batteries, ensuring greater efficiency.

serves as the digital controller for power switch

control, allowing numerous flexible options including the remote logging and

Remote Logging &

Monitoring

FPGA application as the main system peripheral with its extensive IO

Group 3

Networking

Wimpy Nodes

Interconnects

Page 17: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

3

1.2 Optimization Potential

Higher densities provide larger areas for the designer to trade-off for better

timing performance. Ever emerging advanced applications demand higher

computational resources, especially the applications in Digital Signal Processing

(DSP) domain, that frequently require dedicated computational resources [4]. Owing

to their extensive computational requirements, modern day FPGAs offer

reconfigurable logic blocks, custom designed for high throughput multiply

accumulate operations (MAC), dedicated carry chain support, block Random Access

Memories (RAMs) and internal slice cascade structure [5]. Figure 1.3 highlights the

available hardware potential for parallel implementation of architectures on FPGAs as

compared to other programmable devices. Regularity of the architecture and

multiplicity of the processing elements yield massive parallel computing potential that

needs the algorithm to be modified in a manner that is conducive to exploit the

available parallelism.

Figure 1.3: FPGA parallel implementation architecture provides enhanced

performance as opposed to serial architecture in a DSP chip.

FPGAs with embedded computational blocks offer pre-designed high speed

computational units as black boxes to be used in designed hardware for enhanced

performance. These embedded blocks (black boxes) come with a fixed composition,

internal structure as well as register configuration, for enabling pipelined operations.

Though the individual embedded block gives a magnitude better performance but at

the same time, it limits the best achievable timing, by restricting the pipelining level

of the complete architecture, as it cannot be further pipelined. Highest achievable

clock rate for these FPGAs is therefore, limited by the characteristic speed of the used

embedded hardware blocks.

Page 18: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

4

Due to a preset pattern of layout of logic elements / processing elements in

blocks and a fixed routing structure of FPGAs, customary optimization techniques

cannot be directly used. Traditional optimization techniques that have been proven

well suited for Application Specific Integrated Circuits’ (ASICs) design, therefore,

may not exhibit similarly better performance while synthesizing algorithms for

implementation on FPGAs [6].

Choice of a diverse platform or even a different family of FPGAs will also

require emphasis on separate optimization methods to generate optimal hardware

architecture [5,7]. Advanced application needs dictate the requirement to perform

custom optimizations across FPGA’s slice fabric in order to achieve optimum

performance. In effect, the degree of optimization of the algorithm greatly depends

upon the configuration of target device as far as the device utilization and path delays

are concerned.

1.3 Thesis Contributions

This work proposes a novel design methodology for further improving the

throughput performance by applying mathematical transformations. The

transformations are valid for both feedback and feed forward designs. The objective is

to evolve a systematic methodology, utilizing which, the algorithm to hardware

mapping can be tailored to yield a novel optimal architecture for the application under

consideration. Diverse subjects covered in this work scope include hardware

implementation of Multi input adders, Finite Impulse Response (FIR) and Infinite

Impulse Response (IIR) filters, complex multiplier, Coordinate Rotation Digital

Computer (CORDIC) and multirate decimation/interpolation filters on FPGAs. These

contributions can be broadly categorized as:-

a. Formalized the methodical application of mathematical transformations for

designing DSP hardware.

b. Design of best adder and multiplier architectures for FPGA

implementation.

c. A heuristic algorithm has been designed and verified for architectural

transformation to obtain optimal throughput.

d. Modified CORDIC as a complex multiplication operation implementation

through proposed transform.

Page 19: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

5

e. Implementation of Modified Merged Delay Transform (MMDT) based

interpolation and decimation architectures through proposed transform.

This thesis comprises of six chapters. Chapter one introduces the problem

statement, whereas chapter two describes the peculiarities in the FPGA architecture.

Chapter three tackles the design of high speed adders, whereas; filter optimizations

like FIR, IIR, multirate filters and complex coefficients are described in chapter four.

CORDIC architecture is discussed in chapter five. Chapter six concludes the thesis

and presents the scope of future work in the field.

Page 20: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

6

2 FPGA Resources

2.1 Introduction

Basic FPGA structure consists of wire matrices and Configurable Logic

Blocks (CLBs). Routing of the signals is carried out through general purpose

interconnect wire matrices, that employ segmented routing channels and multiple

block length lines. This general purpose fixed routing architecture is non-

customizable and thereby introduces a significant delay of magnitudes comparable to

delays through logic gates [5]. Dedicated routing in FPGAs is only available in a few

special cases, like carry chains that allow high speed propagation of carry output for

efficient implementation of Carry Propagate Adders (CPA) [8]. Likewise, the

placement of processing elements in cascade in adjoining CLBs is required to reduce

the overhead of routing delays. The general purpose architecture of routing matrices

has a routing overhead that is much greater as compared to routing delays in ASICs,

as the later employ custom length and variable diameter wires to overcome this

problem.

2.2 Architectural Peculiarities

Peculiar architectural characteristics include:-

a. Fixed routing architecture

b. Column orientation

c. Dedicated carry chains

d. Embedded specialized hardware

e. Predefined structural composition

f. Configurable black boxes

g. LUT construction

h. Dedicated fast connectivity

i. DSP block cascading

j. Register availability

k. Limited pipelining options for DSP blocks

l. High speed block RAM

m. Shift register LUT

n. Wide function multiplexers

Page 21: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

2.3 Slice Fabric

CLBs are composed of look up tables (LUTs), flip flops and carry chains for

high speed carry propagation. Additional resources provided in present day FPGAs

include Block Random Access Memories (RAMs) and DSP multipliers

special purpose usage [9]

FPGAs to consider the fabric structure while designing and optimizing the algorithm.

Figure 2.1 [5] shows the Virtex

internal construction of DSP48E slice.

Figure 2.1: Virtex-5 configurable logic blocks (CLBs) compris

slice uses four independent 6

Figure

DSP48E Multiplier Accumulator (MAC) unit embedded in Virtex

has a clock rate of 550 MHz and precision of 25x18 bits. Xilinx has optimized the

DSP48E slice for adder chain implementations by providing cascading within the

slice that is a powerful mea

7

CLBs are composed of look up tables (LUTs), flip flops and carry chains for

high speed carry propagation. Additional resources provided in present day FPGAs

include Block Random Access Memories (RAMs) and DSP multipliers (DSP48E) for

]. It is, therefore, imperative for circuits to be implemented in

FPGAs to consider the fabric structure while designing and optimizing the algorithm.

shows the Virtex-5 slice architecture and Figure 2.2 [5]

internal construction of DSP48E slice.

5 configurable logic blocks (CLBs) comprising two slices. Each

slice uses four independent 6-LUTs.

Figure 2.2: DSP48E slice in Virtex-5 FPGA.

DSP48E Multiplier Accumulator (MAC) unit embedded in Virtex

has a clock rate of 550 MHz and precision of 25x18 bits. Xilinx has optimized the

DSP48E slice for adder chain implementations by providing cascading within the

slice that is a powerful mean for creation of efficient high performance arithmetic

CLBs are composed of look up tables (LUTs), flip flops and carry chains for

high speed carry propagation. Additional resources provided in present day FPGAs

(DSP48E) for

imperative for circuits to be implemented in

FPGAs to consider the fabric structure while designing and optimizing the algorithm.

illustrates the

two slices. Each

DSP48E Multiplier Accumulator (MAC) unit embedded in Virtex-5 FPGA

has a clock rate of 550 MHz and precision of 25x18 bits. Xilinx has optimized the

DSP48E slice for adder chain implementations by providing cascading within the

n for creation of efficient high performance arithmetic

Page 22: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

8

functions [10]. Each DSP48E block can add three stages of pipelining in the MAC

operation as shown in Figure 2.3. If pipelining is not used, these registers are

circumvented. The addition of these pipeline stages improves MAC performance

manifolds without causing any hardware overhead. The express fabric of Virtex-5

FPGA consists of carry chain and six input LUTs as illustrated in Figure 2.4 [5]. This

construction yields an effective tradeoff between critical path delay and device

utilization. Virtex-5 and newer generation FPGAs have six input and one output LUT,

indicating higher integration levels, that if suitably used as an element in the circuit

design can generate more compact and higher performance circuit designs.

+X

A

B

A x B

B REG

A REG

M REGP REG

Figure 2.3: Basic processing element, available pipeline options of DSP48E.

Due to a regular routing pattern of the express fabric, the interconnectivity

between 6-LUTs is engineered as such that enables performance enhancement by

reaching more places in fewer bounds [11]. Partial product reduction in multiplication

algorithms can be effectively implemented using carry save compression architectures

employing 6:3 compression trees instead of 4:2 or 3:2 compressors, for efficient

mapping onto the 6-LUTs that yields minimum path delay utilizing faster

interconnectivity.

2.4 Summary

Basic construction of FPGAs is especially rich in terms of slice registers.

Pipelining, therefore, can be much conveniently implemented in FPGAs. Longer

routing paths and the interconnect structure introduce major delays in the overall

architectures, therefore, extensive pipelining provides higher clock speeds at an

affordable expense of design latency. In most of the applications, clock speed is more

critical as compared to design latency, therefore, this tradeoff usually results in

improved hardware implementations. Four flip flops available within each CLB slice

can be used for optional registering of LUT output. The use of these resources with or

without LUTs can make it possible to deeply pipeline the design. As a consequence

Page 23: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

9

addition of a single stage of pipelining is comparatively cheaper in FPGAs as

compared to ASICs in terms of hardware addition [12].

Figure 2.4: Carry chain construction within the slice.

Page 24: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

10

3 Adders

3.1 Introduction

Reduced component sizes and high density fabrication of the integrated circuits have

led to increased hardware potential that has made implementation of computationally

intensive applications realizable on single chips. These high density integrated circuits

have significantly reduced cost for area-speed tradeoffs [5]. FPGAs have also gained

computational strength from the same technology advancement and are now capable of

providing complete system on chip solutions that are usually employed in low volume

applications. Characterized by the benefits of reduced time to market and in circuit

system modification, the application of FPGA to industry usage has increased

manifolds.

Addition is the basic mathematical operation extensively used in arithmetic

applications, mathematical computations, Multiplierless Constant Multiplications

(MCM), filtering applications and so on [2,9-13]. For speeding up the operation of any

DSP circuit, delay of the adder is quite critical. Extensive research has been carried out

to improve the adder performance, owing to their extensive usage and computational

criticality. Traditional approach in achieving high speed adder operations has been a

transformation from carry propagate adders (CPA) like Ripple Carry Adder (RCA) to

parallel carry computation architectures like Carry Lookahead Adder (CLaA), Carry

Skip Adder (CSkA), Conditional Sum Adder (CoSA), Carry Select Adder (CSeA) and

their variants. The abovementioned adders provide various performance benefits when

implemented on ASICs, but fail to perform at par on FPGAs. Main reason for the

performance difference lies in the fixed routing matrices of FPGAs and is thus less

flexible in signal path determination. ASICs on the other hand do not have this type of

routing restrictions and therefore, can provide flexibility in signal path determination,

leading to reduced path delays. As such, the design that proves best for ASICs may

perform subpar when implemented on FPGAs. Implementation of theses adders in

XILINXTM

VirtexTM

-6 FPGA has shown that due to definite routing interconnect, the

implementation of RCA is the fastest and most economical for addition of two

operands. The main reason for these differing results is the underlying cascade

structure of CLBs and the usage of dedicated carry chain logic that speeds up carry

Page 25: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

11

propagation and reduces routing overhead employed otherwise by the usage of global

routing resources.

In this work, different variants of adders are designed and implemented on

FPGAs, in an attempt to categorize these methods in terms of path delays and

consumed bit slices. The adders are designed through inference by the design suite

from the general specifications of hardware description language as well as direct

instantiation of the custom blocks. Case studies have been performed for bi-operands

and multi-operands addition problems.

3.2 Hardware Adder Design

Architectural peculiarities of diversified adder implementation deviations are

summarized below. These adders have been architected with a view to attain minimal

path delay. These optimization methods have already been shown to achieve obvious

performance gain in ASIC based designs, therefore, study of their design

characteristics is likely to present optimal adder architecture for implementation on

FPGAs.

3.2.1 Full Adder

In hardware, addition is performed using primitive gates. Addition of two bits without

a carry-in is termed as a half adder (HA) operation. Sum () and carry() are simply

the exclusive OR and AND operations, as given in (3.1)

= ⊕ = . (3.1)

Half adder has a critical path delay of one gate level delay. A full adder (FA)

adds an additional bit of carry-in given as (3.2) and comprises of two half adders as

shown in Figure 3.1.

= ⊕ ⊕ =( ⊕ ). + . (3.2)

Page 26: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

12

3.2.2 Ripple Carry Adder

The full adder has a critical path delay of three gate level delays. RCA is the most

primeval adder that works exactly in the same manner as the addition is carried out

manually using carries and borrows. It is essentially a cascade of several FAs, where

the carry is rippled from least significant bit to most significant bit and subsequent bits

are added together (as shown in Figure 3.2). It has a regular layout and generally

consumes minimum area [13]. RCA can be pipelined efficiently to improve its speed

characteristics. Critical path delay of a RCA is given as (3.3).

= ( − 1). + (3.3)

Where is the delay of the carry generation circuit of FA and is the delay

of a single FA. The clock rate of a RCA is thus limited by the rippling of carry from

LSB to its MSB.

3.2.3 Carry Look Ahead Adder

To speed up the addition operation, parallel adders have been designed that produce

carries in parallel without waiting for the results (carries) of preceding addition. CLaA

is an adder of this class that generates all carries concurrently by carry look ahead

FULL

ADDER

Ci Si

a0 b0 c0

s0

FULL

ADDER

Ci Si

a1 b1 c1

s1

FULL

ADDER

Ci Si

a2 b2 c2

s2

FULL

ADDER

Ci Si

a3 b3 c3

s3

c4

TcTcTcTcTc

Figure 3.2: RCA has a critical path through which carry ripples from LSB to MSB.

Figure 3.1: A Full Adder comprises two Half Adders.

Page 27: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

13

generation method. Equation (3.4) describes the combinational logic for the generation

of carry.

= . = ⊕ = + . = ⊕

(3.4)

As the bit width of the operands increases, the complexity of the carry

generator circuit increases significantly, as shown in Figure 3.3. Multiple levels of

carry generating stages are therefore required for addition of large bit width operators.

The carry generator can be given as:-

= + !"# $ !%"! &!&+$!

%"# . # (3.5)

Carry generation requires i+1 gates with a fan-in of i+1. As each additional bit

will increase the fan-in of the gates, practical applications use only 3-4 levels of look

ahead stages. Hybrid adders using RCA and CLaA in mixed stages are also employed

to gain corresponding advantages of each type.

3.2.4 Carry Skip Adder

CSkA divides the adder bit width into k-bits groups with the carry propagation starting

simultaneously for each bit. If any group generates a carry, it passes it to the next

group and in the case that the group does not generate its own carry then it simply

bypasses the carry from the previous block to its next block. This bypassing of carry is

solely handled by the bit (3.6).

Figure 3.3: CLaA stages for computation of carries in parallel.

Page 28: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

14

= + (3.6)

3.2.5 Carry Select Adder & Conditional Sum Adder

CSeA employs k-groups with nk bits in each group. Two adders of nk bits are placed at

each stage that generate sum and carry assuming input carry bit as 0 or 1. Actual result

is then selected using 2x1 multiplexer based on the actual value of carry in.

Combinational logic for CSeA implementation is specified as (3.7). To decrease

hardware complexity the CSeA is usually employed in numerous levels and at each

subsequent level the consecutive groups are merged based upon the value of carry-in.

As shown in Figure 3.5, the path delay is reduced to the delay of carry propagation of

four bits RCA plus delay through the multiplexer. CoSA is a special case of CSeA that

employs each group of one bit each.

0 = ⊕ 0 = . 1 = ∼⊕ = +

(3.7)

Figure 3.5: Uniform group CSeA, employing 4 bits RCA sections.

Figure 3.4: 16 bits equal group size CSkA.

Page 29: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

15

3.2.6 Carry Save Adder

CSA is used for multi-operand additions. Application of CSA reduces (or compresses)

the number of operands to a lesser number with equivalent degree of sum and carry

bits. At the end, final result is generated from two remaining partial sum and carry

values using a CPA [14]. The 6:3 compression tree architecture is designed to take

advantage of six input Look-Up Tables (LUT) of the FPGAs.

))* = (& )|(&)|( &) -. = ⊕ ⊕ (3.8)

Figure 3.6: CSA comprising 6:3 compressors.

Figure 3.6 shows the architecture of a CSA that comprises of 6:3 compressors

and Figure 3.7 illustrates the construction of 4:2 compressors. The 6:3 compressors

not only reduce the logic depth of the architecture, but in addition, it conforms to the

internal architecture of the FPGA fabric for Virtex-5 and Virtex-6 devices.

Page 30: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

16

4:2 4:2 4:2 4:2

3:2

CPA

4:2

4:24:24:2

4:24:2

4:2

4:2

Figure 3.7: CSA comprising 4:2 compressors.

Table 3.1 shows the utilized hardware and the critical path delay for the 6:3

and 4:2 compressor architectures by variation of the implementation platform from

Virtex-6 (XC6VLX75t-3ff487) to Virtex-4 (XC4VLX15-12sf363). The tabulated

results highlight the fact that a specific compressor better suites a particular FPGA

architecture. As the slice fabric in Virtex-4 comprises of four input LUT, the 4:2

compressor performs better owing to device conformance, reduced LUT

interconnectivity and lesser hardware utilization. For 4:2 compressor, the critical path

comprises LUT3 and LUT4 only whereas, for 6:3 compressor the critical path

includes LUT3, LUT4, MUXF5 and LUT4. Virtex-6 on the other hand has six inputs

LUT, the implementation of 6:3 compressor on these devices has improved

performance owing to higher compression ratio, FPGA fabric construction comprising

of six input LUT and reduced interconnectivity routing. For 4:2 compressor, the

critical path comprises LUT6 and similarly for 6:3 compressor the critical path still

includes a LUT6. The complete architecture however benefits the increased

compression ratio provided by the 6:3 compressors. 16-bit compressors were also

implemented on the same devices whose results are tabulated in Table 3.2. As

illustrated in the table, the choice of a suitable compressor varies with a change of the

implementation platform.

Page 31: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

17

3.3 FPGA Implementation and Results

CLBs are the basic processing elements in an FPGA and configurable wire matrices

are the interconnect between them [15,10]. CLBs are composed of LUTs, flip flops

and resources for routing of the signals between these elements. General purpose

interconnect wire matrices employ segmented routing channels and multi-block length

lines. A considerable delay as compared to the delay of logic gates is introduced in the

critical path by the use of these general interconnects. Dedicated routing is only

available in special cases of carry chains that allow high speed propagation of carry

output for efficient implementation of CPAs but are restricted to geometric alignment

in vertical / horizontal directions [5,16]. Similarly, placement of processing elements

in adjoining CLBs is necessary to reduce overhead of general purpose routing delay.

ASICs have an option to employ custom length and variable diameter wires that

produce much faster interconnects as compared to FPGAs. Virtex-6 and later

generation of FPGAs have six input and one output LUT in the CLB, indicating higher

integration levels, that if suitably used as an element in the circuit design generate

more dense and high performance circuits [17].

Table 3.2: Comparison of 16-bit Compressor Architectures

Compressor Type Architecture Path Delay Bit Slices

6:3 Compressor Virtex-6 0.942 ns 45

Virtex-4 6.622 ns 96

4:2 Compressor Virtex-6 0.776 ns 31

Virtex-4 4.949 ns 18

6:3 Compressor comprising 3:2 subelements Virtex-6 1.431 ns 75

Virtex-4 6.019 ns 52

Table 3.1: Comparison of Single bit Compressor Architectures

Compressor Type Architecture Path Delay Bit Slices Critical Path

6:3 Compressor Virtex-6 0.368 ns 3 LUT6

Virtex-4 2.054 ns 12 LUT3, LUT4,

MUXF5, LUT4

4:2 Compressor Virtex-6 0.207 ns 2 LUT3

Virtex-4 0.395 ns 2 LUT3

6:3 Compressor comprising

3:2 subelements

Virtex-6 0.368 ns 3 LUT6

Virtex-4 1.109 ns 4 LUT3, LUT4

Page 32: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

18

As RCAs make use of carries rippling through the consecutive stages, these

utilize the dedicated carry chain support for more proficient implementation. The

provision of specific hardware support in the CLBs in terms of AND and OR gates for

computation of sum and carry and carry chain for fast propagation of carry bits provide

enhanced performance. Whereas, multi-operand addition has no specific hardware

support in the CLB i.e. when three or more operands are required to be added together.

Multi-operand addition is required in summation of partial products of multiplications,

commonly used in the MCM, complex multipliers and canonic filters etc. These partial

products as a result of multi-operand addition can be effectively reduced using 6:3

compression tree architecture for efficient mapping onto the 6-LUTs and utilizing

faster interconnectivity between slices [13,18].

Pipelining can be resorted to conveniently in FPGAs, as CLBs are inherently

rich in the availability of registers for pipelining. Four flip flops are available in each

CLB slice that provide for optional registering of LUT output. The use of these flip

flops with or without LUTs can make it possible to deeply pipeline the design.

Additional stages of pipelining registers are therefore comparatively less expensive in

terms of hardware in FPGAs as compared to ASICs [5,10].

Discussed adder types were synthesized on Xilinx Virtex-6 FPGA. Study of

underlying FPGA structure signifies that the use of dedicated carry chain routing will

provide high speed operation and minimal hardware area usage. Table 3.3 compares

the various implementations of adders in terms of path delays and hardware utilization

for operands bit width of 16 bits. Results demonstrate that the RCA implementation

has the maximum clock speed and utilizes minimum number of slices. Relative values

for the delay and area show the comparison between other adder architectures and the

RCA implementation results, which are taken as reference.

Page 33: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

19

As shown, the RCA implemented through the inference of adder by the design

suite has 10.21% lesser delay than the same RCA implemented through the

instantiation of components, due to optimal routing allocation. Traditionally CLaA

Serial Implementation has least delay in ASICs but in case of FPGA implementations,

it sees a relative delay of more than 50% in addition to a disadvantage of relative

increase in area of 181%.

Figure 3.8: Relative delay and area values for bi-operand adders as compared to RCA

Inference adders.

Six operands, 16 bits adders have also been implemented on the same FPGA to

compare consumed resources against the frequency of operation. A comparison of

implementation results for multi-operand adders is given in Table 3.3. Synthesized

0%

20%

40%

60%

80%

100%

120%

140%

160%

180%

200%Relative Delay

Relative Area

Table 3.3: Comparison of Two Operand Adders

Adder Path

Delay

Bit

Slices

Relative

Delay

Relative

Area

Hierarchical CSA 8.48 ns 33 23.79 % 106.25 %

CLaA 9.7 ns 36 41.6 % 125 %

CoSA 8.1 ns 24 18.24 % 50.00 %

CSkA 9.8 ns 29 43.06 % 81.25 %

RCA Inference 6.85 ns 16 0% 0%

RCA Instantiation 7.55 ns 16 10.21 % 0%

CLaA Serial Implementation 10.3 ns 45 50.36 % 181.25 %

Page 34: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

20

results elaborate that the compressor trees are a more efficient implementation method

giving 7.9% speed up from RCA and consuming 28% more bit slices, even using the

general interconnect. This is due to the equivalence of the 6:3 compressor tree

architecture with the 6 input look up table structure of the CLBs that reduces number

of used slices and the interconnectivity between these slices. Whereas the inference by

the design suite implements a cascade of RCAs, that although has a 28% reduced area

but has non-optimal throughput. The instantiation of CSA based on 6:3 compressor

trees, therefore, is a better choice for fast adder implementations.

Figure 3.9: Relative delay and area values for bi-operand adders as compared to RCA

Inference adders.

It has been shown Table 3.4, that contrary to ASIC practices, RCA architecture

is the most efficient choice for implementation on FPGAs in terms of area and speed,

as compared to other advanced adder architectures. This performance difference is

attributable to dedicated carry chain support provided in new generation FPGAs.

However, in case of multi-operand additions, RCA performs poorly as compared to

CSA compression trees reduction.

0%

10%

20%

30%

40%

50%

60%

70%

80%

RCA 6:3 Compressor

Trees

CSkA Hierarchical CSA CoSA

Relative Delay

Relative Area

Page 35: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

21

3.4 Summary

Experimental results have shown that RCA is the best suited adder architecture for bi-

operand addition with 23.79% decrease in critical path delay. Whereas, CSA 6:3

compressor tree based architecture achieves 7.89% more clock rate than the RCA, at

an expense of 28.17% area overhead for multi-operand adders. This pattern shift

highlights that there is a room for significant throughput improvement by provision of

dedicated support for the compressor trees in FPGA CLBs. It is expected to yield

better performance for the multi addition problems that are encountered frequently in

DSP applications.

Table 3.4: Comparison of Multi-Operand Adders

Adder Path Delay Bit Slices Relative Delay Relative Area

RCA 9.98 ns 71 7.89 % 0%

6:3 Compressor Trees 9.25 ns 91 0% 28.17 %

CSkA 11.25 ns 125 21.62 % 76.05 %

Hierarchical CSA 10.5 ns 151 13.5% 65.93 %

CoSA 12.7 ns 100 37.2 % 9.9 %

Page 36: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

22

4 Filters

4.1 Introduction

Digital filters are employed in diverse signal processing applications, especially the

communication interfaces, high end audio and image processors [19,7]. High speed

analog to digital converters (ADC) have led to optimal use of digital processing in

more and more applications. Intermediate Frequency (IF) filters, especially the video

processors are much economically realizable than their analog counterparts[20,21].

The diversified capabilities offered by digital processors and their ease of

implementation have led to extensive use of digital processing over analog. The focus

of the designer in present day high-end signal processing applications is to improve

the throughput / timing performance of the system. With the fabrication of very high-

density integrated circuits complete system-on-chip solutions can be afforded in a

single Field Programmable Gate Array (FPGA) package. Higher densities on FPGAs

provide large hardware for the designer to tradeoff for timing performance.

Furthermore, modern FPGAs offer specialized high speed embedded units for use in

computationally intensive designs to improve timing performance [7,22]. These

blocks, however, can only be configured for a limited number of pipelining options

because of availability of a fixed set of registers. Although these embedded blocks

give a magnitude of better performance, they also limit the best achievable timing, as

they cannot be further pipelined, placing an upper limit on the highest achievable

clock rate for these designs. Customary optimization techniques suitable for

Application Specific Integrated Circuit (ASIC) design cannot be directly applied to

FPGA based implementations due to specific layout of logic / processing elements in

slices and a preset routing structure. The use of traditional ASIC optimization

techniques, therefore, may not exhibit likewise superior performance while

synthesizing algorithms for implementation on FPGAs. Customized optimization

techniques are required for optimal architecture mapping on a specific family of

FPGA, with selection parameters varying with change of implementation platform

[19,12,23]. In effect, the degree of optimization of the algorithm depends highly upon

the configuration of target device in terms of resource utilization and path delays.

Finite Impulse Response (FIR) filters have been extensively used in Digital

Signal Processing (DSP) applications as compared to Infinite Impulse Response (IIR)

filters because of their inherent stability and ease of implementation. Different

Page 37: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

23

transformations of FIR filters have been researched in detail for realization of an

optimal architecture [21-30]. Preceding work on the subject can be classified into two

broad categories, one focusing on reduction of computational complexity by reducing

number of multipliers and adders [7,31-39], whereas, the other endeavor has been to

achieve higher data rates through pipelining and efficient encoding [40-43]. In case of

FPGA implementations, the focus had been to gain performance enhancement by

transforming architecture for conformance to the core fabric [24]. Fabio et al [25]

have presented a general framework for computational complexity reduction by

employing Multiplierless Constant Multiplication (MCM) using Canonic Signed Digit

(CSD) coefficient representation [26]. In addition, the Transpose Direct Form (TDF)

implementation of the filter architecture was found suitable for performance

augmentation. However, due to generalization of their transform, they were unable to

compare performance with the Intellectual Property (IP) core generators provided by

FPGA vendors to create IP architectures custom suited to their specific products [27].

Further work on MCM and Common Sub-expression Elimination (CSE) focused on

elimination of expressions in horizontal, vertical and oblique directions as well as

searching a suitable number representation system to attain maximal reduction in

number of expressions [28,29]. These methods have resulted in reduced logic

operators but the logic depth has been consistent or increased [30]. CSE MCM is a

NP-complete problem, therefore, a number of heuristic search algorithms have been

proposed, with Aksoy et al [31,32,33] proposing an exact algorithm. However, the

application of this algorithm to large size complex problems of practical nature still

resorts to an approximate solution. Current design automation tools have been

developed with an outlook to make Register Transfer Level (RTL) Hardware

Description Language (HDL) code device independent, however, device specific RTL

HDL that takes into consideration the underlying architecture of the FPGA provides

considerable performance gain, whereas, a device independent architecture suffers

from heavy device utilization and increased path delays [19]. A major focus of

research has been towards complexity reduction of multiplier block through

application of MCM and CSE algorithms. Vagner et al [34] have optimized the FIR

filter implementation by improving the CSE algorithm, using coefficient reduction to

N-power-of-Two terms. Although the algorithm is an improvement over the previous

implementations, their FPGA realization is still non-optimal due to inefficient device

mapping. Significant reduction in hardware area can be achieved by implementing

Page 38: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

24

Distributed Arithmetic (DA) based filters [35,36]. Meher et al [37] have shown, that

an address length of four for DA Lookup Tables (LUT) gives significant improvement

in terms of clock and area-delay product in FPGAs because of four input LUTs. Satoh

et al [11,38] evaluated a complex multiplier implementation using booth recoding and

6:3 compression trees yields lesser critical path delay than the embedded DSP block.

IIR filter based systems exhibit narrow transition bands with relatively lesser

filter orders as compared to FIR filters of comparable magnitude response. However,

use of IIR filters had been restricted in practical applications due to difficulty of

pipelining the feedback loop and its susceptibility to potential instability due to

quantization errors [7]. Complexity reduction techniques developed for multiplier

block of fixed coefficient FIR filters can also be used for the feed forward portion of

IIR filter with Look Ahead Transform (LAT) [19,7,39] being used for pipelining for

parallel / high throughput implementations of IIR filters.

The main contribution of this work is the design of a heuristic algorithm to

generate optimal filter architecture. The design algorithm takes into account the filter

order, data width, FPGA internal construction, availability of embedded DSP blocks

and application's throughput requirements. Core of the algorithm is based upon

identifying the pattern of relative arrangement of multipliers in the architecture and

transforming the architecture for mapping these using embedded DSP blocks or

customized CSD compression tree using modified MCM. The designed filter

architecture is pipelined up to a single LUT level. Unfolding and retiming operations

are successively employed to create suitable architecture for parallel implementation

to attain required throughput goal. Performance of the resulting architecture is

compared against those designed through MATLAB Filter Design and Analysis

(FDA) tool, the IP cores available with FPGA integrated design suite (ISE) and

previously reported implementations in [25,34] and [37].

4.2 Proposed Algorithm

The components of the proposed algorithm are discussed in detail in this section. The

algorithm generates hardware architecture suitable for achieving maximal throughput

from application requirements and the FPGA device specifications, which are treated

as design constraints. For evaluation of the algorithm, the device specific constants

are taken from Virtex-5 FPGA, however, the algorithm is adaptable to any FPGA by

substitution of relevant parameters.

Page 39: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

25

4.2.1 Architectural Conformance/Selective Pipelining

Full use of fundamental resources of an FPGA is necessary for achieving optimal

performance. The use of hybrid adders composed partially of LUTs and partially of

carry chains improves performance in comparison to use of Carry Propagate Adders

(CPA) for MCM implementation in multiplier block [40,41]. FPGA embedded

hardware blocks have limited pipelining registers, therefore, selective pipelining with

retiming generates best possible configuration. DSP48E unit embedded in Virtex

FPGAs has 18 x 25 bit multiplier and a 48 bit three input adder that can be configured

as an adder, multiplier or a multiply and accumulate (MAC) block [7]. The inputs to

the block are pipelined through A, B and C registers (Regs), the multiplier using M

Reg and the output using P Reg, as shown in Figure 4.1. Three levels of pipelining

can be optionally performed for any MAC operation using these registers without

incurring any additional hardware overhead [40]. If pipelining option is not used these

registers are bypassed and form a single combinational cloud. Throughput of the

resulting architecture depends upon cascading of the DSP blocks:-

clk pcout cMAC t tτ →= + (4.1)

Where clk pcoutt → is the DSP48E propagation delay from clk to pcout and ct is the

routing delay between the adjacent DSP blocks. The throughput of the MAC based

filter therefore, shows a consistent behaviour within the input data width limits of 25

x 18 bits. The minor throughput difference arises due to use of multiple columns of

DSP blocks against a single column that offers a cascade of the DSP blocks that are

directly interconnected. The throughput in this case is independent of the filter order /

input bit width.

Figure 4.1: Functional diagram illustrating the available pipeline options in DSP48E

block.

Page 40: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

26

4.2.2 Customized Compression Trees

Coding mechanisms like Booth, CSD and Minimal Signed Digit (MSD) are used to

generate lesser partial products of multiplication. These partial products are then

reduced by utilizing compressor tree architecture, thereby eliminating the need of

using dedicated hardware multiplier. Parallel reduction of partial products by

compression trees circumvents the delay of rippling of the carry from lowest to

highest bit and improves the speed of operation. CSD / MSD coding is used in fixed

coefficient multiplication to generate minimal partial products of multiplication and

optimization is performed through grouping of coefficient multiplications into one

efficient block of wired shifts and adds using MCM [33-35]. CSE techniques are used

to decrease the number of adders and the shift operators. It has been shown by Aksoy

et al [42,43,44] that reduction in logic operators is independent of the type of number

representation used for coefficients. Also, horizontal, vertical and oblique common

sub-expression elimination methods have been shown to reduce the logic operators

but at the expense of constant or increased logic depth [45,46]. Large variations in

throughput of the design occurs with the change in logic depth as compared to the

reduction in the number of logic operators. To achieve speedup, CSD coefficients

have been used in our algorithm, as it has been established that the MSD

representation generates lesser hardware (fewer logic operators) but at the expense of

greater logic depth [47]. Furthermore, the use of CSD coefficients and the

independent CSE elimination in each coefficient node generates hardware with

reduced logic depth, suitable for high throughput applications [28,48].

The CSD recoding is done using the following logic. Any number A can be

represented in two’s compliment form as follows [49].

/ = 0/ . 0 / . 02/ ……… . /#/ (4.2)

The CSD representation of A is

0. 0 . 02……… . # The algorithm is as follows

/ = 0

4/ = 0

0/ = 0/ 567( = 896: − ;)

(4.3)

Page 41: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

27

= = ⨁4 = 4 = = (1 − 2 )4 The slice fabric of Virtex FPGA is composed of dedicated carry chains

directly interconnecting the slices in the CLB and the six input LUTs. These dedicated

routing channels if suitably used as an element in the circuit design generate a more

compact and high performance circuit [19]. Due to regular routing pattern of the

express fabric, the dedicated interconnectivity between the 6-LUTs enhances

throughput performance by reaching more places in fewer bounds [11]. The

placement of dedicated carry chain after the LUT allows for twofold usage of LUT as

combined Look-up and full adder. This dual functionality of Look-up and full adder

in single LUT allows for efficient usage of the FPGA resources and performs

equivalent to 75% of two cells, thereby reducing the hardware by 33%. Wallace tree

architecture has been used in numerous applications for partial product reduction.

Traditionally 4:2 Wallace tree was used as the most efficient compression structure in

VLSI architectures, but in the case of FPGAs the results depend upon the inherent

LUT structure [12,50].

Figure 4.2: Custom compression tree architecture utilizes 24 x 6:3 compressors, 7 x

3:2 compressors and a 12-bit CPA for summing 12 x 8 bit operands.

Modified 6:3 compressor design used in development of our algorithm affords

multiple advantages; firstly, it reduces the tree height by 16% as compared to 3:2

compressor trees, secondly it offers reduced logic depth thereby increases frequency

Page 42: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

28

of operation, next it reduces number of operators and consumes lesser hardware

resources and on the last the 6 input structure of the 6:3 compressor tree matches the 6

input LUT structure of new generation FPGAs, therefore, it uses the FPGA resources

optimally.

Figure 4.2 shows the construction of the customized compression tree that is

composed of 6:3 compressors. On the outset, the tree looks suboptimal, as based on

the binary arithmetic the compression tree should progress from eight partial products

to three partial products. However, because true six input LUT is available in the

FPGA fabric, each compression operation is performed by a single LUT for single bit

as highlighted in the figure. The resultant three outputs are aligned on individual

weight basis as shown in different colours. For selection of optimum number of CSD

coefficients, comparison between clock speed and Mean Square Error (MSE) has

been carried out. As shown in Table 4.1, six coefficients CSD implementation yields

optimum performance with 0.24% mean error, 1.2% increase in clock speed and 4%

decrease in bit slices. Although, DSP block has 2.8% clock speed improvement over

the CSD implementation but due to limited number of DSP blocks in an FPGA the

hardware utilization ratio for DSP implementation is 5.5% as compared to 0.43% for

non DSP based implementations. The designs utilizing general slice fabric are,

therefore, liable to accommodate larger functionality than those relying on dedicated

DSP blocks. With increasing filter orders, paradigm shift towards implementations

using general FPGA resources is necessary for scalability purposes. Carry ripple time

is considerably larger than combinational delay through the LUT. Critical path delay

comprises the RCA carry ripple time as the implemented architecture is pipelined

until single LUT level.

( -1) carry sumCSD N t tτ = + (4.4)

Equation above describes the throughput of the CSD architecture, where the

carryt is the propagation delay from the CIN input of the slice to the COUT output of the

slice and sumt is the propagation delay from the A/B/C/D inputs of the slice to the

COUT output of the slice. The throughput of the architecture varies linearly with the

data width.

Page 43: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

29

Table 4.1: Error Rate for FIR Filters (15 bits data width)

Filter Type Consumed Hardware Clock (MHz) MSE %age Utilization

DSP-48E 14 Slices +7 DSP Blocks 535 0.05% 5.5%

6:3 CSD 3 coefficients 371 Slices 579 5.24% 0.26%

6:3 CSD 4 coefficients 619 Slices 514 1.3% 0.45%

6:3 CSD 6 coefficients 594 Slices 520 0.24% 0.43%

4.2.3 Data Width Optimization

Algorithmic precision is determined by input and coefficient bit widths, dictated by

the application specifications. Data widths affect the parameters of hardware

utilization ratio, MSE and power consumption considerably. Increase in the bit

resolution at times has drastic effects on hardware complexity as compared to the

resultant decrease in MSE because of fixed internal structure. In FPGAs, the used data

width in correlation to the underlying fabric structure yields some hardware cost

bands. The design choice, therefore, reduces to select one or the other architecture

based upon optimization of the user defined characteristics, yielding highest

performance slot. DSP48E and CSD based implementations have been compared to

study the effect of variation in input and coefficient data widths. The proposed

algorithm makes superior design choice depending upon design parameters. Figure

4.3 illustrates the performance comparison between CSD and DSP48E

implementations for different bit widths, highlighting that there is a selective band in

which throughput of DSP48E based design outperforms CSD implementation. In the

initial region, CSD based design has better clock speed because of very small length

of CPA in the critical path. For bit widths from 12 to 23, DSP48E exhibits a

consistent clock that has better throughput / performance due to dedicated hardware

multiplier. As data width is increased further, additional DSP slices are consumed due

to 25x18 bits input limitations of DSP48E. These additional DSP slices have non-

optimal pipeline levels than the original design and reduce its performance in

comparison to CSD implementations in that region.

Page 44: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

30

Figure 4.3: Comparison of clock rates for Systolic FIR filter and CSD

implementations by varying data width.

4.2.4 Unfolding

Foremost performance enhancement characteristics of FPGAs are the massive

hardware available for parallel implementations. Minimal hardware parallel

architecture is generated by unfolding the Data flow Graph (DFG). While maximal

performance limit for embedded hardware resources is attained, further performance

improvement can only be achieved by addition of further resources. This can be

performed effectively through unfolding of the design [7]. An unfolded design

processes multiple samples simultaneously using more computational resources but

conserving the total algorithmic delay elements. Retiming of transformed architecture

relocates these delays in such a manner that enables the application of supplementary

optimization techniques. Figure 4.4 illustrates the unfolding method, where the delay

elements are conserved and the computational units are replicated. U and V are the

nodes in the original DFG, whereas, → indicates the edge from node U to V. J is the

unfolding factor that is equivalent to the number of parallel stages required. For each

node U in the original DFG, J nodes U0, U1, …... UJ-1 are drawn in the transformed

DFG. For each edge U→V with w delays, draw the J edges Ui→V(i+w)%j with i w

J

+

delays for i=0,1, …. J-1. Where is the floor operator that selects the next lower

integer. With this transformation, J inputs are processed simultaneously, generating J

outputs in parallel, thus increasing throughput J times [49].

0

100

200

300

400

500

600

700

800

0 5 10 15 20 25 30 35

Clock (MHz)

Number of Bits

DSP48E

CSD

Page 45: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

31

Figure 4.4: Single input / output system is transformed into dual input / output system

utilizing unfolding.

4.2.5 Distributed Arithmetic

DA technique is used for implementing dot product between a variable and a constant

array. It can therefore be effectively employed for implementation of FIR, IIR and

FFT algorithms [37,51]. With the advancement in FPGA technology and wide spread

usage of LUTs for implementation of logic functions, the significance of DA for

designing hardware efficient architectures has increased considerably. DA logic

replaces the MAC operation of convolution summation into a bit serial LUT read and

addition operation. The input samples can be described as (3.3), if considered as N-bit

fixed point numbers in 1.( 1)NQ − format

0

10

1

- 2 2k kb

Nb

k

b

x x x−

=

= +∑ (4.5)

The inner product of the two arrays can therefore be written as follows:-

0

10

1 1 1

(- 2 2 )k kb

K K Nb

k k k

k k b

y x h h x x−

= = =

= = +∑ ∑ ∑ (4.6)

0

-1-

1 1 1

(- ) [ ]2k kb

K K Nb

k k

k k b

y h x h x= = =

= +∑ ∑∑ (4.7)

The DA technique pre-computes all the values of 1

K

k k

k

x h=∑ and stores them in

the LUT that is addressed through the respective bits of the input vector. The product

can be obtained by shifting each lookup table output correspondingly or by shifting

the accumulator right at each iteration. After N shift accumulate operations, the final

result is obtained. DA filter correspondingly enhances the throughput as the inner

product is independent of the number of taps and solely depends upon the bit width of

the input samples. The size of ROM increases exponentially with the address space,

Page 46: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

32

therefore, in case of large number of coefficients the ROM size grows prohibitively

large [51]. To reduce the size to manageable proportions the ROM is split into partial

tables and an adder or compression tree with adequate pipelining is used to add the

results, thus unaffecting the computational speed. The design is pipelined after each

selection multiplexer and the compressor tree is used as accumulator, the carry ripple

path forms the critical path in the architecture.

DA carry sum((N - 1) t + t ) / Nτ = (4.8)

Figure 4.5: LUT based DA architecture.

The throughput of the DA architecture, therefore, depends upon length of the

CPA after the compressor / accumulator. In equation (4.6), carryt is the propagation

delay from the CIN input of the slice to the COUT output of the slice and sumt is the

propagation delay from the A/B/C/D inputs of the slice to the COUT output of the

slice. The complete sample is processed in N cycles, the sample rate is therefore lesser

than other types and varies linearly with the data width.

4.2.6 Look Ahead Transformation (LAT)

Feedback loop in the recursive architectures is an impediment to direct

application of pipelining techniques. Introduction of registers in the feedback path to

reduce critical path delay alters the complete transfer function. Figure 4.6 shows the

feedback architecture of first order IIR filter, which has a critical path delay of an

adder and a multiplier. For throughput enhancement, the pipeline stages in recursive

data path are added using LAT [29]. Transformed filter is stable if scattered LAT is

used, however, for clustered LAT the stability of the filter requires verification after

transformation. The recursive difference equation for the IIR filter can be written as:-

Page 47: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

33

[ 1] [ ] [ 1]y n ay n bx n+ = + + (4.9)

LAT is applied by using the following generalized form:-

1

0

[ ] [ ] [ 1 ]M

M k

k

y n M a y n a bx n M k−

=

+ = + + − −∑ (4.10)

Equation (4.8) highlights that LAT increases the complexity of feed forward

portion of the filter, that is pipelined independently of the recursive part.

Figure 4.6: Feedback loop of IIR filter causing a bottleneck to further pipelining.

The transformation modifies the loop delay from z-1

to z-m

, so that the loop

iteration can complete in M cycles. The system, therefore, has M cycles to complete a

single algorithmic iteration. This multiply-add operation can now be effectively

pipelined to attain speed enhancement. Further increase in throughput can also be

achieved by resorting to parallel implementation of the same architecture after

unfolding. The feedback loop of the first order IIR filter in Figure 4.7 has two delay

elements that permit the multiplication operation to be completed in two cycles.

Unfolding is useful in design instances where there are a number of algorithmic delay

registers and less combinational logic. In these designs, retiming after unfolding

provides the flexibility of placing these registers, keeping in view underlying

processing block for optimizing the design objective.

Figure 4.7: Transformed filter has two registers in the feedback loop for multiplier

pipelining to two levels.

Page 48: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

34

4.2.7 Development of Algorithm

The variables used in the algorithm are of three types. First are the design

parameters that are defined by the application requirements and accordingly constrain

the implementation algorithm. These include throughput (µ), filter order (N) and bit

width of operands (λ). Second type is resource constraints of FPGA that include slice

area utilization (α) and number of available DSP slices (ε). The third type is the

proposed algorithmic variables, which are computed and updated iteratively for

design of optimal architecture. These include unfolding factor (Ω), pipeline level of

architecture (ρ), number of compression stages (σ) and computed clock speed (ω). λ is

obtained from filter specifications and may vary from one application type to other.

The design technique takes the specified λ as a design parameter and designs the

architecture based on its value. To demonstrate the optimality, the value of λ has been

changed and the proposed design tool selection criterion is explained. During the

design phase, a typical implementation is selected by comparison of application

requirements with the selection criteria. ρ defines the pipelining level and is specific

to the architecture and depends upon the throughput requirement. For DSP48E the

number of available pipeline registers three (3) limits the number of pipeline stages.

For compression trees, there is no such limitation. The design tool optimally selects ρ

to meet the requisite throughput. With the increase in the filter order the required

hardware resources also increase. Sharp filter transitions require high order filters and

throughput demands necessitates transformation for parallel / fully dedicated

architecture. As a limited number of DSP48E MAC units are available in a FPGA,

therefore, as the filter order “N” is increased the implementation preference is

transformed to CSD implementation. If the hardware resources are required to be

constrained further, (α) the specified slice logic utilization ratio value is used to select

between CSD and DA implementations. The algorithm is therefore scalable with the

higher filter orders. Flow chart is given as Figure 4.8.

Synthesize (filter)

1: init α and ε from FPGA parameters

2: read µ, N and λ and filter_type from filter specifications

3: input coefficients file

4: if filter_type = IIR then

Page 49: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

35

5: filter = LAT(filter, ρ )

6: if _ Low limit _ High limitDSP DSPλ≤ ≤ and N ε≤ then

7: filter_architecture = MAC(filter)

8: elseif _ Low limitDSPλ ≤ or _ High limitDSPλ ≥ or

1N ε≥ + then

9: if A α≤ then

10: filter_architecture = CSD (filter)

11: else

12: filter_architecture = DA (filter)

13: else

14: filter_architecture = DA (filter)

15: return filter_architecture

LAT (filter, ρ )

1: M= ρ

2: for iterations=1:M do

3: Apply Lookahed transform

4: Decompose into feed forward and feedback partitions

5: calculate coefficient values

6: return coefficients

MAC (filter)

1: for ρ = 1 to N/pipeline level do

2: num_register = add register

3: 1ρ ρ= + , calculate µ

4: if tgtµ ≥ then

5: return filter_architecture

6: else

7: retime ( )e v uϕ γ γ γ= + −

8: if 4ρ ≥ then

9: filter_architecture = unfold (filter)

10: 1Ω = Ω+

Page 50: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

36

11: if µ ω≤ then

12: return filter_architecture

DA (filter)

1: DA_stages = filter_taps mod 6

2: DA_LUT = bit_width/x;

3: comp_tree_accum = (DA_LUT+3):2;

4: for ρ = 1 to tree_height do

5: num_register = add register

6: 1ρ ρ= + , calculate µ

7: if tgtµ ≥ then

8: return filter_architecture

9: else

10: filter_architecture = unfold (filter)

11: 1Ω =Ω+

12: if µ ω≤ or NΩ ≥ then

13: return filter_architecture

CSD (filter)

1: const_coeffs = csd_coeffs

2: for ρ = 1 to tree_height do

3: num_register = add register

4: 1ρ ρ= + , calculate µ

5: if tgtµ ≥ then

6: return filter_architecture

7: else

8: retime ( )e v uϕ γ γ γ= + −

9: if ρ σ≥ then

10: filter_architecture = unfold (filter)

11: 1Ω =Ω+

12: if µ ω≤ then

Page 51: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

37

13: return filter_architecture

Figure 4.8: Flow chart showing the filter architecture formulation from filter

specifications.

4.3 Implementation

Two case studies presented in this section elaborate the effects of employing the

discussed design optimizations. FIR filter implementation using DSP48E, CSD and

DA architecture has been evaluated first, followed by design of an IIR filter

architected using LAT, feedback pipelining and unfolded parallel implementation.

These filters have been implemented using Verilog hardware description language on

Xilinx Virtex-5 FPGA (xc5vlx220-2ff1760 with speed grade two and optimization

effort set to normal) to study the performance parameters of discussed optimizations

and to evaluate the proposed algorithm. Mentor Graphics Modelsim SE 6.1F has been

used as simulator and Xilinx ISE 12.3 as the synthesis software.

Page 52: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

38

4.3.1 Feed Forward Optimization

Standard TDF architecture implementation of four-tap FIR filter was synthesized at

292 MHz using four DSP48E blocks. The systolic implementation of same filter,

effectively using the available registers in the embedded blocks, synthesized at 535

MHz, which is 1.8 times faster than standard implementation utilizing the same

hardware resources. As each MAC unit implementation in this arrangement utilizes an

input register, multiplier with registered output and adder with registered output,

therefore, such a unit maps optimally to the DSP48E MAC unit utilizing the internal

registers and reducing the combinational cloud. The registers used for pipelining of

the architecture are absorbed into the DSP48E block that has optional three levels of

pipelining and no extra register is required.

The same filter was then implemented as add-shift tree employing CSD

coefficients and 6:3 compression trees. This implementation was synthesized at 423

MHz and its pipelined version at a clock speed of 520 MHz. The six coefficients CSD

implementation, as illustrated in the Figure 4.9, embed optimally in FPGA slice fabric

utilizing the six input LUT. This implementation yields additional accuracy than four

coefficients CSD implementation, utilizing similar hardware resources. Table 4.1

shows the clock, hardware and MSE of these implementations.

Figure 4.9: 6:3 CSD compression tree implementation architecture using 6

coefficients 6:3 compression trees.

Page 53: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

39

Table 4.2: Maximum clock frequency for different bit width operators

Bit Width

Clock Frequency (MHz)

DSP48 CSD

4 670 710

6 525 692

8 550 700

10 550 685

12 550 569

14 550 537

16 550 520

18 550 500

20 550 458

22 550 442

24 317 423

26 371 407

28 303 395

30 287 400

Available pipeline stages for DSP48E are a maximum of three only. Further

addition of pipeline registers will not improve the clock frequency any further.

Applications requiring additional throughput enhancement require to duplicate the

hardware. Unfolding is employed for effective parallel transformation after addition

of pipeline registers and then mapped onto systolic compression tree architecture by

designing a custom computational unit consisting of two CSD multipliers and two

adders. Registers for pipelining are added and the design is pipelined to single LUT

level. The critical path is reduced to only a single LUT combinational delay,

therefore, the throughput of this architecture depends only on the size of CPA that is

used for final addition. To analyze the effect of different architectures the same filter

was re-implemented as CSD using carry chain, carry save addition employing

compression trees of 3:2, 4:2, 6:3 and 7:3 respectively.

CSD based filters provide an efficient tradeoff between computational speeds

and the hardware utilization. However, DA is a proficient choice for applications

requiring implementation of very high order filters or with reduced slice utilization

ratio. DA based FIR filters employing ROM splitting (m=3, k=6) for reduction in

ROM size and using LUTs instead of block RAM resources have been implemented.

Each LUT can be optionally pipelined and the output from each individual DA LUT

Page 54: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

40

is then compressed using 18:2 compressor tree, comprising 6:3 and 3:2 compressors.

These partial values are then accumulated through compressor tree. A single CPA is

used to add the final sum and carry values to generate output every bth

cycle (‘b’

being the input bit width). The design can be effectively pipelined to gain the clock

speed advantage of 485 MHz against the non-pipelined version clocking at 187 MHz.

Figure 4.10: DA accumulation stage based on compression tree architecture

composed of 6:3 compressors.

For high throughput high filter order applications, DA affords fully parallel

architecture, where the complete input data word is processed in parallel. The parallel

implementation of DA based filter using 18 bits at a time (BAAT) and compressing

using the 6:3 compressor trees (31 x 6:3 compressors, 1 x 3:2 compressor) have

resulted in the sample rate gain of 13 times with a hardware usage increase of 11

times.

Intellectual property (IP) filters provided with Xilinx ISE have been

implemented on the same platform for comparison with transformed filters through

the proposed algorithm. The IP FIR complier 5.2 was used for the purpose that has the

options selectable between fully parallel MAC implementations and the DA based

architectures. Systolic MAC IP filter implementation is synthesized at 500 MHz clock

utilizing nine DSP48E blocks and 5480 bit slices. IP DA architecture of the same

Page 55: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

41

filter is operable at a clock speed of 382 MHz using 3668 bit slices. Filters of same

specifications designed through FDA HDL of MATLAB have also been implemented

on the same platform for comparison.

Figure 4.11: FIR filter Comparison.

4.3.2 Recursive Loop Optimization

The IIR filters cannot be pipelined directly due to the feedback loop inherent in the

recursive part. LAT is applied for the architectural transformation and then pipeline

stages are added in the feedback path. The transformed filter can also be retimed for

associating the algorithmic registers with the computational nodes for effective

mapping using embedded blocks. As a case study, the first order IIR filter architecture

was transformed through the proposed algorithm. After retiming of the registers, the

synthesis on the same device resulted in an improvement in clock operating rate from

159.969 MHz to 250.652 MHz respectively. Multiplier-less implementation of the

same filter using 6:3 compression trees is operable at 175.23 MHz clock frequency.

Figure 4.12: IIR filter Comparison.

DA based recursive filter architecture was also implemented to study the

reduced area implementation of IIR filter. The filter architecture utilizes dual daisy

Page 56: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

42

chain shift registers. Output of the DA LUTs is addressed through the dual daisy

chain and reduced using single compression tree architecture. The filter employs

ROM splitting (m=3, k=6) and the 9:2 compressor tree comprising 6:3 and 3:2

compressor stages. The output y(n) is fed back after quantization by N bits to the

serial shift register. A single CPA is used at the last stage to generate the final output.

4.4 Experimental Results

Different filter architectures were transformed using a combination of

transformations discussed in section 4.3, and were implemented on FPGA to evaluate

their performances. These implementations include compression trees, TDF systolic

MAC, DA and parallel architectures. Tables 4.2 and 4.3 enumerate the performance

metrics of different FIR and IIR filter architectures, varying the filter order and data

widths respectively. The clock and sample rates are enlisted in respective tables,

comparing different architectures on basis of relative throughput. Sample rate is the

product of implementation clock speed and number of input samples processed in a

single cycle. Relative throughput of each filter is shown in percentage, comparing FIR

and IIR filters amongst their respective categories. Hardware utilization of each filter

is given in terms of consumed DSP blocks and bit slices.

Table 4.3: Performance metric for transformed FIR filter architectures

Filter Architecture Order

(N)

Area

(Bit Slices)

DSP48 Clock

(MHz)

Sample Rate

(MHZ)

Relative

Throughput

CSD 6:3 Compr. Trees 7 444 - 182.3 182.3 100%

TDF Systolic 7 114 7 423 423 232%

2 Unfolded MAC 7 14 14 535 1070 587%

FDA HDL Pipelined 18 653 18 302.5 302.5 166%

IP Systolic MAC 18 548 9 500 500 275%

TDFCSD Pipelined 18 1071 - 520 520 286%

Pipelined DSP48 MAC 18 14 18 535 535 294%

DA IP core 18 3668 - 382.6 21.2 12%

DA Compr. Pipelined 18 539 - 492 26.9 15%

Number of utilized DSP blocks is a critical cost parameter, as these are

typically in limited quantity as compared to bit slices. A moderate order MAC filter,

therefore, has a large ratio of DSP block utilization. The designs based on specialized

DSP blocks are, therefore, likely to accommodate relatively smaller order filters.

Parallel transformation through unfolding provides performance increase as multiple

of clock frequencies, but has a consequent hardware increase. Comparison of relative

Page 57: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

43

throughput shows that a significant increase in the throughput has been achieved

using proposed transformation as compared to IP core and FDA tool filters. Results

for IIR filters indicate that effectively the sample rate of transformed filter is 1.8 times

the filters designed through FDA tool (At present IP core for IIR DF implementation

does not exist). Results of CSD and MAC implementations of the proposed algorithm

are tabulated in tables 4.4 and 4.5 by varying the filter order and the bit widths. These

results confirm the theoretical aspect that the clock of MAC filters implemented using

DSP blocks remains consistent within its input range, whereas, clock of the

customized compression tree based CSD architecture varies linearly with the bit width

and gives considerable higher throughput. "Dsp" and "Sl" indicate the device

utilization in terms of used DSP blocks and bit slices.

Table 4.4: Performance metric for transformed IIR filter architectures

Filter Architecture Order

(N)

Area

(Bit Slices)

DSP48 Clock

(MHz)

Sample Rate

(MHZ)

Relative

Throughput

CSD 6:3 Compr. Trees 7 927 - 175.2 175.2 100%

2 Unfolded MAC 18 14 36 206 412 235%

FDA HDL Pipelined 7 494 - 72.4 72.4 41%

Direct Form DF-I 18 14 18 156 156 89%

DA Compressor Tree 18 687 - 183.7 10.2 6%

Table 4.5: Proposed CSD transformed filter implementation

Order Bit Width

12 16 20 24 28 32 36

Clk Sl Clk Sl Clk Sl Clk Sl Clk Sl Clk Sl Clk Sl

8 569 343 542 503 516 663 492 823 472 983 452 1143 434 1303

14 569 591 542 855 516 1119 492 1383 472 1596 452 1911 434 2175

20 569 761 542 1113 516 1465 492 1887 472 2169 452 2458 434 2873

26 569 1111 542 1591 516 2071 492 2551 472 3031 452 3511 434 3992

32 569 1288 542 1844 516 2404 492 2964 472 3807 452 4507 434 4645

38 569 1411 542 2043 516 2675 492 3307 472 3939 452 4571 434 5205

44 569 1454 542 2086 516 2720 492 3352 472 3985 452 4614 434 5246

50 569 1734 542 2514 516 3307 492 4092 472 4880 452 5662 434 6454

56 569 2106 542 2838 516 3747 492 4625 472 5512 452 6522 434 7289

64 569 2612 542 3436 516 4368 492 5189 472 6008 452 7078 434 8126

Proposed algorithm has been evaluated by implementing, the filters of the

same specifications as implemented in [25,34] and [37]. These filters were also

created through MATLAB FDA tool and the Xilinx IP Core Generator. Transformed

architectures are synthesized on Xilinx FPGA (xc5vlx220-2ff1760) keeping

Page 58: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

44

optimization goal as speed and optimization effort set to normal in the ISE.

Implemented design is then constrained to obtain finalized operating clock.

Specifications, design technique and the parameters of implemented filters are listed

in table 4.6. Integral place and route tool with Xilinx ISE 12.3 is used for placement

and routing of the design. The architecture created by the proposed algorithm is

optimally pipelined and therefore shows a considerable consistent clock performance.

Table 4.7 compares the implementations of the filters described in table 4.6, by

comparing clock frequency and utilized hardware resources as number of consumed

bit slices and DSP blocks. Results show a significant performance increase from FDA

tool to IP core filters, to architectures by Rosa et al [34] and our proposed algorithm.

Implemented filters show a performance increase of about 16% operating clock speed

as compared to the filters designed in [34], 44% from FDA tool and 19% from the

core IP filters. It is observed from these results that available DSP blocks are typically

insufficient for fully parallel MAC implementation of filter orders of practical interest

in the medium priced FPGAs. Time sharing of the embedded resources is required to

implement these designs that decreases throughput / sample rate. Implementation of

filter number 3, highlights that it is not possible to map MAC based dedicated

architecture of the filter on our target device (xc5vlx220-2ff1760) as total available

DSP blocks are only 128. However, the same filter is implemented vide CSD using

only 14,248 bit slices that are 10% of the total available capacity with an operating

clock of 435 MHz. DA implementation of this filter utilizes 5979 bit slices (4.2% of

total bit slices) with a clock frequency of 429 MHz that yields a sample rate of 26.82

MHz. Implementation of 17th

order elliptic IIR audio filter (at number 7) has shown

an enhancement of an order of two times at the expense of 50% increase in the

hardware resources. The chip diagram for one of the implementations is shown in

Figure 4.13. The placement and routing has been performed by Xilinx FPGA Editor.

The process yield short and compact design that serves the important purpose of

reduced propagation delay.

Page 59: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

45

Table 4.6: Proposed MAC transformed filter implementation

Order Bit Width

12 16 20 24 28 32 36

Clk Dsp Sl Clk Dsp Sl Clk Dsp Sl Clk Dsp Sl Clk Dsp Sl Clk Dsp Sl Clk Dsp Sl

8 591 8 11 591 8 15 212 16 608 212 16 663 126 30 870 126 32 976 99 40 1143

14 591 14 11 591 14 15 212 28 1037 212 28 1197 126 54 1578 126 56 1756 99 68 2038

20 591 20 11 591 20 15 212 40 1499 212 40 1731 126 76 2269 126 80 2536 99 100 2970

26 591 26 11 591 26 15 212 52 1961 212 52 2265 126 98 2960 126 104 3316 99 128 4871

32 591 32 11 591 32 15 212 64 2423 212 64 2799 126 120 3651 126 128 4096 99 128 12372

38 591 38 11 591 38 15 212 76 2885 212 76 3333 126 128 7733 126 128 9128 99 128 19837

44 591 44 11 591 44 15 212 88 3347 212 88 3867 126 128 12165 126 128 14886 99 128 27912

50 591 50 11 591 50 15 212 100 3886 212 100 4490 126 128 17409 126 128 21523 99 128 38372

56 591 56 11 591 56 15 212 112 4271 212 112 4935 126 128 20945 126 128 26156 99 128 45222

64 591 64 11 591 64 15 212 128 4887 212 128 5647 126 128 26879 126 128 33639 99 128 56708

Table 4.7: Parameters and Specifications for the Test Filters

Filter Design Method Type Data Width

(bits)

Sampling

Freq (Hz)

Pass band

Freq (Hz)

Stop band

Freq (Hz)

Order Stop Gain

(dB)

1 Equiripple Lowpass 16 48000 9600 12000 50 80

2 Window (Hamming) Lowpass 10 48000 14400 16800 49 40

3 Window (Kaiser) Lowpass 16 48000 4800 6400 151 80

4 Equiripple Highpass 18 44100 12000 9600 50 80

5 Window (Blackman) Lowpass 16 48000 2400 3360 71 60

6 Least Squares Highpass 12 44100 6615 4410 50 60

7 Elliptic (IIR) Lowpass 16 44100 20000 20050 17 96

Figure 4.13: FPGA chip diagram for CSD FIR filter realization for filter number 2 in

table 4.7.

Page 60: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

46

Diff %

age

Fab

io &

Ro

sa

Meh

er

FD

A

MA

TL

AB

XIL

INX

IP

Co

re

Pro

po

sed

Alg

orith

m

Filter

TD

F

DA

CS

D

MA

C

MA

C /

DA

MA

C

CS

D

DA

Ad

ders

Freq

Slic

es

Freq

Slic

es

Freq

DS

P

Slic

es

Freq

DS

P

Slic

es

Freq

DS

P

Freq

Slic

es

Freq

Slic

es

Freq

34

.6%

77

59

.14

10

62

65

66

36

10

4.0

2

51

17

50

30

2

51

13

87

37

0

51

49

8

44

26

43

5

21

51

42

7

1

19

.78

%

14

38

44

2.4

7

99

5

68

28

42

18

5.7

4

20

17

67

31

2.2

22

55

1

38

0

50

45

5

23

81

53

0

19

59

43

1

2

10

.4%

21

2

60

.93

28

87

61

19

85

4

11

1.6

3

N/A

N/A

N/A

-

76

35

39

4

N/A

N/A

14

24

8

43

5

59

79

42

9

3

7.1

%

87

44

.71

10

67

65

74

26

10

3.0

4

26

28

25

30

2.2

51

84

42

5

51

45

5

43

21

42

2

20

61

42

7

4

16

.03

%

20

91

42

9.1

8

12

62

63

74

92

10

4.0

2

66

25

02

28

5.8

72

35

2

41

4

72

49

8

62

46

43

5

26

35

42

8

5

20

.7%

60

90

.61

10

61

65

38

30

13

3.8

3

35

15

00

30

2.2

51

61

39

6

51

45

5

33

65

47

8

20

34

43

1

6

18

1%

N/A

N/A

N/A

N/A

57

22

64

.79

34

11

34

64

.2

N/A

N/A

N/A

48

37

5

25

20

17

5

68

7

18

3

7

Tab

le 4.8

: Imp

lemen

tatio

n resu

lts of test filte

rs

Page 61: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

47

4.5 Complex Coefficient Multiplication

Complex coefficients are frequently encountered in DSP applications. Many a filter

coefficients are complex in nature that result in complex multiplication operations for

generation of sample output. In addition, complex multiplication is otherwise an

important DSP operation, extensively used in time frequency domain transformations,

signal analysis and control systems. Each complex multiplication operation involves

four multiplications, one addition and a subtraction operation. Complex

multiplications have been a subject of extensive research due to their widespread

usage. Complex multiplication is defined as:-

( + A ) × ( + AC) = ( − C) + A(C + ) (4.11)

Where, ( − C) and (C + ) are the products for real and imaginary parts

respectively shown in Figure 4.14.

Figure 4.14: Complex multiplier

A complex multiplication involves significant overhead than a normal

multiplication operation. For optimal realization of a complex multiplier suitable for

FPGA implementation, LUT based implementation is exploited. Booth algorithm is

used for partial product generation and Wallace tree for partial product reduction as

shown in Figure 4.15 [52,53]. Booth coding reduces the number of partial products by

half and then different compression trees are implemented for comparison of path

delays and the number of LUTs used. The implemented options include the 4:2 and

6:3 compressor based trees, hybrid architectures, carry chain based reduction tree and

DSP48 specialized multiplier block. Hybrid trees are constructed based on a

combination of carry chain and compressor based multiplier architectures.

Page 62: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

Figure

For the generation of partial products the Booth recoding algorithm is used

that results in reduction of partial products by roughly one half. The multiplier A in

two’s compliment representation is expressed as follows:

12 ( 2 )n

n jA a a−

−= − +

3 2 1 1 0 1( 2 )2 ......... ( 2 )n n n kA a a a a a a− − − + −= + − + + + −

/ 2 1

0

( 2 ) 2n

k

A a a a−

=

= + −∑

Here 1na − represents the Sign bit, n is even. The multiplication is performed by

scanning the operands from left to right. The product Y =CA is given by the

following equation:-

/ 2 1n

k

Y C A C a a a=

= = + −∑

Encoding consecutive two bits to a single bit by scanning three consecutive

bits, therefore, reduces the number of partial products to half. The subtraction is

carried out be negatively coding the

for the reduction stage. Thus the overall architecture of optimized complex multiplier

implementation comes out as:

48

Figure 4.15: Wallace tree schematic.

For the generation of partial products the Booth recoding algorithm is used

that results in reduction of partial products by roughly one half. The multiplier A in

ompliment representation is expressed as follows:-

21

0

2 ( 2 )j

nn

n j

j

A a a−

=

= − + ∑

3 2 1 1 0 1( 2 )2 ......... ( 2 )n k

n n n kA a a a a a a−− − − + −= + − + + + −

2

2 1 2 ( 2 1 )( 2 ) 2 k

k k kA a a a− += + −

represents the Sign bit, n is even. The multiplication is performed by

scanning the operands from left to right. The product Y =CA is given by the

/ 2 12

2 1 2 ( 2 1 )

0

( 2 ) 2k

k k k

k

Y C A C a a a−

− +=

= = + −∑

Encoding consecutive two bits to a single bit by scanning three consecutive

bits, therefore, reduces the number of partial products to half. The subtraction is

carried out be negatively coding the bd term. The 6:3 compression trees are employed

for the reduction stage. Thus the overall architecture of optimized complex multiplier

implementation comes out as:-

For the generation of partial products the Booth recoding algorithm is used

that results in reduction of partial products by roughly one half. The multiplier A in

(4.12)

(4.13)

(4.14)

represents the Sign bit, n is even. The multiplication is performed by

scanning the operands from left to right. The product Y =CA is given by the

(4.15)

Encoding consecutive two bits to a single bit by scanning three consecutive

bits, therefore, reduces the number of partial products to half. The subtraction is

ession trees are employed

for the reduction stage. Thus the overall architecture of optimized complex multiplier

Page 63: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

49

Figure 4.16: Booth encoded Wallace tree reduction complex multiplier.

4.6 Implementation Results

Results as given in Figure 4.17 depict that the 6:3 compressor based implementation

out performs all other types in terms of the path delay and LUT utilization.

Figure 4.17: Comparison of LUTs and Path Delay of complex multiplier.

Discussed multiplier architectures were synthesized on Xilinx Virtex-6 FPGA.

Study of underlying FPGA structure signifies that the embedded DSP48 multiplier

accumulator block will provide high speed operation and minimal hardware area

usage. Table 4.8 compares various implementations as discussed beforehand, in terms

of path delays and hardware utilization. Results demonstrate that 6:3 compressor

based implementation has the maximum clock speed. Whereas, in terms of hardware

utilization the hybrid compressor based multiplier utilizes minimum number of slices.

Relative values for the delay and area show the comparison between the multiplier

architectures and the percentage increase from the minimum. As shown, the 6:3

compressor based implementation has 35% increased area than hybrid multiplier but

has 29% higher clock rate vice versa.

Page 64: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

50

4.7 Multirate Filters

Multirate signal processing has been established as a core area of Digital Signal

Processing (DSP) systems that embed sample rate changes at one or more positions in

the signal flow path. Use of multirate signal processing has demonstrated

architectures with enhanced performance and reduced implementation costs [54,55].

Oversampling of signals makes efficient use of frequency spectrum allowing reduced

distortion and lesser stringent constraints on the analog filters that follow. Down

sampling on the other hand, yields efficient low complexity, low power designs that

considerably reduce overall system complexity and costs[56,57,58].

Owing to aforementioned reasons, multirate systems have found diverse

applications in modern DSP systems. Majority of interfacing hardware between

digital and analog domains, makes use of oversampling or interpolation. A large

number of interpolation architectures, therefore, have been reported in literature. Most

of these applications make use of cascaded Finite Impulse Response (FIR) [51-53],

polyphase FIR [59,60], Cascaded Integrator Combination (CIC) [61,62], frequency

response masking [63,64] and combination of FIR and Infinite Impulse Response

(IIR) filters [65,66] and so forth. In most cases, FIR filters were employed because of

their inherently stable architecture, linear phase and lesser quantization noise.

However, in most practical applications, the stringent application requirements

necessitate higher order FIR filters that increase the complexity of these architectures

significantly.

IIR filters are much more efficient than their FIR counterparts in the sense that

they require a much smaller number of coefficients in order to meet a given set of

specifications. Modern FIR filter design tools utilizing multirate/polyphase techniques

have bridged the gap while providing linear-phase response along with good

sensitivity to quantization effects and the absence of stability and limit cycles

Table 4.9: Comparison of Different Implementation Architectures

Adder Path Delay Bit Slices Increase in Delay Increase in Area

6:3 Compressor 6.74 ns 1820 - 35 %

Hybrid Compressor 8.7 ns 1340 29 % -

Carry Chains 9.4 ns 1493 39 % 11 %

4:2 Compressor 9.7 ns 1950 43% 45 %

DSP Multiplier 10.2 ns 2234 51 % 67 %

Page 65: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

51

problems when implemented in fixed-point. However, IIR polyphase filters enjoy

most of the advantages that FIR filters have and require a very small number of

multipliers to implement.

Multirate applications of recursive filters were traditionally restricted to all

pass architectures [67], combination of IIR and FIR half band filters [77]. However,

these implementations suffered from pole sensitivity issues. Farooq et al [68] have

proposed Merged Delay Transform (MDT) for effective recursive multirate

transformation. MDT filter is implemented as cascade of feed forward and parallel

transformed recursive architecture. Recursive Transfer Function (RTF) is split into

first and second order parallel sections that are independently transformed and

implemented in parallel. The transformed architecture is then suitable for polyphase

implementation. Oversampling/under-sampling of the data extends an opportunity to

the designer to manipulate the aliasing and spectral properties of the signal. Noble

identity is used to swap the sampling order of filtering and this sampling rate change

operation [69]. This permits reduced input/output clock rates, providing the

advantages of slower operating clocks and reduced power consumption. This

transformation conserves the magnitude and phase response of the original filter,

however, the fundamental requirement of parallel implementation of recursive section

restricts its usage for filters of practical orders due to high fan-in of resulting

hardware. Furthermore, multiple inputs to an adder yield a suboptimal design

requiring special multi-operand addition support in Field Programmable Gate Arrays

(FPGA) for high performance.

In this section, a novel technique for modification of MDT (MMDT)

algorithm is presented that provides a general transformation. The proposed transform

directly converts the RTF into higher power of the delay factors i.e. the denominator

is expressed directly in terms of extended delay elements DE , D E, D2E,⋯DHE,

where M is the decimation/interpolation factor and N is the filter order. Order of the

transformed filter is thereby increased, whereas, number of coefficient terms are kept

constant, yielding a RTF suitable for implementation in direct, cascade or parallel

forms. These available architectural choices make MMDT feasible for filter orders of

practical interest. Cascade realization techniques can be effectively employed to the

resulting architecture providing the advantages of stability, lesser coefficient scaling

and higher precision fixed point implementations. It is shown that MDT is a special

case of this general transform.

Page 66: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

52

Sections 4.8 gives the overview of MDT. Quantization effects and stability

analysis has been done in section 4.9, with hardware implementation and comparison

of performance in section 4.10.

4.8 MDT architectural transformation

This section gives a brief overview of MDT as presented by Farooq et al [68]. This

transform breaks original RTF in first and second order parallel sections and applies

the transformation on each independently. An arbitrary order IIR filter is given by:-

*IJK = %H%"# LIJ − MK − %H

%"# *IJ − MK (4.16)

The RTF is defined as

N(O) = PIOKQIOK = ∑ %H%"# D%1 − ∑ %H%" D% (4.17)

4.8.1 Transformation of first order section

Output of the first order filter is expressed as:-

*IJK = *IJ − 1K + LIJK (4.18)

MDT transforms the filter such that current output can be represented in terms

of Mth

previous sample only. Using MDT equation 7.1 is transformed as:-

*IJK = E *IJ − SK + % LIJ − MKE%"# (4.19)

Figure 4.18: Architecture of first order recursive filter after MDT.

Page 67: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

53

Figure 4.18 [68] shows the architecture of the first order recursive filter after

application of MDT transform.

4.8.2 Transformation of second order section

Input output relationship of a second order simple IIR filter is given as:-

*IJK = #LIJK + LIJ − 1K − *IJ − 1K − *IJ − 2K (4.20)

For transformation the second order filter is decomposed into first order sub

filters. Following relations are established between the complex conjugate pairs:-

*IJK = * IJKJC*TIJK = −* TIJK (4.21)Where * , *Tand* , * T are the respective sub filter’s real and imaginary

outputs. Combining the outputs of both filters:-

*YZ[IJK = *IJK +* IJK = 2*IJK (4.22)Solving equations for complex mathematics it can be derived that:-

N(O) = ∑ N%E%"# DED%1 − /DE − \D E (4.23)

Figure 4.19: Architecture of Second order recursive filter after MDT.

Figure 4.19 [68] shows the architecture of the second order recursive filter after

application of MDT transform.

4.8.3 Transformation of Nth order Filter

For application of MDT the transfer function of Nth

order filter is to be decomposed

into parallel first and second order conjugate sections. An Nth

order filter can be

implemented in form of N/2 second order sections if N is even, or a first order section

Page 68: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

54

and (N-1)/2 second order sections, if N is odd. Individual sections are then

transformed and implemented as shown in Figure 4.20.

Figure 4.20: Implementation of Nth

order transformed IIR Filter (for N odd).

Figure 4.20 [68] shows the architecture of the Nth

order recursive filter after

application of MDT transform.

4.9 Amplitude Response and Stability Analysis

The proposed transform conserves the amplitude response of the original filter.

Figures 4.21(a) & 4.21(b) show the amplitude responses for original filter and

transformed filter for an interpolation factor of four. Pole zero plots are used to define

the stability of the IIR filters. Figures 4.22(a) & 4.22(b) show the pole zero plots of

original filter and its quantized form. Figures 4.23(a) & 4.23(b) show the pole zero

plots of transformed filter and its quantized form. Both the figures depict that

although there is an addition of M poles and M zeros, the quantized filter still remains

stable.

Page 69: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

55

Figure 4.21: Amplitude response (a) Original filter (b) Transformed filter

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-1500

-1000

-500

0

Normalized Frequency (×π rad/sample)

Phase (degrees)

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-200

-150

-100

-50

0

Normalized Frequency (×π rad/sample)

Magnitude (dB)

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-1500

-1000

-500

0

Normalized Frequency (×π rad/sample)

Phase (degrees)

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-200

-100

0

100

Normalized Frequency (×π rad/sample)

Magnitude (dB)

Page 70: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

56

Figure 4.22: Pole zero plot (a) Original filter (b) Quantized filter

-1.5 -1 -0.5 0 0.5 1 1.5

-1

-0.5

0

0.5

1

Real Part

Imaginary Part

Pole/Zero Plot

-1.5 -1 -0.5 0 0.5 1 1.5

-1

-0.5

0

0.5

1

Real Part

Imaginary Part

Pole/Zero Plot

Filter #1: Quantized Zero

Filter #1: Reference Zero

Filter #1: Quantized Pole

Filter #1: Reference Pole

-1.5 -1 -0.5 0 0.5 1 1.5

-1

-0.5

0

0.5

1

Real Part

Imaginary Part

Pole/Zero Plot

Page 71: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

57

Figure 4.23: Pole zero plot for (a) Transformed filter architecture (b) Quantized form

of the transformed filter architecture.

4.10 Implementation Results

An audio interpolation filter [68], with interpolation factor as four has been

implemented on FPGA as well as the ASIC for comparative analysis. The results are

tabulated in tables 4.10 and 4.11 respectively. The results show that the transformed

architecture has significant performance enhancement over the original

implementation.

Table 4.10: Area and clock rate comparison for FPGA implementation of audio filter

Implementation platform Architecture Utilized Hardware

Slices DSP Blocks Clock (MHz) Latency (ns)

FPGA implementation (65nm technology)

(Multiplier based) Parallel 2286 67 109.5 9.13

(Compressor based) Parallel 5052 - 124.5 8.03

Table 4.11: Area and clock rate comparison for ASIC implementation of audio filter

Implementation platform Architecture Utilized Hardware

Gates Area (mm2) Clock (MHz) Latency (ns)

ASIC implementation (180nm technology)

(Multiplier based) Parallel 40040 1.150 76.9 13

(Compressor based) Parallel 15044 1.109 87 11.5

-1.5 -1 -0.5 0 0.5 1 1.5

-1

-0.5

0

0.5

1

Real Part

Imaginary Part

Pole/Zero Plot

Filter #1: Quantized Zero

Filter #1: Reference Zero

Filter #1: Quantized Pole

Filter #1: Reference Pole

Page 72: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

58

4.11 Summary

A FPGA specific algorithm has been proposed in this work, which yields high

performance architectures for feed forward and feedback filters. The algorithm takes

into consideration the possible architectural transformations and the optimal

architecture to device mapping methods, to efficiently use the embedded arithmetic

blocks and customized compression trees for design of optimal filter implementation.

CSD based single coefficient CSE compression trees using 6:3 compression

architecture have been found most suitable choice for implementation of high speed

filters on FPGAs. However, due to provision of specialized embedded computational

elements, distinct performance bands have been identified, in which the embedded

blocks outperform the CSD implementations. Owing to application specifications, the

proposed algorithm transforms the filter architecture using either of the two. The

algorithm is scalable with high filter orders by use of modified DA based architecture

for very sharp transition narrow band filters. These design transformations are

applicable to both FIR and IIR filters alike for attaining consequent performance

enhancement. Using the proposed algorithm, the resulting filter architectures show

much superior performance as compared to the previously reported architectures,

FDA tool and the IP core filter architectures. Experimental results show a throughput

increase ranging from 7% to 30% over classical implementations. Because of its

consistent improved performance, the proposed algorithm is very well suited for

modern high throughput applications.

Implementation results of different complex multiplier architectures as shown

above have compared the carry chain based, 6:3 and 4:2 compressor based, DSP 48

multiplier based and hybrid construction of complex multipliers. The comparison

results highlight that the custom architecture conformant to the underlying FPGA

structure outperforms all the other architectures with 6:3 compressor based complex

multiplier reducing the critical path delay by 29%.

In addition to the above mentioned filter architectures, multirate filters are also

transformed through the proposed transformation technique. The transformation

allows for generation of efficient architectures for recursive decimation and

interpolation filters. Comparison of implementation results with original MDT

architecture highlights 14% reduction in critical path delay utilizing FPGA general

slice fabric. Proposed design has an inherent affinity for optimal mapping on current

Page 73: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

59

FPGA slice fabric.

Page 74: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

60

5 Coordinate Rotation Digital Computer

5.1 Introduction

CORDIC algorithm is used for generation of digital frequencies. All communication

systems utilize some form of up / down conversion. This conversion is performed by

either multiplication by a sinusoid of controllable frequency (e.g. QAM) or by directly

modulating the frequency of the sinusoid (e.g. FM, GMSK) [70,71]. A full digital

implementation of the communication systems requires direct digital frequency

synthesis (DDFS) [7, 3]. Also it has lower phase noise, fine frequency resolution and

the ability to rapidly change frequency [8]. CORDIC is one of the methods for

generation of a sinusoid is based on trigonometric definition and properties of the sine

and cosine. It requires very few constant coefficients and is more suitable for

implementation in a flexible ASIC [9] architecture or a general purpose processor.

Coordinate Rotation Digital Computer (CORDIC) algorithm is used for

numerical generation of sine and cosine of an angle. The algorithm was originally

developed for computing rotation of a vector in Cartesian coordinate system [72] and

was further extended for computation of hyperbolic, multiplication, division,

exponential, and logarithm functions [73]. Multiplication by sine and cosine is an

integral part of any communication system, therefore, area and time efficient

techniques for iterative computation of CORDIC have significance in digital design.

The finest application of CORDIC algorithm is its use in Direct Digital Frequency

Synthesis (DDFS). Several architectural designs around CORDIC have been reported

in literature, some of them are [68-73] and [74].

The latency of CORDIC algorithm is critical in most of the applications. Basic

CORDIC algorithm [72] has constant latency, therefore, N iterations of algorithm are

required for N bits of precision. Several methods have been proposed in literature that

suggests modifications in the CORDIC algorithm for reducing the number of

iterations in calculating sine and cosine of an angle. A recent publication in this effect

[75] proposes a dynamic angle selection scheme that recodes the angle to reduce the

number of iterations by 50%. Aytore et al [76] have proposed a reduced iteration

CORDIC algorithm, but their method involves diversified iterations. These in turn

require additional logic and control to select between different iteration types, thereby

increasing complexity as well. ROM splitting technique has been employed to reduce

Page 75: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

61

storage requirements and offset computation method is used for obtaining increased

precision. This method is computationally extensive although it absolves the

requirement for double rotations or variable scale factor. An offline angle-recoding

algorithm is presented in [70] that also results in more than 50% reduction in the

number of rotations but only works for fixed angles that are known a priori. Higher

radix algorithms were also used in an attempt to reduce the number of iterations. A

radix-4 representation of results in significant savings as it selects one of the four

possible rotations from the set +2,+1, 0, −1,−2 [77]. The algorithm, however, has

an overhead in the selection logic that needs to find out which one out of the four

rotations is to be applied. A double rotation technique is proposed in [78]. The

algorithm uses a prediction technique to set the values of and . Parallel angle

coding has been employed in [79,80,81] and [82] but it results in a significant increase

in number of micro-rotations than the conventional CORDIC method. [74] has

proposed a look-ahead method to compute the initial iterations directly from the

encoded angle with reduced accuracy to improve the performance. The method

however, results in increased hardware utilization. Similar to these approaches many

other techniques are presented in literature with focus on reducing the number of

rotations. A comprehensive coverage of these algorithms is given in survey papers

[83,84] and [85]. In an attempt to minimize the number of rotations, this paper

proposes IS-CORDIC architecture based on a novel technique that computes values of

sine and cosine in a single cycle. Iterative computation of direction of rotation ( ) is

not required, as is made independent of preceding iterations. Pre-computed values

for initial few iterations are read from a ROM and then successive iterations are

merged and recoded to map them onto a single CORDIC Element (CE).

5.2 CORDIC Algorithm

CORDIC generates Sine and Cosine digitally at the same time for a given angle, by

performing known recursive rotations with precision directly proportional to the

number of iterations. The basic idea is transforming vector (x1, y1) into a new vector

(x2, y2) as shown in Figure 5.1.

Mathematically it can be written as

2 1 1*cos( ) *sin( )x x yφ φ= − (5.1)

2 1 1*sin( ) *cos( )y x yφ φ= + (5.2)

Page 76: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

62

Where

2 1φ φ φ= − (5.3)

Figure 5.1: Angle Rotation

The complete angle with required precision is calculated over several

iterations. In matrix form, the above equation can be written as:

2 1

2 1

cos sin

sin cos

x x

y y

φ φφ φ

− =

(5.4)

The general representation of above equation, while taking cosφ as common

from equation (6.4):-

1

1

1 tancos

tan 1

n nn

n

nn n

x x

y y

φφ

φ+

+

− =

(5.5)

In equation 6.5, the angle steps are made a power of 2, for easy hardware

implementation by simple right shifts:-

1 1

tan2

n nφ − =

(5.6)

0

n n

n

s φ φ∞

=

=∑ (5.7)

Where

1, 1ns = + − (5.8)

tan 2 n

n nsφ −= (5.9)

With the combination of equations 6.5 and 6.9

1

1

1 2cos

2 1

nn nn

n n

n nn

x xs

y ysφ

−+

−+

− =

(5.10)

Page 77: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

63

Now in the above equation there are only few shifts and adds beside cosnφ,

which can be computed by taking Cos of equation 6.6 for all values of n:-

1

0

1cos tan ( ) 0.607253

2n n

K π ∞ −=

= ≈

(5.11)

Taking K as a constant equation 6.10 is simplified as:-

1

1

1 2

2 1

nn nn

n

n nn

x xs

y ys

−+

−+

− =

(5.12)

1 2 n

n n n nx x s y−+ = − (5.13)

1 2 n

n n n ny s x y−+ = + (5.14)

As we are talking about hardware we have to cater the angle nφ as a binary

shift which represents powers of 2.

1 1

1 tan 2n

n n nsφ φ − −+ = − (5.15)

5.3 Hardware Implementation Architecture

The CORDIC architecture is shown in Figures 5.2a & 5.2b. The architecture consists

of adder / subtractor and the shift registers. There are some gates or multiplexers to

select the taps of the shift registers for the right shift terms. The CORDIC has been

implemented using MODELSIM XE 6.3 and synthesized using XILINX ISE 11.1, the

input to the system is a 1’s compliment value of angle from 0 to π/2.

ix

iy

1ix ≫

1iy ≫

M

M

N

[ 1]i Nθ −

1iθ +

1iy +

1ix +

-i -itan 2iθ∆

1ix ≫

1iy ≫

M

M

N

1[ 1]i Nθ + −

2iθ +

2iy +

2ix +

M

M

N

-i -itan 2iθ∆

Page 78: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

64

0CE 1CE

1NCE −

0x k=0 0y =

0 dθ θ=

1x1y

2x2y

1Nx −

1Ny −

1Nθ −

Nx

Ny

CosθSinθ

Clk Clk

Clk Clk

0θ =

1 00

-tan 2θ =∆ 1 11

-tan 2θ −=∆

1 11

- NN tan 2θ −− =∆

Figure 5.2: CORDIC architecture (a) CORDIC Element (CE) (b) CORDIC

architecture pipelined.

5.4 Basic CORDIC

5.4.1 Novel CORDIC Algorithm

CORDIC algorithm is based on giving known recursive rotations to a unit vector to

bring it to a desired angle=. Once the vector reaches the desired angle =, L and *-

coordinates of the vector become equal to cos = and sin = respectively [86]. Desired

rotation angle = is approximated by addition and subtraction of angles ∆= of

successive rotations as:-

= = ∆=H"# for = d 1for positive rotation−1for negative rotation

e (5.16)

As illustrated in Figure 5.3, the unit vector at angle = is rotated further by an

angle ∆θf in each iterationA, that brings the vector to new angle =, then

cos = = cos(= + ∆=) = cos = cos∆= − sin = sin∆= sin = = sin(= + ∆=) = sin = cos∆= + cos = sin∆=

(5.17)

(5.18)

Page 79: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

65

θiθi+1

θd

∆θ iD

esire

d an

gle

1

xi=cosθi

yi=sinθi

yi+1=sinθi+1

xi+1=cosθi+1

Figure 5.3: CORDIC algorithm principle (incremental rotation by ). Substituting the values, L = cos = , * = sin = and Lf = cos =, * = sin = in (5.17-5.18), we have

gL*h = i cos∆= − sin∆= sin∆= cos∆= j gL*h (5.19)

In this expression cos∆= can also be written in terms oftan∆= as cos∆= =lmnop ∆qr. For avoiding multiplication by tan∆= in (5.19), the incremental rotation

is set such that tan∆= = 2. This implies ∆= = tan 2, and the algorithm

applies such successive micro-rotations of ±∆= to get to the desired angle=.

Substituting the value of tan∆= in (5.19) gives

gL*h = 1l1 + 2 t 1 − 2 2 1 u gL*h = Mv gL*h (5.20)

This is the basic rotation of CORDIC algorithm, where M = l wpr and

v = t 1 − 2 2 1 u. All Ms forA = 0,1,2, … , − 1are constants and their

product can be pre-computed as constant M [87], where

M = M#MM …MH =$ 1l1 + 2 H"#

(5.21)

For each CORDIC stage or micro-rotation the algorithm computes to

determine the direction of Ath rotation. The factorM is incorporated in the initial

iteration and the expression in (5.20) then can be written as

Page 80: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

66

iLH = cos =*H = sin =j = v#vv …vH gM0h (5.22)

Each iteration of the algorithm can be implemented as a single. This CE

implementsAth iteration of the algorithm. The CORDIC architecture affords efficient

implementations of both pipelined fully parallel and time shared architectures.

5.5 Modified CORDIC

5.5.1 Angle Recoding

The CORDIC algorithm described in previous section requires computing and only

then, it conditionally adds or subtracts the operands [70]. This conditional logic

restricts the hardware implementation to fully exploit the inherent parallelism in the

architecture. The standard CORDIC algorithm assumes = as a summation of positive or negative micro-rotations of angles ∆=s as given by (5.16). Another

binary representation of = as given in (5.21) can also be considered for micro-

rotations.

= = 2for ∈ 0,1H"# (5.23)

Where each term in the summation requires, either a positive rotation of 2 or

zero rotation depending upon the value of the bit at locationA. This representation

is not useful directly, as the constant M of (5.22) becomes data dependent and

therefore, it is no longer a constant. To make M data independent, the expression in

(5.21) is recoded to only use +1or −1. In fixed-point implementation of CORDIC, =y is represented in z.H format, which implies that in -bits of =, the MSB is set

aside for signed integer value and rest N-1 bits have fractional weights. The

expression (5.21) is recoded as:-

2H"# = )2() + 2# − 2HH

"#

) = 2 − 1 where )−1,1 (5.24)

The above implementation highlights that unlike of the basic CORDIC

method, all the values of ) are predetermined. Furthermore, the computation of ∆=s,

as done in Basic CORDIC algorithm is also no longer required. The only issue in

Page 81: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

67

Modified CORDIC algorithm is to eliminate multiplication bytan 2 in every stage.

This multiplication can be reduced to a simple shift operation as tan = ≈ =for very

small values of =. Therefore, tan 2 ≈ 2 for sufficiently large values of A. Given a -bit data path this approximation holds to full precision for all values of A ≥~( − log 3) /3 [88]. Whereas, for higher precision applications of more than 32

bits, sufficient algorithmic accuracy can be achieved for A ≥ ~/8 − 1 [79]. For a

data path of 16 bits, this leaves us to pre-compute all possible values of initial four

iterations and store them in avS. The initial S = 4iterations of the algorithm are

skipped and the output value from the Sth iteration is directly indexed from the

ROM. The address for indexing the ROM is calculated using M MSBs of = as

AJCL = =#2E + =2E +⋯+ =E2# (5.25)

LIS − 1K and *IS − 1K are obtained from ROM and rest of the values of LIMKand*IMK are then generated by using the approximation of tan 2 ≈ 2. This

modification results in a very simple fully parallel architecture, that can also be easily

pipelined for better timing performance.

5.5.2 Multi Iteration Merged CORDIC Algorithm

Different iterations in the CORDIC can also be merged to reduce hardware and

improve throughput [89]. As shown in the modified CORDIC algorithm in section

5.4.2, the iterations are now independent of the direction of rotation ofΔ=s, therefore,

the values from previous iteration can be directly substituted into next iteration. In

design example, as S = 4 then indexing into the tables gives the values of L and*.

Now these values are used to compute iteration for A = 5 as

L = L − )2** = )2L + *

(5.26)

(5.27)

The next iteration for A = 6calculates

L = L − )2* (5.28)

* = )2L + * (5.29)

Substituting expressions forL and* from (5.26-5.27) in the above

expressions (5.28-5.29), we have

Page 82: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

68

L = (1 − ))2)L − ()2 + )2)* (5.30)

* = ()2 + )2)L + (1 − ))2)* (5.31)

Repeating the same steps for Land* and then substituting values of L and *, we get

L = (1 − ))2 − ))2 + ))22)L− ()2 + )2 + )2 − )))2)* (5.32)

* = ()2 + )2 + )2 − )))2)L+ (1 − ))2 − ))2 + ))22)* (5.33)

From the expressions (5.32-5.33) it is evident that for -bit wide datapath the

terms 2% with M > shifts the entire value outside the range of the required

precision. Removing these expressions and substituting the values in each successive

iteration, the value of LH and*H can be directly expressed in terms of Land*. For

P=16, we have:-

L = L +)2*" − ))2L −

" ))2L"2 − ))2L

" (5.34)

* = * −)2L" − ))2* −

" ))2*"2 − ))2*

" (5.35)

These expressions can be implemented as two Wallace reduction trees. This

helps in merging all the iterations of CORDIC in a simple table lookup and

computation of one expression that can be accomplished in only a single cycle.

5.6 Inverse Recoded Single Iteration CORDIC

Substituting the values of successive iterations in equations 5.26 and 5.27, we have:-

L = (1 − ))2 − ))2 + ))22 − ))2 − ))#2 + ))2 −)) 2 − ))22 + ))2 − ))2 # − ))2 + ))22 −))2 − ))2 + ))#2 − ))2 − )) 2 + ))22 −))2 # − ))2 − ))2 − ))2 + ))#2 − ))2 −)) 2 + ))22 # − ))2 − ))2 − ))2 + ))#2 −(5.36)

Page 83: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

69

))2 − )) 2 # + ))22 − ))2 − ))2 2 + ))#2 −))2 # − )) 2 + ))22 − ))2 2 − ))2 − )#)2 −)#) 2 + )#)22 2 − )#)2 − )#)2 − )) 2 2 + ))22 −))2 − ))2 + ) )22 − ) )2 − ) )2 − )2)2 −)2)2 − ))2 )L − ()2 + )2 + )2 + )2 + )2 +)#2# + )2 + ) 2 + )222 + )2 + )2 −)))2−)))2 − )))2 # − )))#2 − ))#)2 −)#)) 2 2−)) )22 − ) )2)2 − )2))2 )** = ()2 + )2 + )2 + )2 + )2 + )#2# + )2 + ) 2 + )222 + )2 + )2 − )))2−)))2− )))2 # − )))#2 − ))#)2 − )#)) 2 2−)) )22 − ) )2)2 − )2))2 )L+ (1 − ))2 − ))2 + ))22 − ))2 − ))#2+ ))2 − )) 2 − ))22 + ))2 − ))2 #− ))2 + ))22 − ))2 − ))2 + ))#2− ))2 − )) 2 + ))22 − ))2 # − ))2 − ))2 − ))2 + ))#2 − ))2 − )) 2+ ))22 # − ))2 − ))2 − ))2 + ))#2− ))2 − )) 2 # + ))22 − ))2 − ))2 2+ ))#2 − ))2 # − )) 2 + ))22 − ))2 2− ))2 − )#)2 − )#) 2 + )#)22 2 − )#)2 − )#)2 − )) 2 2 + ))22 − ))2 − ))2 + ) )22 − ) )2 − ) )2 − )2)2 − )2)2 − ))2 )*

(5.37)

Reducing the equations 5.36 and 5.37 to obtain the resulting equations within

the internal bit width of the CORDIC architecture. For a 16 bit data path, we have:-

Page 84: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

70

L = (1 − ))2 − ))2 + ))22 − ))2 − ))#2++))22 − ))2 − ))2 − ))2)L− ()2 + )2 + )2 + )2 + )2 + )#2#+ )2 + ) 2 + )222 + )2+ )2)*(5.38)

* = ()2 + )2 + )2 + )2 + )2 + )#2# + )2+ ) 2 + )222 + )2 + )2)L+ (1 − ))2 − ))2 + ))22 − ))2− ))#2 + ))22 − ))2 − ))2− ))2)*(5.39)

As evident from expressions (5.38-5.39), the individual terms can be

condensed into two blocks of exponential summation for cos = and sin = respectively.

The first summation in the bracket results in12 terms, whereas, the second summation

results in9 terms. These term can be combined into two constants as =1 − ∑ ∑ ))!2(!)H!"(!)

H"E and = ∑ )2H"E . The proposed approach to design an optimal hardware for CORDIC is to map

the expressions (5.36-5.37) coded in )s into two binary constants using inverse

encoding and then use a single CE consisting of four parallel multipliers and two

adders to compute the desired outputs. Both the constants can be obtained by simple

concatenation of the bits of the desired angle. Using these constants in the CE, the

proposed technique results in a single stage CORDIC architecture implementing the

following set of equations:-

cos = = × LE − × *Esin = = × LE + × *E

(5.40)

(5.41)

A single cycle design realizing (5.40-5.41) is shown in Figure 5.4.

Page 85: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

71

β

ROM x−

ROM y−

Cosθ

SinθP

P

4N−

4N

P

Pdθ

4N − P

Figure 5.4: The optimal hardware design with single CE computes sine and cosine

using four multipliers.

5.6.1 Hardware Architecture

In many FPGA fabrics the multiplier usage has an important impact upon cost of the

design. In case embedded multipliers in the FPGA are available, they can be

efficiently used with lookup tables for the proposed IS-CORDIC design. Modern day

FPGAs are essentially rich in embedded multiplier blocks, which can be comfortably

used without any performance degradation / excessive device utilization. Due to a

fixed FPGA slice fabric, the input bit-width of these embedded blocks is limited.

Once the bit-width exceeds that range, performance degradation occurs that can be

remedied by implementing customized multiplier. Transformations for custom

architectural mapping to generate optimal performance FPGA implementations are

applied to generate an architecture that affords enhanced performance without

considerable hardware addition.

In case of ASIC and higher bit-width FPGA implementations, a custom Booth

multiplier architecture has been used that employs negative and positive selection

logic to generate respective (positive and negative) partial products employing sign

extension elimination. These partial products are then reduced through custom

Wallace compression tree architecture [90,91]. Block diagram of the multiplier is

given in Figure 5.5.

Page 86: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

72

Cosθ

Sinθ

P

P

P

P P P

P

P

PP

αβ

Figure 5.5: Block diagram of custom Booth multiplier architecture.

Radix-4 Booth algorithm is applied for partial product generation that results

in a reduction of almost 50%. Two’s complement binary representation of a number

(multiplier) is

\ =− 2 + 2 "# = ( ! + ! − 2 !)2 !/

!"# (5.42)

Where n is even, is the sign bit and equals 0. The product M=A x B is

given as

S = /\ = /( ! + ! − 2 !)2 !/ !"# = /4!2 !/

!"# (5.43)

Where 4! = ( ! + ! − 2 !) = 0,±1,±2 depending upon the

adjacent three bits. Table 5.1 shows the Booth encoding, selection, sign values and

corresponding partial products.

Table 5.1: Booth encoding, sign generation and selection values.

Input bits Output bits Selection Sign Partial Products ! ! ! 4! Q1 Q2 QN ~Msi Mij Ci A4! -A4!

0 0 0 0 0 0 0 0 0 0 0 0

0 0 1 1 1 0 0 0 A -A

0 1 0 1 1 0 0 0 A -A

0 1 1 2 0 1 0 0 2A -2A

1 0 0 -2 0 1 1 ~ ~ 1 -2A 2A

1 0 1 -1 1 0 1 ~ ~ 1 -A A

1 1 0 -1 1 0 1 ~ ~ 1 -A A

1 1 1 0 0 0 0 0 0 0 0 0

The encoding logic is given as

Page 87: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

73

z = !⨁ ! (5.44)

z = ! ⊕ !. ⨁ (5.45)

zH = !. . (5.46)

Sign function calculates the inverted MSB for sign extension. The correction

bit is generated as

S! = (z. ). (z . )⊕zH (5.47)

~S¡ = (z + z ). (zH ⊕) (5.48)

! = zH (5.49)

The partial products of the multiplication are reduced using customized

Wallace tree architecture. For FPGA implementation 6:3 compressor architecture is

used as it conforms to six input lookup table architecture of the FPGAs and results in

least routing delays [92]. It is noted that due to this multiplier block, the complexity

of the hardware and the iteration time has increased, however, due to single iteration

architecture of the proposed IS-CORDIC design, the overall latency remains fairly

low.

5.6.2 Latency

Latency of an iterative algorithm is defined as the product of number of iterations and

the time required to complete one iteration. Low latency is useful e.g. in DDFS

applications for fast frequency switching rate. Basic CORDIC algorithm with N

iterations has latency of N x iteration period plus setup delay (where N is the internal

word length). Whereas, proposed IS-CORDIC design, has only a latency of a single

iteration period plus the setup time. Both architectures are synthesized on

XC5VTX240T device with a critical path delay of 46.7ns and 5.89ns respectively.

This makes IS-CORDIC about 8 times more efficient than basic CORDIC

implementation, resulting in an enormous improvement in latency.

5.6.3 Implementation Results

A Mean Square Error (MSE) comparison of standard and IS-CORDIC algorithms for

different number of iterations is given in Figure 5.6. It is clear from the two plots that

Page 88: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

74

for > 10, MSEs for both the algorithms are very small, therefore, use of = 16

number of rotations is a good option for both the CORDIC algorithms.

Fixed-point IS-CORDIC implementations have been compared to the double

precision values of sin = and cos = to assess the approximation errors. The error

values have been computed for angles from 0 to ¢ that spans complete range of the

algorithm. As shown in Figure 5.7(a), the proposed IS-CORDIC method

implementation of 16-bits has a maximum error of the order of 10-8

that translates to a

14-bit fixed-point precision in sine and cosine computation. Figure 5.7(b) shows the

error profile for the 64-bit implementation of the algorithm. The maximum error of

the order of 10-17

results in the error after the 43rd

bit in fixed-point precision.

(a) (b)

Figure 5.6: Mean square error comparison of basic and IS-CORDIC algorithms

varying the number of rotations (a) Sine computation (b) Cosine computation.

Page 89: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

75

(a)

(b)

Figure 5.7: Comparison of error profiles of fixed-point IS-CORDIC with double

precision sine and cosine values (a) 16-bits implementation (b) 64-bits

implementation.

5.6.4 ASIC Implementation

In this subsection, IS-CORDIC implementation is compared with other previously

proposed methods. For this comparison, 64-bits IS-CORDIC architecture has been

synthesized using TSMC 180nm CMOS standard cell library by Cadence

Encounter(R) RTL Compiler v09.10. Computational units have been implemented

structurally, whereas, the non-arithmetic units and control circuitry have been

Page 90: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

76

implemented behaviourally. Focus of the design is to reduce the logic depth of the

data path. Table 5.2 compares area and delay of proposed IS-CORDIC method with

the other referenced techniques. The normalized delay / area ratios have been

computed using methods specified in [79].

Latency reduction of IS-CORDIC is ≈ N times than the basic CORDIC [72]

due to its single iteration design. Hybrid CORDIC [93] reduces the delay considerably

as further rotations are directly derived from the remainder after m iterations. Data

path however, has comparable complexity to the basic CORDIC. Double Step

Branching CORDIC [78] employs double step rotation to predict next iteration angle.

It reduces the delay but the data path becomes more complicated leading to increased

hardware utilization. In overlapped CORDIC [94], the initial rotation direction are

predicted based on binary angle, but the hardware complexity of x/y micro-rotations

remain same as basic CORDIC. Parallel CORDIC [80] employs parallel angle coding

method, which reduces the delay considerably but it results in an increase in number

of micro-rotations (even more than basic CORDIC), therefore, it also increases the

implementation area significantly. Look-ahead techniques [74] have been employed

that obtain direction of rotations directly from the input angle, however, the accuracy

of the proposed algorithm remains dependent on the number of iterations that increase

considerably for high bit-width applications.

Table 5.2 highlights that the IS-CORDIC method results in significant area

savings with a comparable throughput. IS-CORDIC architecture results in lesser area

(0.3) than all the compared works and better delay (0.7) than most of the referenced

works. Most significantly, the area-delay product (0.21) is the minimum of all the

implementations. Unlike the abovementioned methods, proposed IS-CORDIC

generates constant factors directly from the input angle with concatenation and

replication of bits that reduces hardware complexity considerably. Single iteration

computation results in reduced latency. Loss of accuracy is nominal in comparison to

the basic CORDIC as shown in Figures 5.7 and 5.8. The implementation however,

presents a trade-off between area and delay for different application bit-widths as

illustrated in Table 5.4.

Page 91: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

77

Table 5.2: Normalized Delay and Area Comparison for B=64

Methods Normalized Area Ratio Normalized Delay Ratio Area Delay Product

[72] 0.47 6.64 3.12

[93] 0.39 1.24 0.48

[78] 1.00 1.00 1.00

[94] 0.41 0.83 0.34

[79] 0.51 0.73 0.37

[80] 0.48 0.68 0.33

[82] 0.42 0.56 0.24

[74] 0.78 0.73 0.57

proposed 0.30 0.70 0.21

5.6.5 Implementation on FPGA

The design is synthesized using Xilinx ISE 13.1 on XC5VTX240T device. It

optimally maps onto the FPGAs rich in embedded multiplier and adder resources. The

values of sin = and cos = are computed in a single cycle. The design can easily be

pipelined for high-speed operations. Table 5.3 compares the results of FPGA

implementations of the proposed IS-CORDIC method with contemporary techniques.

The implementations compare the algorithms without any pipelining. The results

highlight that the IS-CORDIC method results in reduced latency (5.89ns) architecture.

Proposed architecture has latency improvement of 792% than basic CORDIC. The

resulting performance enhancement is achieved by optimal FPGA mapping of

constant factor multipliers. The Xilinx IP core also implemented on the same FPGA,

implements an iterative algorithm that requires 'B' number of iterations for

computation of the values of sin = and cos =, resulting in significantly reduced

algorithmic latency. Furthermore, performance improvement for larger bit width

implementations is gained by using Booth multiplication architecture employing

customized 6:3 Wallace compression trees for partial product reduction. This results

in higher throughput rate and reduced device utilization as highlighted in Table 5.3.

Page 92: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

78

Table 5.3: Delay and Area Comparison for FPGA implementations with B=16

Methods Utilized Hardware Clock (MHz) Latency (ns) Latency

Improvement Slices RAM DSP

[72] 1111 - - 21.43 46.66 -

[89] 769 1 - 151.73 6.59 708%

[95] 1057 - - 37.70 26.52 176%

[96] 978 1 - 139.87 7.15 653%

proposed 59 1 4 169.74 5.89 792%

Table 5.4 presents the comparison of utilized hardware and the clock rates for

FPGA and ASIC implementations of proposed IS-CORDIC method by varying the bit

widths. The comparison shows that the architecture is scalable with increased bit

widths. However, the designer has to find an optimum trade off between the area

constraints and the desired accuracy to achieve required latency.

Table 5.4: Area and clock rate comparison for IS-CORDIC implementations with

different bit widths

Implementation platform Bit Width Utilized Hardware

Slices Block

RAM

DSP

Blocks

Gates Area

(mm2)

Clock

(MHz)

Latency

(ns)

FPGA implementation 16 59 1 4 - - 169.7 5.9

(65nm technology) 32 1078 1 8 - - 102.3 9.7

64 9664 4 - - - 76.7 13

ASIC implementation 16 - - - 3311 0.164 357.1 2.8

(180nm technology) 32 - - - 6897 0.437 113.7 8.8

64 - - - 48826 1.458 40.9 24.4

5.7 Summary

This chapter presents a novel CORDIC architecture, named IS-CORDIC, which

computes sine and cosine of an angle in a single cycle. IS-CORDIC utilizes inverse

angle recoding to generate constant factors that require simple concatenation of angle

bits in hardware. In comparison to traditional CORDIC methods, IS-CORDIC results

in reduced latency and area, by using ROM to replace initial iterations and merging

the remaining iterations. The architecture involves four multiplications, whose impact

on hardware utilization is nominal, because the current FPGAs have an ample number

of embedded multiplier blocks, and secondly, ASIC implementation achieves

comparative performance by using custom Booth multiplier architecture. Proposed

Page 93: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

79

design has an inherent affinity for optimal mapping on current FPGA slice fabric. The

accuracy loss due to granularity of initial ROM and elimination of additional terms is

practically insignificant. The presented results show that the IS-CORDIC is almost 8

times more efficient than basic CORDIC design in terms of latency, and uses lesser

hardware than the current state of the art implementations. The technique however is

applicable only to circular CORDIC rotations.

Page 94: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

80

6 Conclusions

This work explored and formalized the methodical application of

mathematical transformations for designing DSP hardware. Smaller architectural

components like adders and multipliers have been identified as crucial in achieving

optimal mapping. This work concludes that considerable performance gains are

realizable by addressing these critical areas in a DSP implementation. Building on

these core functions, FIR and IIR filters, complex multiplier, multirate filters and

CORDIC applications are shown to achieve higher performance than standard

implementations. As evidence, previous chapters have shown that the transformations

result in a reduction of critical path delay for bi-operand and multi-operand adders

from 8% to 24%. Similarly, DA, CSD and MAC FIR filters exhibit a reduction of

7.1%, 10.4% and 20% in critical path delay, respectively. Feedback implementation

of these three architectures also yields significant performance improvement,

achieving 16%, 50% and 181% reduction in critical path delay respectively. In the

domain of complex multiplication, multirate MDT transformed filters and IS-

CORDIC, the achieved performance gain is 29%, 14% and 12%.

It is evident from the experimental results that performance of all pipelined

circuits implemented in FPGAs is limited by the critical path delay of the final carry

propagate adder. Although FPGAs have dedicated carry chains for high speed carry

propagation, it still remains a performance bottleneck. Implementations of different

architectural transformations of adders have highlighted that no one type of adder

performs optimally for different types of addition. For the Virtex-6 family of FPGAs,

bi-operand and multi-operand adders resulted in choices of RCA and CSA adders

based on 6:3 compressor tree architecture. Bit level pipelining of RCA is shown to

provide even further increase in throughput.

This work further proposes and concludes that, just like the current integration

of dedicated carry chains for CPAs in FPGA fabric, allocation of dedicated carry

skipping support for the carry skip adder is likely to produce FPGA implementations

with even higher data rates and reduced die sizes. Selection of multiplier on the other

hand, has highlighted two solutions based on input data widths i.e. embedded DSP

blocks and custom tree CSA architecture.

Page 95: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

81

An analysis of the implementation results for core DSP applications of digital

filters (feed forward and recursive), complex multipliers, multirate filtering, and

CORDIC concludes that the presented transformation algorithm yields substantial

performance improvements as the designed architecture takes into consideration the

slice structure and embedded arithmetic blocks. Pipeline stages, retiming, unfolding

and look ahead transformations are additionally applied to achieve throughput

improvement. Implementation results have indicated that the transformation algorithm

is scalable with increasing filter orders. Use of CSD coefficients with the 6:3

compression trees is an optimum solution for the FPGA employing six inputs LUT.

The implementation results contained throughout the thesis in respective

chapters highlight the achieved performance gains by the application of these novel

techniques. It is pertinent to mention that with the growing use of FPGAs in

commercial applications, the need to perform optimizations across the fabric is greater

than before. As a first step the algorithmic transformation presented here provide

significant performance and throughput increase. However, to move beyond the

achieved results, a change in the slice fabric and routing interconnectivity becomes

necessary.

Page 96: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

82

7 Future Work

This work has presented several algorithm-to-architecture transformations for FPGA

based applications, demonstrating substantial performance gains in terms of

throughput of resultant architectural implementations.

This work can provide the foundation for several research and development

efforts in the future, including but not limited to the following

a. Evaluation and comparison of the CSkA implementations with dedicated

hardware support in the CLB. The application architectures as demonstrated in

this thesis work may benefit significantly from this hardware support and

resultant architectures will demonstrate considerable throughput increase. A

Hardware support for multi-input addition is likely to provide vast

performance improvement, especially in applications like complex

multiplication, filtering, Fourier transforms, CORDIC etc, where multi-input

addition is a critical part of the architecture.

b. Use of the same methodology, as provided in this work, to devise algorithms

to optimize architectures for any new FPGA design, or for FPGAs from other

manufacturers, that support a different slice fabric, routing matrices, and

provide a set of specialized IP blocks. This methodology can then be further

analyzed and adapted to become generalized enough to support all FPGA

architectures in a unified algorithmic flow.

c. The design of a compiler that can automatically apply these proposed

algorithmic transformations to the designs and architectures to achieve

optimization and enhance throughput.

d. Propose changes to the overall architecture, slice composition, routing

matrices, and available specialized blocks of the FPGAs to allow for a more

optimized implementation of computationally intense algorithms.

e. Application of MMDT to other real time scenarios to provide further evidence

of its feasibility for use in computationally intense applications, and cement its

place as the most efficient transformation in comparison to other

transformations discussed in literature.

f. IS-CORDIC can be further analyzed and adapted for use in applications

requiring real time trigonometric computations.

Page 97: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

83

Bibliography

[1] Michaela Blott, Tom English, and Emilio Billi, "FPGAs head for the cloud,"

Xcell Journal, vol. 81, pp. 20-23, 2012.

[2] Alvi Abu Bakar N., Shoab A. Khan, and Ali Hassan, "Network on Hybrid

Processors based High End Embedded System," in The Second International

Conference on Technological Advances in Electrical, Electronics and Computer

Engineering (TAEECE2014), 2014, pp. 65-71.

[3] Bin Khalid, F. Rana Ali Amjad, Mughees Ahmed Chohan, and M. Mehran

Khizar, "FPGA based real-time signal processor for Pulse Doppler Radar," in

International conference on Informatics, Electronics & Vision, 2012, pp. 362-

366.

[4] Phear, Peter Bernard Ashleigh, Rajprasad Kumar Rajkumar, and Dino Isa,

"Efficient non-iterative fixed-period SVM training architecture for FPGAs," in

39th IEEE conference Industrial Electronics Society, IECON, 2013, pp. 2408-

2413.

[5] Adrian Cosoroaba, "Achieve high performance with Virtex-5 FPGA," Xcell

journal, vol. 59, no. Fourth quarter, pp. 16-18, 2006.

[6] Zeeshan Muhammad and Shoab Ahmed Khan, "Robust Sampling Clock

Recovery Algorithm for Wideband Networking Waveform of SDR,"

International Journal of Communication Networks and Information Security

(IJCNIS), vol. 5, no. 1, 2013.

[7] Shoab A. Khan, Digital Design of Signal Processing Systems, A Practical

Approach.: Wiley, 2011.

[8] Frederick M. T and Somani, "K multi bit carry chains for high performance

reconfigurable fabrics," in Intl conf on field programming logic and applications,

2006, pp. 1-6.

[9] S. C. CHAN, H. O. NGAI, and K. L. HO, "A programmable image processing

system using FPGAs," International Journal of Electronics, vol. 75, no. 4, pp.

725-730, 1993.

[10] Wayne Wolf, FPGA-Based System Design.: Pearson Education, 2004.

[11] K. Satoh, J. Tada, Y. Tamura, and G. Goto, "Complex multiplier suited for

FPGA structure," Journal of Comm. and Computer, vol. 6, pp. 55-62, 2009.

[12] K. Latif, A. Aziz, and A. Mahboob, "Optimal utilization of available

reconfigurable harware resources," Computers & Electrical Engineering, vol. 37,

no. 6, pp. 1043-1057, 2011.

[13] B Prahmi, Computer Arithematic, Algorithms and Harware Design.: Oxford

university press, 2000.

[14] S. Mirzae, A. Hosangadi, and R. Kastner, "FPGA implementation of high speed

FIR filters using add and shift method," in Proc. Int. Conf. on computer

Computers, 2007, pp. 1422–1425.

Page 98: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

84

[15] G.C. Cardarill, S. Pontarelli, M. Re, and A. Salsano, "On the use of signed digit

arithmetic for the new 6-Inputs LUT based FPGAs," in Proc. 15th IEEE Int.

Conf. on Electronics, Circuits and Syst., 2008, pp. 602 – 605.

[16] Aqib Perwaiz and Shoab. A. Khan, "Effect of Bit Precision on hardware

complexity for DDFS architecture," in ICACC, 2009.

[17] (2009) Xilinx, Inc. San Jose, CA. [Online]. www.xilinx.com

[18] A. Perwaiz, S. A. Khan, and H. M. Kamboh, "Optimization for embedded

resources on FPGA," in Proc. Int. Conf. on New Trends in Information and

Service Science, 2009, pp. 802-806.

[19] H. M. Kamboh and S. A. Khan, "An algorithmic transformation for high

throughput filter implementation on FPGA," in Proc. Int. Conf. on Emerging

Technology, 2011, pp. 127-132.

[20] J. G. Chung and K. K. Parhi, "Frequency spectrum based low-area low-power

parallel FIR filter design," EURASIP Journal on Applied Signal Process., vol.

2002, no. 9, pp. 944-953, 2002.

[21] D Cherepacha and D Lewis, "An FPGA Architecture Optimized for datapaths,"

Journal of VLSI Design, vol. 4, pp. 329-343, 1996.

[22] Mohammed S. BenSaleh, Syed Manzoor Qasim, Abdullah A. AlJuffri, and

Abdulfattah M. Obeid, "Scalable Design of Microprogrammed Digital FIR Filter

for Sensor Processing Subsystem," IEICE Electronics Express , 2014.

[23] Gianluca Cornetta, Abdellah Touhafib, David J. Santos, and José M. Vázquez,

"Field-programmable gate array implementation of an all-digital IEEE 802.15.4-

compliant transceiver," International Journal of Electronics, vol. 97, no. 12, pp.

1361-1378, 2010.

[24] Hanho Lee and Gerald E. Sobelman, "Performance evaluation and optimal

design for FPGA-based digit-serial DSP functions," Computers & Electrical

Engineering, vol. 29, pp. 357-377, 2003.

[25] F. F. Daitx, V. S. Rosa, E. Costa[ P. Flores, and S. Bampi, "VHDL generation of

optimized FIR filters," in Proc. Int. Conf. on Signals, Circuits and Sys., 2008, pp.

1-5.

[26] E. Costa, P. Flores, and J. Monteiro, "Exploiting general coefficient

representation for the optimal sharing of partial products in MCMs," in Proc.

IEEE/ACM Symposium on Integrated Circuit Design and System Design, 2006,

pp. 161-166.

[27] Y. T. Kuo, T. J. Lin, and C. W. Liu, "Complexity aware quantization and

lightweight VLSI implementation of FIR filters," EURASIP Journal on Advances

in Signal Process., vol. 2011, p. 14, 2011.

[28] Y. Ho, C. Lei, E. Kwan, and N. Wong, "Optimal common sub-expression

elimination algorithm of multiple constant multiplications with a logic depth

constraint," IEICE Trans. Fundamentals of Elect., Comm. and Computer

Sciences, vol. E91, no. 12, pp. 3568-3575, 2008.

Page 99: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

85

[29] A. P. Vinod, E. Lai, D. L. Maskell, and P. K. Meher, "An improved common

subexpression elimination method for reducing logic operators in FIR filter

implementations without increasing logic depth," Integration, the VLSI Journal,

vol. 43, pp. 124-135, 2010.

[30] L. Aksoy, E. Gunes, and P. Flores, "Search algorithms for the multiple constant

multiplications problem: Exact and approximate," Microprocessors and

Microsystems, vol. 34, pp. 151–162, 2010.

[31] L. Aksoy, P. Flores, and J Monteiro, "Exact and Approximate Algorithms for the

Optimization of Area and Delay in Multiple Constant Multiplications," IEEE

Trans. Comput.-Aided Design of Integr. Circuits and Syst., vol. 27, pp. 1013-

1026, 2008.

[32] L. Aksoy, E. Costa, P. Flores, and J Monteiro, "Optimization Algorithms for the

Multiplierless Realization of Linear Transforms," ACM Trans. on Design

Automation of Electronic Syst. (TODAES), vol. 17, no. 3, 2012.

[33] M. Faust and C. H. Chang, "Bit parallel multiple constant multiplication using

look-up tables on FPGA," in Proc. IEEE Int. Symposium on Circuits and Syst.,

2011, pp. 657–660.

[34] V. S. Rosa, F. F. Daitx, E. Costa, and S. Bampi, "Design Flow for the Generation

of Optimized FIR filters," in Proc. 16th IEEE Int. Conf. on Electronics, Circuits,

and Syst., 2009, pp. 1000-1003.

[35] A. Croisie, "Digital filters for PCM encoded signals, ," U.S. Patent No.

3,777,130. 1973.

[36] A. Peled and B. Liu, "A new hardware realization of digital filters," IEEE Trans.

Acoustics, Speech and Signal Processing, vol. 22, pp. 456-462, 1974.

[37] P. K. Meher, S. Chandrasekaranand, and A. Amira, "FPGA realization of FIR

filters by efficient and flexible systolization using distributed arithmetic," IEEE

Trans. signal process., vol. 56, no. 7, pp. 3009-3017, 2008.

[38] Qasim Syed Manzoor and Mohammed S. BenSaleh, "Hardware Implementation

of Microprogrammed Controller Based Digital FIR Filter," IAENG Transactions

on Engineering Technologies Springer Netherlands, pp. 29-40, 2014.

[39] I. C. Park and H. J. Kang, "Digital filter synthesis based on an algorithm to

generate all minimal signed digit representation," IEEE Trans. Comput.-Aided

Design of Integr. Circuits and Syst., vol. 12, pp. 1525-1529, 2002.

[40] W. Zhang, M. Yeary, J. Q. Trelewicz, and M. Tull, "Efficient computation of

multiplierless filters in embedded systems employing an optimal approximation

method," Journal of Circuits. Syst. and Computers, vol. 3, pp. 177-204, 2006.

[41] C. Howard, L. DeBrunner, and V. DeBrunner, "Hybrid MCM implementation for

FIR filters in FPGA devices," in Proc. 41st Asilomar Conf. on Signals, Syst. and

Computers, 2007, pp. 1422–1425.

[42] L. Aksoy, E. Gunes, P. Flores, and J. Monterio, "Finding the optimal tradeoff

between area and delay in multiple constant multiplications," Elsevier Journal on

Page 100: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

86

Microprocessors and Microsystems, vol. 35, pp. 729-741, 2011.

[43] L. Aksoy, C. Lazzari, E. Gunes, P. Flores, and J. Monterio, "High-level

algorithms for the optimization of gate-level area in digit-serial multiple constant

multiplications," Integration, the VLSI journal, vol. 45, pp. 294-306, 2012.

[44] C. H. Chang and M. Faust, "On A new common subexpression elimination

algorithm for realizing low-complexity higher order digital filters," IEEE

Trans.Comput.-Aided Design of Integr. Circuits and Syst., vol. 29, no. 5, pp. 844-

848, 2010.

[45] Y. Voronenko and M. Pushcel, "Multiplierless multiple constant multiplication,"

ACM Trans. Algorithms, vol. 3, no. 11, 2007.

[46] M. M. Peiró, E. I. Boemo, and L. Wanhammar, "Design of high speed

multiplierless filters using a nonrecursive signed common subexpression

algorithm," IEEE Trans. Circuits and Syst. II, Analog and Digit. Signal Process.,

vol. 49, no. 3, pp. 196–203, 2002.

[47] H. J. Kang and I. C. Park, "FIR filter synthesis algorithms for minimizing the

delay and the number of adders," IEEE Trans. Circuits and Syst. II, Analog and

Digit. Signal Process., vol. 48, no. 8, pp. 770–777, 2001.

[48] L. Aksoy, C. Lazzari, E. Costa, P. Flores, and J Monteiro, "Design of Digit-Serial

FIR Filters: Algorithms, Architectures, and a CAD Tool," IEEE Trans. VLSI

Syst., vol. 9, no. 1, 2012.

[49] Keshab K. Parhi, VLSI Digital Signal Processing Systems, Design and

Implementation.: Wiley, 2004.

[50] W. Wang, M. N. S. Swamy, and M. O. Ahmad, "Novel Design and FPGA

implementation of DA-RNS FIR Filters," Journal of Circuits, Syst. and

Computers, vol. 13, pp. 1233-1249, 2004.

[51] J. Xie, J. He, and G. Tan, "FPGA realization of FIR filters for high-speed and

medium-speed by using modified distributed arithmetic architectures,"

Microelectronics Journal, vol. 41, pp. 365-370, 2010.

[52] Wallace C S, "A suggestion for fast multiplier," IEEE transaction of electric

computers, pp. 14-17, 1964.

[53] L Dadda, "Some schemes for parallel multipliers," Altafrequenza, vol. 34, pp.

349-356, 1965.

[54] F.J. Harris and B. Egg, "Forming narrowband filters at a fixed sample rate with

polyphase down and upsampling filters," in Internationa lConference on Digital

Signal Processing, pp. 315-318.

[55] Hyungdong Roh, Sanho Byun, Youngkil Choi, and Jeongjin Roh, "Fully

synthesised decimation filter for delta-sigma A/D converters," International

Journal of Electronics, vol. 97, no. 6, pp. 663-676, 2010.

[56] D. D. Caro, N. Petra, and A. G. M. Strollo, "A 380 MHz direct digital

synthesizer/mixer with hybrid CORDIC architecture in 0.25 µm CMOS," IEEE

J. Solid-State Circuits, vol. 42, no. 1, pp. 151–160, Jan 2007.

Page 101: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

87

[57] G.Jovanovic-Dolecek and S.K.Mitra, "Stepped triangular CIC cosine decimation

filter," , 2006, pp. 26-30.

[58] M. C. Lin, H. Y. Chen, and S. J. Jou, "Design techniques for high-speed

multirate multistage FIR digital filters," International Journal of Electronics ,

vol. 93, no. 10, pp. 699-721, 2006.

[59] M. Bellanger, "Digital filtering by polyphase network: application to sample rate

alteration and filter banks," IEEE Transactionson Acoustics, Speech and Signal

Processing, vol. 24, pp. 109-114, 1976.

[60] F.J.Harris, C.Dick, and M.Rice, "Digital receivers and transmitters using

polyphase filterbanks for wireless communications," IEEE Transactions on

Microwave Theory and Techniques, vol. 51, no. 4, pp. 1395-1412, 2003.

[61] Y.C.Lim and R.Yang, "On the synthesis of very sharp decimators and

interpolators using the frequency response masking technique," IEEE

Transactions on Signa lProcessing, vol. 53, no. 4, pp. 1387-1397, 2005.

[62] W.A.Abu-Al-Saud and G.L.Stuber, "Modified CIC filter for sample rate

conversionin software radio systems," IEEE Signal Processing Letters, vol. 10,

no. 5, pp. 152-154, 2003.

[63] H.Johansson and L.Wanhammar, "High speed recursive digital filters based on

the frequency response masking approach," IEEE Transactions on Circuits and

Systems II—Analog and Digital Signal Processing, vol. 47, no. 1, pp. 48-61,

2000.

[64] W.S.Lu and T.Hinamoto, "Optimal design of frequency response masking filters

using semidefinite programming," IEEE Transactions on Circuits and Systems

I—Fundamental Theory and Applications, vol. 50, no. 4, pp. 557-568, 2003.

[65] F.J.Harris, Multirate Signal Processing for Communication Systems.: Prentice-

Hall, 2006.

[66] S.Chu and C.S.Burrus, "Multirate filter designs using comb filters," IEEE

TransactionsonCircuitsandSystems, vol. 11, pp. 913-924, 1984.

[67] A.I.Russell, "Efficient rational sampling rate alteration using IIR filtres," IEEE

Signal Processing Letters, vol. 7, no. 1, pp. 6-7, 2000.

[68] UmarFarooq, Habibullah Jamal, and Shoab Ahmed Khan, "High speedand

computationally efficient architecture for recursive interpolation filters," Journal

of Signal Processing, vol. 89, pp. 2202-2212, 2009.

[69] S.K.Mitra, Digital Signal Processing—A Computer-based Approach, 2nd ed.:

McGraw Hill, 2001.

[70] Y. H. Hu and S. Naganathan, "An Angle Recoding Method for CORDIC

Algorithm Implementation," IEEE Trans. Computers, vol. 42, no. 1, pp. 99-102,

Jan 1993.

[71] K. Murota, K. Kinoshita, and K. Hirade, "GMSK modulation for digital mobile

telephony," IEEE Trans. Commun., vol. COM-29, pp. 1044–1050, July 1981.

Page 102: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

88

[72] J. Volder, "The CORDIC trigonometric computing technique," IRE Transactions

on Electronic Computers, vol. 8, no. 3, pp. 330-334, Sept 1959.

[73] J. S. Walther, "A Unified Algorithm for Elementary Functions," in Proc. AFIPS

Spring Joint Computer Conference, vol. 38, 1971, pp. 379-385.

[74] C. C. Kao, "High-performance CORDIC rotation algorithm based on look-ahead

techniques," International Journal of Electronics, vol. 98, no. 8, pp. 1075-1089,

2011.

[75] T. K. Rodrigues and E. E. Swartzlander, "Adaptive CORDIC: Using Parallel

Angle Recoding to Accelerate Rotations," IEEE Transactions on Computers, vol.

59, no. 4, pp. 522 - 531, April 2010.

[76] E. Aytöre and A. Z. Alkar, "Highly accurate reduced iteration CORDIC

processor algorithm," International Journal of Electronics, vol. 97, no. 2, pp.

163-176, 2010.

[77] E. Antelo, J. Villalba, J. D. Bruguera, and E. L. Zapata, "High Performance

Rotation Architectures Based on the Radix-4 CORDIC Algorithm," IEEE Trans.

Computers, vol. 46, no. 8, pp. 855-870, Aug 1997.

[78] D. S. Phatak, "Double Step Branching CORDIC: A New Algorithm for Fast Sine

and Cosine Generation," IEEE Trans. Computers, vol. 47, no. 5, pp. 587-602,

May 1998.

[79] T.B. Juang, S.F. Hsiao, and M.Y. Tsai, "Para-CORDIC: Parallel CORDIC

rotation algorithm," IEEE Trans. Circuits Syst. I, vol. 51, no. 8, pp. 1515–1524,

Aug 2004.

[80] T. B. Juang, "Area/delay efficient recoding methods for parallel CORDIC

rotations," in Proc. Asia Pac. Conf. Circuits Syst., 2006, pp. 1541–1544.

[81] M. Kuhlmann and K. K. Parhi, "P-CORDIC: A Precomputation Based Rotation

CORDIC Algorithm," EURASIP Journal on Advances in Signal Processing, vol.

2002, no. 137251, pp. 936-943, September 2002.

[82] T. B. Juang, "Low Latency Angle Recoding Methods for the Higher Bit-Width

Parallel CORDIC Rotator Implementations," IEEE Transactions of Circuits and

Systems II, vol. 55, no. 11, pp. 1139-1143, Nov 2008.

[83] P. K. Meher, J. Valls, T.B. Juang, K. Sridharan, and K. Maharatna, "50 Years of

CORDIC: Algorithms, Architectures, and Applications," IEEE Transactions on

Circuits and Systems I, vol. 56, no. 9, pp. 1893 - 1907, Sept 2009.

[84] J. Valls, T. Sansaloni, A. P. Pascual, V. Torres, and V. Almenar, "The use of

CORDIC in software defined radios," A tutorial, IEEE Commun. Mag, vol. 44,

no. 9, pp. 46–50, Sep 2006.

[85] B. Lakshmi and A. S. Dhar, "CORDIC Architectures: A Survey," Eurasip

Journal VLSI Design, vol. 2010, no. 794891, p. 19, 2010.

[86] A. Khan Shoab, Digital design of signal processing systems : a practical

approach, 1st ed.: John Wiley, 2011.

Page 103: Optimization Techniques for Throughput Enhancement in FPGA ...prr.hec.gov.pk/jspui/bitstream/123456789/2323/1/2929S.pdf · Figure 4.5: LUT based DA architecture. ..... 32 Figure 4.6:

89

[87] T. Srikanthan and B Gisuthan, "Optimizing scaling factor computations in flat

CORDIC.," Journal of Circuits, Systems and Computers, vol. 11, no. 1, pp. 17-

33, 2002.

[88] A. Madisctti, A. Y. Kwentus, and A. N. J. Wilson, "A 100 MHz, 16 bits, direct

digital frequency sythesizer with a 100-dBc spurious-free dynamic range," IEEE

Journal of Solid-state Circuits, vol. 34, no. 8, pp. 1034-1043, Aug 1999.

[89] T. Zaidi, Q. Chaudry, and S. A. Khan, "An Area and Time Efficient Collapsed

Modified Cordic DDFS Architecture For High Rate Digital Receivers," in Proc

INMIC 2004, 2004, pp. 677-681.

[90] K. Satoh, J. Tada, Y. Tamur, and G. Goto, "Complex multiplier suited for FPGA

structure," Journal of Comm. and Computer, vol. 6, pp. 55-62, 2009.

[91] K. W. Shin and H. W. Jeon, "High-speed complexnumber multiplications based

on redundant binaryrepresentation of partial products," International Journal of

Electronics, vol. 87, no. 6, pp. 683-702, 2000.

[92] H. M. Kamboh and S. A. Khan, "An algorithmic transformation for high

throughput filter," in Proc. Int. Conf. on Emerging Technology, 2011, pp. 127-

132.

[93] S. Wang, V. Piuri, and E. E. Swartzlander, "Hybrid CORDIC algorithms," IEEE

Trans. Comput, vol. 46, no. 11, pp. 1202–1207, Nov 1997.

[94] J. H. Kwak, J. H. Cho, and E. E. Swartzlander, "High speed CORDIC based on

an overlapped architecture and a novel σ prediction method," J. VLSI Signal

Process., vol. 25, no. 2, pp. 167–178, Jun 2000.

[95] Xilinx, "CORDIC v4.0," Xilinx LogiCore DS429, pp. 1-29, April 2009.

[96] A. Perwaiz, H. M. Kamboh, and S. A. Khan, "FPGA fabric specific optimization

for RTL design," Pak. J. Engg. & Appl. Sci., vol. 6, pp. 52-57, 2010.

[97] I. Shafi, J. Ahmad, S. I. Shah, and F.M. Kashif, "Techniques to obtain good

resolution and concentrated time-frequency distributions-a review," EURASIP

Journal of Advances in Signal Processing, vol. 2009, no. 673539, p. 43, 2009.