official-store-logo
Publicación pausada

Información de la tienda

Alfaomega
Alfaomega

Tienda oficial de Mercado Libre

MercadoLíder Platinum

¡Es uno de los mejores del sitio!

Descripción

Sistemas Embebidos en FPGA
Autor: CAYSSIALS, Ricardo
Páginas: 340
ISBN: 978-987-1609-69-7
Editorial: Alfaomega

Ver video: https://youtu.be/yKKN9ubeR-I
.
Los dispositivos FPGA permiten la implementación de todo el hardware y software de un sistema digital en un circuito integrado configurable, permitiendo desarrollos conocidos como Sistemas-en-Chip-Programable. La especificación de todo el sistema se realiza en forma flexible debido a que su diseño e implementación involucran herramientas de desarrollo que permiten un elevado nivel de abstracción.

El desarrollo de sistemas embebidos modernos demanda la implementación de funciones sofisticadas en plazos de diseño cortos. Los dispositivos FPGA posibilitan una gran flexibilidad en el diseño e implementación de estos sistemas.
En este libro, se introducen los conceptos y metodologías necesarios para la realización de sistemas embebidos en dispositivos FPGA. Las metodologías de diseño, implementación y desarrollo estarán realizadas utilizando las plataformas y dispositivos de Altera, pero los fundamentos conceptuales permitirán su utilización en plataformas y dispositivos de otros fabricantes.
.
Sistemas Embebidos en FPGA _________________________________________________ | xi
SISTEMAS EMBEBIDOS EN FPGA ? CAYSSIALS Alfaomega
TABLA DE CONTENIDOS
CAPÍTULO 1 Diseño de sistemas embebidos ................................................... 1
Introducción ...................................................................................................................... 1
Sistemas embebidos en lógica programable ..................................................................... 2
Desafíos del diseño digital ................................................................................................. 3
Modelo de rebalse (Waterfall Model) ............................................................................................................. 3
Modelo de prototipo (Prototype Model) ........................................................................................................ 5
Métricas de diseño ............................................................................................................ 7
Velocidad ........................................................................................................................................................ 7
Energía ............................................................................................................................................................ 8
Tamaño ........................................................................................................................................................... 8
Costo ............................................................................................................................................................... 9
Otras métricas de diseño ................................................................................................................................ 9
Conclusiones .................................................................................................................... 10
CAPÍTULO 2 Lógica programable y lenguajes de descripción de hardware .... 11
Circuitos digitales con lógica programable ...................................................................... 11
Circuito combinacional ................................................................................................................................. 11
Circuito secuencial ........................................................................................................................................ 12
Dispositivos lógicos programables: CPLD y FPGA .......................................................................................... 14
Recursos adicionales en dispositivos FPGA ................................................................................................... 17
Lenguajes de descripción de hardware ......................................................................................................... 18
Niveles de abstracción en lenguajes de descripción de hardware .................................. 20
Síntesis y simulación de archivos de descripción de hardware ..................................................................... 21
Verilog HDL ...................................................................................................................... 22
Estructura module ........................................................................................................................................ 23
Sección port list ........................................................................................................................................ 23
Sección Declaraciones de ports ................................................................................................................ 24
Sección Declaración de tipos de datos ...................................................................................................... 25
Descripción de la funcionalidad del circuito ................................................................................................. 25
Instanciación de module ........................................................................................................................... 26
Conexión por orden y por nombre ........................................................................................................... 26
Representación de valores en Verilog HDL ............................................................................................... 27
Operadores en Verilog HDL........................................................................................................................... 27
Circuitos combinacionales y secuenciales en Verilog HDL ............................................................................ 28
Bloque always ........................................................................................................................................... 29
Sentencia assign ....................................................................................................................................... 29
Estructuras de control ................................................................................................................................... 30
Sentencia if-else ........................................................................................................................................ 30
Sentencia case .......................................................................................................................................... 30
Sentencia for ............................................................................................................................................. 31
Ejemplo ............................................................................................................................ 31
Multiplicador de Booth ................................................................................................................................. 31
Conclusiones .................................................................................................................... 36
xii | ___________________________________________________________________
Alfaomega SISTEMAS EMBEBIDOS EN FPGA ? CAYSSIALS
CAPÍTULO 3 Herramientas de diseño de hardware ...................................... 37
Herramientas de diseño de hardware ............................................................................. 37
Flujo de diseño con dispositivos lógicos configurables ................................................................................. 38
Plataformas y licencias de Quartus II ............................................................................................................ 40
Proyectos en Quartus II................................................................................................................................. 40
Interfaz gráfica de Quartus II ........................................................................................................................ 41
Creación de proyecto .................................................................................................................................... 43
Creación del archivo de diseño ..................................................................................................................... 49
Entrada del diseño (Design Entry) ................................................................................................................. 50
Compilación del diseño ................................................................................................................................. 51
Etapa fitter (place & route) ........................................................................................................................... 52
Configuración ................................................................................................................................................ 53
Asignación de pines (Pin Planner) ................................................................................................... 53
Programador del dispositivo ? ? ........................................................................................................ 54
Simulación del diseño ...................................................................................................... 55
Simulación de diseños digitales con lenguajes de descripción de hardware: testbench ............................... 56
Simulación en el flujo de diseño de Quartus II .............................................................................................. 57
Flujos de simulación en Quartus II ............................................................................................................ 59
Configuración de la simulación en Quartus II (opción NativeLink) ................................................................ 59
Inicialización de ModelSim a Nivel RTL (opción NativeLink) .......................................................................... 62
Inicialización de ModelSim a Nivel Gate (opción NativeLink) ........................................................................ 62
Simulación con ModelSim ............................................................................................................................. 63
Configuración de los estímulos de la simulación ...................................................................................... 65
Conclusiones .................................................................................................................... 67
CAPÍTULO 4 Soft-processors en dispositivos FPGA ........................................ 69
Introducción a soft-processors ........................................................................................ 69
Arquitectura del procesador Nios II .............................................................................................................. 70
Características del procesador Nios II ....................................................................................................... 70
Versiones de Nios II....................................................................................................................................... 73
Instrucciones personalizables (Custom Instructions) ................................................................................ 74
Síntesis de software a hardware ............................................................................................................... 75
Licencia de Nios II ......................................................................................................................................... 75
Recomendaciones para diseños con Nios II .............................................................................................. 76
Concepto de configuración de soft-processors ............................................................................................. 76
Flexibilidad de periféricos y mapa de direcciones .................................................................................... 77
Bus Avalon ....................................................................................................................... 77
Características del bus Avalon ...................................................................................................................... 77
Interfaz Avalon Memory-Mapped ................................................................................................................. 78
Transferencias en Avalon-MM ...................................................................................................................... 80
Típica transferencia de lectura y escritura ................................................................................................ 80
Transferencias de lectura y escritura con wait-states fijos ....................................................................... 80
Transferencia con pipeline ........................................................................................................................ 80
Transferencias burst ................................................................................................................................. 80
Interfaz Avalon Interrupt .............................................................................................................................. 80
Generador de interrupción ....................................................................................................................... 81
Receptor de interrupción .......................................................................................................................... 81
Interfaz Avalon Streaming............................................................................................................................. 81
Características de la interfaz Avalon Streaming ........................................................................................ 81
Sistemas Embebidos en FPGA ________________________________________________ | xiii
SISTEMAS EMBEBIDOS EN FPGA ? CAYSSIALS Alfaomega
Interfaz Avalon Conduit ................................................................................................................................ 81
Interfaz Avalon Tri-state Conduit .................................................................................................................. 81
Componentes de biblioteca ............................................................................................ 82
Conclusiones .................................................................................................................... 82
CAPÍTULO 5 Diseño de sistemas embebidos en lógica programable .............. 83
Sistemas-en-chip-programable (SOPC) ........................................................................... 83
Flujo de Diseño de Sistemas en Chips Programables .................................................................................... 83
Qsys y SOPC Builder ...................................................................................................................................... 84
Directorio de proyecto en Qsys .................................................................................................................... 85
Diseño de SOPC en Qsys ............................................................................................................................... 86
Realización del flujo de diseño de un SOPC .................................................................................................. 88
Creación del proyecto de máxima jerarquía ............................................................................................. 88
Creación del diseño del SOPC ................................................................................................................... 89
Configuración del SOPC ................................................................................................... 89
Interfaz gráfica de Qsys ................................................................................................................................. 89
Definición de la fuente de reloj externa ................................................................................................... 90
Configuración de los componentes ............................................................................................................... 91
Selección y configuración del procesador Nios II ...................................................................................... 92
Selección y configuración de la memoria RAM interna del dispositivo FPGA ........................................... 94
Selección y configuración del temporizador del sistema (Interval Timer) ................................................ 97
Selección y configuración de un puerto de entrada/salida (PIO Parallel IO) ........................................... 101
Selección y configuración de un puerto de comunicaciones JTAG (JTAG UART) ..................................... 103
Configuración del SOPC .............................................................................................................................. 106
Asignación automática de direcciones de memoria ............................................................................... 107
Asignación automática de interrupciones .............................................................................................. 107
Configuración de los vectores de reset y exception del procesador Nios II del sistema .......................... 108
Configuración de las entradas y salidas del SOPC ................................................................................... 109
Generación del sistema en Qsys .................................................................................... 110
Solapa del generador del sistema (Generation) ...................................................................................... 110
Instanciación del SOPC en Quartus II ............................................................................ 114
Agregado de lógica adicional y asignación de pines ...................................................... 116
Agregado de lógica adicional ...................................................................................................................... 116
Asignación de nombres a los puertos ..................................................................................................... 117
Conexión de la lógica externa ................................................................................................................. 118
Asignación de pines .................................................................................................................................... 119
Conclusiones .................................................................................................................. 119
CAPÍTULO 6 Generación del software ......................................................... 121
Generación de software para Nios II ............................................................................. 121
Capa de abstracción de hardware (HAL) y Sistemas Operativos (OS) ........................... 122
Capa de abstracción de hardware (HAL) ..................................................................................................... 123
Sistema operativo (OS) ............................................................................................................................... 124
Estructura monolítica ............................................................................................................................. 125
Estructura micronúcleo .......................................................................................................................... 126
Estructura híbrida ................................................................................................................................... 126
Sistemas operativos para SOPC .................................................................................................................. 127
Estructura de la HAL de Altera ...................................................................................... 128
Modelo genérico de los controladores de dispositivos de la HAL de Altera ........................................... 129
xiv | ___________________________________________________________________
Alfaomega SISTEMAS EMBEBIDOS EN FPGA ? CAYSSIALS
Desarrollo de software embebido para el procesador Nios II de Altera ....................... 131
Ambiente de desarrollo de software para el procesador Nios II ................................................................. 131
Flujo de diseño con Nios II EDS ................................................................................................................... 131
Makefile y Nios II SBT .................................................................................................................................. 132
Creación de un proyecto de software en Nios II SBT .................................................... 133
Ejecución de Eclipse para Nios II SBT y la inicialización del espacio de trabajo ........................................... 133
Estableciendo el espacio de trabajo del proyecto (Workbench) ............................................................. 134
Creación del proyecto en Nios II SBT .......................................................................................................... 135
Programación del código de la aplicación ................................................................................................... 138
Configuración del proyecto BSP: editor de BSP (BSP Editor) ......................................... 139
Solapa Main ................................................................................................................................................ 141
Categoría Common ................................................................................................................................. 141
Categoría Advanced ................................................................................................................................ 142
Solapa Software Packages .......................................................................................................................... 142
Solapa Drivers ............................................................................................................................................. 143
Solapa Linker ............................................................................................................................................... 143
Solapa Enable File Generation .................................................................................................................... 145
Solapa Target BSP Directory ....................................................................................................................... 145
Propiedades del proyecto BSP ....................................................................................... 145
Configuración del proyecto de aplicación ..................................................................... 146
Construcción de los proyectos ...................................................................................... 148
Conclusiones .................................................................................................................. 149
CAPÍTULO 7 Implementación del SOPC ....................................................... 151
Introducción .................................................................................................................. 151
Implementación del hardware y software .................................................................... 152
Ejecución del software desde memoria interna del dispositivo FPGA .......................... 152
Creación de los archivos de inicialización de memoria interna ................................................................... 153
Inclusión automática de los archivos de inicialización de memoria al proyecto Quartus II .................... 153
Inclusión manual de los archivos de inicialización de memoria al proyecto Quartus II ........................... 154
Ventajas y desventajas de la utilización de memoria interna del dispositivo FPGA .................................... 155
Ejecución del software desde la memoria flash de configuración del dispositivo FPGA
....................................................................................................................................... 156
Aplicación boot loading .............................................................................................................................. 156
Configuración por defecto de boot loading en la HAL de Altera ............................................................. 157
Configuración de opciones de la aplicación boot loading ....................................................................... 157
Inclusión de memoria flash en el SOPC ......................................................................... 158
Selección y configuración de memoria flash en SOPC ................................................................................ 158
Programación de la flash del sistema ......................................................................................................... 160
Creación del archivo de configuración de Flash Programmer ..................................................................... 161
Especificación de la configuración de Flash Programmer ........................................................................... 163
Opciones de Flash Programmer .............................................................................................................. 163
Ejecución del software desde memoria externa de almacenamiento masivo. ............. 164
Características de las memorias SD............................................................................................................. 164
Modo de funcionamiento de las memorias SD ....................................................................................... 165
Selección y configuración de memoria SD en SOPC ................................................................................ 165
Conclusiones .................................................................................................................. 165
Sistemas Embebidos en FPGA ________________________________________________ | xv
SISTEMAS EMBEBIDOS EN FPGA ? CAYSSIALS Alfaomega
CAPÍTULO 8 Verificación del funcionamiento de sistemas embebidos en
dispositivos FPGA ....................................................................................... 167
Introducción .................................................................................................................. 167
Simulación de SOPC ....................................................................................................... 168
Generación de un modelo de simulación en Qsys ...................................................................................... 168
Depuración en placa de desarrollo de SOPC ................................................................. 173
Nios II Software Build Tools for Eclipse ....................................................................................................... 173
Componente Nios II System ID ............................................................................................................... 174
Generación del archivo OBJdump ........................................................................................................... 174
Consola de Nios II y funciones de la biblioteca stdio .............................................................................. 177
Desbordamiento de la pila ...................................................................................................................... 177
Puntos de quiebre (Breakpoints) y ejecución paso-a-paso ..................................................................... 177
In-System Memory Content Editor ................................................................................ 178
SignalTap II Logic Analyzer ............................................................................................. 178
Conclusiones .................................................................................................................. 179
CAPÍTULO 9 El lenguaje de comandos Tcl ................................................... 181
Introducción .................................................................................................................. 181
El lenguaje de comandos Tcl ......................................................................................... 181
Sintaxis básica del lenguaje Tcl ................................................................................................................... 182
Intérprete Tcl .............................................................................................................................................. 182
Creación de archivos de comandos Tcl ....................................................................................................... 183
Ejecución de archivos de comandos Tcl ...................................................................................................... 183
Creación y sustitución de variables en Tcl ................................................................................................... 184
Creación de variables .............................................................................................................................. 184
Sustitución $ ........................................................................................................................................... 184
Operaciones aritméticas con variables: comando expr ........................................................................ 185
Sustitución anidada [ ] ............................................................................................................................ 185
Sustitución backslash .............................................................................................................................. 185
Evaluación de cadenas de caracteres: comando eval ............................................................................. 185
Listas ........................................................................................................................................................... 186
llength ..................................................................................................................................................... 186
lindex ...................................................................................................................................................... 186
lsearch .................................................................................................................................................... 186
lappend ...................................................................................................................................................