2nd pan-american and iberian meeting on acoustics 15 – 19 ... · 2nd pan-american and iberian...

9
2nd Pan-American and Iberian Me 2nd Pan-Ameri C APPLICAT BASE Jiménez Flores A. 1 UAM–Azc. CB 2 IPN-Zac. E 3 IPN-Zac. ESIME eeting on Acoustics 15 – 19 November 2010 ican and Iberian Meeting on Acoust 15 – 19 November 2010 160 th ASA meeting 7 o Congress FIA 17 o Congress IMA CANCUN – MEXICO Session Code: 3aSP TION-SPECIFIC INTEGRATED CIRCUITS ED ON RECONFIGURABLE LOGIC . 1 , Peña Guerrero M. 2 , Negrete Redondo J BI-Electrónica. e-mail: [email protected] ESIME-Acústica. e-mail: [email protected] E-Acústica. e-mail: [email protected] Cancun, Mexico 1 tics S J. J. 3 x mx

Upload: others

Post on 22-Mar-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2nd Pan-American and Iberian Meeting on Acoustics 15 – 19 ... · 2nd Pan-American and Iberian Meeting on Acoustics 15 – 19 November 2010 Cancun, Mexico 2 APPLICATION-SPECIFIC

2nd Pan-American and Iberian Meeting on Acoustics 15

2nd Pan-American and Iberian Meeting on Acoustics

CANCUN

APPLICATION

BASED ON

Jiménez Flores A.

1 UAM–Azc. CBI

2IPN-Zac. ESIME

3IPN-Zac. ESIME

American and Iberian Meeting on Acoustics 15 – 19 November 2010

American and Iberian Meeting on Acoustics

15 – 19 November 2010

160th

ASA meeting

7o Congress FIA

17o Congress IMA

CANCUN – MEXICO

Session Code: 3aSP

PPLICATION-SPECIFIC INTEGRATED CIRCUITS

ASED ON RECONFIGURABLE LOGIC

Jiménez Flores A.1, Peña Guerrero M.

2, Negrete Redondo J. J.

Azc. CBI-Electrónica. e-mail: [email protected]

ESIME-Acústica. e-mail: [email protected]

Zac. ESIME-Acústica. e-mail: [email protected]

Cancun, Mexico

1

American and Iberian Meeting on Acoustics

IRCUITS

, Negrete Redondo J. J.3

[email protected]

[email protected]

Page 2: 2nd Pan-American and Iberian Meeting on Acoustics 15 – 19 ... · 2nd Pan-American and Iberian Meeting on Acoustics 15 – 19 November 2010 Cancun, Mexico 2 APPLICATION-SPECIFIC

2nd Pan-American and Iberian Meeting on Acoustics 15 – 19 November 2010 Cancun, Mexico

2

APPLICATION-SPECIFIC INTEGRATED CIRCUITS BASED ON RECONFIGURABLE LOGIC

Jiménez Flores A.1, Peña Guerrero M.

2, Negrete Redondo J. J.

3

1 UAM–Azc. CBI-Electrónica. e-mail: [email protected]

2IPN-Zac. ESIME-Acústica. e-mail: [email protected]

3IPN-Zac. ESIME-Acústica. e-mail: [email protected]

ABSTRACT A problem for developers of measuring and control instruments for medical equipment

consists of building systems with higher degrees of sophistication, automation and

programmability, at the same time as it must limit the necessary space for the increasing

number of components involved in his designs. In this context, is attractive to develop

Application-Specific Integrated Circuits, ASICs, for technologies of devices FPGA (Field

Programmable Logic Array), because they allow circuit architectures and they are

reconfigurable. This paper presents an analysis of the advantages of FPGA technology in

the development of specific applications to capture and to process signal with high

performance. The used tools are an Integrated Software Environment, ISE 10.1, based on

language VHDL (Very High Speed Integrated Circuits Hardware Description Language),

and a development system, Virtex-5 ML501, both of Xilinx. Also used Altera tools. The

results presented describe some basic logic functions that contain ASICs on FPGAs,

oriented to the capture and signal processing.

Keywords: VHDL, signal processing, FPGA, ASIC, Xilinx, Virtex-5 ML501, Altera, DE2.

RESUMEN Un problema de los desarrolladores de instrumentos de medición y control para equipo

médico consiste en construir sistemas con alto grado de sofisticación, automatización y

programabilidad, al mismo tiempo que deben limitar el espacio necesario para el número

creciente de componentes involucrados en el diseño. En este contexto, es atractivo

desarrollar circuitos integrados de aplicación específica, ASIC (Application-Specific

Integrated Circuits), para tecnologías de dispositivos FPGA (Field Programmable Logic

Array), debido a que permiten arquitecturas de circuito y son reconfigurables. Este

documento presenta un análisis de las ventajas de la tecnología FPGA en el desarrollo de

aplicaciones específicas para capturar y procesar señales con alto desempeño. Las

herramientas utilizadas son un ambiente de software integrado, ISE 10.1, basado en el

lenguaje VHDL (Very High Speed Integrated Circuits Hardware Description Language), y

un sistema de desarrollo, Virtex-5 ML501, ambos de Xilinx. También se utilizaron

herramientas de Altera. Los resultados presentados describen algunas funciones básicas que

contienen los ASICs en FPGAs, orientados a la captura y procesamiento de señales.

Palabras clave: VHDL, procesamiento de señales, FPGA, ASIC, Xilinx, Virtex-5 ML501,

Altera, DE2.

Page 3: 2nd Pan-American and Iberian Meeting on Acoustics 15 – 19 ... · 2nd Pan-American and Iberian Meeting on Acoustics 15 – 19 November 2010 Cancun, Mexico 2 APPLICATION-SPECIFIC

2nd Pan-American and Iberian Meeting on Acoustics 15 – 19 November 2010 Cancun, Mexico

3

1. Introducción

Durante varias décadas, el desarrollo de sistemas electrónicos ha consistido en agregar

componentes estándar, cada vez más complejos, sobre tarjetas de circuito impreso (PCBs).

Conforme los niveles de integración crecen, el trabajo de manufactura de las PCBs se hace

más complejo, debido a la necesidad de tener tarjetas multicapa con un número mayor de

capas [1]. Al mismo tiempo, se incrementa el trabajo de descripción de los sistemas y se

hace menos viable la concepción de un diseño completamente especificado debido a la

frecuente necesidad de desarrollar sistemas que puedan ser modificados después de su

construcción.

Los microprocesadores y microcontroladores ofrecen cierta flexibilidad para hacer

modificaciones en la conectividad de Entrada/Salida del sistema, después de su

construcción. Sin embargo, esa flexibilidad para realizar cambios no es aplicable en las

interconexiones de otros componentes sobre la PCB [2]. Por consiguiente, resulta atractivo

el uso de nuevas tecnologías basadas en lógica configurable, tal como los arreglos de

compuertas programables en campo, conocidos como FPGA (FieldProgrammableLogic

Array), los cuales no sólo ofrecen conectividad programable entre componentes grandes del

sistema, sino que permiten una reconfiguración completa del mismo. Es decir, el FPGA

pasa de ser una tecnología de interconexión programable a un componente de sistema.

Identificación del problema

La principal ventaja de los microprocesadores y microcontroladores se debe a que

reducen la complejidad de diseño, con lo que se logra una reducción considerable de los

riesgos de desarrollo de sistemas. Dado que el hardware es fijo, los esfuerzos de diseño se

concentran en el código para hacer que el hardware trabaje de acuerdo con las

especificaciones requeridas del sistema. Sin embargo, esta ventaja se convierte en un

problema en aplicaciones de procesamiento de señales debido a que gran parte del trabajo

de diseño se apoya en la habilidad del desarrollador de software para explotar una

arquitectura de procesador subyacente de tipo Von Neumann. Mientras que el

procesamiento de señales muestra altos niveles de paralelismo con operaciones

independientes de los datos, las arquitecturas Von Neumann ejecutan las operaciones de

manera secuencial, reduciendo notablemente el desempeño.

Planteamiento de una solución.

El problema de la ejecución secuencial, propio de las arquitecturas Von Neumann, se

puede resolver con el uso de dispositivos FPGA porque permiten agregar un segundo nivel

de programabilidad a la arquitectura del procesador subyacente, mediante una

configuración a la medida. La idea de crear arquitecturas a la medida representa la base

fundamental de los circuitos ASIC.

Nuestro principal interés por desarrollar circuitos ASIC basados en FPGA se debe a la

posibilidad de desarrollar arquitecturas que puedan ser ajustadas específicamente a los

requerimientos algorítmicos, permitiendo crear un nivel de paralelismo para alcanzar altos

niveles de desempeño.

En volúmenes altos, las implementaciones de tipo ASIC tienen mejor costo efectivo,

son más rápidas y consumen menor energía. Sin embargo, el incremento en los costos de

Page 4: 2nd Pan-American and Iberian Meeting on Acoustics 15 – 19 ... · 2nd Pan-American and Iberian Meeting on Acoustics 15 – 19 November 2010 Cancun, Mexico 2 APPLICATION-SPECIFIC

2nd Pan-American and Iberian Meeting on Acoustics 15 – 19 November 2010 Cancun, Mexico

4

mascarillas y el impacto en el tiempo de realización de sistemas de primera vez hacen de

los FPGAs una alternativa más atractiva. “La reprogramabilidad de los FPGA’s permite

una fase de desarrollo más flexible y reduce los riesgos y costos” [3].

Desde esta perspectiva, los FPGAs combinan los aspectos de desempeño que ofrecen

las implementaciones ASIC y la programabilidad, usualmente asociada con procesadores

programables. Actualmente, las soluciones FPGA ofrecen varios cientos de

gigaoperaciones por segundo (GOPS) en algunas aplicaciones DSP, las cuales tienen mejor

desempeño que los microprocesadores en, al menos, un orden de magnitud [4].

2. Casos de estudio

A continuación presentamos dos ejemplos de circuitos ASIC basados en lógica

reconfigurable como casos de estudio en los que se pueden identificar las ventajas de un

diseño doblemente flexible. Aunque, originalmente hemos diseñado ambos circuitos con

fines distintos [5], cada uno de ellos ofrece la posibilidad de ser útil en una gama amplia de

aplicaciones dentro de las cuales hemos elegido, para este documento, la de captura de

datos y procesamiento de señales.

2.1 Primer caso

Nuestro primer ejemplo trata de un circuito, al que denominamos Memoria de Acceso

Concurrente (MAC), que ha sido diseñado para almacenar datos de señales acústicas o de

otro tipo, que requieren ser escritos y leídos, tan rápido como se generen, para su análisis y

procesamiento inmediato. Generalmente, el análisis de las señales de voz parte de un

análisis espectral que consiste en medir los componentes de frecuencia pertenecientes a un

conjunto de muestras de voz llamado ventana [6]. Posteriormente, se modela el espectro

mediante la parametrización de los componentes de frecuencia. Finalmente, se hace una

transformación paramétrica que permite obtener vectores de observación para reconocer la

voz. La frecuencia con la que se analiza una ventana determina un tiempo conocido como

duración de marco.

Las muestras de la señal se agrupan en ventanas de igual tamaño, sobre las que se aplica

una función de transformación al dominio de la frecuencia, tal como la Transformada de

Fourier. Para una ventana de N muestras se obtienen N/2 valores de frecuencias.

Típicamente, el manejo de ventanas se implementa utilizando una memoria buffer circular.

Proponemos la MAC como un buffer que facilita el manejo de ventanas, con una

administración dinámica de espacios de almacenamiento llamados colas. Mediante un

algoritmo sencillo de acceso a la MAC se pueden crear, por ejemplo, tres colas con el mismo

número de localidades de almacenamiento. La suma total de localidades será igual al de una

ventana, lo cual significa que cada muestra de la ventana es almacenada en una localidad de

la MAC. De esta forma podemos fijar un tamaño de ventana de acuerdo con el ancho de

banda deseado en la formación del espectro en frecuencia. Así, la duración del marco se fija

de acuerdo con el traslape de ventanas requerido y la velocidad con la que se pueden

reconocer los patrones de voz.

Las ventajas de la MAC se derivan de sus siguientes características:

• Facilidad para crear colas de tamaño variable

• Cada cola se comporta como un arreglo FIFO (first-input-first-output)

Page 5: 2nd Pan-American and Iberian Meeting on Acoustics 15 – 19 ... · 2nd Pan-American and Iberian Meeting on Acoustics 15 – 19 November 2010 Cancun, Mexico 2 APPLICATION-SPECIFIC

2nd Pan-American and Iberian Meeting on Acoustics 15 – 19 November 2010 Cancun, Mexico

5

• Posibilidad de escribir y leer simultáneamente

• Ciclos de escritura/lectura de 1 periodo de reloj

• Contigüidad de las colas y de sus datos

• Flexibilidad para fijar el tamaño de la localidad

En la Figura 1 se muestra el modelo gráfico de una MAC con 4 colas. En la parte

izquierda se observa un apuntador para la operación de escritura que provoca una inserción

del dato escrito y un desplazamiento, hacia abajo, de los datos subsecuentes. En la parte

derecha de la figura se observa un apuntador para la operación de lectura que provoca una

extracción del dato leído y un desplazamiento, hacia arriba, de los datos subsecuentes [3,5].

Mediante pequeñas modificaciones, nuestro diseño contempla la posibilidad de tener un

número mayor de colas donde cada tamaño máximo de cola dependerá del tamaño máximo

de localidades de la MAC.

Implementación de la MAC con VHDL

La arquitectura de la MAC está constituida por los arreglos M, RD y CD. Identificamos

por M al arrreglo que contiene los datos, RD al arreglo de direcciones y CD al arreglo de

celdas que controlan las operaciones de la memoria.En la Figura 2 se muestra una de las

localidades que contiene la MAC. Cada localidad está constituida por una celda del registro

de direcciones RD, una celda del módulo de almacenamiento de datos M, y una celda del

módulo de control CD.

Si mx es el número total de localidades de la MAC, entonces, cada celda CD(i) para

cualquier i entre 1 y mx controla su correspondiente celda de almacenamiento M(i) y su

celda del registro de direcciones RD(i). Además, envía y recibe señales de referencia hacia

y desde las celdas CD(i+1) y CD(i-1). Tales señales hacen que las celdas de

almacenamiento M(i) y las del registro RD(i) realicen simultáneamente operaciones

primitivas que concretan la operación de escritura/lectura deseada.

Las operacionesprimitivas son: escritura o lectura de dato, lectura y escritura de dato,

desplazamiento de dato hacia abajo o hacia arriba, escritura o lectura de estado de cola,

creación o eliminación de apuntador de dato, creación o eliminación de apuntador de

lectura, ninguna operación.

Figura 1. MAC con cuatro colas.

Cola2

Cola3 Cola 3

Cola 2

Cola 1

Cola 4

Espacio

libre

Cola 1

Cola 4

Espacio

libre

des

pla

zam

iento

extracción

inserción

des

pla

zam

iento

RD(i) CD(i) M(i)

Figura 2. Una Localidad de la MAC

Buses de

Direcciones

Buses de

Datos

CD(i-1)

CD(i+1)

RD(i-1)

RD(i+1)

M(i-1)

M(i+1)

Bus de

Control

Page 6: 2nd Pan-American and Iberian Meeting on Acoustics 15 – 19 ... · 2nd Pan-American and Iberian Meeting on Acoustics 15 – 19 November 2010 Cancun, Mexico 2 APPLICATION-SPECIFIC

6

2nd Pan-American and Iberian Meeting on Acoustics 15 – 19 November 2010 Cancun, Mexico

La operación u operaciones primitivas realizadas por las celdas de almacenamiento M(i)

y las del registro RD(i) dependen de la operación fundamental o paralela a ejecutarse y de

la posición relativa de la celda de control con respecto a las demás localidades de la MAC.

Esto da origen a 38 casos diferentes, los cuales hemos sintetizado en una tabla que

tomamos como base para la implementación con VHDL [3,7].

Pruebas de Simulación Lógica

Durante la simulación lógica obtuvimos gráficas de tiempo de las señales de la celda de

control para los 38 casos que presenta la MAC. También, probamos la inicialización de

nuestra memoria para observar la creación automática de los apuntadores, tal como se

muestra en la Figura 3.

El resultado de una prueba con una operación paralela se muestra en la Figura 4. Dicha

prueba consiste en escribir un dato en la cola 1 y leer otro en la cola 3. Al iniciar la

operación, cada cola tiene un dato. Se observó que, después de la operación paralela, la

escritura deja a la cola 1 con dos datos, y la lectura deja vacía a la cola 3.

En resumen, este es el caso de un diseño de circuito de propósito específico (ASIC), que

hemos descrito como MAC, cuya función es permitir la escritura y lectura de datos de

manera simultánea. Una de las principales características de la MAC es que está organizada

en un número, previamente establecido, de colas independientes que se mantienen

contiguas mediante una técnica de autocompactación.

Figura 3. Inicialización de la MAC Figura 4. Operaciones Paralelas

La ventaja de haber realizado este diseño sobre un FPGA es que su diseño puede ser

parametrizado para poder reconfigurar en campo el número de colas y el total de

localidades, entre otras características, para adaptarlo a un problema específico. Además,

como se observa en la Figura 2, cada localidad de memoria es controlada por una celda de

control (CD), lo cual permite que todas las localidades realicen sus funciones particulares

de manera paralela. Estas ventajas permiten un alto desempeño y una reducción en los

Page 7: 2nd Pan-American and Iberian Meeting on Acoustics 15 – 19 ... · 2nd Pan-American and Iberian Meeting on Acoustics 15 – 19 November 2010 Cancun, Mexico 2 APPLICATION-SPECIFIC

7

2nd Pan-American and Iberian Meeting on Acoustics 15 – 19 November 2010 Cancun, Mexico

costos de diseño con una mayor flexibilidad para adaptarlo a la medida de los

requerimientos.

2.2 Segundo caso

El segundo ejemplo trata de un circuito para cálculo aritmético, al que hemos nombrado

Unidad Aritmética Básica de Punto Flotante (FPBAU). El diseño, realizado con VHDL,

está planeado para implementarse en un dispositivo FPGA. Actualmente sólo se tienen

algunas operaciones básicas, pero el objetivo es desarrollar una unidad aritmética de punto

flotante para aplicaciones de cálculo numérico en señales acústicas.

Formatos de la Norma IEEE-754

Las representaciones en punto flotante tienden a utilizarse extensivamente en cómputo

científico y su formato más utilizado es el de la norma IEEE-754, para Aritmética de Punto

Flotante Binaria, la cual se basa en representar a los números por medio de signo (S),

exponente (Exp) y mantisa o fracción (Frac). Esta norma especifica cuatro formatos:

precisión simple (32 bits), precisión doble (64 bits), precisión extendida simple y precisión

extendida doble, siendo los dos primeros los más utilizados.

El formato de la Norma IEEE-754 para operandos de precisión simple se muestra en la

Figura 5. El bit más significativo representa al signo s, donde s=0 indica positivo, y s=1

indica negativo. Sigue el exponente Exp, de 8 bits, y finalmente la Fracción, de 23 bits. Si

denominamos como y a la representación del operando, entonces s=y(31), Exp=y(30:23), y

Fracción=y(22:0).

s Exp Frac

31 30 23 22 0

Figura 5. Formato de un operando y, en precisión simple.

Para precisión doble, como se muestra en la Figura 6, se tiene l bit de signo s, un

exponente, Exp, de 11 bits, y una Fracción, de 52 bits. Si denominamos como y a la

representación del operando, entonces s=y(63), Exp=y(62:52), y Fracción=y(51:0).

s Exp Frac

63 62 52 51 0

Figura 6. Formato de un operando y en precisión doble.

Una vez que se diseña el algoritmo con VHDL para un circuito de cálculo con precisión

simple, de tipo ASIC, se puede adaptar este diseño para el caso de precisión doble,

mediante algunos cambios relacionados con el tamaño del exponente y la fracción. Pero no

sólo se tiene la ventaja de poder modificar fácilmente el diseño para un nuevo ASIC , sino

que además podemos hacer los cambios sobre el mismo dispositivo FPGA en campo. Más

aún, en aplicaciones de cálculo numérico, como el de la Transformada Rápida de Fourier o

el diseño de filtros, podemos dedicar un sumador y un multiplicador para cada

multiplicación y adición respectivamente, logrando un paralelismo completo. De esta

manera, vemos nuevamente que el uso de la lógica reconfigurable, en la cual se apoyan los

dispositivos FPGA, conlleva la ventaja de aumentar el grado de programabilidad de un

circuito ASIC, basado en FPGA y aumenta su desempeño.

Page 8: 2nd Pan-American and Iberian Meeting on Acoustics 15 – 19 ... · 2nd Pan-American and Iberian Meeting on Acoustics 15 – 19 November 2010 Cancun, Mexico 2 APPLICATION-SPECIFIC

8

2nd Pan-American and Iberian Meeting on Acoustics 15 – 19 November 2010 Cancun, Mexico

En la Figura 7 se muestra el diagrama a bloques de una Unidad de Punto Flotante

Superescalar, SFPU, dentro de la cual se encuentran réplicas del circuito para cálculo

numérico, FPBAU. En la parte izquierda de la figura se muestran bloques replicados de la

FPBAU, encargados de obtener de manera simultánea los cálculos parciales de una función.

Mediante un selector se enviarán los resultados parciales a otra unidad de cálculo encargada

de conjuntarlos. Con este método podrían realizarse cálculos numéricos con alto

desempeño, tales como sumatorias y productorias, necesarios en la obtención de

Transformadas Rápidas de Fourier, entre otros.

Figura 7. Unidad de Punto Flotante Superescalar.

Pruebas del sumador de punto flotante

En la simulación del sumador, que forma parte del FPBAU, se utilizaron las herramientas

de las compañías Xilinx (ISE 10.1) y Altera (Quartus II 8.0), haciendo las adaptaciones

necesarias en el código de cada plataforma de programación [8, 9, 10].

Figura 8. Tarjeta de desarrollo

con FPGA de Altera.

En la Figura 8 se muestra

una tarjeta de desarrollo, de la compañía Altera, Modelo DE2, la cual utilizamos durante las

pruebas del sumador de punto flotante.

FPBAU

FPBAU

FPBAU

FPBAU

FPBAU

Control

M

U

X

Paralelismo con réplicas

Datos

de Entrada

Resultado

Final

Page 9: 2nd Pan-American and Iberian Meeting on Acoustics 15 – 19 ... · 2nd Pan-American and Iberian Meeting on Acoustics 15 – 19 November 2010 Cancun, Mexico 2 APPLICATION-SPECIFIC

9

2nd Pan-American and Iberian Meeting on Acoustics 15 – 19 November 2010 Cancun, Mexico

3. Conclusiones

Con la ayuda de dos ejemplos, hemos resaltado que el principal atractivo de los

circuitos ASIC, implementados sobre dispositivos FPGA, es que su arquitectura puede

adaptarse específicamente a los requerimientos algorítmicos, facilitando niveles de

paralelismo que alcancen el desempeño requerido. Los diseños de la MAC y la FPBAU

pueden aplicarse en sistemas de comunicación, análisis y procesamiento de datos de audio

y video, donde los requerimientos de desempeño son altos, por lo que resulta imperioso el

uso de la lógica reconfigurable.

Los FPGAs pueden verse como unidades de lógica programable que pueden usarse para

realizar diversas funciones digitales y como interconexiones programables que permiten a

varios bloques conectarse entre sí. Su enorme nivel de programabilidad permite que las

funciones previamente programadas puedan cambiarse, o que las funciones contenidas en

estos dispositivos puedan interconectarse de modos diferentes.

Actualmente, algunas compañías ofrecen tarjetas de desarrollo que incluyen

microprocesadores, procesadores de señales digitales y FPGAs. Otras compañías ofrecen

dispositivos FPGAs incrustados (embedded). En resumen, la posibilidad de desarrollar

arquitecturas de circuito de aplicación específica mediante tecnologías ASIC y FPGA es

clave para alcanzar niveles de desempeño altos.

Referencias

1. Collange S., Detrey J., Dinechin F. Floating point or Ins: choosing the right arithmetic

on an application basis. Proc. 9th

EUROMICRO Conf. on Digital System Design, 2006.

2. Süderberg Denis, “Extraction of Token Based VHDL models from Old ASIC Net

Lists”, in Greg Peterson, Philip Wilsey (eds.) Rapid Systems Prototyping with VHDL,

Proceedings, VHDL International, IEEE, Computer Society, Fall 1997 Conference. pp.

157-161. 280 pgs.

3. Jiménez Flores A. “ Buffer Autocompactantepara Switches y Ruteadores en

SistemasParalelos”. Tésis doctoral. Centro de Investigación y de EstudiosAvanzados

del InstitutoPolitécnicoNacional, 2006.

4. Peña G. M., A De Luca P., “Capture of Events MIDI in Parallel With FPGA”, Journal

of Applied Sciences & Technology, Vol. 1, No. 1, March 2003. (p:54).

5. Rabiner L. Juang, Fundamentals of Speech Recognition, Prentice Hall, 1993.

6. Wang X., Leeser M., Braganza S. Advanced Components in the Variable Precision

Floating-Point Library, Field-programmable Custom Computing Machines (FCCM)

2006. April 2006, Napa CA.

7. Ashenden Peter J., The Designer’s Guide to VHDL, Second Edition, Academic Press,

MK Morgan Kaufmann Publishers, USA, 2002. 759 pgs.

8. Bhasker J., A VHDL Primer, Third Edition, Prentice Hall, USA, 1999. 373 pgs.

9. Xilinx, The Programmable Logic Data Book 1999, Xilinx Inc., USA, 1999.

10. Altera, Quartus II Handbook, Volume 1: Design and Syntesis., USA, 2010.