2nd pan-american and iberian meeting on acoustics 15 – 19 ... · 2nd pan-american and iberian...
TRANSCRIPT
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
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.
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
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)
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
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
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.
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
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.