






































































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Circuitos Sequenciais - Máquina de Estados, Filp-Flops, Memórias, etc
Tipologia: Slides
1 / 78
Esta página não é visível na pré-visualização
Não perca as partes importantes!







































































Na secção anterior apenas estudámos circuitos combinatórios, isto é, circuitos para os quais os valores das saídas só dependem dos valores actuais das entradas, se desprezar o tempo de propagação^1 nesses circuitos.
Frequentemente no projecto de sistemas digitais, surge a necessidade de recorrer à utilização de circuitos sequenciais, isto é, circuitos para os quais os valores que assumem as saídas dependem não só dos valores actuais das entradas, mas também do que se passou nessas mesmas entradas em instantes de tempo anteriores.
Um circuito sequencial é constituído pôr duas partes, uma puramente combinatória e outra com elementos de memória (dispositivos capazes de guardarem informação durante um certo período de tempo).
Tomemos como exemplo de um circuito sequencial um somador série, cuja representação simbólica está indicada na figura 2.1.
(^1) Tempo de propagação de um circuito lógico é o intervalo de tempo que medeia entre o instante em que são aplicados sinais às entradas e o instante de aparecimento dos valores correspondentes nas saídas.
Instituto Politécnico de Castelo Branco
Somador Série
Figura 2.1. - Representação simbólica dum circuito sequencial - somador série
Este circuito tem duas entradas X 1 e X 2 e uma saída S. Nas entradas surgirão sequencialmente no tempo dois números binários cuja soma se pretende realizar, e na saída surgirá também, sequencialmente no tempo, o resultado dessa operação. As entradas e saídas consistem em sequências de 1 s e 0 s. A adição deve ser realizada em série no tempo, isto é, os bits menos significativos dos operandos chegam aos terminais correspondentes de entrada no instante ti , surgindo nesse mesmo instante na saída, o valor da soma desses dois bits; em ti+1 chegarão^2 os próximos bits, assumindo a saída o valor correspondente à soma desses bits com o transporte anterior, e assim sucessivamente. Nesta análise estamos a desprezar o atraso introduzido pelo circuito combinatório.
Considere-se a seguinte adição de dois números binários:
t t t t t X X S
5 4 3 2 1 2 1
Um exame atento da relação entre as entradas e as saídas revela a diferença básica existente entre um circuito combinatório e o somador série. Enquanto que num circuito combinatório a saída no instante ti é definida unicamente pelo valor das entradas em ti , no somador série para idênticos valores de entrada resultarão diferentes valores na saída.
Por exemplo em t 1 e t 5 os valores nas entradas são X 1 X 2 =00 e as saídas valem 0 e 1 respectivamente. Identicamente em t 3 e t 4 , para os valores nas entradas X 1 X 2 = surgem nas saídas 0 e 1.
É portanto evidente que a saída do somador série não pode ser somente especificada em termos das entradas externas X 1 e X 2. Atendendo às regras da aritmética binária, a saída em ti é uma função de X 1 e X 2 , presentes no instante ti , e do transporte que foi gerado em ti- 1. Este transporte, que pode ter o valor 0 ou 1 , depende por sua vez das entradas em ti- 1 e do transporte gerado em ti- 2 , e assim por diante.
Daqui se conclui que o somador série deve ser capaz de guardar a informação respeitante ao transporte desde o instante em que começa o funcionamento. ´e necessário então determinar uma relação entre as entradas X 1 , X 2 e a saída S e em que intervenha uma variável binária respeitante ao transporte.
(^2) Supomos que as entradas no somador série, surgem periodicamente nos instantes t 1 , t 2 , ..., ti , ti+1 ,...
Instituto Politécnico de Castelo Branco
Frequentemente em vez da tabela de estados usa-se a sua tradução gráfica, que se designa por diagrama de estados.
A B
01/ 00/ 10/
01/ 10/ 11/ 00/
11/
Figura 2.3.- Diagrama de estados
Os vértices e arcos dirigidos deste diagrama representam, respectivamente, os estados do circuito sequencial e as transições entre os mesmos. Junto a esses arcos estão representados os valores das variáveis externas de entrada e de saída: X 1 X 2 /S. Como temos quatro configurações possíveis para as entradas, de cada vértice terão de sair quatro arcos dirigidos, podendo eventualmente alguns desses arcos encontrarem-se reunidos num só, se terminarem num mesmo estado.
É evidente que o diagrama de estados e a tabela de estados fornecem exactamente a mesma informação, simplesmente há situações em que uma representação pode ser mais útil que outra.
O estado inicial deste circuito é o estado A , correspondente à não existência de transporte anterior.
Para construirmos o somador série é então necessário recorrermos a um elemento capaz de guardar a informação dizendo respeito à presença ou ausência de transporte (elemento de memória). Esse elemento deve ter dois estados distintos, de modo que cada um deles possa representar um dos estados possíveis do somador série.
Um elemento de memória com dois estados distintos, chama-se elemento de memória binário. Existem vários elementos com estas características, que serão estudados posteriormente. Para este caso utilizaremos um elemento de atraso, não nos preocupando para já a sua realização tecnológica, bastando-nos saber que na saída deste elemento vai aparecer o mesmo valor que lhe foi aplicado na entrada, mas atrasado no tempo; esse atraso deve ser igual ao tempo que medeia entre o aparecimento de dois bits sucessivos nas entradas do somador.
Y y y (^) t + 1 = Yt
Elemento de atraso Figura 2.4. - Elemento de atraso para a realização do elemento de memória
Instituto Politécnico de Castelo Branco
O estado do elemento de atraso é definido pelo valor da sua saída y , que pode assumir um de dois valores: 0 ou 1. Identificando a variável de transporte T com a entrada Y do elemento de atraso, o valor da sua saída y em ti , equivalerá ao valor do transporte gerado em ti- 1. Fazendo assim a correspondência entre os estados do elemento de atraso (identificados pelos valores da sua saída) e os do somador série: Y= corresponderá a A e y=1 a B.
Este processo de fazer a correspondência entre os estados de um dispositivo físico e os estados de um circuito sequencial é conhecido por codificação de estados ( state-
- assignment ). A variável que traduz o comportamento do elemento de memória ( y neste exemplo) chama-se variável de estado.
Completa-se a codificação de estados, substituindo cada estado/respectiva codificação nas tabelas de estados e de saída.
1t 2t X 0 0 1 0 1 1 1 0 1 0
X 1t 2t
Tabela de transições Tabela de saída
y (^) t+
y (^) t
S (^) t
y (^) t
Figura 2.5. - Codificação da tabela de estados resultando a tabela de transições
A tabela de estados, depois da substituição de cada estado pela respectiva codificação passa a ser designada por tabela de transições, especificando os valores de yt+1 em função de yt , y1t e y2t.
Simplificando as funções booleanas, obtemos as equações: y X X X y X y S X X y X X y X X y X X y
t t t t
1 1 2 1 2 1 2 1 2 1 2 1 2
Desenhando o diagrama lógico correspondente, não esquecendo que yt=yt+1 , obtém- se a figura 2.6.
Os resultados que obtivemos coincidem com as equações da soma e do transporte que tinham sido deduzidas em circuitos combinatórios para um circuito somador ( full-
- adder ).
Neste caso, porém, para efectuar a soma série foi necessário juntar ao bloco somador um elemento de memória (escolheu-se um elemento de atraso), cuja entrada é
Instituto Politécnico de Castelo Branco
Apresentado um exemplo concreto de um circuito sequencial, vejamos agora um esquema geral para este tipo de circuitos:
Malha
y Y
Entradas exteriores
Entradas dos elementos de memória (saídas internas
Combinatória
1 Yn
1 ym
Saídas exteriores
da malha combinatória)
Saídas dos elementos de memória (entradas internas
Figura 2.8. - Esquema geral dum circuito sequencial
O circuito da figura 2.8, tem um número finito L de entradas. Os sinais que entram no circuito através destes terminais constituem o conjunto { x 1 , x 2 ,...,xL } das variáveis de entrada exteriores , em que cada variável pode tomar os valores 0 ou 1 (consequentemente o alfabeto de entrada será o conjunto {0,1} ). Um L-túplo ordenado de 0 s e 1 s atribuído às variáveis x 1 , x 2 ,...,xL constituirá uma configuração de entrada. O conjunto de p=2L^ configurações distintas de entradas, constituirá o espaço de entradas.
Por exemplo, se um circuito sequencial tiver duas variáveis de entrada x 1 e x 2 o espaço de entradas será {00, 01, 10, 11}. Considerações análogas podem ser feitas para as k variáveis de saída, que devem ser também em número finito, podendo ainda estender- se estas definições ao conjunto das variáveis de estado.
O valor da saída de cada elemento de memória é referido como sendo o valor da variável de estado. As variáveis de estado devem também ser em número finito (caso contrário estaríamos perante circuitos de memória infinita), e se tivermos m variáveis de estado y 1 , y 2 ,...,ym , existirão 2 m^ configurações distintas para os valores que essas variáveis podem tomar. O conjunto de todas essas configurações distintas será o espaço de estados.
Cada configuração das variáveis de estado será um estado do circuito sequencial; portanto, de um modo geral, se um circuito sequencial tiver m variáveis de estado, poderá possuir um máximo de 2 m^ estados distintos (nem sempre atinge esse número, pois podem existir restrições no circuito).
Como problema inverso, se pretendermos que o circuito sequencial tenha s estados diferentes, será necessário dispormos de log 2 s ^3 variáveis de estado.
(^3) (^) x significa "o menor inteiro maior que".
Instituto Politécnico de Castelo Branco
O número de entradas para os elementos de memória, não coincide necessariamente com o número desses elementos, pois cada um deles pode ter mais do que uma entrada (caso de alguns tipos de flip-flops , que estudaremos seguidamente).
2. Estudo dos Flip-Flops
Os flip-flops são os elementos de memória elementares, referidos no ponto anterior. na bibliografia surgem também com as designações de básculas e Latches.
Um flip-flop ou báscula será um circuito lógico capaz de armazenar um bit, devendo então possuir dois estados distintos: 1 ou 0 conforme o bit que memorizar.
Para poder funcionar como elemento de memória binário, um flip-flop deve ter um comportamento com as seguintes características:
Interessar-nos-à desenhar um circuito que obedeça às características indicadas. Suponhamos então um bloco com duas entradas R e S e duas saídas A e B.
Figura 2.9. Bloco esquemático dum flip-flop
Se conseguirmos obter um circuito que tenha o seguinte comportamento:
Instituto Politécnico de Castelo Branco
normalmente o tempo de propagação em ambos é diferente, a báscula irá para o estado 1 ou para o estado 0 , conforme o circuito NOR que conduzir mais rapidamente.
Não interessa então utilizar o valor lógico 1 em ambas as entradas simultaneamente para este tipo de báscula por duas razões:
Para este tipo de báscula deve então ser considerado R.S=0 como uma restrição nas entradas.
Uma báscula ou flip-flop que reage às entradas deste modo é designada por báscula R-S (reset-set). As saídas A e B designam-se vulgarmente por saídas Q e Q respectivamente.
Entradas S R
Saída Q
Comentários
0 0 mantém- se
Q mantém o valor que tinha antes da aplicação de S=R= 1 0 1 A activação de S põe o flip-flop no estado 1 0 1 0 A activação de R põe o flip-flop no estado 0 1 1 0 Q = 0
Ambas as entradas em 1 fazem Q= Q = 0. Esta situação não define um estado.
Instituto Politécnico de Castelo Branco
Q
S Q
R R S 0 0 0 1 0 1
Qn+ Qn
Indefinido Qn é o estado presente da saída Qn+1é o estado seguinte
NOR-
NOR-
Figura 2.11. - Circuito combinatório do flip-flop R-S
Como se vê, a aplicação de 1 à entrada S (mantendo a entrada R a 0 ) põe a saída Q a 1 e a aplicação de um 1 à entrada R (mantendo a entrada S a 0 ) põe a saída Q a 0 - o que permite a escrita neste tipo de célula. A aplicação de 0 às duas entradas mantém indefinidamente o valor escrito.
O flip-flop R-S pode também ser implementado com circuitos NAND , como a figura 2.12 indica.
Q
Q S
R
Figura 2.12 - Flip-Flop R-S implementado com portas NAND
Vamos agora fazer a análise proposta, servindo-nos de um diagrama temporal das entradas e saídas de um flip-flop R-S (representação gráfica da evolução das entradas e saídas ao longo do tempo).
Considere-se a realização proposta na figura 2.11 através de NOR's. Admita-se que os tempos de propagação dos circuitos NOR são 1 e 2 ns. Vamos supor que no início ( t=0 , veja-se figura 2.13) ambas as entradas valem 0 , e que o estado do flip-flop é 0 ( Q = 1 , Q = 0 ); nestas condições este estado manter-se-á indefinidamente enquanto as entradas não forem alteradas.
Suponhamos agora que no instante t 1 a entrada S passa a 1 ; após um intervalo de tempo igual ao tempo de propagação do NOR- 1 2 ns, Q passa a 0 - instante t 2. Como
Instituto Politécnico de Castelo Branco
Q
Q S
R
CP - Clock Pulse em inglês ou Enable
Figura 2.14 - Flip-Flop R-S sincronizado ou porteado. Existe entrada de relógio - CP
A célula só reage às entradas R e S quando CP = 1. Podemos então perguntar se esta célula já deve ser considerada síncrona... se já permite o tipo de funcionamento que esperamos dos circuitos síncronos: operação independente de pormenores tais como diferenças de 5 ou 10ns nos atrasos de propagação.
Para isso, imaginemos um circuito sequencial genérico, em que distinguiremos um bloco de células de memória e um bloco de circuitos combinacionais que fornece as entradas das células de memória e as saídas finais do circuito e que é alimentado pelas saídas das células de memória e pelas entradas externas.
Malha
y Y
Entradas exteriores Entradas dos elementos de memória (saídas internas
Combinatória
1 Yn
1 ym
Saídas exteriores
da malha combinatória)
Saídas dos elementos de memória (entradas internas
Figura 2.15. - Circuito síncrono genérico com entrada de sincronização CP Suponhamos que o bloco Elementos de Memória Binários é implementado com flip-
- flop's R-S sincronizadas. Suponhamos que tanto as Entradas Exteriores como as Saídas dos Elementos de Memória se encontram estabilizadas já há algum tempo. Vejamos o que acontece na transição 0 para 1 ( ) do CP :
1ºTempo: as saídas dos Elementos de Memória variam, reflectindo o valor actual das suas entradas.
Instituto Politécnico de Castelo Branco
2ºTempo: o novo estado das Saídas dos Elementos de Memória propagando-se através da Malha Combinatória faz variar as Entradas dos Elementos de Memória.
3ºTempo: as Saídas dos Elementos de Memória variam 2ª vez, por efeito indirecto da mudança que acabam de sofrer.
Como se depreende, durante o tempo em que o relógio ( CP ) está a 1 temos efectivamente um circuito completamente assíncrono.
Uma tentativa de solução seria a utilização de uma forma de onda de relógio com um tempo de permanência a 1 extremamente baixo - insuficiente para que os novos valores das Saídas dos Elementos de Memória atinjam as suas entradas enquanto elas ainda estão activas.
Mas a variabilidade de tempos de propagação é tal que para garantir isso - mesmo no caso de circuitos integrados no extremo de rapidez dentro da especificação - não seria possível garantir - para circuitos no extremo da lentidão - que o relógio tivesse efeito^4.
Em conclusão, o flip-flop R-S sincronizado (ou porteado ) não permite construir circuitos com as características de funcionamento síncrono.
O problema com que se deparou no circuito sequencial genérico é derivado das Saídas dos Elementos de Memória variarem logo a seguir a se verificar a transição de 0 para 1 ( ) do CP , portanto ainda dentro do intervalo de sensibilidade das células.
Uma solução para este problema é a de separar as fases de sensibilização das células das fases de actualização das saídas. É esse o objectivo dos flip-flop's Master-Slave.
(^4) Os circuitos digitais devem ser especificados para funcionarem correctamente, queisquer que sejam os tempos de propagação efectivamente apresentados pelos circuitos integrados, desde que estejam dentro dos intervalos especificados.
Instituto Politécnico de Castelo Branco
O flip-flop master-slave permite já a construção de circuitos de características síncronas, mas apenas se cumprir:
as entradas do flip-flop devem estabilizar totalmente ainda antes do relógio ir a 1 e manterem-se estáveis enquanto o relógio estiver a 1.
Se tal não acontecer, qualquer comutação espúria para 1 (de S ou de R) é capturada pela 1º flip-flop (durante CP=1) e na fase seguinte do relógio é comunicada ao 2º flip-
- flop.
Isto quer dizer que o tempo disponível para atrasos de propagação da parte combinacional de um circuito se reduz apenas ao tempo de relógio a 0 , o que corresponde a um desaproveitamento de 50% na velocidade de operação se a onda de relógio for de semi-períodos iguais.
É possível reduzir o tempo de relógio a 1 em relação ao tempo de relógio a 0 , mas nunca abaixo dum mínimo necessário para assegurar a efectivação da mudança de estado do flip-flop. O flip-flop master-slave tem também sempre um certo atraso do relógio para a saída, derivado dos vários andares próprios da sua construção.
Embora até agora tenhamos visto flip-flop's sempre do tipo S-R, em versões sucessivamente mais próximas do funcionamento síncrono, vamos ver como exemplo de uma célula totalmente síncrona um flip-flop com uma funcionalidade diferente: o flip-flop D.
A função de um flip-flop D (D de d elay ou seja de atraso) é a de armazenar e apresentar à saída o valor lógico de uma única entrada, preservando o valor da saída entre duas ocorrências temporizadas (consecutivas) de uma linha de relógio.
É possível construir flip-flop's D porteados com um circuito análogo ao visto para o flip-flop S-R porteado da figura 2.14, e flip-flop's D Master-Slave também semelhantes ao flip-flop S-R master-slave visto anteriormente. A versão que vamos analisar é totalmente síncrona, ou "puramente disparada pelo bordo" - edge trigered. Na implementação que se mostra na figura 2.18, o bordo é o ascendente , ou seja o correspondente à transição 0 → 1.
Instituto Politécnico de Castelo Branco
Q
Q
D
CP
A
A
B
B
C
C
D
CP
Q
Q
Figura 2.18 - flip-flop D edge-trigered na transição 0 para 1 e respectivo símbolo
O que o flip-flop D faz é colocar na saída Q o valor que a entrada D tiver no momento das transições 0 para 1 ( ) do CP, e manter esse valor na saída até à próxima transição de 0 para 1( ) do CP.
Este flip-flop é portanto completamente indiferente ao que se passa na entrada D fora dos instantes da transição positiva do CP. Portanto a saída Q é síncrona com a entrada do relógio, isto é Q só muda nos instantes em que o CP transita de 0 para 1 ( ).
Figura 2.19 - Formas de onda do flip-flop D edge-trigered
Em resumo, podemos dizer que o flip-flop D edge-trigered :
2.5.1. Requisitos de temporização de flip-flop's edge-trigered
Além do flip-flop D edge-trigered , existem muitos outros flip-flop's também edge-
- trigered. Em relação a qualquer um destes flip-flop's diz-se que amostra ( sampling action ) ou reage aos sinais de entrada numa vertente ou , mas não às duas do relógio - CP. A vertente é designada por vertente activa do relógio.
As entradas de um flip-flop edge-trigered devem estabilizar um certo tempo antes da vertente activa do relógio - tempo de preparação - set-up time , e permanecer
Instituto Politécnico de Castelo Branco
n n
n
0 1 1 1
n → n → → → →
O flip-flop J-K síncrono (que é geralmente o que nos interessa mais) tem além das 2 entradas J e K uma entrada de relógio e geralmente apresenta duas saídas: Q e Q.
Relógio
Figura 2.23 - Flip-Flop J-K edge-trigered
Um outro tipo de flip-flop é o T (de t oggle, que significa comutação). As suas tabelas funcional e de excitação encontram-se na figura 2.24.
n n n
Q (^) n → Qn T → → → →
O flip-flop T apresenta o problema de não ter nenhum meio de o inicializar a um estado desejado, sem ser através de um circuito que tome em conta o estado presente da saída do próprio flip-flop.
Instituto Politécnico de Castelo Branco
Considerando os flip-flop's síncronos, é possível obter a funcionalidade de uns a partir dos outros, com o auxílio de uma ou outra porta lógica.
O flip-flop J-K é o mais versátil, permitindo emular outras funcionalidades com um mínimo de portas adicionais.
J K
Q
Q Relógio
D (^) J
K
Q
Q Relógio
T
Realização dum flip-flop D com um J-K Realização dum flip-flop T com um J-K Figura 2.25 - Utilização dum Flip-Flop J-K para a realização dum Flip-Flop D e T.
Já por exemplo a obtenção de um J-K a partir de um D requer um número de portas bem maior.
I I I I A B
Y
MUX 4:
1 0
D
Q
Q
Relógio
Figura 2.26 - Obtenção de um J-K edge-trigered a partir de um D edge-trigered
Muitos flip-flop's síncronos edge-trigered disponíveis em circuito integrado, apresentam entradas adicionais assíncronas.
A razão de ser destas entradas assíncronas deriva da necessidade de inicializar muitas das células de memória de um circuito quando este é posto sob tensão - para dar um ponto de partida definido para a evolução do circuito ao longo dos sucessivos ciclos de relógio.
Geralmente é mais prático que essa inicialização seja efectuada não por meio da funcionalidade síncrona das células de memória - caso em que seria necessário