Cursos / Automação Industrial / Sistemas Digitais / Aula

arrow_back Aula 07 - Circuitos combinacionais

Atividade 12

  1. Crie um projeto chamado somador_8bits
  2. Adicione o código VHDL abaixo
    x
    1
                    
    2
                library ieee; 
    3
                use ieee.std_logic_1164.all;
    4
    5
                ENTITY somador_8bits IS
    6
                PORT (
    7
                    A,B: in std_logic_vector  ( 7 downto 0);
    8
                    S: out std_logic_vector ( 7 downto 0);
    9
                    carry_final: out std_logic
    10
                );
    11
                END somador_8bits;
    12
    13
                ARCHITECTURE arquitetura_somador8bits OF somador_8bits IS
    14
                BEGIN
    15
                        process (A,B)
    16
                        variable Cout: std_logic_vector  ( 7 downto 0); --Carry Out é variável 
    17
                        interna ao processo
    18
                        begin
    19
                            for I in 0 to 7 loop
    20
                                if (I=0) then
    21
                                    S(I) <= (A(I) xor B(I)) xor '0';
    22
                                    Cout(I) := (A(I) and '0') or (B(I) and '0') or (A(I) and B(I));
    23
                                else
    24
                                    S(I) <= (A(I) xor B(I)) xor Cout(I-1);
    25
                                    Cout(I) := (A(I) and Cout(I-1)) or (B(I) and Cout(I-1)) or (A(I) and B(I));     
    26
                                end if;
    27
                            end loop;
    28
                            carry_final <= Cout(7);
    29
                                                                        
    30
                    end process;
    31
                END arquitetura_somador8bits;
    32
            
  3. Em diversos momento do código são utilizados comandos como S(I) ou A(I), onde S e A são vetores e I é um inteiro. O que isto faz? Procure na internet.
  4. Entenda o que o código está fazendo. Se não conseguir entender tudo, pergunte o que não entendeu ao Tutor
  5. Simule o código abaixo utilizando o Simulation Waveform Editor
  6. A simulação está correta?

Versão 5.3 - Todos os Direitos reservados