SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
Universidade Federal de Santa Catarina
         Centro Tecnológico – CTC
    Departamento de Engenharia Elétrica
                                            http://gse.ufsc.br




“EEL7020 – Sistemas Digitais”


     Prof. Eduardo Augusto Bezerra
           Eduardo.Bezerra@eel.ufsc.br




         Florianópolis, agosto de 2012.
Sistemas Digitais


Circuitos sequenciais, latches e flip-flops




                EEL7020 – Sistemas Digitais   2/20
Objetivos do laboratório

1. Entender o conceito de circuitos sequenciais.
2. Entender o conceito e diferença entre flip-flops e latches.
3. Entender o conceito de registradores em VHDL.
4. Implementação de flip-flops, latches e registradores em
   VHDL.
5. Estudo de caso: projeto de calculadora personalizada,
   com apresentação dos resultados em displays de 7-
   segmentos, e uso de registradores como elementos de
   “memória”.


                         EEL7020 – Sistemas Digitais     3/20
Uso de “process” na descrição de circuitos sequenciais




                     EEL7020 – Sistemas Digitais    4/20
Descrição de circuitos sequenciais em VHDL
library ieee;                     Process
use ieee.std_logic_1164.all;
entity Sinais is port (           • Define uma SEQUÊNCIA         DE COMANDOS a
           C: in std_logic;
                                  ser realizada pelo circuito.
           D: in std_logic;
           Q: out std_logic
                                  • O processo é acionado, e sua sequência
        );
end Sinais;
                                  de comandos é executada, sempre que
                                  ocorrer uma alteração em algum elemento
architecture behv of Sinais is
      signal A, B: std_logic;     da sua LISTA DE PARÂMETROS (Ex. C ou D).
begin
      A <= D;                     • Um processo nunca termina - CÍCLICO.
       Q <= B;
                                  • Dessa forma, após a execução do último
       P1: process (C, D)
                                  comando, o primeiro comando da sequência
       begin
              B <= '0’;           é executado, SEMPRE que ocorrer uma
              if (C = '1') then   nova alteração em algum parâmetro.
                  B <= D;
              end if;             • Obs. Comando IF .. THEN .. ELSE é
       end process P1;            utilizado APENAS dentro de um process.
end behv;                          EEL7020 – Sistemas Digitais              5/20
Descrição de circuitos sequenciais em VHDL
                                      Process

                                      • A lista de parâmetros de um processo
                                      é denominada SENSITIVITY LIST.
process (A, B, C, D)                  • Os valores atribuídos aos sinais pelos
 begin                                comandos do processo, só serão válidos
       A <= '1';         Sequêncial
                                      após a execução do último comando, ou
       B <= '1';                      seja, após “sair” do processo.
       B <= D;
       A <= not B;                    • Se existirem várias atribuições a um
       C <= A and '1';
                                      mesmo sinal, APENAS a última atribuição
       D <= C;
 end process;                         será válida (ex. sinal B no corpo do
                                      processo).

                                      • Não é permitido declarar sinais dentro de
                                      um processo.


                                      EEL7020 – Sistemas Digitais           6/20
Descrição de circuitos sequenciais em VHDL
library ieee;
use ieee.std_logic_1164.all;          Resultado da simulação do VHDL
entity Sinais is port (
           C: in std_logic;
           D: in std_logic;
           Q: out std_logic
        );
end Sinais;
architecture behv of Sinais is
      signal A, B: std_logic;     C
begin                             D
      A <= D;                     Q
       Q <= B;
       P1: process (C, D)
                                         C foi alterado para ‘0’, logo o processo é
       begin
                                         executado novamente, e B receberá ‘0’,
              B <= '0';
                                         pois o teste do IF será falso.
              if (C = '1') then
                                         Logo, Q será zero (combinacional).
                  B <= D;
              end if;
       end process P1;
end behv;                         EEL7020 – Sistemas Digitais                  7/20
Flip-flops e latches em VHDL




        EEL7020 – Sistemas Digitais   8/20
Latch D
 library ieee;
 use ieee.std_logic_1164.all;                         D
                                                               D latch

 entity D_latch is port (                                  S

          C: in std_logic;
                                                      C
          D: in std_logic;
          Q: out std_logic                                          Q

         );                                                R
 end D_latch;
 architecture behv of D_latch is
 begin
          process(C, D)
          begin
             if (C = '1') then
                 Q <= D;
              end if;
            end process;
 end behv;
                             EEL7020 – Sistemas Digitais                 9/20
Latch D
 library ieee;
 use ieee.std_logic_1164.all;
 entity D_latch is port (
          C: in std_logic;
          D: in std_logic;
          Q: out std_logic
         );
 end D_latch;
                                                    1
 architecture behv of D_latch is               D
                                                    0
 begin
                                                    1
          process(C, D)                        C
                                                    0
          begin
                                                    1
             if (C = '1') then                  S
                                                    0
                 Q <= D;
                                                    1
              end if;                          R
                                                    0
            end process;
                                                    1
 end behv;                                     Q
                                                    0
                             EEL7020 – Sistemas Digitais   10/20
Flip-Flop D                                                                       D flip-flop
                                                                   D latch    D latch
                                                                                            Q’
library ieee;                                       D
                                                               Dm       Qm   Ds       Qs’
use ieee.std_logic_1164.all;
                                                                                             Q
entity D_FF is port (                                          Cm            Cs       Qs
          CLK: in std_logic;
                                                                   master     servant
          D: in std_logic;
          Q: out std_logic                          Clk
         );
end D_FF;
architecture behv of D_FF is                                 Clk
begin
    process(CLK, D)                                     D/Dm
    begin                                                    Cm
      if (CLK'event and CLK = '1') then
                Q <= D;                               Qm/Ds
      end if;                                                Cs
    end process;
end behv;                                                    Qs

                               EEL7020 – Sistemas Digitais                                  11/20
Flip-Flop D com RESET assíncrono
                                library ieee;
                                use ieee.std_logic_1164.all;
                                entity D_FF is port (
            D     Q
                                           CLK: in std_logic;
             CLK                           RST: in std_logic;
              RST                          D: in std_logic;
                                           Q: out std_logic
                                          );
                                end D_FF;
•Sempre que a entrada RST       architecture behv of D_FF is
for Zero, a saída Q será Zero. begin
                                    process (CLK, RST, D)
• Quando RST for diferente          begin
de Zero, o valor na saída Q            if (RST = '0') then
vai depender da entrada CLK.                 Q <= '0';
                                       elsif (CLK'event and CLK = '1') then
• Se CLK for ‘1’ E for uma                       Q <= D;
borda de subida, então Q               end if;
receberá a entrada D.               end process;
                               EEL7020behv; Digitais
                                end – Sistemas                          12/20
library ieee;
Flip-Flop D com Enable          use ieee.std_logic_1164.all;
                                entity D_FF is port (
                                            CLK: in std_logic;
                                            RST: in std_logic;
            D                               EN: in std_logic;
                  Q
                                            D: in std_logic;
            EN                              Q: out std_logic
             CLK                          );
              RST               end D_FF;
                                architecture behv of D_FF is
                                begin
                                    process (CLK, RST, D)
• Sempre que a entrada RST          begin
for Zero, a saída Q será Zero.         if RST = '0' then
                                             Q <= '0';
• Se CLK for ‘1’ E for uma             elsif CLK'event and CLK = '1' then
borda de subida E o sinal de                    if EN = '1' then
Enable (En) estiver em ‘1’,                          Q <= D;
                                                 end if;
então Q receberá a entrada D.
                                       end if;
                                    end process;
                                end behv;
                               EEL7020 – Sistemas Digitais               13/20
Enquanto não ocorrer um
Registrador de 4 bits                                     novo evento no sinal CLK e
library ieee;                                             enquanto esse evento for
use ieee.std_logic_1164.all;                              diferente de ‘1’ (borda de
entity D_4FF is port (                                    subida), então a saída Q do
         CLK: in std_logic;                               flip-flop continuará
         D: in std_logic_vector(3 downto 0);              armazenando o valor atual.
         Q: out std_logic_vector(3 downto 0)
        );                                         Ao ocorrer um novo evento
end D_4FF;                                         em CLK, e se esse novo
architecture behv of D_4FF is                      evento for uma transição
begin                                              de ‘0’ para ‘1’ (borda de
         process(CLK, D)                           subida), então a saída Q
         begin                                     receberá o novo valor
            if (CLK'event and CLK = '1') then      existente na entrada D.
                Q <= D;
                                   D(3)       D(2)         D(1)       D(0)
             end if;                       Q(3)         Q(2)        Q(1)     Q(0)
           end process;
end behv;                               D  Q      D    Q        D  Q       D Q

                                           CLK            CLK      CLK       CLK

                          clock_50
                                 EEL7020 – Sistemas Digitais                       14/20
Tarefa a ser realizada:
 Mini-calculadora com registradores para
armazenamento (memória) de resultados.




               EEL7020 – Sistemas Digitais   15/20
Uso de registradores na mini-calculadora VHDL
  Operando B                                 top_calc




                          f=A+B




                                                                             Registrador
  SW(15 downto 8)                                                       D
                      8
                                                              F(7..4)                              Decod.
  Operando A                            8                                                  Q
                                                                                               4       7-seg
  SW(7 downto 0)      8                                   4
                                                                        EN




                          f = A or B
                                                                                                                                  HEX1

                      8
                                        8   F1
                                                 00
                      8
                                            F2   01
                                                              F(3..0)




                                                                             Registrador
                                                          F
                                            F3   Mux                    D
                                                 10       8     4
                                                                                           Q        Decod.
                                            F4   11                                            4       7-seg
                          F = A xor B
                                                                        EN


                      8                               2
                                                                                                                                  HEX0
                                                 sel      8
                                        8
                      8


                                                              F(7..0)




                                                                                                        Registrador
                                                                                                   D
                          f = not A




                                                                                                                      Q
                                                                                                   EN
                                                                                                                          8
Seleção da operação   8                 8
(+, or, xor, not)
SW(17 downto 16)                                                                                                              LEDR(7 downto 0)
Enter   KEY(1)
Clock   CLOCK_50
Reset   KEY(0)                              EEL7020 – Sistemas Digitais                                                                  16/20
Descrição do circuito a ser implementado
• O circuito consiste na mini-calculadora do lab. anterior, porém com a inclusão
  de registradores para armazenar os resultados das operações.
    o Um registrador de 4 bits para armazenar a parte baixa do resultado a ser
      apresentado em HEX0.
    o Um registrador de 4 bits para armazenar a parte alta do resultado a ser
      apresentado em HEX1.
    o Um registrador de 8 bits para armazenar o resultado a ser apresentado, em
      binário, nos LEDs vermelhos.
• Ao se pressionar o botão KEY0 (Reset), os flip-flops deverão ser “limpos”,
  apagando os LEDs, e apresentando o valor 0 (zero) nos displays de sete
  segmentos.
• Ao se pressionar o botão KEY1(Enter), os flip-flops são habilitados para
  escrita, armazenando os valores presentes nas suas entradas (“memória”).
• As entradas CLK (clock) dos flip-flops recebem um sinal de relógio gerado
  por um cristal presente na placa DE2.
                                   EEL7020 – Sistemas Digitais                   17/20
Dicas úteis




 EEL7020 – Sistemas Digitais   18/20
Dicas úteis
•   No slide 13 é apresentado um flip-flop D            D
                                                                  Q
    com Reset e Enable (ver símbolo ao lado).           EN

                                                        CLK
                                                            RST
•   No slide 14 é apresentado um registrador
    de 4 bits, implementado com 4 flip-flops,
    porém sem Reset e sem Enable.
•   Utilizar os circuitos dos slides 13 e 14 como base para
    para escrever o VHDL dos dois registradores de 4 bits
    e do registrador de 8 bits solicitado no exercício, todos
    com Reset e Enable.
•   O sinal de relógio (Clock ou CLK) do circuito deve ser
    obtido diretamente da placa, utilizando o sinal CLOCK_50
    (ver o manual da DE2, e o arquivo de pinos).
                          EEL7020 – Sistemas Digitais             19/20
Interface com o usuário (entrada/saída)
                       HEX1   HEX0           LEDR(7..0)




                                                                     Usar KEY(0)
                                                                    para o “Reset”

                                                Usar KEY(1) para o “Enter” (Enable)

                              Usar SW(7..0) para entrar com operando A

            Usar SW(15..8) para entrar com operando B

  Usar SW(17..16) para selecionar a operação (F1, F2, F3 ou F4)

                               EEL7020 – Sistemas Digitais                   20/20

Weitere ähnliche Inhalte

Was ist angesagt?

Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsElaine Cecília Gatto
 
Fundamentos de VHDL em Lógica Programável v1.1
Fundamentos de VHDL em Lógica Programável v1.1Fundamentos de VHDL em Lógica Programável v1.1
Fundamentos de VHDL em Lógica Programável v1.1Alcides Costa
 
C#4 - Parte 1 - Dinamismo E Argumentos opcionais e nomeados
C#4 - Parte 1 - Dinamismo E Argumentos opcionais e nomeadosC#4 - Parte 1 - Dinamismo E Argumentos opcionais e nomeados
C#4 - Parte 1 - Dinamismo E Argumentos opcionais e nomeadosGiovanni Bassi
 
Teoria da Computação - Fecho sob as operacoes regulares
Teoria da Computação - Fecho sob as operacoes regularesTeoria da Computação - Fecho sob as operacoes regulares
Teoria da Computação - Fecho sob as operacoes regularesIFCE
 
Codificação segura em C para sistemas embarcados
Codificação segura em C para sistemas embarcadosCodificação segura em C para sistemas embarcados
Codificação segura em C para sistemas embarcadoshenriqueprossi
 
Resumo linguagem c para microcontroladores PIC usando MikroC
Resumo linguagem c para microcontroladores PIC usando MikroCResumo linguagem c para microcontroladores PIC usando MikroC
Resumo linguagem c para microcontroladores PIC usando MikroCFabio Souza
 
Pbl assembly avr como atmega328 p - rev.1
Pbl   assembly avr como atmega328 p - rev.1Pbl   assembly avr como atmega328 p - rev.1
Pbl assembly avr como atmega328 p - rev.1andrademanoel
 
Aula 5 linguagens regularese automatosfinitosnãodeterministico
Aula 5   linguagens regularese automatosfinitosnãodeterministicoAula 5   linguagens regularese automatosfinitosnãodeterministico
Aula 5 linguagens regularese automatosfinitosnãodeterministicowab030
 
Microcontroladores PIC - Manipulação de pinos de I/O com a Linguagem C
Microcontroladores PIC - Manipulação de pinos de I/O com a Linguagem CMicrocontroladores PIC - Manipulação de pinos de I/O com a Linguagem C
Microcontroladores PIC - Manipulação de pinos de I/O com a Linguagem CFabio Souza
 

Was ist angesagt? (10)

Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
 
C pic
C picC pic
C pic
 
Fundamentos de VHDL em Lógica Programável v1.1
Fundamentos de VHDL em Lógica Programável v1.1Fundamentos de VHDL em Lógica Programável v1.1
Fundamentos de VHDL em Lógica Programável v1.1
 
C#4 - Parte 1 - Dinamismo E Argumentos opcionais e nomeados
C#4 - Parte 1 - Dinamismo E Argumentos opcionais e nomeadosC#4 - Parte 1 - Dinamismo E Argumentos opcionais e nomeados
C#4 - Parte 1 - Dinamismo E Argumentos opcionais e nomeados
 
Teoria da Computação - Fecho sob as operacoes regulares
Teoria da Computação - Fecho sob as operacoes regularesTeoria da Computação - Fecho sob as operacoes regulares
Teoria da Computação - Fecho sob as operacoes regulares
 
Codificação segura em C para sistemas embarcados
Codificação segura em C para sistemas embarcadosCodificação segura em C para sistemas embarcados
Codificação segura em C para sistemas embarcados
 
Resumo linguagem c para microcontroladores PIC usando MikroC
Resumo linguagem c para microcontroladores PIC usando MikroCResumo linguagem c para microcontroladores PIC usando MikroC
Resumo linguagem c para microcontroladores PIC usando MikroC
 
Pbl assembly avr como atmega328 p - rev.1
Pbl   assembly avr como atmega328 p - rev.1Pbl   assembly avr como atmega328 p - rev.1
Pbl assembly avr como atmega328 p - rev.1
 
Aula 5 linguagens regularese automatosfinitosnãodeterministico
Aula 5   linguagens regularese automatosfinitosnãodeterministicoAula 5   linguagens regularese automatosfinitosnãodeterministico
Aula 5 linguagens regularese automatosfinitosnãodeterministico
 
Microcontroladores PIC - Manipulação de pinos de I/O com a Linguagem C
Microcontroladores PIC - Manipulação de pinos de I/O com a Linguagem CMicrocontroladores PIC - Manipulação de pinos de I/O com a Linguagem C
Microcontroladores PIC - Manipulação de pinos de I/O com a Linguagem C
 

Andere mochten auch

Apostila de contadores
Apostila de contadoresApostila de contadores
Apostila de contadoresIsvaldo Souza
 
Aula contadores
Aula contadoresAula contadores
Aula contadoresrgraca
 
Registradores contadores memórias_r2
Registradores contadores memórias_r2Registradores contadores memórias_r2
Registradores contadores memórias_r2Eduardo_borges
 
Org flip flops_registradores Organizção de flip flops
Org flip flops_registradores Organizção de flip flopsOrg flip flops_registradores Organizção de flip flops
Org flip flops_registradores Organizção de flip flopsJorge Soares
 
PROJETO DE MAQUINA QUE REALIZA ENCAIXES EM TUBOS
PROJETO DE MAQUINA QUE REALIZA ENCAIXES EM TUBOSPROJETO DE MAQUINA QUE REALIZA ENCAIXES EM TUBOS
PROJETO DE MAQUINA QUE REALIZA ENCAIXES EM TUBOSArpus Supra
 
Mecatronicaapostila 130115095807-phpapp02 (1)
Mecatronicaapostila 130115095807-phpapp02 (1)Mecatronicaapostila 130115095807-phpapp02 (1)
Mecatronicaapostila 130115095807-phpapp02 (1)Arpus Supra
 
Platao o mito_da_caverna
Platao o mito_da_cavernaPlatao o mito_da_caverna
Platao o mito_da_cavernaArpus Supra
 
antonio inacio ferraz-Eletronicadigital-técnico em eletronica-colégio cruzeir...
antonio inacio ferraz-Eletronicadigital-técnico em eletronica-colégio cruzeir...antonio inacio ferraz-Eletronicadigital-técnico em eletronica-colégio cruzeir...
antonio inacio ferraz-Eletronicadigital-técnico em eletronica-colégio cruzeir...ANTONIO INACIO FERRAZ
 
Dureza vickers 1
Dureza vickers 1Dureza vickers 1
Dureza vickers 1Arpus Supra
 
MECATRONICA )PORTUGUES(
MECATRONICA )PORTUGUES(MECATRONICA )PORTUGUES(
MECATRONICA )PORTUGUES(Arpus Supra
 
Eletronica digital lista i
Eletronica digital   lista iEletronica digital   lista i
Eletronica digital lista iCarlos Melo
 
(Robotics) mecatronica facil robô rastreador
(Robotics) mecatronica facil robô rastreador(Robotics) mecatronica facil robô rastreador
(Robotics) mecatronica facil robô rastreadorArpus Supra
 
cinematica diferencial
cinematica diferencialcinematica diferencial
cinematica diferencialArpus Supra
 
Aula4 cin inversa
Aula4 cin inversaAula4 cin inversa
Aula4 cin inversaArpus Supra
 
Apostila eletronica-digital
Apostila eletronica-digitalApostila eletronica-digital
Apostila eletronica-digitalFIPA
 

Andere mochten auch (20)

Flip Flops Parte 2
Flip Flops Parte 2Flip Flops Parte 2
Flip Flops Parte 2
 
Flip Flops Parte 1
Flip Flops Parte 1Flip Flops Parte 1
Flip Flops Parte 1
 
Flip Flops Parte 4
Flip Flops Parte 4Flip Flops Parte 4
Flip Flops Parte 4
 
Apostila de contadores
Apostila de contadoresApostila de contadores
Apostila de contadores
 
Aula contadores
Aula contadoresAula contadores
Aula contadores
 
Registradores contadores memórias_r2
Registradores contadores memórias_r2Registradores contadores memórias_r2
Registradores contadores memórias_r2
 
Org flip flops_registradores Organizção de flip flops
Org flip flops_registradores Organizção de flip flopsOrg flip flops_registradores Organizção de flip flops
Org flip flops_registradores Organizção de flip flops
 
PROJETO DE MAQUINA QUE REALIZA ENCAIXES EM TUBOS
PROJETO DE MAQUINA QUE REALIZA ENCAIXES EM TUBOSPROJETO DE MAQUINA QUE REALIZA ENCAIXES EM TUBOS
PROJETO DE MAQUINA QUE REALIZA ENCAIXES EM TUBOS
 
Mecatronicaapostila 130115095807-phpapp02 (1)
Mecatronicaapostila 130115095807-phpapp02 (1)Mecatronicaapostila 130115095807-phpapp02 (1)
Mecatronicaapostila 130115095807-phpapp02 (1)
 
Platao o mito_da_caverna
Platao o mito_da_cavernaPlatao o mito_da_caverna
Platao o mito_da_caverna
 
antonio inacio ferraz-Eletronicadigital-técnico em eletronica-colégio cruzeir...
antonio inacio ferraz-Eletronicadigital-técnico em eletronica-colégio cruzeir...antonio inacio ferraz-Eletronicadigital-técnico em eletronica-colégio cruzeir...
antonio inacio ferraz-Eletronicadigital-técnico em eletronica-colégio cruzeir...
 
Linux completo
Linux completoLinux completo
Linux completo
 
Dureza vickers 1
Dureza vickers 1Dureza vickers 1
Dureza vickers 1
 
MECATRONICA )PORTUGUES(
MECATRONICA )PORTUGUES(MECATRONICA )PORTUGUES(
MECATRONICA )PORTUGUES(
 
Eletronica digital lista i
Eletronica digital   lista iEletronica digital   lista i
Eletronica digital lista i
 
(Robotics) mecatronica facil robô rastreador
(Robotics) mecatronica facil robô rastreador(Robotics) mecatronica facil robô rastreador
(Robotics) mecatronica facil robô rastreador
 
cinematica diferencial
cinematica diferencialcinematica diferencial
cinematica diferencial
 
Aula4 cin inversa
Aula4 cin inversaAula4 cin inversa
Aula4 cin inversa
 
Flip flop
Flip flopFlip flop
Flip flop
 
Apostila eletronica-digital
Apostila eletronica-digitalApostila eletronica-digital
Apostila eletronica-digital
 

Ähnlich wie Sistemas Digitais - Circuitos sequenciais, latches e flip-flops

Algoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdfAlgoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdfEnio Filho
 
Microcontroladores: El microcontrolador 8051
Microcontroladores: El microcontrolador 8051 Microcontroladores: El microcontrolador 8051
Microcontroladores: El microcontrolador 8051 SANTIAGO PABLO ALBERTO
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao cprofwtelles
 
VHDL_Descricao_e_Sintese_de_Circuitos_Di.pdf
VHDL_Descricao_e_Sintese_de_Circuitos_Di.pdfVHDL_Descricao_e_Sintese_de_Circuitos_Di.pdf
VHDL_Descricao_e_Sintese_de_Circuitos_Di.pdfssuser6f13ac
 
Introdução à eletronica e robótica com arduino
Introdução à eletronica e robótica com arduinoIntrodução à eletronica e robótica com arduino
Introdução à eletronica e robótica com arduinoJuan Manoel
 
Introdução à Computação Aula prática 2 - Algoritmos (Simulando Operações com ...
Introdução à Computação Aula prática 2 - Algoritmos (Simulando Operações com ...Introdução à Computação Aula prática 2 - Algoritmos (Simulando Operações com ...
Introdução à Computação Aula prática 2 - Algoritmos (Simulando Operações com ...Leinylson Fontinele
 
Tutorial do KIT - Para analisar a qualidade da água
Tutorial do KIT - Para analisar a qualidade da água Tutorial do KIT - Para analisar a qualidade da água
Tutorial do KIT - Para analisar a qualidade da água Projetos AEB
 
Utilizando um Display de LCD
Utilizando um Display de LCDUtilizando um Display de LCD
Utilizando um Display de LCDRodrigo Almeida
 
Apresentação curso pic básico fbs eletrônica
Apresentação   curso pic básico fbs eletrônicaApresentação   curso pic básico fbs eletrônica
Apresentação curso pic básico fbs eletrônicaFabio Souza
 

Ähnlich wie Sistemas Digitais - Circuitos sequenciais, latches e flip-flops (15)

Algoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdfAlgoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdf
 
Microcontroladores: El microcontrolador 8051
Microcontroladores: El microcontrolador 8051 Microcontroladores: El microcontrolador 8051
Microcontroladores: El microcontrolador 8051
 
3 aula do curso de automação - Arduino
3 aula do curso de automação - Arduino3 aula do curso de automação - Arduino
3 aula do curso de automação - Arduino
 
Roteiro 1 portas lógicas básicas
Roteiro 1   portas lógicas básicasRoteiro 1   portas lógicas básicas
Roteiro 1 portas lógicas básicas
 
eletronica digital
eletronica digitaleletronica digital
eletronica digital
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao c
 
Aula5 introducao c
Aula5 introducao cAula5 introducao c
Aula5 introducao c
 
VHDL_Descricao_e_Sintese_de_Circuitos_Di.pdf
VHDL_Descricao_e_Sintese_de_Circuitos_Di.pdfVHDL_Descricao_e_Sintese_de_Circuitos_Di.pdf
VHDL_Descricao_e_Sintese_de_Circuitos_Di.pdf
 
Introdução à eletronica e robótica com arduino
Introdução à eletronica e robótica com arduinoIntrodução à eletronica e robótica com arduino
Introdução à eletronica e robótica com arduino
 
Clp
ClpClp
Clp
 
Introdução à Computação Aula prática 2 - Algoritmos (Simulando Operações com ...
Introdução à Computação Aula prática 2 - Algoritmos (Simulando Operações com ...Introdução à Computação Aula prática 2 - Algoritmos (Simulando Operações com ...
Introdução à Computação Aula prática 2 - Algoritmos (Simulando Operações com ...
 
Tutorial do KIT - Para analisar a qualidade da água
Tutorial do KIT - Para analisar a qualidade da água Tutorial do KIT - Para analisar a qualidade da água
Tutorial do KIT - Para analisar a qualidade da água
 
Utilizando um Display de LCD
Utilizando um Display de LCDUtilizando um Display de LCD
Utilizando um Display de LCD
 
Apresentação curso pic básico fbs eletrônica
Apresentação   curso pic básico fbs eletrônicaApresentação   curso pic básico fbs eletrônica
Apresentação curso pic básico fbs eletrônica
 
26-aula26.pdf
26-aula26.pdf26-aula26.pdf
26-aula26.pdf
 

Mehr von Eduardo Bezerra

Mehr von Eduardo Bezerra (8)

Lab9 processos
Lab9 processosLab9 processos
Lab9 processos
 
Lab8 controladores
Lab8 controladoresLab8 controladores
Lab8 controladores
 
Lab7 fsm
Lab7 fsmLab7 fsm
Lab7 fsm
 
Lab5 decod 7seg
Lab5 decod 7segLab5 decod 7seg
Lab5 decod 7seg
 
Lab4 mux
Lab4 muxLab4 mux
Lab4 mux
 
Lab3 componentes
Lab3 componentesLab3 componentes
Lab3 componentes
 
Lab1 apresentacao disciplina
Lab1 apresentacao disciplinaLab1 apresentacao disciplina
Lab1 apresentacao disciplina
 
Lab10 somadores
Lab10 somadoresLab10 somadores
Lab10 somadores
 

Sistemas Digitais - Circuitos sequenciais, latches e flip-flops

  • 1. Universidade Federal de Santa Catarina Centro Tecnológico – CTC Departamento de Engenharia Elétrica http://gse.ufsc.br “EEL7020 – Sistemas Digitais” Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@eel.ufsc.br Florianópolis, agosto de 2012.
  • 2. Sistemas Digitais Circuitos sequenciais, latches e flip-flops EEL7020 – Sistemas Digitais 2/20
  • 3. Objetivos do laboratório 1. Entender o conceito de circuitos sequenciais. 2. Entender o conceito e diferença entre flip-flops e latches. 3. Entender o conceito de registradores em VHDL. 4. Implementação de flip-flops, latches e registradores em VHDL. 5. Estudo de caso: projeto de calculadora personalizada, com apresentação dos resultados em displays de 7- segmentos, e uso de registradores como elementos de “memória”. EEL7020 – Sistemas Digitais 3/20
  • 4. Uso de “process” na descrição de circuitos sequenciais EEL7020 – Sistemas Digitais 4/20
  • 5. Descrição de circuitos sequenciais em VHDL library ieee; Process use ieee.std_logic_1164.all; entity Sinais is port ( • Define uma SEQUÊNCIA DE COMANDOS a C: in std_logic; ser realizada pelo circuito. D: in std_logic; Q: out std_logic • O processo é acionado, e sua sequência ); end Sinais; de comandos é executada, sempre que ocorrer uma alteração em algum elemento architecture behv of Sinais is signal A, B: std_logic; da sua LISTA DE PARÂMETROS (Ex. C ou D). begin A <= D; • Um processo nunca termina - CÍCLICO. Q <= B; • Dessa forma, após a execução do último P1: process (C, D) comando, o primeiro comando da sequência begin B <= '0’; é executado, SEMPRE que ocorrer uma if (C = '1') then nova alteração em algum parâmetro. B <= D; end if; • Obs. Comando IF .. THEN .. ELSE é end process P1; utilizado APENAS dentro de um process. end behv; EEL7020 – Sistemas Digitais 5/20
  • 6. Descrição de circuitos sequenciais em VHDL Process • A lista de parâmetros de um processo é denominada SENSITIVITY LIST. process (A, B, C, D) • Os valores atribuídos aos sinais pelos begin comandos do processo, só serão válidos A <= '1'; Sequêncial após a execução do último comando, ou B <= '1'; seja, após “sair” do processo. B <= D; A <= not B; • Se existirem várias atribuições a um C <= A and '1'; mesmo sinal, APENAS a última atribuição D <= C; end process; será válida (ex. sinal B no corpo do processo). • Não é permitido declarar sinais dentro de um processo. EEL7020 – Sistemas Digitais 6/20
  • 7. Descrição de circuitos sequenciais em VHDL library ieee; use ieee.std_logic_1164.all; Resultado da simulação do VHDL entity Sinais is port ( C: in std_logic; D: in std_logic; Q: out std_logic ); end Sinais; architecture behv of Sinais is signal A, B: std_logic; C begin D A <= D; Q Q <= B; P1: process (C, D) C foi alterado para ‘0’, logo o processo é begin executado novamente, e B receberá ‘0’, B <= '0'; pois o teste do IF será falso. if (C = '1') then Logo, Q será zero (combinacional). B <= D; end if; end process P1; end behv; EEL7020 – Sistemas Digitais 7/20
  • 8. Flip-flops e latches em VHDL EEL7020 – Sistemas Digitais 8/20
  • 9. Latch D library ieee; use ieee.std_logic_1164.all; D D latch entity D_latch is port ( S C: in std_logic; C D: in std_logic; Q: out std_logic Q ); R end D_latch; architecture behv of D_latch is begin process(C, D) begin if (C = '1') then Q <= D; end if; end process; end behv; EEL7020 – Sistemas Digitais 9/20
  • 10. Latch D library ieee; use ieee.std_logic_1164.all; entity D_latch is port ( C: in std_logic; D: in std_logic; Q: out std_logic ); end D_latch; 1 architecture behv of D_latch is D 0 begin 1 process(C, D) C 0 begin 1 if (C = '1') then S 0 Q <= D; 1 end if; R 0 end process; 1 end behv; Q 0 EEL7020 – Sistemas Digitais 10/20
  • 11. Flip-Flop D D flip-flop D latch D latch Q’ library ieee; D Dm Qm Ds Qs’ use ieee.std_logic_1164.all; Q entity D_FF is port ( Cm Cs Qs CLK: in std_logic; master servant D: in std_logic; Q: out std_logic Clk ); end D_FF; architecture behv of D_FF is Clk begin process(CLK, D) D/Dm begin Cm if (CLK'event and CLK = '1') then Q <= D; Qm/Ds end if; Cs end process; end behv; Qs EEL7020 – Sistemas Digitais 11/20
  • 12. Flip-Flop D com RESET assíncrono library ieee; use ieee.std_logic_1164.all; entity D_FF is port ( D Q CLK: in std_logic; CLK RST: in std_logic; RST D: in std_logic; Q: out std_logic ); end D_FF; •Sempre que a entrada RST architecture behv of D_FF is for Zero, a saída Q será Zero. begin process (CLK, RST, D) • Quando RST for diferente begin de Zero, o valor na saída Q if (RST = '0') then vai depender da entrada CLK. Q <= '0'; elsif (CLK'event and CLK = '1') then • Se CLK for ‘1’ E for uma Q <= D; borda de subida, então Q end if; receberá a entrada D. end process; EEL7020behv; Digitais end – Sistemas 12/20
  • 13. library ieee; Flip-Flop D com Enable use ieee.std_logic_1164.all; entity D_FF is port ( CLK: in std_logic; RST: in std_logic; D EN: in std_logic; Q D: in std_logic; EN Q: out std_logic CLK ); RST end D_FF; architecture behv of D_FF is begin process (CLK, RST, D) • Sempre que a entrada RST begin for Zero, a saída Q será Zero. if RST = '0' then Q <= '0'; • Se CLK for ‘1’ E for uma elsif CLK'event and CLK = '1' then borda de subida E o sinal de if EN = '1' then Enable (En) estiver em ‘1’, Q <= D; end if; então Q receberá a entrada D. end if; end process; end behv; EEL7020 – Sistemas Digitais 13/20
  • 14. Enquanto não ocorrer um Registrador de 4 bits novo evento no sinal CLK e library ieee; enquanto esse evento for use ieee.std_logic_1164.all; diferente de ‘1’ (borda de entity D_4FF is port ( subida), então a saída Q do CLK: in std_logic; flip-flop continuará D: in std_logic_vector(3 downto 0); armazenando o valor atual. Q: out std_logic_vector(3 downto 0) ); Ao ocorrer um novo evento end D_4FF; em CLK, e se esse novo architecture behv of D_4FF is evento for uma transição begin de ‘0’ para ‘1’ (borda de process(CLK, D) subida), então a saída Q begin receberá o novo valor if (CLK'event and CLK = '1') then existente na entrada D. Q <= D; D(3) D(2) D(1) D(0) end if; Q(3) Q(2) Q(1) Q(0) end process; end behv; D Q D Q D Q D Q CLK CLK CLK CLK clock_50 EEL7020 – Sistemas Digitais 14/20
  • 15. Tarefa a ser realizada: Mini-calculadora com registradores para armazenamento (memória) de resultados. EEL7020 – Sistemas Digitais 15/20
  • 16. Uso de registradores na mini-calculadora VHDL Operando B top_calc f=A+B Registrador SW(15 downto 8) D 8 F(7..4) Decod. Operando A 8 Q 4 7-seg SW(7 downto 0) 8 4 EN f = A or B HEX1 8 8 F1 00 8 F2 01 F(3..0) Registrador F F3 Mux D 10 8 4 Q Decod. F4 11 4 7-seg F = A xor B EN 8 2 HEX0 sel 8 8 8 F(7..0) Registrador D f = not A Q EN 8 Seleção da operação 8 8 (+, or, xor, not) SW(17 downto 16) LEDR(7 downto 0) Enter KEY(1) Clock CLOCK_50 Reset KEY(0) EEL7020 – Sistemas Digitais 16/20
  • 17. Descrição do circuito a ser implementado • O circuito consiste na mini-calculadora do lab. anterior, porém com a inclusão de registradores para armazenar os resultados das operações. o Um registrador de 4 bits para armazenar a parte baixa do resultado a ser apresentado em HEX0. o Um registrador de 4 bits para armazenar a parte alta do resultado a ser apresentado em HEX1. o Um registrador de 8 bits para armazenar o resultado a ser apresentado, em binário, nos LEDs vermelhos. • Ao se pressionar o botão KEY0 (Reset), os flip-flops deverão ser “limpos”, apagando os LEDs, e apresentando o valor 0 (zero) nos displays de sete segmentos. • Ao se pressionar o botão KEY1(Enter), os flip-flops são habilitados para escrita, armazenando os valores presentes nas suas entradas (“memória”). • As entradas CLK (clock) dos flip-flops recebem um sinal de relógio gerado por um cristal presente na placa DE2. EEL7020 – Sistemas Digitais 17/20
  • 18. Dicas úteis EEL7020 – Sistemas Digitais 18/20
  • 19. Dicas úteis • No slide 13 é apresentado um flip-flop D D Q com Reset e Enable (ver símbolo ao lado). EN CLK RST • No slide 14 é apresentado um registrador de 4 bits, implementado com 4 flip-flops, porém sem Reset e sem Enable. • Utilizar os circuitos dos slides 13 e 14 como base para para escrever o VHDL dos dois registradores de 4 bits e do registrador de 8 bits solicitado no exercício, todos com Reset e Enable. • O sinal de relógio (Clock ou CLK) do circuito deve ser obtido diretamente da placa, utilizando o sinal CLOCK_50 (ver o manual da DE2, e o arquivo de pinos). EEL7020 – Sistemas Digitais 19/20
  • 20. Interface com o usuário (entrada/saída) HEX1 HEX0 LEDR(7..0) Usar KEY(0) para o “Reset” Usar KEY(1) para o “Enter” (Enable) Usar SW(7..0) para entrar com operando A Usar SW(15..8) para entrar com operando B Usar SW(17..16) para selecionar a operação (F1, F2, F3 ou F4) EEL7020 – Sistemas Digitais 20/20