Vous êtes sur la page 1sur 10

INTRODUCCION AL LENGUAJE VHDL Como se sabe, la utilizacin de esquemas es la forma ms comn de describir un circuito, ya que son una representacin

grfica de lo que se pretende realizar, pero con la aparicin de las herramientas de EDA, como son descripcin como la de sntesis y realizacin, se hicieron cada vez ms complejas y es por eso que surgi la necesidad de la descripcin del circuito que permita el intercambio de informacin entre las diferentes herramientas que la componen el ciclo de diseo. En el principio se utiliz un lenguaje de descripcin que permita, describir un circuito mediante sentencias, donde se les llamo Netlist, que eran solamente un conjunto de instrucciones que indicaban el interconexionado entre los componentes de un diseo, es decir que se trataba de una lista de conexiones. Y apartir de estos lenguajes se descubri el inters de describir los circuitos utilizando un lenguaje en vez de usar esquemas. Con una mayor sofisticacin de las herramientas de diseo, y alcance de todos, con la posibilidad de fabricacin de circuitos integrados y de lgica programable, fue apareciendo la necesidad de describir los circuitos con un alto grado de abstraccin, no desde la ptica estructural, sino funcional; donde el nivel de abstraccin alcanzaba las herramientas de simulacin, donde para poder simular partes de un circuito era necesario disponer de un modelo que describiera el funcionamiento del circuito o sus componentes. EL LENGUAJE VHDL El significado de las siglas VHDL es VHSIC (Very High Speed Integrated Circuit) Hardware Description Languaje, es decir, lenguaje de descripcin hardware de circuitos integrados de muy alta velocidad. VHDL es un lenguaje de descripcin y modelado diseado para describir, en una forma en que los humanos y las maquinas pueden leer, entender la funcionalidad y la organizacin de sistemas de hardware digitales, placas de circuitos y componentes. VHDL fue desarrollado como un lenguaje de modelado y simulacin lgica dirigida por eventos de sistemas digitales, y actualmente se utiliza para la sntesis automtica de circuitos, donde fue desarrollado de forma muy parecida al ADA debido a que el ADA fue tambin propuesto como un lenguaje que tuviera estructuras y elementos sintcticos que permitieran la programacin de cualquier sistema hardware sin limitacin de la arquitectura.

VHDL es un lenguaje con una sintaxis amplia y flexible que permite el modelado estructural, en flujo de datos y de comportamiento hardware, este permite el modelado preciso, en distintos estilos, del comportamiento de un sistema digital conocido y el desarrollo de modelos de simulacin. Uno de los objetivos de este lenguaje es el modelado, desarrollo de un modelo para la simulacin de un circuito o sistema previamente implementado, cuyo comportamiento, es decir el objetivo del modelado es la simulacin. VHDL es un lenguaje que fue desarrollado inicialmente para ser usado en el modelado de sistemas digitales, es por esa razn que su utilizacin en sntesis no es inmediata, aunque lo cierto es que es la sofisticacin de las actuales herramientas de sntesis es tal que permiten implementar diseos especificados en un alto nivel de abstraccin. Las herramientas de sntesis basadas en el lenguaje permiten en la actualidad ganancias importantes en la productividad de diseo. Algunas ventajas del uso de VHDL para la descripcin hardware son: VHDL permite disear, modelar y comprobar un sistema desde un alto nivel de abstraccin bajando hasta el nivel de definicin estructural de puertas. Circuitos que utilizan VHDL, siguiendo unas guias de sntesis para sntesis, pueden ser utilizados por diversas herramientas de sntesis para crear e implementar circuitos. Los mdulos creados en VHDL pueden utilizarse en diferentes diseos, lo que permite la reutilizacin del cdigo, adems la descripcin puede emplearse para diferentes tecnologas sin tener que redisear todo el circuito. Al estar basados en el estndar (IEEE Std 1076-1987, IEEE Std 1076-1993) los ingenieros de toda la industria de diseo pueden usar este lenguaje para minimizar errores de comunicacin y problemas de compatibilidad. VHDL permite diseo Top-Down, esto es, describir (modelar) el comportamiento de los bloqueos de alto nivel, analizarlos (simularlos) y refinar la funcionalidad en alto nivel requerida antes de llegar a niveles ms bajos de abstraccin de la implementacin de diseo. Modularidad: VHDL permite dividir o descomponer un diseo hardware y su descripcin VHDL en unidades ms pequeas.

VHDL describe estructura y comportamiento. Existen dos formas de describir un circuito. En primera forma consiste describir un circuito indicando los diferentes componentes que lo forman y su interconexin, de esta manera se tiene especificado un circuito y se sabe cmo funciona. Las herramientas utilizadas para ello las de captura de esquemas y las de descripcin Netlist. La segunda forma consiste en describir un circuito indicando lo que se hace o como funciona, es decir, describiendo su comportamiento, que es lo ms importantes que sus componentes.

El VHDL permite los dos tipos de descripciones: Estructura: VHDL puede ser utilizado como lenguaje de Netlist normal y corriente donde se especifican por un lado los componentes del sistema y por otro sus interconexiones. Comportamiento: VHDL tambin se puede utilizar para la descripcin funcional o comportamental de un circuito. Sin necesidad de conocer la estructura interna de un circuito es posible describirlo explicando su funcionalidad. Esto es especialmente til en simulacin, ya que permite simular un sistema sisn conocer su estructura interna.

Muchas veces la descripcin comportamental se divide a su vez en dos, dependiendo del nivel de abstraccin y del modo en que se ejecutan las instrucciones. Estas dos formas comportamentales de describir circuitos son la de flujo de datos y la algortmica. ESTILOS DE DESCRIPCION EN VHDL VHDL presenta tres estilos de descripcin de circuitos dependiendo del nivel de abstraccin. El menos abstracto es una descripcin puramente estructural. Los otros dos estilos representan una descripcin comportamental o funcional, y la diferencia proviene de la utilizacin o no de la ejecucin serie. Descripcin logartmica. La sintaxis de VHDL no es sensible a maysculas o minsculas, por lo que se puede escribir como se prefiera. Lo que se puede hacer es poner las palabras clave del lenguaje en maysculas para distinguirlas de las variables y otros elementos.

En primer lugar, hay que definir el smbolo o entidad del circuito. En efecto, lo primero es precisar las entradas y salidas el circuito, es decir, la caja negra que lo define. Se le llama entidad porque en la sintaxis de VHDL esta parte se declara con la palabra clave ENTITY. La entidad de un circuito es nica. Cuando tiene un mismo smbolo en la entidad, poda tener varias vistas, por esa razn en VHDL se le llaman arquitecturas, donde cada arquitectura, que es donde se describe el circuito, puede ser una representacin diferente del mismo circuito. Esta descripcin comportamental es muy sencilla, ya que sigue una estructura parecida a los lenguajes de programacin convencionales. Es por lo que se dice que se trata de una descripcin comportamental algortmica. Descripcin flujo de datos. Tambin llamado transferencia entre registros, donde se puede ver instrucciones concurrentes, es decir, que se ejecutan cada vez que cambia algunas de las seales que e intervienen en la asignacin. En estas descripciones se pueden ver las seales (cables) y los componentes que la definen; aunque no es estructural, ya que en realidad s e trata de asignaciones a seales y no una lista de componentes y conexiones, pero adems se puede ver una descripcin de flujo de datos, aunque basta una nica instruccin de asignacin para definir un circuito. Descripcin estructural. El VHDL tambin permite ser usado como Netlist o lenguaje de descripcin de estructura, esta descripcin sirve para la realizacin de diseos jerrquicos, tambin incluye dentro de un bloque de arquitectura sintaxis diferentes. Al igual que ocurre en cualquier Netlist, las seales o conexiones deben tener un nombre.

ELEMENTOS SINTACTICOS DEL VHDL VHDL es un lenguaje, por lo que tiene sus elementos sintcticos, sus tipos de datos y sus estructuras como cualquier otro tipo de lenguaje. Algunos de los elementos sintcticos son los siguientes: Comentarios: cualquier lnea que empieza por dos guiones -- es un comentario. Smbolos especiales: adems de las palabras reservadas, existen unos smbolos o caracteres especiales. Los hay de un solo carcter: + - / * ( ) . , : ; & < > = | # , y los hay de dos y tres caracteres: ** => := /= >= <= <> -- ?< ?? ?= ?=> ?/= ?>= ?<=. Identificadores: es lo que se usa para dar nombre a los diferentes objetos del lenguaje como variables, seales, nombres de rutina, etc. Puede ser cualquier nombre compuesto por letras y nmeros, incluyendo el smbolo subrayado_, nunca puede contener ninguno de los smbolos especiales ni puede empezar por un numero o subrayado; tampoco se permite que el identificador acabe con un subrayado ni que haya dos seguidos. Por ltimo, no debe haber ningn identificador que coincida con alguna de las palabras clave del VHDL. Las maysculas y minsculas son consideradas iguales. Nmeros: cualquier nmero se considera que se encuentra en base 10. Se admite la notacin cientfica convencional para nmeros en como flotante. Es posible poner nmeros en otras bases utilizando el smbolo del sostenido #. Caracteres: son cualquier letra o carcter entre comillas simples: 123,t. Cadenas: son un conjunto de caracteres englobados por comillas dobles: Esto es una cadena. Cadenas de bits: los tipos bit y bit_vector son en realidad de tipo carcter y matriz de caracteres especiales. En VHDL se tiene una forma elegante de definir nmeros con esos tipos; y es mediante la cadena de bits. Dependiendo de la base en que se especifique el nmero se puede poner un prefijo B (binario), O (octal), o X (hexadecimal). Palabras reservadas: o palabras clave, son aquellas que tienen un significado especial. Son las instrucciones, rdenes y elementos que permiten definir sentencias. Por esa razn, no se deben utilizar como identificadores, ya que tiene un significado diferente.

OPERADORES Y EXPRESIONES. Operadores existentes en VHDL y su utilizacin. Operador de concatenacin. & (concatenacin). Concatena matrices de manera que la dimensin de la matriz resultante es la suma de las dimensiones de las matrices sobre las que opera.

Operadores aritmticos. ** (exponencial). Sirve para elevar un nmero a una potencia. ABS () (valor absoluto). Esta funcin devuelve el valor absoluto de su argumento que puede ser de cualquier tipo numrico. *(multiplicacin). Sirve para multiplicar dos nmeros de cualquier tipo numrico. / (divisin). Tambin funciona como cualquier tipo numrico. MOD (mdulo). Calcula el mdulo de dos nmeros. Se define el modulo como la operacin que cumple: a=b*N+ (a MOD b) donde N es un entero. Los operandos solo pueden ser enteros. El resultado toma el signo de b. REM (resto). Calcula el resto de la divisin entera y se define como el operador que cumple: a=(a/b)*b+(a REM b), siendo la divisin entera. Los operandos slo pueden ser enteros. El resultado toma el valor de a. + (suma y signo positivo). Este operador sirve para indicar suma, si va entre dos operandos, o signo si va al principio de una expresin. - (resta y signo negativo). Cuando va entre dos operandos se realiza la operacin de sustraccin, y si va delante de una expresin le cambia el signo. Los operandos pueden ser numricos de cualquier tipo. Mximum, mnimum (mximo y mnimo). Calculan al mximo y el mnimo de los valores que se les pasan como parmetros. Admiten cualquier nmero de parmetros desde uno. Admiten igualmente cualquier tipo siempre que exista el operador de comparacin < sobrecargado para este tipo.

Operadores de desplazamiento. SLL, SRL (desplazamiento lgico a izquierda y a derecha). Desplaza un vector un numero de bits a izquierda (SLL) o derecha (SRL) rellenando con ceros los huecos libres. Se utiliza en notacin infija de manera que la seal a la izquierda del operador es el vector que se quiere desplazar y el de la derecha es un valor que indica el nmero de bits a desplazar. SLA, SRA (desplazamiento aritmtico a izquierda y a derecha). El desplazamiento conserva el signo, es decir, coserva el valor que tuviera el bit ms significativo del vector. ROL, ROR (rotacin a izquierda y a derecha). Es como el de desplazamiento, pero los huecos que se forman son ocupado por los bits que van saliendo.

Operadores relacionales. Devuelven un valor tipo booleano (true o false). =, /= (igualdad). El primero devuelve true si los operandos son iguales y false en caso contrario. El segundo indica desigualdad, asi que funciona justo al revs. <, <=, >, >= (menor mayor). Tiene el significado habitual. En este los tipos de datos que pueden manejar son siempre de tipo escalar o matrices de una sola dimensin de tipos discretos.

Operadores lgicos. Son NOT, AND, NAND, OR, NOR, XOR y en el VHDL93 se aadi XNOR. El funcionamiento es habitual para este tipo de operadores. Actan sobre los tipos bit, bit_vector y boolean. En el caso de realizarse estas operaciones sobre un vector, la operacin se realiza bit a bit, incluyendo la operacin NOT que nada tiene que ver con el signo.

Precedencia de operadores. Mayor ** ABS NOT reduccin (AND OR NAND NOR XOR XNOR) */ MOD REM + (Signo) (signo) +- & = /= < <= > >= ?= ?/= ?< ?<= ?> ?>= Menor AND OR NAND NOR XOR XNOR

TIPOS DE DATOS Las sintaxis de VHDL son estrictas con respecto a los tipos. En VHDL no existen tipos propios del lenguaje como pueden ser el tipo real o integer, lo que tiene son los mecanismos para poder definir cualquiera de estos. Cuando se compila el programa se carca una parte del cdigo previa que se encuentra en la biblioteca, esta parte es comn a todas las herramientas de VHDL y contiene un serie de definiciones de tipos y funciones que casi parecen formar parte del propio lenguaje, pero no es as. En cualquier lenguaje, VHDL tiene dos grupos de tipos de datos. Son los escalares, con lo que se pueden formar el otro grupo, que es el formado por los tipos compuestos. Tipos escalares. Son tipos simples que contienen algn tipo de magnitud. Enteros: son datos cuyo contenido contiene un valor numrico entero. La forma en que se definen estos datos es mediante la palabra clave RANGE, es decir, no se dice que un dato es de tipo entero, sino que est comprendido en cierto intervalo especificando los lmites de dicho intervalo con valores enteros. Reales: conocidos tambin como coma flotante, son los tipos que definen un nmero real. Al igual que los enteros se definen mediante la palabra clave RANGE, con la diferencia de que los lmites son nmeros reales. Fsicos: se trata de datos que se corresponde con magnitudes fsicas, es decir, tienen un valor y unas unidades.

Enumerados: son datos que pueden tomar cualquier valor especificado en un conjunto finito o lista. Este conjunto se indica mediante una lista encerrada entre parntesis de elementos separados por comas.

Tipos compuestos. Son tipos de datos que estn compuestos por tipos escalares. Matrices: son una coleccin de elementos del mismo tipo a los que se accede mediante un ndice. Su significado y uso no difiere mucho de la misma estructura presente en casi todos los lenguajes de programacin. Los hay monodimensionales (un ndice) o multidimensionales (varios ndices).

Subtipos de datos. VHDL permite la definicin de subtipos que son restriccin o conjuntos de tipos existentes. El primero es el formado por subtipos obtenidos a partir de la restriccin de un tipo escalar a un rango. El segundo tipo de subtipos es el formado por aquellos que se restringen el rango de una matriz. Los subtipos sirven adems para crear tipos resueltos. La ventaja de utilizar un subtipo es que las mismas operaciones que sirvian para el tipo tambin lo hacen para el subtipo. Una funcin que opere sobre enteros funcionara igual de bien sobre un rango de enteros. En cambio, una funcin definidaa solo para un rango nicamente podr usarse para ese rango, con lo que se pierde generalida. Cualificacin de tipos. En determinadas ocasiones es posible encontrar valores que se puedan pertenecer a varios tipos diferentes, en estos caso cuando el entorno es no es suficiente para poder saber de qu tipo se trata, es necesario indicar el tipo de un valor determinado. En VHDL esto se hace poniendo el nombre del tipo seguido de un apostrofe y el valor a cualificar entre parntesis. La cualificacin de tipos resulta til para indicar si un valor es de un tipo o bien de un subtipo de este tipo. De esta manera se puede distinguir, si es necesario, entre el tipo y el subtipo de un determinado valor o expresin.

Conversin de tipos. En muchas ocasiones es necesario convertir unos tipos otros. Algunas conversiones, como el paso de entero a real, son automticas. La conversin de tipos en VHDL se realiza poniendo el nombre del tipo al que se quiere pasar seguido del valor entre parntesis. Las conversiones de tipos numricos son las mas directas, pero son posibles otras, especialmente para cadenas y vectores, siempre que la semejanza entre los tipos lo permita.

Vous aimerez peut-être aussi