VHDL tema2 oct04 - Lecture notes 2 PDF

Title VHDL tema2 oct04 - Lecture notes 2
Author Fernando Palmero
Course Diseño de Circuitos Integrados
Institution Universidad Carlos III de Madrid
Pages 18
File Size 383.1 KB
File Type PDF
Total Downloads 12
Total Views 127

Summary

Tipos de datos...


Description

© Luis Entrena, 2004

Introducción al Diseño de Circuitos Digitales con VHDL

2. Tipos de datos y operadores Hasta ahora hemos resuelto todos los ejemplos que hemos planteado utilizando el tipo de datos lógico básico BIT. En principio, puede parecer que con este tipo de datos sería suficiente para el propósito de describir hardware. Sin embargo, VHDL soporta un amplio conjunto de tipos de datos que añaden flexibilidad y potencia al diseño. Los diferentes tipos de datos, predefinidos o definidos por el usuario, permiten representar la información que se procesa en un diseño de la forma más adecuada a cada situación. Esta es una de las características más distintivas del lenguaje VHDL y a ella está dedicada este capítulo. En la descripción de los tipos de datos se ha dado especial relevancia a aquellos cuyo uso es más frecuente. Por el contrario, no se describirán otros tipos de datos que, aunque están previstos en el lenguaje VHDL estándar, tienen una utilidad muy marginal. Por último, la descripción de algunos tipos de datos que sólo revisten interés de cara a la simulación, como los relacionados con los ficheros, se abordará en capítulos posteriores. A pesar de todo, la descripción de los tipos de datos y su uso resulta inevitablemente larga. Por otra parte, el verdadero dominio en el uso de los tipos de datos se irá adquiriendo al ponerlos en el contexto del diseño de circuitos concretos, como veremos en los próximos capítulos. En este sentido, el presente capítulo está orientado en gran medida a servir de referencia al lector, ilustrando los detalles relativos al uso correcto de los tipos de datos. En VHDL todos los objetos tienen un tipo de datos y un rango de posibles valores estrictamente definidos. Esta característica esta orientada a eliminar ambigüedades y permitir que el resultado de la síntesis pueda ser predecible. A lo largo del capítulo haremos un especial enfásis en los tipos que son sintetizables y el resultado que cabe esperar de la síntesis.

2.1. Tipos de datos En la Tabla 1 se muestra una clasificación de los principales tipos de datos en VHDL1. En primer lugar, estos se dividen en tipos escalares y tipos compuestos. Los tipos escalares son aquellos que no se pueden descomponer en elementos más sencillos. En VHDL existen cuatro clases de tipos escalares: enumerado, entero, real y físico. Los tipos compuestos constan de elementos, cada uno de los cuales tiene a su vez un tipo de dato. Si todos los elementos de un tipo compuesto tienen el mismo tipo de dato, entonces se trata de un vector o matriz (“array” en inglés). En caso contrario, se trata de una estructura de datos denominada RECORD en VHDL. En los siguientes apartados estudiaremos cada uno de los tipos de datos mostrados en la Tabla 1.

1

Existen otros tipos de datos en VHDL, además de los que se indican en la tabla. En concreto, el tipo fichero (FILE) se estudiará en el Cap. 6. Otros tipos tienen un uso muy escaso y no se tratarán en esta obra. 1

© Luis Entrena, 2004

Introducción al Diseño de Circuitos Digitales con VHDL

Escalares Compuestos Tabla 1.

Tipos de datos Enumerados Enteros Reales Físicos Vector/Matriz (ARRAY) RECORD Principales tipos de datos

2.2. Tipos enumerados Un tipo enumerado es el que se define mediante una enumeración de valores que son identificadores o literales de un solo carácter. Para declarar un tipo enumerado se comienza por la palabra clave TYPE, seguido del nombre del tipo, la palabra clave IS y finalmente la enumeración de los valores del tipo, separados por comas y encerrada entre paréntesis. A continuación se muestran varios ejemplos de declaraciones de tipos enumerados. TYPE conjunto_de_letras IS (‘A’, ‘B’, ‘C’, ‘D’); TYPE semaforo IS (verde, amarillo, rojo); TYPE estados IS (s0, s1, s2, s3, s4, s5);

En la primera declaración los valores son literales de un solo carácter. En las otras dos los valores son identificadores. Una vez declarado un tipo, se pueden declarar objetos de ese tipo y utilizarlos: CONSTANT primera_letra: conjunto_de_letras := ‘A’; SIGNAL semaforo1: semaforo; SIGNAL estado_actual: estados; ... estado_actual...


Similar Free PDFs