Está en la página 1de 6

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/274370958

PROTOTIPADO RÁPIDO PARA APLICACIONES SOBRE FPGAs DE XILINX

Conference Paper · March 2010

CITATION READS
1 477

3 authors, including:

Bárbaro Maykel Miguel Enrique Iglesias Martínez


University of Pinar del Rio "Hnos Saíz Montes de Oca" University of Pinar del Rio "Hnos Saíz Montes de Oca"
15 PUBLICATIONS   2 CITATIONS    28 PUBLICATIONS   53 CITATIONS   

SEE PROFILE SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Anomalous effects on decay rates measurements View project

All content following this page was uploaded by Bárbaro Maykel on 01 April 2015.

The user has requested enhancement of the downloaded file.


PROTOTIPADO RÁPIDO PARA APLICACIONES SOBRE FPGAs DE XILINX
Work Shop
2010
Dr. Wilfredo Falcón Urquiaga, Ing.Bárbaro M. Lopez Portilla, Ing. Miguel Iglesias Martínez

Resumen ⎯ El diseño actual de sistemas digitales usando como la visualización correcta de información, y
tecnologías de hardware reconfigurables exige del reuso considerando además que para cualquier aplicación diseñada
para poder garantizar soluciones racionales y en tiempos para un Kit de desarrollo, primero se deben obtener los
razonables. Como resultado fundamental de esta módulos de control de señales de entrada y salida para los
investigación se tiene el diseño en VHDL de un conjunto de periféricos del Kit, con lo cual se pierde un tiempo en el
controladores que pueden ser embebidos en FPGAs para diseño de la aplicación, se propuso como uno de los
comunicar el sistema diseñado con los periféricos más objetivos de este trabajo obtener varios cores de
comunes de un kit de desarrollo, y una metodología para el controladores para periféricos que casi siempre están
reuso de estos módulos. Los controladores implementados presentes en los kit de desarrollo, y que a su vez sean cores
son: VGA, PS2-Mouse, PS2-Teclado, LCD, RS232 TX y independientes de la tecnología de FPGA [1].
RS232 RX. Este conjunto de controladores son de gran uso
en múltiples aplicaciones y serán nuevos módulos que se Haciendo uso del lenguaje VHDL y del Kit de Desarrollo
incorporarán como una nueva biblioteca de la herramienta Spartan-3E de Xilinx se han implementado y verificado los
de desarrollo de Xilinx, junto a otras aplicaciones ya siguientes controladores de periféricos: Controlador para
creadas en el Departamento de Telecomunicaciones y Teclado PS/2, Controlador para Mouse PS/2, Controlador
Electrónica de la Universidad de Pinar del Río, que VGA, Controlador para LCD y Controlador para
permiten el prototipado rápido de aplicaciones sobre Comunicación RS-232. Estos controladores se han
FPGAs. encapsulado en una librería que es usada en el flujo de
diseño de FPGAs de Xilinx permitiendo un prototipado
Palabras Claves ⎯ FPGAs, Reuso, Periféricos, Xilinx rápido de aplicaciones. En pocas horas, tanto el estudiante
como un investigador, puede tener su prototipo funcionando
INTRODUCCIÓN correctamente sin perder tiempo en el diseño del
controlador. El prototipado rápido es especialmente útil
La industria electrónica ha impulsado considerablemente el dentro del campo docente y en los diseños complejos que
desarrollo de los sistemas digitales basados en FPGAs, requieran de rapidez en su implementación. Las
debido fundamentalmente a su versatilidad, a sus altas características propias de las FPGAs las hacen muy
capacidades de integración, bajo coste y una arquitectura interesantes para realizar esta actividad [3],[4].
flexible con posibilidades de implementaciones paralelas [1],
[2]. Cada día son más complejos los diseños que pueden ser DESARROLLO
empotrados en estos dispositivos y por ello el diseño para el
reuso se ha convertido en una práctica habitual en los A continuación se presentarán los resultados de la
últimos años. implementación de diferentes controladores, y el desarrollo
de un mini-procesador de texto con interfaz gráfica como
Desde su surgimiento, el mercado de los FPGAs se ha aplicación que permite mostrar una metodología de
colocado en un estado donde hay dos grandes productores prototipado rápido.
que lo lideran, ellos son: Xilinx y Altera. Por otra parte,
aprovechando la disponibilidad de herramientas software, de Controlador para Teclado PS/2
hardware cada vez más potentes y asequibles y los adelantos Un teclado estándar PS/2 para PC es un dispositivo que se
en las tecnologías de fabricación de los circuitos integrados, encarga del rastreo de teclas, de evitar los rebotes y de
los HDLs (Lenguajes de Descripción de Hardware) logran trasmitir, mediante una trama perfectamente establecida, los
imponerse como herramientas imprescindibles en el resultados de las manipulaciones sobre sus teclas. A cada
desarrollo de nuevos sistemas, fundamentalmente Verilog y una de las teclas se le asigna un código de uno o dos bytes,
VHDL que se han estandarizado. Aparejado al desarrollo de llamado código de Rastreo de Teclado o código SCAN.
los circuitos FPGAs ha estado la evolución de Kit de Estos códigos son los que se trasmiten para indicar que se
desarrollos que facilitan el trabajo de implementación y esta pulsando una tecla determinada. El teclado PS/2 se
verificación así como la enseñanza de estas materias. comunica mediante un protocolo serie síncrono, por lo que
utiliza una señal de reloj que indica cuando el dato esta
Considerando como elementos importantes en el diseño de disponible. Esta señal de reloj tiene un periodo comprendido
un sistema digital con FPGAs la recepción de datos entre 80 us y 100 us. Mientras no se oprima ninguna tecla
proveniente de periféricos externos y su procesamiento, así ambas señales datos y reloj están a un nivel alto. En la
Figura 1 se muestra un diagrama de las señales PS2 para Controlador para Mouse PS/2
Teclado. El protocolo de transmisión del Mouse es idéntico al descrito
para el Teclado. Internamente el mouse contiene un
La trama completa se compone de 11 bits. El primer bit es mecanismo de detección de movimientos en los ejes, y un
de inicio y siempre es “0”, a continuación están los 8 bits del microcontrolador que posee internamente envía los datos de
dato a trasmitir (código SCAN) enviándose primero el movimientos y los eventos relacionados con la pulsación de
menos significativo, el décimo es el bit de paridad y por las teclas. El controlador creado envía un comando de
último el bit de parada que siempre es “1” lógico. El inicialización (F4) para que el mouse funcione normalmente.
protocolo de comunicación para el Teclado PS/2 es
bidireccional, pero el core diseñado solo se ocupa de El mouse envía al sistema paquetes de tres bytes que
controlar la información que viaja desde el teclado hacia el contienen información sobre el movimiento y el estado de
FPGA. los botones. Ver Figura 3. En el primer byte se envía el
FIGURA. 1 estado de los botones, en el segundo byte su ubicación en
coordenadas cartesianas con respecto al eje X y el tercer
byte su ubicación con respecto al eje Y. Estos datos de
ubicación se envían en complemento a 2 para poder tener en
cuenta los semi-ejes negativos. La señal de reloj que se
encarga de sincronizar estos datos tiene la misma frecuencia
que la usada en el controlador de teclado. A continuación se
En la Figura 2 se muestra el esquema modular del muestra un diagrama que describe el proceso de envio de los
controlador para el Teclado PS/2 realizado en VHDL y en la datos PS2 para Mouse.
Tabla I se muestran los recursos ocupados por este módulo
dentro del FPGA. FIGURA. 3
FIGURA. 2

En la Figura 4 se muestra el esquema modular del


controlador para el mouse, que fue descrito en VHDL y en la
Tabla II se muestran los recursos ocupados por este módulo
La entrada CLOCK_50MHz es la señal que se obtiene del dentro del FPGA. En las salidas WORD_1, WORD_2 y
oscilador del Kit de Desarrollo utilizado. Las entradas WORD_3 se muestran los tres byte que fueron transmitidos
CLOCK_PS2 y DATA_PS2 son las que se conectan desde el mouse. El dato en estas salidas es válido si la salida
directamente con el conector PS/2, mientras que la entrada DATA_RECEIVED está activa. Los puertos CLOCK_PS2 y
RESET_L tiene la función de resetear el modulo de manera DATA_PS2 son los que se conectan directamente al
asíncrona. En la salida de 8 bits llamada COD_SCAN se conector PS/2, en este caso ambos son bidireccionales
representa el código SCAN correspondiente a la tecla debido al comando que debe recibir inicialmente el mouse.
oprimida, este código será valido mientras la salida Este módulo cuenta también con una entrada de reseteo
SCAN_OK esté en estado alto. asíncrona y con una entrada de reloj.

TABLA I FIGURA. 4
Number of Slice 24 out of 4656 0%

Number of Slice Flip Flop 31 out of 9312 0%

Number of 4 input LUTs 19 out of 9112 0%

Number of bonded IOBs 14 out of 232 6%


Number of GCLKs 2 out of 24 8%
TABLA II PIXEL_COLUMN y PIXEL_ROW, las cuales internamente
Number of Slice 50 out of 4656 1% en el módulo están relacionadas con las señales de
sincronismo.
Number of Slice Flip Flop 80 out of 9312 0%
TABLA III
Number of Slice 37out of 4656 0%
Number of 4 input LUTs 41 out of 9112 0%
Number of Slice Flip Flop 30 out of 9312 0%
Number of bonded IOBs 29 out of 232 12%
Number of GCLKs 2 out of 24 8%
Number of 4 input LUTs 68 out of 9112 0%

Controlador VGA Number of bonded IOBs 9 out of 232 3


La norma VGA representa una resolución para cualquier Number of GCLKs 2 out of 24 8%
monitor de 640*480 píxel. Las señales de video VGA son 5,
de las cuales 2 son señales con niveles de voltaje TTL, y las
otras 3 están asociadas al color. Las señales TTL son Controlador LCD
utilizadas para controlar el sincronismo de la señal de video, El LCD ha controlar, en el caso del Kit de desarrollo Spartan
una es la encargada del sincronismo vertical y la otra es la 3E de Xilinx, esta constituido por dos líneas de 16
encargada del sincronismo horizontal. Los haces recorren la caracteres, y dispone de una matriz de 7x5 puntos para
pantalla empezando por la esquina superior izquierda desde representar cada carácter. En total se pueden representar 256
el punto de vista frontal del monitor. Para generar el cambio caracteres diferentes los cuales están grabados dentro del
de línea y de pantalla el controlador VGA debe generar las LCD en una memoria ROM.
señales de sincronismo.
El bus de datos del display es un bus multiplexado de 4 bits,
Las tres señales asociadas al color tienen niveles de voltaje siendo una opción muy útil para ahorrar bits en el sistema de
entre 0V y 0.7V. Estos niveles de voltaje son utilizados para control. Se ahorran bits pero aumenta la complejidad del
controlar la intensidad del color. Las señales de color están controlador, que tiene que multiplexar y demultiplexar los
asociadas a los colores Rojo, Verde y Azul (colores RGB). datos. La transferencia de información se realiza de la
A partir de la ponderación de estas señales se puede generar siguiente manera: primero los 4 bits mas significativos y
toda la gama de colores. En la Figura 5 se muestra el luego los 4 menos significativos. El bus de control esta
controlador que ha sido implementado en VHDL para formado por 3 señales: RS, RW y EN. La señal EN es la
generar la norma VGA propia de monitores para PC, y en la encargada de validar los datos. Cuando no se utiliza el
Tabla III se muestran los recursos ocupados por este módulo display esta señal debe permanecer a nivel bajo. La señal
dentro del FPGA. RW permite seleccionar si la operación que se va a realizar
sobre el display es una lectura (RW=1) o escritura (RW=0).
FIGURA. 5 De esta forma en muchos diseños es muy común encontrar
el LCD configurado en modo escritura de manera fija. Con
RS se selecciona el registro interno del display sobre el que
se va a leer o escribir, estos registros son el de control y el de
datos.

Para poder representar caracteres en el LCD y configurar el


texto se hace necesario enviar una secuencia de comandos
que se puede resumir en tres etapas fundamentales:
inicialización, configuración y visualización. En la Figura 6
se muestra el módulo que funciona como controlador para
este LCD, el cual se encarga de inicializar y configurar el
display, dejándole así al usuario la etapa de visualización
que consiste en colocar el dato en la entrada COD_ASCI
correspondiente al carácter que se desea visualizar de
Las entradas RED, GREEN y BLUE son las que indican que manera sincronizada con una señal de 40 Hz (ENT).
color va a tener un determinado píxel en la pantalla, teniendo
encuentra que en este caso la mayor cantidad de colores
diferentes es de 8. Para tener el control exacto de la posición
de cada píxel en pantalla se usan las señales
FIGURA. 6 se encuentra en estado alto. En la Figura 7 se muestra un
ejemplo de transmisión de un dato de forma asíncrona.

FIGURA. 7

La salida DISPONIBLE es la encargada de indicar con un


nivel alto que el LCD esta listo para visualizar el mensaje, o Las Figuras 8 y 9 muestran los esquemas RTL que permiten
sea, han concluido las etapas de inicialización y la recepción y transmisión respectivamente de datos. Los
configuración. La entrada COD_ASCI es donde se coloca el recursos ocupados por estos módulo dentro del FPGA son
código ASCI en hexadecimal de la letra que se desea mínimos. El módulo receptor coloca el dato recibido por
representar. La entrada ENT indica al controlador, con un SERIAL_IN en la salida RX_OUT de forma paralela e
flanco de subida, cuando puede aceptar el dato. indica dato válido colocando a nivel alto la salida LOAD.

En la siguiente Tabla se muestran los recursos ocupados por FIGURA. 8


este módulo dentro del FPGA.

TABLA IV
Number of Slice 310 out of 4656 6%

Number of Slice Flip Flop 46 out of 9312 0%


FIGURA. 9
Number of 4 input LUTs 594 out of 9112 6%

Number of bonded IOBs 19 out of 232 8%


Number of GCLKs 1 out of 24 4%

Controlador para comunicación RS232 (Tx y Rx)


Existen dos tipos de comunicación serie, la sincrónica y la En el caso del módulo trasmisor envía los datos que se
asíncrona. En la comunicación serial síncrona se necesitan encuentran en forma paralela en la entrada TX_IN a través
dos líneas, una sobre la cual se trasmitirán los datos y otra de de la salida SERIAL_OUT, colocando un nivel alto en la
sincronismo o reloj que indicará cuando un dato es válido. salida SERIAL_OK cuando se haya realizado la transmisión
Ejemplo de este tipo de comunicación son los protocolos: de un dato completo. El proceso de transmisión comienza
I2C y SPI. En el caso de la norma RS232 se utiliza una cuando LOAD detecta un pulso a nivel bajo.
comunicación asíncrona que es de fácil implementación. En
este tipo de comunicación no son necesarios los pulsos de APLICACIÓN: Miniprocesador de texto con interfaz
reloj y la duración de cada bit esta determinada por la gráfica
velocidad con la cual se realiza la transferencia de datos. Una vez creada la librería de módulos IPs se puede hacer uso
de cualquiera de ellos en el diseño deseado, bastaría
Para iniciar la transmisión de datos, el trasmisor coloca esa solamente con declarar correctamente dicha librería (Library
línea en bajo durante un determinado tiempo, a lo cual se le NombreLibrary;) y entonces se podría usar de la misma
conoce como bit de arranque y a continuación comienza a forma que otras ya definidas en el ISE (use
trasmitir los bits correspondientes al dato, iniciando siempre NombreLibrary.NombrePaquete.all;).
por el bit menos significativo (LSB). Por último se termina
la secuencia con el bit de parada que es un nivel alto. Existe El diseñador no necesitaría conocer el código VHDL de
un décimo bit que se puede o no utilizar en dependencia de dichos módulos, sin embargo es de vital importancia que
los requerimientos del diseño. Normalmente cuando no se conozca la funcionalidad de todos los puertos de entrada y
realiza ninguna transferencia de datos, la línea del trasmisor salida. A continuación se describirá una aplicación donde se
utilizan algunos de los IPs que se encuentran dentro de la TABLA V
librería creada, mostrando la metodología de prototipado y el Number of Slice 3385 out of 4656 72%
correcto funcionamiento del diseño.
Number of Slice Flip Flop 2974 out of 9312 31%
La aplicación consiste en un miniprocesador de texto con
interfaz gráfica, donde las acciones que se realicen en el
Number of 4 input LUTs 5010 out of 9112 53%
teclado, y los movimientos o acciones del mouse, serán
reflejadas en el monitor, siendo el FPGA, con los módulos
de control embebidos, quien controla todo este proceso. Number of bonded IOBs 14 out of 232 6%
Como se muestra en la Figura 10 se utilizan para este diseño
los controladores de teclado, mouse y monitor. El módulo Number of GCLKs 5 out of 24 20%
que se encuentra en el centro de la figura sería el único a
implementar y se ocupa de procesar la información de los
periféricos de entrada y entregar las salidas correspondientes CONCLUSIONES
de la norma VGA para su visualización en el monitor. Este
módulo está formado entre otras cosas por una memoria El desarrollo del presente trabajo permitió diseñar e
ROM que posee todos los caracteres y una memoria RAM implementar un conjunto de controladores para periféricos
que guarda los caracteres escritos en el monitor. que comúnmente pueden conectarse a un Kit con FPGAs.
Este conjunto de cores obtenidos, junto a otros módulos ya
FIGURA. 10 implementados con anterioridad, y con el uso de la
metodología descrita, permiten el prototipado rápido de
aplicaciones sobre tecnologías de FPGAs. Para explotar
eficientemente las tecnologías ASICs y de FPGAs actuales,
y desarrollar de forma económica proyectos robustos, es
imprescindible la reutilización de módulos ya creados.

AGRADECIMIENTOS
Al Ministerio de Educación Superior, a la Agencia Española
de Cooperación Internacional para el Desarrollo, a la
Universidad de Alcalá de Henares y a la Universidad de
Pinar del Río por el financiamiento brindado para la
En la Figura 11 se muestra una imagen de la aplicación adquisición de Kit de Desarrollos, para la capacitación de
funcionando. Se puede notar la presencia solamente de un profesores y el desarrollo de proyectos de investigación.
mouse, un teclado un monitor y el Kit de Desarrollo Spartan-
3E. Entre el Kit y el mouse se puede notar la presencia de
una pequeña placa que fue necesario implementar, debido a REFERENCIAS BIBLIOGRÁFICAS
que el Kit solamente posee un puerto PS2.
[1] López B. M. e Iglesias M. E., “Implementación de controladores para
periféricos del Kit de Desarrollo Spartan-3E de Xilinx”, Tesis de
FIGURA. 11 Grado, Departamento de Telecomunicaciones y Electrónica,
Universidad de Pinar del Río, 2008.
[2] Falcón W., “Optimización de Diseños sobre FPGAs e Implementación
Paralela del Decodificador para LPDC”, Tesis de Doctorado. Escuela
Politécnica Superior de la Universidad de Mondragón, 2004.
[3] Kission P., Jerraya A., Moussa I., “Hardware Reuse”, Workshop on
Libraries, Component Modelling, and Quality Assurance, Toledo,
April 1997.
[4] Jiménez F.J., Gadea R., Colom R.J., Martínez M., Ballester F.J. y
Toledo J.F., “Diseño para el reuso: metodología basada en VHDL y
validación mediante implementacion en FPGAs”. Ponencia de la
XXVI Reunión Bienal R.S.E.F. 1997.

En la siguiente Tabla se muestra los recursos ocupados por


esta aplicación dentro del FPGA.

View publication stats

También podría gustarte