Upload
vohanh
View
215
Download
0
Embed Size (px)
Citation preview
Faculdade de Engenharia da Universidade do Porto
Departamento de Engenharia Electrotécnica e de Computadores
Licenciatura em Engenharia Electrotécnica e de Computadores
Enunciados e correcções de exames de Sistemas Digitais 1999/2002
José Carlos Alves [email protected]
� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ! " # � $ % & � � � �
' ( ) * + , , , , , , , , , - . / 0 1 2 1 3 1 4 / 5 6 6 7 8 9 : 5 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ; < = ) > , , , , , , , , , , , , , , ,
LEEC - SD 1999/2000 ASG/JCA/AJA/JFS/JSC
Universidade do PortoFaculdade de Engenharia? @ A B C A @ D E F G D B H I C J B C K D G @ D I L B A E G M E N A C @ A D B O B P M H Q F E D O M G B R
Sistemas Digitais (1999/2000) 1ª chamada - 14/Junho/2000
Duração: 2h 30m, sem consulta.Antes de iniciar a prova, tenha em atenção as seguintes recomendações:• Leia atentamente toda a prova antes de a iniciar.• Mostre e justifique adequadamente todos os passos das suas respostas.• A prova deverá ser resolvida no enunciado. Se necessário, utili ze o verso para continuar a sua resolução.• Assine todas as folhas que entregar, indicando em cada uma o número de páginas/folhas que entregou.
1 - Considere a sequência de dígitos 10101
a) Diga qual é o seu valor se essa sequência representar:
i) um número inteiro em base 2 com 6 bits e em complemento para dois
Se a sequência 10101 representa um número com 6 bits, então assume-se que existe um zero à esquerda:010101. Como neste caso o bit mais significativo é zero (bit de sinal), podemos concluir que o númerorepresentado é positivo, sendo o seu valor obtido pela conversão para decimal do valor dado:
24+22+20 = 21
ii ) um número inteiro em base 2 com 5 bits e complemento para dois
Como o bit mais significativo é 1, podemos concluir que o número é negativo e para obter o seu valor absoluto énecessário calcular o seu simétrico (complemento para dois). Trocando os bits todos obtemos 01010 e adicionando1 dá 01011 que vale:
23+21+20 = 11 Assim a sequência dada representa a quantidade -11
iii ) um número inteiro sem sinal em base 2
Se a sequência 10101 representar um número sem sinal em base 2, o seu valor é obtido calculando a suaconversão para decimal:
24+22+20 = 21
b) Determine o número com 6 bits representado em complemento para dois, que adicionado ao número 10101 representado emcomplemento para dois com 5 bits, dá o resultado -2. Efectue as operações aritméticas em binário que achar convenientes.
Pretende-se calcular um número X com 6 bits e em complemento para 2, tal que X+Y=-2 , sendo Y o número10101 representado em complemento para dois com 5 bits. Para simpli ficar a realização dos cálculos, éconveniente representar todos os operandos no mesmo formato: 6 bits em complemento para dois:
Y = 10101 representado com 6 bits (estendendo o bit de sinal) fica 110101-2 = complemento para 2 de +2: 000010 complementado os bits: 111101 e somando 1 dá 111110
Podemos então calcular o valor pedido realizando a operação: X = -2-Y:
-2 111110 Y -110101
X 001001
Assim, o número pedido é X = 001001 que representa a quantidade +9.
� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ! " # � $ % & � � � � �
' ( ) * + , , , , , , , , , - . / 0 1 2 1 3 1 4 / 5 6 6 7 8 9 : 5 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ; < = ) > , , , , , , , , , , , , , , ,
LEEC - SD 1999/2000 ASG/JCA/AJA/JFS/JSC
2 - Considere a função booleana F(A,B,C;D):
F(A,B,C,D) = )).().(( DCBDCBAB +++++
a) Represente F(A,B,C,D) no mapa de Karnaugh junto e obtenha a representação de F na forma simpli ficada soma de produtos.Indique convenientemente os agrupamentos de uns ou zeros que considerou para construir a expressão simpli ficada.Sugestão: note que não é necessário construir a tabela de verdade para representar a função dada no mapa de Karnaugh!
Podemos representar a função F(A,B,C,D)directamente no mapa de Karnaugh, já que esta éapresentada na forma produtos-de-somas. Assim,cada termo de soma corresponderá um grupo dezeros no mapa (assinalados a sombreado). Aexpressão mínima soma-de-produtos é obtidaagrupando os uns da forma que se apresenta nafigura, resultando a expressão minimizada:
F(A,B,C,D) = B' . C + A . B . D + A . C + B' .D'
b) Considere agora uma função G(A,B,C,D) que é idêntica a F, excepto no termo ABCD=1101 em que é indiferente. Construaum circuito minimizado utili zando apenas portas lógicas NOR de 2 ou 3 entradas que realize a função G(A,B,C,D) .
Para construir um circuito minimizado comportas lógicas NOR é conveniente determinar a nova expressãomínima produto-de-somas, considerando agora o termo ABCD=1101 indiferente. Reconstruindo o mapa deKarnaugh obtemos a nova expressão mínima:
F(A,B,C,D) = (B' + C) . (D' + C) . (B' + A)
O circuito OR-AND que realiza esta função é:
podendo ser transformado no circuito equivalente só com portas NOR por aplicação das leis de DeMorgan:
00 01 11 1000
01
11
10
AB A
B
D
C
CD0
0
0
0
0
00
1
1
1
1
1 1
1
1
1B' . D'
A . B . D
B' . C
A . C
B' + C + D
B' + A
B + C + D'
00 01 11 1000
01
11
10
AB A
B
D
C
CD0
0
0
0
0
00
1
1
1
1
1 1
1
d
1
B' + C
D' + C
B' + A
A
B'C
D'C
B'
F(A,B,C,D)
A
BC
D
< = >
F(A,B,C,D)
� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ! " # � $ % & � � � � S
' ( ) * + , , , , , , , , , - . / 0 1 2 1 3 1 4 / 5 6 6 7 8 9 : 5 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ; < = ) > , , , , , , , , , , , , , , ,
LEEC - SD 1999/2000 ASG/JCA/AJA/JFS/JSC
3 - Pretende-se construir uma máquina de estados de Moore com uma entrada X e duas saídas S1 e S0. A saída S1 toma o valor 1quando é detectada na entrada X a sequência 10111; a saída S0 toma o valor 1 quando é detectada na entrada X a sequência10110. As sequências a detectar podem ser parcialmente sobrepostas da forma que se exempli fica na figura:
XS1
S0FSM
X 0 1 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 1 1 0 1 1 1 0
S1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
S0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0
a) A figura representa um diagrama de transição de estados incompleto para a máquina de Moore referida. Complete-oindicando claramente as transições de estado, condições de transição de estado ou valores para as saídas S1 e S0 que faltam.
E1 S1=0S0=0
E2 S1=0S0=0
E3
S1=0S0=0
E5
E4
S1=0S0=1
E6
initX=1
X=0 X=0
X=1
X=1X=1
X=0
X=0
X=0
X=1
S1=0S0=0
X=0
X=1
X=1
X=0
S1=0S0=0
S1=1S0=0
Espera que chegueo 1º um
Enquanto chegarem unsfica no estado E1
Se X=1 no estado E4, pode passarpara o estado E3 porque foi detectadauma sequência 101 (note que são admitidassequências sobrepostas)
Se X=0 no estado E3, pode passarpara o estado E2 porque foi detectadauma sequência 10 (note que tudo oque foi detectado antes de 10 é desprezado)
No estado E5 ainda não foi detectadanenhuma sequência válida
Foi detectada asequência 10111 (S1=1)
� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ! " # � $ % & � � � � �
' ( ) * + , , , , , , , , , - . / 0 1 2 1 3 1 4 / 5 6 6 7 8 9 : 5 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ; < = ) > , , , , , , , , , , , , , , ,
LEEC - SD 1999/2000 ASG/JCA/AJA/JFS/JSC
b) Mantendo o modelo de máquina de Moore, modifique o diagrama de transição de estados de forma a que sejam apenasdetectadas sequências não sobrepostas, i.e. sempre que é detectada uma sequência válida, só é iniciada a pesquisa de uma novasequência com o primeiro bit a seguir à última sequência detectada (ver figura)
X 0 1 0 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 1 1 1 0
S1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
S0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
sequências não detectadas porqueestão sobrepostas com a anterior
E1 S1=0S0=0
E2 S1=0S0=0
E3
S1=0S0=0
E5
E4
S1=0S0=1
E6
initX=1
X=0 X=0
X=1
X=1X=1
X=0
X=0
X=0
X=1
S1=0S0=0
X=0
X=1
X=1
X=0
S1=0S0=0
S1=1S0=0
Se X=1 no estado E4, pode passarpara o estado E1 porque foi detectado um 1a seguir a uma sequência válida
Se X=0 no estado E6, tem que passarpara o estado init porque 0 não inicianenhuma sequência válida
X=0Este ramo desaparece
� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ! " # � $ % & � � � � T
' ( ) * + , , , , , , , , , - . / 0 1 2 1 3 1 4 / 5 6 6 7 8 9 : 5 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ; < = ) > , , , , , , , , , , , , , , ,
LEEC - SD 1999/2000 ASG/JCA/AJA/JFS/JSC
c) Mostre que se a máquina de estados referida em b) for implementada como uma máquina de Mealy é possível reduzir o númerode estados.
O estado E5 é atingido quando for detectada a sequência 1011. Isto é válido tanto para o modelo da máquina deestados de Moore (modelo apresentado em b)), tanto para o modelo de Mealy. O estado seguinte ao estado E5 serásempre o estado init porque qualquer que seja o próximo bit recebido em X (1 ou 0) será sempre detectada umadas duas sequências válidas. Nesse caso a máquina deve ser reiniciada já que não se pretende detectar sequênciassobrepostas. Assim, do estado E5 irão existir duas transições para o estado init, às quais serão associadascondições diferentes de transição de estado e saídas. Desta forma é possível eliminar os estados E4 e E6, tal comose mostra na figura:
X=0S1=0,S0=1
init
E5
X=1S1=1,S0=0
X=1S1=0,S0=0
O estado E5 é atingido quando for detectada a sequência 1011.Se neste estado X for 0, então é detectada a sequência 10110e é activada a saída S0; se X for 1, então é detectada asequência 10111 sendo activada a saída S1
4 - A figura seguinte representa a tabela de transição de estados de uma máquina de Mealy.
X=0 X=1
A B , 0 A , 1
B C , 1 B , 1
C A , 1 C , 0
Entrada XEstado S
próximo estado S*, saída Z
Estado S Q1,Q0
A 1 0B 0 1C 1 1
a) Codificando os estados da forma que se indica na figura, preencha a tabela da figura com as funções lógicas que produzem opróximo estado Q1*,Q0* e a saída Z do circuito. Considere que as variáveis de estado são realizadas com flip-flops do tipo D eque se pretende minimizar a complexidade do circuito lógico resultante.
A tabela com as funções lógicas pretendias é construída substituindo na tabela dada os nomes simbólicos dosestados (A, B e C) pela codificação dada em Q1,Q0. Para além disso, e como se pretende minimizar acomplexidade dos circuitos lógicos, é necessário especificar como don't cares os valores das funções Q1*, Q0* e Zquando as variáveis de estado assumem os valores Q1=1 e Q0=0:
Q1 Q0 X Q1* Q0* Z
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0 0 1
0 1 1
1 1 0
0 1 1
d d d
d d d
1 1 1
0 0 0
� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ! " # � $ % & � � � � U
' ( ) * + , , , , , , , , , - . / 0 1 2 1 3 1 4 / 5 6 6 7 8 9 : 5 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ; < = ) > , , , , , , , , , , , , , , ,
LEEC - SD 1999/2000 ASG/JCA/AJA/JFS/JSC
b) Implemente a função Q0* utili zando um multiplexador 4 ÷1 (com 2 linhas de selecção) e inversores.
Re-arranjando a tabela de verdade da função Q0* na forma mais conveniente para realizar a função com ummultiplexer:
Q1 Q0 X Q1* Q0* Z
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0
1
1
1
d
d
1
0
Q0* = X
Q0* = 1
Q0* = d (don't care)
Q0* = X
O circuito lógico com um multiplexer é obtido ligando as linhas de selecção às variáveis mais significativas e asentradas aos valores lógicos X, 1 ou X', consoante determinado na tabela acima:
Q0* (Q1,Q0,X)
Q 1 Q 0
00
01
10
11
X
1
1
X
Nota: como Q0* é don't carepara Q1,Q0=10, esta entrada domultiplexer pode assumirqualquer valor
� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ! " # � $ % & � � � � V
' ( ) * + , , , , , , , , , - . / 0 1 2 1 3 1 4 / 5 6 6 7 8 9 : 5 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ; < = ) > , , , , , , , , , , , , , , ,
LEEC - SD 1999/2000 ASG/JCA/AJA/JFS/JSC
5 - Pretende-se gerar, utili zando um universal shift-register 74x194 (ver tabela), a seguinte sequência:
0 0 0 00 0 0 10 0 1 10 1 1 11 1 1 11 1 1 01 1 0 01 0 0 00 0 0 0 . . .
QA QB QC QDC L K
C L RS 1S0L IN
R I N
DCBA
Q DQ CQ BQA
74 x1 94
função S1 S0 QA* QB* QC* QD*
holdshift rightshift leftload
0 00 11 01 1
QA QB QC QDRIN QA QB QCQB QC QD LINA B C D
a) Construa o circuito que gere a sequência pretendida nas saídas QA,QB,QC,QD do shift-register. Note que a sequênciaapresentada pode ser gerada por deslocamentos sucessivos de um bit.Sugestão: para além do 74194, basta utili zar um inversor...
Pela sequência dada podemos verificar que:i) o estado seguinte é obtido sempre deslocando os bits do estado anterior para a esquerda. Isto significa que oshift- register irá funcionar no modo shift left , a que corresponde S1,S0=1,0ii ) o novo bit que entra pelo lado direito (na entrada LIN) é a negação do bit mais significativo (QA) do estadoanterior
Assim (e seguindo a sugestão dada!) o circuito pretendido pode ser obtido ligando a saída QA negada à entradaLIN, necessitando para isso um inversor:
CL K
C L RS1S0L IN
R I N
DCBA
Q DQ CQ BQA
74 x1 94
Vcc
Gnd
Clock
b) Mostre que alterações teria de introduzir no circuito para que uma entrada X permita seleccionar entre a sequência anterior(quando X=0) e a sequência seguinte (para X=1):Sugestão: construa primeiro o circuito que implementa a nova sequência e só depois procure combinar os dois circuitosintroduzindo a entrada X.
A nova sequência é semelhante à anterior, excepto que os estados 0000 e 1111 nunca são atingidos(note que pela tabela dada é assumido que o estado inicial é 0000, mas não é atingido de novo). Deforma semelhante à sequência anterior, também neste caso é sempre efectuado um deslocamentopara a esquerda, mas agora o bit que entra pela esquerda é a negação do bit QB do estadoanterior. A sequência dada pode ser gerada por um circuito semelhante ao apresentado na alíneaanterior, com a diferença que a entrada do inversor é ligada à saída QB.
O circuito pedido, com uma entrada X que permita comutar entre as duas sequências pode serconstruído recorrendo a um multiplexer que, em função do valor de X ligue a entrada do inversorà saída QA ou QB, consoante se pretenda a primeira ou segunda sequências, respectivamente paraX=0 e X=1. O circuito completo é mostrado na figura seguinte.
0 0 0 00 0 0 10 0 1 10 1 1 11 1 1 01 1 0 01 0 0 00 0 0 10 0 1 1 . . .
QA QB QC QD
� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ! " # � $ % & � � � � W
' ( ) * + , , , , , , , , , - . / 0 1 2 1 3 1 4 / 5 6 6 7 8 9 : 5 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ; < = ) > , , , , , , , , , , , , , , ,
LEEC - SD 1999/2000 ASG/JCA/AJA/JFS/JSC
CL K
C L RS1S0
L IN
R I N
DCBA
Q DQ CQ BQA
74 x1 94
Vcc
Gnd
Clock
X
0
1
multiplexer 2-1
6 - O circuito da figura representa um inversor CMOS cuja saída está ligada à entrada de um circuito digital X. A ligação entre osdois circuitos apresenta uma resistência R e a entrada do circuito X pode ser representada pelo paralelo de uma resistência RL e umcondensador CL, como se mostra na figura.
RLCL
R
Gnd (0V)
Vdd=5V
circuito X
A
VA
Para responder às questões colocadas é conveniente desenhar os circuitos equivalentes ao circuito dado para osníveis lógicos High e Low:
+
-
R
CL RL
RPMOS
5V
A R
CL RL
RNMOSA
Nível lógico High Nível lógico Low
Explique justificando, de que forma o valor da resistência R afecta:
i) Os níveis lógicos na entrada do circuito X (ponto A)
No nível lógico Low, a tensão no ponto A é sempre zero, independentemente do valor da resistência R, já que nãoexiste nenhuma fonte de tensão no circuito. No nível lógico High, a tensão no ponto A decresce com o aumento deR (VA=5VxRL/(RPMOS+R+RL) ), o que significa que quando R cresce o nível lógico High é degradado (a margen deruído é diminuída).
� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ! " # � $ % & � � � � X
' ( ) * + , , , , , , , , , - . / 0 1 2 1 3 1 4 / 5 6 6 7 8 9 : 5 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ; < = ) > , , , , , , , , , , , , , , ,
LEEC - SD 1999/2000 ASG/JCA/AJA/JFS/JSC
ii ) A potência fornecida pela fonte de tensão Vdd.
A fonte de tensão Vdd (ideal) apenas fornece energia à associação das 3 resistências em série no nível lógico High.Como neste caso P=V2/R, podemos concluir que a potência eléctrica fornecida pela fonte Vdd decresce com oaumento de R.
iii ) Os tempos de subida e de descida da tensão VA na entrada do circuito X
No nível lógico High e Low as constantes de tempo associadas às transições da tensão no ponto A (terminais docondensador) são obtidas como produto de CL pelo paralelo de RL com a série de RPMOS ou RNMOS com R. Comoestas constantes de tempo crescem com R, os tempos de transição também crescem.
Podemos assim concluir que quando a resistência R cresce, o nível lógico High piora, a potência consumidadiminui e os tempos de transição aumentam.
Sistemas Digitais, 2ª chamada - 5/Jul/2000 (Prova A - Correcção) Página 1
NOME:_______________ 2ª CHAMADA - CORRECÇÃO____________________________TURMA � � � � � � � � � � � � � � �
LEEC - SD 1999/2000 ASG/JCA/AJA/JFS/JSC
Universidade do PortoFaculdade de Engenharia
� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �
Sistemas Digitais (1999/2000) 2ª chamada - 5/Julho/2000
Duração: 2h 30m, sem consulta.Antes de iniciar a prova, tenha em atenção as seguintes recomendações:• Leia atentamente toda a prova antes de a iniciar.• Justifique adequadamente todos os passos das suas respostas.• A prova deverá ser resolvida no enunciado, uma questão por folha. Se necessário, utili ze o verso de cada folha para continuar a sua
resolução.• Entregue todas as folhas do enunciado, não se esquecendo de preencher o seu nome.
1 -
a) Indique justificando o resultado da adição binária dos números A=011001 e B=110011, ambos representados em
Efectuando a adição binária dos dois números dados obtemos:
011001+1100111001100
Apesar do resultado obtido ser 1001100, o bit 1 da esquerda deve ser desprezado já que como ambos os operandosestão representados em complemento para dois com 6 bits, o resultado será também representado emcomplemento para dois, constituído apenas pelos 6 bits menos significativos: 001100. Para confirmar o resultadopodemos representar os operandos em base 10:
A = 011001 = 16+8+1 = +25B = 110011 = -(001100+1) = -(001101) = -13A+B = 25-13 = +12 = 001100
b) Adicionando os números X=0101 e Y=1111 obtém-se um resultado com 4 bits igual a 0100. Diga, justificando, se ocorreoverflow nessa operação se X e Y representarem números:
Antes de responder às questões seguintes é conveniente efectuar a operação de adição referida:
0101+111110100
obtendo, como é dito no enunciado, um resultado em 4 bits igual a 0100
i) inteiros em base 2 com 4 bits e sem sinal
Se os dois operandos representarem inteiros em base 2 com 4 bits ocorre overflow na operação referida porque égerado um carr y na soma dos bits mais significativos dos operandos. Por outras palavras, o resultado (positivo)da adição binária não pode ser representado por 4 bits.
ii ) inteiros em complemento para dois com 4 bits
Se os dois operandos representarem inteiros em complemento para dois com 4 bits não ocorre overflow porque X eY têm sinais contrários. Confirmando: X=+5, Y=-1 e X+Y=+4
Sistemas Digitais, 2ª chamada - 5/Jul/2000 (Prova A - Correcção) Página 2
NOME:_______________ 2ª CHAMADA - CORRECÇÃO____________________________TURMA � � � � � � � � � � � � � � �
LEEC - SD 1999/2000 ASG/JCA/AJA/JFS/JSC
2 - O mapa de Karnaugh da figura representa uma função booleana F(A,B,C,D)
AB
CD
C
D
A
B
00 01 11 10
00
01
11
10
1 1 1 0
d d 1 0
1 1 1 0
1 0 0 0
a) Obtenha a expressão mais simples do tipo POS ou SOP, considerando que pretende uma realização com portas lógicas dotipo inversor, AND ou OR com duas entradas. Note que não se pretende que desenhe o circuito lógico.
Se o objectivo é obter a realização mais simples com inversores e portaslógicas com duas entradas, vamos escolher a expressão SOP ou POS queminimize o número de operadores lógicos dos tipos referidos. Agrupando oszeros obtemos a expressão do tipo POS:
F(A,B,C,D) = (B'+C'+D) . (A'+B)
que necessita de 3 inversores, 3 OR e um AND
Agrupando os uns obtemos a expressão do tipo SOP:
F(A,B,C,D) = B'.A' + B.D + B.C'
que utili za 3 inversores, 3 AND e dois OR.
Assim, a representação mais simples para F(A,B,C,D) é a expressão POSapresentada acima.
b) Considere agora uma função G(A,B,C,D) que é idêntica a F, excepto no termo ABCD=0010 em que é indiferente. Construaum circuito minimizado utili zando apenas portas lógicas NAND de 2 entradas que realize essa função .
O objectivo é minimizar o número de portas lógicas NAND de duas entradas. Paraconstruir um circuito lógico só com portas NAND é geralmente mais convenienteconstruir primeiro um circuito do tipo AND-OR, obtido por tradução directa daexpressão SOP minimizada. No entanto, se a função G(A,B,C,D) for consideradazero nesse termo, a expressão POS resulta mais simples do que a espressão SOP jáque apenas requer dois termos de soma com dois literais cada um:
G(A,B,C,D) = (C'+D) . (A'+B)
O circuito OR-AND que realiza aquela expressão é:
ABCD
C
D
A
B
00 01 11 10
00
01
11
10
1 1 1 0
d d 1 0
1 1 1 0
1 0 0 0
A' +B
B'+C'+D
B.D
B' .A '
B.C'
C'D
A'B
G(A,B,C,D)
ABCD
C
D
A
B
00 01 11 10
00
01
11
10
1 1 1 0
d d 1 0
1 1 1 0
0 0 0
A' +B
C'+D
d
Sistemas Digitais, 2ª chamada - 5/Jul/2000 (Prova A - Correcção) Página 3
NOME:_______________ 2ª CHAMADA - CORRECÇÃO____________________________TURMA � � � � � � � � � � � � � � �
LEEC - SD 1999/2000 ASG/JCA/AJA/JFS/JSC
podendo ser transformado no circuito equivalente usando apenas 6 portas NAND de duas entradas:
CD
A
B
G(A,B,C,D)
A expressão mais simples do tipo SOP seria igual à apresentada em a). Podemos concluir (sem desenhar ocircuito!) que só para realizar os 3 termos de produto dessa expressão SOP seriam necessárias 6 portas NAND deduas entradas: 3 NANDs para as negações e mais 3 NANDs para realizar os 3 termos de produto. Como paraalém disso é ainda necessário realizar a soma lógica dos termos de produto, o número total de NANDs de duasentradas será superior ao número utili zado no circuito apresentado.
3 - Pretende-se construir uma máquina de estados de Mealy com uma saída IMPAR que é 1 quando os 3 últimos bitsconsecutivos colocados na sua única entrada X incluírem um número ímpar de uns, e zero no caso contrário. Depois do início dofuncionamento da máquina de estados, a saída IMPAR só é considerada válida após o 3º ciclo de relógio. A figura mostra umexemplo de uma sequência de bits na entrada X e o valor correspondente para a saída IMPAR
0101101011110100
dd10000100110011IMPAR:
X:
saí da I MPAR é i ndi f er ent e
nos 2 pr i mei r os ci cl os
a) A figura representa um diagrama de transição de estados incompleto para a máquina de Mealy referida. Complete-oindicando claramente as transições de estado, condições de transição de estado e valores para a saída IMPAR que faltam.
init
E
F
A
B CD
X / IMPAR
1/d
1/d 0/d
0/d
0/d1/d
1/1
0/0
0/11/0
0/0
1/11/0
0/1
Foi recebido 11; enquantochegarem uns, a saídaIMPAR é 1
Chegou um zero após ter sidorecebido 11: IMPAR=0
Note que cada estado mantém a históriados dois últimos bits recebidos
Foi recebido 00; enquantochegarem zeros a saída IMPAR é 0
Chegou um 1 após ter sidorecebido 00: IMPAR=1
Chegou um 0 após ter sidorecebido 01: IMPAR=1
Chegou um 1 após ter sidorecebido 01: IMPAR=0
Sistemas Digitais, 2ª chamada - 5/Jul/2000 (Prova A - Correcção) Página 4
NOME:_______________ 2ª CHAMADA - CORRECÇÃO____________________________TURMA � � � � � � � � � � � � � � �
LEEC - SD 1999/2000 ASG/JCA/AJA/JFS/JSC
b) Sabendo que uma porta XOR de 3 entradas realiza a função detecção de paridade ímpar de uma palavra de 3 bits (ver tabela),construa um circuito utili zando um 74x194 (universal shift-register) que realize a funcionalidade da máquina de estados referida.
Se o shift- register for configurado em modo shift- r ight (S1=0, S0=1) sendo a entrada RIN a entrada X damáquina pretendida, as saída QA,QB e QC têm, em cada ciclo, os últimos 3 bits recebidos. Se essas saídas doshift- register forem ligadas às entradas do XOR de 3 entradas, a sua saída será 1 quando os últimos 3 bitsrecebidos apresentarem paridade ímpar. Assim, o circuito completo será:
CL K
C L RS1S0
L IN
R I N
DCBA
Q DQ CQ BQA
74 x1 94
Vcc
Gnd
Clock
X
IMPAR
0 0 0 00 0 1 10 1 0 10 1 1 01 0 0 11 0 1 01 1 0 01 1 1 1
A B C A ⊕⊕ B ⊕⊕ CC L K
C L RS1S0L I N
R I N
DCBA
Q DQ CQ BQA
74 x1 94
função S1 S0 QA* QB* QC* QD*
holdshift rightshift leftload
0 00 11 01 1
QA QB QC QDRIN QA QB QCQB QC QD LINA B C D
Sistemas Digitais, 2ª chamada - 5/Jul/2000 (Prova A - Correcção) Página 5
NOME:_______________ 2ª CHAMADA - CORRECÇÃO____________________________TURMA � � � � � � � � � � � � � � �
LEEC - SD 1999/2000 ASG/JCA/AJA/JFS/JSC
4 - A figura seguinte representa a tabela de transição de estados de uma máquina de Moore.
X=0 X=1
E1 E2 E1E2 E2 E3
E3 E3 E4
Entrada XEstado S
próximo estado S*
E4 E1 E5
E5 E5 E3
0 0
1 10 1
0 1
1 1
SaídasY Z
a) Apresente e justifique uma codificação de estados que permita minimizar a complexidade do circuito lógico que realiza assaídas Y e Z.
Como na máquina de Moore as saídas apenas dependem do estado presente, a codificação de estados queminimiza a complexidade do circuito lógico que realiza as saídas Y e Z pode ser obtida incluindo os valoreslógicos para as saídas Y e Z no código atribuído a cada estado. Nesse caso não é necessária qualquer funçãológica, sendo as saídas iguais a bits da variável de estado. Como temos 5 estados e necessitamos de (pelo menos) 3bits para os codificar, podemos codificar os estados em Q2,Q1 com os valores pretendidos para as saídas Y e Z,utili zando o 3º bit Q0 para diferenciar entre estados que apresentem saídas iguais:
Estado S
E1 0 0 0E2 1 1 0E3 0 1 0E4 0 1 1E5 1 1 1
Q2 Q1 Q0Y Z
Fazendo Q2,Q1 iguais a Y,Z
b) Considere a codificação de estados seguinte:Estado S Q2,Q1,Q0
E1 0 0 0E2 0 0 1E3 0 1 0E4 0 1 1E5 1 0 0
Obtenha uma expressão lógica minimizada para a saída Z=f(Q2,Q1,Q0,X). Admita que Z é indiferente para os estados nãoespecificados na tabela de transição de estados.
Utili zando a codificação de estados dada, vamos construir a tabela de verdade dafunção Z=f(Q2,Q1,Q0). Note que a saída Z não depende da entrada X, uma vez que setrata de uma máquina de Moore:
Construindo o mapa de Karnaughpara a função Z(Q2,Q1,Q0):
obtém-se a expressão simpli ficada (soma-de-produtos): Z=Q2+Q1+Q0
Q2 Q1 Q0 Y Z
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0 0
1 1
0 1
0 1
1 1
x x
x x
x x
estadopresente saídas
Q2Q1
Q0
Q0
Q2
Q1
00 01 11 10
0
1
0 1 d 1
1 1 d d
Q 2
Q 0
Q 1
Sistemas Digitais, 2ª chamada - 5/Jul/2000 (Prova A - Correcção) Página 6
NOME:_______________ 2ª CHAMADA - CORRECÇÃO____________________________TURMA � � � � � � � � � � � � � � �
LEEC - SD 1999/2000 ASG/JCA/AJA/JFS/JSC
5 - Considere o circuito síncrono da figura, realizado em torno de um contador binário 74x163 e de um descodificador 74x138
C L K
C L R
E N P
DCBA
Q DQ CQ BQA
74 x1 63
L D
E N T
CBA
G1G2AG2B
Y 0Y 1Y 2Y 3Y 4Y 5Y 6Y 7
74 x1 38
Vcc
Gnd
Vcc
clock
R C O
/CLR /LD ENT ENP QD QC QB QA QD* QC* QB* QA*
0 x x x x x x x 0 0 0 0
1 0 x x x x x x D C B A
1 1 0 x x x x x QD QC QB QA
1 1 x 0 x x x x QD QC QB QA
1 1 1 1 N (se N<15) N + 1
1 1 1 1 1 1 1 1 0 0 0 0
74x163 estadopr esent e
pr óx i moes t ado
G1 /G2A /G2B C B A /Y7 /Y6 /Y5 /Y4 /Y3 /Y2 /Y1 /Y0
0 x x x x x 1 1 1 1 1 1 1 1
x 1 x x x x 1 1 1 1 1 1 1 1
x x 1 x x x 1 1 1 1 1 1 1 1
1 0 0 0 0 0 1 1 1 1 1 1 1 0
1 0 0 0 0 1 1 1 1 1 1 1 0 1
1 0 0 0 1 0 1 1 1 1 1 0 1 1
1 0 0 0 1 1 1 1 1 1 0 1 1 1
1 0 0 1 0 0 1 1 1 0 1 1 1 1
1 0 0 1 0 1 1 1 0 1 1 1 1 1
1 0 0 1 1 0 1 0 1 1 1 1 1 1
1 0 0 1 1 1 0 1 1 1 1 1 1 1
74x138
a) Admitindo um estado inicial igual a QD,QC,QB,QA=0000, determine a sequência de valores que ocorrem nas saídas docontador.
No circuito apresentado, a entrada /CLR do contador é activada quando o estado presente é QD,QC,QB,QA=x110(ver tabela do descodificador 74x138). Admitindo o estado inicial igual a 0000 e como o 74x163 funciona comoum contador binário, a entrada /CLR será activada logo que é atingido o estado 0110, sendo o estado seguinteigual a 0000. Assim, a sequência nas saídas do contador será:
0000, 0001, 0010, 0011, 0100, 0101, 0110, 0000, 0001, ... /CLR é activado aqui, ^^^^
próximo estado é 0000
(ou em decimal: 0, 1, 2, 3, 4, 5, 6, 0, 1, 2 ...)
b) Utili zando apenas o contador 74x163 e o descodificador 74x138, modifique o circuito anterior de forma a obter um contadorque conte ciclicamente de 6 a 14, admitindo que o estado inicial é QD,QC,QB,QA=0110.
Admitindo que o estado inicial é QD,QC,QB,QA=0110 (6 emdecimal), é necessário utili zar o descodificador 74x138para detectar o valor máximo da sequência pretendida (14ou 1110 em binário), de forma a activar a entrada /LD docontador para carregar de novo o estado inicial 0110.Ligando os bits mais significativos das saídas do contador(QD,QC,QB) às entradas C,B,A do 74x138, o sinal /LDpretendido será a saída /Y7 do descodificador. Para queseja carregado o valor 0110 quando é activada a entrada/LD, é ainda necessário ligar as entradas D,C,B,A àsconstantes lógicas 1 e 0 apropriadas:
C L K
C L R
E N P
DCBA
Q DQ CQ BQA
74 x1 63
L D
E N T
CBA
G 1G 2 AG2B
Y 0
Y 1Y 2
Y 3Y 4
Y 5Y 6
Y 7
74 x1 38clock
R C O
Vcc
Gnd
Vcc
GndY7 é activado (0) quando o contadoratingir o estado 1110
Quando é atingido o estado 1110 éactivada a entrada /LD do contador
Quando é activado /LD, o contadorcarrega de novo o estado inicial 0110
Sistemas Digitais, 2ª chamada - 5/Jul/2000 (Prova A - Correcção) Página 7
NOME:_______________ 2ª CHAMADA - CORRECÇÃO____________________________TURMA � � � � � � � � � � � � � � �
LEEC - SD 1999/2000 ASG/JCA/AJA/JFS/JSC
6 - O circuito da figura representa um inversor CMOS cuja saída está ligada às entradas de N circuitos digitais do tipo X,conforme se mostra na figura. Cada entrada do circuito X pode ser representada pelo paralelo de uma resistência RL e umcondensador CL.
R LCL
Gnd
Vdd=5V
circuito XA
VoR L
CL. . .
N vezes
Vi
a) Explique justificando, de que forma o número N de circuitos do tipo X afecta os níveis lógicos na saída do inversor (ponto A)
O circuito equivalente à associação de N circuitos do tipo X em paralelo é representado por uma resistência RL/Nem paralelo com um condensador N.CL. Assim, os circuitos equivalentes para os 2 níveis lógicos são:
+
-
N.CL RL/N
ARP
5V
Nível lógico High
RN
Nível lógico Low
N.CL RL/N
A
Os níveis lógicos (estáticos) na saída do inversor dependem apenas da carga resistiva vista da sua saída. O nívellógico low não será afectado com o número de circuitos do tipo X ligados à saída do inversor, já que a tensão noponto A será sempre zero qualquer que seja N.
No nível lógico high, a tensão no ponto A será definida pelo divisor de tensão formado pela resistência equivalentedo transistor PMOS no estado de condução (RP na figura) e a resistência equivalente da associação em paralelode N circuitos do tipo X (RL/N na figura). Quando N aumenta RL/N diminui e consequentemente a tensão noponto A diminui reduzindo com isso a margem de ruído estática para o nível lógico alto.
b) Escreva a expressão que relaciona a constante de tempo associada ao tempo de subida da tensão Vo (no ponto A) com N, CL,RL e a resistência de condução do transistor PMOS, RP
A análise do tempo de subida da tensão no ponto A é feita sobre o circuito equivalente para o nível lógico alto. Aconstante de tempo associada ao tempo de subida neste circuito será o produto da capacidade equivalente N.CLpela resistência vista dos terminais do condensador (RL/N em paralelo com RP):
ττ = N.CL x ( RL/N // RP ) = N.CL x RL/N x RP / ( RL/N + RP)
-FIM -
Sistemas Digitais, 1ª chamada – 8/Jan/2001 (Prova A) Página 1 NOME:_________________________________________________________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/ASL/JSC
Departamento de Engenharia Electrotécnica e de Computadores
Sistemas Digitais (2000/2001) Correcção 1ª chamada – 8/Janeiro/2001 Duração: 2horas , sem consulta. Antes de iniciar a prova, tenha em atenção as seguintes recomendações: • Leia atentamente toda a prova antes de a iniciar. • Mostre e justifique adequadamente todos os passos das suas respostas. • A prova deverá ser resolvida no enunciado. Se necessário, utilize o verso para continuar a sua resolução. • Assine todas as folhas que entregar, indicando em cada uma o número de páginas/folhas que entregou. 1 - Considere a sequência de dígitos 101 a) Diga qual é o seu valor se essa sequência representar: i) um número inteiro em base 8.
Se 101 representar um número inteiro em base 8, então o seu valor é 1x82+0x81+1x80 = 65 ii) um número inteiro em base 16 com 9 bits e complemento para dois.
Se 101 representar um número em base 16, então podemos escrever a sua representação em binário substituindo cada dígito hexadecimal pela representação binária correspondente:
10116 = 0001000000012
Se é dito que o número dado tem 9 bits, então deveremos desprezar os 3 bits (zeros) da esquerda ficando apenas:
10116 = 1000000012
Como é também dito que 10116 representa um número em complemento para dois, então podemos concluir que o número é negativo (o bit mais significativo é 1) e o seu valor absoluto é obtido calculando o seu simétrico (que é complemento para dois do número dado):
-1000000012 = 011111110 + 1 = 01111111 = 255
Assim, se 10116 representar um número com 9 bits em complemento para dois , o seu valor é -255
b) Determine o número com 6 bits representado em complemento para dois, que adicionado ao número 01001 representado
em complemento para dois com 5 bits, dá o resultado -2. Efectue as operações aritméticas em binário que achar convenientes (utilize o verso da folha).
Sistemas Digitais, 1ª chamada – 8/Jan/2001 (Prova A) Página 2 NOME:_________________________________________________________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/ASL/JSC
Pretendemos calcular um valor X tal que X+Y=-2, onde Y é o número binário 01001. Se é dito que X deve ser um número com 6 bits em complemento para dois, deveremos transformar os operandos Y e –2 para esse formato: Y = 01001 = 001001 (é positivo, a extensão de sinal acrescenta um zero) -2 = -000010 = 111101 + 1 = 111110 Assim, o número pedido X pode ser obtido como: X = -2 – Y = 111110 – 001001 111110 -001001
110101
O valor pedido X é 110101 (representa a quantidade –11)
2 a) Considere a função booleana F(A,B,C,D) que assume ‘1’ quando ABCD representa valores múltiplos de 2, e a função
G(A,B,C,D) que assume ‘1’ quando ABCD representa valores múltiplos de 3 (A é o bit mais significativo e D o bit menos significativo). Apresente uma expressão simplificada na forma produto-de-somas para a função Z=F+G (soma lógica das funções F e G) (se necessário utilize o verso da folha).
A função pedida Z(A,B,C,D) pode ser representada directamente no mapa de Karnaugh, preenchendo uns nas posições correspondentes aos minterms cujo número é múltiplo de 2 ou de 3. Tenha em atenção a ordenação dos minterms no mapa, de acordo com a disposição das variáveis representada. Como se pretende obter uma expressão minimizada na forma produto-de-somas, agrupam-se os zeros da forma representada no mapa:
CDAB A
B
C
D
1
0
1
3
2
4
5
7
6
12
13
15
14
8
9
11
10
1
1
1
1
1
1
1
1
1
0
0 0 0
00
(A+B+C)
(B'+D'+C)
(A+B'+D')
(A'+B+C'+D')
A expressão mínima produto-de-somas será então:
Z(A,B,C,D) = (A+B+C).(A+B’+D’).(B’+D’+C).(A’+B+C’+D’) b) Considere agora uma função H idêntica a Z, excepto no termo ABCD=1111 em que é indiferente (don’t care). Construa
um circuito minimizado utilizando apenas portas lógicas NOR de 2 ou 3 entradas que realize a função H(A,B,C,D) (utilize o verso da folha)
Sistemas Digitais, 1ª chamada – 8/Jan/2001 (Prova A) Página 3 NOME:_________________________________________________________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/ASL/JSC
Para construir um circuito que contenha apenas portas lógicas NOR (com 2 ou 3 entradas), é conveniente começar por desenhar o circuito minimizado do tipo OR-AND, obtido da expressão mínima do tipo produto-de-somas. Se o termo 15 (ABCD=1111) for indiferente podemos agrupar os zeros no mapa de Karnaugh da forma seguinte:
CDAB A
B
C
D
1
0
1
3
2
4
5
7
6
12
13
15
14
8
9
11
10
1
1
1
1
1
1
1
d
1
0
0 0 0
00
(A+B+C)
(B'+D')
(A'+C'+D')
A nova expressão do tipo POS é:
Z(A,B,C,D) = (A+B+C).(A’+C’+D’).(B’+D’)
O circuito do tipo OR-AND que realiza esta função é:
A'C'D'
ABC
B'
D'
Z(A,B,C,D)
e o circuito equivalente só com portas NOR de duas ou 3 entradas é:
ACD
ABC
Z(A,B,C,D)
Sistemas Digitais, 1ª chamada – 8/Jan/2001 (Prova A) Página 4 NOME:_________________________________________________________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/ASL/JSC
3 – Pretende-se projectar o sistema de controlo do nível de água de um tanque para abastecimento público. O sistema tem uma saída AGUA que quando é activada (nível lógico alto) abre uma válvula de entrada de água. Para controlar o nível de água dispõe-se de duas entradas NMAX e NMIN provenientes de sensores de nível de água, que são activadas (nível lógico alto) quando o nível no tanque se torna, respectivamente, maior do que o nível máximo N2 ou menor do que o nível mínimo N1. O sistema dispõe ainda de duas entradas ligadas a um botão de arranque (START) para iniciar o funcionamento do sistema e a um botão de paragem (STOP) para o desligar. Estas entradas tomam o valor lógico alto quando os botões respectivos são pressionados. Para controlar o nível de água no tanque, mantendo-o entre N1 e N2, deve-se abrir a válvula de entrada de água sempre que o nível de água no tanque for inferior a N1, e fechar quando for ultrapassado o nível N2. Complete o diagrama de transição de estados do sistema descrito, utilizando apenas os estados já representados e os nomes simbólicos referidos no texto para as entradas e saída.
init
AB
START=1
START=0
AGUA=0
STOP=1
STOP=1AGUA=0
NMAX=0
NMAX=1
NMIN=0
NMIN=1 AGUA=1
NMAX
NMIN
AGUA
FSM
START
STOP
CLOCK
sensor do nível máximo (N2)
sensor do nível mínimo (N1)
válvula abre quando AGUA é '1'
tanque de água
entrada de água
nível de água
Sistemas Digitais, 1ª chamada – 8/Jan/2001 (Prova A) Página 5 NOME:_________________________________________________________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/ASL/JSC
4 – O diagrama de transição de estados da figura representa uma máquina de Moore com uma entrada X e uma saída S. A saída S toma o valor 1 quando, em 3 estados consecutivos, é detectada na entrada X a sequência 010. A sequência a detectar pode ser parcialmente sobreposta da forma que se exemplifica na figura:
Entarda X: 0 0 1 0 1 0 1 1 0 1 0 0
Saída S: 0 0 0 1 0 1 0 0 0 0 1 0
init A B
X=0
C
X=0
X=0
X=0X=1
X=1
X=1
X=1S=0 S=0
S=0 S=1
a) Construa a tabela de transição de estados, atribuindo uma codificação apropriada aos estados.
Utilizando primeiro os nomes simbólicos atribuídos aos estados, a tabela de transição pedida é:
próximo estadoestado actual X=0 X=1 saída S init A init 0 A A B 0 B C init 0 C A B 1
Codificando agora os estados como: init=00, A=01, B=10 e C=11, serão necessários 2 flip-flops do tipo D e a tabela de transição de estados fica:
próximo estado
estado actual Q1* Q0* Q1 Q0 X=0 X=1 saída S 0 0 0 1 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 1 1 0 1
Sistemas Digitais, 1ª chamada – 8/Jan/2001 (Prova A) Página 6 NOME:_________________________________________________________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/ASL/JSC
b) Desenhe o esquema do circuito lógico que implementa a máquina de estados, utilizando flip-flops do tipo D. (utilize o verso da folha)
Partindo da tabela de transição de estados construída na alínea anterior, vamos obter expressões minimizadas para as funções Q1* e Q0* na forma soma-de-produtos. Note que pela tabela de transição de estados pode ver-se facilmente que a saída S é apenas a função lógica AND das variáveis de estado Q1 e Q0:
XQ1Q0 Q1
X
0
1
2
3
6
7
4
51
1
1
Q0.XQ0
Q1.Q0'.X'
XQ1Q0 Q1
X
0
1
2
3
6
7
4
5
1
Q0
X'1 1 1
Q1*(Q1,Q0,X)
Q0*(Q1,Q0,X)
Q0*(Q1,Q0,X) = X'
Q1*(Q1,Q0,X) = Q0.X + Q1.Q0'.X'
um circuito lógico que realiza esta máquina de estados é:
D Q
D QQ1* Q1
Q0* Q0
X
S
clock
Sistemas Digitais, 1ª chamada – 8/Jan/2001 (Prova A) Página 7 NOME:_________________________________________________________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/ASL/JSC
5 – a) Construa um circuito síncrono baseado num contador do tipo up/down (74x169) e em circuitos lógicos adicionais capaz de
gerar, nas saídas QD,QC,QB,QA do contador, a seguinte sequência de valores (admitindo que o estado inicial é igual a QD,QC,QB,QA=0000):
0, 1, 2, 3, 4, 5, 10, 9, 8, 3, 4, 5, 10, 9, ....
UP/DWN /LD /ENT /ENP QD QC QB QA QD* QC* QB* QA*
x 0 x x x x x x D C B A
x 1 1 x x x x x QD QC QB QA
x 1 x 1 x x x x QD QC QB QA
1 1 0 0 N (se N<15) N + 1
0 1 0 0 N (se N>0) N - 1
1 1 0 0 1 1 1 1 0 0 0 0
0 1 0 0 0 0 0 0 1 1 1 1
74x169 estadopresente
próximoestado
CLKUP/DWN
ENP
DCBA
QDQCQBQA
74x169
LD
ENT
RCO
Sistemas Digitais, 1ª chamada – 8/Jan/2001 (Prova A) Página 8 NOME:_________________________________________________________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/ASL/JSC
Analisando a sequência pretendida, representada em binário:
0 0 0 0 01 0 0 0 12 0 0 1 03 0 0 1 14 0 1 0 05 0 1 0 110 1 0 1 09 1 0 0 18 1 0 0 03 0 0 1 14 0 1 0 05 0 1 0 110 1 0 1 09 1 0 0 1 . . .
conta para baixo
conta para cima
load 1010 quando saída é 0101
load 0011 quando saída é 1000
conta para cima
load 1010 quando saída é 0101
podemos concluir o seguinte:
1 – o bit mais significativo (QD) define o sentido da contagem: quando QD=0 conta para cima e quando QD=1 conta para baixo. Podemos por isso controlar a entrada UP/DWN com o sinal QD negado. 2 – são efectuadas duas operações load: quando a saída é 0101 é carregado o valor 1010 e quando é 1000 é carregado 0011. Analisando a relação entre os valores que provocam o load e os valores carregados para o contador podemos concluir que em ambos os casos QD*=QD’, QA*=QA’, QC=0 e QB=1.
O circuito pretendido é o seguinte:
CLK
UP/DWN
ENP
DCBA
QDQCQBQA
74x169
LD
ENT
RCO
Gnd(0V)
Vcc (5V)
Load
QD'
QA'
Sistemas Digitais, 1ª chamada – 8/Jan/2001 (Prova A) Página 9 NOME:_________________________________________________________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/ASL/JSC
b) Modifique o circuito que construiu por forma a que as saídas do contador sejam reiniciadas com o valor 3 sempre que for
atingido um estado não pertencente à sequência especificada em a) (utilize o verso da folha).
Os estados não pertencentes à sequência de contagem são: 6, 7, 11, 12, 13, 14, 15. Quando aparecer na saída do contador um desses estados, deve ser feito um load com o valor 3, caso contrário deve ser seguida a operação descrita acima.
Vamos começar por construir um circuito que detecte um dos estados fora da sequência normal (função LOAD3):
QB QA
QD QC QD
QC
QB
QA
0
1
3
2
4
5
7
6
12
13
15
14
8
9
11
10
1
1
1
1
1
1
10
0
00 0
00
0
0
QD.QC
QC.QB
QA.QB.QD
LOAD3 = QD.QC + QA.QB.QD + QC.QB
Como a operação normal do circuito também utiliza a operação de load, é necessário utilizar um mulitplexer para escolher o valor a carregar no contador: quando é um load “normal”, é carregado o valor definido pelo circuito construído na alínea anterior; quando acontece o load devido a estado inválido deve ser escolhido o valor 3. Um circuito que realiza esta funcionalidade é (apenas se mostram as alterações ao circuito apresentado na alínea anterior).
CLK
UP/DWN
ENP
DCBA
QDQCQBQA
74x169
LD
ENT
RCO
Load3
QCQD
QCQB
QAQBQD
(load do circuito anterior)
S
QD'
QA'
0011
01
S=0
S=1
4 multiplexers 2-1
Sistemas Digitais, 1ª chamada – 8/Jan/2001 (Prova A) Página 10 NOME:_________________________________________________________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/ASL/JSC
6 – Considere o circuito da figura, baseado num shift-register 74x194.
a) Admitindo o estado inicial QA,QB,QC,QD=0000, determine a sequência (em binário) produzida nas saídas QA,QB,QC,QD.
Pela configuração das entradas S1 e S0 do shift-register podemos concluir que é sempre efectuado um deslocamento para a esquerda (shift-left), sendo os bits que entram na entrada LIN definidos pela equação:
LIN = QD’ . (QA ⊕ QB)’
A sequência produzida nas saídas é:
QA QB QC QD LIN 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1
0125
10680
(decimal)
CLK
CLRS1S0LIN
RIN
DCBA
QDQCQBQA
74x194
Gnd (0V)
Vcc (5V)
clock
função S1 S0 QA* QB* QC* QD*
holdshift rightshift leftload
0 00 11 01 1
QA QB QC QDRIN QA QB QCQB QC QD LINA B C D
Universal Shift-register 74x194
Sistemas Digitais, 1ª chamada – 8/Jan/2001 (Prova A) Página 11 NOME:_________________________________________________________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/ASL/JSC
b) Modifique o circuito apresentado de forma a acrescentar-lhe uma entrada X, activa no nível lógico alto, que permita
reinicializar as saídas com o valor QA,QB,QC,QD=1111.
Para iniciar as saídas com 1111, basta colocar as entradas QA,QB,QC,QD com 1111 e ligar a entrada X à entrada S0 (note que a operação Load é seleccionada quando S1=1 e S0=1). O circuito resultante é:
CLK
CLRS1S0LIN
RIN
DCBA
QDQCQBQA
74x194
Gnd (0V)
Vcc (5V)
clock
X
- FIM -
Sistemas Digitais, 2ª chamada – 25/Jan/2001 (ProvaB) Página 1 NOME:_________________________________________________________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/ASL/JSC
Departamento de Engenharia Electrotécnica e de Computadores
Sistemas Digitais (2000/2001) Correcção 2ª chamada – 25/Janeiro/2001 Duração: 2horas , sem consulta. Antes de iniciar a prova, tenha em atenção as seguintes recomendações: • Leia atentamente toda a prova antes de a iniciar. • Mostre e justifique adequadamente todos os passos das suas respostas. • A prova deverá ser resolvida no enunciado. Se necessário, utilize o verso para continuar a sua resolução. • Assine todas as folhas que entregar, indicando em cada uma o número de páginas/folhas que entregou. 1 - Considere X=110100112 e Y=E716 que representam números inteiros com sinal em complemento para dois com 8 bits. a) Diga, justificando, se pode ocorrer overflow na adição de X com Y.
Na adição de dois números representados em complemento para dois, só pode ocorrer overflow se os dois números tiverem o mesmo sinal. Como o número X=11010011 é negativo e o número Y=E716=111001112 também é negativo, então pode ocorrer overflow na soma desses números.
b) Efectue a adição de X com Y em binário, e indique se ocorre ou não overflow.
11010011 +11100111 110111010
O resultado da adição de X com Y é o número 10111010. Como ambos os operandos são negativos e o resultado também é negativo, pode-se concluir que não ocorreu overflow e o resultado (correcto!) da adição de X com Y é 10111010.
c) Qual é o maior número negativo representado em complemento para 2 com 8 bits que adicionado ao número X provoca
overflow? Justifique.
Como o número X é negativo, só pode ocorrer overflow quando X é adicionado com outro número negativo, dando um resultado que é menor (mais negativo) do que o mais negativo que pode ser representado. Como o número mais negativo que pode ser representado em complemento para dois com 8 bits é -2(8-1)=-128=100000002, então o maior número negativo M que adicionado com X ainda não provoca overflow será dado por X+M =(-128) ou M = -128-X:
10000000 (-128) -11010011 ( -45) 1 10101101 ( -83)
Logo, o número pedido será obtido subtraindo uma unidade a M:
M-1=-83-1=-84 = 10101100
Sistemas Digitais, 2ª chamada – 25/Jan/2001 (ProvaB) Página 2 NOME:_________________________________________________________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/ASL/JSC
2 Considere a função booleana F(A,B,C,D) representada no seguinte mapa de Karnaugh, onde os termos indiferentes (don’t care) estão representados por d.
CDAB A
B
C
D
1 1 0 0
1
1
11
d
0 0 0
d d
1d
CDAB A
B
C
D
1 1 0 0
1
1
11
d
0 0 0
d d
1d
a) Escreva as expressões simplificadas na forma de soma-de-produtos e produto-de-somas para a função F(A,B,C,D) (utilize um mapa de Karnaugh para obter cada expressão).
CDAB A
B
C
D
1 1 0 0
1
1
11
d
0 0 0
d d
1d
A'.D'
C
A'.B
CDAB A
B
C
D
1 1 0 0
1
1
11
d
0 0 0
d d
1d
A'+C
D'+B
Expressão mínima soma-de-produtos: F(A,B,C,D) = A’.D’ + A’.B + C Expressão mínima produto-de-somas: F(A,B,C,D) = (A’+C).(D’+B)
b) Desenhe um circuito lógico que realize a função F(A,B,C,D) utilizando um número mínimo de portas lógicas do tipo
NAND de duas entradas, ou de portas lógicas do tipo NOR de duas entradas. Pelas expressões mínimas obtidas na alínea anterior, pode-se concluir que o circuito mais simples com portas NAND ou NOR resultará da expressão mínima produto-de-somas. O circuito OR-AND correspondente a essa expressão é:
A'
C
B
D'
F(A,B,C,D)
Transformando-o de forma a conter apenas portas lógicas do tipo NOR com duas entradas:
A
C
DB
F(A,B,C,D)
Sistemas Digitais, 2ª chamada – 25/Jan/2001 (ProvaB) Página 3 NOME:_________________________________________________________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/ASL/JSC
3 – Pretende-se projectar o sistema de controlo de um monta-cargas que se desloca entre dois andares (ver figura). Para controlar o monta-cargas dispõe-se das seguintes entradas para o sistema de controlo:
- um botão no interior do monta-cargas (MOVER) que é activado para deslocar o monta-cargas para o outro andar.
- dois botões exteriores de chamada, um em cada andar
(CHAMA_DESCER e CHAMA_SUBIR), que são activados quando se pretende deslocar o monta-cargas para o andar respectivo.
- dois sensores (NO_ANDAR1 e NO_ANDAR2) que são
activados sempre que o monta-cargas está correctamente posicionado no andar respectivo.
e das saídas do sistema de controlo:
- MOTOR_SUBIR e MOTOR_DESCER que quando activadas provocam o movimento do monta-cargas no sentido respectivo
Admita que o sistema de controlo só aceita comandos provenientes dos botões quando o monta-cargas está parado num dos andares. Complete o diagrama de transição de estados do sistema descrito, utilizando apenas os estados já representados e os nomes simbólicos referidos no texto para as entradas e saídas.
NOTA: O diagrama de estados incompleto apresentado no enunciado original tinha um erro: as duas transições de estado apresentadas tinham associada a condição CHAMA_SUBIR=0 e CHAMA_SUBIR=1, quando deveria ser CHAMA_DESCER=0 e CHAMA_DESCER=1 como se mostra na figura abaixo.
PARADO1 PARADO2
DESCER SUBIR
MOVER=1 ouCHAMA_DESCER=1
MOVER=0 eCHAMA_DESCER=0
MOVER=1 ouCHAMA_SUBIR=1
MOVER=0 ouCHAMA_SUBIR=0
NO_ANDAR2=0
NO_ANDAR2=1NO_ANDAR1=1
NO_ANDAR1=0
MOTOR_SUBIR=1MOTOR_DESCER=0
MOTOR_SUBIR=0MOTOR_DESCER=1
MOTOR_SUBIR=0MOTOR_DESCER=0
MOTOR_SUBIR=0MOTOR_DESCER=0
NO_ANDAR2
NO_ANDAR1
CHAMA_SUBIR
CHAMA_DESCER MOVER
MOTOR_SUBIRMOTOR_DESCER
Sistemas Digitais, 2ª chamada – 25/Jan/2001 (ProvaB) Página 4 NOME:_________________________________________________________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/ASL/JSC
4 – O diagrama de transição de estados da figura representa uma máquina de Moore com uma entrada X e uma saída S.
init
A
B
X=0C
X=1
X=1
X=0
S=0
S=0 S=0
S=1X=1
X=0X=0
X=1
a) Construa a tabela de transição de estados, atribuindo uma codificação apropriada aos estados.
Utilizando primeiro os nomes simbólicos atribuídos aos estados, a tabela de transição pedida é:
próximo estadoestado actual X=0 X=1 saída S init init A 0 A B A 0 B init C 0 C B A 1
Codificando agora os estados como: init=00, A=01, B=10 e C=11, serão necessários 2 flip-flops do tipo D e a tabela de transição de estados fica:
próximo estado
estado actual Q1* Q0* Q1 Q0 X=0 X=1 saída S 0 0 0 0 0 1 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 1 1 1 0 0 1 1
Sistemas Digitais, 2ª chamada – 25/Jan/2001 (ProvaB) Página 5 NOME:_________________________________________________________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/ASL/JSC
b) Desenhe o esquema do circuito lógico que implementa a máquina de estados, utilizando flip-flops do tipo D.
Partindo da tabela de transição de estados construída na alínea anterior, vamos obter as equações de excitação dos dois flip-flops, como expressões do tipo soma-de-produtos:
XQ1Q0 Q1
X
0
1
2
3
6
7
4
5
1
1
1
Q0.X'
Q0
Q1.Q0'.X
XQ1Q0 Q1
X
0
1
2
3
6
7
4
51
Q0
X1 1 1
Q1*(Q1,Q0,X)
Q0*(Q1,Q0,X)
Q0*(Q1,Q0,X) = X
Q1*(Q1,Q0,X) = Q0.X' + Q1.Q0'.X
Q0Q1
Q0
0
1
2
3
Q1
Q1.Q0
1
S(Q1,Q0)
S(Q1,Q0) = Q1.Q0
um circuito lógico que realiza esta máquina de estados é:
D Q
D QQ1* Q1
Q0* Q0
X
S
clock
Sistemas Digitais, 2ª chamada – 25/Jan/2001 (ProvaB) Página 6 NOME:_________________________________________________________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/ASL/JSC
5 – a) Construa um circuito síncrono baseado num contador binário (74x163) e em circuitos lógicos adicionais capaz de gerar,
nas saídas QD,QC,QB,QA do contador, a seguinte sequência de valores (admitindo que o estado inicial é igual a QD,QC,QB,QA=0000):
0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 0, 1, 2, ...
/CLR /LD ENT ENP QD QC QB QA QD* QC* QB* QA*
0 x x x x x x x 0 0 0 0
1 0 x x x x x x D C B A
1 1 0 x x x x x QD QC QB QA
1 1 x 0 x x x x QD QC QB QA
1 1 1 1 N (se N<15) N + 1
1 1 1 1 1 1 1 1 0 0 0 0
74x163 estadopresente
próximoestado
CLK
CLR
ENP
ABCD
QDQCQBQA
74x163
LD
ENT
RCO
Analisando a sequência pretendida, representada em binário:
0 0 0 0 01 0 0 0 12 0 0 1 03 0 0 1 14 0 1 0 05 0 1 0 16 0 1 1 07 0 1 1 110 1 0 1 011 1 0 1 112 1 1 0 00 0 0 0 01 0 0 0 12 0 0 1 0 . . .
carrega 1010 quando saída é 0111
carrega 0000 (reset) quando saída é 1100
podemos concluir o seguinte:
1 – quando as saídas apresentam o estado 0111 deve ser activada a entrada LD, mantendo as entradas DCBA ligadas permanentemente a 1010.
2 – quando as saídas apresentam o estado 1100 deve ser activada a entrada CLR para iniciar as
saídas com 0000
O circuito pretendido é o seguinte:
CLK
CLR
ENP
ABCD
QDQCQBQA
74x163
LD
ENT
RCO
Gnd(0V)
Vcc (5V)
load
reset
Sistemas Digitais, 2ª chamada – 25/Jan/2001 (ProvaB) Página 7 NOME:_________________________________________________________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/ASL/JSC
b) Modifique o circuito que construiu, acrescentando-lhe uma entrada X por forma a que quando X=0 é mantida a sequência
de contagem anterior, e quando X=1 passa a ser gerada a sequência:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 1, 2, ...
Para obter a nova sequência de contagem, basta desactivar o sinal de carregamento do contador quando X=1, e manter a mesma função do circuito anterior quando X=0. Uma solução consiste em acrescentar, na porta NAND que produz o sinal de load, uma entrada ligada a X’: quando X=0, X’=1 e esse NAND produz a mesma função realizada no circuito anterior; quando X=1 (X’=0), o sinal load fica permanentemente igual a 1 (desactivado) e nunca é efectuado o carregamento do contador. O circuito resultante é:
CLK
CLR
ENP
ABCD
QDQCQBQA
74x163
LD
ENT
RCO
Gnd(0V)
Vcc (5V)
load
reset
X
Sistemas Digitais, 2ª chamada – 25/Jan/2001 (ProvaB) Página 8 NOME:_________________________________________________________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/ASL/JSC
6 – Pretende-se construir uma máquina de estados com uma saída Z que é ‘1’ quando os 4 últimos bits consecutivos colocados na sua entrada X são 1011 (ver exemplo). Após o início do funcionamento da máquina de estados a saída Z só é considerada válida após o 4º ciclo de relógio.
Entrada X: 00011011011001011000 Saída Z: xxxx0001001000001000
a) Desenhe um circuito baseado num shift-register 74x194 e em circuitos lógicos adicionais capaz de realizar a
funcionalidade pretendida para a máquina de estados.
função S1 S0 QA* QB* QC* QD*
holdshift rightshift leftload
0 00 11 01 1
QA QB QC QDRIN QA QB QCQB QC QD LINA B C D
Universal Shift-register 74x194
O circuito pretendido pode ser construído ligando o shift-register em configuração shift-left (S1=1, S0=0) e um comparador com a constante 1011 nas saídas do shift-register (uma porta AND com uma entrada negada), ligando a entrada X à entrada LIN do shift-register. Em cada transição de relógio os valores lógicos presentes na entrada X são deslocados para as saídas QD~QA, e a saída Z é activada com 1 sempre que nas saídas aparecer 1011:
X
clock
Gnd(0V)
Vcc (5V)
CLK
CLRS1S0LIN
RIN
DCBA
QDQCQBQA
74x194
Z
Sistemas Digitais, 2ª chamada – 25/Jan/2001 (ProvaB) Página 9 NOME:_________________________________________________________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/ASL/JSC
b) Admita agora que a máquina de estados só deve detectar sequências não sobrepostas (ver exemplo). Modifique o circuito
anterior por forma a satisfazer este novo requisito (sugestão: é possível realizar este circuito sem introdução de novos circuitos lógicos ao circuito pedido na alínea anterior).
Entrada X: 00011011011001011000 Saída Z: xxxx0001000000001000
Para que apenas sejam detectadas sequências1011 não sobrepostas, deve ser “apagada” a história dos bits anteriores sempre que for detectada uma sequência válida (1011). Uma forma de conseguir este comportamento consiste em limpar (carregar zero) nas saídas do shift-register, o que pode ser conseguido activando a entrada CLR sempre que Z=1. No entanto, como CLR é activo no nível lógico baixo, isso obriga a utilizar um inversor para negar Z. Para não gastar mais circuitos lógicos do que os usados na solução anterior, podemos realizar um load com 0000 (em vez de actuar a entrada CLR), ligando a saída Z à entrada S0: quando Z=0 é feito o shift-left ( S1=1 e S0=0); quando é detectada a sequência 1011 a saída Z fica com 1 e é realizado o load(S1=1, S0=1) com 0000. O circuito resultante fica:
X
clock
Gnd(0V)
Vcc (5V)
CLK
CLRS1S0LIN
RIN
DCBA
QDQCQBQA
74x194
Z
- FIM -
Sistemas Digitais, 1ª chamada – 26/Junho/2001 (Prova A) Página 1 NOME:________CORRECÇÃO________________________________________________________TURMA ___________
LEEC - SD 2000/2001 ASG/JCA/AJA
Departamento de Engenharia Electrotécnica e de Computadores
Sistemas Digitais (2000/2001) 1ª chamada – 26/Junho/2001 Duração: 2horas , sem consulta. Antes de iniciar a prova, tenha em atenção as seguintes recomendações: • Leia atentamente toda a prova antes de a iniciar. • Mostre e justifique adequadamente todos os passos das suas respostas. • A prova deverá ser resolvida no enunciado. Se necessário, utilize o verso para continuar a sua resolução. • Assine todas as folhas que entregar, indicando em cada uma o número de páginas/folhas que entregou. 1 - Pretende-se construir um sistema electrónico para prever o estado do tempo com base na medida da variação de pressão atmosférica verificada nas últimas 6 horas. O sistema é formado por um sensor de pressão atmosférica com saída digital Pa, um sistema de memória que armazena o historial da pressão e fornece, em cada instante, o valor da pressão atmosférica P6h existente há 6 horas, e um circuito subtractor para calcular a variação de pressão Vp.
a) Sabendo que a pressão atmosférica Pa medida pelo sensor de pressão (em mBar) é positiva e nunca ultrapassa o valor 110010, diga, justificando, qual é o número mínimo de bits necessários para representar essa grandeza.
Como o valor de pressão que se pretende representar apenas assume valores positivos, bastará utilizar a representação binária de números positivos. Como com N bits é possível representar números inteiros positivos entre 0 e 2N-1, deveremos determinar um número (inteiro) N que satisfaça a inequação:
1100 <= 2N-1 donde se tira: N >= log2(1100+1), N inteiro
N = 11 (ou 211-1=2047) Note que não necessita de calcular log2(1101)! Basta saber de cor a “tabuada” das potências inteiras de dois: log2(2048) = 11, ou 211=2048. b) Sabendo que a variação de pressão Vp (positiva ou negativa) nunca excede 40 mBar em valor absoluto, indique,
justificando, qual o número mínimo de bits necessário para representar, em complemento para dois, essa variação de pressão.
A variação de pressão Vp pode assumir valores no intervalo [-40, +40] e deverá ser representada em complemento para dois. Como com N bits podemos representar números com sinal em complemento para dois entre [-2N-1,+2N-1-1], o menor número de bits que permite representar o intervalo pretendido é 7: -27-1=-64 e +27-1-1=+63
c) Sabendo que o valor actual de pressão é 923 mBar e há 6 horas atrás era de 957 mBar, obtenha o valor da variação de
pressão (pressão actual Pa menos a pressão há 6 horas atrás P6h) efectuando a operação de subtracção em binário e tendo em conta as respostas dadas nas alíneas anteriores. Nota: 92310 = 11100110112 e 95710 = 11101111012.
Realizando a operação de subtracção em binário em 10 bits (note que basta realizar a operação de subtracção em 10 bits porque os dois valores são inferiores a 1024) obtemos:
1110011011 -1110111101 1111011110
Como o resultado deverá ser representado em 7 bits (ver b)), então o valor da variação de pressão pretendido são os 7 bits menos significativos do resultado da subtracção realizada acima: 1011110 (-34)
sensorde
pressão
sistemade
memória
subtractorVpPa
P6h
Sistemas Digitais, 1ª chamada – 26/Junho/2001 (Prova A) Página 2 NOME:________CORRECÇÃO________________________________________________________TURMA ___________
LEEC - SD 2000/2001 ASG/JCA/AJA
2 - Considere um circuito que realiza a operação de multiplicação por 3 de um número positivo de 4 bits representado por D3D2D1D0 compreendido entre 0 e 9, como se mostra na figura:
X3
D3D2D1D0
P3P2P1P0
P4
a) Construa a tabela de verdade que traduz a funcionalidade prevista para o circuito. Como se pretende que o circuito produza o resultado da multiplicação por 3 de números de 4 bits entre 0 e 9, então podemos considerar que as saídas P4~P0 são indiferentes (x na tabela) quando as entradas D3~D0 representam números superiores a 9:
P3 P2 P1 P0P4D3 D2 D1 D0
0 0 0 0 0 0 0 0 00 0 0 1 0 0 0 1 10 0 1 0 0 0 1 1 00 0 1 1 0 1 0 0 10 1 0 0 0 1 1 0 00 1 0 1 0 1 1 1 10 1 1 0 1 0 0 1 00 1 1 1 1 0 1 0 11 0 0 0 1 1 0 0 01 0 0 1 1 1 0 1 11 0 1 0 x x x x x1 0 1 1 x x x x x1 1 0 0 x x x x x1 1 0 1 x x x x x1 1 1 0 x x x x x1 1 1 1 x x x x x
b) Obtenha as expressão simplificadas na forma de soma-de-produtos para a função P4(D3,D2,D1,D0), e na forma de
produto-de-somas para a função P2(D3,D2,D1,D0).
D3D2
D1D0
D3
D2
00 01 11 10
00
01
11
10
D1
D0
D3D2
D1D0
D3
D2
00 01 11 10
00
01
11
10
D1
D01
1
1
1
x
x
x
x
x
x
D3
D2.D1
P4:
x
x
x
x
x
x
0
0
0
0
0
0
(D2+D1)
(D2+D0')
(D1'+D2'+D0)
P2:
P4 = D2.D1 + D3 P2 = (D2+D1) . (D2+D0') . (D1'+D2'+D0)
Sistemas Digitais, 1ª chamada – 26/Junho/2001 (Prova A) Página 3 NOME:________CORRECÇÃO________________________________________________________TURMA ___________
LEEC - SD 2000/2001 ASG/JCA/AJA
3 – A firma Caricas&caricas Lda. pretende projectar o sistema de controlo para uma máquina de fabrico de cápsulas para garrafas de cerveja (caricas), cortando rodelas de uma tira de metal por acção de uma prensa cortante. A tira de metal desloca-se sob a prensa por acção de um par de rolos accionados por um motor, que é ligado colocando o sinal de controlo MOTOR com o nível lógico 1. Para localizar a tira metálica sob a prensa existem dois sensores fotoeléctricos (S1 e S2) colocados como se indica na figura, que são activados (valor lógico 1) sempre que é interrompido o feixe luminoso emitido pelos LEDs L1 e L2 (estes LEDs podem estar sempre ligados e não é necessário que sejam comandados pelo sistema de controlo). O sensor S1 detecta a presença da tira metálica imediatamente antes da prensa e S2 detecta o metal imediatamente após a prensa. A prensa é actuada por um sinal de controlo (PRENSA) sempre que se detecte que existe tira de metal ainda não cortada debaixo da prensa. Quando PRENSA é actuado (valor lógico 1), a prensa desce cortando uma rodela de metal, subindo automaticamente por acção de um sistema pneumático. Para verificar o estado da prensa, existe um sensor PRENSA_SUBIDA que apresenta o valor lógico 1 quando a prensa está na posição superior, pronta para realizar novo corte. O sistema de controlo deve posicionar a tira metálica sob a prensa, accionar a prensa para cortar uma rodela de metal, esperar que a prensa volte à posição superior e voltar a colocar correctamente a tira de metal por forma a cortar nova rodela. O processo é repetido da maneira que se ilustra na figura seguinte, até que a tira metálica chegue ao fim, altura em que o sistema de controlo deve parar. Admite-se que quando o sistema é ligado não existe chapa de metal sob a prensa (S1=0 e S2=0).
S1=1 S2=1S1=1S1=1 S2=1S2=0
Acabou de cortar Desloca para o próximo corte Corta nova rodela Complete o diagrama de estados apresentado na figura da próxima página que descreve o funcionamento do sistema de controlo.
PRENSAPRENSA_SUBIDA
PRENSA
MOTOR
S2S1
LEDs
sensoresfotoeléctricos buracos
na chapa
sentido de deslocamento da chapa
Sistemas Digitais, 1ª chamada – 26/Junho/2001 (Prova A) Página 4 NOME:________CORRECÇÃO________________________________________________________TURMA ___________
LEEC - SD 2000/2001 ASG/JCA/AJA
3 - (continuação)
INIT
PARA
S1=0ouS2=0
S1=1eS2=1
CORTA SUBIDAPRENSA_SUBIDA=0
MOTOR
PRENSA_SUBIDA=1S2=1
MOTOR2
S2=0
S2=0
S2=1
MOTOR=1
PRENSA=1
MOTOR=1
MOTOR=1
S1=0
S1=0
No inicio liga o motor atea chapa metalica estarcorrectamente colocada sob a prensa
Activando o sinal PRENSA, e' cortada umarodela da chapa
Espera que a prensa chegue 'a posiçao superior
Quando a prensa chega 'a posiçao superiorliga o motor espera ate' S2=0; se entretanto S1=0significa que a chapa acabou e para o sistema.
Quando S2=0 foi detectado o buraco na chapa;o motor deve permanecer ligado ate' queS2 seja novamente 1 (chapa posicionada)
Acabou a chapa, para o sistema
Depois de cortar passa incondicionalmente parao estado SUBIDA
Sistemas Digitais, 1ª chamada – 26/Junho/2001 (Prova A) Página 5 NOME:________CORRECÇÃO________________________________________________________TURMA ___________
LEEC - SD 2000/2001 ASG/JCA/AJA
4 – A tabela de transição de estados da figura descreve uma máquina de estados de Moore com uma entrada X e uma saída Z:
estado
presentepróximo estado saídaX=0 Z
ABCDE
00001
X=1 codificação deestadosA=001B=101C=111D=011E=100
ACACC
BBDEB
a) Supondo a codificação de estados representada na figura, desenhe o esquema do circuito lógico que implementa a máquina de estados, utilizando flip-flops do tipo D, e garantindo que para os estados não especificados o estado seguinte é o estado A e a saída Z é indiferente. (utilize o verso da folha)
Como temos 5 estados, necessitamos de 3 flip-flops para representar a variável de estado: Q2,Q1,Q0. Vamos construir a tabela de transição de estados utilizando a codificação dada, e assumindo, para os estados não especificados (códigos 000, 010 e 110), que o próximo estado é o estado A (001):
estadopresente
próximo estadosaída
X=0 ZQ2Q1Q0
0 0 11 0 11 1 10 1 11 0 00 0 00 1 01 1 0
00001000
X=1codificação de
estadosA=001B=101C=111D=011E=100
0 0 11 1 10 0 11 1 11 1 10 0 10 0 10 0 1
1 0 11 0 10 1 11 0 01 0 10 0 10 0 10 0 1
Q2* Q1* Q0*
estados não definidos: próximo estado = estado A (001)
ABCDE
Partindo da tabela acima, vamos agora construir os mapas de Karnaugh para obter expressões minimizadas para as funções Q2*, Q1*, Q0* e Z, e desenhar o circuito lógico completo para o circuito:
Sistemas Digitais, 1ª chamada – 26/Junho/2001 (Prova A) Página 6 NOME:________CORRECÇÃO________________________________________________________TURMA ___________
LEEC - SD 2000/2001 ASG/JCA/AJA
Q2Q1
Q0X
Q2
Q1
00 0 1 1 1 10
0 0
0 1
11
10
Q0
X1
1
1
1
Q2.Q1'
Q2'.Q1.Q0
Q2*:
Q2* = Q2'.Q1.Q0 + Q2'.Q0.X + Q2.Q1'
1 1
1
0 0 0
0 0 0
0
00
Q2'.Q0.X
Q2Q1
Q0X
Q2
Q1
00 0 1 1 1 1 0
00
0 1
11
10
Q0
X0
1
1
0
Q2.Q1'.X'
Q2'.Q1.Q0.X'
Q1*:
Q1* = Q2.Q1'.X' + Q2.Q1.Q0.X + Q2'.Q1.Q0.X'
0 0
1
0 0 0
0 0 0
1
00
Q2.Q1.Q0.X
Q2Q1
Q0X
Q2
Q1
0 0 0 1 11 10
0 0
0 1
1 1
1 0
Q0
X0
1
1
1
Q2+Q1'+Q0'+X'
Q0*:
Q0* = Q2+Q1'+Q0'+X'
1 1
1
1 1 1
1 1 1
1
11
Q2Q1
Q0
Q2
Q1
00 0 1 1 1 10
0
1
1
0
Q2.Q1'.Q0'
Z:
0 0 0
0 0 0 Q0
Z = Q2.Q1'.Q0'
Um circuito lógico que realiza a máquina de estados é o seguinte:
D Q
D Q
Q0Q1Q2 Q2' Q1' Q0'
Q2*
Q0
clock
D Q
X
Q1
Q2
Q0*
Q1*
Z
Sistemas Digitais, 1ª chamada – 26/Junho/2001 (Prova A) Página 7 NOME:________CORRECÇÃO________________________________________________________TURMA ___________
LEEC - SD 2000/2001 ASG/JCA/AJA
b) Indique as alterações a efectuar no circuito anterior se, para os estados não especificados, o estado seguinte pudesse ser
apenas o estado A ou o estado B.
Como o estado A é codificado como 001 e o estado B como 101, apenas seria alterada a função lógica que realiza a função Q2*, já que para os 3 estados não especificados (000, 010 e 110) esta função passaria a ser indiferente. O novo mapa de Karnaugh para a função Q2* seria então:
Q2Q1
Q0X
Q2
Q1
00 01 11 10
00
01
11
10
Q0
X1
1
1
1
Q2.Q1'
Q2'.Q1
Q2*:
Q2* = Q2'.Q1 + Q2'.X + Q2.Q1'
1 1
1
X X X
X X X
0
00
Q2'.X
O circuito lógico seria modificado (simplificado) apenas na parte que produz a função Q2*, necessitando agora de 3 portas AND de duas entradas e uma porta OR de 3 entradas:
Q1
Q2
Q2'
Q1'
Q2*Q2'X
Sistemas Digitais, 1ª chamada – 26/Junho/2001 (Prova A) Página 8 NOME:________CORRECÇÃO________________________________________________________TURMA ___________
LEEC - SD 2000/2001 ASG/JCA/AJA
5 – a) Usando um shift-register 74x194 (ver tabela abaixo) e circuitos lógicos adicionais, construa um circuito síncrono com
uma entrada X e uma saída Z que coloca na saída o valor lógico 1 sempre que detectar na entrada X a sequência de valores 1011 em 4 transições de relógio consecutivas, como se mostra no exemplo seguinte:
Entrada X: 0 1 0 1 1 0 1 1 0 0 1 0 1 1
Saída Z: 0 0 0 0 1 0 0 1 0 0 0 0 0 1
Para construir o circuito pedido, vamos configurar o 74x194 em modo shift-left (S1=1, S0=0) e ligar a entrada LIN à entrada X do circuito pedido. Desta forma, teremos sempre presente nas saídas QA~QD o estado ocorrido na entrada X em 4 transições consecutivas do sinal de relógio. Para detectar a sequência pedida, basta ligar às saídas QA~QD um circuito combinacional que produza uma saída 1 sempre que as saídas tenham o estado 1011 (uma porta AND com uma entrada negada):
função S1 S0 QA* QB* QC* QD*
holdshift rightshift leftload
0 00 11 01 1
QA QB QC QDRIN QA QB QCQB QC QD LINA B C D
CLK
CLRS1S0LIN
RIN
DCBA
QDQCQBQA
74x194Clock
X
Z
Vcc (5V)
Gnd(0V)
b) Modifique o circuito anterior por forma a que apenas sejam detectadas sequências não sobrepostas, como se exemplifica na
figura seguinte:
Entrada X: 0 1 0 1 1 0 1 1 0 0 1 0 1 1
Saída Z: 0 0 0 0 1 0 0 1 0 0 0 0 0 1
Para detectar apenas sequências não sobrepostas é necessário que, no próximo estado a seguir à detecção de uma sequência válida: i) seja carregado para o primeiro bit (QD ou o mais à direita se considerarmos o sentido do deslocamento – para a esquerda) o valor presente na entrada X. ii) os restantes bits (QC,QB e QA) sejam colocados com zero para “estragar” o resto da sequência já detectada
Sistemas Digitais, 1ª chamada – 26/Junho/2001 (Prova A) Página 9 NOME:________CORRECÇÃO________________________________________________________TURMA ___________
LEEC - SD 2000/2001 ASG/JCA/AJA
Como a função Load é activada com S1=1 e S0=0, basta ligar a saída Z à entrada S0 (quando detectar a sequência, Z=1 e faz Load, quando não detecta sequência, Z=0 e faz shift-left), ligar a entrada D à entrada X e as entradas C, B e A a zero (quando faz Load carrega para QD~QA o valor X000, onde X representa o valor lógico presente na entrada X):
CLK
CLRS1S0LIN
RIN
DCBA
QDQCQBQA
74x194Clock
X
Z
Vcc (5V)
Gnd(0V)
6 – Considere o circuito da figura, baseado num contador up-down 74x169, cuja funcionalidade é descrita pela tabela abaixo. a) Admitindo o estado inicial QD,QC,QB,QA=0000, determine a sequência (em binário) produzida nas saídas QD,QC,QB,QA.
UP/DWN /LD /ENT /ENP QD QC QB QA QD* QC* QB* QA*
x 0 x x x x x x D C B A
x 1 1 x x x x x QD QC QB QA
x 1 x 1 x x x x QD QC QB QA
1 1 0 0 N (se N<15) N + 1
0 1 0 0 N (se N>0) N - 1
1 1 0 0 1 1 1 1 0 0 0 0
0 1 0 0 0 0 0 0 1 1 1 1
74x169 estadopresente
próximoestado
CLK
UP/DWN
ENP
DCBA
QDQCQBQA
74x169
LD
ENT
RCO
Gnd(0V)
Vcc (5V)
faz Load quando QD~QA=1000 (8), carrega 0011 (3)
faz Load quando QD~QA=0101 (5) e carrega 1011 (11)
Sistemas Digitais, 1ª chamada – 26/Junho/2001 (Prova A) Página 10 NOME:________CORRECÇÃO________________________________________________________TURMA ___________
LEEC - SD 2000/2001 ASG/JCA/AJA
Analisando o circuito podemos concluir que:
i) o sentido de contagem é definido pelo estado da saída QD’: QD=0 conta para cima, QD=1 conta para baixo ii) quando QD~QA=0101 é feito um Load de 1011 iii) quando QD~QA=1000 é feito um Load de 0011
A sequência de valores ocorridos nas saídas do contador será:
QDQCQBQA UP/DWN LD D C B A0 0 0 0 1 1 1 0 1 10 0 0 1 1 1 1 0 1 10 0 1 0 1 1 1 0 1 10 0 1 1 1 1 1 0 1 10 1 0 0 1 1 1 0 1 10 1 0 1 1 0 1 0 1 11 0 1 1 0 1 0 0 1 11 0 1 0 0 1 0 0 1 11 0 0 1 0 1 0 0 1 11 0 0 0 0 0 0 0 1 10 0 1 1 1 1 1 0 1 1
012345
1110983
...
Load de 1011 (11)
Load de 0011 (3)
b) Modifique o circuito apresentado de forma a acrescentar-lhe uma entrada X, activa no nível lógico alto, que permita
reinicializar as saídas com o valor QD,QC,QB,QA=0011.
Para reinicializar as saídas com 0011, pode-se ligar a entrada X negada a uma terceira entrada da porta AND que controla o sinal Load do contador. Para que esse Load provoque o carregamento com 0011, teremos de modificar o circuito que alimenta a entrada D do contador de forma a que nesse caso seja imposto um 1 na entrada D (note que C, B e A estão já ligadas aos valores lógicos pretendidos). Um circuito que realiza essa função é o seguinte:
CLK
UP/DWN
ENP
DCBA
QDQCQBQA
74x169
LD
ENT
RCO
Gnd(0V)
Vcc (5V)
X
quando X=0 D=QD';quando X=1 impoe D=0
- FIM -
Sistemas Digitais, 2ª chamada – 11/Julho/2001 (Prova A) Página 1 NOME:___________________CORRECÇÃO_____________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/AJA
Departamento de Engenharia Electrotécnica e de Computadores
Sistemas Digitais (2000/2001) 2ª chamada – 11/Julho/2001 Duração: 2horas , sem consulta. Antes de iniciar a prova, tenha em atenção as seguintes recomendações: • Leia atentamente toda a prova antes de a iniciar. • Mostre e justifique adequadamente todos os passos das suas respostas. • A prova deverá ser resolvida no enunciado. Se necessário, utilize o verso para continuar a sua resolução. • Assine todas as folhas que entregar, indicando em cada uma o número de páginas/folhas que entregou. 1 -
a) Dado o número hexadecimal 1A016, diga qual é o seu valor se representar:
i) um número inteiro em complemento para dois com 9 bits.
O número dado tem a seguinte representação binária em 12 bits (3 dígitos hexadecimais):
1A016 = 0001101000002
Como é dito que 1A016 representa um número inteiro em complemento para dois com 9 bits (os 9 bits da direita), então podemos concluir que representa um número negativo porque o bit de sinal (MSB) é 1. Para obter o seu valor absoluto temos de calcular o seu simétrico, i.e. o complemento para dois desse número:
-(110100000) = 001011111 + 1 = 0011000002 = 26+25 = 64 + 32 = 9610.
Assim, o valor do número 1A016 representando um número inteiro em complemento para dois com 9 bits é –96.
ii) um número inteiro em complemento para dois com 10 bits
Se 1A016 representar agora um número inteiro em complemento para dois com 10 bits (os 10 bits da direita), então podemos concluir que o seu valor é uma quantidade positiva porque o bit de sinal (MSB) é 0, sendo o seu valor igual a:
01101000002 = 28+ 27+25 = 256 + 128 + 32 = 41610
b) Obtenha o resultado da adição, efectuada em complemento para dois com 9 bits, entre o número dado em a) e –2710.
Primeiro vamos representar –27 em complemento para dois com 9 bits. Para isso comecemos por calcular a representação de 27 em binário:
27 2131 2
61 230 2
11
LSB
MSB
Assim, 2710 = 110112 = 0000110112 . A representação de –27 em complemento para dois com 9 bits obtém-se calculando o complemento para dois de +27:
Sistemas Digitais, 2ª chamada – 11/Julho/2001 (Prova A) Página 2 NOME:___________________CORRECÇÃO_____________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/AJA
-27 = -(000011011) =111100100 + 1 = 1111001012
Efectuando agora a adição binária entre o número dado em a) e –27:
110100000 +111100101 1110000101
Como não ocorre overflow (porque os bits de sinal dos operandos são iguais), podemos concluir que o resultado da adição pode ser representado em 9 bits por 110000101 (representa a quantidade –123 = (-27) + (- 96) ).
c) Determine qual é a constante inteira positiva de 6 bits que é necessário adicionar a valores representados em
complemento para dois com 6 bits, para que passem a representar números inteiros positivos (sem sinal) com 6 bits no intervalo [0,+63].
Com uma representação binária em complemento para dois com 6 bits podem-se representar números inteiros com sinal no intervalo [ -2(6-1), +2(6-1)-1 ] = [-32,+31]. Somando a constante inteira +32 a números representados neste intervalo passamos a ter valores que pertencem a [0,+63]. A representação binária de +32 em 6 bits é 100000 (note que, em complemento para dois com 6 bits o número 1000002 representa o valor -32).
2 – Considere um circuito combinacional com 4 entradas D3D2D1D0, e uma saída S que é 1 sempre que no conjunto das entradas o número de zeros seja maior ou igual ao número de uns.
D3D2D1D0
SDMZDQU
a) Projecte o circuito utilizando apenas portas NOR de 3 entradas (utilize o verso da folha).
Como pretendemos construir um circuito que apenas contenha portas NOR, é conveniente obter uma função minimizada na forma produto-de-somas:
0 0 0 0 10 0 0 1 10 0 1 0 10 0 1 1 10 1 0 0 10 1 0 1 10 1 1 0 10 1 1 1 01 0 0 0 11 0 0 1 11 0 1 0 11 0 1 1 01 1 0 0 11 1 0 1 01 1 1 0 01 1 1 1 0
SD3 D2 D1 D0D3D2
D1D0
D3
D2
00 01 11 10
00
01
11
10
D1
D00
0
0
0
0
(D3'+D0'+D1')
S:
S = (D3'+D0'+D2').(D2'+D0'+D1').(D3'+D2'+D1').(D3'+D0'+D1')
(D3'+D2'+D1')
(D2'+D0'+D1')
(D3'+D0'+D2')
Tabela de verdade:
Sistemas Digitais, 2ª chamada – 11/Julho/2001 (Prova A) Página 3 NOME:___________________CORRECÇÃO_____________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/AJA
Circuito OR-AND (tradução directa da expressão minimizada produto-de-somas):
S
D3' D2' D1' D0'
E utilizando apenas portas NOR com 3 entradas:
S
D3 D2 D1 D0
Sistemas Digitais, 2ª chamada – 11/Julho/2001 (Prova A) Página 4 NOME:___________________CORRECÇÃO_____________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/AJA
b) Projecte o mesmo circuito utilizando um multiplexer 8÷1 (3 linhas de selecção).
Vamos ligar às linhas de selecção do multiplexer as variáveis D3~D1. Desta forma, as entradas D0~D7 do multiplexer serão ligadas a 0, 1, D0 ou D0’, de acordo com a tabela de verdade da função a implementar:
0 0 0 0 10 0 0 1 10 0 1 0 10 0 1 1 10 1 0 0 10 1 0 1 10 1 1 0 10 1 1 1 01 0 0 0 11 0 0 1 11 0 1 0 11 0 1 1 01 1 0 0 11 1 0 1 01 1 1 0 01 1 1 1 0
SD3 D2 D1 D0
1
1
1
D0'
1
D0'
D0'
0
Y
D0
D1
D2
D3
D4
D5
D6
D7
S2 S1 S0
D3D2D1
D0
S
Gnd
Vcc (5V)
Sistemas Digitais, 2ª chamada – 11/Julho/2001 (Prova A) Página 5 NOME:___________________CORRECÇÃO_____________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/AJA
3 – Considere uma máquina de estados com duas entradas X,Y e uma saída Z. A saída Z deve tomar o valor lógico 1 sempre que, em duas transições de relógio consecutivas, as entradas X e Y mantenham o mesmo valor e sejam iguais entre si (ver figura).
Entrada X: 0 1 0 1 1 0 0 0 0 0 1 1 0 1
Entrada Y: 0 0 0 1 1 1 1 0 0 0 1 1 1 1
Saída Z: 0 0 0 0 1 0 0 0 1 1 0 1 0 0 Complete o diagrama de estados apresentado na figura que descreve o funcionamento desta máquina de estados. As condições de transições de estado apresentadas representam os valores das entradas X e Y, nesta ordem.
E1
E2
E0
E3
E4
XY=00
00Z=1 Z=1
00
11
00
11 10ou01
10ou01
10ou01
00
10ou01
11
11
11
Z=0 Z=0
Z=0
10ou01
Sistemas Digitais, 2ª chamada – 11/Julho/2001 (Prova A) Página 6 NOME:___________________CORRECÇÃO_____________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/AJA
4 – Pretende-se projectar um circuito sequencial síncrono que produza nas saídas Q3Q2Q1Q0 a seguinte sequência:
0, 1, 3, 6, 10, 15, 0, 1, ...
a) Construa a tabela de transição de estados, admitindo um critério de custo mínimo para os estados não especificados, e fazendo coincidir as saídas Q3Q2Q1Q0 com as variáveis de estado.
Vamos começar por construir a tabela de transição de estados do circuito pretendido. Note que esta máquina de estados não tem entradas e repete ciclicamente uma sequência de estados determinada. Como é pedido no enunciado, vamos fazer coincidir as saídas da máquina de estados com as variáveis Q3Q2Q1Q0 que representam o estado presente (na realidade seriam suficientes 3 flip-flops para representar o estado presente, já que só temos 6 estados; no entanto isso obrigaria a construir circuitos que produzissem as saídas pretendias Q3Q2Q1Q0 em função do estado presente codificado em 3 bits).
Q3 Q2 Q1 Q0 Q3* Q2* Q1* Q0*
0 0 0 0 0 0 0 10 0 0 1 0 0 1 10 0 1 0 d d d d0 0 1 1 0 1 1 00 1 0 0 d d d d0 1 0 1 d d d d0 1 1 0 1 0 1 00 1 1 1 d d d d1 0 0 0 d d d d1 0 0 1 d d d d1 0 1 0 1 1 1 11 0 1 1 d d d d1 1 0 0 d d d d1 1 0 1 d d d d1 1 1 0 d d d d1 1 1 1 0 0 0 0
01
3
6
10
15
13
6
10
15
0
Estado presente Próximo estado
Sistemas Digitais, 2ª chamada – 11/Julho/2001 (Prova A) Página 7 NOME:___________________CORRECÇÃO_____________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/AJA
b) Projecte o circuito utilizando flip-flops D e circuitos lógicos adicionais (se necessário utilize o verso da folha).
Vamos obter funções minimizadas para as funções que produzem o próximo estado: Q3*, Q2*, Q1* e Q0*
Q3Q2
Q1Q0
Q3
Q2
00 01 11 10
00
01
11
10
Q1
Q0d
0
Q0.Q3'
Q3*:
Q3* = Q1.Q0'
0
0
d
d
d
1
0
d
d
d
d
d
d
1
Q3Q2
Q1Q0
Q3
Q2
00 01 11 10
00
01
11
10
Q1
Q0d
0
Q2*:
0
1
d
d
d
0
0
d
d
d
d
d
d
1
Q3Q2
Q1Q0
Q3
Q2
00 01 11 10
00
01
11
10
Q1
Q0d
0
Q1*:
1
1
d
d
d
1
0
d
d
d
d
d
d
1
Q3Q2
Q1Q0
Q3
Q2
00 01 11 10
00
01
11
10
Q1
Q0d
1
Q0*:
1
0
d
d
d
0
0
d
d
d
d
d
d
1
Q1.Q0'
Q3.Q2'
Q1'
Q1.Q2'
Q1.Q0'
Q2* = Q1.Q2'
Q1* = Q0.Q3' + Q1.Q0' Q0* = Q1'+.Q3.Q2'
Sistemas Digitais, 2ª chamada – 11/Julho/2001 (Prova A) Página 8 NOME:___________________CORRECÇÃO_____________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/AJA
O circuito que realiza a máquina de estados pretendida é:
D Q
D Q
Q0Q1Q2 Q2' Q1' Q0'
Q3*
Q1
clock
D Q
Q2
Q3
Q0*
Q2*
Q3 Q3'
Q0D Q
Q1
Q2
Q3
Q0
Q1*
5 – Considere o seguinte circuito síncrono baseado num shift-register 74x194 (ver tabela):
CLK
CLRS1S0LIN
RIN
DCBA
QDQCQBQA
74x194Clock
Vcc (5V)
Gnd(0V)
função S1 S0 QA* QB* QC* QD*
holdshift rightshift leftload
0 00 11 01 1
QA QB QC QDRIN QA QB QCQB QC QD LINA B C D
a) Admitindo que o estado inicial é QAQBQCQD=0000, determine a sequência de valores nas saídas do circuito.
Sistemas Digitais, 2ª chamada – 11/Julho/2001 (Prova A) Página 9 NOME:___________________CORRECÇÃO_____________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/AJA
S0 LIN RINS1QA QB QC QD
0 0 0 0 0 1 1 11 0 0 0 1 0 1 10 0 0 1 0 1 0 11 0 0 0 1 0 1 1 ...
shift-rightshift-leftshift-right
shift-left
S1 = QAS0 = QA' + QDLIN = (QD+QC+QB)'RIN = 1
b) Acrescente uma entrada CARREGA que, quando activada com 1, inicialize o shift-register com QAQBQCQD=1100.
Quando CARREGA=0 deve manter-se o comportamento do circuito inicial (utilize o verso da folha).
Para forçar o carregamento do shift-register temos de colocar com 1 as entradas S1 e S0 quando a entrada CARREGA tiver o nível lógico 1, e manter o funcionamento do circuito anterior quando CARREGA=0. Além disso é necessário ligar as entradas A e B ao nível lógico 1 para que o valor carregado seja 1100:
CLK
CLRS1S0LIN
RIN
DCBA
QDQCQBQA
74x194Clock
Vcc (5V)
Gnd(0V)
CARREGA
6 – Pretende-se construir um circuito síncrono baseado em dois contadores 74x163, que apresente, nas duas saídas de 4 bits, respectivamente o dígito das unidades e o dígito das dezenas da sequência de valores 00, 01, 02... 58, 59, 00... . a) Utilizando um contador 74x163, construa o circuito síncrono que produz o dígito das unidades (conta ciclicamente de 0 a
9).
Para construir um contador decimal (conta de 0 a 9) basta ligar à entrada CLR do contador uma saída que apresente o valor lógico 0 sempre que as saídas do contador estejam no estado 1001 (valor 9):
Sistemas Digitais, 2ª chamada – 11/Julho/2001 (Prova A) Página 10 NOME:___________________CORRECÇÃO_____________________________TURMA _______________
LEEC - SD 2000/2001 ASG/JCA/AJA
/CLR /LD ENT ENP QD QC QB QA QD* QC* QB* QA*
0 x x x x x x x 0 0 0 0
1 0 x x x x x x D C B A
1 1 0 x x x x x QD QC QB QA
1 1 x 0 x x x x QD QC QB QA
1 1 1 1 N (se N<15) N + 1
1 1 1 1 1 1 1 1 0 0 0 0
74x163 estadopresente
próximoestado
CLK
CLR
E NP
ABCD Q D
QCQBQ A
74x163
L D
ENT
RCO
clock
Vcc (5V)
Gnd(0V)
b) Acrescentando o segundo 74x163, complete o circuito anterior por forma a realizar o contador pretendido (contador
decimal de 00 a 59).
O circuito pretendido pode ser construído ligando o contador anterior que produz o dígito das unidades a outro contador com uma configuração semelhante que conte de 0 a 5 (dígito das dezenas). Este segundo contador apenas deve contar quando as unidades atingem o valor 9. Para isso podemos ligar o sinal que activa o CLR do primeiro contador à entrada ENP (enable) do segundo contador (note que este sinal tem que ser negado já que ENP é activo com o nível lógico 1 e CLR é activo com o nível lógico 0).
CLK
CLR
E N P
ABCD Q D
QCQBQ A
74x163
L D
ENT
RCO
clock
Vcc (5V)
Gnd(0V)
CLK
CLR
EN P
ABCD Q D
QCQBQ A
74x163
L D
EN T
RCO
Gnd(0V)
dígito das unidades(de 0 a 9) dígito das dezenas
(de 0 a 5)
- FIM -
Sistemas Digitais, 1ª chamada – 7/Jan/2002 (Prova A) Página 1 NOME:_________________CORRECÇÃO____________________________________________TURMA _______________
LEEC - SD 2001/2002 ASG/JCA/ASL/HSM
Departamento de Engenharia Electrotécnica e de Computadores
Sistemas Digitais (2001/2002) 1ª chamada – 7/Janeiro/2002 Duração: 2horas , sem consulta. Antes de iniciar a prova, tenha em atenção as seguintes recomendações: • Leia atentamente toda a prova antes de a iniciar. • Mostre e justifique adequadamente todos os passos das suas respostas. • A prova deverá ser resolvida no enunciado. Se necessário, utilize o verso para continuar a sua resolução. • Assine todas as folhas que entregar, indicando em cada uma o número de páginas/folhas que entregou. 1 - Pretende-se codificar as coordenadas de latitude e longitude de determinados locais usando o sistema binário em complemento para 2. As latitudes variam entre –90 (90º Sul) e +90 (90º Norte). As longitudes variam entre –180 (180º Oeste) e +180 (180º Este). a) Indique o número mínimo de bits necessários à codificação da latitude e longitude.
A latitude é representada por números inteiros no intervalo [-90,+90]. Como o sistema complemento para dois com N bits permite representar números com sinal no intervalo [-2(N-1), +2(N-1)-1], para incluir o intervalo referido é necessário usar, no mínimo, 8 bits (com 8 bits podem-se representar valores inteiros no intervalo [-128,+127]):
N ≥ max( log2(90)+1, log2(90+1)+1 ), N inteiro → N ≥ 8 Para representar a longitude (intervalo [-180,+180]) é necessário utilizar 9 bits (com 9 bits podem-se representar números inteiros no intervalo [-256,+255]):
N ≥ max( log2(180)+1, log2(180+1)+1 ), N inteiro → N ≥ 9
b) Tendo-se optado por codificar a latitude e longitude com 8 e 10 bits respectivamente, indique as coordenadas da cidade de
Melbourne: 38º Sul (-38), 145º Este (+145).
Para representar o valor –38 em complemento para dois com 8 bits, vamos inicialmente obter a representação de +38 em base 2 e depois calcular o seu complemento (-38):
38 208 19 20 1 9 2
1 4 20 2 20 1
LSB
MSB
Como +3810=001001102 , então –38 pode obter-se calculando o complemento para 2 de +38 complementando os bits da representação binária de +38 (complemento para 1) e adicionando 1:
-38 = -(001001102) = 11011001+1=110110102
Sistemas Digitais, 1ª chamada – 7/Jan/2002 (Prova A) Página 2 NOME:_________________CORRECÇÃO____________________________________________TURMA _______________
A representação do valor +145 em complemento para dois com 10 bits coincide com a representação de 145 em base 2:10010001
145 205 72 21 12 36 2
0 16 18 20 0 9 2
1 4 20 2 20 1
LSB
MSB
c) Admitindo a representação referida em b), calcule em binário a diferença de latitudes das ilhas de Spitzbergen (78º Norte =
4E16) e Falkland (52º Sul = CC16). Comente o resultado.
Efectuando em binário a operação de subtracção entre os números binários dados obtém-se:
01001110-1100110010000010
diminuendo positivo
diminuidor negativo
resultado negativo
Como os operandos têm sinais opostos (note que foi efectuada uma subtracção e não uma adição!) e o sinal do resultado é diferente do sinal do diminuendo (o operando de “cima”), então podemos concluir que ocorre overflow e que o resultado obtido não é representável em 8 bits. Outra forma de realizar esta operação consiste em obter primeiro o complemento do diminuidor (-52) e efectuar em seguida uma operação de adição:
-5210 = - (110011002) = 00110011+1 = 001101002
01001110+0011010010000010
positivo
resultado negativo
positivo
Como o sinal dos operandos é igual e o resultado tem sinal oposto, então pode-se concluir que ocorre overflow e que o resultado (130) não é representável em complemento para dois com 8 bits.
LEEC - SD 2001/2002 ASG/JCA/ASL/HSM
Sistemas Digitais, 1ª chamada – 7/Jan/2002 (Prova A) Página 3 NOME:_________________CORRECÇÃO____________________________________________TURMA _______________
2 - O circuito da figura é um multiplexador de 2 entradas. Na saída Y surge o valor lógico da entrada I0 caso a entrada de selecção S seja 0, ou surge o valor lógico da entrada I1 se S=1. Note que este funcionamento só ocorre se a entrada de enable estiver activa (EN = 1) caso contrário a saída será 0.
Y
ENI0I1S
a) Obtenha a expressão simplificada da saída Y na forma de produto de somas.
Vamos construir a tabela de verdade da função Y(En, S, I1, I0), o mapa de Karnaugh e construir a função mínima soma-de-produtos agrupando os zeros do mapa de Karnaugh:
b) Implemente a função obtida em a) usando apenas NORs de duas entradas e inversores.
Vamos começar por construir o circuito lógico OR-AND que resulta da expressão minimizada obtida em a):
En I1 I0S
Y
LEEC - SD 2001/2002 ASG/JCA/ASL/HSM
Sistemas Digitais, 1ª chamada – 7/Jan/2002 (Prova A) Página 4 NOME:_________________CORRECÇÃO____________________________________________TURMA _______________
Negando as saídas das portas OR e as entradas da porta AND obtemos um circuito só com portas NOR, mas que ainda usa uma porta NOR de três entradas. Note que é necessário acrescentar um inversor na entrada En para que se possa negar a entrada correspondente da porta AND:
En I1 I0S
Y
Finalmente vamos traduzir a porta NOR de 3 entradas em portas NOR de 2 entradas e inversores:
En I1 I0S
Y
c) Recorrendo a um destes multiplexadores e eventuais inversores implemente (utilize o verso da folha):
i) um XOR de 2 entradas: A ⊕ B
0 0 00 1 11 0 11 1 0
A B
Z=B
Z=B'
EnY
I0I1 S
A
B
Vcc (1)
Y=A B
Y=A B
S=
ii) um AND de três entradas: A · B · C
Pretende-se um circuito cuja saída só é 1 quando as 3 entradas são 1 ao mesmo tempo (função AND). Um circuito que usa o multiplexer dado e que realiza essa função é:
EnY
I0I1 S
A
BY=A.B.C
C
Gnd (zero)
LEEC - SD 2001/2002 ASG/JCA/ASL/HSM
Sistemas Digitais, 1ª chamada – 7/Jan/2002 (Prova A) Página 5 NOME:_________________CORRECÇÃO____________________________________________TURMA _______________
3 – Pretende-se projectar o sistema de controlo de temperatura de um cilindro de aquecimento de água. O sistema tem uma saída LIGA que quando é activada (nível alto) liga a resistência eléctrica de aquecimento e uma saída ESCAPE que quando activada (nível lógico alto) abre uma válvula de escape de água, sempre que a temperatura da água ultrapassar um limite crítico. Para controlar a temperatura da água no interior do cilindro dispõe-se de 3 entradas TMAX, TMIN e TCRI, que são activadas (nível lógico alto) quando a temperatura da água no interior do cilindro se torna, respectivamente, maior do que o limite máximo Tmax, menor do que o limite mínimo Tmin ou maior do que a temperatura máxima admissível no interior do cilindro, Tcritica. O sistema dispõe ainda de duas entradas ligadas a um botão de arranque (START) para iniciar a operação e a um botão de paragem (STOP) para desligar. Estas entradas tomam o valor lógico alto quando os botões respectivos são pressionados.
relé
controladorLIGA
TMAX (T>Tmax)
TMIN (T<Tmin)
sensorde
temperatura
START
STOP
resistênciade
aquecimentoCilindro
clock
TCRI (T>Tcritica) Válvula de escape
ESCAPE
Para controlar a temperatura da água no interior do cilindro, a resistência eléctrica deve ser ligada sempre que T for menor do que o valor mínimo Tmin, e deve ser desligada quando for ultrapassado o valor máximo Tmax. Se, por motivo de avaria, a temperatura ultrapassar o limite crítico (activando a saída TCRI do sensor de temperatura), deve ser parado o sistema, aberta a válvula de escape e desligada a resistência. Desenhe o diagrama de transição de estados do sistema descrito, utilizando nomes simbólicos para os estados.
INIT
LIGA DESLIGA
CRITICA
START=0
START=1
STOP=1TCRI=0
STOP=1TCRI=0
STOP=1
ESCAPE=1LIGA=0
ESCAPE=0LIGA=1
ESCAPE=0LIGA=0
TMAX=0STOP=0TCRI=0
TMAX=1STOP=0TCRI=0
TMIN=0STOP=0TCRI=0
TMIN=1STOP=0TCRI=0
ESCAPE=0LIGA=0
TCRI=1 TCRI=1
Estado iniciaL: mantém enquanto não se pressiona START
Nota:Nas condições de transição de estado,as entradas não especificadas sãoconsideradas indiferentes
Após pressionar START, liga a resistênciae mantém ligada até que:(i) seja ultrapassada Tmax(ii) seja pressionado o botão STOP(iii) seja atingida Tcrítica
Quando se atinge Tmax, desliga a resistênciae mantém esse estado até que:(i) a temperatura desca abaixo de Tmin(ii) seja pressionado o botão STOP(iii) seja atingida Tcrítica (devido a avaria!)
Se for atingida Tcrítica, liga-se aválcula de escape, desliga-se a resistênciae reinicia-se o funcionamento pressionandonovamente STOP (note que o funcionamentodo sistema após ser atingida Tcrítica não estavaespecificado).
LEEC - SD 2001/2002 ASG/JCA/ASL/HSM
Sistemas Digitais, 1ª chamada – 7/Jan/2002 (Prova A) Página 6 NOME:_________________CORRECÇÃO____________________________________________TURMA _______________
4 – Considere a máquina sequencial cuja tabela de transições de estados se mostra. Os estados A, B e C são codificados respectivamente na forma Q1Q0 = 00, 01 e 10.
X S 0 1 Z A B C 0 B C A 0 C A B 1 S*
a) Identifique as entrada e saídas da máquina e diga, justificando, se se trata de uma máquina de Moore ou Mealy.
A máquina de estados cujo funcionamento é descrito pela tabela tem apenas uma entrada (X) e é uma máquina de Moore porque a única saída Z apenas depende do estado presente.
b) Obtenha o circuito respectivo utilizando flip-flops JK e um critério de custo mínimo (utilize o verso da folha)
Com base na equação característica do flip-flopJK, vamos construir a tabela de transição de estados com a codificação de estados dada. Para o código não utilizado (Q1Q0=11) vamos considerar indiferente o próximo estado, já que é dito para utilizar o critério de custo mínimo.
Q1 Q0 X Q1* Q0* J1 K1 J0 K0 Z0 0 0 0 1 0 x 1 x 00 0 1 1 0 1 x 0 x 00 1 0 1 0 1 x x 1 00 1 1 0 0 0 x x 1 01 0 0 0 0 x 1 0 x 11 0 1 0 1 x 1 1 x 11 1 0 x x x x x x x1 1 1 x x x x x x x
Tabela de excitação:
A
B
CEstado
não usado
Q -> Q* J K0 0 0 X0 1 1 X1 0 X 11 1 X 0
CLK
J
K
Q
Q
Flip-flop JK Equação característica
Q = J . Q' + K' . Q
Por inspecção da tabela de verdade, podemos concluir que as funções K1(Q1,Q0,X) e K0(Q1,Q0,X) podem ser iguais a 1, e que a saída Z pode ser igual a Q1. Para obter funções mínimizadas para as funções J1(Q1,Q0,X) e J0(Q1,Q0,X) vamos recorrer a mapas de Karnaugh:
LEEC - SD 2001/2002 ASG/JCA/ASL/HSM
Sistemas Digitais, 1ª chamada – 7/Jan/2002 (Prova A) Página 7 NOME:_________________CORRECÇÃO____________________________________________TURMA _______________
O circuito com flip-flops JK que implementa a máquina de estados pretendida é (as diferentes cores nas ligações servem apenas para ajudar à sua identificação):
CLK
J
K
Q
Q
CLK
J
K
Q
Q
Q1
Q0
X
Q0'
J1
J0
Q1'
Z
CLK
Vdd (1)
c) Supondo que a máquina arranca no estado não definido (em que Q1Q0 = 11), indique qual o estado seguinte se a entrada
X for igual a 0, tendo por base a solução encontrada.
O próximo estado com X=0 a partir do estado Q1Q0=11 (estado não definido) pode ser obtido a partir das equações de excitação dos flip-flops JK para as entradas J1 e J0 (note que K1 = K0 = 1):
J1= Q0 . X’ + Q0’ . X = 1 J0 = Q1’ . X’ + Q1 . X = 0
Como temos J1K1=11 e J0K0=01, pela equação característica do flip-flop JK então Q1*=Q1’ e Q0*=0. Assim o estado seguinte a Q1Q0=11 será Q1Q0=00 (estado A).
LEEC - SD 2001/2002 ASG/JCA/ASL/HSM
Sistemas Digitais, 1ª chamada – 7/Jan/2002 (Prova A) Página 8 NOME:_________________CORRECÇÃO____________________________________________TURMA _______________ 5 – Considere o circuito da figura construído com base em contadores 74x163, onde o bloco comparador detecta a igualdade
entre as saídas dos dois contadores. Supondo que o estado inicial dos dois contadores é QDQCQBQA=0000, diga justificando qual a sequência de valores obtida nas saídas S3S2S1S0.
/CLR /LD ENT ENP QD QC QB QA QD* QC* QB* QA*0 x x x x x x x 0 0 0 01 0 x x x x x x D C B A1 1 0 x x x x x QD QC QB QA1 1 x 0 x x x x QD QC QB QA1 1 1 1 N (se N<15) N + 11 1 1 1 1 1 1 1 0 0 0 0
74x163 estadopresente
próximoestado
CLK
CLR
ENP
ABCD
QDQCQBQA
74x163
LD
ENT
RCO
Gnd (0V)
Vcc (5V)
CLK
CLR
ENP
ABCD
QDQCQBQA
74x163
LD
ENT
RCO
S3S2S1S0
comparador
CLK
O circuito da figura é constituído por dois contadores binários que vamos identificar como o de cima e o de baixo. Pretende-se identificar a sequência de valores que ocorrem na saída do contador de cima, partindo de um estado inicial em que as saídas de ambos são zero. Analisemos em primeiro lugar o bloco comparador. Este circuito produz uma saída 1 quando o valor na saída dos dois contadores é igual (é um comparador de igualdade). Esta saída está ligada à entrada enbale (ENP) do contador de baixo, de forma que este apenas conta quando as saídas dos dois contadores são iguais. Além disso, a saída do comparador está também ligada através de um inversor à entrada CLR do contador de cima, o que faz com que quando a saída do comparador for 1, o próximo estado do contador de cima será QDQCQBQA=0000. Note que a entrada LD de ambos está permanentemente não activa (nível lógico 1) de forma que nunca ocorre um carregamento do contador (Load). A sequência de valores produzida na saída do contador CIMA será (ver tabela abaixo): 0, 0, 1, 0, 1, 2, 0, 1, 2, 3, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 7, ... 13, 14, 15, 0, 0, 1, ...
LEEC - SD 2001/2002 ASG/JCA/ASL/HSM
Sistemas Digitais, 1ª chamada – 7/Jan/2002 (Prova A) Página 9 NOME:_________________CORRECÇÃO____________________________________________TURMA _______________
BAIXO CIMA CLR ENP BAIXO* CIMA*
estadopresente
próximoestado
0 0 0 1 1 01 0 1 0 1 11 1 0 1 2 02 0 1 0 2 12 1 1 0 2 22 2 0 1 3 03 0 1 0 3 13 1 1 0 3 23 2 1 0 3 33 3 0 1 4 04 0 1 0 4 1
... ...15 0 1 0 15 115 1 1 0 15 2... ...15 15 0 1 0 00 0 0 1 1 0
saídas iguais dos dois contadores:incrementa o contador BAIXOe carrega com zero o contador CIMA
Nota: os valores apresentados paraas saídas dos dois contadores estãorepresentados em base 10
6 – O circuito seguinte baseado no registo de deslocamento 74x194 é um detector de uma dada sequência binária na entrada X.
CLKCLRS1S0LIN
RIN
DCBA
QDQCQBQA
74x194
Vcc (5V)
clock
S
XZ
função S1 S0 Q A*Q B*Q C*Q D*
holdshiftrightshiftleftload
0 00 11 01 1
QA QB QC QDRIN QA QB QCQB QC QD LINA B C D
Universal Shift-register 74x194
a) Determine o modo de funcionamento do registo de deslocamento quando S=0.
Se S=0 a entrada S0 vale 0 e como S1=1 o shift-register trabalha em modo shift-left, com a entrada série LIN ligada a X.
b) Considerando S=0, QDQCQBQA=1111 e a sequência na entrada X indicada, complete a tabela seguinte com os valores
apresentados na saída Z e diga qual é a sequência detectada pelo circuito.
O circuito detecta na entrada X sequências sobrepostas de 3 zeros consecutivos, assinalando com Z=1:
X 1 0 0 1 0 0 0 0 1 1 0 1 1 1 0 0 0 1 Z 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0
c) Considerando agora S=1, QDQCQBQA=1111 e a sequência na entrada X indicada (que é a mesma da alínea anterior),
complete a tabela seguinte com os valores apresentados na saída Z e explique quais as alterações verificadas em relação ao circuito anterior.
Quando S=1, é provocado um Load (S1=1 e S0=1) sempre que é detectada uma sequência de 3 zeros em QDQCQB (Z=1). Como é carregado para QD o valor de X, e é carregado 1 para QCQBQA, então é “apagada” a sequência de zeros já recebidos não permitindo detectar sequências sobrepostas:
X 1 0 0 1 0 0 0 0 1 1 0 1 1 1 0 0 0 1 Z 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0
-FIM -
LEEC - SD 2001/2002 ASG/JCA/ASL/HSM
Sistemas Digitais, 2ª chamada – 24/Jan/2002 (Prova B) Pá NOME:_____________CORRECÇÃO_______________________________________TURMA _______________
Departamento de Engenharia Electrotécnica e de Computadores
Sistemas Digitais (2001/2002) 2ª chamada – 24/Janeiro/2002 Duração: 2horas , sem consulta. Antes de iniciar a prova, tenha em atenção as seguintes recomendações: • Leia atentamente toda a prova antes de a iniciar. • Mostre e justifique adequadamente todos os passos das suas respostas. • A prova deverá ser resolvida no enunciado. Se necessário, utilize o verso para continuar a sua resolução. • Assine todas as folhas que entregar, indicando em cada uma o número de páginas/folhas que entregou. 1 - a) Considere o número binário 100000002. Diga qual é o seu valor se:
(i) representar um número inteiro sem sinal.
Se 100000002 representar um número binário sem sinal então o seu valor é 1x27+0x26+...+0x20=12810 (ii) representar um número inteiro com sinal em complemento para dois com 8 bits.
Se 100000002 representar um número com sinal em complemento para dois então o seu valor é
-1x27+0x26+...+0x20=-12810 (o bit mais significativo tem peso –27). Outra forma de obter o valor representado pelo número dado consiste em: (i) concluir que o valor é negativo porque o bit mais significativo é 1, (ii) obter o seu valor absoluto “trocando” o sinal (complementando todos os bits e somando 1 obtemos o simétrico de 10000000 que também é 10000000) e (iii) calculando o valor sem sinal representado por 100000002=12810
b) Considere os números A=000101112 e B=001011112
(i) Efectue a subtracção A-B em binário.
00010111 -00101111 11101000
(ii) Comente o resultado obtido admitindo que A, B e o resultado são números inteiros sem sinal.
Se A e B representarem números inteiros sem sinal, então há overflow (ou o resultado não pode ser representado) porque é gerado um bit de borrow para além do número de bits dos operandos A e B. Note que como B é maior do que A o resultado correcto será negativo, o que não pode ser representado como um número sem sinal.
(iii) Comente o resultado obtido admitindo que A, B e o resultado são números inteiros com sinal representados em
complemento para dois com 8 bits.
Se A e B representarem números inteiros com sinal em complemento para dois, podemos concluir que não ocorre overflow já que são subtraídos dois operandos de sinal igual (ou, o que é equivalente, são adicionados dois operandos com sinais opostos). Como tal, e apesar de ter ocorrido um borrow-out, o número 111010002 representa correctamente o resultado da diferença A-B.
LEEC - SD 2001/2002 ASG/JCA/ASL/HSM
Sistemas Digitais, 2ª chamada – 24/Jan/2002 (Prova B) Pá NOME:_____________CORRECÇÃO_______________________________________TURMA _______________ 2 – O circuito da figura resultou de uma tentativa para construir um circuito que realize a função NOR de 4 entradas F=(A+B+C+D)’
Z
A
B
C
D
a) Construa a tabela de verdade do circuito da figura e mostre que não realiza a função pretendida.
Para provar que o circuito dado não realiza a função pretendida basta mostrar que existe pelo menos uma combinação das entradas para a qual as duas funções produzem resultados diferentes. A tabela de verdade do circuito dado é:
A B C D Z 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 1 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 1 1 1 1 1 0
Como a função F=(A+B+C+D)’ (NOR de 4 entradas) só é 1 quando todas as entradas são 0, pode-se concluir que o circuito dado não realiza esta função (por exemplo, para ABCD=1110, Z=1 e F=0).
b) Utilizando Mapas de Karnaugh obtenha uma expressão simplificada do tipo produto-de-somas para a função realizada
pelo circuito.
LEEC - SD 2001/2002 ASG/JCA/ASL/HSM
Sistemas Digitais, 2ª chamada – 24/Jan/2002 (Prova B) Pá NOME:_____________CORRECÇÃO_______________________________________TURMA _______________
c) Mostre como se realizaria o circuito pretendido (função NOR de 4 entradas) utilizando o menor número possível de
portas NOR de duas entradas (utilize o verso da folha)
ABCD
ABCD
AB
CD
AB
CD
NOR de 4 entradas: separar a negação da porta OU:
propriedade associativa da função OR trocar portas OR para NOR e acrescentar inversores
3 – Pretende-se projectar uma máquina de estados (controlador) para controlar a contabilização de moedas entradas e a selecção da bebida, numa máquina de distribuição de chá e café (ver figura). O detector de moedas detecta a entrada de moedas de 0.10€ e 0.20€ e assinala, para a máquina de estados, o tipo de moeda através da entrada MOEDA (2 bits).. A máquina de estados apenas aceita moedas de 0.20€ e 0.10€ e não dá troco. O custo de qualquer uma das bebidas é 0.40€, sendo ignoradas as moedas que sejam introduzidas depois de atingida esta importância. Quando for atingido o valor de 0.40€, a selecção da bebida é feita pressionando um de dois botões que activam as entradas B_CHA e B_CAFE com o nível lógico 1. Para proceder à confecção da bebida o controlador deve activar (com o valor lógico 1) a saída FAZ_CHA ou FAZ_CAFE e esperar que a entrada PRONTO seja activada, indicando que foi concluída a confecção. Este sistema interactua com as restantes unidades desta máquina (detector de moedas e a máquina de confeccionar as bebidas) através das seguintes entradas e saídas (ver figura):
controlador
FAZ_CHA
FAZ_CAFE
PRONTO
detector de moedas
0.20€0.10€
MOEDA(2 bits)
B_CHA
B_CAFE
máquina de chá e café
Entradas: MOEDA (2 bits): identifica a moeda introduzida na máquina de acordo com a tabela seguinte:
MOEDA ( 2 bits ) Significado 0x Não detectou moeda 10 Detectou moeda de 0.10€ 11 Detectou moeda de 0.20€
B_CHA: botão que quando premido (valor lógico 1) escolhe a bebida chá, se já tiver sido atingido o valor de 0.40€. B_CAFE: botão que quando premido (valor lógico 1) escolhe a bebida café, se já tiver sido atingido o valor de 0.40€. PRONTO: indica que o processo de confecção (de chá ou café) foi terminado.
Saídas:
FAZ_CHA: quando activa (valor lógico 1) dá ordem para se iniciar a confecção do chá. FAZ_CAFE: quando activa (valor lógico 1) dá ordem para se iniciar a confecção do café.
LEEC - SD 2001/2002 ASG/JCA/ASL/HSM
Complete o diagrama de estados da figura (próxima página), indicando claramente as condições de transição de estado e os valores das saídas em cada estado.
Sistemas Digitais, 2ª chamada – 24/Jan/2002 (Prova B) Pá NOME:_____________CORRECÇÃO_______________________________________TURMA _______________
INIT
MOEDA=0x
M20 M10
MOEDA=10MOEDA=11
CAFECHA
PRONTO=0PRONTO=0
PRONTO=1MOEDA=10
PRONTO=1
M40 M30
MOEDA=11
MOEDA=0x
MOEDA=0x
MOEDA=10
MOEDA=0x
MOEDA=11
MOEDA=1x
B_CAFE=1
B_CHA=1B_CAFE=0
B_CHA=0
B_CHA=0B_CAFE=0
Já entraram 0.10€ (uma moeda de 0.10€)
Já entraram 0.30€(3 x 0.10€, 0.20€+0.10€ ou 0.10€+0.20€)
Já entraram 0.40€espera que seja pressionadoo botão de selecção da bebida
FAZ_CAFE=1FAZ_CHA=1
Já entraram 0.20€(uma moeda de 0.20€ ou duas de 0.10€)
As entradas não especificadas nas condições de transição de estado são consideradas indiferentesNos estados em que não se representa o valor das saídas FAZ_CHA e FAZ_CAFE é considerado 0
Nota:
LEEC - SD 2001/2002 ASG/JCA/ASL/HSM
Sistemas Digitais, 2ª chamada – 24/Jan/2002 (Prova B) Pá NOME:_____________CORRECÇÃO_______________________________________TURMA _______________
4 – Considere a máquina sequencial (modelo de Moore) com duas entradas E1 e E0 e uma saída Z, cujo diagrama de transição de estados se mostra. Os estados S1, S2 e S3 são codificados respectivamente na forma Q1Q0 = 11, 01 e 10.
S1
S2 S3
10
Z=1
11
10
11
1X
0X
0X
Z=1 Z=0
E1 E0 = 0X
a) Construa a tabela de transição de estados admitindo a utilização do critério de custo mínimo para os estados não especificados.
S Q1 Q0 0 0 0 1 1 0 1 1 ZS4 0 0 x x x x x x x x xS2 0 1 1 0 1 0 0 1 1 1 1S3 1 0 1 0 1 0 0 1 0 1 0S1 1 1 1 1 1 1 0 1 1 0 1
Q1* Q0*E1 E0 E1 E0 E1 E0 E1 E0
b) Obtenha um circuito que realize esta máquina de estados utilizando flip-flops D (utilize o verso da folha)
Ver resolução na página seguinte. c) Supondo que a máquina arranca no estado não definido (em que Q1Q0 = 00), diga, justificando, se é possível ocorrer
uma transição para S1, S2 ou S3 e, caso afirmativo, em que condições das entradas E1 e E0.
Por análise das funções que definemQ1* e Q0*, podemos concluir o seguinte:
Q1* = E1’ + Q0.E0 Q0* = E1.Q1' + E1.E0' + Q0'.E1 + Q1.Q0.E1'
Se Q1Q0=00 e E1=0, então o próximo estado será Q1*=1 e Q0*=0 (estado S3) Se Q1Q0=00 e E1=1, então o próximo estado será Q1*=0 e Q0*=1 (estado S2)
LEEC - SD 2001/2002 ASG/JCA/ASL/HSM
Sistemas Digitais, 2ª chamada – 24/Jan/2002 (Prova B) Pá NOME:_____________CORRECÇÃO_______________________________________TURMA _______________
Circuito lógico:
CLK
D Q
Q
CLK
D Q
Q
Q1
Q0
E0
Q0'
Q1*
Q0*
Q1'
Z
CLK
E1
LEEC - SD 2001/2002 ASG/JCA/ASL/HSM
Sistemas Digitais, 2ª chamada – 24/Jan/2002 (Prova B) Pá NOME:_____________CORRECÇÃO_______________________________________TURMA _______________
5 – Considere o circuito da figura construído com base em contadores 74x163. Supondo que o estado inicial dos dois
contadores é QDQCQBQA=0000, diga justificando qual a sequência de valores obtida nas saídas S3S2S1S0.
CLK
CLR
ENP
QDQCQBQA
74x163
LD
ENT
RCO
Vcc (5V)
CLK
CLR
ENP
DCBA
QDQCQBQA
74x163
LD
ENT
RCO
S3S2S1S0
clock
DCBA
Vcc (5V)
/CLR /LD ENT ENP QD QC QB QA QD* QC* QB* QA*0 x x x x x x x 0 0 0 01 0 x x x x x x D C B A1 1 0 x x x x x QD QC QB QA1 1 x 0 x x x x QD QC QB QA1 1 1 1 N (se N<15) N + 11 1 1 1 1 1 1 1 0 0 0 0
74x163 estadopresente
próximoestado
Como os dois contadores têm o mesmo sinal de relógio, vão “contar” ao mesmo tempo. O contador da esquerda tem a saída QC ligada (invertida) à entrada CLR: quando o estado presente for QDQCQBQA=x1xx, o próximo estado será 0000. O segundo contador tem a entrada LD activa quando as suas saídas forem QDQCQBQA=x11x: nessa situação, o próximo estado será igual ao estado presente do contador da esquerda. Analisando a sequência de valores que ocorrem nas saídas dos dois contadores, partindo do estado inicial 0000:
0 0 0 0 0 0 0 00 0 0 1 0 0 0 10 0 1 0 0 0 1 00 0 1 1 0 0 1 10 1 0 0 0 1 0 00 0 0 0 0 1 0 10 0 0 1 0 1 1 00 0 1 0 0 0 0 10 0 1 1 0 0 1 00 1 0 0 0 0 1 10 0 0 0 0 1 0 00 0 0 1 0 1 0 10 0 1 0 0 1 1 00 0 1 1 0 0 1 00 1 0 0 0 0 1 10 0 0 0 0 1 0 00 0 0 1 0 1 0 10 0 1 0 0 1 1 00 0 1 1 0 0 1 0
... ...
contadoresquerda
contadordireita
CLR=0
QD QC QB QA QD QC QB QA
CLR=0
CLR=0
LD=0, Load de 0001
LD=0, Load de 0010
LD=0, Load de 0010
A sequência de valores nas saídas S3S2S1S0 será (em decimal):
0, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 2, 3, 4, 5, 6, 2, 3, 4, 5, 6, 2, 3, …
LEEC - SD 2001/2002 ASG/JCA/ASL/HSM
Sistemas Digitais, 2ª chamada – 24/Jan/2002 (Prova B) Pá NOME:_____________CORRECÇÃO_______________________________________TURMA _______________
6 – Pretende-se construir um circuito síncrono baseado no shift register 74x194 (ver tabela) que detecte, na sua entrada X, a sequência de 4 bits 0101. A saída Z deverá ser activada (nível lógico 1) quando for detectada a sequência 0101, e são consideradas sequências parcialmente sobrepostas (ver exemplo).
função S1 S0 QA* QB* QC* QD*
holdshift rightshift leftload
0 00 11 01 1
QA QB QC QDRIN QA QB QCQB QC QD LINA B C D
Universal Shift-register 74x194Exemplo: X: 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 Z: 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0
a) Projecte o circuito que realiza a funcionalidade pretendida, utilizando o 74x194 e circuitos lógicos adicionais.
Vamos ligar o shift-register em modo shift-left (entrada por LIN e deslocamento de QD para QA), com X ligado à entrada LIN. Para produzir a saída Z pretendida basta ligar na saída um comparador com 0101 (porta AND com duas entradas negadas ligadas a QA e QD, como mostra a figura):
CLKCLRS1S0LIN
RIN
DCBA
QDQCQBQA
74x194clock
X
Gnd (0V)
Vcc (5V)
Z
b) Modifique o circuito anterior por forma a que permita detectar duas sequências diferentes, dependendo do valor lógico de uma entrada adicional S: se S=0 a sequência a detectar é a anterior (0101); se S=1 a sequência a detectar deve ser 0011. Tal como no caso anterior, considere que as sequências podem ser parcialmente sobrepostas.
Para realizar o circuito pedido podemos construir dois comparadores para as sequências pretendidas e utilizar um multiplexer controlado pela entrada S para escolher a saída pretendida:
CLKCLRS1S0LIN
RIN
DCBA
QDQCQBQA
74x194clock
X
Gnd (0V)
Vcc (5V)
Z
S
1
0
multiplexer 2-1
- FIM -
LEEC - SD 2001/2002 ASG/JCA/ASL/HSM
Sistemas Digitais, 1ª chamada –26/Jun/2002 (100101110) Página 1 NOME:_______________CORRECÇÃO_____________________________________TURMA _______________
Departamento de Engenharia Electrotécnica e de Computadores
Sistemas Digitais (2001/2002) 1ª chamada – 26/Junho/2002 Duração: 2horas , sem consulta. Antes de iniciar a prova, tenha em atenção as seguintes recomendações: • Leia atentamente toda a prova antes de a iniciar. • Mostre e justifique adequadamente todos os passos das suas respostas. • A prova deverá ser resolvida no enunciado. Se necessário, utilize o verso para continuar a sua resolução. • Assine todas as folhas que entregar, indicando em cada uma o número de páginas/folhas que entregou. 1 - O sistema electrónico de navegação de um barco à vela é composto, entre outros equipamentos, por uma bússola e um catavento electrónicos (ver figura). A bússola indica a direcção do norte (Db, entre -180 e +180 graus) e o catavento indica a direcção do vento (Dv, entre -180 e +180 graus), ambas em relação ao eixo longitudinal do barco.
N
S
EW
Dv
Db
9
9
catavento
bússola
sistemaelectrónico
denavegação
a) Mostre que são necessários 9 bits para representar em complemento para dois cada um dos valores referidos com uma resolução de 1 grau. Utilizando toda a gama permitida por esse número de bits, qual seria a resolução mínima (em graus) com que se poderiam representar essas grandezas?
Ambas as grandezas são representadas por números inteiros no intervalo [-180,+180]. Como o sistema complemento para dois com N bits permite representar números com sinal no intervalo [-2(N-1), +2(N-1)-1], para incluir o intervalo referido é necessário usar, no mínimo, 9 bits (com 9 bits podem-se representar valores inteiros no intervalo [-256,+255]):
N ≥ max( log2(180)+1, log2(180+1) +1 ), N inteiro → N ≥ 9 Com 9 bits podem-se representar 511 intervalos (255-(-256)=511); o intervalo referido contém 360 graus (180-(-180)=360) . Assim, a resolução mínima que 9 bits permitem representar será dado por:
360/511 = 0.70º
b) Quando o barco está a navegar para Este (Db=-90º), qual é o valor binário produzido pela bússola electrónica, considerando que a unidade mínima representada é 1º ? E qual é esse valor se for utilizada toda a gama (9 bits) para representar os valores compreendidos entre -180º e +180º?
Se a unidade mínima representada for 1º, então cada unidade do sistema de representação equivale a 1º e -90º é representado pelo número inteiro -90. Como em complemento para dois com 9 bits:
+90 = 0010110102
a representação de -90 pode ser obtida trocando os bits todos e adicionando 1:
LEEC - SD 2001/2002 ASG/JCA/HSM -90 = - ( 0010110102 ) = 1101001012 + 1 = 1101001102
Sistemas Digitais, 1ª chamada –26/Jun/2002 (100101110) Página 2 NOME:_______________CORRECÇÃO_____________________________________TURMA _______________
Se for usada toda a gama de representação permitida por números de 9 bits em complemento para dois, então o valor mais negativo da grandeza a representar (-180) corresponderá ao extremo mais negativo da gama representável por 9 bits (-256). Como -90 = -180 / 2, então a quantidade -90º seria representada por -256/2 = -128. A grandeza -128 representa-se em complemento para dois com 9 bits como: -128 = - (0100000002) = 1011111112 + 1 = 1100000002
c) A direcção real do vento (em relação ao norte) pode ser obtida calculando a diferença entre os valores da direcção do
barco (Db) e da direcção do vento em relação ao barco (Dv). Determine a direcção real do vento quando o barco navega para Sul (Db=-180º) e o catavento indica uma direcção do vento igual a Dv=+170º, efectuando a operação aritmética em binário com 9 bits. Comente o resultado obtido (utilize o verso da folha).
Pretende-se realizar a operação aritmética Db-Dv, com Db=-180 e Dv=+170. Como Db-Dv se pode escrever Db+(-Dv), vamos obter primeiro a representação de Db=-180 e de -Dv=-170 em complemento para dois com 9 bits, e depois realizar a operação de adição em vez da subtracção: Db = -180 = - ( 0101101002) = 1010010112 + 1 = 1010011002
-Dv = -170 = - ( 0101010102) = 1010101012 + 1 = 1010101102 Realizando agora a operação de adição em binário:
101001100 + 101010110 1010100010
Podemos concluir que o resultado com 9 bits (010100010) não é correcto porque ocorre overflow porque é excedida a gama de representação de números inteiros com sinal, usando 9 bits em complemento para dois.
2 - Considere o seguinte circuito lógico que realiza a função F(A,B,C,D):
A C DB
F(A,B,C,D)
a) Obtenha uma expressão booleana da função F(A,B,C,D) e construa a sua tabela de verdade.
Traduzindo o circuito dado podemos escrever directamente a expressão booleana:
F(A,B,C,D) = (A+B+C)' + C.D'.A + C'.A Aplicando as leis de DeMorgan podemos transformar esta expressão numa forma soma-de-produtos, que é mais conveniente para construir a tabela de verdade pedida:
F(A,B,C,D) = A'.B'.C' + C.D'.A + C'.A
LEEC - SD 2001/2002 ASG/JCA/HSM
Sistemas Digitais, 1ª chamada –26/Jun/2002 (100101110) Página 3 NOME:_______________CORRECÇÃO_____________________________________TURMA _______________
Com a função representada na forma soma-de-produtos, pode-se construir a tabela de verdade sabendo que a função vale 1 quando C=B=A=0 (1º termo de produto) ou quando C=A=1 e D=0 (2º termo) ou quando C=0 e A=1 (último termo):
A B C D F(A,B,C,D) 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0
b) Utilizando mapas de Karnaugh, obtenha a forma simplificada produto de somas (POS) da função F(A,B,C,D).
Para obter a função mínima produto-de-somas vamos representar a função F(A,B,C,D) no mapa de Karnaugh e agrupar os zeros:
c) Realize a função F(A,B,C,D) utilizando apenas portas lógicas do tipo NAND de duas entradas (utilize o verso da folha).
Para construir um circuito lógico apenas com portas lógicas do tipo NAND é conveniente partir de um circuito AND-OR e para isso devemos obter a expressão (mínima) do tipo soma-de-produtos:
LEEC - SD 2001/2002 ASG/JCA/HSM
Sistemas Digitais, 1ª chamada –26/Jun/2002 (100101110) Página 4 NOME:_______________CORRECÇÃO_____________________________________TURMA _______________
O circuito AND-OR que realiza a expressão obtida é:
A
F(A,B,C,D)
B C D
Transformando este circuito de forma a utilizar apenas portas NAND com duas entradas:
A
F(A,B,C,D)
B C D
LEEC - SD 2001/2002 ASG/JCA/HSM
Sistemas Digitais, 1ª chamada –26/Jun/2002 (100101110) Página 5 NOME:_______________CORRECÇÃO_____________________________________TURMA _______________
3 – Considere uma máquina para fazer gelados constituídos por 3 doses (uma dose é uma bola de gelado) que podem ser de nata, café ou baunilha. Quando recebe a ordem para fazer um gelado, o sistema de controlo desta máquina coloca um cone sob a unidade de doseamento, inicia o processo de saída dos diversos sabores de gelado, e finalmente coloca o gelado pronto na saída da máquina (ver figura).
NATA BAUNILHACAFÉ
d1d0doseador b2b1b0controlo
dodoseador
o cone é posicionadono estado POS_CONE
o gelado pronto é entregueno estado SAI_CONE
A unidade de controlo do doseador que se pretende projectar é uma máquina de estados cuja entrada é um código de 3 bits (b2b1b0) que especifica o tipo de gelado pretendido. O período do sinal de relógio que comanda esta máquina de estados (2 segundos) corresponde ao tempo necessário para depositar no cone uma das doses de gelado. De acordo com o código b2b1b0 recebido, a máquina deve dosear cada um dos sabores segundo as regras seguintes:
• o custo dos sabores é, por ordem crescente, nata (o mais barato), café e baunilha (o mais caro). • a ordem do doseamento dos sabores seleccionados deverá ser, quando existam, primeiro nata, depois café e no fim baunilha. • o bit b2=1 selecciona o sabor nata, b1=1 selecciona o sabor café e b0=1 selecciona o sabor baunilha. • se o código tiver um único bit igual a 1, o gelado é composto por 3 bolas desse sabor. • se o código tiver 2 bits iguais a 1, é repetido o sabor mais barato. • se o código tiver 3 bits iguais a 1 o gelado terá os 3 sabores. • o código 000 é ilegal (nunca ocorre).
Por exemplo, se o código for 011 deverá ser feito um gelado com duas bolas de café e uma bola de baunilha; se for 100 deverá ter 3 bolas de nata. As saídas d1d0 da máquina de estados comandam o doseador para controlar a saída de cada tipo de gelado, de acordo com a tabela seguinte:
d1d0 tipo de gelado 00 nenhum 01 nata 10 café 11 baunilha
A figura (ver próxima folha) representa um diagrama de estados incompleto do sistema de controlo, relativo à unidade de doseamento de gelado. No estado POS_CONE é posicionado um cone sob a saída da unidade de doseamento e no estado SAI_CONE o gelado pronto é colocado na saída da máquina. Complete a parte do diagrama entre estes dois estados (POS_CONE e SAI_CONE), que gera a sequência de sinais de controlo apropriada (d1d0) para fabricar o gelado seleccionado pelo código b2b1b0.
LEEC - SD 2001/2002 ASG/JCA/HSM
Sistemas Digitais, 1ª chamada –26/Jun/2002 (100101110) Página 6 NOME:_______________CORRECÇÃO_____________________________________TURMA _______________
Como a duração de cada estado corresponde à colocação de uma dose de gelado de cada sabor, o diagrama de estados terá um total de 9 estados ( para além de POS_CONE e SAI_CONE), um para uma dose de cada sabor. Os valores indicados junto de cada transição representam as condições de transição de estado para b2b1b0; as transições de estado que não apresentam condição associada são transições incondicionais.
POS_CONE d1d0=00
d1d0=10d1d0=01
b2b1b0=1XX b2b1b0=01X
CAFE1NATA1
SAI_CONE d1d0=00
NATA2
NATA3
CAFE2
CAFE3
BAU1
BAU2
BAU3
00X
X00
X01ouXX0
X11
XX1XX0
XX1
d1d0=11
d1d0=11
d1d0=11
d1d0=10
d1d0=10
d1d0=01
d1d0=01
X10
2ª bola de nata:se tem baunilha e não tem caféou se não tem baunilha
2ª bola de café:se tem baunilha e tem café
2ª bola de baunilha:se a 1ª foi de baunilha
3ª bola de nata:se não tem café nem baunilha
3ª bola de café:se tem café e não tem baunilha
3ª bola de baunilha:se tem baunilha
3ª bola de café:se não tem baunilharepete café
3ª bola de baunilha:se tem baunilha
2ª bola de café:se a 1ª também foi de café
1ª bola de baunilha:se não tem nata nem café(note que 000 nunca ocorre)
após o gelado pronto vaipara SAI_CONE
LEEC - SD 2001/2002 ASG/JCA/HSM
Sistemas Digitais, 1ª chamada –26/Jun/2002 (100101110) Página 7 NOME:_______________CORRECÇÃO_____________________________________TURMA _______________
4 – Considere a máquina sequencial cuja tabela de transições de estados se mostra. Os estados S0, S1 e S2 são codificados respectivamente na forma Q1Q0 = 00, 01 e 10.
X S 0 1
S0 S0,0 S1,1 S1 S2,0 S1,0 S2 S0,0 S1,1
S*,Z
a) Identifique as entrada e saídas da máquina e diga, justificando, se se trata de uma máquina de Moore ou Mealy.
A entrada é X e a saída é Z. A máquina de estados representada corresponde a uma máquina de Mealy porque a saída Z é função do estado actual S e da entrada X.
b) Obtenha o circuito respectivo utilizando flip-flops tipo D e um critério de custo mínimo (utilize o verso da folha).
Primeiro vamos representar a tabela de transição de estados com a codificação dada para os estados, considerando dois flip-.flops do tipo D para representar o estado actual. Para minimizar o custo (complexidade) do circuito, vamos considerar que, quando o estado actual é 11 (não pertence à máquina de estados) o próximo estado e a saída Z são indiferentes:
Q1Q0 X Q1* Q0* Z 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 1 1 1 0 x x x 1 1 1 x x x
Vamos agora, com recurso a mapas de Karnaugh, obter expressões mínimizadas para Z(Q1,Q0,X), Q1*(Q1,Q0,X) e Q0*(Q1,Q0,X):
Q1Q0
X
X
Q1
Q0
00 01 11 10
0
1
0 0 x 0
1 0 x 1
Q0'.X
Q1Q0
X
X
Q1
Q0
00 01 11 10
0
1
0 1 x 0
0 0 x 0
Z(Q1,Q0,X) Q1*(Q1,Q0,X)
Q0.X'
Q1Q0
X
X
Q1
Q0
00 01 11 10
0
1
0 0 x 0
1 1 x 1
Q0*(Q1,Q0,X)
X
LEEC - SD 2001/2002 ASG/JCA/HSM
Sistemas Digitais, 1ª chamada –26/Jun/2002 (100101110) Página 8 NOME:_______________CORRECÇÃO_____________________________________TURMA _______________
As equações minimizadas na forma soma-de-produtos são:
Q1*(Q1,Q0,Z) = Q0.X' Q0*(Q1,Q0,X) = X Z(Q1,Q0,X) = Q0'.X
Note-se que, como nestas equações nunca aparece Q1, então o circuito pode ser simplificado removendo o flip-flop Q1 e todo o circuito lógico que produz Q1* (desenhado a cinzento na figura):
D Q
D QX
Q 1
Q 0
clock
Z
c) Supondo que a máquina arranca no estado não definido (em que Q1Q0 = 11), e tendo por base a solução encontrada,
indique, justificando, quais os estados seguintes se a entrada X for igual a 0 ou igual a 1.
Substituindo os valores para Q1 e Q0 nas equações obtidas na alínea anterior obtemos:
Se X=0 então Q1* = 1.1 = 1 e Q0*=0, logo S* = 10 (estado S2)
Se X=1 então Q1* = 1.0 = 0 e Q0*=1, logo S* = 01 (estado S1) Outra forma de obter este resultado: como a máquina de estados não depende de Q1, então o "estado" Q1Q0=11 é equivalente ao estado Q1Q0=01 (estado S1); pela tabela dada podemos ver que de S1 passa para S2 se X=0 e passa para S1 se X=1.
LEEC - SD 2001/2002 ASG/JCA/HSM
Sistemas Digitais, 1ª chamada –26/Jun/2002 (100101110) Página 9 NOME:_______________CORRECÇÃO_____________________________________TURMA _______________
5 – Pretende-se projectar um circuito sequencial que conte ciclicamente de 59 até zero, em formato BCD (dois dígitos decimais
codificados em binário), afixando o resultado em dois mostradores de 7 segmentos (por exemplo, como se mostra na figura, quando o contador das dezenas tem as saídas QDQCQBQA=0011 e o contador das unidades tem as saídas QDQCQBQA=0110, o valor afixado nos mostradores é 36).
a) Projecte o circuito referido utilizando apenas 2 contadores UP/DOWN do tipo 74x169.
UPDWN LD ENT ENP QD QC QB QA RCO QD* QC* QB* QA*x 0 x x x x x x a) D C B Ax 1 1 x x x x x 1 QD QC QB QAx 1 x 1 x x x x a) QD QC QB QA1 1 0 0 N (se N<15) 1 N + 11 1 0 0 1 1 1 1 0 0 0 0 00 1 0 0 N (se N>0) 1 N - 10 1 0 0 0 0 0 0 0 1 1 1 1
a) RCO=0 se ENT=0 e ( (N=15 e UPDWN=1) ou (N=0 e UPDWN=0) )
74x169 estadopresente
próximoestado
clock
CLK
UP/DWN
ENP
DCBA
QDQCQBQA
74x169
LD
ENT
RCO
CLK
UP/DWN
ENP
DCBA
QDQCQBQA
74x169
LD
ENT
RCO
dezenas
unidades
Gnd (0V)
quando as dezenas chegam a zeroé activado o RCO (conta para baixo)mas só faz o load de 5quando as unidades chegam a zeroe activam o RCO das unidades
quando as unidades chegam a zeroé activado o RCOo contador das unidades faz load de 9
ambos os contadores contam para baixo(UP/DWN=0)
Vcc (5V)
LEEC - SD 2001/2002 ASG/JCA/HSM
Sistemas Digitais, 1ª chamada –26/Jun/2002 (100101110) Página 10 NOME:_______________CORRECÇÃO_____________________________________TURMA _______________
b) Modifique o circuito anterior por forma a acrescentar uma entrada (activa no nível lógico zero) que permita iniciar o contador no valor 59 (identifique apenas as alterações a efectuar no circuito anterior e se necessário utilize o verso da folha).
Para iniciar os contadores em 59 é necessário activar as entradas LD (Load) de ambos os contadores. Para isso basta acrescentar uma porta AND nas entradas LD de cada contador, com uma das suas entradas ligada ao sinal X que provoca a iniciação em 59:
clock
CLK
UP/DWN
ENP
DCBA
QDQCQBQA
74x169
LD
ENT
RCO
CLK
UP/DWN
ENP
DCBA
QDQCQBQA
74x169
LD
ENT
RCO
dezenas
unidades
Gnd (0V)
X
Vcc (5V)
LEEC - SD 2001/2002 ASG/JCA/HSM
Sistemas Digitais, 1ª chamada –26/Jun/2002 (100101110) Página 11 NOME:_______________CORRECÇÃO_____________________________________TURMA _______________
6 – Considere o circuito seguinte baseado no registo de deslocamento 74x194:
CLKCLRS1S0LIN
RIN
DCBA
QDQCQBQA
74x194clock
Gnd (0V)
Vcc (5V)
função S1 S0 QA* QB* QC* QD*
holdshift rightshift leftload
0 00 11 01 1
QA QB QC QDRIN QA QB QCQB QC QD LINA B C D
Universal Shift-register 74x194
QDQCQBQA
a) Determine a sequência nas saídas QAQBQCQD, supondo que o estado inicial é QAQBQCQD = 0000.
Partindo do estado inicial QAQBQCQD=0000, vamos analisar o modo de funcionamento do shift-register para determinar o próximo estado (note que RIN e LIN estão permanentemente ligados a 1, e as entradas ABCD estão também sempre ligadas a 0011):
QA QB QC QD S1 S0 Modo 0 0 0 0 0 1 shift right (de QA para QD, RIN=1) 1 0 0 0 0 1 shift right (de QA para QD, RIN=1) 1 1 0 0 0 1 shift right (de QA para QD, RIN=1) 1 1 1 0 1 1 load de ABCD=0011 0 0 1 1 1 0 shift left (de QD para QA, LIN=1) 0 1 1 1 1 0 shift left (de QD para QA, LIN=1) 1 1 1 1 1 0 shift left (de QD para QA, LIN=1) 1 1 1 1 1 0 shift left (de QD para QA, LIN=1) . . . . . . . . .
Após ser atingido o estado QAQBQCQD=1111, o shift-register mantém-se no estado QAQBQCQD=1111.
b) Indique o estado seguinte a QAQBQCQD = 1111 e altere o circuito por forma a que esse estado seguinte passe a ser
QAQBQCQD = 0000 (mostre as alterações na figura).
Pelos resultados obtidos na alínea anterior, o estado a seguir a QAQBQCQD=1111 é QAQBQCQD=1111. Para que o estado seguinte a QAQBQCQD=1111 seja QAQBQCQD=0000, basta ligar à entrada CLR (clear) do shift-register a saída (activa com o nível lógico zero) de um comparador com 1111, que pode ser feito com uma porta NAND de 4 entradas. A alteração está indicada a azul no desenho.
LEEC - SD 2001/2002 ASG/JCA/HSM- FIM -