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

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