Está en la página 1de 3

VHDL

Instituto Nacional de Mxico


Instituto Tecnolgico de Celaya
Departamento de Ing. Mecatrnica
Electrnica Digital
Sergio Daniel Castro Espinosa; daniel_gow19@hotmail.com
Resumen: En el presente reporte se presentan 3 cdigos.
I. Introduccin
VHDL significa Hardware Description
Language.
Se trata de un lenguaje de descripcin de
hardware, mediante l se puede describir
la forma de comportarse de un circuito
electrnico. El comportamiento puede ser
llevado a algn dispositivo que dispondr
de sus propios componentes con los que
lograr ese comportamiento deseado

II. Objetivo

signal C: std_logic_vector (0 to 2);


begin
S(0) <= A(0) xor B(0) ;
C(0) <= A(0) and B(0) ;
S(1) <= (A(1) xor B(1)) xor C(0);
C(1) <= (A(1) and B(1)) or (C(0) and (A(1)
xor B(1)));
S(2) <= (A(2) xor B(2)) xor C(1);

Utilizar los conocimientos obtenido en


clase para generar 3 cdigos en lenguaje
vhdl.

C(2) <= (A(2) and B(2)) or (C(1) and (A(2)


xor B(2)));

III. Justificacin

Cout <= (A(3) and B(3)) or (C(2) and (A(3)


xor B(3)));

Se realiza con el fin de poder expandir los


conocimientos y su capacidad en
programacin para futuros proyectos.
IV. Contenido
El siguiente cdigo presenta la estructura de
un sumador de 4 bits con un acarreo.
Cdigo:

S(3) <= (A(3) xor B(3)) xor C(2);

end asuma;
El siguiente cdigo presenta un multiplexor
de 5 entradas a 32 salidas.
library ieee;
use iee.std_logic_1164.all;

library ieee;
use ieee.std_logic_1164.all;

-Definir una entrada-

entity suma is
port (

entity Deco is port(


vector_x: in std_logic_vector(4 downto

A,B: in std_logic_vector (0 to 3);

0);

S: out std_logic_vector (0 to 3);

end suma;

a1,b2,c3,d4,e5,f6,g7,h8,i9,j10,k11,l12,m1
3,n14,o15,p16,q17,r18,s19,t20,u21,v22,w2
3,x24,y25,z26,a27,b28,c29,d30,e31,f32: out
std_logic);

architecture asuma of suma is

end Deco;

Cout: out std_logic);

z26 <= '0';


-Procedimiento a seguir-

a27 <= '0';


b28 <= '0';

architecture arqdeco of Deco is

c29 <= '0';

begin

d30 <= '0';


e31 <= '0';

process (vector_x) begin

f32 <= '0';

a1 <= '0';
b2 <= '0';

case vector_x is

c3 <= '0';

when "00000" => a1 <= '1';

d4 <= '0';

when "00001" => b2 <= '1';

e5 <= '0';

when "00010" => c3 <= '1';

f6 <= '0';

when "00011" => d4 <= '1';

g7 <= '0';

when "00100" => e5 <= '1';

h8 <= '0';

when "00101" => f6 <= '1';

i9 <= '0';

when "00110" => g7 <= '1';

j10 <= '0';

when "00111" => h8 <= '1';

k11 <= '0';

when "01000" => i9 <= '1';

l12 <= '0';

when "01001" => j10 <= '1';

m13 <= '0';

when "01010" => k11 <= '1';

n14 <= '0';

when "01011" => l12 <= '1';

o15 <= '0';

when "01100" => m13 <= '1';

p16 <= '0';

when "01101" => n14 <= '1';

q17 <= '0';

when "01110" => o15 <= '1';

r18 <= '0';

when "01111" => p16 <= '1';

s19 <= '0';

when "10000" => q17 <= '1';

t20 <= '0';

when "10001" => r18 <= '1';

u21 <= '0';

when "10010" => s19 <= '1';

v22 <= '0';

when "10011" => t20 <= '1';

w23 <= '0';

when "10100" => u21 <= '1';

x24 <= '0';

when "10101" => v22 <= '1';

y25 <= '0';

when "10110" => w23 <= '1';

when "10111" => x24 <= '1';

process(clk)

when "11000" => y25 <= '1';

begin

when "11001" => z26 <= '1';

if clk'event and clk='1'

when "11010" => a27 <= '1';

then if en='1'

when "11011" => b28 <= '1';

then if load='1'

when "11100" => c29 <= '1';


when "11101" => d30 <= '1';
when "11110" => e31 <= '1';
when OTHERS => f32 <= '1';

then registro <= dato;


else

end case;

registro <= registro(0) & registro(3


downto 1);

end process;

end if;

end arqdeco;

end if;

En el siguiente cdigo se expone un registro


de desplazamiento de 4 bits el cual puede
iniciar en cualquier valor.

end if;

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

end process;
p_out <= registro;
end Behavioral;

entity ser_par is
Port ( clk, en, load : in STD_LOGIC;
dato : in std_logic_vector(3 downto
0);
p_out : out STD_LOGIC_VECTOR (3
downto 0));
end ser_par;

V. Conclusiones
Este lenguaje de programacin (VHDL) es
nuevo para m, su programacin es muy
parecida al lenguaje C++, con malo cual me
facilito su programacin, un problema que
se tuvo fue el programa Warp Galaxy, ya
que este requiere un sistema operativo casi
obsoleto.

architecture Behavioral of ser_par


is

VI. Fuentes de Informacin

signal registro : std_logic_vector(3


downto 0):="0111";

[1] G.Maxinez David y Alcal Jessica,


VHDL el arte de programar sistemas
digitales, grupo editorial patria, edicin 6,
352 pag.

begin

También podría gustarte