Documentos de Académico
Documentos de Profesional
Documentos de Cultura
______________________________________________
Firma del jurado
______________________________________________
Firma del jurado
A nuestro director Dr. Juan Manuel Vilardy Ortiz y asesor MSc. Leonardo
Diaz por su apoyo incondicional e interés en todo lo concerniente al desarrollo
de nuestro trabajo de grado.
1 Introducción 1
2 Objetivos 3
3.2.1 Co-procesadores . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.3 Interrupciones . . . . . . . . . . . . . . . . . . . . . . . . 12
3.4.3 La ZedBoard . . . . . . . . . . . . . . . . . . . . . . . . 19
i
Índice general
5 Conclusiones 22
6 Recomendaciones 23
Bibliografía 24
ii
Resumen
Los sistemas embebidos son sistemas electrónicos diseñados para realizar pocas
funciones en tiempo real con un alto grado de desempeño. Los sistemas embebi-
dos se diseñan para cubrir necesidades específicas, al contrario de lo que ocurre
con las computadoras, ya que están diseñadas para cubrir un amplio rango
de necesidades. En este proyecto de grado, se presentan todos los pasos para
construir, configurar y verificar un sistema embebido usando el núcleo de pro-
cesador hardware ARM CORTEX-A9 y una FPGA de Xilinx. La comunicación
entre el procesador hardware y la lógica programable de la FPGA se realiza
utilizando interconexiones e interfaces AXI (Advanced eXtensible Interface de
AMBA, Advanced Microcontroller Bus Architecture). Para el correcto funcio-
namiento del sistema embebido, se detallan los pasos para la configuración y
programación de los periféricos estándares y personalizados que se encuentran
conectados al núcleo de procesador hardware ARM CORTEX-A9 a través
de las interconexiones e interfaces AXI. Las funciones del sistema embebido
son realizadas mediante la atención y servicio de las interrupciones generadas
por los periféricos; por lo tanto, los pasos necesarios para la configuración y
programación de las interrupciones del sistema embebidos son detalladas y
documentadas en este libro de proyecto de grado. Finalmente, se muestra una
guía para la depuración de hardware y software del sistema embebido desa-
rrollado con el ARM CORTEX-A9. La guía metodológica propuesta permite
desarrollar sistemas embebidos con FPGA para diferentes tipo de aplicaciones,
especialmente si se desea ejecutar una función de forma rápida y eficiente.
iii
Abstract
Embedded systems are electronics system which have been designed to perform
a few functions in real time with a higher performance. The embedded system
are designed in order to meet specific needs, contrary to what happens with
computers, since these computer are designed to cover a wide range of needs.
In this work, we present all steps to build, setup and verify an embedded
system using a hardware processor core ARM CORTEX-A9 and a FPGA
of Xilinx. The communication between the hardware processor and the logic
programmable of the FPGA is performed using the AXI (Advanced eXtensible
Interface of AMBA, Advanced Microcontroller Bus Architecture) interconnects
and interfaces. We show all steps to setup and program the standard and
custom peripherals connected to the hardware processor core ARM CORTEX-
A9 through the AXI interconnects and interfaces, in order to obtain the proper
performance of the embedded system. The functions of the embedded system
are performed through the attention and service of the interruptions generated
by the peripherals; therefore, the steps necessary for the setup and programming
of the interrupts of the embedded system are detailed and documented in this
grade project book. Finally, the hardware and software debugging for the
embedded system with an ARM CORTEX-A9 are described. The proposed
methodological guide allows to develop embedded systems with FPGA for
different types of applications, especially when you want to perform a function
quickly and efficiently.
iv
1. Introducción
1
Capítulo 1. Introducción
2
2. Objetivos
3
Capítulo 2. Objetivos
4
3. Systemas en chip (SoC, System-on-Chip)
y sistemas embebidos
5
Capítulo 3. Systemas en chip (SoC, System-on-Chip) y sistemas embebidos
6
Capítulo 3. Systemas en chip (SoC, System-on-Chip) y sistemas embebidos
Los periféricos son componentes funcionales que residen fuera del procesador
y, en general, realizan una de las tres siguientes funciones: (i) co-procesadores,
elementos que complementan el procesador primario, generalmente optimizados
para una determinada tarea; (ii) núcleos de control para interactuar con inter-
faces externas, por ejemplo, conexión a LEDs e interruptores, codecs, etc.; y
(iii) elementos de memoria adicionales. Los periféricos pueden ser considerados
como bloques funcionales discretos que se pueden diseñar, probar e integrar
en un sistema, y también “empaquetar” (crear un bloque IP de propiedad
intelectual, Intellectual Property) para su posterior reutilización.
7
Capítulo 3. Systemas en chip (SoC, System-on-Chip) y sistemas embebidos
8
Capítulo 3. Systemas en chip (SoC, System-on-Chip) y sistemas embebidos
9
Capítulo 3. Systemas en chip (SoC, System-on-Chip) y sistemas embebidos
Figura 3.2: Comparación entre un procesador embebido tipo: (a) soft (blando) y hard
(duro).
3.2.1. Co-procesadores
10
Capítulo 3. Systemas en chip (SoC, System-on-Chip) y sistemas embebidos
Fuente: Autores.
11
Capítulo 3. Systemas en chip (SoC, System-on-Chip) y sistemas embebidos
3.2.3. Interrupciones
Una interrupción es una señal que se genera para indicar al procesador que se
requiere su atención. Las interrupciones pueden ser generadas por unidades de
procesamiento de hardware y periféricos, y también dentro del propio software.
En hardware, una señal de interrupción es una señal asíncrona generada por una
unidad de procesamiento para indicar la necesidad de atención del procesador.
En software, una interrupción es un evento síncrono que indica al procesador
que se necesita un cambio en la ejecución.
12
Capítulo 3. Systemas en chip (SoC, System-on-Chip) y sistemas embebidos
13
Capítulo 3. Systemas en chip (SoC, System-on-Chip) y sistemas embebidos
Las señales y sus valores del protocolo de bus AXI para sus transacciones
(operaciones de lectura y escritura sobre periféricos) son presentados en el
siguiente capítulo del presente proyecto de grado.
El dispositivo Zynq proporciona una plataforma ideal para implementar SoC em-
bebidos flexibles: Xilinx comercializa este dispositivo como un “All-Programmable
SoC” (AP SoC). La arquitectura Zynq consta de dos partes principales: un PS
dado por un procesador ARM CORTEX-A9 de doble núcleo como base y una
PL, que es equivalente a una FPGA tradicional. También cuenta con memoria
integrada, una variedad de periféricos e interfaces de comunicaciones de alta
velocidad. La sección de PL es ideal para implementar lógica de alta velocidad,
aritmética y subsistemas de flujo de datos, mientras que el PS soporta rutinas
de software y/o sistemas operativos, lo que significa que la funcionalidad gene-
ral de cualquier sistema diseñado puede ser dividido apropiadamente entre el
hardware y el software. Los enlaces entre el PL y el PS se realizan utilizando
las interconexiones e interfaces AXI.
14
Capítulo 3. Systemas en chip (SoC, System-on-Chip) y sistemas embebidos
Todos los dispositivos Zynq tienen la misma arquitectura básica y todos ellos
contienen como base del PS un procesador ARM Cortex-A9 de doble núcleo.
Este es un núcleo de procesador hardware (duro), que existe como un elemento
de silicio dedicado y optimizado en el dispositivo.
15
Capítulo 3. Systemas en chip (SoC, System-on-Chip) y sistemas embebidos
la siguiente manera:
1. Bloque lógico configurable (CLB, Configurable Logic Block): los CLB son
agrupaciones pequeñas y regulares de elementos lógicos que se presentan
en una matriz bidimensional sobre la PL y se conectan a otros recursos
similares a través de interconexiones programables. Cada CLB se coloca
al lado de una matriz de conmutación (switch matrix ) y contiene dos
slices lógicos.
16
Capítulo 3. Systemas en chip (SoC, System-on-Chip) y sistemas embebidos
17
Capítulo 3. Systemas en chip (SoC, System-on-Chip) y sistemas embebidos
18
Capítulo 3. Systemas en chip (SoC, System-on-Chip) y sistemas embebidos
3.4.3. La ZedBoard
19
Capítulo 3. Systemas en chip (SoC, System-on-Chip) y sistemas embebidos
20
4. Sistema embebido basado en el proce-
sador hardware ARM CORTEX-A9 e
implementado sobre una FPGA
21
5. Conclusiones
22
6. Recomendaciones
23
Bibliografía
24