Los lenguajes de descripción hardware son los pilares sobre los que se asienta la fuerte evolución que el diseño electrónico digital ha venido sufriendo durante los últimos años, por lo que el VHDL ha emergido como estándar en la industria convirtiéndose en el más utilizado hoy en día.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. ÍndicePRÓLOGOCAPÍTULO 1. METODOLOGÍA DE DISEÑO1.1 CONCEPTO DE HERRAMIENTAS CAD-EDA 1.2 DISEÑO BOTTOM-UP1.3 DISEÑO TOP-DOWN1.3.1 Ventajas del diseño Top-Down1.4 INGENIERÍA CONCURRENTECAPÍTULO 2. DESCRIPCIÓN DEL DISEÑO2.1 CAPTURA DE ESQUEMAS2.2 GENERACIÓN DE SÍMBOLOS 2.3 DISEÑO MODULAR2.4 DISEÑO JERÁRQUICO2.5 EL NETLIST 2.5.1 El formato EDIF2.5.2 Otros formatos de Netlist 2.5.3 Ejemplo de diferentes Netlist CAPÍTULO 3. INTRODUCCIÓN AL LENGUAJE VHDL3.1 EL LENGUAJE VHDL 3.1.1 VHDL describe estructura y comportamiento3.2 EJEMPLO BÁSICO Y ESTILOS DE DESCRIPCIÓN EN VHDL3.2.1 Descripción algorítmica 3.2.2 Descripción flujo de datos 3.2.3 Descripción estructuraCAPÍTULO 4. ELEMENTOS SINTÁCTICOS DEL VHDL 4.1 OPERADORES Y EXPRESIONES4.1.1 Operador de concatenación 4.1.2 Operadores aritméticos4.1.3 Operadores de desplazamiento4.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 escalares4.2.2 Tipos compuestos 4.2.3 Subtipos de datos4.2.4 Cualificación de tipos 4.2.5 Conversión de tipos 4.3 ATRIBUTOS4.3.1 Atributos definidos por el usuario 4.4 DECLARACIÓN DE CONSTANTES, VARIABLES Y SEÑALES4.4.1 Constantes 4.4.2 Variables 4.4.3 Señales4.4.4 Comparación entre constantes, señales y variables4.5 DECLARACIÓN DE ENTIDAD Y ARQUITECTURA 4.5.1 Declaración de entidad 4.5.2 Declaración de arquitecturaCAPÍTULO 5. DESCRIPCIÓN FLUJO DE DATOS5.1 EJECUCIÓN CONCURRENTE Y EJECUCIÓN SERIE 5.2 DESCRIPCIÓN CONCURRENTE FLUJO DE DATOS5.3 ESTRUCTURAS DE LA EJECUCIÓN FLUJO DE DATOS5.3.1 Asignación condicional: WHEN..ELSE 5.3.2 Asignación con selección: WITH..SELECT..WHEN5.3.3 Bloque concurrente: BLOCK5.4 EJEMPLOS DE DESCRIPCIÓN FLUJO DE DATOS CAPÍTULO 6. DESCRIPCIÓN COMPORTAMENTAL ALGORÍTMICA6.1 DIFERENCIAS ENTRE VARIABLE Y SEÑAL 6.2 ESTRUCTURAS DE LA EJECUCIÓN SERIE6.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 SERIE6.3.1 Descripción de cerrojos o latches6.3.2 Descripción de registros CAPÍTULO 7. DESCRIPCIÓN ESTRUCTURAL 7.1 COMPONENTES, REFERENCIA Y ENLACE7.1.1 Definición de componentes 7.1.2 Referencia de componentes7.1.3 Enlace entre componentes y entidades. Sentencia FOR7.1.4 Repetición de estructuras: GENERATE7.2 LA UNIDAD DE CONFIGURACIÓN 7.2.1 Ejemplo CAPÍTULO 8. PONIENDO ORDEN: SUBPROGRAMAS, PAQUETES Y BIBLIOTECAS8.1 SUBPROGRAMAS8.1.1 Declaración de procedimientos y funciones8.1.2 Llamadas a subprogramas 8.1.3 Sobrecarga de operadores8.1.4 Subprogramas con genéricos8.2 PAQUETES8.2.1 Definición de paquetes: PACKAGE y PACKAGE BODY8.3 BIBLIOTECAS Y UNIDADES8.3.1 ContextosCAPÍTULO 9. CONCEPTOS AVANZADOS EN VHDL 9.1 BUSES Y RESOLUCIÓN DE SEÑALES 9.2 PUNTEROS EN VHDL9.3 FICHEROS 9.3.1 Abrir y cerrar ficheros 9.3.2 Lectura y escritura de ficheros9.3.3 Ficheros de texto y entrada/salida estándar CAPÍTULO 10. EVOLUCIÓN DEL VHDL10.1 VHDL 200810.1.1 Mejoras en los genéricos 10.1.2 Operadores10.1.3 Sentencias nuevas y mejoradas10.1.4 Cambios en los tipos del sistema10.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 importantes10.1.9 Otros cambios menores 10.2 VHDL 2002 Y VHDL 200010.3 VHDL’93 Y VHDL’87 CAPÍTULO 11. VHDL PARA SIMULACIÓN11.1 ASIGNACIÓN CON RETRASOS11.1.1 Sintaxis completa de la asignación11.1.2 Especificación de retrasos 11.1.3 Retrasos inerciales y transportados 11.1.4 Simulación guiada por eventos11.1.5 Avance de tiempo por incremento fijo11.1.6 Ejemplo de modelado de un registro 11.2 NIVELES LÓGICOS PARA SIMULACIÓN11.3 NOTIFICACIÓN DE SUCESOS11.4 PROCESOS PASIVOS11.5 DESCRIPCIÓN DE UN BANCO DE PRUEBAS11.5.1 Método tabular 11.5.2 Utilización de ficheros con vectores de test 11.5.3 Metodología algorítmica CAPÍTULO 12. VHDL PARA SÍNTESIS12.1 RESTRICCIONES Y CONSEJOS EN LA DESCRIPCIÓN12.2 CONSTRUCCIONES BÁSICAS12.2.1 Descripción de lógica combinacional12.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 PROGRAMABLE12.4.1 Tecnologías de programación12.4.2 PAL, PLD y FPGA clásicas12.4.3 Arquitecturas de PLD avanzadasCAPÍTULO 13. UTILIZACIÓN DEL LENGUAJE VHDL13.1 ERRORES MÁS COMUNES AL UTILIZAR VHDL13.2 EJEMPLOS PARA SIMULACIÓN Y SÍNTESIS13.2.1 E