Architecture Design and FPGA Implementation of ...

6 downloads 38410 Views 637KB Size Report
The CORDIC (Coordinate Rotation In Digital Computer) algorithm provides very smart .... for FPGA based Computers. Andraka Consulting Group, Inc, North.
Available online at www.sciencedirect.com

Procedia Technology 6 (2012) 371 – 378

2nd International Conference on Communication, Computing & Security [ICCCS-2012]

Architecture Design and FPGA Implementation of CORDIC Algorithm for Fingerprint Recognition Applications b

a P.Revathi,M.Tech Student,Dept. of ECE,GMRIT,Rajam-532127,India M V Nageswara Rao, Professor, abG R Locharla , Asst.Prof., Dept. of ECE,GMRIT,Rajam-532127,India*

Abstract Fingerprint recognition is one of the most popular methods used by Biometric identification systems for personnel identification. CORDIC algorithm provides wonderful solution to perform the math intensive operations at the cost of few components like adder, shifter, multiplexer...Etc. Such math intensive operations are required to perform during the image enhancement phase of finger print recognition process. In this paper CORDIC based architecture is proposed to evaluate almost all the trigonometric functions. This is implemented using XILINX ISE 13.2. Performance of the architecture is analyzed in terms of relative error. © 2012 The Authors. Published by Elsevier Ltd.

© 2012 The Authors. Published by Elsevier Ltd. Selection and/or peer-review under responsibility of the Department of Computer Selection and/or peer-review under responsibility of the Department of Computer Science & Engineering, National Institute Science & Engineering, National Institute of Technology Rourkela of Technology Rourkela Keywords: FPGA; XILINX 13.2; CORDIC; LUT; FFT; AFIS;Gabor;VerilogHDL;

1. Introduction Fingerprints are completely formed at about seven months of fetus development and finger ridge pattern do not change throughout the life of an individual except due to accidents. This property makes fingerprints a very attractive biometric identifier.The fingerprint is characterized by minutiae, which are points where a curve track finishes, intersect or branches off. Taking a Fingerprint at first we enhanced the quality of that image to make the image clearer for easy further operations, because the fingerprint images acquired from sensors or other media are not assured with perfect quality. Therefore it is mandate to enhance the raw finger print for increasing the contrast between ridges and furrows and for connecting the false broken points of ridges due to

*

Corresponding author. Tel.: +91-995-995-7720. E-mail address: [email protected]

2212-0173 © 2012 The Authors. Published by Elsevier Ltd. Selection and/or peer-review under responsibility of the Department of Computer Science & Engineering, National Institute of Technology Rourkela doi:10.1016/j.protcy.2012.10.044

372

P.Revathi et al. / Procedia Technology 6 (2012) 371 – 378

insufficient amount of ink, are very useful for keep a higher accuracy to fingerprint recognition. Fast Fourier Transform and Gabor Filter are popular for fingerprint enhancement. FFT and Gabor are involves almost trigonometric evolutions. Proposed architecture in this paper contributes a CORDIC based module to the image enhancement part of AFIS (Automatic Fingerprint Identification System). This module can perform sin, cos, arctan, sinh, cosh, arcsinh, arctanh and ex functions. The CORDIC (Coordinate Rotation In Digital Computer) algorithm provides very smart solution to evolutes almost all the trigonometric functions with optimal usage of the hardware. 2. Review of CORDIC Algorithm CORDIC is a trigonometric algorithm, which computes the trigonometric functions using vector rotations. Transformation of the coordinates after rotation is defined by the CORDIC as follows:

xi 1 yi 1

K i [ xi K i [ yi

i 1

...(1)

d i xi 2 i ]

...( 2)

di

i

Ki

2.1. Circular functions: i 0,1,2,3...etc;

md i yi 2 i ]

... (3)

i

1 / (1 2

2i

) m

Rotation mode: di 1 if i 0; 1otherwise; z 1.7433; Vector mode: di 1 if yi 0; 1 otherwise; tan 1 ( y0 / x0 ) 2.2. Linear functions: i 0,1,2,3...etc; Rotation mode: di

1 if i

1; m 0;

Ki

0; 1otherwise; z

i

1

tanh ( y / x ) 0

0

1 if i 1.1182;

0; 1 ow; z

tan 1 (2 i )

i

1.7433;

2 i

1 Vector mode: di

2.3. Hyperbolic functions: i 0,1,2,3,4,4...12,13,13,14,...etc; Rotation mode: d i

1;

Ki

1 if yi

1 / (1 2

1.1182 Vector mode: d i

2i

1 if yi

) m

0; 1 otherwise; z

1;

i

y 0 / x0

tanh 1(2 i )

0; 1 ow;

3. Implementation of CORDIC Algorithm Proposed Architecture in this paper is hardware efficient, see Fig 1. Iteration controller manages the pseudo rotations and initialization of xi , yi and z i registers. En_clk is used to freeze the registers and counters when en signal is active low. Table 1. Operating modes of the proposed architecture S.No.

as

at

mode

Functions performed

1.

0

0

Rotation

sin and cos when

2.

0

1

Vector

arctan when

3.

1

0

Vector

arcsin when = 0; arcsinh otherwise

4.

1

1

N/A

N/A

= 0; sinh,cosh otherwise

= 0; arctanh otherwise

373

P.Revathi et al. / Procedia Technology 6 (2012) 371 – 378

Counter generates the iteration sequence according to and Arctan ROM provides either tan 1 (2 i ) or tanh 1 (2 i ) based on . Mux: M1 provides the initial values to be loaded into x 0 according to the mode described in Table.1. Sign controller generates the signal di according to the mode decided by the control inputs as shown in Table.1. Signal di holds logic 1 when d i in equations (1, 2 and 3) has to be -1 and holds logic 0 otherwise.

en

done

Iteration control

En Clk

clk

init

4

at at 1

0.6073

arg

16

0

1.2051

1 y 10 0 16 0 16 0 M3 0

En_Clk

M2

xi

1

M1

1

1

1

16

16

z0

0

20

En_Clk

20 M4

Counter

zi

yi 16

>>2-i

i Arch Tan/Tanh ROM

>>2-i

di

20

di

di

16

20

16 XOR

di

sign control

2 16 16

{at, as} zi[19] yi arg

Fig. 1. Proposed CORDIC architecture

4. Performance Analysis Performance of the architecture is measured in terms of the relative error. We define the error as the distance between the ideal value and the practical value divided by the ideal value:

Re lative error ( FunctionPC

FunctionCORDIC ) ( FunctionPC )

..... (4)

Proposed architecture is implemented in Xilinx ISE 13.2 using Verilog HDL and simulated using ISIM. FPGA Simulation outputs are manually taken into MATLAB to compare with theoretical numeric values and to compute & plot the relative error in each case, see appendix. A.

374

P.Revathi et al. / Procedia Technology 6 (2012) 371 – 378

0.05

Relative error in sin theta

Relative error in sin theta

0.045 0.04 0.035 0.03 0.025 0.02 0.015 0.01 0.005 0

0

10

20

30

40

50

60

70

80

90

theta in degrees, 1 unit = 1 degree

(a) 0.08

Relative error in cos theta

Relative error in cos theta

0.07 0.06 0.05 0.04 0.03 0.02 0.01 0

0

10

20

30

40

50

60

70

80

90

theta(Angle in degrees), 1 unit = 1 degree

(b) 0.14

Relative error in arcsin

Relative error in arcsin

0.12

0.1

0.08

0.06

0.04

0.02

0

0

5

10

15

20

25

30

35

40

45

50

arg values, 1 unit = 0.02

(c) Fig. 2. Relative error in the result of following calculations performed by the CORDIC architecture (a) sin ;

; (c)sin-1 (arg)

375

P.Revathi et al. / Procedia Technology 6 (2012) 371 – 378

0.012

Relative error in arctan

Relative error in arctan

0.01

0.008

0.006

0.004

0.002

0

0

10

20

30

40

50

60

70

80

90

100

argument value, 1 unit = 0.02

(a) 0.025

Relative error in sinh(theta)

Relative error sinh 0.02

0.015

0.01

0.005

0

0

10

20

30

40

50

60

70

Theta(Angle in degrees), 1unit = 1degree

(b) 0.018

Relative error in coshh

Relative error in cosh(theta)

0.016 0.014 0.012 0.01 0.008 0.006 0.004 0.002 0

0

10

20

30

40

50

60

70

theta(Angle in degrees), 1unit = 1degree

(c) Fig. 3. Relative error in the result of following calculations performed by the CORDIC architecture (a) arctan(arg);

; (c)

376

P.Revathi et al. / Procedia Technology 6 (2012) 371 – 378

Relative error in arcsinh(argument)

0.018

Relative error in arcsinh

0.016 0.014 0.012 0.01 0.008 0.006 0.004 0.002 0

0

5

10

15

20

25

30

35

40

45

50

argument, 1unit = 0.0279

(a) 0.25

Relative error in arctanh

Relative error in arctanh 0.2

0.15

0.1

0.05

0

0

5

10

15

20

25

30

35

40

45

50

argument, 1 unit = 0.0183

(b) 0.02

Relative error in exp

0.018

Relative error in exp

0.016 0.014 0.012 0.01 0.008 0.006 0.004 0.002 0

0

10

20

30

40

50

60

70

theta(Angle in degrees), 1 unit = 1degree

(c) Fig. 4. Relative error in the result of following calculations performed by the CORDIC architecture (a) arcsinh; (b) arctanh; (c) ex

P.Revathi et al. / Procedia Technology 6 (2012) 371 – 378

5. Device Utilization Summery Architecture is implemented using Verilog HDL with XILINX ISE 13.2 software. XC3s500e-4fg320 device XST. For RTL schematic of the implementation, see Fig.5.

Fig. 5. RTL Schematic of the proposed architecture

Estimated device utilization summery generated by the XST tool is given in Table 2. Table 2. Resource utilization (estimated values for xc3s500e-4fg320 device) summery of the proposed architecture Resource Type

Used

Utilization

Number of slices

207

4%

Number of slice flip-flops

123

1%

Number of LUTs

386

4%

Number of bonded IOBs

94

40%

As seen in section.4, performance of the architecture can be appreciated throughout the range specified by the algorithm. Proposed architecture can adopt the improved CORDIC techniques without major hardware modifications. In addition, latency can also be minimized by applying the pipelined technique to the proposed one. Therefore it can be concluded that, proposed CORDIC architecture based IPs can be adopted by the image enhancement module of the Automatic Finger print Identification System. References Ray Andraka. A Survey of CORDIC Algorithms for FPGA based Computers. Kingstown, RI02852.

Andraka Consulting Group, Inc, North

377

378

P.Revathi et al. / Procedia Technology 6 (2012) 371 – 378

Nihel NEJI, Anis BOUDABOUS, Wajdi KHARRAT, Nouri MASMOUDI, TUNISIA. Architecture And Fpga Implementation of the CORDIC algorithm For Fingerprints Recognition Systems. 2011 8th International Multi-Conference on Systems, Signals & Devices,2011,IEEE. P.K. Meher, J. Valls, T.B. Juan, K. Sridharan and K. Maharatna. 50 Years of CORDIC: Algorithms, Architectures and Applications. IEEE Transactions on Circuits And Systems I: regular papers, vol. 56, no. 10, pp. 9, Sept. 2009 M. D.Ercegovac, and T. Lang. Redundant and On- Line CORDIC: Application to Matrix Triangularization and SVD. IEEE Trans. Comput., vol. 39, no. 6, pp. 725,740, June 1990 E. Antelo, J. Villalba, J. D. Bruguera, and E. L.Zapata. High performance rotation architectures basedon the radix-4 CORDIC algorithm. IEEE Trans. Comput., vol. 46, no. 8, pp. 855-870, Aug. 1997 H. Dawid, and H. Meyr. The differential CORDIC algorithm:constant scale factor redundant implementation without correcting iterations. IEEE Trans. Comput. vol. 45, no. 3, pp.307-318, Mar. 1996 Mariano López, Enrique Cantó and Mariano Fons, SPAIN. Hardware-Software Co-design of a Fingerprint Image Enhancement Algorithm. Transactions on Computers, Vol. 42, No.7, 1993, pp769-779 Stefan Lachowicz and Hans-Jorg Pfleiderer. Fast evaluation of the square root and other nonlinearfunctions in FPGA.4th IEEE international symposium on electronic design, 2008 Anis BOUDABOUS, Fahmi GHOZZI, M. Wajdi KHARRAT, Nouri MASMOUDI. Function Generator Based CORDIC Algorithm. Third international conference on systems, signals & devices, vol. 4, March2005 Gualberto Aguilar, Gabriel Sánchez, Karina Toscano, Mariko Nakano-Miyatake, Héctor Pérez-Meana. Automatic Fingerprint Recognition System Using Fast Fourier Transform and Gabor Filters. Científica Vol. 12 Núm. 1 pp. 9-16, © 2008

ESIME-IPN. ISSN 1665-0654. Impreso en México.

Appendix A. A.1. Sample of MATLAB code to generate relative error in sin and cos calculation by the proposed architecture

A.2. Sample window of ISIM simulation showing the sin and cos calculation by the proposed implementation

Suggest Documents