Você está na página 1de 4

Reporte Prctica 4 Circuitos combinacionales bsicos

Miranda Cornejo Josu David Alejandro Rafael Arellano Cerna Yair Gonzlez Mora
Universidad de Guanajuato Salamanca, Mxico

I. OBJETIVO Reforzar las habilidades adquiridas en el manejo de los entornos de simulacin, descripcin y sntesis cubiertos en prcticas anteriores mediante la realizacin del proceso completo de diseo de varios circuitos combinacionales bsicos. II. MARCO TERICO El lenguaje descriptivo VHDL es un lenguaje estructurado que consta de varios bloques de declaraciones como: Descripcin de las libreras Declaracion de terminales Descripcin de arquitectura.

IV. DESARROLLO
Lo obtenido al realizar la prctica fue para los diferentes circuitos se muestra en el siguiente apartado:

A) Descripcin y simulacin VHDL codificador BCD a 7 segmentos. El cdigo de la descripcin se muestra:


library IEEE; use IEEE.std_logic_1164.all; entity bcd_7seg is port( B:in std_logic_vector(3 downto 0); s: out std_logic_vector(1 to 7) ); end bcd_7seg; architecture tabla of bcd_7seg is begin process(b) begin case(B) is when "0000"=>s<="0000001"; when "0001"=>s<="1001111"; when "0010"=>s<="0010010"; when "0011"=>s<="0000110"; when "0100"=>s<="1001100"; when "0101"=>s<="0100100"; when "0110"=>s<="0100000"; when "0111"=>s<="0001111"; when "1000"=>s<="0000000"; when "1001"=>s<="0001100"; when others=>s<="1111111"; end case; end process; end tabla;

de

un

Las funciones basicas combinacionales entre otras son los codificaddores y decodificadores circuitos que permiten el cambio de un sistema codificado a otro, como lo son: Codificador BCD a 7 segmentos. Codificador Hexadecimal a 7 segmentos.

O asu vez circuitos sumadores que realizan la operacin de suma en campo finito haciendo uso de fucniones logicas combinacionales. III. MATERIAL Y EQUIPO TABLA I Herramientas requeridas
CANTIDAD 1 1 1 1 DESCRIPCIN

Computadora PC Licencia Tarjeta de desarrollo Licencia del

El mapa de fusibles se muestra a continuacin:

B) Codificador Hexadecimal a 7 segmentos El cdigo de la descripcin se muestra a continuacin.


library IEEE; use IEEE.std_logic_1164.all; entity BCD_HEX is port( B: in std_logic_vector(3 downto 0); S: out std_logic_vector(1 to 7) ); end BCD_HEX; architecture Tabla of BCD_HEX is begin process(B) begin case B is when"0000"=>S<= "0000001"; when"0001"=>S<= "1001111"; when"0010"=>S<= "0010010"; when"0011"=>S<= "0000110"; when"0100"=>S<= "1001100"; when"0101"=>S<= "0100100"; when"0110"=>S<= "0100000"; when"0111"=>S<= "0001101"; when"1000"=>S<= "0000000"; when"1001"=>S<= "0000100"; when"1010"=>S<= "0001000"; when"1011"=>S<= "1100000"; when"1100"=>S<= "0110001"; when"1101"=>S<= "1000010"; when"1110"=>S<= "0110000"; when others=>S<= "0111000"; end case; end process; end Tabla;

A: in std_logic ; B: in std_logic ; C : out std_logic; S : out std_logic ); end medio_sumador_n; architecture aritmetico of medio_sumador_n is begin S<=A XOR B; C<=A AND B; end aritmetico; El mapa de fusibles se muestra a continuacin:

D) Incrementador El cdigo de la descripcin se muestra a continuacin.


library IEEE; use IEEE.std_logic_1164.all; entity incrementador_3_bits is generic ( n: integer := 3 ); port ( A : in std_logic_vector (n-1 downto 0); Y : out std_logic_vector (n-1 downto 0) ); end incrementador_3_bits; architecture aritmetico5 of incrementador_3_bits is signal B : std_logic_vector (n-1 downto 0); begin process (A, B) begin B(0) <= '1'; for i in 1 to n-1 loop B(i) <= B(i-1)AND A(i-1); end loop; Y <= A XOR B; end process; end aritmetico5;

El mapa de fusibles se muestra a continuacin: C) Medio sumador de 1 bit El cdigo de la descripcin se muestra a continuacin. library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_unsigned.all; entity medio_sumador_n is port (

El mapa de fusibles se muestra a continuacin:

V. CUESTIONARIO 1. Realice la descripcin y simulacin VHDL de un sumador completo de 8 bits.


library IEEE; use IEEE.std_logic_1164.all; entity Sumador is generic (

n: integer := 8 ); port ( A, B : in std_logic_vector (n-1 downto 0); Ci : in std_logic; S: out std_logic_vector (n-1 downto 0); Co : out std_logic ); end Sumador; architecture aritmetico of Sumador is signal C : std_logic_vector (n downto 0); begin process (A,B,C,Ci) begin C(0) <= Ci; for i in 0 to n-1 loop s(i) <= (A(i) XOR B(i)) XOR C(i); C(i+1) <= ((A(i) AND B(i)) OR (A(i) AND C(i))) OR (B(i) AND C(i)); end loop; end process; Co <= C(n); end aritmetico;

3. Repita el problema 1 del cuestionario para un decrementador de 3 bits.


library IEEE; use IEEE.std_logic_1164.all; entity decrementador_3_bits is generic ( n: integer := 3 ); port ( A : in std_logic_vector (n-1 downto 0); Y : out std_logic_vector (n-1 downto 0) ); end decrementador_3_bits; architecture aritmetico5 of decrementador_3_bits is signal B : std_logic_vector (n-1 downto 0); begin process (A, B) begin B(0) <= '0'; for i in 1 to n-1 loop B(i) <= B(i-1)OR A(i-1); end loop; Y <= A XNOR B; end process; end aritmetico5;

2. Repita el problema 1 del cuestionario para un verificador de paridad en una palabra de 8 bits.
library IEEE; use IEEE.std_logic_1164.all; entity paridad_par is generic ( n: integer := 8 ); port ( A : in std_logic_vector (n-1 downto 0); Pp, Pn : out std_logic ); end paridad_par; architecture paridad of paridad_par is signal p : std_logic_vector (n-1 downto 0); begin process (A,P) begin P(0) <= A(0); for i in 1 to n-1 loop P(i) <= A(i) XOR P(i1); end loop; end process; Pp <= P(n-1); Pn <= P(n-1); end paridad;

4. Repita el problema 1 del cuestionario para un comparador completo de 1 bit.


library IEEE; use IEEE.std_logic_1164.all; entity comparador_n is generic ( n: integer := 1 ); port ( A, B : in std_logic_vector (n-1 downto 0); Gi, Ei, Li : in std_logic; G0, E0, L0 : out std_logic ); end comparador_n; architecture aritmeticoc of comparador_n is signal G, E ,L : std_logic_vector (n downto 0); begin process (A,B,Gi,Ei,Li,G,E,L) begin G(n) <= Gi; E(n) <= Ei; L(n) <= Li; for i in n-1 downto 0 loop G(i) <= (G(i+1) OR (E(i+1) AND (A(i) AND NOT (B(i))))); E(i) <= (E(i+1) AND (A(i) XNOR B(i))); L(i) <= (L(i+1) OR (E(i+1) AND (NOT (A(i)) AND B(i))));

end loop; end process; G0 <= G(0); E0 <= E(0); L0 <= L(0); end aritmeticoc;

end aritmetico5;

VI. CONCLUSIONES Tras haber realizado el proyecto se lleg a los siguientes puntos:

5. Repita el problema 1 del cuestionario para un incrementador-decrementador completo de 8 bits.


library IEEE; use IEEE.std_logic_1164.all; entity inde_8_bits is generic ( n: integer := 8 ); port ( A : in std_logic_vector (n-1 downto 0); X : in std_logic; Y : out std_logic_vector (n-1 downto 0) ); end inde_8_bits; architecture aritmetico5 of inde_8_bits is signal B, C : std_logic_vector (n-1 downto 0); begin process (A, B, C , X) begin B(0) <= '1'; C(0) <= '0'; for i in 1 to n-1 loop B(i) <= B(i-1)AND A(i-1); C(i) <= C(i-1) OR A(i-1); end loop; if (X=0) then Y<= A XOR B; else Y <= A XNOR C; end if; end process;

MIRANDA CORNEJO JOSU D. ALEJANDRO

RAFAEL ARELLANO CERNA

YAIR GONZLEZ MORA Esta prctica fue muy sencilla, dado que ya se tenan los conocimientos previos, incluyendo las descripciones de todos los circuitos combinacionales, lo nico que se nos complico en la realizacin de la prctica fue que estbamos pasando a II las descripciones que se nos peda en el cuestionario, de ah en ms todo sali a la perfeccin.

REFERENCIAS
[1] ttp://www.hispavila.com/3ds/tutores/ua555.htm#multivibrador_astable [2] http://www.ie.itcr.ac.cr/marin/lic/el3212/Libro/Tema10.pdf [3] http://www.zonatecno.net/Electronica/Recursos/Osciladores-massimples-gracias-al-555.html.

Você também pode gostar