Sie sind auf Seite 1von 6

Tarjeta entrenadora para FPGA, basada en hardware abierto

Juan González, Pablo Haya, Sergio López-Buedo, Eduardo Boemo


Escuela Politécnica Superior
Universidad Autónoma de Madrid

Laboratorio B-209, Tlf: 913482268


juan@iearobotics.com, Pablo.Haya@ii.uam.es,
Sergio.López-Buedo@ii.uam.es, Eduardo.Boemo@ii.uam.es

Resumen 2. Introducción a las FPGAs


En este artículo se presenta la placa JPS, una tarjeta entre-
nadora para FPGAs de Xilinx, diseñada con una licencia
abierta que permite a cualquiera disponer de los esquemas
y planos relativos al PCB, modificarlos y/o distribuirlos, A la hora de implementar un sistema electrónico digital, el
así como fabricar la placa. La tarjeta permite realizar dise- diseñador dispone de un conjunto amplio de tecnologías.
ños autónomos sobre algunos modelos de FPGAs Spartan y Una de las más populares actualmente son los dispositi-
XC4000. Éstos se pueden cargar desde una EEPROM serie vos de lógica programable (PALs, PLDs, FPGAs,...). Los
incluida en la placa, o trabajar en modo entrenador, cargan- dispositivos de lógica programable más versátiles son las
do los diseños desde el PC. FPGA[10, 11] (Field Programmable Gate Array). Interna-
mente, una FPGA esta compuesta por un conjunto de blo-
ques iguales (CLBs) dispuesto de forma regular. Cada blo-
1. Introducción que contiene pequeñas memorias RAM y flips-flops que se
pueden configurar para realizar todo tipo de circuitos com-
La existencia de lenguajes de descripción hardware (HDL) binacionales y secuenciales de pequeña escala. Los blo-
tales como VHDL, Verilog, Handel-C, etc hace que los di- ques se pueden interconectar entre sí mediante conexio-
seños sean ficheros de texto, que contienen el “código fuen- nes también configurables. La configuración de la FPGA
te” del circuito. Así, el proceso de diseño de hardware cada se realiza mediante una comunicación serie denominada
vez se parece más al de software. Esto ha conducido a que bitstream, que puede estar almacenado en una memoria ex-
el hardware se convierta en algo que se puede compartir, terna (PROM, EEPROM, RAM...) o provenir de otro siste-
al estilo de lo que sucede con licencias abiertas tales como ma (PC, microcontrolador, otra FPGA...).
GPL[1]. Por ejemplo, han aparecido iniciativas como la de
Open Cores[2], donde se publican diseños complejos bajo
La tecnología FPGA permite realizar diseños a medida, de
una licencia abierta que permite ser compartidos por el resto
bajo coste de desarrollo, incluso para la producción de po-
de las llamadas “comunidades de desarrollo”.
cas unidades. Estas características la hacen muy interesan-
Dentro del contexto del hardware libre, parece necesario te para realizar prototipado rápido. Especialmente tiene un
contar con una placa sobre la que probar los circuitos, y que gran interés dentro del campo docente. En el caso de la tar-
ésta a su vez sea libre, pudiéndose compartir los esquemas, jeta JPS, el estudiante puede definir su propio microcon-
PCBs y ficheros de fabricación de manera que cualquiera la trolador (arquitectura y juego de instrucciones) específica-
pueda fabricar, usar, modificar, y redistribuir las modifica- mente orientado a aplicaciones de Robótica. En unas po-
ciones. cas semanas puede tener su prototipo funcionando e inte-
Para aplicaciones de robótica, se utilizan placas microcon- ractuando con los motores, sensores, etc. Adicionalmente,
troladores, de 8 bits, tales como la GP-BOT[6, 5] basada puede utilizar la JPS para construir periféricos complejos
en el microcontrolador 68hc08 o la CT6811[3], que usa el como medidores de distancia por ultrasonido, conversores
68hc11. La tarjeta JPS también está orientada a la robótica serie paralelo, unidades de PWM, bloques de transmisión
y ha sido diseñada para que se puede utilizar junto las tar- de datos, etc. Sobre FPGAs, la mayoría de estas aplicacio-
jetas mencionadas arriba, complementándolas o en su caso nes funcionan cerca un orden de magnitud más rápido que
sustituyéndolas. en un microcontrolador.

1/6
3. Características de la tarjeta Tres switches de configuración genéricos, conectados a
tres terminales fijos, para ser utilizados como entradas
La tarjeta JPS-XP84[4] (ver foto en la figura 1) es una tar- de configuración en los diseños realizados.
jeta entrenadora para FPGAs, de propósito general, aunque
está pensada para ser utilizada fundamentalmente en robóti- Configuración del modo de carga de la FPGA: maes-
ca. Sus dimensiones son reducidas (99x73mm) y dispone de tro o esclavo. El modo maestro permite cargar la FPGA
conectores de expansión de 10 vías, compatibles con cables desde la memoria EEPROM integrada en la propia tar-
planos. jeta. El modo esclavo se utiliza para cargarla desde un
sistema externo (PC o un microcontrolador)

Programación in circuit de la EEPROM.

Pulsador para hacer reset de la FPGA.

Conector para usar el cable de descarga (download)


estándar de Xilinx

4. Modos de funcionamiento
La tarjeta puede trabajar en dos modos de funcionamiento:
modo entrenador y modo autónomo. En el modo entrena-
dor, la tarjeta se conecta a un PC desde el que se reconfigura
la FPGA, usando el cable de descarga de Xilinx o bien uno
construido por el propio desarrollador. Una vez que la simu-
Figura 1: La tarjeta JPS, situada al lado de un disquete de 3 lación del diseño cumple con las especificaciones, y el cir-
y 1/2” cuito se ha sintetizado correctamente , se conecta la placa y
se descarga el bitstream, permitiendo comprobar físicamen-
Las FPGAs de la empresa Xilinx[7]que soporta la JPS se te su funcionamiento (realización de mediciones, conexión
muestran en la tabla 1. Todas ellas tienen el encapsulado de otros dispositivos, etc).
PLCC84, elegido por ser el de menor coste. Adicionalmen- Para su utilización en robótica, es muy útil el modo autóno-
te, es uno de los pocos encapsulados actuales que pueden mo, en el que el diseño se graba en una memoria EEPROM
ser soldados sin herramientas especiales para SMD. serie y la FPGA se configura automáticamente cada vez que
se conecta la tarjeta o se pulsa el botón de reset. Usando
Device Logic cells Total CLBs Total FF una FPGA del tipo XC10, el tiempo de reconfiguración es
XC4003E 238 100 360 de 200ms.
XC4005E 466 196 616 Otra opción es configurar la tarjeta en modo entrenador
XC4010E 950 400 1120 (FPGA en modo esclavo) pero realizando la carga desde
XCS05 238 100 360 un sistema microcontrolador, en vez de desde la EEPROM
XCS10 466 196 616 serie. Esto abre la posibilidad de trabajar con sistemas re-
configurables o adaptables, que descarguen un determinado
circuito según las necesidades concretas.
Cuadro 1: FPGAs soportadas por la tarjeta JPS

Las características de la tarjeta son:


5. Diagrama de bloques
6 puertos de expansión (48 pines), que dan acceso a las
patas genéricas de entrada/salida de la FPGA. El diagrama de bloques se muestra en la figura 2. El blo-
que principal lo constituye la FPGA, a la que se añade una
Zócalo para la inserción de un oscilador que genere la circuitería adicional, dividida en los siguientes bloques:
señal de reloj para los diseños síncronos.
Led y pulsador de pruebas, conectados a unos termina- Circuito de reloj, para la realización de diseños sín-
les fijos de la FPGA, para hacer pruebas de funciona- cronos. La frecuencia del oscilador empleado depende
miento, sin tener que conectar ningún circuito externo. de la aplicación de usuario.

Led de programación, conectado al terminal done, que Circuito de programación interno, constituido por
indica si la FPGA está correctamente programada. la memoria EEPROM serie y un multiplexor para que

2/6
los pines de la EEPROM sean accesibles bien desde la Docencia, en el campo de la electrónica y los lenguajes
FPGA, para su carga, o bien desde los pines del puerto de descripción hardware (HDL). Los alumnos diseñan,
de control para su programación in circuit. simulan, sintetizan y finalmente descargan el diseño
en la tarjeta entrenadora, pudiendo comprobar física-
Circuito de programación externa, que permite des- mente el correcto funcionamiento, tomando medidas
cargar bitstreams desde el PC o desde un sistema ex- y conectando circuitos externos. Por ser una placa li-
terno. bre y estar disponibles todos los esquemas y planos de
fabricación, los alumnos también pueden ampliar su
Circuito de configuración: jumper y switch para la funcionalidad, diseñándose placas a su medida (reali-
configuración de los diferentes modos de trabajo. Me- zación de prácticas especiales, proyectos fin de carre-
diante el jumper se pueden configurar el modo de tra- ra, trabajos de doctorado,etc). De la misma manera los
bajo: entrenador o autónomo. Mediante un conmuta- profesores la pueden adaptar a las necesidades de una
dor se selecciona si la memoria EEPROM se conecta a asignatura concreta.
la FPGA o al puerto de control para programarla desde
un sistema externo, sin tener que sacarla del zócalo. En el laboratorio de Estructura y Diseño de Circuitos
Digitales[8] de la Universidad Autónoma de Madrid se
Circuito de pruebas, constituido por un led y un pul- están empleando 12 placas JPS para que los alumnos
sador conectados a los pines P68 y P69 de la FPGA, puedan sintetizar sus diseños en ellas y no se queden
que permiten probar el correcto funcionamiento de la sólo en la fase de la simulación.
placa, configurando la FPGA con un diseño de prue-
bas que los use, como por ejemplo un puerta inversora
entre ellos. Conexión con microcontroladores. Puesto que pue-
de funcionar en modo autónomo, resulta muy útil para
Puertos de expansión. La placa incorpora 6 puertos
el desarrollo de periféricos para microcontroladores:
de expansión, con 8 bits de datos, configurables para
controladores de sensores, coprocesadores para hacer
entrada o salida, y dos pines para la alimentación, de
ciertas operaciones más rápidamente, etc. Además es
forma que los circuitos externos conectados se puedan
posible realizar la carga del bitstream desde el propio
alimentar directamente a través de los cables de bus.
sistema microcontrolador, posibilitando el desarrollo
Están diseñados para ser compatibles con los conecto-
de sistemas de hardware reconfigurables.
res de la tarjeta GP-BOT[5] y CT6811[3].

CONMUTADORES CIRCUITO
Robótica. Posibilidad de diseñar CPUs específicas pa-
GENERICOS DE RELOJ ra aplicaciones de robótica así como controladores pa-
ra periféricos: unidades de PWM para mover servos,
temporizadores, controladores para sensores de ultra-
PUERTOS
DE EXPANSION
sonidos, de distancia, etc.
FPGA SISTEMA
CTO. PROG EXTERNO
INTERNO

CTO DE PROG
PC
EXTERNO
CIRCUITOS 7. Hardware abierto
PRUEBAS CONFIGURACION

El software libre o de fuente abierta (Free Software, Open


Figura 2: Diagrama de bloques de la tarjeta JPS Source) se caracteriza porque permite a cualquiera copiar,
modificar y distribuir las aplicaciones, siempre acompaña-
Todos los detalles se pueden ver en el esquema de la figura das de todos los ficheros fuentes (por ejemplo la licencia
3 GPL[1]).
El hardware libre o abierto toma las mismas ideas del soft-
ware, pero aplicadas a este campo. El que la placa JPS sea
6. Campos de aplicación hardware abierto significa que se distribuye junto con to-
dos sus esquemas y ficheros necesarios para su fabricación
La tarjeta JPS se puede emplear para múltiples aplicacio- y se otorga permiso explícito para que cualquiera copie los
nes. Sin embargo, resulta especialmente útil en los siguien- esquemas, los modifique o fabrique la placa, manteniendo
tes campos: siempre esta libertad en cualquier diseño derivado.

3/6
VCC vcc
VCC Condensadores de desacoplo
Led de R6 PUERTO A PUERTO F
Power ON 680 5 4 3 2 1
CT1 CT6 6 7 8 9 10 R3 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10
4K7 100nF 100nF 100nF 100nF 100nF 100nF 100nF 100nF 100nF 100nF

1
10
9
8
7
GND 6
5
4
3
2

P84 1 0
9
8
7
GND 6
5
4
3
2
Numeracion de los
D3 Conectores de los

VCC

VCC
P10

P81
P79
P77

P78
P80
P82
P83
puertos

P9
P7
P5
P3

P4
P6
P8
CARGA/#GRABACION
CONFIG_2 vcc
CONFIG_1 U2 AT17C128 vcc
CONFIG_0
VCC 2 1Y 4 DATA 1 VCC 8
1A DATA
3

8
7
6
5
1B
S3

11
10

84
83
82
81
80
79
78
77
76
75
ON 5 7 2 7
Jack Hembra U1

9
8
7
6
5
4
3
2
1
2A 2Y CLK #SER_EN
CCLK 6
2B
1 GND 11 3Y 9 3 6
RESET/#OE #CEO

IO-PGCK4-A1
IO-A11
3A

IO-A9
IO-A8

IO-A7
IO-A6
IO-A5
IO-A4
IO-A3
IO-A2

IO-A0
IO-SGCK1-A15
IO-A14
IO-A13
IO-A12

IO-A10

GND

GND
TDO-O
VCC

VCC
+5v
2 1 2 3 4 INIT 10
3B R5

1
2
3
4
3 14 4Y 12 4 GND 5
4A CE# 4k7
VCC DONE 13
4B
vcc VCC 16
1
S
+ 1 15 GND 8
E
12 VCC 74
GND
13 CCLK 73 CCLK 74157"
IO-PCGK1-A16
- 2 14 IO-SGCK4-DOUT 72 RELOJ
IO-A17
15 IO-D0-DIN 71 DATA
IO-TDI
16 IO-RCLK 70 CONFIG_2 DATA 1
Figura 3: Esquema de la placa JPS

IO-TCK
CLEMA1 17 69 TEST_IN DONE 2 CT7
IO-TMS IO-D1
18 68 TEST_OUT CCLK 3

XILINX
IO IO
ALIMENTACION 19 67 4

CONTROL
IO IO-D2 CONFIG_1 RESET#/OE
+5V 20 IO 66 CONFIG_0 VCC 5
IO
21 IO-D3 65 GND 6
GND
22 XC4000EPC84" GND 64 SCLK 7
VCC
23 XCS10 VCC 63 CE# 8
IO
CT2 24 XCS05 IO 62 VCC 9
IO
1 P25 25 IO-D4 61 vcc 10
IO OSC1
2 P23 26 IO 60 vcc
IO
4/6

3 P19 27 IO-D5 59
IO
PUERTO B

4 P14 28 IO-D6 58 R4 RELOJ 8 VCC 14 RST 8


IO OSC
5 VCC 29 57 4K7 7 INIT 7 CT8
IO-SGCK2 IO-PGCK3 GND
6 GND 30 IO-D7 56 PROG 6
O-M1 R2 R1

Download cable
7 P13 31 PROGRAM 55 PROG OSCILADOR" DATA 5
GND 680 680
8 P18 32 VCC 54 DONE 4
I-M0
IO-PGCK2

IO-SGCK3
9 P20 PROG CCLK 3
IO-HDC
IO-LDC

IO-INIT

10 P24 2

DONE
GND
D1 D2
GND

GND
VCC

VCC

1
I-M2

3
4

3
4
VCC
IO
IO
IO

IO
IO
IO
IO
IO
IO
IO
S2 S1

1
2

2
S1: Pulsador de programacion
41

51
33
34
35
36
37
38
39
40

42
43
44
45
46
47
48
49
50

52
53
DONE S2: Pulsador de TEST
D1: Led de programacion
D2: Led de TEST
INIT

JP1
Sergio Lopez Buedo Tarjeta entrenadora para FPGA
Pablo Haya Version PRO
Juan Gonzalez
GND

GND

GND
VCC

VCC

VCC
P39
P38
P29
P27

P26
P28
P35
P40

P49
P50
P48
P46

P44
P45
P47
P51

P62
P60
P58
P56

P57
P59
P61
P65
10

10

10
Configuracion del
1
2
3
4
5
6
7
8
9

1
2
3
4
5
6
7
8
9

1
2
3
4
5
6
7
8
9

modo de carga

ON: EEPROM PUERTO D PUERTO E 1.0-pro


OFF: PC PUERTO C
CT3 CT4 CT5
Diseño CLBs ocupados
Algoritmo de criptografía RSA
Clave de 8 bits 96 (49 %)
Clave de 16 bits 164 (84 %)
Algoritmo de compresión LZ 122 (82 %)
Reloj digital 113 (58 %)

Cuadro 3: Otros diseños sintetizados

sus necesidades, o reutiliza o modifica los diseños ya


existentes. En robótica, es muy común emplear un mi-
crocontrolador u otro en función de los periféricos que
traiga integrados, y es muy común que sólo se utili-
cen unos pocos de ellos. En un sistema que incorpo-
Figura 4: Robot de docencia, que lleva una CPU diseñada ren FPGAs, es el diseñador el que implemente sólo los
en VHDL y sintetizada en la placa JPS controladores necesarios. Se abren nuevas posibilida-
des de diseño, como por ejemplo el crear una CPU es-
pecífica para una aplicación determinada junto con sus
8. Un ejemplo de uso: robot de do- propios controladores de periféricos.
cencia Acortamiento del ciclo de diseño. El modelo de di-
seño hardware basado en HDL contiene muchas de las
En el laboratorio de Arquitectura e Ingeniería de Compu- ventajas del diseño software. El circuito es ahora un
tadores los alumnos trabajan en el estudio y diseño de una fichero de texto, que se puede editar, simular, modifi-
CPU de docencia, de tipo RISC, de 16 bits, con una arqui- car y finalmente sintetizar. Se pueden crear reposito-
tectura Harvard y un total de 8 instrucciones. Esta CPU ha rios hardware, con colecciones de diseños ya proba-
sido implementada en VHDL y sintetizada en una FPGA de dos: controladores de VGA, UARTs, temporizadores,
tipo Spartan I (XCS10). CPUs, etc. El diseñador puede crear prototipos muy
Una de las aplicaciones realizadas ha sido el robot de do- rápidamente, probarlos, medirlos y modificarlos.
cencia, mostrado en la figura 4, programado para seguir una
Flexibilidad. Con el mismo hardware físico, consegui-
línea negra sobre un fondo blanco. Los resultados de sinte-
mos tener hardware con comportamientos diferentes.
tizar la CPU junto con la memoria que contiene el programa
En la misma placa JPS, ahora podemos tener sinteti-
se muestran en la tabla 2.
zada una CPU, y más adelante podemos probar una
Número de CLBs 147 (75 %) UART.
Máxima frecuencia 12MHZ Posibilidad de pasar algoritmos al hardware: En los
diseños mixtos microcontrolador/FPGA se puede op-
Cuadro 2: Resultados de la síntesis de la CPU del robot de tar por implementar una solución hardware frente a
docencia uno puramente software, consiguiéndose una mayor
velocidad. Por ejemplo la implementación de algorit-
El programa del robot sigue líneas ocupa en total 56 bytes y mos de cifrado. En un microcontrolador de 8 bits esto
la FPGA se encuentra al 75 % de ocupación. Otros ejemplos sería un proceso lento, pero se convierte en viable si se
de aplicaciones se muestra en la tabla 3. añade un hardware que haga el cifrado.
Diseños hardware libres. Posibilidad de realizar di-
seños hardware libres que se compartan dentro de la
9. Ventajas e inconvenientes comunidad hardware y que cualquier diseñador pue-
da utilizarlos, modificarlos y distribuir las modifica-
Las ventajas de la tarjeta JPS frente a los tradicionales sis- ciones. Esto es especialmente útil en el campo de la
temas basados en microcontroladores son las que se derivan docencia y la investigación. Esto se potencia si el hard-
de la utilización de las FPGAs: ware físico en el que se prueban los diseños es también
libre, como es el caso de la placa JPS. Desaparece la
Hardware a la medida. El diseñador no tiene que bus- dependencia con el fabricante de la placa y cada Uni-
car los productos del mercado que mejor se adapten versidad o diseñador puede fabricarse las placas que
a sus diseños, sino que se los diseña a la medida de considere necesarias.

5/6
Este tipo de arquitecturas presenta también una serie de in- [7] Empresa Xilinx, fabricante de FPGAs.
convenientes: http://www.xilinx.com

Mayor precio. Una FPGA en comparación con un [8] Estructura y Diseño de Circuitos Digitales.
microcontrolador es mucho más cara. En concreto, la www.ii.uam.es/~ivan/temario.htm
FPGA utilizada en el robot de docencia cuesta 24 euros [9] Sven E. Wahlstrom. Programmable Logic Arrays –
frente a los 5 euros (precios en el 2003) que costaría tí- Cheaper by the Millions Electronics, 40(25), pp. 90-
picamente un microcontrolador de 8 bits en el que se 95, December 11, 1967.
puede implementar fácilmente el mismo algoritmo de
seguir la línea. [10] Oldfield J. and Dorf R. , "Field-Programmable Gate
Arrays. Reconfigurable Logic for Rapid Prototyping
Entornos de desarrollo propietarios, con licencias and Implementation of Digital Sistems", John Wiley
altas. Para realizar la síntesis del hardware hay que & Son. 1995.
utilizar las herramientas del fabricante de las FPGA,
que son caras y al día de hoy no existen alternativas [11] Trimberger S., "Field-Programmable Gate Arrays
libres. Technology", ", Boston: Kluwer Academic
Publishers, 1995.

10. Conclusiones
Se ha diseñado una placa pequeña, sencilla y libre, para
que los estudiantes puedan construir prototipos utilizando
FPGA’s. En la Universidad Autónoma de Madrid se es-
tá empleando en el laboratorio de Estructura y Diseño de
Circuitos Digitales y en el de Arquitectura e Ingeniería de
Computadores. Con esta placa se ha construido un prototipo
de un robot seguidor de línea (robot de docencia) que en vez
de un microcontrolador clásico utiliza una CPU diseñada en
VHDL y sintetizada en una FPGA.

Referencias
[1] Licencia pública GNU. Traducción al castellano.
http://gugs.sindominio.net/gnu-gpl/gples.html
[2] OpenCores. Repositorio de diseños hardware, descri-
tos en lenguajes HDL, para ser sintetizados en FPGAs.
http://www.opencores.org.
[3] Tarjeta CT6811, basada en el microcontrolador
68hc11.
http://www.iearobotics.com/proyectos/ct6811/ct6811.html

[4] Tarjeta JPS.


http://www.iearobotics.com/personal/juan/doctorado/jps-
xpc84/jps-xpc84.html

[5] Tarjeta GP-BOT, basada en el microcontrolador


68hc908GP32.
http://www.ii.uam.es/~gdrivera/robotica/gp_bot/gp_bot.htm

[6] G. González de Rivera, S. López-Buedo, I. González,


C. Venegas, J. Garrido y E. Boemo, “GP_BOT: Pla-
taforma Hardware para la enseñanza de Robótica en
Ingeniería Informática".TAEE’02. Pp 67-70. Univer-
sidad de las Palmas de Gran Canaria, España. Febrero
de 2002.

6/6

Das könnte Ihnen auch gefallen