Envíos gratis en compras superiores a $70.000

Sistemas Embebidos en FPGA

$30.940

  • Envío gratis en compras superiores a $70.000
  • Autor: CAYSSIALS, Ricardo

    Páginas: 340

    Editorial: Alfaomega

    ISBN: 9789871609697 Categoría:

    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.

    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

    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
    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
    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 ………………………………………………………………………………………………………………………………..

    Ir a Arriba