Sie sind auf Seite 1von 20

Unidad 3:Diseo lgico combinacional mediante VHDL

Jairo Andres Moreno Hidalgo Cod:1093743319 Javier Pea

UNIDAD 3

Diseo lgico combinacional mediante VHDL


Programacin de estructuras declaraciones concurrentes. Programacin de estructuras declaraciones secuenciales. bsicas
bsicas

mediante
mediante

Diseo lgico combinacional mediante VHDL

En este captulo se disean los circuitos combinacionales ms utilizados en el diseo lgico a travs del lenguaje de descripcin en hardware. Esto permite introducir nuevos conceptos, palabras reservadas, reglas, algoritmos, etc., que muestran la potencia y profundidad del lenguaje VHDL. El desarrollo de cada una de las entidades de diseo descritas en este captulo se puede optimizar mediante el uso adecuado de las declaraciones secuenciales, concurrentes o ambas, utilizando en esta descripcin cualquiera de los tres tipos de arquitectura funcional, por flujo de datos y estructural vistos en el captulo anterior.

Diseo lgico combinacional mediante VHDL

Las declaraciones concurrentes se encuentran fuera de la declaracin de un proceso y suelen usarse en las descripciones de flujo de datos y estructural. Esto se debe a que en una declaracin concurrente no importa el orden en que se escriban las seales, ya que el resultado para determinada funcin sera el mismo.

Diseo lgico combinacional mediante VHDL

En VHDL existen tres tipos de declaraciones concurrentes: Declaraciones condicionales asignadas a una seal (whenelse). Declaraciones concurrentes asignadas a seales. Seleccin de una seal (with-select-when).

Diseo lgico combinacional mediante VHDL

Declaraciones condicionales asignadas a una seal (when'else) La declaracin when'else se utiliza para asignar valores a una seal, determinando as la ejecucin de una condicin propia del diseo.

Diseo lgico combinacional mediante VHDL La entidad se puede programar mediante declaraciones condicionales (when-else), debido a que este modelo permite definir paso a paso el comportamiento del sistema.
1 Ejemplo combinacional bsico 2 library ieee; 3 use ieee.std_logic_1164.all ; 4 entity tabla is port( 5 a,b,c: in std_logic; 6 f: out std_logic); 7 end tabla; 8 architecture ejemplo of tabla is 9 begin 10 <= '1' when (a= '0' and b= '0' and c= '0' ) else 11 '1' when (a= '0' and b= V and c= '1' ) else 12 V when (a= '1' and b= '1' and c= '0' ) else 13 '1' when (a= '1' and b= '1' and c= '1' ) else 14 '0'; 15 end ejemplo;

Diseo lgico combinacional mediante VHDL Operadores lgicos Los operadores lgicos ms utilizados en la descripcin de funciones booleanas, y definidos en los diferentes tipos de datos bit, son los operadores and, or, nand, xor, xnor y not. En el momento de ser compilados los operadores lgicos presentan el siguiente orden y prioridad: 1) 2) 3) 4) Expresiones entre parntesis. Complementos. Funcin AND. Funcin OR.

Diseo lgico combinacional mediante VHDL

Declaraciones concurrentes asignadas a seales

En este tipo de declaracin encontraremos las funciones de salida mediante la ecuacin booleana que describe el comportamiento de cada una de las compuertas. Obsrvese que ahora el circuito de la figura 3.2 cuenta con tres salidas (xl, x2 y x3) en lugar de una.

Diseo lgico combinacional mediante VHDL


El programa correspondiente al circuito de la figura 3.2 se muestra en el listado 3.2. library ieee; use ieee.std_logic_1164.all; entity logic is port ( a,b,c,d,e,f: in std_logic; xl,x2,x3: out std_logic) ; end logic; architecture booleana of logic is begin xl <= a xnor b; x2 <= ( ( (c and d)or(a xnor b) ) nand ( (e xor f)and(c and d) ) ) ; x3 <= (e xnor f) and (c and d) ; end booleana;

Diseo lgico combinacional mediante VHDL

Seleccin de una seal (with*select>when) La declaracin w i t h ' S e l e c t - w h e n se utiliza para asignar un valor a una seal con base en el valor de otra seal previamente seleccionada. Por ejemplo, en el listado correspondiente a la figura 3.3 se muestra el cdigo que representa a este tipo de declaracin. Como puede observarse, el valor de la salida C depende de las seales de entrada seleccionadas a(0) y a(l), de acuerdo con la tabla de verdad correspondiente.

Diseo lgico combinacional mediante VHDL

Diseo lgico combinacional mediante VHDL

Programacin de estructuras bsicas mediante declaraciones secuenciales.


Como ya se mencion, las declaraciones secuenciales son aquellas en las que el orden que llevan puede tener un efecto significativo en la lgica descrita. A diferencia de una declaracin concurrente, una secuencial debe ejecutarse en el orden en que aparece y formar parte de un proceso (process). Declaracin if-then-else (si-entonces-si no). Esta declaracin sirve para seleccionar una condicin o condiciones basadas en el resultado de evaluaciones lgicas (falso o verdadero).

Diseo lgico combinacional mediante VHDL

Un ejemplo que ilustra este tipo de declaracin se encuentra en la siguiente figura 3.4.

Diseo lgico combinacional mediante VHDL

El cdigo correspondiente a esta entidad de diseo se muestra en el listado 3.4.

Diseo lgico combinacional mediante VHDL Ejemplo 1 Implemente la TV en un dispositivo lgico programable

X Y

entity ejemplo1 is port ( X,Y: F: end ejemplo1;

in BIT; out BIT);

Diseo lgico combinacional mediante VHDL

entity ejemplo1 is port (

X,Y: F:

in BIT; out BIT);

end ejemplo1; architecture ejemplo1_a1 of ejemplo1 is signal temp: BIT; Begin Concatenar temp<=X Y; F<=0 when temp=00 else 0 when temp=01 else 1 when temp=10 else 0; end ejemplo1_a1;

Diseo lgico combinacional mediante VHDL

Flip Flop RS El flip flop RS es la unidad de memoria ms simple, y en base a l, se disean flip flops ms avanzados. El circuito tiene dos entradas,Set (s) y Reset (r), y dos salidas, llamadas q y notq (que es la negada de la salida q).

1 2 3 4 5 6 7 8

library ieee; use ieee.std_logic_1164.all; entity flipfloRS is port ( r,s,clk: in std_logic; q: buffer std_logic; notq: out std_logic ); end flipfloRS;

Diseo lgico combinacional mediante VHDL


En el captulo tres (Diseo lgico combinacional mediante VHDL) se describe la forma de emplear declaraciones concurrentes y secuenciales dentro de un programa mediante la solucin de circuitos combinacionales individuales tales como los multiplexores, los decodificadores, los codificadores y sumadores, entre otros. Es importante resaltar que en este captulo y en los subsecuentes no se presenta la solucin ptima para un problema dado. Por el contrario, cada problema se aborda de diferente manera con el nico fin de presentar al lector el uso cada vez mayor de nuevas palabras reservadas por VHDL en el entendido que la mejor solucin de un problema se da por s solo y llega cuando el lector conoce ms y ms formas de programar.

Diseo lgico combinacional mediante VHDL

Das könnte Ihnen auch gefallen