Escolar Documentos
Profissional Documentos
Cultura Documentos
Introdução
• Circuitos Sequenciais
– As saídas não dependem exclusivamente de suas entradas
1
(como em um circuito combinacional), mas de todo o
Sistemas Digitais histórico de mudança das entradas.
a
b
0 Circuito Digital
Combinacional
1
F
by Frank Vahid, John Wiley and Sons Publishers, 2007. – Combinar esse bloco de forma a construir blocos sequenciais
http://www.ddvahid.com Devemos
capazes de armazenar vários bits –registradores
conhecer o
Prof. Luciano C. A. Pimenta – Descrever o comportamento sequencial na forma de passado das
Tradução e Adaptação para o Português máquinas de estados finitos (finite state machines) entradas para
Prof. Ricardo de Oliveira Duarte – Converter uma FSM em um controlador – um circuito saber o valor da
sequencial composto por um registrador e um circuito saída.
Copyright © 2007 Frank Vahid DELT – EE – UFMG
Instructors of courses requiring Vahid's Digital Design textbook (published by John Wiley and Sons) have permission to modify and use these slides for customary course-related activities,
combinacional
subject to keeping this copyright
Digital Design notice in place and unmodified. These slides may be posted as unanimated pdf versions on publicly-accessible course websites.. PowerPoint source (or pdf Digital Design
with animations) may not be posted to publicly-accessible websites, but may be posted for students on internal protected sites or distributed directly to students by other electronic means.
Copyright © 2006 1
Instructors may make printouts of the slides available to students for a reasonable photocopying charge, without incurring royalties. Any other use requires explicit permission. Instructors
Copyright © 2006
Franksource
may obtain PowerPoint Vahidor obtain special use permissions from Wiley – see http://www.ddvahid.com for information. Frank Vahid Note: Slides with animation are denoted with a small red "a" near the animated items
2
• Esse circuito a direita com 2 portas lógicas NOR • O latch SR pode servir como o
Botão Luz Azul
faz o que queremos? Sim circuito básico de Chamada Armazena
Q Bit
armazenamento de 1 bit no Botão
Cancela
R (reset)
S=0
t
S=0
t
S=1
t
S=0
t
exemplo do sistema para chamar
Relembrando…
0
1
0
1
1 0 1 0 0
1
comissários de bordo. Botão S
0
1
– Botão Chamada=1 : faz Q ser 1 Chamada
1 1 0 0 0
1 1
0 Q 0 Q Q Q X • Q fica em 1 mesmo depois que
R=1 R=0 R=0 R=0 Botão Chamada=0 Luz Azul
t 1
0
1 • Mas, ainda resta um problema...
Q
0
• Período do Clock: intervalo de tempo entre pulsos – O inversor inserido (NOT) garante que R R
(eventos de clock). Ou seja, é o tempo de uma sempre terá o valor lógico oposto de S,
Freq Período
quando o sinal de clock estiver em nível
oscilação completa do sinal de clock. 100 GHz 0.01 ns lógico 1 (C=1) 1
– Sinal acima: período = 20 ns 10 GHz 0.1 ns D D Q’
0
C Q
• Ciclo de Clock: um intervalo de tempo 1 GHz 1 ns 1
100 MHz 10 ns C
– Sinal acima mostra 3.5 períodos de clock. 0 Símbolo do
10 MHz 100 ns Latch D
• Frequência do Clock: 1/período S
1
0
– Sinal acima: frequência = 1 / 20 ns = 50 MHz
1
• 1 Hz = 1/s R
0
Digital Design Digital Design 1
Copyright © 2006 11 Copyright © 2006 Q 12
0
Frank Vahid Frank Vahid
Problemas dos Latches D sensíveis ao nível Flip-Flop D
• O latch D ainda apresenta um problema • Flip-flop: Armazena 1 bit na borda de subida do clock Bordas de subida
– Quando C=1, através de quantos latches o sinal trafegará corretamente? • Uma forma de projetá-lo – modo Mestre-Escravo Clk
– Depende de quão longo deixaremos C=1 – Dois latches, Saída do primeiro vai para entrada do segundo,
o latch Mestre recebe o sinal do clock invertido
• Clk_A: o sinal provavelmente trafegaria por um grande número de latches Obs: Existe
– Mestre é armazenado quando C=0, e o Escravo quando C=1 dezenas de
• Clk_B: o sinal provavelmente trafegaria por um pequeno número de latches projetos de
– Quando C muda de 0 para 1, o Mestre fica desabilitado, o flip-flops
– Difícil de definir C (para um número exato de latches). Escravo é carregado com o valor que estava em D, logo
• Podemos projetar um circuito de armazenamento de 1 bit que armazena o antes de C ter mudado (isto é: o valor em D durante a borda
valor do bit somente na borda de subida do clock? de subida de C
Bordas de subida
Clk
Y D1 Q1 D2 Q2 D3 Q3 D4 Q4 Clk flip-flop D
Latch D Latch D D/Dm
D Q’
C1 C2 C3 C4 Dm Qm Ds Qs’
Cm
Clk Q
Cm Cs Qs Qm/Ds
Mestre Escravo Cs
Clk_A Clk_B
Clk Qs
Digital Design Digital Design
Copyright © 2006 13 Copyright © 2006 14
Frank Vahid Frank Vahid
Flip-Flop D Flip-Flop D
• Resolve o problema de não sabermos através de quantos latches o sinal
trafegaria com segurança quando C=1
– Na figura abaixo, o sinal trafega através de um flip-flop para Clk_A ou Clk_B
D D – Por quê? Porque na borda de subida do Clk, todos os 4 flip-flops são
Q’ Q’ Projeto interno:
O triângulo no “carregados” simultaneamente – depois nenhum dos 4 darão atenção a
Inverte somente o
símbolo significa
Q Q clock do Escravo.
mudanças em suas entradas até a próxima borda de subida do clock. Não
que as entradas importa o quão longo o sinal Clk fica em 1.
são amostradas
(gatilhadas) na Símbolo para o flip-flop D Símbolo para o flip-flop D
borda de subida gatilhado pela borda gatilhado pela borda Y D1 Q1 D2 Q2 D3 Q3 D4 Q4
do clock de subida de descida Dois Latches em
Bordas de subida Bordas de descida cada Flip-flop
Clk_A Clk_B
• Flip-flop são sensíveis as transições (gatilhados pela borda): do flip-flop (entrada Q) system
Armazena D quando ocorre uma transição de clock C. • A tabela verdade define o comportamento
– Dois tipos de flip-flops:
• gatilhados pela borda de subida.
Valor mantido: se Circuito obtido pela tabela
• gatilhados pela borda de descida.
Q=0, faz D=0; se verdade
• Comparando o comportamento de um latch e um flip-flop: Q=1, faz D=1
Observe na figura ao lado que Cancel – faz D=0 Call Call
o Latch D acompanha a D Q’
Blue
Clk 1 2 light
entrada D enquanto Clk = 1. Cancel Cancel
Quando Clk = 0, o Latch D Clk Q
permanece no mesmo nível
Call – faz D=1 Q
D3 4 5 6
lógico em que estava. Já o
Flip-Flop D acompanha a Damos prioridade
Q (D latch) 7 8 entrada D somente no ao Call – faz D=1
momento da borda de subida
Digital Design
do Clk Digital Design
Copyright © 2006 Q (D flip-flop) 9 10 17 Copyright © 2006 18
Frank Vahid Frank Vahid
Resumo: Circuito de Armazenamento de 1 Bit Registrador Simples
S (set)
latch SR latch SR sensível ao nível Latch D Flip-flop D • Tipicamente armazenam um número n de bits.
S S1 D S
D
Latch D
DmQm
Latch D
Ds Qs’
Q’ – Ex.: armazenar um número binário de 4 bits.
C C
Q Q Q
Cm
mestre
Cs Qs
escravo
Q
• Registrador: múltiplos flip-flops compartilhando o mesmo
R (reset)
R
R1 R Clk sinal de clock.
Característica: Característica: S e R Característica: SR não Característica: somente – Desse momento em diante, usaremos registradores para
S=1 leva Q a 1,
R=1 leva Q a 0.
somente são avaliados
quando C=1.
será igual a 11 se D
estiver estável antes e
carrega o valor lógico presente
em D no evento de clock,
armazenar bits
Problema: SR=11 SR=11 nunca acontece enquanto C=1, e será 11 assim valores não se • Desnecessário raciocinar como latches e flip-flops são implementados.
produz Q quando C=1. Problema: somente por um pico de propagam para outros flip-flops
indefinido. evitar SR=11 pode ser tempo (glitch) mesmo se D durante o mesmo período de • Entretanto agora vocês sabem de que registradores são feitos e como
conseguido as custas de mudar enquanto C=1. clock. Tradeoff: necessita mais funcionam.
implementação de um Problema: C=1 durante portas lógicas internamente
circuito com um número longo tempo propaga que o latch D e demanda mais I3 I2 I1 I0
grande de portas lógicas. novos valores através de portas lógicas externas que o
muito latches. Tempo Latch SR. 4-bit register
curto pode não ser
I3 I2 I1 I0
suficiente para armazenar D D D D reg(4)
valores em alguns latches. Q Q Q Q
Q3 Q2 Q1 Q0
clk
x4 a4 a3 a2 a1 a0 b4 b3 b2 b1 b0 c4 c3 c2 c1 c0
x4...x0 15 18 20 21 21 22 24 24 24 25 25 26 26 26 27 27 27 27
x3
x2 C
TemperatureHistoryStorage
x1
Ra 0 18 21 24 25 26 27
x0
timer Rb 0 0 18 21 24 25 26
C
Exemplo de FSM:
Definição de FSM Chave de Segurança Codificada para Carros
• FSM são compostas por: Entrada: b; Saída: x • Muitos carros possuem chaves
x=0
– Um conjunto de estados com minúsculos CIs embutidos.
Off b’
• Ex: {Off, On1, On2, On3} – Quando a ignição é acionada, o
– Um conjunto de entradas, um conjunto b computador central do carro solicita
de saídas x=1 x=1 x=1 ao CI da chave o seu código de
• Ex: Entradas: {b}, Saídas: {x} On1 On2 On3 identificação (ID)
– Um estado inicial – A chave transmite o identificador (ID)
Frequentemente representamos • Se estiver em desacordo, o
• Ex: “Off” uma FSM no modo gráfico. Esse computador central do carro corta o Entrada: a; Saída: r
– Um conjunto de transições de estados modo é chamado combustível.
Espera
• Descrevem os próximos estados
diagrama de estados • FSM r=0
a a’
• Ex: Mostra 5 transições
– Espera até o computador central pedir
– Conjunto de ações Podemos descrevê-las na forma de K1 K2 K3 K4
o ID (a=1)
• Define valores para as saídas para cada tabela (tabela de estados), ou na
estado. forma algoritmica (VHDL, etc.) – Transmite o ID (caso seja, 1011) r=1 r=1 r=0 r=1
Entradas Start a’
clk a • Se r=1, vá para o estado “Red1”
u=0
• Depois, se b, vá para “Blue” ar
Entradas
Estados Wait Wait K1 K2 K3 K4 Wait K1 • Depois, se g, vá para“Green” ab ag ar
a Red1 Blue Green Red2
• Depois, se r, vá para “Red2”
Estados Saída a a’ a’ a’
Wait Wait K1 K2 K3 K4 Wait Wait – Nesse estado, destrave a porta (u=1) u=0 u=0 u=0 u=1
r • Pressionar botão errado em qualquer
Saída passo, faz retornar para o estado “Wait”,
Q: Você poderia enganar esta FSM para abrir a
r sem destravar a fechadura da porta. porta, sem saber o código de antemão?
a
Digital Design Digital Design A: Sim, apertando todos os botões simultaneamente
Copyright © 2006 31 Copyright © 2006 32
Frank Vahid Frank Vahid
Entrada
a’ a’ a’ b x
FSM
saída
FSM
– Entrada b, Saída x
u=0 u=0 u=0 u=1 Obs.: um pequeno problema
Lógica
ainda persiste; veremos mais – Arquitetura conhecida como controlador n1
adiante Combinacional
Saídas
Entradas
I O n0
FSM
FSM
• Novas condições nas transições detectam se um botão errado for pressionado, Lógica
s1 s0
Combinacional
fazendo o sistema retornar para o estado “Wait” Registrador de
S clk
• FSMs fornecem meios concretos e formais para se definir com precisão o m
a
estados
Registrador de m
comportamento do circuito sequencial desejado clk
Estados de m bits
b
– Registrador com 2-bits (para os x=1 x=1 x=1
4 estados da FSM) 01 On1 10 On2 11 On3
– Entrada: b, Saída: x
entradas
Saidas
FSM
Lógica n1
• Passo 3: Codificar os estados Combinacional
n0
– Qualquer codificação a princípio s1 s0 a
nos servirá. Registrador
clk
de estados
outputs
inputs
FSM
b x
FSM
x=0
00
b’
combinacional Combinational n1
logic
Off
n0
a a
b s1 s0
x=1 x=1 x=1 clk State register
01 On1 10 On2 11 On3
outputs
inputs
FSM
b x
FSM
Combinational n1 x = s1 + s0 (observe pela tabela que x=1 se s1 = 1 ou
logic s0 = 1)
n0
s1 s0
n1 = s1’s0b’ + s1’s0b + s1s0’b’ + s1s0’b
clk State register
n1 = s1’s0 + s1s0’
b b b
inputs
FSM
b x
FSM
x = s1 + s0
Entrada:
I
n1 = s1’s0 + s1s0’ b
n0 = s1’s0’b + s1s0’ Saída:
x
FSM
Combinational logic bi
Inputs Outputs
s1 s0 bi n1 n0 bo n1
FSM inputs: bi; FSM outputs: bo 0 0 0 0 0 0
• Queremos um circuito sequencial simples que faça com A
0 0 1 0 1 0
bi’ 0 1 0 0 0 1 n0
que o efeito de “pressionar” um botão dure 1 ciclo de clock, bi’
bi
bi’
B
0 1 1 1 0 1
00 01 10
independente do tempo que o botão fique pressionado. bo=0
bi
bo=1
bi
bo=0
C
1 0 0
1 0 1
0 0 0
1 0 0
s1 s0
State register
clk
– Assumiremos que o sinal “pressionar” do botão seja ideal. Step 3: Encode states unused
1 1 0
1 1 1
0 0 0
0 0 0
Step 1
w a
Inputs: none; Outputs: w,x,y,z x Inputs: none; Outputs: w,x,y,z K1 K2 K3 K4
y
wxyz=0001 wxyz=1000 Combinational z wxyz=0001 wxyz=1000 r=1 r=1 r=0 r=1
logic a r
A D n1 A D
n0 00 11 Combinational
n2
Step 2
s1 s0 logic
n1
State register 01 10 n0
B C clk B C
wxyz=0011 wxyz=1100 wxyz=0011 wxyz=1100 s2 s1 s0
Step 1: Create FSM Step 2: Create architecture Step 3: Encode states clk State register
w
x FSM outputs Inputs: a; Outputs: r
w = s1
x = s1s0’ y
y = s1’s0
000
z r=0 a’
z = s1’ a
a
Step 3
n1 = s1 xor s0
n0 = s0’
n0 n1 001 010 011 100
s1 s0
State register r=1 r=1 r=0 r=1
clk We’ll omit Step 5
Digital Design Step 4: Create state table Digital Design Step 4
Copyright © 2006 43 Copyright © 2006 44
Frank Vahid
Step 5: Create combinational circuit Frank Vahid
x
– Todas as combinações de a
entrada deverão ser
D C yz=01
x’ a’b
yz=00
consideradas
Dê nome aos estados a sua escolha x
Estados com as – Senão, para onde a FSM
Saídas e deverá ir?
Digital Design transições Digital Design
Copyright © 2006 45 Copyright © 2006 46
Frank Vahid Frank Vahid
=0*b estado
estado) deverá ser igual a 0 prova que um par nunca =0 Start
pode ser simultaneamente verdadeiro OK!
a
– As transições obedecem as 2 a’
u=0 ar
propriedades citadas?
– Uma das condições deve ser verdadeira: Faça um OR de a + a’b • Considere as transições a partir do ab ag ar
Red1 Blue Green Red2
todas as condições saindo de um estado, que deverá ser = a*(1+b) + a’b estado Start, e somente a a’ a’ a’
propriedade “apenas uma u=0 u=0 u=0 u=1
igual a 1 prova que pelo menos uma condição deverá = a + ab + a’b
= a + (a+a’)b verdadeira”
ser verdadeira ar * a’ a’ * a(r’+b+g) ar * a(r’+b+g)
Intuitivamente: pressione os
a =a+b botões red e blue ao mesmo
– Exemplo: Errado! Pode = (a*a’)r = 0*r = (a*a)*r*(r’+b+g) = a*r*(r’+b+g) tempo: condições ar, e a(r’+b+g)
não ser igual a 1 =0 =0 = arr’+arb+arg serão ambas verdadeiro. Qual
a’b (ex., a=0, b=0) = 0 + arb+arg dessas duas deveria ser
considerada?
= arb + arg
Q: Para as transições mostradas no exemplo acima, prove se: = ar(b+g) a
Q: Como resolver isso?
* Somente uma condição é verdadeira (o AND de cada par é sempre 0)
Errado! Significa que 2 das A: ar deverá ser arb’g’
* Uma condição verdadeira (o OR de todas as transições é sempre 1)
(assim como para ab, ag, ar)
Digital Design Digital Design transições de estado que partem
Copyright © 2006 47 Copyright © 2006 de Start poderiam ser 48
Frank Vahid Frank Vahid
verdadeiras ao mesmo tempo
3.5
D hold time
S – Inserir um flip-flop sincronizador para a
D 1 entrada assíncrona
Q’ S • Flip-flops especiais com um tempo de setup/hold
C 2 muito pequenos a
u
4
– Não impede a ocorrência completa da ai
Q 3
R mestaestabilidade!!
u R 7
Q’ Provoca oscilação!! synchronizer
Q 5 6
Digital Design Digital Design
Copyright © 2006 51 Copyright © 2006 52
Frank Vahid Frank Vahid
– Não podemos! Isso pode parecer desanimador. Mas nós simplesmente não para 0 no próximo evento de clock
podemos garantir um projeto que não irá nunca ser metaestável. Nós só podemos – Set síncrono : faz com que Q vá cycle 1 cycle 2 cycle 3 cycle 4
minimizar o tempo médio entre falhas (MTBF) – uma medida de tolerância a falhas clk
normalmente fornecida ou calculada para um circuito
para 1 no próximo evento de clock
– Reset assíncrono: faz com que Q D
A probabilidade de um flip-flop ficar metaestável é … vá para 0 imediatamente
Muito Muito, muito Extremamente (independente do evento de clock) AR