Your SlideShare is downloading. ×
Lab6 flipflop
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Lab6 flipflop

522
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
522
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
43
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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 DigitaisCircuitos sequenciais, latches e flip-flops EEL7020 – Sistemas Digitais 2/20
  • 3. Objetivos do laboratório1. 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 VHDLlibrary ieee; Processuse 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 elementoarchitecture 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 VHDLlibrary ieee;use ieee.std_logic_1164.all; Resultado da simulação do VHDLentity 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; Cbegin 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; Qentity 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 Clkbegin process(CLK, D) D/Dm begin Cm if (CLKevent 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 isfor Zero, a saída Q será Zero. begin process (CLK, RST, D)• Quando RST for diferente beginde Zero, o valor na saída Q if (RST = 0) thenvai depender da entrada CLK. Q <= 0; elsif (CLKevent 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 beginfor Zero, a saída Q será Zero. if RST = 0 then Q <= 0;• Se CLK for ‘1’ E for uma elsif CLKevent and CLK = 1 thenborda de subida E o sinal de if EN = 1 thenEnable (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 umRegistrador de 4 bits novo evento no sinal CLK elibrary ieee; enquanto esse evento foruse ieee.std_logic_1164.all; diferente de ‘1’ (borda deentity 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 eventoend D_4FF; em CLK, e se esse novoarchitecture behv of D_4FF is evento for uma transiçãobegin de ‘0’ para ‘1’ (borda de process(CLK, D) subida), então a saída Q begin receberá o novo valor if (CLKevent 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 paraarmazenamento (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 8Seleção da operação 8 8(+, or, xor, not)SW(17 downto 16) LEDR(7 downto 0)Enter KEY(1)Clock CLOCK_50Reset 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