Está en la página 1de 23

Sistemas digitales II

VHDL

INDICE
1.-Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.-Brebe resea histrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.-Definiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1.-HDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2.-VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2.1.-Definicin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2.2.-Ventajas y limitaciones .......................... 5

3.-Lenguaje VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.1.-Aspectos generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.2.-Estilos de descripcin en VHDL . . . . . . . . . . . . . . . . . . . . . . . 6 3.2.1.-Descripcin algortmica . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.2.2.-Descripcion flujo de datos ......................9

3.2.3.-Descripcin estructural . . . . . . . . . . . . . . . . . . . . . . . . . .10 3.3.-Sintaxis y semntica bsica de VHDL . . . . . . . . . . . . . . . . . .11 3.3.1.-Entidad VHDL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 3.3.2.-Arquitectura VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.-Ejemplos aplicativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.1.-Sumador completo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.2.-Flip-Flop JK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.3.- Descodificador de 7 segmentos 5.-Anexos . . . . . . . . . . . . . . . . . . . 20 1

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

6.-Bibliografa

Ingeniera Electrnica | UNSAAC

Sistemas digitales II
VHDL

I.-Introduccin
Breve resea histrica A mediados de los aos sesenta se produce una fuerte evolucin en los procesos de fabricacin de los circuitos integrados, y junto a las tecnologas bipolares, surgen la MOS, principalmente la NMOS, promoviendo el desarrollo de circuitos digitales hasta la primera mitad de los ochenta. En aquellas pocas, el esfuerzo de diseo se concentraba en los niveles elctricos de establecer caractersticas e interconexiones entre los componentes bsicos a nivel de transistor. El proceso de diseo era altamente manual y tan solo se empleaban herramientas como el PSPICE, para la simulacin de esquemas elctricos con modelos previamente personalizados, a las distintas tecnologas. A medida que pasaban los aos, los procesos tecnolgicos se hacan ms y ms complejos. Los problemas de integracin iban en aumento y los diseos eran cada vez ms difciles de depurar y de dar mantenimiento. Inicialmente los circuitos M.S.I. y L.S.I. se disearon medianamente la realizacin de prototipos basados en mdulos ms sencillos. Cada uno de estos mdulos estaba formado por puertas ya probadas, este mtodo poco a poco, iba quedndose obsoleto. En ese momento (finales de los aos sesenta) se constata el enorme desfase entre tecnologa y diseo. La considerable complejidad de los chips que se pueden fabricar, implica unos riesgos y costes de diseo desmesurados e imposibles de asumir por las empresas. Es entonces, cuando diversos grupos de investigadores empiezan a crear y desarrollar los llamados lenguajes de descripcin de hardware con sus caractersticas diferentes. Empresas tales como IBM con su IDL, el TI-HDL de Texas Instruments, ZEUS de General Electric, etc., as como los primeros prototipos empleados en las universidades, empezaron a desarrollarse buscando una solucin a los problemas que presentaba el diseo de los complejos sistemas.

Ingeniera Electrnica | UNSAAC

Sistemas digitales II
VHDL

Sin embargo, estos lenguajes nunca alcanzaron el nivel de difusin y consolidacin necesarias por motivos distintos. Unos, los industriales, por ser propiedad de la empresa permanecieron encerrados en ellas y no estuvieron disponibles para su estandarizacin y mayor difusin, los otros, los universitarios, perecieron por no disponer de soporte ni mantenimiento adecuado. Alrededor de 1981 el departamento de Defensa de los Estados Unidos desarrolla un proyecto llamado VHSIC (Very High Speed Integrated Circuit) su objetivo era rentabilizar las inversiones en hardware haciendo ms sencillo su mantenimiento. Se pretenda con ello resolver el problema de modificar el hardware diseado en un proyecto para utilizarlo en otro, lo que no era posible hasta entonces porque no exista una herramienta adecuada que armonizarse y normalizarse dicha tarea, era el momento de los HDLs. VHDL vs M.S.I. En 1983, IBM, Intemetrics y Texas Istruments empezaron a trabajar en el desarrollo de un lenguaje de diseo que permitiera la estandarizacin, facilitando con ello, el mantenimiento de los diseos y la depuracin de los algoritmos, para ello el IEEE propuso su estndar en 1984. Tras varias versiones llevadas a cabo con la colaboracin de la industria y de las universidades, que constituyeron a posteriori etapas intermedias en el desarrollo del lenguaje. El IEEE adopt en diciembre de 1987 a VHDL como su lenguaje HDL, dando un impulso a ste frente a sus competidores. El estndar IEEE std 1076-1987 que constituy el punto firme de partida de lo que despus de cinco aos sera ratificado como VHDL. La independencia en la metodologa de diseo, en el proceso de fabricacin, su versatilidad para la fabricacin de sistemas de complejas, su posibilidad de reutilizacin, han hecho que VHDL se convierta con el paso del tiempo en el lenguaje de descripcin de hardware por excelencia.

Ingeniera Electrnica | UNSAAC

Sistemas digitales II
VHDL

II.-Definiciones 2.1.-HDL.- Los lenguajes de descripcin hardware (HDLs, Hardware Description Languages) permiten modelar sistemas digitales completos. Mediante herramientas de software estos modelos pueden luego sintetizarse para implementarlos como circuitos reales. La utilizacin de HDLs y su posterior sntesis pueden tener como objetivo la creacin de un circuito integrado de propsito especfico (ASICs) o la implementacin del circuito en algn dispositivo de lgica programable (PLDs). Al utilizar un HDL es importante tener en cuenta que se est modelando hardware, y no escribiendo software. Existen varios HDLs pero dos son los que predominan: Verilog y VHDL. 2.2.-VHDL 2.2.1.-Definicin.- El significado de las siglas VHDL es VHSIC (Very High Speed Integrated Circuit) Hardware Description Language, es decir, lenguaje de descripcin hardware de circuitos integrados de muy alta velocidad. VHDL es un lenguaje de descripcin y modelado, diseado para describir, es una forma en que los humanos y mquinas puedan leer y entender la funcionalidad y la organizacin de sistemas hardware digitales, placas de circuitos y componentes. VHDL fue diseado como un lenguaje para el modelado y simulacin lgica dirigida por eventos de sistemas digitales, y actualmente se utiliza tambin para sntesis automtica de circuitos. VHDL es un lenguaje con una sintaxis amplia y flexible que permite el modelado estructural, en flujo de datos y de comportamiento de hardware. VHDL permite el modelado preciso, en distintos estilos, del comportamiento de un sistema digital conocido y desarrollado en modelos de simulacin. Uno de los objetivos del lenguaje VHDL es el modelado. Modelado es el desarrollo de un modelo para la simulacin de un circuito o
4

Ingeniera Electrnica | UNSAAC

Sistemas digitales II
VHDL

sistema previamente implementado cuyo comportamiento, por tanto, se conoce. El objetivo de modelado es la simulacin. 2.2.2.-Ventajas y limitaciones.-La sntesis a partir de VHDL constituye hoy en da una de las principales aplicaciones del lenguaje con una demanda de uso. 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 de 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 descritos utilizando VHDL, siguiendo unas guas 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 misma descripcin puede utilizarse para diferentes tecnologas sin tener que redisear todo el circuito. Al estar basado en un 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 bloques de alto nivel, analizarlos (simularlos) y refinar su funcionalidad en alto nivel requerida antes de llegar a niveles ms bajos de abstraccin de la implementacin del diseo. Modularidad: VHDL permite dividir o descomponer un diseo hardware y su descripcin VHDL en unidades ms pequeas.

Alguna de las limitaciones que presenta el uso de VHDL son: No permite describir sistemas analgicos. Sin embargo ya se estn desarrollando versiones analgicas y mixtas.
5

Ingeniera Electrnica | UNSAAC

Sistemas digitales II
VHDL

No existe un estilo de descripcin normalizado. Para sntesis se requiere ajustar los estilos disponibles a la capacidad de herramientas CAD. Es posible sintetizar lgica solo de un subconjunto del lenguaje. Las herramientas de sntesis no soportan los mismos subconjuntos, y existen a veces diferencias al mudar de herramientas.

3.-Lenguaje VHDL 3.1.-Aspectos generales El VHDL va a ser interesante puesto que va a permitir dos tipos de descripciones: Estructura: VHDL puede ser usado como un lenguaje de netlist normal y corriente y corriente donde se especifican por un lado los componentes del sistema y por otro sus conexiones. Comportamiento: VHDL tambin se puede utilizar para la descripcin comportamental o funcional de un circuito. Esto es lo que distingue de un lenguaje de Netlist. Esto es especialmente til en simulacin, ya que permite simular un sistema sin 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 las de flujo de datos y algortmica. 3.2.-Estilos de descripcin 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 viene de la utilizacin o no de la ejecucin serie. Mediante un sencillo ejemplo, que adems sirve para ilustrar la forma en que se escriben descripciones en VHDL, se van a mostrar estos tres estilos de descripcin.
Ingeniera Electrnica | UNSAAC 6

Sistemas digitales II
VHDL

Ejemplo 3.1 Describir en VHDL un circuito que multiplexe dos lneas de entrada (a y b)de un bit, a una sola lnea (salida) tambin de un bit; la seal selec sirve para seleccionar la lnea a(selec=0) o b(selec=1). En la fig. 6 se muestra el circuito implementado con puertas lgicas que realiza la funcin de multiplexacin.

Fig. 6 Ejemplo bsico de un esquema en VHDL 3.2.1.-Descripcin algortmica La sintaxis del VHDL no es sensible a maysculas, por lo que se puede describir como se prefiera. A lo largo de las explicaciones se pondrn siempre las palabras clave del lenguaje en maysculas para distinguirlas de las variables y otros elementos. Esto no significa que durante la descripcin de diseos se tenga que hacer as, de hecho resulta ms rpido escribir siempre en minsculas. En primer lugar, sea el tipo de descripcin que sea, hay que definir el smbolo o entidad del circuito. En efecto, lo primero es definir las entradas y salidas del circuito, es decir, la caja negra que lo define. Se llama entidad por que la sintaxis de VHDL esta parte se declara con la palabra clave ENTITY. Esta definicin de entidad, que suele ser la primera parte de toda la descripcin VHDL, se expone a continuacin: -- Los comentarios empiezan con dos guiones ENTITY mux IS
7

Ingeniera Electrnica | UNSAAC

Sistemas digitales II
VHDL

PORT (a: B: C: Salida: END mux;

IN bit; IN bit; IN bit; OUT bit);

sta porcin del lenguaje indica que la entidad mux (que es el nombre que se le ha dado al circuito) tiene tres entradas de tipo bit y una salida tambin de tipo bit. Simplemente indica un lnea que puede tomar valores 0 1. La entidad de un circuito es nica. Sin embargo, se mostr que un mismo smbolo, en este caso entidad, poda tener varias vistas, que en el caso de VHDL se llaman arquitecturas. Cada bloque de arquitectura, que es donde se describe el circuito, puede ser una representacin diferente del mismo circuito. Por ejemplo, puede haber una descripcin estructural y otra comportamental, ambas son descripciones diferentes, pero ambas corresponden al mismo circuito, smbolo, o entidad. Se muestra a continuacin la descripcin comportamental del multiplexor: ARCHITECTURE comportamental OF mux IS BEGIN PROCESS(a,b,selec) BEGIN IF (selec='0') THEN salida<=a; ELSE salida<=b; END IF; END PROCESS; END comportamental; Ms adelante se ver lo que hace un bloque PROCESS, de momento, y como primera aproximacin, se considerar que es una especie de subrutina cuyas instrucciones se ejecutan secuencialmente cada vez que alguna de las seales de la lista sensible cambia. Esta lista sensible es una

Ingeniera Electrnica | UNSAAC

Sistemas digitales II
VHDL

lista de seales que suele poner junto a la palabra clave PROCESS, y en el caso del ejemplo es (a, b, selec). Esta descripcin comportamental es muy sencilla de entender, ya que sigue una estructura parecida los lenguajes de programacin convencionales. Es por lo que se dice que se trata de una descripcin comportamental algortmica. Lo que se est indicando es simplemente que si la seal selec es cero, entonces la salida es la entrada a, y si selec es uno, entonces la salida es la entrada b. Esta forma tan sencilla de describir el circuito permite a ciertas herramientas sintetizar el diseo a partir de una descripcin comportamental como la que se acaba de mostrar. La diferencia con un Netlist es directa: en una descripcin comportamental no se estn indicando ni los componentes ni sus interconexiones, sino simplemente lo que hace, es decir, su comportamiento o funcioamiento. 3.2.2.-Descripcion flujo de datos.- La descripcin anterior era puramente comportamental, de manera que con una secuencia sencilla de instrucciones se podra describir el circuito. Naturalmente, a veces resulta ms interesante describir el circuito de forma que est ms cercano a una posible realizacin fsica del mismo. En ese sentido VHDL posee una forma de describir circuitos que adems permite la paralelizacin de instrucciones, y que se encuentra ms cercana a una descripcin estructural del mismo, siendo todava una descripcin funcional. A continuacin se muestran dos ejemplos de una descripcin concurrente, tambin llamada de flujo de datos o de transferencia entre registros: ARCHITECTURE flujo1 OF mux IS SIGNAL nosel,ax,bx:bit; ARCHITECTURE flujo2 OF mux IS BEGIN BEGIN nosel<=NOT selec; salida<=a WHEN selec='0' ax<=a AND nosel; ELSE bx<=b AND selec; b; salida<=ax OR bx; END flujo2; END flujo1; En la descripcin de la izquierda hay varias instrucciones todas ellas concurrentes, es decir, se ejecutan cada vez que cambia alguna de las
Ingeniera Electrnica | UNSAAC

Sistemas digitales II
VHDL

seales que intervienen en la asignacin. Este primer caso es casi una descripcin estructural, ya que de alguna manera se estn describiendo las seales (cables) y los componentes que la definen; aunque no es estructural, ya que en realidad se trata de asignaciones a seales y no una lista de componentes y conexiones. El segundo caso (derecha) es tambin una descripcin de flujo de datos, aunque basta una nica instruccin de asignacin para definir el circuito. 3.2.3.-Descripcin estructural.- Aunque no es la caracterstica ms interesante del VHDL, tambin permite ser usado como Netlist o lenguaje de descripcin de estructura. En este caso esta estructura tambin estara indicada dentro de un bloque de arquitectura, aunque la sintaxis interna es completamente diferente: ARQUITECTURA estructura OF mux IS SIGNAL ax,bx,nosel:bit; BEGIN u0:ENTITY inv PORT MAP(e=>selec,y=>nosel); u1:ENTITY and2 PORT MAP(e1=>a,e2=>nosel,y=ax); u2:ENTITY and2 PORT MAP(b,selec,bx); u3:ENTITY or2 PORT MAP(e1=>ax,e2=>bx,y=salida); END estructura; Se observa fcilmente que esta descripcin es un poco ms larga u mucho menos clara que las anteriores. En el cuerpo de la arquitectura se hace lo que en un Netlist normal, es decir, se ponen los componentes y sus interconexiones. Para los componentes se utilizarn entidades que estarn definidas en alguna biblioteca, y para las conexiones se usarn seales que se declararn al principio de la arquitectura. Al igual que ocurre en cualquier netlis, las seales o conexiones deben tener un nombre. En el esquema se le han puesto nombres a las lneas de conexin internas al circuito. Estas lneas hay que declararlas como SIGNAL en el cuerpo de la arquitectura y delante del BEGIN. Una vez declaradas las seales que intervienen se procede a conectar entre s las seales y entidades que representan componentes. Para ello la sintaxis es muy simple. Lo primero es identificar y poner cada componente, que es lo que
Ingeniera Electrnica | UNSAAC

10

Sistemas digitales II
VHDL

comnmente se conoce como replicacin, es decir, asignarle a cada componente concreto un smbolo. En este ejemplo se le ha llamado u a cada componente y se le ha aadido un nmero para distinguirlos, en principio el nombre puede ser cualquier identificador vlido y la nica condicin es que no haya dos nombres iguales. A continuacin del nombre viene la entidad correspondiente al componente, que en este caso puede ser una and2, una or2 o una puerta inversora inv. Despus se realizan las conexiones poniendo cada seal en su lugar correspondiente con las palabras PORT MAP. As los dos primeros argumentos en el caso de la puerta and2 son las entradas, y el ltimo es la salida. De esta forma tan simple se va creando el netlist o definicin de la estructura. 3.3.-Sintaxis y semntica bsica de VHDL Los circuitos digitales realizan operaciones (sumas, comparaciones, cuentas, almacenamiento, etc.) sobre seales digitales utilizando una combinacin de puertas lgicas, registros, memorias y dispositivos de entrada y salida. VHDL provee varios tipos de datos, operadores y sentencias para modelar el funcionamiento del circuito lgico y representar sus seales y componentes. Una descripcin de un circuito en VHDL se hace en dos partes claramente definidas para separar la interfaz del circuito lgico (entidad) de la implementacin de la funcin lgica (arquitectura). Toda descripcin circuital en VHDL consta de una nica entidad y de una o ms arquitecturas. Puede existir ms de una arquitectura para una entidad porque usualmente es posible definir varias soluciones para una funcin lgica. 3.3.1.-Entidad VHDL.- La entidad (ENTITY) es un bloque que define la configuracin de las entradas y salidas del circuito, es decir, especifica su interfaz o la manera en que el circuito puede ser usado o conectado a otros circuitos. Tambin sirve para definir parmetros del circuito (nmeros de bits, lmites de cuentas). La sintaxis de una entidad es:

11

Ingeniera Electrnica | UNSAAC

Sistemas digitales II
VHDL

Una entidad puede contener dos secciones: GENERIC y PORT. En la primera seccin podemos colocar parmetros del diseo, y en PORT se identifican los puertos de interfaz del circuito. Cada puerto es una seal que tiene nombre (identificador de la seal), modo de conexin y tipo de dato. En las descripciones VHDL es indiferente utilizar letras maysculas o minsculas, a excepcin de los valores constantes que usualmente se deben colocar en maysculas. Los comentarios se insertan en cada lnea escribiendo primero dos guiones seguidos (--).
MODO de las seales

Existen cuatro modos de interconexin de las seales con el medio exterior: IN La seal es una entrada al circuito. No puede ser escrita, es decir, a esta seal no se le puede asignar un valor, solamente puede ser leda y utilizada como operando en funciones internas. OUT Salida nicamente. La seal sale del circuito. A esta seal se le puede asignar un valor pero no puede ser leda o utilizada como operando en funciones internas. INOUT La seal es bidireccional, es decir, de entrada y salida. Puede ser leda y escrita. BUFFER Salida que puede ser utilizada como operando en el circuito, es decir, puede formar parte de expresiones para asignar a otras seales en el circuito.
Ingeniera Electrnica | UNSAAC 12

Sistemas digitales II
VHDL

TIPOS DE DATOS

Los tipos de datos utilizados para sntesis en VHDL son INTEGER, BIT, BIT_VECTOR, STD_LOGIC y STD_LOGIC_VECTOR. Adems VHDL provee operadores y tipos de datos para documentacin y simulacin tales como REAL y TIME. INTEGER Se utiliza con nmeros enteros. BIT Puede contener '0' '1' (se usa comilla simple). BIT_VECTOR Puede contener un bus, vector o grupo de datos de tipo BIT. Las constantes de este tipo se especifican con una cadena de ceros y unos encerrados entre comillas dobles como en "00101101", "0101", "00". STD_LOGIC Tiene los valores '0', '1', '', 'Z' y 5 otros valores ms no utilizando para sntesis lgica. El valor '' es de no importa y 'Z' (en mayscula) es valor de tres estados. STD_LOGIC_VECTOR El tipo es un bus de datos STD_LOGIC. Los tipos STD_LOGIC y STD_LOGIC_VECTOR se prefieren en el mbito industrial. Para utilizar estos tipos es necesario insertar el paquete std_logic_1164 de la biblioteca IEEE. Para manejar buses, grupos de bits, se emplea BIT_VECTOR o STD_LOGIC_VECTOR. En general, un bus de N bits puede ser declarado de varias maneras: BIT_VECTOR(N 1 DOWNTO 0) BIT_VECTOR(N DOWNTO 1) BIT_VECTOR(1 TO N) BIT_VECTOR(0 TO N 1) BIT_VECTOR(10 TO N + 9) BIT_VECTOR(N + 19 DOWNTO 20)
13

Ingeniera Electrnica | UNSAAC

Sistemas digitales II
VHDL

Ejemplos de entidades OR de dos entradas de tipo std_logic_1164 de la biblioteca IEEE) STD_LOGIC (requiere el paquete

AND de N entradas de tipo BIT. La salida s es la funcin AND de todos los bits de la seal a.

Multiplexor de dos canales de cuatro bits cada uno. Las seales a y b son buses de datos de tipo STD_LOGIC_VECTOR. La seal s es el selector, f es la salida del multiplexor.

14

Ingeniera Electrnica | UNSAAC

Sistemas digitales II
VHDL

3.3.2.-Arquitectura VHDL.-En la arquitectura se define el funcionamiento del circuito lgico declarado en la entidad. Es posible crear varias formas de un circuito lgico y para ello una entidad puede tener asociadas varias arquitecturas. De este modo podemos tener opciones de diseo para solucionar un mismo problema. Su sintaxis bsica es:

Las sentencias ms utilizadas en la definicin de circuitos son la asignacin directa, la asignacin selectiva, la asignacin condicional, el proceso y la instanciacin de componentes. Estas sentencias son concurrentes entre s, es decir, no importa el orden en que aparezcan en la descripcin. Las seales internas del circuito se declaran en la arquitectura con un nombre y un tipo de dato. A continuacin se muestran dos versiones de modelado para una funcin AND de dos entradas. Una versin emplea datos de tipo BIT y la otra emplea datos de tipo STD_LOGIC. La salida s se define en la arquitectura como el resultado de la operacin AND de las entradas a y b. Note que para asignar a una seal una expresin se utiliza el signo < seguido del signo =.
15

Ingeniera Electrnica | UNSAAC

Sistemas digitales II
VHDL

And2x con BIT

And2x con STD_LOGIC

Operadores Los operadores sirven para realizar las funciones lgicas y aritmticas del circuito. Los datos de tipo INTEGER se pueden sumar (+) y restar (-). Tambin es posible multiplicarlos (*).Los datos de tipos STD_LOGIC y STD_LOGIC_VECTOR pueden sumarse y restarse usando paquetes de la biblioteca IEEE. Los datos de tipo INTEGER, BIT, BIT_VECTOR, STD_LOGIC y STD_LOGIC_VECTOR pueden ser comparados con los operadores relacionales igual (=), diferente (/=), menor (<), menor o igual (<=), mayor (>), mayor o igual (>=). Los operadores lgicos son AND, OR, NOT, NAND, NOR y XOR. Se utilizan con los tipos de datos BIT, BIT_VECTOR, STD_LOGIC y STD_LOGIC_VECTOR.
16

Ingeniera Electrnica | UNSAAC

Sistemas digitales II
VHDL

Buses Los buses se utilizan frecuentemente en el diseo digital. Por ejemplo, si f es una seal interna de un circuito de 3 bits, podramos declararla en la arquitectura, antes de BEGIN, como: SIGNAL f: BIT_VECTOR(2 DOWNTO 0); De esta manera, f es una seal de tres bits con el bit ms significativo identificado como f(2), el bit intermedio como f(1) y el bit menos significativo como f(0). En el cuerpo de la arquitectura, despus de BEGIN, a f puede asignrsele un valor como "110" as: f <= "110"; Lo que es equivalente a hacer tres asignaciones:
f(0) <= '0'; f(1) <= '1'; f(2) <= '1';

Si queremos agrupar tres seales binarias en una sola seal podemos utilizar el operador de concatenacin &. As, si se declara: SIGNAL a, b, c: STD_LOGIC; Entonces la asignacin: f <= a & b & c; f(2) <= a; f(1) <= b; f(0) <= c; Tambin podemos hacer agrupaciones compuestas. Si r es una seal de ocho bits y t de 1 bit, podemos agrupar en x algo complejo como: x <= '0' & r & "01" & t; En este caso x debe haber sido definido como un bus de 1 + 8 + 2 + 1 = 12 bits. Note que los valores constantes de bits van entre comillas simples ('1', '0') y los valores de buses van entre comillas dobles ("01", "110").
Ingeniera Electrnica | UNSAAC

es equivalente a:

17

Sistemas digitales II
VHDL

4.-Ejemplos aplicativos: 4.1.-Sumador completo

18

Ingeniera Electrnica | UNSAAC

Sistemas digitales II
VHDL

4.2.-Flip-Flop JK Flip-Flop JK activado por flanco positivo:

19

Ingeniera Electrnica | UNSAAC

Sistemas digitales II
VHDL

4.3.- Descodificador de 7 segmentos

Salidas activas en baja

Salidas activas en alta

20

Ingeniera Electrnica | UNSAAC

Sistemas digitales II
VHDL

5.-Anexos Tabla de operadores

21

Ingeniera Electrnica | UNSAAC

Sistemas digitales II
VHDL

Herramientas

Warp Altera Xilinx ActiveVHDL GHDL (GNU) Max+Plus II Quartus II ModelSim/ISE Otros programas estn incluyendo en sus ltimas versiones la capacidad de programar FPGA usando sus propios lenguajes, pero tambin incluyen mdulos en VHDL, por ejemplo Protel DXP, Labview o Matlab.

-Fabricantes de FPGA

Actel Altera - Max Plus II, Quartus II Atmel Cypress Lattice QuickLogic Xilinx - ISE, Modelsim

22

Ingeniera Electrnica | UNSAAC

Sistemas digitales II
VHDL

-Fabricantes de herramientas

Aldec-ActiveVHDL GHDL IEEE IEEE estndar 1164 Sintaxis de la revisin del 93 Synplicity. Herramientas de sntesis fsica y verificacin de diseo Mentor Graphics. Herramientas de sntesis fsica, simulacin y otras relacionadas con diseo microelectrnico, sistemas embebidos, diseo de PCB, etc.

6.-Bibliografa

VHDL: Lenguaje para sntesis y modelado de circuitos, Fernando Pardo, Jos A. Boluda. Tutorial VHDL, Arturo J. Miguel de Priego Paz Soldn. Diseo Digital con Lgica Programable y Lenguajes de Descripcin de Hardware, Arturo J. Miguel de Priego Paz Soldn. Diseo de circuitos digitales con VHDL, Felipe Machado, Susana Borromeo.

23

Ingeniera Electrnica | UNSAAC