Está en la página 1de 11

Actas de las

VII Jornadas de Computacin


Reconfigurable y Aplicaciones
JCRA 2007

Gustavo Sutter
Sergio Cuenca Asensi
Miguel ngel Vega-Rodrguez
Eduardo Boemo
(Editores)


Zaragoza, Espaa
12-14 de septiembre 2007



ACTAS DE LAS VII JORNADAS DE COMPUTACIN RECONFIGURABLE Y
APLICACIONES (JCRA 2007)
No est permitida la reproduccin total o parcial de este libro, ni su tratamiento
informtico, ni la transmisin de ninguna forma o por cualquier otro medio, ya sea
electrnico, mecnico, por fotocopia, por registro u otros medios, sin el permiso previo y
por escrito de los titulares del Copyright.
Derechos reservados 2007 respecto a la primera edicin en espaol, por LOS AUTORES
Derechos reservados 2007International Thomson Editores Spain, S.A.
Magallanes, 25; 28015 Madrid, ESPAA
Telfono 91 4463350
Fax: 91 4456218
clientes@paraninfo.es
ISBN: 978-84-9732-600-1
Depsito legal: M-
Maquetacin: Los Editores
Coordinacin del proyecto: @LIBROT
E
X
Portada: Estudio Dixi
Impresin y encuademacin: FER Fotocomposicin, S. A.
IMPRESO EN ESPAA-PRINTED IN SPAIN
x
Sistema de compresin de la seal de fonocardiograma ..................................... 43
F. Javier Toledo (Univ. Politcnica de Cartagena), Antonio Legaz (Univ.
Politcnica de Cartagena), J. Javier Martnez (Univ. Politcnica de
Cartagena), Juan Martnez (Univ. Politcnica de Cartagena), Ramn Ruiz
(Univ. Politcnica de Cartagena)
Implementacin de algoritmos multiplicativos para el clculo de la divisin
en FPGAs Virtex-4 y Virtex-5 de Xilinx ............................................................ 51
Roberto Gutirrez (Univ. Miguel Hernndez), Javier Valls (Univ.
Politcnica de Valencia)
Implementation of two Greatest Common Divisor algorithms on FPGA ........... 59
Pablo Costi (Univ. Politcnica de Valencia), Roberto Gutirrez (Univ.
Miguel Hernndez)
Captulo 3: Arquitecturas SoC/NoC
Exploracin del espacio de diseo en sistemas CSoC mediante modelos
TLM ..................................................................................................................... 69
Ral Mateos (Univ. Alcal), Jos L. Lzaro (Univ. Alcal), Ignacio Bravo
(Univ. Alcal)
Reubicacin y comunicacin entre tareas en un sistema hardware de
propsito general ................................................................................................. 77
ngel L. Gonzlez (Univ. Complutense de Madrid), Hortensia Mecha
(Univ. Complutense de Madrid), Daniel Mozos (Univ. Complutense de
Madrid), Julio Septin (Univ. Complutense de Madrid)
Un Ejemplo de Implantacin de una Distribucin Linux en un SoC Basado
en Hardware Libre ............................................................................................... 85
Alejandro Muoz (Univ. Sevilla), Enrique Ostua (Univ. Sevilla), Paulino
Ruiz-de-Clavijo (Univ. Sevilla), Manuel J. Bellido (Univ. Sevilla),
Alejandro Milln (Univ. Sevilla), Julin Viejo (Univ. Sevilla), Jorge Juan
(Univ. Sevilla), David Guerrero (Univ. Sevilla)
Implementacin eficiente de sistemas GALS sobre FPGAs ............................... 93
Javier D. Garca (Univ. Pblica de Navarra)
Un Ejemplo de Implantacin de una Distribucin Linux en un
SoC basado en Hardware Libre.
Alejandro Muoz Rivera, Enrique Ostua Arangena, Paulino Ruiz de Clavijo
Vazquez, Manuel J. Bellido Diaz, Julian Viejo Corts, Alejandro Millan Calderon,
Jorge Juan Chico y David Guerrero Martos
Dept. de Tecnologia Electronica
ETS Ingenieria InIormatica
Univ. de Sevilla
41012 Avda. Reina Mercedes, Sevilla
amrivera,ostua,paulino,bellido,julian,amillan,jjchico,guerre}dte.us.es



Resumen

Se presenta un mtodo de implantacion de de una
distribucion Linux sobre un System on Chip
(SoC) basado en hardware libre. En el ejemplo
presentado en este trabajo se ha empleado el
microprocesador Leon 3 y diversos periIricos
que Iorman parte de la libreria de IP cores de
codigo abierto GRLIB, constituyendo un SoC
implementado sobre una FPGA.
Sobre este sistema se ha elaborado un mtodo
que nos ha permitido implantar una distribucion
genrica de Linux, como es la distribucion Debian
3.1 (sarge), lo que permite dotar al SoC de
inIinidad de soItware (aplicaciones, librerias, etc.)
convirtindose asi un entorno de desarrollo
completo y extremadamente versatil.

1. Introduccin
El continuo desarrollo de la tecnologia de
Iabricacion de circuitos integrados lleva a un
incremento de la densidad de integracion asi como
a una mejora de velocidad de operacion de los
sistemas electronicos. En el caso de los sistemas
digitales, este avance da lugar a una mejora muy
signiIicativa en el rendimiento mientras que se
reduce drasticamente el tamao del sistema. Sin
embargo, la metodologia de diseo tambin
incrementa su complejidad de Iorma que los
diseadores tienen que considerar aspectos que
hasta ese momento no eran necesarios. Asi dos
problemas principales aparecen: por una parte, el
incremento de velocidad y densidad de
dispositivos lleva aparejado un incremento del
consumo de potencia y, por consiguiente,
incremento trmico del sistema lo que puede
provocar un Iallo hardware; por otra parte, el
aumento en la densidad de integracion implica que
el sistema diseado aumenta su complejidad, lo
que implica que es necesario deIinir una buena
metodologia de diseo e implementacion para
poder manejar eIicientemente la complejidad de
los sistemas digitales.
Una de las metodologias mas extendidas hoy
en dia es la denominada System on Chip (SoC
design). La idea basica consiste en emplear las
posibilidades actuales de integracion no tanto para
disear sistemas mas complejos en si (como
podrian ser los nuevos microprocesadores que
sacan al mercado las compaias INTEL o AMD)
sino mas bien, en implementar dentro de un
mismo chip la mayor parte posible de los bloques
que constituyen un sistema completo. Con esto se
consigue reducir signiIicativamente el espacio que
ocupan, lo que permite que estos sistemas puedan
emplearse en multitud de nuevas aplicaciones en
las que sean necesarias tanto la movilidad como
un tamao reducido.
Casi el 100 de los sistemas digitales tipo
SoC se construyen alrededor de un
microprocesador que actua como unidad de
control de todo el sistema. La seleccion del
microprocesador condiciona Iuertemente el
rendimiento y las caracteristicas principales del
sistema. Es muy importante considerar que la
mayoria de las aplicaciones de este sistema no
requieren una alta capacidad de computacion sino,
principalmente, una buena Iiabilidad asi como
una reduccion del consumo de potencia lo que
signiIica que los microprocesadores que van a
85


utilizarse en este tipo de sistemas no necesitan ser
de una excesiva complejidad. Hay varios
microprocesadores que viene siendo usados de
Iorma habitual en el diseo de SoC, tanto cores
comerciales, esto es, que requieren la adquisicion
de una licencia para su uso, como por ejemplo el
ARM |3|, PowerPC |7|, NIOS3 |1|, MicroBlaze
|13| y otros; asi como cores libres o de codigo
abierto como LEON |6|, OpenRisc |8|, o MICO32
|9|. Mientras que los microprocesadores
comerciales estan generalmente bien testados y
optimizados, los sistemas de codigo abierto
proveen otras ventajas que pueden resultar de gran
inters. Asi, nuestro grupo de investigacion lleva
algunos aos trabajando con microprocesadores
de codigo abierto intentando explotar estas
ventajas que supone el libre acceso a los mismos.
El trabajo que presentamos en este articulo es
parte del los ultimos desarrollos del grupo en el
diseo de SoC para aplicaciones empotradas. En
concreto se ha conIigurado una metodologia de
desarrollo de aplicaciones de SoC basada en el
microprocesador LEON mencionado
anteriormente sobre el que se ha implantado, no
solo el sistema operativo LINUX, sino toda una
distribucion completa como es la Debian 3.1
(Sarge) |4| sobre una placa de desarrollo con una
FPGA de la Iamilia Spartan-3 de XILINX |14|.
En este ejemplo se ha utilizado el
microprocesador LEON por ser uno de los cores
abiertos mas desarrollados hasta la Iecha y con un
potente entorno de desarrollo soItware. El
implantar sobre este microprocesador una
distribucion como la Debian dota al sistema de
una enorme versatilidad en las aplicaciones que
pueden ser desarrolladas tanto porque se dispone
de una enorme cantidad de soItware operativo y
de Iacil instalacion (mecanismo propio de la
distribucion Debian) asi como por la
disponibilidad de innumerables librerias que
Iacilitan el desarrollo de cualquier soItware
necesario para completar la aplicacion que
pretenda desarrollarse.
Asi, el resto del trabajo esta organizado como
sigue: en el siguiente apartado se va a presentar la
arquitectura hardware/soItware del sistema; en el
tercer apartado se muestra una descripcion
detallada de las caracteristicas principales del
hardware implementado (tanto para placa de
desarrollo como para el System on Chip
implementado); el cuarto apartado esta dedicado a
presentar las caracteristicas principales del
soItware del sistema y el proceso seguido para la
implantacion tanto del sistema operativo LINUX
como de la distribucion Debian completa. Por
ultimo, se presentan las conclusiones mas
signiIicativas del trabajo.

2. Arquitectura Hardware/software del
sistema
La Iigura 1 presenta la estructura general
hardware/soItware que constituira el sistema
digital desarrollado.
Development Board
MicroProcessor
Peripheral
Controller
Operating System
S
O
F
T
W
A
R
E
H
A
R
D
W
A
R
E
FPGA
LEON3
Devices
Linux
Own
Apps
Application Application Application
Peripheral
Controller
Peripheral
Controller
Drivers
Peripheral
Module
Peripheral
Module
Peripheral
Module

Figura 1. Estructura Hardware/soItware del sistema
En ella se muestra una estructura en niveles
donde en la base se encuentra la placa de
desarrollo con dispositivos logicos programables
del tipo FPGA, la cual incluye ademas diversos
periIricos y memorias para realizar la tarea de
desarrollado y testeo de una Iorma eIectiva. En
esa FPGA se implementara un microprocesador
soIt-core, concretamente LEON3, el cual contara
con una serie de controladores para los periIricos
que se desean utilizar segun la aplicacion deseada.
LEON3 es un microprocesador de 32 bits que
implementa una arquitectura RISC conIorme a la
deIinicion de SPARC v8 |12|. Es un IP core
sintetizable escrito en VHDL y puede ser
implementado tanto en FPGA como en ASIC (una
Captulo 3: Arquitecturas SoC/NoC
86


gran ventaja Irente a otros microprocesadores
como MicroBlace o NIOS en los que su codigo
Iuente no esta disponible). Se distribuye bajo
licencia GNU GPL y es, por tanto, un codigo
abierto.
Desde el punto de vista Iuncional, posee
registros internos de 32 bits, 72 instrucciones con
3 Iormatos de instruccion y 3 modos de
direccionamiento (inmediato indexado y con
desplazamiento). Implementa multiplicacion con
signo y sin signo, division y operaciones MAC.
Tiene un pipeline de 7 etapas e implementa la
arquitectura Hardvard (cach de datos e
instrucciones separadas) tal y como se observa en
la Figura 2.


Figura 2. Diagrama de bloques Leon3
En el nivel soItware de nuestro sistema
podemos observar que el microprocesador correra
un sistema operativo de codigo abierto,
GNU/Linux, cuyo nucleo (el kernel) ha sido
compilado para dicha arquitectura, incluyendo los
correspondientes drivers de control necesarios
para el manejo del hardware. Por ultimo, las
aplicaciones Iinales haran uso de los servicios que
el nucleo del sistema operativo Linux les oIrece.
El adoptar este esquema de niveles con el
sistema operativo Linux entre ambas capas nos
permite obviar los detalles del hardware concreto
en el Ilujo de diseo del soItware. Ademas la
eleccion concreta de Linux nos Iacilita en gran
medida el desarrollo. Al estar disponibles tanto el
nucleo como gran multitud de herramientas para
diversas arquitecturas hardware y gracias su alto
grado de portabilidad, nos permite desarrollar
soItware en estaciones de trabajos independientes
del sistema.
A continuacion, se presenta en mayor detalle
el hardware utilizado.
3. Sistema Hardware
Para la implementacion del SoC basado en
hardware libre, se ha utilizado una FPGA de 1`5
millones de puertas, Xilinx Spartan3 XC3S1500,
montada en una placa de desarrollo de Pender
Electronic Design |10|, concretamente el modelo
GR-XC3S-1500 LEON Development board
(Iigura 3), especialmente pensada para el
desarrollo de sistemas basados en Leon 2 o Leon
3/GRLIB.

Figura 3. Placa de desarrollo GR-XC3S-1500
La inclusion de memoria volatil (64 Mbytes
de SDRAM) y memoria no volatil (8 Mbytes de
FLASH), junto a interIaces de comunicaciones
serie, PS2, Ethernet, USB e incluso VGA, asi
como (diodos LED, interruptores, pulsadores,
etctera) convierten a esta placa en una excelente
opcion para el desarrollo y evaluacion tanto del
propio hardware sintetizable como de soItware
basado en microprocesadores como por ejemplo el
Leon 3.
En la Iigura 4 podemos observar el diagrama
de bloques de los componentes que constituyen el
hardware base donde implementaremos el sistema
basado en el Leon 3 / GRLIB.

Figura 4. Diagrama de bloques GR-XC3S-1500
VII Jornadas de Computacin Reconfigurable y Aplicaciones (JCRA 2007)
87


En lo que respecta al propio System on Chip,
la eleccion de este kit de desarrollo simpliIica
bastante la complejidad y el tiempo invertido en el
diseo del sistema basado en GRLIB, ya que se
proporcionan plantillas de las distintas Iases del
Ilujo de diseo, tanto de pin-out como de una
conIiguracion base Iuncional e imagenes
precompiladas listas para cargar en la FPGA.
Partiendo de estas plantillas y mediante el
sistema de scripts Linux que proporciona GRLIB
se hace muy sencillo obtener el modelo
sintetizable de un sistema personalizado basado en
Leon 3 utilizando los numerosos IP cores que se
proporcionan. Es importante mencionar que,
ademas, pueden aadirse periIricos desarrollados
por otros, siempre que cumplan las
especiIicaciones de compatibilidad con el bus
AMBA 2.0 |2|.
Para el desarrollo que hemos llevado acabo, se
ha constituido un sistema compuesto del
controlador de bus AMBA AHB (AHBCTRL) y
un microprocesador Leon 3 como nucleo de
control, ademas de otros IP cores pertenecientes a
la libreria GRLIB de los que destacamos los
siguientes:

MCTRL - Esclavo del bus AHB, proporciona
un controlador combinado de memoria
estatica y dinamica (FLASH, SRAM,
SDRAM), asi como de dispositivos entrada
salida asignados al mapa de memoria.
Compatible con conIiguraciones de 32 o 64
bits de ancho de bus de datos para memorias
SDRAM de 100 o 133 Mhz, y
conIiguraciones de 32, 16 y 8 bits de ancho
de bus de datos para las memorias FLASH y
SRAM, asi como multiples combinaciones
organizaciones de bancos.

DSU3 (LEON3 Hardware Debug Support
Unit) Este IP core capacita al sistema para
la depuracion hardware tanto del
microprocesador como de todos los
dispositivos conectados al bus AMBA. Puede
ser accedido desde el host por medio de
multiples interIaces, JTAG, RS232, Ethernet,
etctera. Por tanto se hace indispensable en
las Iases de desarrollo para permitir la
ejecucion de las herramientas de depurado.

GRETH MAC (Gaisler Research Ethernet
Media Access Controller ) - Este IP core
proporciona una interIaz de conexion entre el
bus AMBA AHB y una red Ethernet. Soporta
los modos de 10 y 100 Mbits en modo Full o
HalI Duplex. Incluye tambin el subsistema
opcional Ethernet Debug Communication
Link (EDCL) que permite la depuracion
remota del sistema mediante Ethernet.

ATACTRL Es un controlador ATA/ATAPI-
5 host interIace. Este IP core proporciona una
interIace a dispositivos IDE (Integrated Drive
Electronics), siendo compatible con el
estandar ATA/ATAPI-5. Soporta
transIerencias unicamente en modo PIO, y
sera utilizado en este ejemplo de sistema para
aadir un disco duro externo que oIrezca la
suIiciente capacidad para albergar una copia
de la distribucion Linux Debian.

APBCTRL - Proporciona un puente entre el
bus AHB y bus APB, cumpliendo el estandar
AMBA 2.0. Soporta 16 esclavos y
proporciona plug&play.

APBPS2 - Este IP core se conecta al bus APB
para proporcionar la logica de un interIaz
PS2 serie bidireccional sincrono,
principalmente usado la comunicacion de
periIricos como teclados y ratones.

APBUART - Tambin conectado al bus APB,
proporciona la logica para las
comunicaciones serie con todas las
caracteristicas clasicas incluidas (Control de
Ilujo, paridad, .) .


GPTIMER (General Purpose Timer Unit) -
Incluye de 1 a 7 Timers conIigurables.
Actuan como esclavos del bus AMBA APB y
poseen capacidad de generar interrupciones.
Estos dispositivos son indispensables para el
correcto Iuncionamiento de multitud de
sistemas operativos.

IRQMP Este modulo sintetizable actua
como controlador de interrupciones
recogiendo la seales de interrupciones
generadas por otros dispositivo. Estas seales
Captulo 3: Arquitecturas SoC/NoC
88


son rutadas por el bus AMBA, de donde el
nucleo de control de interrupciones
monitoriza, selecciona y prioriza las
interrupciones que seran propagadas al
procesador.

Otros IP cores como un dispositivo de video
de tipo frame buffer SVGACTRL o un
controlador para un bus de entrada salida de
uso general GRGPIO.


La Iigura 5 muestra un resumen del conjunto
de bloques que constituyen el sistema SoC
implementado:


Figura 5. Sistema Leon3 / GRLIB implementado
Una vez que los scripts de GRLIB hayan
generado el codigo VHDL sintetizable del
sistema, se procede a su compilacion. Para esta
tarea, esta libreria tambin proporciona distintos
scripts que Iacilitan la tarea segun la FPGA
objetivo del SoC y paquete soItware que usemos.
Como se pretende sintetizar el sistema para una
FPGA Xilinx Spartan3, utilizaremos el paquete
soItware Xilinx ISE Foundation |15|. Es posible
obtener una version gratuita, denominada Xilinx
ISE Webpack disponible en su pagina Web. Una
vez hayan terminado los procesos de compilacion
como el emplazado y el rutado, obtendremos el
codigo objeto de conIiguracion de la FPGA. Este
codigo debe ser adaptado a las dos memorias
FLASH PROM de conIiguracion disponibles en la
placa de evaluacion si queremos que se produzca
la conIiguracion automatica de la FPGA en cada
encendido de la placa. Se ha utilizado la
herramienta Impact del entorno ISE de XILINX
para este proceso, obtenindose dos imagenes que
programaremos en sendas memorias a travs del
interIace JTAG.

4. Sistema Software
Una vez tengamos preparado el sistema SoC
basado en Leon3/GRLIB procederemos a la
implantacion del sistema operativo. En este
ejemplo, nuestro objetivo consistira en la
instalacion de una distribucion Linux libre y de
reIerencia, concretamente Debian 3.1. El mtodo
que presentaremos permitira obtener directamente
de cualquier repositorio oIicial de Debian todos
los paquetes necesarios para la instalacion
trabajando directamente desde la placa de
desarrollo.
Para llevar a cabo tal empresa, necesitaremos
dividir el proceso en dos etapas:

1. Una instalacion preliminar de un sistema
operativo Linux de bajo peso especialmente
concebido para sistemas empotrados, Snapgear
|11|.
2. La implantacion deIinitiva del sistema operativo
Linux Debian aprovechando los recursos
proporcionados por la anterior.

A continuacion se explica cada etapa con
mayor detalle.

4.1. Implantacin de Snapgear
Snapgear es una distribucion de Linux especiIica
para sistemas empotrados y de codigo abierto.
Existe una version especialmente adaptada por
Gaisler Research |5| para los sistemas Leon, en la
que han incluido diversos parches para el nucleo
asi como distintos drivers para los dispositivos
que incluye GRLIB. En este paquete soItware se
incluye tambin un elemento Iundamental e
imprescindible para la carga del sistema operativo,
el denominado boot loader. Esta pequea pieza de
soItware desarrollada tambin por Gaisler
Research, es normalmente almacenada al
principio de la memoria FLASH que debe
corresponder a la direccion de memoria 0. Esta
posicion de memoria es ejecutada en primera
instancia por el microprocesador tras arrancar,
siempre que no la hayamos modiIicado. La
VII Jornadas de Computacin Reconfigurable y Aplicaciones (JCRA 2007)
89


primera Iuncion del boot loader consiste en
inicializar el hardware basico del sistema, como
por ejemplo la consola de depurado o la memoria
SDRAM. Posteriormente procedera a
descomprimir el conjunto soItware que deseemos
ejecutar en el microprocesador Leon, a la
memoria SDRAM del sistema para ser ejecutada a
continuacion. Concretamente dicho soItware se
compondra de un nucleo de Linux 2.6.x
preparado para Leon, asi como un pequeo
sistema de Iicheros RomFS, ambos comprimidos
en G:ip. Sobre este sistema de Iicheros de solo
lectura, el nucleo de Linux montara la unidad root
de sistema, que contendra todas las utilidades y
aplicaciones que le hayamos incluido en la
compilacion. Es importante destacar la capacidad
de este pequea pieza de soItware (boot loader) de
pasar una linea de argumentos al nucleo de Linux,
Iuncion que sera de gran utilidad y evitara la
necesidad de utilizar cargadores de arranque tales
como LILO o GRUB, necesarios en los sistemas
convencionales.
La conIiguracion del nucleo de Linux y del
boot loader y la preparacion de la unidad RomFS
se hacen de Iorma automatizada gracias al sistema
de scripts que proporciona esta version de
adaptada de Snapgear. Proceso tras el cual
procederemos a compilar todo el sistema soItware,
obtenindose un conjunto de imagenes o Iicheros
objeto. Este conjunto de Iicheros objeto generados
por los scripts de Snapgear abren diversas
alternativas de ejecucion del sistema, de la que
optaremos por la imagen preparada para la
memoria FLASH que contiene el boot loader
junto al nucleo de Linux y la pequea unidad
RomFS comprimidos en Iormato Gzip.
La carga de esta memoria puede hacerse
directamente en la placa utilizando la unidad de
depuracion DSU3 y una conexion por medio de
algun interIace, como JTAG o Ethernet, desde el
programa de depuracion grmon.
Una vez terminado el proceso, dispondremos
de un sistema operativo Linux de bajo peso y
totalmente Iuncional corriendo sobre un sistema
basado en Leon3/GRLIB. La Iigura 6 sirve de
ilustracion del sistema obtenido:

Figura 6. Linux Snapgear en SoC Leon3
4.2. Implantacin de Debian
Una vez tengamos el sistema operativo Linux
Snapgear Iuncionando en el sistema podremos
proceder a la implantacion de una distribucion
Debian 3.1, obtenida directamente de cualquier
repositorio oIicial de Debian. Esta distribucion se
encuentra precompilada para multitud de
plataIormas, incluido SPARC, concretamente
SPARC V8, por lo que no deberemos olvidar
incluir en nuestras caracteristicas del
microprocesador Leon 3 un multiplicador de
enteros y una unidad de punto Ilotante por
hardware, ya que al contrario de lo que ocurre con
SPARC V7, se hace uso de instrucciones MUL y
DIV.
Existen multitud de mtodos para instalar este
sistema operativo, sin embargo en este caso se ha
optado por utilizar una pequea aplicacion
denominada aebootstrap, que se encargara de
descargar, descomprimir e instalar todos los
paquetes necesarios para obtener la distribucion
base de Debian que deseemos. Para nuestro Iin,
crearemos un sistema de Iicheros RomFS que
incluya dicha aplicacion, asi como sus
dependencias wget y binutils. Todas ellas se
obtuvieron de www.debian.org y para simpliIicar
la tarea se integraron en la imagen RomFS
incluida en la distribucion Snapgear para Leon 3
Iacilitada por Gaisler Research.
Captulo 3: Arquitecturas SoC/NoC
90


Una vez tengamos incluido el nuevo RomFS
en nuestra compilacion de Snapgear, podremos
arrancar el sistema y preparar la instalacion.
Para ello, una vez inicializado el sistema y
mediante el intrprete de comandos de Linux,
levantaremos y conIiguraremos la interIaz
Ethernet para poder obtener acceso Internet y a un
servidor DNS:
# Ifconfig eth0 ip netmask gw gateway up
# echo nameserver 'ipDNS` ~ /etc/resolv.conf

Tras esto se prepara la unidad donde
deseemos instalar el sistema operativo, que en
nuestro caso sera una unidad de disco duro
conectada a travs del IP core ATACTRL incluido
en GRLIB, pero tambin podria ser una unidad
remota NFS, una memoria portable Compact
Flash, etctera. Es deseable disponer al menos 1`5
GBytes libres en el dispositivo para permitir una
comoda instalacion de cuantos paquetes soItware
necesitamos y para poder hacer uso de una
particion de intercambio. Crearemos dos
particiones, una para el sistema de Iicheros ext2 y
otra de intercambio mediante los comandos faisk,
mke2fs y mkswap, que despus montaremos y
activaremos mediante mount y swapon.
Debemos tener en cuenta que RomFS es un
sistema de Iicheros de solo lectura, por lo que
necesitaremos tener preparado una ruta vacia
donde montar la unidad, en nuestro caso usaremos
/mnt/aebinst.
Ahora ya estamos preparados para realizar la
instalacion cruzada de Debian 3.1 en nuestro
sistema. Basta con ejecutar la aplicacion de
instalacion aebootstrap que habiamos integrado
con la siguiente estructura:
aebootstrap arch 'plataforma` 'aistribucion`
'punto ae instalacion`

En concreto,
= /usr/sbin/aebootstrap --arch sparc sarge
/mnt/aebinst http.//ftp.es.aebian.org/aebian ,
comenzara la descarga de paquetes del repositorio
junto con la validacion e instalacion en nuestro
sistema.
Una vez Iinalizado el proceso tendremos
realizada una instalacion basica de Debian en
nuestra unidad, a la que tendremos que conIigurar
ciertos aspectos para su uso.
En este punto el uso del comando chroot
puede ser bastante util.
= chroot /mnt/aebinst /bin/bash

En primer lugar necesitaremos indicar
explicitamente al sistema operativo que nos abra
una shell cuando arranquemos (init), para lo cual
podremos aadir la siguiente linea al archivo
/etc/inittab del root del sistema de Iicheros debian:
T0.234.respawn./sbin/getty -L ttyS0 38400 vt100

Asi, getty nos lanzara una shell por el puerto
serie (login prompt) cuando el sistema reinicie.
Otros aspectos importantes a conIigurar son el
tipo de consola:
= export TERMxterm-color

Las interIaces de red y los servidores DNS:
# eaitor /etc/network/interfaces

= auto lo
= iface lo inet loopback
=
= auto eth0
= iface eth0 inet static
= aaaress 192.168.1.10
= netmask 255.255.255.0
= gateway 192.168.1.1
= broaacast 192.168.1.255

# eaitor /etc/resolv.conf
Y los puntos puntos de montaje del resto de
unidades como el swap:
= eaitor /etc/fstab

Por ultimo se debe comprobar que la
instalacion contiene los nodos de dispositivos por
bloques dentro de /aev/ , de no ser asi se puede
proceder a crearlos con el comando mknoa, o a
copiarlos directamente de la unidad RomFS que
tenemos activa.
Una vez concluyamos el proceso de
instalacion y conIiguracion de la distribucion
Linux Debian 3.1, solamente nos quedara
recompilar nuestro nucleo de Snapgear para Leon
donde deberemos eliminar la unidad RomFS e
indicar al boot loader que incluya en la linea de
argumentos del nucleo el punto de montaje del
disco donde hemos realizado la instalacion. La
siguiente linea conIiguraria la consola por el
puerto serie e indicaria al nucleo que monte el root
del sistema de Iicheros en el disco /aev/haa1
# consolettyS0,38400 root/aev/haa1
VII Jornadas de Computacin Reconfigurable y Aplicaciones (JCRA 2007)
91



Finalmente iniciaremos el sistema con el
nuevo nucleo de Snapgear y la instalacion de
Linux Debian 3.1, que tras su carga, nos
presentara una consola con todas las bondades de
este sistema operativo. Cabe destacar que ahora
dispondremos de las herramientas de instalacion
de paquetes Debian, como aptituae, que nos
permitiran instalar inIinidad de aplicaciones y
actualizaciones de una manera rapida y comoda,
como servidores de servicios de Internet,
servidores graIicos, etc.

5. Conclusiones
El diseo de sistemas digitales esta evolucionando
Iuertemente hacia un proceso de co-diseo
hardware/soItware. Con respecto a la parte
hardware, se pretende convertir al sistema en un
computador con un conjunto de periIricos
especiIicos de la aplicacion deseada en que todos
los componentes principales del mismo
(microprocesador controladores, periIricos) se
incluyan dentro de un mismo chip, bien un ASIC,
bien un dispositivo programable tipo FPGA (en
deIinitiva lo que es un SoC). Esto da lugar a un
sistema de tamao reducido y con un bajo
consumo de potencia pero, a la vez, con capacidad
de ejecucion de soItware. Con respecto al
soItware, se esta evolucionando en el sentido de
Iacilitar el desarrollo de las aplicaciones y, por
esto, se esta tendiendo a implantar un sistema
operativo sobre la plataIorma hardware.
En el trabajo que hemos presentado en este
articulo, se ha desarrollado un sistema digital con
las caracteristicas de diseo tipo SoC sobre una
FPGA, que incluye el microprocesador LEON3
junto con un conjunto de controladores/periIricos
de la libreria GRLIB, sobre el que se ha
implantado un kernel de LINUX 2.6 y, sobre el
kernel,una distribucion completa de LINUX como
es la Debian 3.1. Esto dota al sistema de un
mecanismo relativamente sencillo tanto de
actualizacion de paquetes como de instalacion de
los mismos, asi como una cantidad muy grande de
soItware ya desarrollado y usable; tambin una
cantidad de librerias asi como herramientas de
compilacion, depuracion que Iacilitan el
desarrollo de nuevo soItware.
De esta Iorma, el resultado Iinal es una
plataIorma de sistema digital tipo
microcomputador (micro en el sentido de reducido
tamao comparado con computadores
convencionales) pero con capacidades idnticas a
las que posee cualquier otro computador desde el
punto de vista de ejecucion y desarrollo de
soItware. Asi, este tipo de sistema puede
emplearse en innumerables aplicaciones que
necesiten como caracteristica principal el reducido
tamao, bajo consumo y donde no sea critica la
velocidad de operacion.

Referencias
|1|Altera Cor.: 'NIOS 3 CPU Data Sheet, 2004,
www.altera.com/literature/ds/dsnioscpu.
pdI
|2| 'AMBATM SpeciIication (Rev 2.0),
Advanced RISC Machines Limited (ARM Ltd)
1999.http://www.arm.com/products/solutions/AM
BASpec.html
|3| Steve Furber: 'ARM system-on-chip
architecture, 2nd edition, Ed. Addison-Wesley
2000
|4| Proyecto Debian: http://www.debian.org
|5| Gaisler Research, www.gaisler.com
|6| Grlib/Leon3 manual, http://www.gaisler.com
|7| 'IBM PowerPC Quick ReIerence Guide,
IBM Corp. 2004, www-306.ibm.com/chips/tech
lib/techlib.nsI/techdocs/7874C7DA8607C0B2872
56BF3006FBE54/$Iile/PPCQRG2-22-04.pdI
|8| Damjan Lampret: 'OpenRISC 1200 IP Core
SpeciIication, 2001, http://www.opencores.org/
cvsget.cgi/or1k/or1200/doc/or1200spec.pdI
|9| 'LatticeMico32 Processor ReIerence
Manual,
www.latticesemi.com/dynamic/viewdocument.cI
m?documentid20890
|10| Pender Electronic Design, www.pender.ch/
|11| SnapGear Embedded Linux Distribution
www.snapgear.org
|12| 'The SPARC Architecture Manual, Version
8, SPARC International Inc., 1992.
|13| Xilinx Inc. 2005, 'Microblaze Processor
ReIerence Guide, http://www.xilinx.com/ise/
embedded/mbreIguide.pdI
|14| Xilinx, Inc., http://www.xilinx.com
|15| Xilinx ISE Foundation, www.xilinx.com/ise/
logicdesignprod/Ioundation.htm
Captulo 3: Arquitecturas SoC/NoC
92

También podría gustarte