·

Ciência da Computação ·

Sistemas Digitais

· 2022/1

Envie sua pergunta para a IA e receba a resposta na hora

Fazer Pergunta

Texto de pré-visualização

Sistemas Digitais Aula 5-2 Flip-Flops Prof. Dr. Stefan Michael Blawid sblawid@cin.ufpe.br SD - §5 Circuitos Sequencias 2 Introdução Os latches são circuitos sensíveis ao nível e podem mudar de estado mais de uma vez enquanto o sinal de clock estiver ativo. Circuitos (elementos de armazenamento) que mudam de estado somente uma vez durante um período de clock são requeridos. O comportamento desejado pode ser alcançado por uma arquitetura mestre-escravo de dois Latches. Também podem ser sintetizadas estruturas diferentes com o mesmo comportamento e, às vezes, são indicadas como Flip-flops “gatilhado pela borda”. No entanto, todos Flip-flops são ativados pela borda (positiva ou negativa) do relógio. SD - §5 Circuitos Sequencias 3 Tópicos Flip-Flops Flip-Flop D Flip-Flop SR e JK (Mestre Escravo) Flip-Flop JK (gatilhado pela borda) e T Exemplo de aplicação: PALs sequenciais Detalhes de temporização SD - §5 Circuitos Sequencias 4 Tópicos Flip-Flops Flip-Flop D Flip-Flop SR e JK (Mestre Escravo) Flip-Flop JK (gatilhado pela borda) e T Exemplo de aplicação: PALs sequenciais Detalhes de temporização SD - §5 Circuitos Sequencias 5 Gatilhado pela Borda Pode-se projetar flip-flops que operem na borda de subida ou na borda de descida Modelo Verilog Comportamental: SD - §5 Circuitos Sequencias 6 Flip-Flop D SD - §5 Circuitos Sequencias 7 Parâmetros de Temporização Setup time Hold time D não deve mudar durante: tsetup (before C edge) + thold (after C edge) Atraso de propagação de CLK SD - §5 Circuitos Sequencias 8 Flip-Flop D vs Latch SD - §5 Circuitos Sequencias 9 Propagação do Sinal Resolve o problema de saber por quantos latches o sinal passará quando o clock =1 Na figura abaixo, o sinal atravessa exatamente um flip-flop a ciclo de clock Acontece o mesmo para Clk_A ou Clk_B Porque na borda de subida do clock todos os 4 flip-flops são carregados simultaneamente. Então, os flip-flops não sofrerão variações até a próxima borda de subida do sinal de clock ocorrer, não importando quanto tempo o sinal ficou em 1. SD - §5 Circuitos Sequencias 10 Outras Variedades de Flip-Flop D Negative-edge triggered Synchronous (to the clock) Enable Scan MUX 2x1 Flip-Flop D SD - §5 Circuitos Sequencias 11 Scan Flip-Flops – Para Teste TE = 0 ➡ operação normal TE = 1 ➡ operação teste Todos os flip-flops são ligados juntos a um “daisy chain” do input TI externo. Carregar (“scan in”) uma sequencia de bits de teste, fazer uma operação normal, shift out (“scan out”) o resultado para TO. SD - §5 Circuitos Sequencias 12 Inputs Assíncronos Maioria dos flip-flops tem duas entradas assíncronas Preset e Reset (ou Clear) Set ou reset diretamente os latches /S-/R Opera independentemente do clock Usa inputs assíncronas para funções lógicas APENAS para a INICIALIZAÇÃO do sistema para um estado conhecido Example: SD - §5 Circuitos Sequencias 13 Entradas de CLEAR e PRESET Pode ser necessário, especificamente, acionar (Q=1) ou limpar (Q=0) a saída do flip-flop Geralmente, flip-flops possuem entradas de preset e clear Essas entradas costumam ser assíncronas (não dependem do sinal de clock) SD - §5 Circuitos Sequencias 14 Entradas de CLEAR e PRESET Implementação clássica de um Flip- Flop D gatilhado pela borda positiva: Número menor das portas lógicas (O princípio: Um Mestre para cada entrada S e R do Escravo) SD - §5 Circuitos Sequencias 15 Tópicos Flip-Flops Flip-Flop D Flip-Flop SR e JK (Mestre Escravo) Flip-Flop JK (gatilhado pela borda) e T Exemplo de aplicação: PALs sequenciais Detalhes de temporização SD - §5 Circuitos Sequencias 16 Mestre-Escravo: A Ideia Formado por 2 latches D: O primeiro é chamado de mestre e muda de estado quando o clock=1 O segundo é chamado de escravo e muda de estado quando o clock=0 SD - §5 Circuitos Sequencias 17 Flip-Flop D Gatilhado pela Borda Negativa Quando o clock=1, o estágio mestre é acionado de acordo com o sinal de entrada D, e o estágio escravo não muda Portanto Qm segue qualquer mudança em D e Qe permanece constante Quando o clock muda para 0, o estágio mestre permanece constante Ao mesmo tempo, o estágio escravo responde às variações de Qm e muda de estado de acordo Se Qm não variar enquanto o clock estiver em 0, o escravo sofrerá apenas uma mudança de estado durante o ciclo de clock A saída Qe do circuito só mudará na borda de descida (ou negativa) do sinal de clock SD - §5 Circuitos Sequencias 18 Flip-Flop SR Mestre-Escravo S R Q Q C “Pulse-triggered” S-R flip-flop Pulse-catching behavior S R Q Q C S R Q Q C S R C Q /Q x x 0 Last Q Last /Q 0 0 Last Q Last /Q 0 1 0 1 1 0 1 0 1 1 Undef undef Altera a saída na borda descendente de C Nova saída depende da entrada durante C = 1 Um (re)set pode ocorrer bem antes da borda C=1➡0 SD - §5 Circuitos Sequencias 19 Flip-Flop JK Mestre-Escravo aia Herda “1s and 0s caching” do FF SR ➡ Mantenha JK válido durante todo o período C = 1 J e K podem ser afirmados simultaneamente Sinal de saída não muda até que a entrada de habilitação C seja negada SD - §5 Circuitos Sequencias 20 Tópicos Flip-Flops Flip-Flop D Flip-Flop SR e JK (Mestre Escravo) Flip-Flop JK (gatilhado pela borda) e T Exemplo de aplicação: PALs sequenciais Detalhes de temporização SD - §5 Circuitos Sequencias 21 Flip-Flop JK Gatilhado pela Borda FFs JK desencadeados pela borda obsoletos os tipos mais antigos acionados por pulso O design de FSMs com FFs D é mais simples SD - §5 Circuitos Sequencias 22 Diagrama de Temporização Como que a saída Q (e /Q) se comporta ? SD - §5 Circuitos Sequencias 23 Diagrama de Temporização SD - §5 Circuitos Sequencias 24 Flip-Flop T (toggle) Flip-Flop T muda o estado a cada tick do clock. Importante para contadores SD - §5 Circuitos Sequencias 25 Comparação SD - §5 Circuitos Sequencias 26 Tópicos Flip-Flops Flip-Flop D Flip-Flop SR e JK (Mestre Escravo) Flip-Flop JK (gatilhado pela borda) e T Exemplo de aplicação: PALs sequenciais Detalhes de temporização SD - §5 Circuitos Sequencias 27 PALs Sequenciais FSM, registros de deslocamento, contadores Os flip-flops internos podem passar para o próximo estado, mesmo quando as saídas O1-O8 estão desativadas SD - §5 Circuitos Sequencias 28 Tópicos Flip-Flops Flip-Flop D Flip-Flop SR e JK (Mestre Escravo) Flip-Flop JK (gatilhado pela borda) e T Exemplo de aplicação: PALs sequenciais Detalhes de temporização SD - §5 Circuitos Sequencias 29 Temporização de um Sistema Síncrono tffpd - CLK to Q, FF propagation delay (min, max) tcomb - combinational logic delay (min, max) tsetup - input stable before clock (min) thold - input stable after clock (min) CLK D Q Combinational Logic D Q tffpd tcomb tsetup & thold SD - §5 Circuitos Sequencias 30 Temporização de um Sistema Síncrono tffpd Flip-Flop outputs setup-time margin tsetup t hold Flip-Flop inputs Combinational outputs tcomb D Q C. L. D Q Clock tH tL tclk SD - §5 Circuitos Sequencias 31 Temporização de um Sistema Síncrono tclk,min > tffpd,max + tcomb,max + tsetup,min Diferença ➡ Setup time margin Precisa de tempo suficiente para preparar a mudança tffpd, min + tcomb,min > thold,min Diferença ➡ Hold time margin A próxima mudança não deve chegar tão cedo Requirido D Q C. L. D Q SD - §5 Circuitos Sequencias 32 Exemplo Max Frequency: tclk,min ≥ 40ns ➡ fmax ≤ 25MHz Memory Combinational Logic tcomb = 2ns, min and 20ns, max tffpd = 3ns, min and 15ns, max tsetup = 5ns, min thold = 2ns, min At 10 MHz clk Setup margin: 100 - (15 + 20 + 5) = 60ns Hold Margin: (3 + 2) -2 = 3ns Setup Margin: tclk,min > tffpd,max + tcomb,max + tsetup,min Hold Time Margin: tffpd, min + tcomb,min > thold,min SD - §5 Circuitos Sequencias 33 Sugestões de Leitura John F. Wakerly, “Digital Design: Principles and Practices”, Pearson Education, 2017 Capítulos 7.2, 8.3 Neal S. Widmer, Gregoy L. Moss, Ronald J. Tocci “Digital Systems: Principles and Applications”, Morgan Kaufmann, Pearson Education, 2018 Capítulos 5.4 - 5.16 Charles H. Roth, Lizy Kurian John, and Beyond Kil Lee, “Digital Systems Design Using Verilog”, Cengage Learning, 2015 Capítulos 1.6, 1.10 Brock J. LaMeres, “Quick Start Guide to Verilog”, Springer, 2019 Capítulos: 7.1 SD - §5 Circuitos Sequencias 34 Pequenos Projetos Tocci 5-12: Mostre como um Flip-Flop JK pode operar como um Flip-Flop (D) de dados (Q vai para o mesmo estado que a entrada em cada pulso do relógio). Escreva um modelo Verilog implementando seu projeto e simulando o circuito. Visualize possíveis formas de onda na saída com uma bancada de teste adequada. O que acontece se a saída Q do Flip-Flop JK do projeto estiver conectada à entrada CLK de um segundo flip-flop JK que possui J=K=1? Simule novamente o circuito. Tocci 5-26: Use dois flip-flops JK para projetar um circuito sequencial com três entradas A, B, C e uma saída Y. A saída Y mudará para HIGH somente quando primeiro A, depois B e finalmente C for HIGH. Somente esta sequência específica deve ativar a saída. Escreva um modelo Verilog implementando seu projeto e simulando o circuito. Visualize possíveis formas de onda na saída com uma bancada de teste adequada. SD - §5 Circuitos Sequencias 35 Pequenos Projetos Roth 2-10: Um flip-flop M-N responde à borda do relógio em queda da seguinte forma: (1) Se M=N=0, o FF muda de estado; (2) Se M=0 e N=1, a saída do FF é definida como 1; (3) Se M=1 e N=0, a saída do FF é definida como 0, (4) Se M=N=1, nenhuma alteração do estado do FF ocorre. O flip-flop é limpo de forma assíncrona se CLRn=0. Escreva um módulo Verilog completo que implemente um flip-flop M-N. Roth 2-11: Um flip-flop DD é semelhante a um flip-flop D, exceto que o flip-flop pode mudar de estado (Next state Q+=D) tanto na borda ascendente quanto na borda descendente da entrada do relógio. O flip-flop possui uma entrada de redefinição direta, R, e R=0 redefine o flip-flop para Q=0, independentemente do relógio. Da mesma forma, ele possui uma entrada de ajuste direta, S, que define o flip-flop para 1 independente do relógio. Escreva uma descrição Verilog de um flip-flop DD. SD - §5 Circuitos Sequencias 36 Pequenos Projetos Roth 2-12: Um Flip-Flop de alternância inibido possui as entradas I0, I1, T e Reset e produz Q e QN. O Reset está ativa em HIGH e substitui a ação das outras entradas. O FF funciona da seguinte maneira: (1) Se I0=1, o FF muda de estado na borda ascendente de T; (2) Se I1=1, o FF muda de estado na borda descendente de T; (3) Se I0=I1=0, nenhuma mudança de estado ocorre (exceto no caso do Reset). Suponha que o atraso de propagação de T para a saída seja 8ns e do Reset para a saída seja 5ns: (a)Escreva uma descrição Verilog completa deste flip-flop; (b)Escreva uma sequência de comandos do simulador que testarão o Flip-Flop para seguinte sequência de sinais de entrada: I1=1, alterne T duas vezes, I1=0, I0=1, alterne T duas vezes. »Wissen schafft Brücken.«