You are on page 1of 11
de la tecnologia ca crquitectra de computadores VHDL: de la tecnologia a la arquitectura de computadores José Jaime Ruz Ortiz Departamento de Arquitectura de Computadores y Automética Universidad Complutense de Madrid x EDITORIAL SINTESIS Prologo Con este libro pretendemos facilitar a los estudiantes de informatica y elec- trénica los conocimientos bésicos sobre el lenguaje de descripcién hardware VHDL para que lo utilicen en el andlisis y disefio de la estructura interna de los computadores. Gran parte del contenido del mismo ha servido de texto guia a los alumnos de tercer curso de Ingenieria Informatica en Ia asignatura Labo- ratorio de Estructura de Computadores, impartida por el autor en la Escuela Superior de Informatica de la Universidad Complutense de Madrid durante los tiltimos cuatro afios. El libro presupone en el lector conocimientos basicos de programacién, y est organizado para poner dichos conocimientos al servicio de! disefio y el modelado de dispositivos hardware. VHDL (VHSIC, Hardware Description Language) es un lenguaje impulsado por el Departamento de Defensa de los Estados Unidos dentro del programa VHSIC (Very High Speed Integrated Circuits) y estandarizado por IEEE Computer Society. Con VHDL se puede estudiar un sistema digital a diferentes niveles de abstracci6n dentro de un tinico lenguaje de programacién, acelerando considerablemente las diferentes fases de disefio y proporcionando un mejor conocimiento del mismo cuando se aborda la fase de implementacién fisica. Los miiltiples intereses que han concurrido en la definicién y estandariza- cién de VHDL lo han convertido en un lenguaje que los nuevos usuarios perci- ben con estructura desordenada y dificil de aprender y utilizar. A ello ha contri- buido, sin duda, la literatura que sobre la materia se ha producido en los uiltimos afios, muy especialmente el propio Manual de Referencia del Lenguaje. En efecto, muchos de los autores de libros sobre VHDL han introducido el lenguaje desde la éptica propia de un disefiador tradicional de hardware, es decir, comen- zando con aquellas construcciones que permiten la descripcin estructural de un sistema digital. Este enfoque, que resalta la correspondencia existente entre estas construcciones del lenguaje y Ia estructura interna de los dispositivos digi- 12 VHDL: DE LA TECNOLOGIA A LA ARGUITECTURA DE COMPUTADORES, tales que se modelan, facilita la comprensién superficial de algunos aspectos del Ienguaje, pero dificulta el entendimiento de la dimensién temporal del mismo, imprescindible para utilizar adecuadamente todas sus posibilidades. Las citadas construcciones no son mds que formas sintacticamente diferenciadas de la tnica sentencia concurrente disponible en el lenguaje: el proceso. El planteamiento que seguiremos en este libro para introducir el lenguaje es justo el inverso. Comenzaremos con el estudio exhaustivo de las caracterfsticas puramente secuenciales disponibles en VHDL para construir un proceso, andlo- gas a las de otros lenguajes de programacién software como Pascal 0 Ada Después introduciremos e] modelo temporal del lenguaje que hace posible la ejecucién concurrente y el intercambio de informacién entre procesos. Final- mente analizaremos las variaciones sintdcticas de los procesos que dan lugar a las diferentes sentencias concurrentes que posibilitan Ia escritura de programas con estilo estructural y de flujo de datos. Pensamos que esta organizaci6n de los contenidos basicos del libro transmite al lector una mayor unidad del lenguaje y proporciona los fundamentos de su seméntica operacional, imprescindible para entender el significado de las abundantes posibilidades expresivas de VHDL. La primera parte del libro es una descripcién basica del lenguaje compuesta de cinco capitulos. En el capitulo 1 se introducen los conceptos basicos del len- guaje y se modelan pequefios sistemas combinacionales y secuenciales. En el capitulo 2 se estudian exhaustivamente las construcciones secuenciales de VHDL. En el capitulo 3 se introduce el modelo temporal, resaltando la diferen- cia entre el dominio secuencial, donde opera un funcionamiento puramente algoritmico, y el dominio concurrente, compuesto por un conjunto de procesos que se ejecutan asincronamente y se comunican mediante una red de sefiales. Enel capitulo 4 se aborda el estudio de las sentencias concurrentes como formas particulares de procesos escritos con una sintaxis apropiada para construir los estilos estructural y de flujo de datos, tradicionales en los lenguajes de descrip- cién hardware. El capitulo 5 trata sobre las unidades de disefio VHDL, las bibliotecas de entidades y las diferentes configuraciones que se pueden estable- cer para un mismo dispositivo hardware. En la segunda parte del libro se aborda en tres capitulos el proceso de disefio con VHDL. En el capitulo 6 se describen los dominios de disefio en VHDL: comportamiento y estructural. El capitulo 7 se dedica al desarrollo de un multi- plicador binario siguiendo el algoritmo de suma y desplazamiento. Con él se introduce el disefio de maquinas algoritmicas utilizando un ejemplo con una sencilla interaccién entre ruta de datos y controlador, lo que facilita el uso de técnicas basadas en tipos abstractos de datos para la gestidn y depuracién sim- bélica de las relaciones de control. Finalmente, en el capitulo 8 se aborda el disefio completo de un pequefto computador. En él se hace uso de los conoci- mientos anteriores para llevar al terreno operativo los conceptos sobre disefio y funcionamiento de un computador con arquitectura convencional tipo von Neumann. Los programas VHDL completos de los capitulos 7 y 8 estan disponi- bles por fip en la direccién de Internet ftp://alien.dia.ucm.es/ en el directorio pub/pvhdl. Los subdirectorios y nombres de archivos se indican delante de cada segmento de cédigo. Con este libro hemos pretendido, ademés, que el lector en general y los estu- diantes de ingenieria electrénica e ingenierfa informética en particular, dispon- gan de una herramienta operativa valida para otras materias relacionadas con el hardware. Por ejemplo, como lenguaje de entrada para las herramientas de sin- tesis CAD, tales como VHDL Logic Synthesis de Synopsys Inc., Autologic de Mentor Graphics 0 Metamor, utilizadas en el disefio automético de circui integrados. Para analizar y medir diferentes modelos de procesadores -segmen- tados, RISC, vectoriales, superescalares, sistélicos, VLIW- y multiprocesadores, asf como arquitecturas especificas de Ia aplicacién. O bien para el estudio de modelos no interpretados de andlisis del rendimiento de configuraciones de sis- temas. En pocas palabras, disponer de un lenguaje que permita llevar al terreno operativo los conocimientos de! dominio del hardware, de la misma manera que un lenguaje de propésito general como Pascal 0 Modula lo hace con los conoci- mientos del dominio del software. A lo largo de todos los capitulos hemos pretendido mantener el interés emi- nentemente didéctico del libro. Por ello hemos utilizado las posibilidades expre- sivas de forma libre, sin someternos a disciplinas © normalizaciones que se justi- fican en ambientes profesionales y especificos dentro del mundo VHDL. Es éste el motivo de no incluir en el libro materias relacionadas con las actividades de normalizacién. Tampoco hemos creido oportuno introducir las nuevas construc- ciones que se derivan de la norma VHDL-93, ya que no aportan nada signiticati- vo desde el punto de vista pedagdgico. Para finalizar quiero agradecer la ayuda inestimable recibida de mis compatie- ros Alvaro Ruiz-Andino y Fernando Séenz. La colaboracién de Alvaro fue deci- siva en la puesta en marcha del Laboratorio de Estructura de Computadores de la Escuela Superior de Informatica y en el desarrollo del entorno de programa- cién que complementé las funciones del simulador bésico de VHDL que los alumnos han venido utilizando durante los tltimos cuatro afios. Fernando tuvo la paciencia de leer el borrador del libro y colaborar con sus sugerencias y comentarios a la mejora de su redaccién. Prélogo Indice 1, INTRODUCCION AL LENGUAJE VHDL 1.1. Dominios de aplicacién de VHDL . 1.2. 13. 14 15. 16. 11d. A 113. 1.1.4. 1.15. Niveles de disefio y dominios de representaci6n . Lenguajes precursores de VHDL 13. 14.1. 14. 1.43. Conceptos 151 15. Ejemplos de modelos VHDL ... 1.6.1 . Diagnosis de fallos . TEHDI Lenguajes competidores de VHDL Sintesis automatica Verificacién formal . Modelado de rendimiento Documentacién Verilog . UDLIT M icos de VHDL. — Sentencia de asignacién de variable ..... Sentencias de control del flujo de ejecucién Puerta AND de dos entradas Multiplexor .... Circuito AND con mascara i 6 VHDL: DE LA TECNOLOGIA A LA 1.6.4. Maquina de estados finitos 1.6.5. Sumador binario Practica Objetivos .. Practica a realizar Documentacién .. 2. VHDL SECUENCIAL 2.1. Elementos léxicos del lenguaje .. 2.1.1, Delimitadores 2.1.2. Identificadores 2.13. Literales numéricos 2.1.4. Literales cardcter .. 2.1.5, Cadenas de caracteres 2.1.6. Cadenas de bits . 2.1.7. Comentarios 2.2. Objetos de datos en VHDL 2.2.1. Declaracién de tipos 2.2.2. Subtipos 223, Declaracién de objetos de datos 2.2.4. Agregados de datos . 2.2.5. Atributos de datos . 2.3. Operadores predefinidos y expresiones 24, Alias ... 25. Sentencias secuenciales 25.1, Sentencia de asignacién de variable 2.5.2. Sentencia IF 2.53. Sentencia CASE ..... 2.5.4, Sentencias iterativas (LOOP, NEXT, EXIT) 2.5.5. Sentencia NULL . . 2.5.6. Sentencia ASSERT 2.5.7. Sentencia de asignaci6n de sefial ( 2.5.8. Sentencia WAIT 2.6. Subprogramas 2.6.1. Definicién de subprogramas . 2.6.2. Llamadas a subprogramas 263. Valores predeterminados en los subprogramas 2.7. Sobrecarga (overloading) Préctica Objetivos Précticas a realizar Documentacién 35 36 38 38 38 39 3. MODELO TEMPORAL DE VHDL 3.1. Dominios secuencial y concurrente en VHDL 1 3.2. Sentencia process 81 33. Sefiales 82 33.1. Tipos de retardo en las asignaciones de sefial... 83 3.2. Sefiales resueltas ww 86 3.4, Simulacién .. 87 3.5. Atributos de sefial 83 35.1. Atributos de sefial tipo funcién 94 3.5.2. Atributos de sefial tipo sefial .. 95 3.5.3. Programa de test de los atributos de sefial . 97 3.5.4. Programa ejemplo del uso de atributos de sefial 100 Préctica 101 Objetivos 101 Préctica a realizar 102 Documentacién 103 4, SENTENCIAS CONCURRENTES 4.1, Sentencia de asignaci6n de sefial concurrente .. 105 4.1.1, Sentencia de asignacién de sefial condicional .. 106 4.1.2. Sentencia de asignacién de sefial seleccionada 108 42. Sentencia de instanciacién de componentes .. 110 4.2.1, Declaracién de componentes 110 4.2.2. Especificacién de configuracién m1 4.2.3. Instanciacién de componentes .. 113 43. Sentencia de bloque ... 116 43.1. Bloques guardados 117 43.2. Bloques en la jerarquia de disefio 119 4.4, Llamada a procedimiento concurrente .. 120 4.5, Sentencia de aserto concurrente . 122 4.6. Sentencia de generacién 122 Practica 127 Objetivos 127 Préctica a realizar 127 Documentacién 128 5, UNIDADES DE DISENO 5.1. Declaracién de entidad sannon ss - se 129 5.2. Arquitectura de entidad 131 5.3. Paquetes ... 133 8 a x VHDL: DE LA TECNOLOGIA A LA ARQUITECTURA, 5.3.1. Declaracién de paquete 53.2. Cuerpo de paquetes .. 5.3.3. Paquetes estndar 5.4, Declaracién de configuracién 5.5, Bibliotecas de disefio VHDL 5.5.1. Clausula LIBRARY 5.5.2. Clausula USE on 5.6, Visibilidad 5.7. Fases en la ejecucin de un programa VHDL Practica ....... . Objetivos .. Précticas a realizar Documentacién .... DISENO LOGICO CON VHDL 6.1, Estilos de descripcién Modelos de descripcién de un sistema combinacional . 6.2.1. Modelo de comportamiento algoritmico 6.2.2. Modelo de flujo de datos . 6.2.3. Modelo estructural ... 6.3, Modelos de descripcién de un circuito secuencial 6.3.1. Modelo de comportamiento algoritmico 6.3.2. Modelo de flujo de datos 6.3.3. Modelo estructural 6.4. Modelos estructurales de circuitos regulares 6.5. Modelos de alta resolucién: sistemas de valores l6gicos 6.5.1. Sistemas de valores l6gicos en VHDL .... 6.5.2. Sistema de valores con 2 estados 6.5.3. Sistema de valores con 3 estados 6.5.4. Sistema de valores con 4 estados .. 6.5.5. Sistema de valores con 9 estados Practica ..... Objetivos Practica a realizar Documentacién . DISENO ALGORITMICO DE SISTEMA DIGITALES 7.1. Estructura de un sistema digital complejo .. TAA. Ruta de datos 7.1.2. Controlador 7.2. Modelo de flujo de datos de un sistema digital 133 134 136 139 145 145 146 146 148 148 148 148 148 151 152 153 155 185 159 160 161 162 165 172 173 174 174 177 179 182 182 182 182 183 184 185 185 72.1, Modelo de la ruta de datos .. 7.2.2. Modelo del controlador ... . 7.3. Multiplicador binario por suma-desplazamiento 73.1. Algoritmo de suma-desplazamiento 7.3.2. Declaracién de entidad 7.33. Codificacién de un paquete auxiliar .. 73.4. Arquitectura de comportamiento funcional ..... 7.3.5. Arquitectura de comportamiento algoritmica 73.6. Arquitectura de flujo de datos ....... 73.7. Arquitectura estructural 7.4, Modelado de un puerto serie de entrada/salida 75. Préctica 75.1. Objetivos 5.2. Précticas a realizar |. Documentacién 5 . DISENO DE UN COMPUTADOR CON VHDL 8.1. Definicién del computador . 8.1.1, Memoria y registros........ 8.1.2. Formato de las instrucciones 8.1.3, Repertorio de instrucciones 8.1.4, Ejemplos de programas 8.2. Modelo de comportamiento funcional 82.1. Declaracién de entidad . 82.2. Representacisn de las estructuras de datos 8.2.3, Ejecucién de instrucciones .. 82.4. Visualizacién del resultado de la ejecucién 82.5. Cédigo VHDL del modelo completo 82.6, Paquete utilidad 82.7. Resultados de la simulacién 83. Modelo UCP-memoria 83.1, Modelo de la memoria ..... 83.2, Modelo del reloj 83.3. Modelo de la Unidad Central de Proceso 83.4, Conexién UCP-memoria-reloj 83.5, Resultados de la simulacién 8.4, Modelo estructural 84.1, Estructura de la ruta de datos 8.4.2, Modelo estructural de la ruta de datos ... 8.4.3, Modelo de la unidad de control .. 8.4.4, Reloj 8.4.5, Memoria . inoice 9 185 187 188 188 189 190 191 192 194 199 210 215 215 215 216 217 218 218 219 219 220 220 221 222 224 225 229 230 231 232 235 236 242 243 247 247 249 259 269 270 10 _ VHDL: DE LA TECNOLOGIA A LA ARQUITECTURA DE COMPUTADORES 8.4.6. Conexién estructural reloj-memoria-unidad de control-ruta de datos 8.4.7. Resultados de la simulaci6n Practica 8.1 Objetivo: Practicas a realizar Documentacién .. Préctica 8.2 Objetivos Practica a realizar . Documentacién Apéndice A. Paquetes estandar . ‘Apéndice B. Resumen de las principales Srdenes del simulador VHDL de Model Technology .. . Apéndice C. Guia répida de VHDL'87 Bibliografia am 274 278 278 278 279 279 279 279 285 287 295 303 319

You might also like