Sistemas Embebidos FPGA

15,58 

Otras opciones
15,58 

1 disponibles

  • ISBN: 9788426721587
  • Tipo de Encuadernación: Tapa blanda o bolsillo
  • Dimensiones de producto: 17x2x24
  • Número de páginas: 322

Libro físico

  • Envíos a todo el mundo
  • Suscriptores obtienen descuentos en la compra de libros físicos, envíos gratuitos en España Peninsular y Baleares y acceso a todo el catálogo digital de Marcombo.
    ¿No estás suscrito? ¡Suscríbete!
¿Quieres un descuento? ¡Hazte en miembro!

Más información

Descripción

Índice

Detalles

Colecciones

Categorías

Características

  • Autor: CASSIALS, RICARDO
  • Fecha de publicación: 16/06/2014

Descripción

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.

Información adicional

Peso 0,55 kg
Dimensiones 24 × 17 × 2 cm

Índice

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
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
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
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
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 . 187
foreach . 187
Estructuras de control en Tcl  187
Comando if/then/else/elseif . 188
Comando switch . 188
Comando for . 189
Comando foreach . 190
Comando while . 190
Comando break y continue . 191
Procedimientos . 191
Alcance de las variables en procedimientos (Scope)  192
Comandos de entrada/salida  192
Comando open . 192
Comando close . 193
Comando puts  193
Comando gets . 194
Comentario . 194
Ejecución de archivos Tcl por línea de comando. 195
CAPÍTULO 10 Lenguaje de comandos Tcl en herramientas de diseño: Quartus II  197
Lenguaje de comandos Tcl en herramientas de diseño  197
Soporte de archivos de comandos Tcl en Quartus II . 198
Paquetes Tcl (Tcl Packages)  198
Ejecutables de línea de comandos de Quartus II  200
Utilidad para ayuda de paquetes y comandos Tcl en Quartus II . 202
Creación y manipulación de proyectos en Quartus II con comandos Tcl  203
Paquete ::quartus::project . 204
Comando project_exist . 206
Comando project_new 206
Comando project_open . 207
Comando project_close . 208
Comando create_revision  209
Comando export_assignments . 209
Creación de proyectos en Quartus II mediante comandos Tcl  210
Ejemplo: creación de proyecto en Quartus II mediante comandos Tcl . 211
Asignación de pines  214
Compilación de proyectos en Quartus II con comandos Tcl 214
Paquete ::quartus::flow  214
Comando execute_flow . 215
Compilación de Proyectos en Quartus II mediante comandos Tcl  216
Ejemplo: compilación de proyecto en Quartus II mediante comandos Tcl . 216
Conclusiones  217
CAPÍTULO 11 Utilidades y archivos de comandos para la generación de SOPC  219
Introducción  219
Utilidades en Qsys y Nios II SBT . 219
Utilidades y archivos de comandos en Qsys  220
Creación y manipulación de SOPC con qsys-script . 220
Ejemplo de arquitectura de SOPC en Qsys  222
Generación del SOPC en Qsys con ip-generate 223
Generación de los archivos de simulación del SOPC con ip-make-simscript . 225
Utilidades y archivos de comandos en Nios II SBT  225
Archivos makefile en Nios II SBT . 226
Archivos de comandos y utilidades de línea de comandos de Nios II SBT  226
Comandos Tcl para la configuración del proyecto BSP . 228
Generación del proyecto BSP y comandos Tcl “Callbacks” . 228
Herramientas de línea de comando GNU para Nios II (Consola “bash”) . 229
Utilidades GNU para Nios II de Altera . 230
nios2-elf-gcc y nios2-elf-g++ . 230
nios2-elf-objdump  231
Creación de archivos de inicialización de memoria . 231
Conclusiones  231
Referencias  233
Anexo 1 Instalación de Linux CentOS-5 . 235
Anexo 2 Instalación de Quartus II Web Edition versión 13  253
Pasos para la instalación . 253
Configuración del menú de aplicaciones en CentOS . 260
Anexo 3 Flujo de diseño con utilidades de línea de comandos  265
Introducción  265
Flujo de diseño del proyecto en Quartus II mediante línea de Comandos . 266
Flujo de diseño de proyecto SOPC en Qsys mediante línea de comandos  267
Flujo de diseño de proyecto BSP mediante línea de comandos  268
Flujo de diseño de proyecto de aplicación mediante línea de comandos . 269
Anexo 4 Comandos Tcl para la utilidad “qsys-script”  271
Ejemplo . 272
Comandos Tcl de qsys-script . 272
Anexo 5 Comandos Tcl para la configuración de proyectos BSP  283
Anexo 6 Referencia de configuraciones de BSP, paquetes de software y controladores . 291
Anexo 7 Funciones y estructuras de la HAL de Altera  301
Funciones de la API de la HAL de Altera  301
Estructuras estándar de la HAL de Altera .. 310
Anexo 8 Biblioteca de código abierto newlib  313
Introducción  313
Tipos de datos en C . 313
Funciones de utilidades estándar (stdlib.h)  314
Macros y funciones para caracteres (ctype.h)  315
Funciones de entrada/salida (stdio.h) . 316
Manipulación de memoria y string (string.h)  318
String del tipo wide character (wchar.h) . 319
Manejo de señales: signal handling (signal.h) . 319
Funciones de tiempo (time.h) . 320
Configuración Local (locale.h) . 321
Reentrancia . 321
Llamadas al sistema (System Calls) 321
Definiciones para la interfaz con el sistema operativo (stubs)  321