Sistemas Embebidos en FPGA

$458

Consultar disponibilidad

Autor: CAYSSIALS, Ricardo

Páginas: 340

Editorial: Alfaomega

Consultar disponibilidad

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

Título

Ir a Arriba