El objetivo de este libro no es únicamente el de presentar el lenguaje y su sintaxis, sino también el de introducir la metodología de trabajo inherente al lenguaje, ya que se trata del flujo de diseño actual de circuitos digitales. Además, se centra en las dos grandes áreas de aplicación del VHDL: la simulación y la síntesis automática de circuitos.
El presente manual se compone de 13 capítulos y 3 anexos, donde se incluyen los temas siguientes:
- Metodología y posibilidades en la descripción del diseño electrónico.
- Lenguajes de descripción hardware.
- Introducción y sintaxis del lenguaje.
- Estilos de descripción: estructural, flujo de datos y algorítmica.
- Bibliotecas, Paquetes y Unidades. Conceptos avanzados.
- Simulación y modelado.
- Síntesis automática de circuitos.
- VHDL en la práctica. Ejemplos y ejercicios resueltos.
- VHDL, herramientas de CAD y tutoriales.
- Evolución del lenguaje y el nuevo estándar VHDL 2008.
La estructura y contenido de esta obra están basados en varios años de experiencia en la enseñanza del VHDL y diseño digital, por lo que el principal objetivo perseguido por los autores es su carácter didáctico y pedagógico, sin olvidar que también va dirigido a los ingenieros que actualmente empiezan a incorporar estas técnicas de diseño a su entorno laboral. En esta tercera edición se han añadido nuevos elementos del lenguaje y ejemplos para dar cobertura a los importantes cambios y mejoras introducidos en el estándar de VHDL 2008. También se han incorporado los últimos avances en dispositivos de lógica programable, pues sigue siendo un área de fuerte evolución y cambio.
El libro contiene material adicional que podrá descargarse accediendo a la ficha del libro en www.ra-ma.es. Este material incluye los ejemplos desarrollados en la obra, así como software de simulación VHDL, y enlaces a las herramientas de simulación y síntesis descritas en los tutoriales del libro. CAPÍTULO 1. METODOLOGÍA DE DISEÑO CAPÍTULO 2. DESCRIPCIÓN DEL DISEÑO CAPÍTULO 3. INTRODUCCIÓN AL LENGUAJE VHDL CAPÍTULO 4. ELEMENTOS SINTÁCTICOS DEL VHDL CAPÍTULO 5. DESCRIPCIÓN FLUJO DE DATOS CAPÍTULO 6. DESCRIPCIÓN COMPORTAMENTAL ALGORÍTMICA CAPÍTULO 7. DESCRIPCIÓN ESTRUCTURAL CAPÍTULO 8. PONIENDO ORDEN: SUBPROGRAMAS, PAQUETES Y BIBLIOTECAS CAPÍTULO 9. CONCEPTOS AVANZADOS EN VHDL CAPÍTULO 10. EVOLUCIÓN DEL VHDL CAPÍTULO 11. VHDL PARA SIMULACIÓN CAPÍTULO 12. VHDL PARA SÍNTESIS CAPÍTULO 13. UTILIZACIÓN DEL LENGUAJE VHDL ANEXO A. MATERIAL ADICIONAL
1.1 CONCEPTO DE HERRAMIENTAS CAD-EDA
1.2 DISEÑO BOTTOM-UP
1.3 DISEÑO TOP-DOWN
1.3.1 Ventajas del diseño Top-Down
1.4 INGENIERÍA CONCURRENTE
2.1 CAPTURA DE ESQUEMAS
2.2 GENERACIÓN DE SÍMBOLOS
2.3 DISEÑO MODULAR
2.4 DISEÑO JERÁRQUICO
2.5 EL NETLIST
2.5.1 El formato EDIF
2.5.2 Otros formatos de Netlist
2.5.3 Ejemplo de diferentes Netlist
3.1 EL LENGUAJE VHDL
3.1.1 VHDL describe estructura y comportamiento
3.2 EJEMPLO BÁSICO Y ESTILOS DE DESCRIPCIÓN EN VHDL
3.2.1 Descripción algorítmica
3.2.2 Descripción flujo de datos
3.2.3 Descripción estructura
4.1 OPERADORES Y EXPRESIONES
4.1.1 Operador de concatenación
4.1.2 Operadores aritméticos
4.1.3 Operadores de desplazamiento
4.1.4 Operadores relacionales
4.1.5 Operadores lógicos
4.1.6 Precedencia de operadores
4.2 TIPOS DE DATOS
4.2.1 Tipos escalares
4.2.2 Tipos compuestos
4.2.3 Subtipos de datos
4.2.4 Cualificación de tipos
4.2.5 Conversión de tipos
4.3 ATRIBUTOS
4.3.1 Atributos definidos por el usuario
4.4 DECLARACIÓN DE CONSTANTES, VARIABLES Y SEÑALES
4.4.1 Constantes
4.4.2 Variables
4.4.3 Señales
4.4.4 Comparación entre constantes, señales y variables
4.5 DECLARACIÓN DE ENTIDAD Y ARQUITECTURA
4.5.1 Declaración de entidad
4.5.2 Declaración de arquitectura
5.1 EJECUCIÓN CONCURRENTE Y EJECUCIÓN SERIE
5.2 DESCRIPCIÓN CONCURRENTE FLUJO DE DATOS
5.3 ESTRUCTURAS DE LA EJECUCIÓN FLUJO DE DATOS
5.3.1 Asignación condicional: WHEN..ELSE
5.3.2 Asignación con selección: WITH..SELECT..WHEN
5.3.3 Bloque concurrente: BLOCK
5.4 EJEMPLOS DE DESCRIPCIÓN FLUJO DE DATOS
6.1 DIFERENCIAS ENTRE VARIABLE Y SEÑAL
6.2 ESTRUCTURAS DE LA EJECUCIÓN SERIE
6.2.1 El bloque de ejecución serie: PROCESS
6.2.2 Sentencia de espera: WAIT
6.2.3 Sentencia condicional: IF..THEN..ELSE
6.2.4 Sentencia de selección: CASE y CASE?
6.2.5 Bucles: LOOP, FOR y WHILE
6.3 EJEMPLOS DE EJECUCIÓN SERIE
6.3.1 Descripción de cerrojos o latches
6.3.2 Descripción de registros
7.1 COMPONENTES, REFERENCIA Y ENLACE
7.1.1 Definición de componentes
7.1.2 Referencia de componentes
7.1.3 Enlace entre componentes y entidades. Sentencia FOR
7.1.4 Repetición de estructuras: GENERATE
7.2 LA UNIDAD DE CONFIGURACIÓN
7.2.1 Ejemplo
8.1 SUBPROGRAMAS
8.1.1 Declaración de procedimientos y funciones
8.1.2 Llamadas a subprogramas
8.1.3 Sobrecarga de operadores
8.1.4 Subprogramas con genéricos
8.2 PAQUETES
8.2.1 Definición de paquetes: PACKAGE y PACKAGE BODY
8.3 BIBLIOTECAS Y UNIDADES
8.3.1 Contextos
9.1 BUSES Y RESOLUCIÓN DE SEÑALES
9.2 PUNTEROS EN VHDL
9.3 FICHEROS
9.3.1 Abrir y cerrar ficheros
9.3.2 Lectura y escritura de ficheros
9.3.3 Ficheros de texto y entrada/salida estándar
10.1 VHDL 2008
10.1.1 Mejoras en los genéricos
10.1.2 Operadores
10.1.3 Sentencias nuevas y mejoradas
10.1.4 Cambios en los tipos del sistema
10.1.5 Mejoras en el modelado
10.1.6 Mejoras en la entrada y salida
10.1.7 Cambios y mejoras en los paquetes estándar
10.1.8 Otros cambios importantes
10.1.9 Otros cambios menores
10.2 VHDL 2002 Y VHDL 2000
10.3 VHDL93 Y VHDL87
11.1 ASIGNACIÓN CON RETRASOS
11.1.1 Sintaxis completa de la asignación
11.1.2 Especificación de retrasos
11.1.3 Retrasos inerciales y transportados
11.1.4 Simulación guiada por eventos
11.1.5 Avance de tiempo por incremento fijo
11.1.6 Ejemplo de modelado de un registro
11.2 NIVELES LÓGICOS PARA SIMULACIÓN
11.3 NOTIFICACIÓN DE SUCESOS
11.4 PROCESOS PASIVOS
11.5 DESCRIPCIÓN DE UN BANCO DE PRUEBAS
11.5.1 Método tabular
11.5.2 Utilización de ficheros con vectores de test
11.5.3 Metodología algorítmica
12.1 RESTRICCIONES Y CONSEJOS EN LA DESCRIPCIÓN
12.2 CONSTRUCCIONES BÁSICAS
12.2.1 Descripción de lógica combinacional
12.2.2 Descripción de lógica secuencial
12.3 DESCRIPCIÓN DE MÁQUINAS DE ESTADOS
12.3.1 Máquinas asíncronas
12.3.2 Máquinas síncronas
12.4 LÓGICA PROGRAMABLE
12.4.1 Tecnologías de programación
12.4.2 PAL, PLD y FPGA clásicas
12.4.3 Arquitecturas de PLD avanzadas
13.1 ERRORES MÁS COMUNES AL UTILIZAR VHDL
13.2 EJEMPLOS PARA SIMULACIÓN Y SÍNTESIS
13.2.1 El botón
13.2.2 Los semáforos
13.2.3 El ascensor
13.2.4 La memoria ROM
13.2.5 El microprocesador
13.2.6 La lavadora
13.2.7 El concurso
13.2.8 El pin-ball
13.3 EJERCICIOS PROPUESTOS
A.1 INFORMACIÓN ADICIONAL Y GARANTÍA
ANEXO B. TUTORIALES Y HERRAMIENTAS DE VHDL
B.1 INSTALACIÓN DE QUARTUS II Y MODELSIM
B.2 TUTORIAL DE QUARTUS II
B.2.1 Creación de un proyecto
B.2.2 Descripción y compilación del circuito
B.2.3 Simulación del diseño
B.3 SIMULADOR DE VHDL MODELSIM
B.4 MAX+PLUS II
B.4.1 Instalación de MAX+PLUS II
B.4.2 Tutorial de un diseño para síntesis
B.5 SIMULADOR DE VHDL VERIBEST
B.5.1 Instalación
B.5.2 Tutorial básico para modelado
ANEXO C. VHDL Y HERRAMIENTAS EN INTERNET
ANEXO D. NOTACIÓN BNF DEL VHDL93
D.1 NOTACIÓN BNF
D.2 SINTAXIS DE VHDL93 EN NOTACIÓN BNF
BIBLIOGRAFÍA
ÍNDICE ALFABÉTICO