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