Professional Documents
Culture Documents
Diseo de:
2.2 Multiplexores 2.3 Demultiplexores 2.4 Decodificadores 2.5 Codificadores 2.6 Comparador 2.7 Sumador/restador 2.8 Unidad Lgica Aritmtica (ALU)
Decodificador
Ejemplo Ejemplo 15. 15. Decodificador: Decodificador: BCD BCD a a 7-Segmentos 7-Segmentos
a A0 A1 A2 A3 b 1 2 4 8 c d e f g d[6:0]
a f e d g b c
Salidas en Activo-Bajo
Decodificador
Construccin case-when: En esta construccin se evalua la expresin especificada (case) y el valor que se obtenga se compara con los asociados a las diferentes opciones descritas. Aquella opcin (when) que coincida con dicho valor, le sern ejecutados sus enunciados secuenciales adyancentes.
Decodificador if x = 0000 then a <= 0; elsif x = 0001 then b <= 0; elsif x = 0010 then c <= 0; elsif x = 0011 then d <= 0; elsif x = 0100 then e <= 0; elsif x = 0101 then f <= 0; elsif x = 0110 then g <= 0; elsif x = 0111 then h <= 0; elsif x = 1000 then i <= 0; else j <= 0; end if; end process; end arqdeco;
a b c d e f g h i j
Prctica 5
7 7 segmentos segmentos
Objetivo: Objetivo: Disear Disear un un circuito circuito decodificador decodificador de de BCD BCD a a7 7 segmentos. segmentos. El El circuito circuito recibir recibir una entrada en cdigo BCD y deber decodificarla para que sea posible desplegarla una entrada en cdigo BCD y deber decodificarla para que sea posible desplegarla en en un un display display de de 7 7 segmentos. segmentos. El El diseo diseo ser ser realizado realizado mediante mediante ecuaciones ecuaciones When-Else When-Else With-Select-When With-Select-When If-Then If-Then Case-When Case-When del del lenguaje lenguaje VHDL, VHDL, a a travs travs del del IDE IDE Galaxy. Galaxy. Es Es posble posble descargar descargar la la prctica prctica del del sitio sitio de de internet: internet:
http://dsid.escom.ipn.mx/julio/cursos/Fun_dis_digital.html http://dsid.escom.ipn.mx/julio/cursos/Fun_dis_digital.html..
Codificador
Ejemplo N 17 Codificador Decimal a BCD Entrada Decimal library ieee; use ieee.std_logic_1164.all; entity codif is port (a: in std_logic_vector (9 downto 0); d: out std_logic_vector (3 downto 0)); end codif; architecture arqcodif of codif is begin process (a) begin if a = 0000000000 then d <= 0000; elsif a = 0000000010 then d <= 0001; elsif a = 0000000100 then d <= 0010; elsif a = 0000001000 then d <= 0011; elsif a = 0000010000 then d <= 0100; elsif a = 0000100000 then d <= 0101;
DEC/BCD 0 1 2 3 1 4 2 5 4 6 8 7 8 9
elsif a = 0001000000 then d <= 0110; elsif a = 0010000000 then d <= 0111; elsif a = 0100000000 then d <= 1000; elsif a= 1000000000 then d <= 1001; else d <= 1111; end if; end process; end arqcodif;
Salida BCD
d0 d1 d2 d3
Cdigo de deteccin de error Con paridad par Con paridad impar Cdigo de deteccin y correccin de error Hamming Con paridad par Con paridad impar
Disear en pizarrn
Prctica 6
Prctica Prctica 6. 6. Generador Generador del del cdigo cdigo de de Hamming Hamming
Objetivo: Objetivo: Disear Disear un un circuito circuito que que pueda pueda generar generar el el cdigo cdigo de de Hamming Hamming para para la la deteccin y correccin de error, a partir de una entrada de 4 bits. El diseo ser deteccin y correccin de error, a partir de una entrada de 4 bits. El diseo ser realizado realizado mediante mediante ecuaciones ecuaciones When-Else When-Else With-Select-When With-Select-When If-Then If-Then Case-When Case-When del del lenguaje lenguaje VHDL, VHDL, a a travs travs del del IDE IDE Galaxy. Galaxy.
Comparador
Tipos de comparadores:
Cuando el circuito indica si es igual o diferente Posee un nica salida Cuando el circuito indica si es igual, mayor o mayor Posee dos salidas o tres salidas 3 salidas: Cada salida indica uno de los posibles casos. 2 salidas: Los 3 posibles casos son codificados.
Disear en pizarrn
Comparador
L 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Ejemplo N 18 - La construccin if-then-else Comparador de dos palabras con long. de 2-bits library ieee; use ieee.std_logic_1164.all; entity comp is port (a,b: in std_logic_vector (1 downto 0); c: out std_logic); end comp; architecture funcional of comp is begin compara: process (a,b) begin if a = b then c <= 1; Lista-Sensitiva else Seales (incluyendo puertos) ledas por el proceso. c <=0; end if; end process compara; end funcional;
La construccin if-then-else sirve para seleccionar una operacin con base al anlisis (evaluacin lgica Cierto o Falso) de una condicin.
a b Comparador
Comparador L 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Ejemplo N 19 - La construccin if-then-elsif-then-else Comparador de Magnitud 2-Words de 4-bits library ieee; use ieee.std_logic_1164.all; entity comp4 is port (a,b: in std_logic_vector (3 downto 0); x,y,z: out std_logic); end comp4; architecture arq_comp4 of comp4 is begin process (a,b) begin if (a = b) then x <= 1; elsif (a > b) then Qu circuito es inferido? y <=1; else z <=1; end if; end process; end arq_comp4;
a[3:0]
a=b
x y
Comparador L 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Ejemplo N 20 - La construccin when-else Comparador de Magnitud 2-palabras de 4-bits entity comp4 is port (a,b: in bit_vector (3 downto 0); x,y,z: out bit); end comp4; architecture arq_comp4 of comp4 is begin x <= 1 when a = b else 0; y <=1 when a > b else 0; z <=1 when a < b else 0; end arq_comp4;
a[3:0]
a=b
x y
Comparador
A1 A0 B1 B0 Z1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1
Z0 1 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1
Ejemplo N 21 - La construccin if-then-elsif-then-else Comparador de Magnitud 2-Words de 2-Bits / Salida Codificada library ieee; use ieee.std_logic_1164.all; entity comp is port (A,B: in std_logic_vector (1 downto 0); Z: out std_logic_vector (1 downto 0)); end comp; architecture a_comp of comp is begin process (A,B) begin if (A = B) then Operacin deseada: Z <= 11; Si: A = B entonces Z = 11 elsif (A < B) then Si: A < B entonces Z = 01 Z <= 01; Si: A > B entonces Z = 10 else Z <= 10; end if; end process; end a_comp; Ecs. Booleanas: Z1 = A0 A1 + B 0 B1 + A1B 0 + A1B1 + A0 B1
Prctica 7
http://dsid.escom.ipn.mx/julio/cursos/Fun_dis_digital.html http://dsid.escom.ipn.mx/julio/cursos/Fun_dis_digital.html..
Buffer
Ejemplo N 22 Buffer Salida de 3-Estados library ieee; use ieee.std_logic_1164.all; entity tri_est is port (enable, entrada: in std_logic; salida: out std_logic); end tri_est; architecture arq_buffer of tri_est is begin process (enable, entrada) begin if (enable = 0) then salida <= Z; else salida <= entrada; end if; end process; end arq_buffer;
Tipos Lgicos Estndares U X 0 1 Z W L H - Valor No-Inicializado Valor Fuerte Desconocido 0 Fuerte 1 Fuerte Alta Impedancia Valor Dbil Desconocido 0 Dbil 1 Dbil No Importa (Dont Care)
El tipo de dato bit no soporta el valor Z, por lo que se debe utilizar el tipo std_logic, que si lo soporta.