Trabalho Prático n 5 O Jogo dos Reflexos
Transcrição
Trabalho Prático n 5 O Jogo dos Reflexos
Tecnologia dos Computadores 2002/2003 Trabalho Prático no 5 Trabalho Prático no 5 Projectos MSI O Jogo dos Reflexos 1 Introdução Este trabalho tem como objectivo: • introduzir a prática de projectos digitais mais complexos, de “escala mista”(neste caso, SSI e LSI); • introduzir os demultiplexers, codificadores e descodificadores, e os comparadores como dispositivos lógicos; • introduzir a noção de lógica sequencial em projectos digitais; • introduzir os contadores como dispositivos lógicos. 2 Algumas Bases... Seguidamente, continuar-se-á a nossa saga de aprendizagem através da introdução de mais conceitos úteis para projectos digitais. 2.1 “Bolhinhas” e nı́veis de activação Quando se olha para um componente num diagrama lógico, pensa-se na função lógica que este implementará como ocorrendo no interior do perı́metro do seu sı́mbolo. Por essa razão, é muitas vezes útil, no sentido de se normalizar a percepção que se tem das entranhas de componentes cujo propósito lógico é equivalente, assumir que todos os sinais que se vão propagando nesses meandros internos são sempre de activação a 1. 1 Tecnologia dos Computadores 2002/2003 /ENABLE THESE ARE MYINPUT S Trabalho Prático no 5 ENABLE THESE DO ARE MY MYINPUT S THING /DO /MY /T HING Figura 1: Sı́mbolo lógico de um componente imaginário demonstrando a convenção correcta para representar os vários nı́veis de activação. Como é que, então, se representam componentes com entradas ou saı́das cuja activação seja a 0? A convenção que se utiliza habitualmente nestes casos é desenhar uma pequena circunferência (em inglês técnico dá-se o nome de “bubble”, o que em português significa bolha...) junto à entrada/saı́da correspondente, como se pode ver na figura 1. Veja-se a diferença entre os sinais vistos do exterior ou do interior do sı́mbolo lógico: do lado de fora, estes são denominados conforme o seu nı́vel de activação que lhes são particulares, enquanto do lado de dentro são sempre tratados como sendo de activação a 1. Isto faz, como já se disse, com que qualquer membro de um grupo de componentes cujo propósito é o mesmo (por exemplo, qualquer multiplexer com o mesmo número de entradas, saı́das e bits) tenha a mesma informação dentro do seu sı́mbolo lógico, variando de membro para membro apenas as “bolhinhas” que estão apensas aos sinais cujos nı́veis de activação dos sinais sejam diferentes entre si. 2.2 O parceiro do multiplexer — o “demultiplexer” Os multiplexers são muitas vezes utilizados para seleccionar qual de n fontes de dados de b bits será transmitida através de um bus 1 ; aliás, olhando para a definição de multiplexer, esta parece ser o exemplo mais natural da sua aplicação prática. Muitas vezes, do outro lado do barramento encontra-se o seu parceiro, o demultiplexer (abreviado DMUX ou DEMUX) que, sendo também um comutador digital, tem a função inversa do MUX (quem diria!): liga dados vindos da sua entrada a uma de uma das suas n saı́das. Por outras palavras, um demultiplexer é também um selector de dados — no caso do bus, seleccionará qual dos m destinos de dados de b bits servirá de receptáculo para a informação recebida através do barramento. Devido a esta forte relação entre MUXs, DMUXs e barramentos, é muito comum 1 Não significa “autocarro”! A tradução correcta será “barramento”, e significa “um conjunto de linhas de transmissão de sinal que interligam terminais de dois ou mais dispositivos diferentes”. 2 Trabalho Prático no 5 Tecnologia dos Computadores 2002/2003 SRC1 SRC2 DST1 b b b BUS MUX SRCn b DMUX DST2 b DSTm b b s s SRCSELECT DST SELECT Figura 2: Diagrama de blocos exemplificando MUXs, DMUXs e barramentos. Os sinais SRC são fontes de dados (do inglês “source”) e os sinais DST são destinos de dados (do inglês “destination”). encontrar em diagramas de blocos uma representação especial, que se mostra no exemplo genérico da figura 2, que demonstra muito claramente a sua função e distingue as entradas de controlo (neste caso as entradas de selecção) das entradas e saı́das de dados, colocando-as perpendicularmente relativamente ao bloco. 2.3 Os primos dos MUXs e DEMUXs: os “codificadores” e os “descodificadores” E agora, cá vão mais dois tipos de tecnologia MSI combinacional: ficam a saber que existe um parente directo do MUX chamado codificador (ou, em inglês, encoder ) e o correspondente parente do DMUX, o descodificador (ou, em inglês, decoder ). O segundo tem como utilização mais natural o controlo da activação de vários dispositivos do mesmo tipo. A escolha de qual dos dispositivos é activado através das n saı́das do decoder (por exemplo, ligando cada saı́da do decoder ao ENABLE de cada dispositivo) é feita através das entradas de selecção. Atenção!: só uma das saı́das terá um valor diferente das restantes. As entradas de selecção são portanto as únicas entradas existentes no dispositivo, e são por isso colocadas à esquerda. O primeiro, como já adivinharam de certeza, verifica uma série de entradas e indica, através do valor binário indicado pela sua saı́da de s bits, qual das entradas é que estava activada, ou, se mais do que uma estiver nessa condição, qual destas últimas tem maior prioridade2 . 2 A prioridade de cada entrada depende obviamente do encoder utilizado. 3 Tecnologia dos Computadores 2002/2003 Trabalho Prático no 5 Problemas 1. Um dia quiseram fazer um circuito que acendesse apenas 1 de 8 LEDs que um utilizador escolhesse através de um número binário: (a) Que tipo de componente utilizariam para o implementar? (b) Qual seria o número de bits para as entradas e saı́das desse componente? (c) E quantos bits seriam se fosse apenas 1 de 5 LEDs? 2. Imaginem um diagrama lógico para esse circuito e desenhem-no. Não se esqueçam das convenções de que temos vindo a falar sobre os posicionamentos de entradas e saı́das! 2.4 O comparador binário Resta apenas introduzir o comparador binário MSI. Este componente, de utilização muito simples, compara duas entradas com o mesmo número de bits e indica nas suas 3 saı́das a veracidade de 3 acontecimentos: 1. a primeira é menor que a segunda; 2. a primeira é igual à segunda. 3. a primeira é maior que a segunda; Era difı́cil de prever, não? Porém, para permitir a expansão do número de bits dos comparadores, podem-se ligar vários em cascata, usando para isto 3 entradas adicionais: 1. uma entrada que indica se, no comparador que vem imediatamente antes na cascata, a primeira entrada é menor que a segunda; 2. uma entrada que indica se, no comparador que vem imediatamente antes na cascata, a primeira entrada é igual à segunda; 3. uma entrada que indica se, no comparador que vem imediatamente antes na cascata, a primeira entrada é maior que a segunda; Portanto, quando se quer usar um comparador destes sozinho, deve-se colocar a primeira entrada da lista anterior a 0, a segunda a 1, e a terceira a 0. 4 Tecnologia dos Computadores 2002/2003 Trabalho Prático no 5 Problemas 1. O CI 74’85 é um comparador binário de 4 bits, com as entradas representadas por A (do bit menos significativo para o bit mais significativo, A0, A1, A2 e A3) e B (da mesma forma, B0, B1, B2 e B3) e as saı́das por ALTBOUT (menor que), AEQBOUT (igual a) e AGTBOUT (maior do que). As entradas de expansão são, compreensivelmente, ALTBIN (menor que), AEQBIN (igual a) e AGTBIN (maior do que). (a) Desenhe o sı́mbolo lógico para este componente sabendo que é um rectângulo com as entradas todas do lado esquerdo e saı́das todas do lado direito. (b) Como resolveria a questão de fazer este componente comparar um número binário de 4 bits qualquer A com o número binário de 4 bits correspondente a 2? 2.5 Circuitos combinacionais vs circuitos sequenciais Até agora, temos sempre usado circuitos lógicos cujos valores nas saı́das num determinado instante dependem sempre, através de uma função lógica, da combinação dos valores presentes nas suas entradas: a chamada lógica combinacional. Porém, existe um outro tipo de lógica que faz com que saı́das dependam, não apenas das entradas, mas também do estado das saı́das no instante imediatamente antecedente3 . Isto implica que existam sequências temporais de acontecimentos, porque cada instante presente, ao contrário do que acontecia na lógica combinacional, depende de instantes passados — isto implica que os sistemas baseados nestes princı́pios têm memória. A este tipo de lógica dá-se o nome de lógica sequencial — um dado interessante é que componentes sequenciais podem ser construı́dos através de componentes combinacionais, se, nestes últimos, se realimentarem as saı́das para as entradas... Com a lógica sequencial, introduz-se também outro conceito importante, que permeia muito do que existe em circuitos digitais: o relógio. Este, em termos lógicos, representa um sinal que varia periodicamente entre 0 e 1, e cuja frequência de variação é medida em Hz4 — os componentes de lógica sequencial têm geralmente uma entrada de relógio, que, também geralmente, controla a cadência de mudanças de estado do componente através de transições do sinal de relógio (chama-se a isto sincronização). Fala-se geralmente de entradas de relógio activadas por transição para zero (vertente 3 Se um sistema regido por esta lógica depender apenas do estado, chama-se uma máquina de Moore. Se depender tanto do estado como das entradas, chama-se uma máquina de Mealy. 4 Percebem agora o que se quer dizer quando se fala em “Pentium III de 850 MHz”? 5 Tecnologia dos Computadores 2002/2003 Trabalho Prático no 5 CLK MY DO INPUT S MY HERE SEQUENCE Figura 3: Sı́mbolo lógico imaginário para um componente sequencial com entrada de relógio activada por vertente descendente. descendente) e por transição para um (vertente ascendente) do relógio. A entrada de relógio activada por vertente, nos sı́mbolos lógicos de componentes sequenciais, é representada através de um triângulo do lado de dentro do sı́mbolo que aponta no sentido de entrada; na activação por vertente descendente, em particular, representa-se o facto do sentido ser descendente através de uma “bubble”, como se fosse uma entrada activada a zero (ver o exemplo da figura 3). Em trabalhos práticos posteriores, veremos mais a fundo os fundamentos desta lógica; porém, para se vislumbrar já um pouco da sua utilidade e abrir o apetite, apresentar-se-á de seguida um exemplo importantı́ssimo de um componente MSI sequencial. 2.5.1 O contador binário Nos trabalhos anteriores, introduziu-se já em diagramas de bloco o chamado contador binário. Como foi demonstrado nesse diagrama, a maneira mais simples de imaginar um contador será ter uma entrada de relógio e uma saı́da que apresente um número binário de b bits que será incrementado de cada vez que se dá uma transição de relógio, dentro de uma gama que vai de 0 até n − 1, recomeçando-se a contagem a zero na transição que se segue depois de atingir o número binário n − 1. Porém, é já standard ter-se muito mais capacidades inerentes a um contador binário do que apenas isto. Geralmente, poder-se-á ter: • Uma entrada com função de “CLEAR” (ou “RESET”), que recomeça a zero a contagem, qualquer que seja o estado actual desta. • Uma entrada com função de “LOAD”, que carrega na saı́da os bits de uma entrada (claro que a entrada e a saı́da têm de ter o mesmo número de bits), qualquer que seja o estado actual da contagem. 6 Tecnologia dos Computadores 2002/2003 Trabalho Prático no 5 • Uma entrada com função de “UP/DOWN”, que indica se a contagem é crescente ou decrescente. • Uma saı́da que indica de “fim de contagem”. Qualquer das duas primeiras funções pode ser sı́ncrona ou assı́ncrona5 , conforme o contador. Lembrem-se que nem todos os contadores têm todas estas funções! Problemas 1. O CI 74’163 é um contador binário de 4 bits (pode contar, portanto, de 0 a 7) com funções CLEAR (que, para este CI, é controlada por uma entrada activada a 0, CLR) e LOAD (da mesma forma, é controlada por uma entrada activada a 0, LD) sı́ncronas. Tem uma entrada de relógio CLK de activação por transição ascendente do relógio e duas entradas de “enable”, ENP e ENT, precisando ambas de ser colocadas a um para o contador funcionar. Tem também uma saı́da de indicação de fim de contagem RCO (do inglês “ripple carry out”). (a) Desenhe o sı́mbolo lógico para este componente sabendo que é um rectângulo com as entradas todas do lado esquerdo e saı́das todas do lado direito. Os bits de entrada para o “LOAD” são A, B, C e D e os bits de saı́da de contagem são QA, QB, QC e QD. “A” representa sempre o bit menos significativo. Cuidado com a representação da entrada de relógio! (b) Como resolveria a questão de fazer este contador contar de 0 até 4, regressando a 0 no fim desta contagem e recomeçando, usando apenas portas lógicas? Faça o diagrama lógico da sua solução. Dica: use a função de CLEAR para este efeito. (c) E de 5 até 7? Dica: use a função de LOAD para o efeito. 2. O CI 74’161 é em tudo igual ao 74’163 exceptuando no facto de CLR ser assı́ncrona. (a) Não é possı́vel com o 74’161, devido a isto, usar a função CLEAR para transformar a gama de contagem do contador. Porquê? (b) Como resolveria, então, a questão de fazer este contador contar de 0 até 4, usando apenas portas lógicas? Faça o diagrama lógico da sua solução. 5 Isto é, dependente do relógio ou de efeito imediato. 7 Tecnologia dos Computadores 2002/2003 Trabalho Prático no 5 ON/O FF < = > - + JOGO DOS REFLEXOS TM GO! Figura 4: Imagem do jogo dos reflexos. O único controlo que talvez não seja óbvio é o botão rotativo (no canto inferior esquerdo) que controla a velocidade do jogo. 3 Especificação dos Requisitos Uma engenheira informática decidiu poupar dinheiro num Natal em que queria oferecer um jogo ao sobrinho de 4 anos. Queria, de qualquer das formas, regalá-lo com um jogo que o entusiasmasse e que ao mesmo tempo fosse pedagógico. Lembrou-se então dos seus conhecimentos de Tecnologia dos Computadores e inventou e construiu um jogo ela mesma, a que deu o nome de “Jogo dos Reflexos”, representado na figura 4. O jogo é simples: a partir da altura em que se liga o sistema, os 5 LEDs no centro do jogo vão acendendo da esquerda para a direita em sequência a uma determinada velocidade; o jogador testa os seus reflexos tentando accionar o comutador GO! na altura em que o LED do meio, que tem um quadrado à volta, estiver aceso. Se acertar, acende-se o LED “=”; se falhar, acende-se ou o LED que indica que o jogador foi demasiado lento (“>”), ou o que indica que o jogador foi demasiado rápido (“<”). Problemas 1. Desenhem o diagrama de blocos que represente o jogo numa representação de alto-nı́vel. Certifiquem-se que reservam um bloco para o sub-sistema de controlo do jogo (isto é, que controla a acção a tomar quando o jogador acciona GO!), visto que este será a parte fulcral do jogo. Lembrem-se que os LEDs que mostram o resultado da jogada (“=”, “>” e “<”) apenas se acendem quando o comutador é accionado! 8 Tecnologia dos Computadores 2002/2003 4 Trabalho Prático no 5 Implementação do sistema Desenhem o diagrama lógico da vossa solução para o Jogo dos Reflexos, usando para isso a informação recolhida ao longo das vossas respostas às perguntas anteriores e os datasheets que vos forem entregues na aula. Façam depois o diagrama de montagem. 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. 9
Documentos relacionados
Trabalho Prático n 3 Conversor BCD-7 Segmentos SSI
de um sistema digital, muitas pessoas ainda preferem lidar com números decimais — é preciso ver que o ser humano já existia antes de haver computadores! Como resultado, os interfaces com o exter...
Leia mais