Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Laboratorio de Arquitectura de
Computadoras
Descripción de un sumador de 4 bits en VHDL
Oscar Alvarado Nava UAM Azcapotzalco Descripción de un sumador de 4 bits en VHDL 1/24
Representación en VHDL
Contenido
1 Representación en VHDL
Estructural, generate, proceso, función, biblioteca y
sobrecarga
Oscar Alvarado Nava UAM Azcapotzalco Descripción de un sumador de 4 bits en VHDL 2/24
Representación en VHDL Estructural, generate, proceso, función, biblioteca y sobrecarga
Contenido
1 Representación en VHDL
Estructural, generate, proceso, función, biblioteca y
sobrecarga
Oscar Alvarado Nava UAM Azcapotzalco Descripción de un sumador de 4 bits en VHDL 3/24
Representación en VHDL Estructural, generate, proceso, función, biblioteca y sobrecarga
Entidad y adder4.vhdl
a b 2
3 entity adder4 is
4 port (
5 -- puertos de entrada
adder4 6
7
a : in bit_vector (3 downto 0) ;
b : in bit_vector (3 downto 0) ;
8 ci : in bit ;
co ci 9
10
-- puertos de salida
r : out bit_vector (3 downto 0) ;
11 co : out bit
4 12 );
r 13 end entity adder4 ;
Oscar Alvarado Nava UAM Azcapotzalco Descripción de un sumador de 4 bits en VHDL 4/24
Representación en VHDL Estructural, generate, proceso, función, biblioteca y sobrecarga
Oscar Alvarado Nava UAM Azcapotzalco Descripción de un sumador de 4 bits en VHDL 5/24
Representación en VHDL Estructural, generate, proceso, función, biblioteca y sobrecarga
31 begin
32 u0 : fulladd
33 port map (
34 -- puertos de entrada
35 x = > a (0) ,
36 y = > b (0) ,
37 cin = > ci ,
38 -- puertos de salida
39 s = > r (0) ,
40 cout = > c0
41 ) ;
Oscar Alvarado Nava UAM Azcapotzalco Descripción de un sumador de 4 bits en VHDL 6/24
Representación en VHDL Estructural, generate, proceso, función, biblioteca y sobrecarga
42 u1 : fulladd
43 port map (
44 -- puertos de entrada
45 x = > a (1) ,
46 y = > b (1) ,
47 cin = > c0 ,
48 -- puertos de salida
49 s = > r (1) ,
50 cout = > c1
51 ) ;
Oscar Alvarado Nava UAM Azcapotzalco Descripción de un sumador de 4 bits en VHDL 7/24
Representación en VHDL Estructural, generate, proceso, función, biblioteca y sobrecarga
52 u2 : fulladd
53 port map (
54 -- puertos de entrada
55 x = > a (2) ,
56 y = > b (2) ,
57 cin = > c1 ,
58 -- puertos de salida
59 s = > r (2) ,
60 cout = > c2
61 ) ;
Oscar Alvarado Nava UAM Azcapotzalco Descripción de un sumador de 4 bits en VHDL 8/24
Representación en VHDL Estructural, generate, proceso, función, biblioteca y sobrecarga
62 u3 : fulladd
63 port map (
64 -- puertos de entrada
65 x = > a (3) ,
66 y = > b (3) ,
67 cin = > c2 ,
68 -- puertos de salida
69 s = > r (3) ,
70 cout = > co
71 ) ;
72 end architecture beh ;
Oscar Alvarado Nava UAM Azcapotzalco Descripción de un sumador de 4 bits en VHDL 9/24
Representación en VHDL Estructural, generate, proceso, función, biblioteca y sobrecarga
Oscar Alvarado Nava UAM Azcapotzalco Descripción de un sumador de 4 bits en VHDL 10/24
Representación en VHDL Estructural, generate, proceso, función, biblioteca y sobrecarga
Oscar Alvarado Nava UAM Azcapotzalco Descripción de un sumador de 4 bits en VHDL 11/24
Representación en VHDL Estructural, generate, proceso, función, biblioteca y sobrecarga
28 begin
29 -- instancia y alambrado de un sumador de 4 bits
30 sum0 : adder4
31 port map (
32 -- puertos de entrada
33 a = > botona ,
34 b = > botonb ,
35 ci = > botonci ,
36 -- puertos de salida
37 r = > ledsr ,
38 co = > ledco
39 );
40 -- procesos para estimulos
41 process -- para botona
42 begin
43 wait for 10 ns ;
44 botona <= " 0001 " ;
45 wait for 10 ns ;
46 botona <= " 0101 " ;
47 wait for 10 ns ;
48 botona <= " 0111 " ;
49 wait for 100 ns ;
50 end process ;
Oscar Alvarado Nava UAM Azcapotzalco Descripción de un sumador de 4 bits en VHDL 12/24
Representación en VHDL Estructural, generate, proceso, función, biblioteca y sobrecarga
Oscar Alvarado Nava UAM Azcapotzalco Descripción de un sumador de 4 bits en VHDL 13/24
Representación en VHDL Estructural, generate, proceso, función, biblioteca y sobrecarga
Oscar Alvarado Nava UAM Azcapotzalco Descripción de un sumador de 4 bits en VHDL 14/24
Representación en VHDL Estructural, generate, proceso, función, biblioteca y sobrecarga
Paquete dl bib.vhdl
1 package dl_bib is
2 component fulladd is
3 port (
4 -- puertos de entrada
5 x : in bit ;
6 y : in bit ;
7 cin : in bit ;
8 -- puertos de salida
9 s : out bit ;
10 cout : out bit
11 );
12 end component fulladd ;
13 end package dl_bib ;
Oscar Alvarado Nava UAM Azcapotzalco Descripción de un sumador de 4 bits en VHDL 15/24
Representación en VHDL Estructural, generate, proceso, función, biblioteca y sobrecarga
Oscar Alvarado Nava UAM Azcapotzalco Descripción de un sumador de 4 bits en VHDL 16/24
Representación en VHDL Estructural, generate, proceso, función, biblioteca y sobrecarga
Utilizando for-generate
Oscar Alvarado Nava UAM Azcapotzalco Descripción de un sumador de 4 bits en VHDL 17/24
Representación en VHDL Estructural, generate, proceso, función, biblioteca y sobrecarga
Oscar Alvarado Nava UAM Azcapotzalco Descripción de un sumador de 4 bits en VHDL 18/24
Representación en VHDL Estructural, generate, proceso, función, biblioteca y sobrecarga
Utilizando process
Oscar Alvarado Nava UAM Azcapotzalco Descripción de un sumador de 4 bits en VHDL 19/24
Representación en VHDL Estructural, generate, proceso, función, biblioteca y sobrecarga
Utilizando function
Oscar Alvarado Nava UAM Azcapotzalco Descripción de un sumador de 4 bits en VHDL 20/24
Representación en VHDL Estructural, generate, proceso, función, biblioteca y sobrecarga
Biblioteca dl bib.vhdl
1 package dl_bib is
2 -- declaracion
3 function suma4 (a , b : bit_vector (3 downto 0) ; cin : bit ) return bit_vector ;
4
5 end package dl_bib ;
6
7 package body dl_bib is
8 -- definicion
9 function suma4 (a , b : bit_vector (3 downto 0) ; cin : bit ) return bit_vector is
10 variable ci , co : bit ;
11 variable suma : bit_vector (3 downto 0) := " 0000 " ;
12 begin
13 ci := cin ;
14 for i in 0 to 3 loop
15 suma ( i ) := a ( i ) xor b ( i ) xor ci ;
16 co := ( a ( i ) and b ( i ) ) or ( a ( i ) and ci ) or ( b ( i ) and ci ) ;
17 ci := co ;
18 end loop ;
19 return suma ;
20 end function suma4 ;
21
22 end package body dl_bib ;
Oscar Alvarado Nava UAM Azcapotzalco Descripción de un sumador de 4 bits en VHDL 21/24
Representación en VHDL Estructural, generate, proceso, función, biblioteca y sobrecarga
Llamada a función
Oscar Alvarado Nava UAM Azcapotzalco Descripción de un sumador de 4 bits en VHDL 22/24
Representación en VHDL Estructural, generate, proceso, función, biblioteca y sobrecarga
1 package dl_bib is
2 function " + " (a , b : bit_vector (3 downto 0) ; cin : bit ) return bit_vector ;
3
4 end package dl_bib ;
5
6 package body dl_bib is
7
8 function " + " (a , b : bit_vector (3 downto 0) ; cin : bit ) return bit_vector is
9 variable ci , co : bit ;
10 variable suma : bit_vector (3 downto 0) := " 0000 " ;
11 begin
12 ci := cin ;
13 for i in 0 to 3 loop
14 suma ( i ) := a ( i ) xor b ( i ) xor ci ;
15 co := ( a ( i ) and b ( i ) ) or ( a ( i ) and ci ) or ( b ( i ) and ci ) ;
16 ci := co ;
17 end loop ;
18 return suma ;
19 end function " + " ;
20
21 end package body dl_bib ;
Oscar Alvarado Nava UAM Azcapotzalco Descripción de un sumador de 4 bits en VHDL 23/24
Representación en VHDL Estructural, generate, proceso, función, biblioteca y sobrecarga
Operador sobrecargado
Oscar Alvarado Nava UAM Azcapotzalco Descripción de un sumador de 4 bits en VHDL 24/24