• 0:00
    /
    0:00
    Loaded: 0%
    0:00
    Progress: 0%
    Stream TypeLIVE
    0:00
     
    1x
    Advertisement

Capítulo 5: Flip-flops e Registradores

Apresentações semelhantes


Apresentação em tema: "Capítulo 5: Flip-flops e Registradores"— Transcrição da apresentação:

1 Capítulo 5: Flip-flops e Registradores
Circuitos Sequenciais Circuitos simples com realimentação Latches Flip-flops Edge-triggered (disparados pela borda) Metodologias de Temporização Flip-flops em cascata Clock skew (deformação) Entradas Assíncronas Metaestabilidade e sincronização Registradores Básicos Registradores de Deslocamento Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 1

2 Circuitos Sequenciais
Circuitos com realimentação Saídas = f(entradas, entradas passadas, saídas passadas) Base para a introdução de “memória” em circuitos lógicos Exemplo: tranca digital com combinação Estado é memória Estado é uma “saída" e uma “entrada" para a lógica combinacional Elementos de armazenamento da combinação são tb. memória new equal reset value C1 C2 C3 mux control multiplexer comb. logic comparator state clock equal open/closed Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 2

3 Circuitos com Realimentação
Como controlar a realimentação? O que interrompe valores de circularem indefinidamente? X1 X2 • • • Xn Z1 Z2 • • • Zn switching network Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 3

4 Circuito mais simples com Realimentação
Dois inversores formam célula estática de memória Valor é mantido enquanto a alimentação for mantida Como inserir um novo valor na célula de memória? Interromper seletivamente o caminho de realimentação Carregar novo valor na célula "0" "1" "stored value" “lembre" “carregue" "data" “valor armazenado" Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 4

5 Memórias com Portas com Acoplamento Cruzado
Memória com portas NOR “Cross-coupled” Similar ao par inversor, com capacidade de forçar a saída para 0 (reset=1) ou 1 (set=1) Memória com portas NAND “Cross-coupled” Similar ao par inversor, com capacidade de forçar a saída para 0 (reset=0) ou 1 (set=0) R S Q Q' R S Q Q Q' S' R' R' S' Q Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 5

6 Comportamento no Tempo
S Q Q' Reset Hold Set Reset Set Race 100 R S Q \Q Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 6

7 Comportamento de Estados do latch R-S
Tabela verdade do comportamento do latch RS Q Q' 0 1 Q Q' 1 0 Q Q' 0 0 Q Q' 1 1 S R Q 0 0 hold unstable Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 7

8 Comportamento Teórico do Latch RS
SR=10 SR=00 SR=01 SR=00 SR=10 Q Q' 0 1 Q Q' 1 0 Q Q' 0 0 Q Q' 1 1 SR=01 SR=10 SR=01 SR=01 SR=10 SR=11 SR=11 SR=11 Diagrama de Estados Estados: possíveis valores Transições: mudanças baseadas nas entradas Possível oscilação entre os estados 00 e 11 SR=00 SR=00 SR=11 Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 8

9 Comportamento Observado do Latch RS
Muito difícil se observar a saída do estado 1-1 Normalmente ou R ou S muda primeiro Retorno ambíguo ao estado 0-1 ou 1-0 Transição não-determinística Q Q' 0 1 Q Q' 1 0 Q Q' 0 0 SR=10 SR=01 SR=00 SR=11 SR=00 Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 9

10 Análise do Latch RS Desfazer o caminho de realimentação Q(t) R Q
S R Q(t) Q(t+) X X Mantém estado reset set Não permitida 0 0 1 0 X 1 Q(t) R S Equação característica Q(t+) = S + R’ Q(t) Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 10

11 Latch RS com Entrada de Sincronismo
“enable” controla quando as entradas R and S são apresenta- das ao latch Variações em R e S enquanto “enable” = 0 podem alterar as saídas enable' S' Q' Q R' R S Set Reset S' R' enable' Q Q' 100 Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 11

12 Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 12
Clock (Relógio) Utilizado para sincronismo Esperar o suficiente para que as entradas (R' e S') se estabilizem Então permitir que elas atuem no valor armazenado Um “clock” é um sinal periódico normal Período (tempo entre “ticks”) Duty-cycle (tempo em que o clock = ‘1’ - expresso em % do período) duty cycle (in this case, 50%) period Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 12

13 Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 13
Clock (continuação) Controlando um latch R-S através de um clock Não se deve permitir que R ou S se alterem enquanto o clock está ativo (permitindo que R ou S atuem nas saídas) Sinais R’ e S’ precisam estar estáveis enquanto o clock está ativo clock' S' Q' Q R' R S clock R' and S' changing stable Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 13

14 Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 14
Latches em Cascata Conecte a saída de um latch à entrada de outro Como impedir a condição “race” de acontecer? Necessidade de controlar o fluxo de dados de um latch para o próximo Avançar de um latch por período de clock Preocupação com lógica entre latches (arrows) que seja muito rápida clock R S Q Q' Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 14

15 Estrutura Master-Slave
Quebra o fluxo alternando clocks Usa clock positivo para armazenar as entradas em um latch Usa clock negativo para mudar as saídas de outro latch R-S O par deve ser visto como uma unidade básica Flip-flop master-slave (mestre-escravo) Saídas mudam uns poucos retardos de porta depois do “falling edge” (borda de descida) do clock Estágio mestre Estágio escravo P P' CLK R S Q Q' Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 15

16 O Problema da ‘captura de 1s’
No primeiro estágio R-S do FF master-slave Um “glitch” (transição rápida) em R ou S enquanto o clock está em ‘1’ é ‘capturado’ pelo estágio mestre Implica em restrições na lógica em ser “hazard-free” Estágio mestre Estágio escravo P P' CLK R S Q Q' Set 1s catch S R CLK P P' Q Q' Reset Saídas do Mestre Saídas do Escravo Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 16

17 Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 17
O Flip-Flop JK Elimina a condição instável (R=1; S=1) do flip-flop RS J K Clock Q(t+1) X X Q(t) 1 Q(t) 1 1 1 1 1 Equação característica: 1 1 1 Q(t)’ Q(t+1) = K’.Q(t) + J.Q(t)’ “Toggle” Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 17

18 O flip-flop JK (continuação)
Largura de pulso deve permitir apenas uma mudança na saída! Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 18

19 Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 19
O Flip-Flop D S e R são o complemento um do outro Elimina o problema da captura de 1s Não pode simplemente manter o valor anterior (necessita ter o novo valor pronto a cada período de clock) Valor de D imediatamente antes do clock ir para ‘0’ é armazenado no flip-flop Se pode construir um flip-flop R-S adicionando lógica para fazer D = S + R' Q D Q Q' master stage slave stage P P' CLK R S 10 gates Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 19

20 Flip-flops Edge-Triggered (Disparados pela Borda)
Solução mais eficiente: somente 6 portas Sensível à entrada somente próximo à borda do clock Q D Clk=1 R S D’ Q’ mantem D' quando O clock vai a ‘0’ Flip-flop D, negative edge-triggered (disparado pela borda negativa) 4-5 retardos de portas Precisa obedecer às restrições dos tempos de “set-up” e “ hold” para capturar mantem D quando o clock vai a ‘0’ Equação característica: Q(t+1) = D(t) Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 20

21 Flip-flops Edge-Triggered (continuação)
Análise Passo-a-passo Q D Clk=0 R S D’ Q novo D Clk=0 R S D D’ novo D  antigo D Quando o clock vai de ‘1’ para ‘0’ O dado é armazenado Quando o clock = ‘0’ O dado é mantido Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 21

22 Flip-Flops Edge-triggered (continuação)
Positive edge-triggered Entradas amostradas na borda de subida; saídas mudam após a borda de subida (do clock) Negative edge-triggered flip-flops Entradas amostradas na borda de descida; saídas mudam após a borda de descida 100 D CLK Qpos Qpos' Qneg Qneg' positive edge-triggered FF negative edge-triggered FF Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 22

23 Flip-flops Edge-triggered (continuação)
D-type positive edge-triggered flip-flop 1 D’ D S’ R’ mantem D’ quando o clock vai a ‘1’ mantém D quando o clock vai a ‘1’ Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 23

24 Flip-flops Edge-triggered (continuação)
1 D’ D S’ R’ Após a subida do clock: Símbolo Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 24

25 Metodologias de Temporização
Regras para interconexão de componentes e clocks Garantem operação adequada do sistema quando observadas Abordagem depende dos blocos básicos utilizados para os elementos de memória Foco em sistemas com flip-flops edge-triggered Encontrados em dispositivos lógicos programáveis Muitos CI’s contém latches sensíveis a nível Regras básicas para uma temporização correta: (1) Entradas corretas, com relação ao tempo, devem ser fornecidas aos flip-flops (2) Não mais de uma mudança de estado de flip-flop por “clocking event” Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 25

26 Metodologias de Temporização (cont.)
Definição de termos clock: evento periódico que provoca a mudança de estado do elemento de memória; (rising/falling edge, high/low level) setup time: tempo mínimo antes do “clocking event” que a entrada precisa estar estável (Tsu) hold time: tempo mínimo depois do “clocking event” até o qual a entrada precisa continuar estável (Th) entrada clock Tsu Th entrada D Q D Q clock Existe uma “janela” de tempo em torno do “clocking event” durante a qual a entrada precisa permanecer estável e inalterada para que seja reconhecida estável alterando entrada clock Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 26

27 Comparação entre Latches e Flip-Flops
D Q D CLK Qedge Qlatch CLK positive edge-triggered flip-flop D Q G CLK Latch transparente (level-sensitive) Comportamento é o mesmo a não ser que a entrada mude enquanto o clock = ‘1’ Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 27

28 Comparação entre Latches e Flip-Flops (continuação)
Tipo Entradas são amostradas Saída é válida unclocked sempre retardo a partir da mudança na entrada latch level-sensitive clock = ‘1’ retardo a partir da mudança na entrada latch (Tsu/Th em torno do ou borda do clock (o que ocorrer por falling edge do clock) último) master-slave clock = ‘1’ retardo a partir da transição negativa flip-flop (Tsu/Th em torno do do clock falling edge do clock) negative Transição de ‘1’ para ‘0’ retardo a partir da transição negativa edge-triggered no clock (Tsu/Th em tor- do clock flip-flop no do falling edge) Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 28

29 Especificações de Tempo Típicas
Positive edge-triggered D flip-flop Tempos de Setup e hold times Largura de clock mínima Retardos de propagação (0 para 1, 1 para 0, máximo e típico) Th 5ns Tw 25ns Tplh 25ns 13ns Tphl 40ns 25ns Tsu 20ns D CLK Q Todas as medidas são feitas a partir do “clocking event”, isto é, a partir da borda de subida do clock Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 29

30 Flip-flops Edge-triggered em Cascata
Shift register (Registrador de deslocamento) Novo valor entra no primeiro estágio Valor anterior do primeiro estágio entra no segundo estágio Consider setup/hold/retardo (retardo precisa ser > hold) CLK IN Q0 Q1 D Q OUT 100 IN Q0 Q1 CLK Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 30

31 Flip-flops Edge-triggered em Cascata (continuação)
Porque isto funciona? Retardo de propagação excede os tempos de “hold” Largura do clock excede o tempo de “setup” Isto garante que o próximo estágio armazenará valor atual antes que ele mude para o novo valor In Q0 Q1 CLK Tsu 4ns Tsu 4ns as restrições de temporização garantem a operação adequada dos componentes em cascata Tp 3ns Tp 3ns assume distribuição instantânea do clock Th 2ns Th 2ns Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 31

32 Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 32
Clock Skew O problema Comportamento correto assume que o próximo estado de todos os elementos de armazenamento é determinado por todos os elementos de armazenamento ao mesmo tempo Isto é difícil de ser obtido em sistemas de alta performance, já que o tempo para o clock chegar no flip-flop é comparável aos retardos através da lógica Efeito do “skew” em flip-flops em cascata: 100 In Q0 Q1 CLK0 CLK1 CLK1 é uma versão atrasada do CLK0 estado original: IN = 0, Q0 = 1, Q1 = 1 devido ao “skew”, o próximo estado se torna: Q0 = 0, Q1 = 0, e não Q0 = 0, Q1 = 1 Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 32

33 Sumário de Latches e Flip-Flops
Desenvolvimento do flip-flop D Level-sensitive utilizado em circuitos integrados sob medida pode ser feito com 4 chaves Edge-triggered utilizado em dispositivos lógicos programáveis Boa escolha para registradores de armazenamento de dados Historicamente o flip-flop J-K foi mais popular do que atualmente Similar ao R-S mas com 1-1 sendo usado para alterar (“toggle”) a saída (complementar o estado) Função de entrada mais complexa: D = JQ' + K'Q Não é uma boa escolha para PALs/PLAs, já que necessita de 2 entradas Pode sempre ser implementado utilizando flip-flop D Entradas de Preset e clear são altamente desejáveis em flip-flops Utilizadas como inicialização de um sistema em um estado conhecido Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 33

34 Metaestabilidade e Entradas Assíncronas
Circuitos síncronos com clock Entradas e estado amostrados, e saídas que se alteram, com relação a um sinal de referência comum (chamado de clock) Ex: master/slave, edge-triggered Circuitos assíncronos Entradas, estado, e saídas amostrados ou que se alteram independentemente de um sinal de referência comum (glitches/hazards são uma preocupação central) Ex: latch RS Entradas assíncronas de circuito síncronos Entradas podem mudar a qq momento (tempos de setup/hold podem não ser atendidos) Entradas síncronas são preferíveis Não podem ser evitadas em certas circunstâncias (ex: sinal de reset, “memory wait”, entrada do usuário) Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 34

35 Falha de Sincronização
Ocorre quando a entrada do Flip-flop muda próximo à borda do clock FF pode entrar num estado metaestável – nem 0 nem 1 FF pode permanecer neste estado indefinidamente logic 1 logic 0 logic 0 logic 1 probabilidade baixa, mas não nula, de que a saída do FF fique presa em um estágio intermediário gráficos no osciloscópio demonstrando falha de sincronização e eventual decaimento ao estado permanente Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 35

36 Lidando com a Falha de Sincronização
Probabilidade da falha não pode ser reduzida a 0, mas pode ser reduzida (1) desacelerar o clock do sistema: isto dá ao sincronizador mais tempo para entrar em um estado permanente; falha de sincronizacão se torna um grande problema para sistemas de alta velocidade (2) usar no sincronizador a tecnologia lógica mais rápida possível (3) cascatear dois sincronizadores: isto efetivamente sincroniza duplamente entrada assíncrona Q entrada sincronizada D Q D Clk Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 36 sistema síncrono

37 Lidando com Entradas Assíncronas
Nunca permita que entradas assíncronas sejam conectadas a mais de um flip-flop Sincronize assim que possível e então trate a saída do sincronizador como sendo o sinal assíncrono Sincronizadorr Sistema síncrono Entrada Q0 Entrada Q0 D Q D Q D Q assíncrona assíncrona Clock Clock D Q Q1 D Q Q1 Clock Clock Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 37

38 Lidando com Entradas Assíncronas (continuação)
O que pode dar errado? Entrada muda muito perto da borda do clock (violando a restrição do tempo de setup) Entrada Q0 Q1 CLK Entrada é assíncrona e está conectada a D0 e D1 um FF captura o sinal, e o outro não estado inconsistente pode ser atingido! Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 38

39 Características de Flip-Flops
Reset (estabelece o estado em 0) – R Síncrono: Dnew = R' • Dold (quando a próxima borda do clock chegar) Assíncrono: não espera pelo clock; rápido porém perigoso Preset ou set (estebelece o estado em 1) – S (or sometimes P) Síncrono: Dnew = Dold + S (quando a próxima borda do clock chegar) Reset e Preset Dnew = R' • Dold + S (set-dominant) Dnew = R' • Dold + R'S (reset-dominant) Capacidade Seletiva de entrada (input enable/load) – LD or EN Multiplexer na entrada: Dnew = LD' • Q + LD • Dold Load pode ou não se sobrepor ao reset/set (normalmente R/S tem prioridade) Saídas complementares – Q e Q' Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 39

40 Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 40
Registradores Coleção de flip-flops com controles e lógica similares Valores armazenados estão relacionados de alguma forma (ex: formam um valor binário) Compartilham linhas de clock, reset, e set Lógica similar em cada estágio Exemplos Shift registers (registradores de deslocamento) Contadores R S D Q OUT1 OUT2 OUT3 OUT4 CLK IN1 IN2 IN3 IN4 "0" Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 40

41 Registrador de Deslocamento
Armazenam amostras da entrada ex: registrador de deslocamento de 4 bits armazenam os ultimos 4 valores em sequência D Q IN OUT1 OUT2 OUT3 OUT4 CLK Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 41

42 Registrador de Deslocamento Universal
Armazena 4 valores Entradas seriais ou paralelas Saídas seriais ou paralelas Permite o deslocamento à esquerda ou à direita Desloca novos valores à esquerda ou à direita left_in left_out right_out clear right_in output input s0 s1 clock clear estabelece o conteúdo do registrador e da saída em 0 s1 e s0 determinam o tipo de deslocamento s0 s1 function mantém estado deslocamento à direita deslocamento à esquerda carregue nova entrada Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 42

43 Projeto do Registrador de Deslocamento Universal
Considere um dos quatro flip-flops Próximo valor no próximo ciclo de clock: Nth célula p/ N-1th célula para N+1th célula Q D CLK clear s0 s1 new value 1 – – output output value of FF to left (shift right) output value of FF to right (shift left) input CLEAR s0 e s1 control mux 1 2 3 Q[N-1] (left) Q[N+1] (right) Input[N] Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 43

44 Aplicação de Registradores de Deslocamento
Conversão paralelo-serial para transmissão serial saídas paralelas entradas paralelas Transmissão serial Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 44

45 Reconhecedor de Padrões
Função combinacional de amostras da entrada ex: reconhecendo o padrão 1001 em um único sinal de entrada D Q IN OUT1 OUT2 OUT3 OUT4 CLK OUT Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 45

46 Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 46
Contadores Sequencias através de um conjunto fixo de padrões Neste caso: 1000, 0100, 0010, 0001 Um dos padrões é o estado inicial (usar load ou set/reset) Contador Mobius (ou Johnson) In this case, 1000, 1100, 1110, 1111, 0111, 0011, 0001, 0000 D Q IN OUT1 OUT2 OUT3 OUT4 CLK D Q IN OUT1 OUT2 OUT3 OUT4 CLK Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 46

47 Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 47
Contador Binário Lógica entre os registradores (não somente um multiplexer) XOR decide quando um determinado bit deve ser “toggled” Sempre para o bit de mais baixa ordem; somente quando o primeiro bit é verdade para o segundo bit, e assim por diante D Q OUT1 OUT2 OUT3 OUT4 CLK "1" Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 47

48 Contador Binário Ascendente Síncrono de 4-bits
Componente padrão em muitas aplicações FF positive edge-triggered com entradas de load e clear Dado carregado das entradas paralelas D, C, B, A Entradas de Enable: precisam estar em 1 para contagem RCO: saída de ripple-carry utilizada para cascateamento ‘1’ quando o contador está em seu estado mais alto (1111) implementado usando uma porta AND EN D C B A LOAD CLK CLR RCO QD QC QB QA (2) RCO vai para 1 (3) High 4-bits são incrementados (1) Low 4-bits = 1111 Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 48

49 Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 49
Contadores de Offset Contador de offset inicial - uso do load síncrono ex: 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1111, 0110, . . . Contador de offset final - comparador para o valor final ex: 0000, 0001, 0010, ..., 1100, 1101, 0000 Combinações dos contadores acima (valores iniciais e finais) "0" EN D C B A LOAD CLK CLR RCO QD QC QB QA "1" "0" "1" "1" "0" EN D C B A LOAD CLK CLR RCO QD QC QB QA "1" "0" "0" "0" "0" Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 49

50 Sumário – Lógica Sequencial
Blocos fundamentais de circuitos com estado Latch e flip-flop Latch R-S; flip-flops R-S master/slave, D master/slave, D edge-triggered Metodologias de Temporização Utilização de clocks Flip-flops em cascata funcionam porque o tempo de propagação excede o tempo de hold Cuidade com o clock skew Entradas assíncronas e seus Perigos Falha no sincronizador: o que é e como minimizar seu impacto Registradores Básicos Registradores de Deslocamento Detetores de Padrões Contadores Circuitos Digitais – 02/02 – Prof. Márcio Brandão – Slide 50


Carregar ppt "Capítulo 5: Flip-flops e Registradores"
Anúncios Google