Os materiais didáticos aqui disponibilizados estão licenciados através de Creative Commons Atribuição-SemDerivações-SemDerivados CC BY-NC-ND. Você possui a permissão para visualizar e compartilhar, desde que atribua os créditos do autor. Não poderá alterá-los e nem utilizá-los para fins comerciais.
Atribuição-SemDerivações-SemDerivados
CC BY-NC-ND
Cursos / Automação Industrial / Sistemas Digitais / Aula
library ieee;
use ieee.std_logic_1164.all;
ENTITY somador_8bits IS
PORT (
A,B: in std_logic_vector ( 7 downto 0);
S: out std_logic_vector ( 7 downto 0);
carry_final: out std_logic
);
END somador_8bits;
ARCHITECTURE arquitetura_somador8bits OF somador_8bits IS
BEGIN
process (A,B)
variable Cout: std_logic_vector ( 7 downto 0); --Carry Out é variável
interna ao processo
begin
for I in 0 to 7 loop
if (I=0) then
S(I) <= (A(I) xor B(I)) xor '0';
Cout(I) := (A(I) and '0') or (B(I) and '0') or (A(I) and B(I));
else
S(I) <= (A(I) xor B(I)) xor Cout(I-1);
Cout(I) := (A(I) and Cout(I-1)) or (B(I) and Cout(I-1)) or (A(I) and B(I));
end if;
end loop;
carry_final <= Cout(7);
end process;
END arquitetura_somador8bits;
Versão 5.3 - Todos os Direitos reservados