S3Proto-mini: Tarjeta de Hardware Libre con FPGA de encapsulado BGA
Diego Brengi, Salvador Tropea, Matías Parra Visentin, Christian Huy, Rodrigo Melo Instituto Nacional de Tecnología Industrial Centro de Electrónica e Informática
Laboratorio de Desarrollo Electrónico con Software Libre Buenos Aires, Argentina. Email: {brengi,salvador}@inti.gob.ar
Resumen—Este trabajo presenta el desarrollo de una tarjeta con FPGA, brindada como hardware libre para aplicación en educación y desarrollo de prototipos. Se comentan las etapas de planificación, diseño, manufactura y testeo. La tarjeta está compuesta por un circuito impreso de cuatro capas y una FPGA con encapsulado BGA. Las etapas de soldadura del BGA y posterior inspección se realizaron en el laboratorio, habiéndose construido exitosamente 3 prototipos. Actualmente se trabaja en el diseño de un módulo opcional de entradas y salidas para prácticas educativas y en una segunda versión, más compleja, con capacidad para correr un sistema embebido GNU/Linux.
I. INTRODUCCIÓN
El proyecto FPGALibre[1][2], impulsado por el INTI, busca desarrollar y brindar herramientas de software libre y diseños de hardware abierto y libre[3][4] para trabajar con tecnologías FPGA1.
Una de sus líneas de trabajo busca como objetivo final el crear una plataforma FPGA que pueda alojar un diseño con un procesador LEON[5][6] y un sistema GNU/Linux[7] embebido[8]. Se presenta en este trabajo el desarrollo de una versión inicial e intermedia, que no cumple completamente estos objetivos, pero permite abordar las tecnologías necesarias para lograrlos.
II. OBJETIVOS DEL PROYECTO
Para comprender los criterios adoptados y las tecnologías seleccionadas es necesario conocer primero los objetivos del proyecto:
Se desea un grado alto de independencia tecnológica en cuanto a las herramientas y componentes utilizados (hardware y software) por lo que se busca, siempre que sea posible, utilizar software y hardware libre. Uno de los objetivos es la difusión de las tecnologías utilizadas. Atendiendo a los objetivos anteriores, se desea resolver dentro del país la mayor cantidad de tareas, intentar reducir los costos finales de fabricación y realizar la experiencia de forma tal que pueda ser documentada y replicada por otros grupos de trabajo. Se brindarán los diseños como Hardware Libre una vez terminado, usando la misma metodología empleada con la tarjeta s2proto[9].
III. CRITERIOS DE SELECCIÓN
III-A. Marca y familia del dispositivo FPGA
Se abordó el diseño con dispositivos de Xilinx debido a la experiencia previa del grupo de trabajo con las herramientas de síntesis, place & route y tarjetas de desarrollo disponibles con FPGAs de esta empresa. Se tomaron en cuenta las familias Spartan 3 y Spartan 3E por ser las de menor costo que podían cumplir los requerimientos, al momento de la selección.
III-B. Dispositivo FPGA seleccionado
Se realizaron estimaciones sintetizando algunos diseños de la Grlib (Procesador Sparc LEON y periféricos asociados como Ethernet, PCI, VGA, etc.). Estas pruebas arrojaron como resultado que, para poder implementar un sistema con suficiente espacio para experimentar y desarrollar, es conveniente disponer de por lo menos 17600 LUT4s (u 8800 slices de Xilinx). De las familias seleccionadas, solamente los dispositivos XC3S1600E y XC3S1500 (o superior) cumplían con esta cantidad de recursos lógicos.
Eligiendo la alternativa de menor costo, se seleccionó como componente central una FPGA Spartan 3E, modelo XC3S1600E-FGG320.
III-C. Encapsulado del dispositivo FPGA
Las capacidades necesarias en la FPGA definen en gran parte el encapsulado a utilizar, ya que los fabricantes mantienen una relación entre recursos lógicos y pines de E/S en los modelos ofrecidos al público. Para nuestro caso, se hace casi obligatorio trabajar con encapsulados BGA2 debido a que el encapsulado más simple en el que se presentan los dispositivos con esta cantidad de recursos es el FG/FGG 320. Este encapsulado BGA posee 320 terminales sin plomo. Es del tipo fine-pitch, con espaciado de 1mm entre los centros de cada bolita, y diámetro de las mismas entre 0,5 mm y 0,7 mm, organizadas en una matriz de 18 x 18 terminales, quitando los cuatro centrales. El chip ocupa un área de 19 x 19 mm.
El uso de este encapsulado obliga también a utilizar un circuito impreso multicapa, dado que de otra forma se hace imposible interconectar adecuadamente el sector del BGA donde el espacio es poco y el número de pads y conexiones a realizar es alto.
1Field Programmable Gate Array.
2Ball Grid Array.
Figura 1. Vista superior de la tarjeta S3Proto-mini.
Figura 2. Diagrama en bloques de los recursos de la tarjeta S3Proto-mini.
IV. CIRCUITO DESARROLLADO
Para abordar el desafío que presenta la tecnología BGA, como un paso intermedio, se realizó el diseño de una tarjeta con menores capacidades que las necesarias para implementar un sistema con GNU/Linux embebido, pero sí utilizando el chip FPGA del sistema final en un circuito impreso multicapa. Este primer prototipo se denomina “S3Proto-mini” (ver Fig.1).
IV-A. Circuito Impreso
El diseño del circuito impreso se realizó con el software KICAD[10], una herramienta de software libre[11] con licencia GPL. Se utilizaron cuatro capas para interconectar la red de alimentación y las señales necesarias para esta aplicación.
La separación mínima utilizada fue de 4 mil (milésima de pulgada) en unos pocos puntos debajo del BGA.
El trazado de las pistas se realizó manualmente y el circuito total resultante posee un área de 7x7 cm.
IV-B. Características generales
En resumen, la tarjeta desarrollada posee (ver diagrama de la Fig.2):
Dispositivo FPGA Xilinx Spartan 3E (XC3S1600E) de 29504 LUT4s. 2 Memorias de configuración XCF04S (4+4 Mbit). Transceptor USB TUSB1106 de 12 Mb/s (full Speed) con conector tipo B. 2 Puertos seriales RS232 de hasta 300 Kbps (ST3232). Uno con conector DB-9. 4 Pulsadores. 5 dip switch. 4 LEDs. 26 Pines de I/O y un Puerto JTAG. Oscilador con zócalo. Alimentación simple de 5V.
Figura 3. Módulo de alimentación S3Power.
Dimensiones de 7x7 cm.
IV-C. Módulo de alimentación La fuente de alimentación se realiza con un módulo sepa-
rado llamado S3-Power (ver Fig.3), diseñado específicamente para este proyecto[12] y que puede ser utilizado para cualquier otro diseño de las familias Spartan 3 y Spartan 3E. El módulo está basado en el chip TPS75003 y sigue los mismos criterios que la tarjeta S3Proto-mini en cuanto a herramientas utilizadas y facilidad de construcción. Se trata de un impreso doble faz, de 3x5 cm, que se acopla a la parte posterior de la S3Protomini para proveerla de las siguientes tensiones y corrientes máximas:
1,25 V / 2,5 A (Vcore) 3,3 V / 2,5 A (Vcco) 2,4 V / 200 mA (Vaux)
V. FABRICACIÓN DE LOS PROTOTIPOS
V-A. Fabricación del circuito impreso Por los criterios de proyecto mencionados anteriormente, la
fabricación del circuito impreso fue encargada a una empresa nacional que realizó todo el proceso de manufactura en el
país, llegando al límite de las capacidades actuales en cuanto a tolerancias y distancias mínimas, especialmente para la distancia entre vías y pads en la zona del BGA.
También se solicitó acabado superficial de níquel oro electrolítico, para obtener pads lo más planos posibles, que no interfieran con el posicionamiento y la soldadura del BGA, ya que el proceso tradicional HASL3 no está recomendado para estos casos.
V-B. Soldadura del BGA
La soldadura del dispositivo BGA se realizó en el laboratorio[13], siguiendo las recomendaciones de la norma JEDEC J-STD-020D.1, con una estación de soldadura por infrarrojos Modelo Jovy RE-7500, con mesa XY para sujeción del circuito impreso. Además se utilizó un registrador de temperatura para medir el perfil aplicado y luego analizarlo.
Luego de la soldadura del BGA se montaron el resto de los componentes en forma tradicional.
V-C. Verificación, prueba y puesta en marcha
Se realizaron varias verificaciones antes de la puesta en marcha. En primer lugar se analiza el perfil de temperatura aplicada durante el proceso de soldadura. También se tomaron placas radiográficas para observar la soldadura del BGA (ver Fig.4) y se observó lateralmente el chip con un microscopio digital de propósitos generales, para comprobar que la hilera exterior del BGA estuviera correctamente soldada (observando el brillo y la forma de las bolitas).
Luego se realizó la puesta en marcha (energizar el circuito), utilizando el GNU JTAG[14] para comandar pines y leer las entradas de la FPGA .
Finalmente se grabó una configuración de prueba demostrativa para verificar el correcto funcionamiento del prototipo.
VI. TRABAJO FUTURO
VI-A. Módulo de prácticas
Se está trabajando en el diseño de un módulo para realizar prácticas educativas (ver Fig.5) que se acople a las entradas y salidas de la S3Proto-mini. Este módulo poseerá las siguientes características:
3 displays de 7 segmentos. Conector para dispositivos PS/2. Encoder rotativo incremental (para control manual). Salida VGA utilizando un conversor D/A tipo R2R de dos bits por cada señal de color.
VI-B. Tarjeta S3Proto-full
Por otra parte, se está trabajando en la versión “full” de la S3Proto, con capacidad para alojar un procesador LEON3 corriendo un sistema operativo GNU/Linux. Para esto, la tarjeta debe tener memoria flash, memoria RAM, RAM DAC y Ethernet, entre otras cosas. Actualmente se están finalizando los diseños esquemáticos.
Una vez desarrollada la plataforma final se podrán realizar aplicaciones modelos y dictado de cursos asociados al procesador LEON3.
3Hot Air Solder Leveling
Figura 4. Radiografía en la zona del encapsulado BGA.
Figura 5. Módulo de prácticas en actual desarrollo.
VII. RESULTADOS Y CONCLUSIONES Durante este desarrollo se ha aprendido sobre la utilización de un dispositivo BGA, comenzando con la etapa de diseño del circuito impreso, pasando por la soldadura del mismo y terminando con la verificación y puesta en marcha. Recorrer este proceso brinda una visión más amplia sobre el trabajo con encapsulados BGA y circuitos multicapa, a la vez que ayuda a mejorar los criterios de diseño. Actualmente ya se han fabricado exitosamente tres prototipos para uso interno. Todos los archivos de diseño y la información técnica para replicar la experiencia se ha publicado en la página web del proyecto FPGALibre, bajo una licencia GPL[15], siguiendo el concepto de hardware libre, que permite su uso en cualquier aplicación y con cualquier propósito. Se estima un costo, por tarjeta armada, entre 150 y 200 USD, incluyendo el módulo
de alimentación. Este costo es muy variable ya que depende de la cantidad de componentes que se deba importar y del tamaño de lote que se piense fabricar.
Se han presentado varios grupos interesados en obtener la tarjeta, y dos alumnos de la Universidad Tecnológica Nacional de Córdoba han comenzado a construirla para utilizarla en sus respectivas tesis finales.
Esta tarjeta resulta interesante para cualquiera con interés en abordar la tecnología FPGA, el diseño y la fabricación de hardware, manejo de encapsulados BGA y diseño de circuitos impresos multicapa.
VIII. AGRADECIMIENTOS
Se agradece a J. P. Laurino de la empresa Inarci S.A. por la buena atención recibida, a S. Guberman de la firma Electrocomponentes S.A. por la asistencia inicial en la temática de soldadura BGA, y especialmente a William Crease de INTIMecánica por las imágenes radiográficas.
REFERENCIAS
[1] INTI Electrónica e Informática et al., “Proyecto FPGA Libre,” http: //fpgalibre.sourceforge.net/.
[2] S. E. Tropea, D. J. Brengi, and J. P. D. Borgna, “FPGAlibre: Herramientas de software libre para diseño con FPGAs,” in FPGA Based Systems. Mar del Plata: Surlabs Project, II SPL, 2006, pp. 173–180.
[3] I. González, J. González, and F. Gómez-Arribas, “"hardware libre: clasificación y desarrollo de hardware reconfigurable en entornos gnu/linux",” http://www.iearobotics.com/personal/juan/publicaciones/ art4/hardware-libre.pdf.
[4] Opencollector.org, “"writings on open source hardware",” http://www. opencollector.org/Whyfree/.
[5] Aeroflex Gaisler. LEON processor & Grlib IP-core library. [Online]. Available: http://www.gaisler.com/
[6] J. Gaisler, “An open-source VHDL IP library with plug&play configuration,” in IFIP Congress Topical Sessions, R. Jacquart, Ed. Kluwer, 2004, pp. 711–718.
[7] “GNU project,” http://www.gnu.org/, Jun. 2010. [8] A. Muñoz, E. Ostua, M. J. Bellido, A. Millan, J. Juan, and D. Guerrero,
“Building a SoC for industrial applications based on LEON microprocessor and a GNU/Linux distribution,” in 2008 IEEE International Symposium on Industrial Electronics (ISIE). IEEE, 2008, pp. 1727– 1732. [9] D. J. Brengi, S. E. Tropea, and J. P. D. Borgna, “Tarjeta de diseño abierto para desarrollo y educación,” in 2007 3rd Southern Conference on Programmable Logic Designer Forum Proceedings, Mar del Plata, 2007, pp. 57–60. [10] J.-P. Charras, “"Kicad: GPL PCB Suite",” http://www.lis.inpg.fr/realise\_ au\_lis/kicad. [11] Free Software Foundation, Inc., “"The Free Software Definition",” http: //www.gnu.org/philosophy/free-sw.html. [12] C. Huy and D. Brengi, “Módulo de alimentación para placas con dispositivos FPGA,” in Congreso de Microelectrónica Aplicada, uEA2010. San Justo, Buenos Aires: Universidad Nacional de La Matanza, 2010, p. 21. [Online]. Available: http://utic.inti.gob.ar/ publicaciones/uEA2010/uea2010\_submission\_49.pdf [13] D. Brengi, S. Tropea, M. P. Visentin, and C. Huy, “Soldadura, inspección y verificación, en laboratorio, de un prototipo con chip BGA,” in II Congreso de Microelectrónica Aplicada, uEA2011: Libro de memorias. La Plata, Buenos Aires: Universidad Nacional de La Plata, 2011, pp. 95–100. [Online]. Available: http://utic.inti.gob.ar/ publicaciones/uEA2011/bgaS3.pdf [14] (2003, Oct.) Openwince GNU JTAG Tools. [Online]. Available: http://openwince.sourceforge.net/jtag/ [15] Free Software Foundation, Inc., “GNU General Public License,” http: //www.gnu.org/copyleft/gpl.html.
Ver+/-