Tecnologia dos Computadores 2002/2003
Trabalho Prático no 6
Trabalho Prático no 6
Componentes Sequenciais SSI
Básculas, Flip-Flops e Debouncing
1
Introdução
Este trabalho tem como objectivo:
• introduzir os rudimentos de circuitos sequenciais em projectos digitais, mostrando nomeadamente como estes se baseiam em lógica combinacional com realimentação;
• demonstrar a utilidade prática dos circuitos baseados em lógica sequencial, mesmo
quando circuitos simples.
2
Porque a Vida Não É Instantânea — Diagramas
Temporais
Como foi dito no decurso da apresentação do trabalho anterior, os circuitos sequenciais reagem, teoricamente, a instantes de mudança em sinais de sincronismo.
Porém mais que quiséssemos, os acontecimentos fı́sicos que permeiam a vida real não
se conseguem dar instantaneamente: tudo no mundo necessita de uma quantidade de
tempo finito para acontecer. Por outras palavras, mais formalmente, os sinais presentes
no mundo são matematicamente contı́nuos, em oposição aos sinais matematicamente discretos que gostarı́amos por vezes que existissem. Evitaria tantos acidentes,
por exemplo, que o tempo de reacção do ser humano e dos travões de um automóvel
fosse zero...
1
Trabalho Prático no 6
Tecnologia dos Computadores 2002/2003
CLK
INPUT XPTO
OUTPUT XPTY
a)
CLK
INPUT XPTO
OUTPUT XPTY
t setup t hold
t ffpd
b)
Figura 1: a) Diagrama temporal ideal versus b) Diagrama temporal realista.
Por essa razão, introduzimos agora aquilo a que se dá o nome de diagrama temporal
digital, ou, abreviando, diagrama temporal, que mostra a evolução paralela de vários
sinais ao longo do tempo. A figura 1 mostra exemplos de análise de um caso a nı́vel
ideal/teórico, onde geralmente um projectista se abstrai das limitações desprezáveis de
um sistema, versus a nı́vel real (quase pessimista, mesmo!), onde se tomam em conta
os vários tempos de reacção dos dispositivos digitais envolvidos.
Os tempos de reacção especificados concretamente nesta figura são sem dúvida os
mais importantes a ter em conta em circuitos sequenciais: o tempo que um componente
sequencial necessita para se preparar para reagir aos valores nas suas entradas (denominado “setup time”) e o tempo que esse componente necessita para estabilizar a
sua reacção (denominado “hold time”) — durante esses perı́odos as entradas têm de
se manter constantes, sob pena de o componente reagir de forma imprevisı́vel; o tempo
de estabilização efectiva das saı́das, depois de confirmada a reacção às entradas (denominada tffpd ) — durante este tempo não se pode amostrar as saı́das do componente,
devido ao facto de ser incerto se o valor que se encontra nessas saı́das é efectivamente
o resultado final da reacção.
2
Tecnologia dos Computadores 2002/2003
Trabalho Prático no 6
Figura 2: Biestável num dos seus dois estados estáveis, sem influências externas.
Além destes, existem ainda os tempos de reacção dos circuitos combinacionais,
que se juntam a esta panóplia de considerações temporais a ter em conta... Por isso,
muitas vezes as frequências de relógio que se escolhem para um circuito são dependentes
das capacidades de reacção dos seus componentes, sendo o seu valor máximo limitado
pelo tecto imposto pelo tempo resultante da soma de todos os tempos de reacção dos
componentes envolvidos numa acção do circuito. Portanto, a partir de agora, cuidado
com o sincronismo!
3
Componentes sequenciais básicos
Em seguida, apresentar-se-ão as entranhas dos componentes sequenciais mais
básicos (ao ponto de se poder considerá-los discretos). Ver-se-á que não são mais que
portas lógicas (componentes combinacionais, portanto), cujas saı́das são realimentadas
para as entradas.
3.1
O biestável
O circuito sequencial mais simples consiste num para de inversores com uma linha
de realimentação, como apresentado na figura 2. Não tem entradas e tem duas saı́das,
Q e /Q (ou Q). Em termos digitais ideais, devido à regra de 3o excluı́do da lógica
de Boole, temos que qualquer destas saı́das só poderá ter um de dois valores: 0 ou
1. Por esta razão, este circuito tem dois estados estáveis possı́veis e denomina-se de
biestável.
3
Tecnologia dos Computadores 2002/2003
Trabalho Prático no 6
Problemas — I
1. Expliquem convenientemente o que se passa no circuito da figura 2 na página
anterior, começando por assumir o facto de que, por razões puramente estatı́sticas
(50% de hipóteses, idealmente), quando se ligou a alimentação dos inversores, Q
passou para o nı́vel lógico 1. Cuidado com o vosso português!
2. O que aconteceria se inicialmente Q tivesse sido 0?
3. (Na aula!:) Simulem agora o circuito que se segue:
Figura 3: Biestável no seu estado Q = 1. O que estará a acontecer?
(a) Mudem a posição do comutador. O que toma precedência na definição do
estado do biestável? O comutador ou Q?
(b) Apaguem agora o fio que liga ao comutador. O que aconteceu? Qual é a
explicação?
(c) Quanto CIs de lógica combinacional, e de que tipo, são necessários para
construir este circuito? (Pode e deve falar em termos de fracções de CIs;
por exemplo, será útil referir-se a “1 CI e meio”.)
4. Qual deverá ser o valor presente nos comutadores do circuito da figura 4 na
página 6 para que ele funcione como um biestável? Dica: lembrem-se da vossa
álgebra de Boole!
3.2
O comportamento metastável
Infelizmente, como já foi dito, o mundo não é ideal: em vez de variações discretas
(não contı́nuas) entre 0 e 1, temos variações contı́nuas entre 0 V e 5 V, no caso TTL.
4
Tecnologia dos Computadores 2002/2003
Trabalho Prático no 6
A pergunta que surge é óbvia: o que acontece, por exemplo, se o biestável “acordar”
com 2,5 V em Q?
Efectivamente, o que acontece é que o biestável entra num 3o estado, que há pouco,
no mundo ideal, era o 3o excluı́do: o estado metastável. Neste estado, tanto Q como Q
ficam naquele meio-termo entre os valores lógicos 0 e 1, isto até que, depois de passado
um determinado hiato temporal, o mı́nimo de ruı́do, sempre presente, desequilibra a
balança, fazendo que o circuito entre num dos dois estados estáveis.
Mas desengane-se quem pense que este comportamento é exclusivo da altura em
que se liga a alimentação do circuito; o comportamento do circuito ao longo do tempo
pode ser comparado à posição de uma bola num monte com um vale de cada lado. Se
se imaginar o topo do monte como o estado metastável e os 2 vales como os estados
estáveis, a bola, para ser empurrada de um lado para o outro do monte, isto é, do 0
para o 1 ou do 1 para o 0, terá de ser empurrada durante tempo e com a força suficiente
para ultrapassar o topo. Se for tempo ou força a menos, volta ao estado anterior; se for
tempo ou força “mais ou menos”, corre-se o perigo de entrar no estado metastável...
Daı́, por exemplo, a razão de ser da maior parte das questões temporais discutidas
anteriormente...
3.3
As básculas
Uma báscula1 é o nome dado a um componente sequencial que “observa” sempre
as suas entradas e que pode mudar as suas saı́das sem qualquer sentido de sincronismo
(se bem que podem incluir controlo tipo “enable”). O exemplo mais simples deste tipo
de circuitos é a báscula S-R, observável na figura 4 na página seguinte.
A sua tabela funcional2 é a seguinte:
S R
0 0
0 1
1 0
1 1
Qn+1
Qn
0
1
0
/Qn+1
/Qn
1
0
0
Tabela 1: A tabela funcional da báscula S-R.
1
“Latch” em inglês.
Parecida com a tabela de verdade, mas não é bem o mesmo: aqui interessa também o estado
presente e o estado seguinte... Mas é fácil de entender; para bom entendedor, meia explicação basta.
2
5
Tecnologia dos Computadores 2002/2003
Trabalho Prático no 6
Figura 4: Uma báscula S-R. Em cima, o seu circuito inserido como sub-circuito de um
circuito de teste simples; em baixo, o seu sı́mbolo. Este último não está formalmente correcto
(no fundo está a afirmar-se duas vezes que Q é activado a zero, ou seja, tem-se aqui uma
involução...), mas é a versão mais usada na prática pelos fabricantes...
Problemas — II
1. (Na aula!:) Simulem agora o circuito da figura 4.
(a) Expliquem convenientemente o que se passa no circuito da figura, usando
a tabela funcional do componente. Cuidado com o vosso português!
(b) Porque é que este componente se chama “Set-Reset Latch”?
(c) Será completamente correcto etiquetar as saı́das de Q e Q? Porquê?
2. (Na aula!:) Simulem o circuito da figura 5 na página seguinte.
(a) Expliquem convenientemente o que se passa no circuito da figura e construam a tabela funcional do componente. Cuidado com o vosso português!
(b) Quanto CIs de lógica combinacional, e de que tipo, são necessários para
construir este circuito?
6
Tecnologia dos Computadores 2002/2003
Trabalho Prático no 6
Figura 5: Báscula S-R com “enable”.
3.3.1
Báscula D
As básculas S-R são úteis em aplicações de controlo, onde se pensa normalmente
em termos de sinalizar (“SET”) a resposta a alguma condição, e retirar essa sinalização
(“RESET”) quando a condição muda; controlam-se, pois, as entradas S e R de uma
forma relativamente independente. Porém, a maior parte das vezes a utilidade das
básculas está no seu uso como unidades de memória de um bit — isto é, temos
informação de um determinado número de bits que se quer armazenada algures. Nestes
casos, as básculas D, cujo circuito e sı́mbolo lógico estão representados na figura 6 na
próxima página, são muito úteis para armazenar cada bit.
Veja-se que esta báscula não é mais que uma adaptação da báscula S-R com enable,
como se torna óbvio pela figura... Como última curiosidade, diga-se que a este tipo de
componentes, que seguem sempre o que se passa nas entradas no valor de saı́da, se dá
o nome, por essa razão, de circuitos sequenciais “transparentes”.
Problemas — III
1. (Na aula!:) Simulem e expliquem convenientemente o que se passa no circuito
da figura e construam a tabela funcional do componente. Cuidado com o vosso
português!
7
Tecnologia dos Computadores 2002/2003
Trabalho Prático no 6
Figura 6: Báscula D.
2. Já será correcto, neste caso, usar as denominações Q e Q para as saı́das? Porquê?
Qual é então a vantagem deste tipo de báscula face à S-R?
3.4
Os Flip-Flops
Devido aos problemas de comportamentos metastáveis presentes nas básculas, foi
criado um outro tipo de componente sequencial elementar, o flip-flop, que só “olha”
para as entradas e modifica as saı́das a partir delas na altura em que é registado na
entrada de sincronismo (mais comummente denominada de entrada de relógio) um
determinado evento.
O flip-flop mais comum e simples é o chamado flip-flop D accionado por vertente. A configuração mais simples de circuito para construção deste flip-flop, o flipflop D “master-slave” está representado na figura 7 na página seguinte na sua versão
sensı́vel à vertente ascendente do relógio. Note-se, porém, que esta configuração, apesar de perfeitamente funcional, não é a usada comercialmente devido a existirem configurações que oferecem tempos de resposta mais rápidos do que esta; no entanto, devido
à sua simplicidade, será esta que estudaremos aqui.
Problemas — IV
1. (Na aula!:) Construam o circuito da figura 7 na próxima página, mas substi8
Tecnologia dos Computadores 2002/2003
Trabalho Prático no 6
Figura 7: Flip-flop D “master-slave” accionado por vertente ascendente.
tuindo as básculas D com o seu circuito correspondente que simularam anteriormente.
(a) Expliquem convenientemente o que se passa nesse circuito e construam a
tabela funcional do componente. Mostrem que a saı́da apenas muda com
valores registados na vertente ascendente do relógio e cuidado com o vosso
português!
(b) Modifiquem o circuito de forma a ele reagir com a vertente descendente do
relógio e simulem-no.
2. Vejam o circuito da figura 8 na página seguinte. Quais as diferenças para o vosso
circuito? Qual a função das novas entradas propostas?
3.4.1
Flip-flops J-K
Apesar dos flip-flops “master-slave” tipo D serem perfeitamente funcionais, já os
“master-slave” S-R sofrem de problemas de não se poder mudar o valor das entradas
antes da vertente a que respondem sob pena do resultado das saı́das se tornar imprevisı́vel... Por essa razão, foram criados os flip-flops J-K accionados por vertente,
cujo circuito e cujo sı́mbolo são apresentados na figura 9 na página 11 na versão sensı́vel
à vertente ascendente.
9
Tecnologia dos Computadores 2002/2003
Trabalho Prático no 6
Figura 8: Flip-flop D “master-slave” accionado por vertente ascendente modificado.
Problemas — V
1. (Na aula!:) Construam o circuito da figura 9 na página seguinte.
(a) Expliquem convenientemente o que se passa nesse circuito e construam a
tabela funcional do componente. Cuidado com o vosso português!
(b) Modifiquem o circuito de forma a ele reagir com a vertente descendente do
relógio e simulem-no.
2. Existe um último flip-flop, chamado flip-flop T (de “Toggle”), que tem uma
única entrada que complementa o seu estado com todas as variações de relógio
(claro que é na mesma sensı́vel apenas a uma das vertentes). Logo a entrada de
relógio é T, não existindo mais entradas.
(a) Construam a tabela funcional do componente e desenhem o que imaginam
ser o seu sı́mbolo (vertente descendente!).
(b) (Na aula!:) Existem duas maneiras de construir este flip-flop, usando um
flip-flop D ou um flip-flop J-K. Como serão? Simulem uma dessas soluções.
10
Tecnologia dos Computadores 2002/2003
Trabalho Prático no 6
Figura 9: Flip-flop JK accionado por vertente ascendente.
CONTADOR BINÁRIO
(0 a 9)
TRIGGER
a
CONVERSOR
BCD-7 SEGMENTOS
4
7
BCD
SEVSEG
f
g
b
c
e
d
Figura 10: Diagrama lógico projectado para a pista de automóveis (mais uma vez!).
4
Especificação dos Requisitos
O licenciado em comunicações e multimédia reparou que o seu circuito, representado mais uma vez em versão de Diagrama de Blocos na figura 10, não funcionava bem
devido a contacto que usava na pista. Por razões óbvias, sempre que o contacto, no
fundo um comutador lógico, era accionado pelo carro que passava por ele, batia várias
vezes até estabilizar, provocando vertentes incomodativas que accionavam de forma errada o contador de voltas. Portanto, ele decidiu construir um circuito de “debouncing”,
usando um circuito com um biestável como na figura 3 na página 4.
Ele tinha aprendido nas suas aulas de Tecnologia de Computadores que um circuito desses mantinha o valor lógico das suas saı́das estável, funcionando efectivamente
11
Tecnologia dos Computadores 2002/2003
Trabalho Prático no 6
como um filtro que impede variações pequenas devido aos batimentos dos contactos de
comutadores e interruptores lógicos.
5
Implementação do sistema
Desenhem o diagrama lógico da vossa solução para o circuito. Vai ser-vos disponibilizado um 74’49 (conversor BCD-7 segmentos), um contador 74’161 e CIs de lógica
discreta para o executarem.
Não se esqueçam de seguir as minhas recomendações e boa sorte no vosso trabalho!
Referências Bibliográficas
[1] Wakerly, J. F. Digital Design – Principles and Practices, 2nd ed. Prentice Hall,
1994.
[2] Marta, E. S. Sebenta Prática de Sistemas Digitais I. Cadeira dada no DEEC,
2002.
[3] Padilla, A. J. G. Sistemas Digitais. McGraw-Hill, 1993.
[4] Horowitz, P., and Hill, W. The Art Of Electronics, 2nd ed. Cambridge
University Press, 1989.
12
Download

Trabalho Prático n 6 Básculas, Flip-Flops e Debouncing