Professional Documents
Culture Documents
Fundamentos de Arquitectura de
Computadores
Caderno de Exercı́cios
13 de Setembro de 2013
Capı́tulo 1
Representação da Informação
a) Qual a representação do maior número com 2 dı́gitos em cada uma das bases?
b) Qual a representação do número seguinte em cada uma das bases?
c) Qual a representação do número anterior a 101 em cada uma das bases?
1.3 Qual é a representação do número anterior a 1000, caso este esteja representado . . .
a) . . . em base 2?
b) . . . em base 8?
c) . . . em base 16?
1
1.6 Complete a seguinte tabela
n 2n
1 2
2 4
3 8
... ...
10 1024
a) 256 c) 34 e) 1022
b) 255 d) 510 f) 515
1.9 Quantos bits são necessários para representar cada um dos seguintes números?
a) 25 d) 112 g) 999
b) 33 e) 350 h) 1032
c) 65 f) 520
Decimal Binário
100 64 + 32 + 4 26 + 25 + 22 1100100
1011
80
128 + 32 + 1
27 + 25 + 24 + 21
a) 25 d) 300 g) 98.75
b) 75 e) 2004 h) 31.6875
c) 513 f) 2.375 i) 0.1
2
1.12 Converta de decimal para octal
a) 5 d) 510 g) 2.75
b) 88 e) 2012 h) 3.125
c) 120 f) 1024 i) 100.3125
3
1.20 Converta o número 10.3 para decimal, admitindo que este se encontra representado . . .
a) . . . em base 5. c) . . . em base 8.
b) . . . em base 6. d) . . . em hexadecimal.
1.21 Converta o número (2004)10 para cada uma das seguintes bases
a) Base 8 c) Base 5
b) Base 16
1.22 Converta o número (103.25)10 para cada uma das seguintes bases
a) Base 2
b) Base 8
c) Base 16
d) Será possı́vel representar correctamente este número na base 5? Justifique.
4
1.27 Utilizando 8 bits e notação em complemento para 2, escreva uma representação binária
para os seguintes valores inteiros:
a) −1 c) −128 e) −39
b) −2 d) −18 f) −124
1.28 Seria possı́vel representar o número 130 nas condições do exercı́cio anterior? Justifique
a sua resposta.
1.29 Utilizando 5 bits e notação em complemento para 2, calcule o resultado das seguintes
operações. (Faça as operações sobre as representações em binário dos números e para
cada uma delas indique se existe overflow )
a) −8 + 6 c) 3 − 5 e) 7 − 5
b) −13 − 5 d) 8 + 8
1.30 Um aluno escreveu um programa e, para seu espanto, quando o estava a testar verificou
que a operação 125 + 4 deu como resultado −127 . . .
Explique o que se terá passado.
1.31 Indique o valor dos seguintes números, admitindo que estes são inteiros com sinal,
representados em complemento para 2 num sistema de 8 bits:
a) 0101 1000 c) 1000 0000 e) 1111 1111
b) 0000 1110 d) 1001 1100
1.32 Obtenha a representação dos seguintes números, em complemento para 2 num sistema
de 4 bits.
a) 3 c) 0 e) −1
b) 6 d) −2 f) −8
1.33 Obtenha a representação dos seguintes números, em complemento para 2 num sistema
de 8 bits.
a) 8 d) 101 g) −3
b) 33 e) 0 h) −96
c) 64 f) −1 i) −128
1.34 Calcule o resultado das seguintes operações, num sistema de 8 bits que usa representação
em complemento para 2. Confirme, convertendo os operandos e o resultado para
decimal.
a) 0000 1110 + 1001 1100
b) 0101 1000 + 1111 1111
c) 0101 1000 + 0100 0100
5
1.35 Transforme os seguintes números inteiros, representados num sistema de 8 bits que usa
representação em magnitude, para um sistema idêntico com 16 bits.
a) 0011 0101
b) 1100 0001
1.36 Transforme os seguintes números inteiros, representados num sistema de 8 bits que
usa representação em magnitude, para um sistema de 8 bits que usa representação em
complemento para 2.
a) 1011 0100
b) 1100 0001
1.37 Transforme os seguintes números inteiros, representados num sistema de 8 bits que usa
representação em complemento para 2, para um sistema idêntico com 16 bits.
a) 0011 0101
b) 1100 0001
a) Sabendo que o código ASCII do C maiúsculo é 1000011 qual será o código ASCII
das letras maiúsculas A, B e F?
b) Qual o código ASCII das mesmas letras em decimal?
c) Quais os últimos quatro bits do código ASCII do algarismo 5?
d) Indique qual a diferença entre o código ASCII de uma letra maiúscula e minúscula.
e) Coloque por ordem (de codificação) os seguintes caracteres: AbC$0%B.
6
Capı́tulo 2
Funções Lógicas
2.3 Escreva a tabela de verdade correspondente a cada uma das seguintes funções lógicas:
a) f = x + y d) f = x(y + z) + x y
b) f = x + y + z e) f = (x + w) (x + y)
c) f = x + y + z
b) A d) X
F
X Y
B Z
2.7 Simplifique:
a) x + 1 d) x (x + 0) g) x + 1 + x
b) x y + 1 e) x + x y
c) x + 0 + x f) (x y + 1) · z
A
B
a) Indique a função lógica correspondente a f , extraı́da directamente a partir do cir-
cuito.
b) Simplifique a função anterior recorrendo às propriedades da álgebra de Boole.
8
c) Desenhe o esquema do circuito correspondente à simplificação da alı́nea anterior.
2.13 Indique a tabela de verdade e o circuito correspondentes a cada uma das seguintes
funções
a) f = x y z + x y z + x y z
b) f = x y z + x y z + x y z + x y z
c) f = w x y z + w x y z + w x y z + w x y z
2.15 Indique uma expressão algébrica correspondente a uma função de 3 variáveis que:
a) tome o valor lógico 1 para as combinações de entrada 0 0 0, 0 1 0 e 1 1 1 (e 0 nos
restantes casos).
b) tome o valor lógico 1 quando duas ou mais variáveis de entrada tomam o valor lógico
1, e 0 caso contrário.
c) Simplifique as expressões obtidas nas alı́neas anteriores.
2.16 Consoante os casos, complete a tabela de verdade ou então escreva a expressão da soma
de termos mı́nimos correspondente.
a) x = ab + ab c) x= e) x=
a b x a b x a b x
0 0 0 0 0 0 0 1
0 1 0 1 1 0 1 1
1 0 1 0 1 1 0 0
1 1 1 1 0 1 1 1
b) f = x y z + x y z + x y z d) f= f) f = x y z + x y z + x y z
x y z f x y z f x y z f
0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 1 1 0 0 1
0 1 0 0 1 0 0 0 1 0
0 1 1 0 1 1 0 0 1 1
1 0 0 1 0 0 1 1 0 0
1 0 1 1 0 1 1 1 0 1
1 1 0 1 1 0 0 1 1 0
1 1 1 1 1 1 0 1 1 1
9
2.17 A partir dos seguintes mapas de Karnaugh, obtenha uma expressão simplificada para
a função lógica correspondente.
a) BC d) BC g) BC
A 00 01 11 10 A 00 01 11 10 A 00 01 11 10
0 1 0 1 1 0 1 1 1 1
1 1 1 1 1 1 1 1 1
b) CD e) CD h) YZ
AB 00 01 11 10 AB 00 01 11 10 WX 00 01 11 10
00 1 1 00 1 1 00
01 1 1 01 1 1 1 1 01 1
11 1 11 11 1 1 1 1
10 10 1 1 10 1 1 1
CD f) i) YZ
c) ZW
WX 00 01 11 10
AB 00 01 11 10 XY 00 01 11 10
00 1 1 1 00 1 1 1
00 1 1 1 1
01 1 1 1 01 1 1 1 1 01 1 1
11 1 1 11 1 11 1 1
10 1 1 10 10 1
01 1
11 1
10 1
01 1 01 1 1 01
11 1 1 11 1 1 11 1 1
10 10 10 1
a) Indique os termos mı́nimos correspondentes aos ’1’s do mapa.
b) Indique o(s) termo(s) produto correspondente(s) à simplificação do mapa.
c) Obtenha o(s) mesmo(s) termo(s) produto através de uma simplificação algébrica.
10
2.20 Assinale num mapa de Karnaugh com 4 variáveis (x, y, z, w)
a) Todos os termos mı́nimos contendo z w.
b) Todos os termos mı́nimos contendo x.
c) Todos os termos mı́nimos contendo x y z.
f (x, y, z) = x y z + x y z + x z
2.22 Obtenha as funções simplificadas a partir dos seguintes mapas de Karnaugh, onde ×
representa uma saı́da não especificada (indiferença):
a) BC c) CD e) CD
A 00 01 11 10 AB 00 01 11 10 AB 00 01 11 10
0 x 1 00 1 00 x 1
1 x 1 x 01 1 1 x 01 1 x x
11 x 1 11 x
10 1 10 x 1
b) CD d) CD
AB 00 01 11 10 AB 00 01 11 10
00 x 1 00
01 x 1 x 01 x x 1 1
11 1 x 1 1 11 x x 1
10 1 10 x x
01 1 1 1
11 1 1 1
10 1
2.24 Simplifique as seguintes funções, expressas como soma de termos mı́nimos, recorrendo
a um mapa de Karnaugh:
∑
a) f (a, b, c) = m(0, 2, 4, 6, 7)
∑
b) f (a, b, c, d) = m(0, 2, 4, 6, 8, 10, 11, 12, 14, 15)
∑
c) f (x, y, z, w) = m(0, 1, 5, 8, 9, 10, 11, 13, 15)
11
Capı́tulo 3
Circuitos Combinatórios
a) Projecte o circuito admitindo que nos restantes casos a saı́da assume o valor lógico 0.
b) Projecte o circuito admitindo que nos restantes casos é indiferente o valor lógico da
saı́da.
3.2 Projecte um circuito com dois pares de entradas, de 2 bits cada uma, representando
dois números A e B. A saı́da do circuito deverá assinalar 1 no caso do valor de A ser
maior ou igual ao número B.
3.3 Projecte um circuito no qual a saı́da toma o valor lógico 1 sempre que à entrada seja
apresentada uma representação em binário de um múltiplo de 2 ou de 3. O número
máximo que pode ser apresentado à entrada é o 15.
3.4 Elabore um circuito combinatório que calcule a soma de um par de números de 2 bits.
Tenha em atenção que o resultado vem representado em 3 bits.
3.6 Através de uma tabela de verdade e confirmando depois por manipulações algébricas,
verifique a seguinte relação:
x y ⊕ x + y = x ⊕ y.
3.7 Dispondo apenas de portas NAND de duas entradas e portas NOT, desenhe um circuito
que seja equivalente a:
a) uma porta lógica OR de 3 entradas. c) uma porta lógica XNOR.
b) uma porta lógica AND de 3 entradas.
13
3.8 Utilizando propriedades e teoremas da álgebra de Boole, demonstre as seguintes igual-
dades:
a) (x + y) ⊕ (x + z) = x (y ⊕ z)
b) (a ⊕ b) a + a b = a b
c) (a ⊕ c) b + b c + a c = a b + c
∑
d) f (a, b, c) = (a + b)c + (a ⊕ c) a b = m(3, 5, 6, 7)
e) (y + z) (x ⊕ y) + x + y z = x + y z)
A
B
F
a) Qual a função lógica correspondente a este circuito?
b) Utilizando manipulações algébricas, simplifique a função obtida na alı́nea anterior,
de modo a transformá-la numa soma de produtos.
Vcc
A
F
B
GND
a) Construa a tabela de verdade de F em função das variáveis lógicas A e B. Nota: a
Vcc corresponde o valor lógico 1 e a GND o valor lógico 0.
b) Utilizando propriedades e teoremas da álgebra de Boole, simplifique o circuito e
confirme o resultado da alı́nea anterior.
14
3.12 Desenhe o esquema interno de
a) Um multiplexer 2–1.
b) Um multiplexer 2–1 com linha de enable.
c) Um codificador 8/3.
C
B S
A
15
3.17 Considere o seguinte circuito:
DEC 2/4
X A0 D0
Y A1 D1 F
D2
D3
G
3.19 Dispondo apenas de um descodificador 2/4, 4 multiplexers 2–1, e lógica adicional à sua
escolha, projecte um circuito equivalente a um multiplexer 8–1.
MUX 4-1
A S0
S1
B
D0 Y F
C D1
D2
D D3
A
tpd
B X NOT 3ns
C AND–2 5ns
OR–3 6ns
D
a) Quanto tempo demora a saı́da X a responder a cada uma das seguintes variações nas
entradas (as combinações estão indicadas usando a ordem A B C D):
•0000→0001
•0100→1100
•0010→0110
b) Qual o pior caso de propagação?
c) Transforme o circuito num outro que só contenha portas lógicas NAND (com quais-
quer número de entradas).
16
3.22 Considere o seguinte circuito e as especificações temporais referentes às várias portas
lógicas:
Y tpLH tpHL
AND 21ns 23ns
X W
NAND 18ns 18ns
Z NOT 7ns 8ns
1
X
0
20 50 t (ns)
3.23 Considere os seguintes circuitos:
X
X
F F
Y
Y Z
X
F
Y
a) Elabore uma tabela de verdade para cada um dos circuitos.
b) Determine, para cada um dos circuitos, o pior caso de atraso de propagação das
entradas para a saı́da, dadas as seguintes caracterı́sticas temporais das portas NAND:
(indique também uma situação em que ocorra o pior caso)
i) tpd = tpLH = tpHL = 10ns;
ii) tpLH = 9ns; tpHL = 10ns.
17
3.25 Considere o seguinte circuito:
MUX 4-1
X S0
Y S1
tpLH tpHL
D0
MUX (selectores ⇒ saı́da) 21ns 23ns
Y F
Z D1
MUX (entradas ⇒ saı́da) 18ns 18ns
D2 NOT 7ns 8ns
Vcc
D3
3.26 Considere o seguinte circuito e as especificações temporais dadas pela tabela (considere
tpLH = tpHL para todas as portas lógicas):
tpd
A Y
B AND 9ns
Z
OR 15ns
C
NOT 5ns
D X
a) Suponha que todas variáveis se encontram com o valor lógico 0. Se o circuito se
encontrar estabilizado, qual será o valor lógico na saı́da Z?
b) Nas condições da alı́nea anterior, mudou-se o nı́vel lógico da variável B para 1.
Quanto tempo demorará até que a saı́da varie?
c) Suponha novamente que todas as variáveis se encontram a 0 e o circuito se encontra
estabilizado. Trace um diagrama temporal das formas de onda nos pontos X, Y e Z,
supondo que em t = 0 a variável C vai a 1, descendo novamente para 0 em t = 40ns.
d) Para este circuito, indique uma situação em que ocorra o pior caso de propagação.
Quanto tempo de atraso corresponde ao pior caso? Qual o caminho crı́tico?
3.27 Considere a seguinte função, dada por uma soma de termos mı́nimos
∑
F(X, Y, Z, W) = m(0, 2, 4, 6, 9, 14),
18
e) Qual o pior caso de propagação do novo circuito?
Compare com o obtido na alı́nea c) e comente.
3.28 Pretende-se projectar um circuito que calcule o valor do bit de paridade numa sequência
de 3 bits. (O bit de paridade toma o valor lógico 1 quando o número de 1’s na sequência
for ı́mpar, e 0 caso contrário.)
19
Capı́tulo 4
Circuitos Sequenciais
a) Tendo em conta as formas de onda representadas para A e B, esboce a forma de onda
correspondente à saı́da Y. Assinale as eventuais situações em que não se possa prever
teoricamente qual o valor de Y.
Y
t
b) A este circuito
corresponde um dos latches estudados nas aulas da disciplina. Qual
será esse latch? Indique também a que correspondem os sinais A, B e Y.
Entradas Saı́da
0 0 1
0 1 0
1 1 0
0 1 1
0 0 1
Justificando com base na tabela, indique se o circuito montado pelo Zé é combinatório
ou sequencial
21
4.3 Explique qual a diferença de funcionamento entre um latch S R e um latch S R.
A
Y
Z
C
a) Complete a seguinte tabela, supondo que às entradas A, B e C é apresentada a
sequência de valores lógicos, tenha em conta que podem existir situações que não
consegue prever teoricamente.
A B C Y Z
0 1 1 0 1
0 1 0
0 0 0
1 0 0
1 1 0
1 1 1
1 0 1
4.5 Pretende-se projectar um circuito que se comporta como um elevador de 4 andares (em
que cada andar é representado por um estado). A direcção do elevador é controlada
por uma variável A: A = 0 desce, A = 1 sobe.
4.6 Um dado circuito sequencial utiliza dois flip–flops do tipo D (FFA e FFB ). O referido
circuito contém ainda duas entradas X e Y, e uma saı́da Z. As equações que definem
este circuito são dadas por:
DA = X Y + X A DB = X B + X A Z = X B,
22
a) Este circuito seguirá o modelo de Moore ou o de Mealy ? Justifique.
b) Desenhe o esquema eléctrico deste circuito.
c) Obtenha a tabela de transição de estados.
d) A partir da tabela, desenhe o diagrama de estados.
X Y
D D
C C
CLK
1/0
1/1
A B
0/1
0/0
0/1 1/1
23
4.9 Considere o seguinte diagrama de estados:
A/00 B/11
0 0
1
1
C/01 0 F/01 1
0,1
1
D/11 E/00
0 0
a) Este diagrama segue o modelo de Mealy, ou o de Moore?
b) Quantas entradas e quantas saı́das terá o circuito sequencial correspondente a este
diagrama de estados?
c) Quantos flip–flops serão necessários para construir o circuito? Justifique.
d) Projecte um circuito correspondente a este diagrama de estados.
e) Suponha que os tempos de propagação de cada porta lógica e os tempos tı́picos de
cada flip–flops são os dados na seguinte tabela. Qual será a frequência máxima
do sinal de relógio para a qual o circuito projectado ainda funciona correctamente?
4.10 Um circuito sequencial com uma entrada X comporta-se do seguinte modo: quando
X se encontra a 1, o circuito segue a sequência de estados 00 10 11 01 00 10 11. . .
Quando X se encontra a 0, o circuito permanece no estado em que se encontra nessa
altura.
a) Projecte este circuito.
b) Calcule a frequência máxima do sinal de relógio para o circuito projectado, assu-
mindo as temporizações dadas no exercı́cio anterior.
4.11 Pretende-se projectar um circuito com uma variável de entrada X e com o seguinte
comportamento:
• se X se encontra a 0, efectua uma contagem ascendente de 0 a 7, voltando depois
a 0 e repetindo.
• se X se encontra a 1 efectua uma contagem descendente de 7 a 0, voltando depois
a 7 e repetindo.
Os valores das saı́das deverão depender apenas das variáveis de estado.
24
4.12 Pretende-se projectar um circuito sequencial que compare dois números inteiros. O
circuito deverá ter duas entradas X e Y onde surgem, em série, os bits dos 2 números
a ser comparados (os bits de menor peso surgem em primeiro lugar). As saı́das do
circuito deverão indicar, em cada instante, se X > Y, X = Y, ou X < Y.
4.13 Projecte um circuito sequencial sı́ncrono que seja capaz de detectar erros num protocolo
de comunicação do tipo Handshake. Neste protocolo de comunicação existem duas
linhas designadas Request (R), utilizada pele emissor, e Acknowledge (A), utilizada pelo
receptor. Numa comunicação sem erros passa-se a seguinte sequência de acções:
1. O emissor activa a linha de Request;
2. O receptor responde activando a linha de Acknowledge;
3. O emissor desactiva a linha de Request;
4. O receptor desactiva a linha de Acknowledge.
Uma situação de erro no protocolo ocorre quando esta sequência não é seguida. Na
figura ilustram-se as formas de onda correspondentes à situação normal e uma das
possı́veis situações de erro. Mal um erro seja detectado, a saı́da deverá imediata-
mente ser activada, permanecendo nesse estado até ser feita uma inicialização (Reset)
à máquina.
CLK
Erro
4.14 Projecte um circuito sequencial com uma entrada série por onde vão aparecendo os
bits de um dado número inteiro (com um número arbitrário de bits), entrando o de
menor peso em primeiro lugar. O circuito deverá calcular o complemento para 2 desse
número, apresentando os seus bits numa saı́da série (com o de menor peso primeiro).
Assuma que tanto os bits de entrada como os de saı́da encontram-se sincronizados com
o sinal de relógio.
4.16 A partir de um registo de 8 bits, e outros circuitos à sua escolha, elabore o esquema de
um circuito que permita o carregamento sı́ncrono do registo, e efectuar multiplicações
25
do número armazenado por 4, 8 e 16 (suponha que o número a carregar é composto
por 4 bits).
S2 S1 S0 Operação
0 0 0 Divisão inteira do conteúdo de A por 2
0 0 1 Multiplicar o conteúdo de A por 2
0 1 0 Guardar os valores de A + B em C
0 1 1 Copiar o valor de A para B
1 0 0 Clear dos registos
1 0 1 Carregamento paralelo de A
1 1 0 Carregamento paralelo de B
1 1 1 Carregamento paralelo de C
Nota: faça as assunções que entender em relação aos registos utilizados.
4.18 A partir de um contador binário de 4 bits com carregamento sı́ncrono e lógica adicional,
elabore o esquema de um circuito correspondente um contador BCD.
4.20 Utilizando como base um contador binário de 3 bits com carregamento sı́ncrono, pro-
jecte um circuito correspondente ao seguinte diagrama de estados:
X/00 X/01
0 1 2
5 4 3
X/10 0/11
26
4.21 Considere o seguinte diagrama de transição de estados:
1
0
01/0
00/1
1
0
1
11/1
0 1 1
Q1 Q0 A Q′1 Q′0 S
0 0 0 1 0 1
0 0 1 1 1 0
0 1 0 × × ×
0 1 1 × × ×
1 0 0 0 0 1
1 0 1 1 1 0
1 1 0 0 0 1
1 1 1 1 1 1
27
a) Com base na tabela de transição de estados, justifique que o circuito segue o modelo
de Mealy.
b) Desenhe o diagrama de transição de estados do circuito.
c) Utilizando flip–flops do tipo D, projecte um circuito que corresponda à tabela de
transição de estados anterior.
d) Considere as temporizações indicadas na seguinte tabela:
Com base nessas temporizações, calcule, para o circuito que desenhou na questão
anterior:
i) O pior atraso desde o momento em que ocorre uma transição do sinal de relógio
até à actualização da saı́da S (assumindo que o valor de A está estável).
ii) A frequência máxima de funcionamento do circuito.
Ctr-3
P2 Q2
P1 Q1
P0 Q0
LD
CE TC
SR
Clock
28
4.25 Considere um circuito sequencial com 3 estados (A a C), uma entrada T e uma saı́da S,
que tem o seguinte comportamento:
4.26 Considere o contador binário de 3 bits com carregamento paralelo (LD) representado na
figura. Mantendo a possibilidade de fazer load, sugira uma forma de acrescentar a pos-
sibilidade de também fazer reset. Pode utilizar os circuitos combinatórios que entender.
Ctr-3
P2 Q2
P1 Q1
P0 Q0
LD
Clock
4.27 Considere as seguintes formas de onda, obtidas num circuito sequencial com uma en-
trada A e uma saı́da S. T0 a T2 são os primeiros 3 ciclos do sinal de relógio.
T0 T1 T2
Clock
a) Encontre nas formas de onda uma situação em que se evidencie que este circuito
segue o modelo de Mealy. Justifique.
b) Sabe-se que o circuito está nos estados E0 , E1 e E2 nos intervalos de tempo T0 , T1
e T2 , respectivamente. Sendo assim, complete os valores em falta nas ligações do
seguinte diagrama de transição de estados, tendo em conta as formas de onda.
29
E1
1/1
E0
E2
1/0
4.28 Considere o seguinte circuito, construı́do a partir de um contador de 4 bits, com carre-
gamento paralelo (load) e reset, ambos sı́ncronos com o sinal de relógio:
CTR-4
Vcc
P3 Q3
P2 Q2
P1 Q1
P0 Q0
Load
Reset
Clock
1
00 01
0
1
0
0 10
1
30
4.30 As seguintes formas de onda dizem respeito à evolução temporal das entradas A e B,
bem como da saı́da F, de um determinado circuito em teste.
A
B
F
T1 T2 T3 T4 T5
4.31 Suponha que tem à sua disposição um contador de 4 bits com carregamento paralelo e
reset sı́ncronos com o sinal do relógio.
CTR-4
P3 Q3
P2 Q2 RS PL Operação
P1 Q1
1 × Reset
P0 Q0
0 1 Carregamento paralelo
PL 0 0 Contar normalmente
RS
Com base num contador deste tipo e lógica adicional que ache necessária, projecte um
circuito que segue a sequência de estados . . . 0, 1, 2, 3, 9, 10, 11, 12, 0, 1, 2, . . .
Note que a contagem “salta” do 3 para o 9 e que depois do 12 volta a 0.
X D0 Q0 D1 Q1
Clock
a) Escreva as equações de entrada nos flip-flops e a equação de saı́da do circuito.
b) Apresente a tabela de transição de estados, assim como o diagrama de estados.
31
c) Qual a função do sinal de relógio no circuito sequencial representado na figura? Re-
presente num diagrama temporal as variáveis de estado Q1 e Q0 e a saı́da Y quando
a entrada X tem o seguinte comportamento:
Clock
X 1
Q 1 0
Q1 0
Y
32
Capı́tulo 5
Memórias
5.1 Indique as principais diferenças entre uma memória do tipo ROM e uma memória do
tipo RAM.
5.5 Com base nos tempos de propagação definidos no catálogos dos circuitos integrados,
calcule o tempo de acesso à memória projectada em cada uma das alı́neas do exercı́cio
anterior.
5.6 Utilizando o material que achar adequado, projecte uma memória ROM com o seguinte
conteúdo:
33
Endereço Conteúdo
0 011
1 101
2 000
3 110
4 111
5 101
6 100
7 110
5.8 Em que consiste uma memória EPROM? Indique os passos necessários para reprogra-
mar uma memória deste tipo.
Tipos de memória:
• RAM
• ROM
• PROM
• Flash EEPROM
Factores:
• Possibilidade de escrita rápida.
• Possibilidade de leitura rápida.
• Possibilidade de múltiplas re-escritas.
• Possibilidade de apagar o conteúdo através de circuitos eléctricos.
• Volatibilidade.
5.10 Pretendem-se implementar as seguintes funções lógicas utilizando apenas uma ROM
8 × 4 bits.
F0 =A+B
F1 = AC
F2 =A⊕C
F3 =B+C
5.11 Calcule:
a) O número de palavras que uma memória com 12 linhas para endereçamento consegue
armazenar.
34
b) Qual o número de endereços numa memória com 10 linhas de endereço.
c) A capacidade (em bytes) de uma memória com 12 linhas para endereçamento e
8 linhas de dados.
d) A capacidade de uma memória com 10 linhas de endereço e 16 linhas de dados.
e) Qual o número total de endereços numa memória com uma capacidade de 16 KBytes
e palavras de 16bits.
f) O número de bits para especificar endereços numa memória com uma capacidade de
32KBytes, organizada segundo palavras de 4 Bytes.
5.12 Utilizando como base circuitos de memórias SRAM 1K × 8 bits, com sinais R/W, CS, e
saı́das tri-state, elabore o esquema de um sistema de memória com:
a) 1K × 16 bits
b) 4K × 8 bits
c) 4K × 16 bits
5.14 Elabore uma comparação entre uma RAM estática e uma RAM dinâmica, atendendo
aos seguintes factores de comparação:
5.15 É comum encontrar buffers tri–state nas saı́das de dados (e também entradas) das
memórias. Explique a utilidade deste tipo de portas lógicas.
5.16 O João comprou para o seu computador uma memória DRAM com 2GBytes.
a) Indique o número mı́nimo de linhas de endereços necessárias para indexar correcta-
mente esta memória, sabendo que em cada endereço são guardados 64 bits.
b) Sabendo que no computador do João já existiam 2 memórias DRAM com capacidade
de 1GByte cada uma, elabore um possı́vel esquema da organização da memória no
computador do João, após a ligação da nova memória.
35
5.18 Pretende-se projectar um banco de memória para um brinquedo. Tanto o barramento
de endereços como o de dados possuem 8 linhas. O espaço de endereçamento deverá
ser projectado atendendo às seguintes condições:
• No inı́cio do espaço de endereçamento deverá ficar situada uma ROM com uma
dimensão de 64Bytes. A ROM possui um sinal de output enable activo a HIGH.
• A partir do endereço 0x80 deverá estar um bloco de RAM com 96Bytes. Possuem-
se circuitos RAM de 32×8 bits com entrada chip select activa a LOW.
a) Dispondo de RAMs e ROMs 4K×8 (com entradas chip select / output enable activos
a HIGH), elabore o esquema destes bancos de memória.
b) Substitua toda a lógica combinatória referente à descodificação de endereços da
alı́nea anterior por uma PROM cuja dimensão, estruturação e conteúdo será total-
mente especificada por si.
36
Capı́tulo 6
Arquitectura Básica
de um Processador
6.1 Considere que tem à sua disposição 2 registos (R1 e R2) com carregamento paralelo e
clear sı́ncronos, assim como os blocos de lógica combinatória que entender.
LE RB0
RB1
S1 S 0
Load
R0 0 BUS B
1 MUX-‐B
2
DEC-D 3
Load
0
R1
1
2
A0 A1 3 Load
R2
0
1
BUS A
RD0 RD1
2 MUX-‐A
Load
R3 3
S1 S 0
RA1
RA0
Endereços
Data out
F
Deslocamento H
E
ALU
0 1
MD MF S MUX-F
BUS D 0
MUX-D Data in
1
Funcionamento da ALU: Funcionamento do bloco de deslocamento:
Operação F2 F1 F0 Operação H1 H0
A |B 0 0 0 B 0 0
A ⊕B 0 0 1 B >> 1 0 1
A &B 0 1 0 B << 1 1 0
A 0 1 1 B << 2 1 1
A 1 0 0
A +1 1 0 1 Sinais de controlo para acesso à memória:
A +B 1 1 0 ME — activação da memória
A −B 1 1 1 RW — 0 para leitura; 1 para escrita
Formato de uma palavra de controlo:
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RD RB RA LE F H MF MD ME RW
38
a) Qual será a finalidade dos seguintes componentes?
1. Multiplexers MUX-A e MUX-B
2. Descodificador DEC-D
3. Multiplexer MUX-F
4. Multiplexer MUX-D
b) Indique uma palavra de controlo que corresponda a cada uma das seguintes operações:
1. R1 ← R0 + R2
2. R3 ← R2 << 1
3. R3 ← M[R2]
4. M[R1] ← R2
c) Indique qual a operação correspondente a cada uma das seguintes palavras de con-
trolo (representadas em hexadecimal):
1. Ox5FC0
2. Ox2343
d) Proponha alterações ao esquema de forma a possibilitar a implementação de operações
do tipo:
1. Rk ← (Ri + Rj ) << 1
2. M[Rk ] ← Ri + Rj
e) Considere os seguintes tempos de atraso associados a cada componente do esquema:
• Descodificador 2/4: 10 ns
• Multiplexer 4–1: 10ns; Multiplexer 2–1: 7.5 ns
• ALU: 15 ns; Bloco de deslocamento: 10 ns
• Tacesso à memória = 20ns
• Portas lógica AND: 5ns
• Registo: 10ns
Com base nestes tempos de atraso, calcule o intervalo de tempo mı́nimo que deverá
demorar cada ciclo do sinal de relógio, de modo a assegurar que as operações são
feitas correctamente.
39
6.4 Considere a seguinte unidade aritmética. Pretende-se implementar as operações indi-
cadas na tabela.
A
?
0 1 2 3
S1 F1
MUX
S0 F0
Z
OP A OPB
F1 F0 Operação
Somador de n bits Cin ? 0 0 A+B
Σ 0 1 A+1
1 0 A−1
R 1 1 A−B
a) Que ligações devem ser feitas nas entradas de dados do bloco de multiplexagem?
b) Qual será o valor do transporte inicial, Cin , para cada um dos casos?
c) Qual a relação entre o transporte inicial e as variáveis de controlo?
6.5 As operações lógicas bit-a-bit permitem implementar máscaras, que servem para ma-
nipular ou extrair bits especı́ficos de dados ou instruções, que estejam guardadas num
registo. Considere o seguinte exemplo:
R1 ← R0 & 0x001F.
40
6.6 Considere o seguinte datapath, que é controlado por uma unidade multi-ciclo micropro-
gramada. Admita que as palavras são de 16 bits.
LE RD RB RA
3 3 3
MEMÓRIA
(0) PC BUS A 0:
1:
(1) IR
Din 2:
(2) AC 3:
Endereços 4:
(3) SP
5:
(4) TMPA Dout 6:
8:
(5) TMPB
9:
(6) 0x0FFF 10:
...
(7) 0x00FF
0 1
BUS B MUX SA ME RW
3
F
ALU N
Z
Operação F
A & B 000
A | B 001
A 010
∼A 011
A + B 100
A + 1 101
A << 1 110
A >> 1 111
41
Na tabela seguinte, representa-se o conteúdo (incompleto) da referida ROM:
Endereço Conteúdo
(hex) ME RW SA LE F RD RB RA Micro-instrução
0x00
0x01
0x02
0x03
0x04
0x05
0x06
0x07
0x08
42
Capı́tulo 7
Programação em assembly
do MAC1-Pro
jump main
x: 7
y: 9
main : ...
jump main
i: 0
main : loco 1
addd i
stod i
loco 4 # PONTO 1
subd i
jnze main
halt
43
7.4 Escreva um programa em assembly correspondente ao seguinte pseudo-código:
int x =6 , y =2 , f =0 , g =0 , h =0;
f = x - y;
g = -y ;
h = 2 * y + x;
int x =2 , y =3;
int m =0;
if ( y < x )
m = y;
else
m = x;
7.6 Considere o seguinte programa, que calcula m = a × b pelo método das adições suces-
sivas:
int a =2 , b =3;
int m =0 , i =0;
while ( i < b )
{
m = m + a;
i = i + 1;
}
jump main
x: 5
y: 2
main : lodd x
push
lodd y
stod x
pop
stod y
halt
44
7.8 Considere o seguinte programa:
jump main
a: 3
b: 2
main : lodd a
push
lodd b
push # ponto 1
call func
insp 2
push
push # ponto 2
call func
insp 2
halt
Faça uma representação dos valores que estão na pilha logo após serem executadas as
instruções assinaladas com “ponto 1, 2 e 3”. Note que o programa passa 2 vezes pelo
“ponto 3” — represente os valores na pilha para ambas as situações.
7.9 Pretende-se desenvolver um pequeno procedimento, chamado esc alg, que recebe por
argumento um valor inteiro entre 0 e 9 e escreve o algarismo correspondente no ecrã.
7.10 Considere a função maximo, que devolve o valor máximo entre dois inteiros x e y:
return x ;
}
45
main ()
{
int M = maximo (3 ,5);
esc_alg ( M );
}
7.11 Considere o seguinte pseudo-código, que diz respeito a uma função que calcula o resto
da divisão inteira entre dois inteiros positivos, a e b:
7.12 Escreva uma função mult que calcula o produto de dois números inteiros positivos,
passados nos argumentos.
7.13 Escreva uma função, chamada fact, que calcula o factorial de um número n ≥ 0.
main : loco u
push
pshi # ponto 1
loco 1
addl 1
popi # ponto 2
loco 2
addl 0
pshi # ponto 3
lodl 1
popi # ponto 4
insp 1
halt
46
7.15 Faça uma função que recebe um vector de inteiros, e calcula a média (inteira) dos seus
valores. A função recebe como argumentos a referência (endereço) para o inı́cio do
vector, e o comprimento do mesmo.
7.16 Implemente um procedimento chamado show str que mostra no ecrã uma string.
Assume-se que uma string é termina pelo caracter ASCII 0. O argumento da função é
uma referência para o inı́cio da string, tal como é feito no seguinte exemplo:
jump main
show_str : ...
7.17 Com base no procedimento da alı́nea anterior, implemente uma função que conta o
número de ocorrências de um dado carácter numa string. A função recebe por argu-
mentos uma referência para a string e o carácter a procurar.
7.18 Implemente uma função chamada power que calcula np de acordo com a seguinte re-
corrência: {
1, p = 0
power(n, p) =
n × power(n − 1, p), n > 0
7.19 Pretende-se implementar um método que escreva no ecrã qualquer número inteiro po-
sitivo n. Para tal é necessário separar e enviar para o écrã os vários algarismos que
compõem esse inteiro, o que pode ser resolvido através do seguinte método recursivo:
47
Instrução Efeito Descrição
loco n AC ← n load constant
lodd addr AC ← M[addr] load direct
stod addr M[addr] ← AC store direct
addd addr AC ← AC + M[addr] addd direct
subd addr AC ← AC - M[addr] subtract direct
jpos P if AC ≥ 0 then PC ← P jump if positive
jneg P if AC < 0 then PC ← P jump if negative
jzer P if AC == 0 then PC ← P jump if zero
jnze P if AC != 0 then PC ← P jump if not zero
jump P PC ← P unconditional jump
lodl idx AC ← M[SP + idx] load local
stol idx M[SP + idx] ← AC store local
addl idx AC ← AC + M[SP + idx] add local
subl idx AC ← AC - M[SP + idx] subtract local
mull idx AC ← AC × M[SP + idx] multiply local
divl idx AC ← AC / M[SP + idx] divide local
modl idx AC ← AC mod M[SP + idx] module local
incl idx M[SP + idx] ← M[SP + idx] + 1 increment local
decl idx M[SP + idx] ← M[SP + idx] - 1 decrement local
call f SP ← SP - 1 call function
M[SP] ← PC
PC ← f
retn PC ← M[SP] return
SP ← SP + 1
push SP ← SP - 1 push
M[SP] ← AC
pop AC ← M[SP] pop
SP ← SP + 1
insp n SP ← SP + n increment stack pointer
desp n SP ← SP - n decrement stack pointer
pshi SP ← SP - 1 push indirect
M[SP] ← M[AC]
popi M[AC] ← M[SP] pop indirect
SP ← SP + 1
halt — halt
48
Soluções
1.1 a) 5,6,7,10,11 1.6
b) 3,4,10,11 n 2n
c) 0,1,10,11,100,101 1 2
d) 9,A,B,C,D,E,F,10,11,12 2 4
3 8
4 16
1.2 a) 11,44,88,FF 5 32
b) 100,100,100,100 6 64
7 128
c) 100 em todas 8 256
9 512
1.3 a) 0111 10 1024
b) 888
c) FFF 1.7 a) 8
b) 31
1.4 a) 73 c) 257
b) 838 d) 254
c) 4349 e) 18
d) 6.125 f) 29
e) 25.921875
f) 10.75
1.8 a) 1 0000 0000
1.5 b) 1111 1111
c) 10 0010
Octal Binário d) 1 1111 1110
0 000
e) 11 1111 1110
1 001 f) 10 0000 0011
2 010
3 011
4 100
5 101 1.9 a) 5
6 110 b) 6
7 111
c) 7
d) 7
Hexadecimal Binário
e) 9
0 0000
1 0001 f) 10
2 0010 g) 10
3 011
4 0100
h) 11
5 0101
6 0110
7 111 1.10
8 1000
9 1001 11 8+2+1 23 + 21 + 20 1011
A 1010
B 1011 80 64+16 26 + 24 1010000
C 1100
161 128+32+1 27 + 25 + 20 10100001
D 1101
E 1110 178 128+32+16+2 27 + 25 + 24 + 21 10110010
F 1111
1.11 a) 11001
b) 100 1011
49
c) 10 0000 0001 b) 0001 1100 1011
d) 1 0010 1100 c) 1010 1011 1100.00110101
e) 111 1101 0100 d) 1111 1110.11111111
f) 10.011 f) 10 1010 0001.0001101
g) 1100010.11
h) 11111.1011
i) 0.0001100110011. . . 1.17 d) 11
a) 4D
b) 1E7
1.12 a) 5 c) 55.58
b) 130 e) 1B.A
c) 170 f) 21.2
d) 2000
e) 776
1.18 a) ( 100111 )2 = ( 47 )8 = ( 27 )16
f) 3734
b) ( 1010011100 )2 = ( 1234 )8 =
g) 2.6
( 29C )16
h) 3.1
c) ( 110101101 )2 = ( 655 )8 =
i) 144.24
( 1AD )16
1.13 a) 35
1.19 a) 26
b) 7F
b) 23.625
c) 80
c) 140
d) 1AA
d) 586
e) 598
e) 519
f) DDDD
f) 1.625
h) FE.F
g) 2712
g) 1AC.5
h) 4619
i) 0.A66. . .
i) 0.6875
1.14 a) 1000011
1.20 a) 5.6
b) 11001000
b) 6.5
c) 1111111101
c) 8.375
d) 101.100101
d) 16.1875
e) 10111011.01
f) 10011110001.101
1.21 a) 3724
b) 7D4
1.15 a) 111
c) 31004
b) 355
c) 756
d) 7.7 1.22 a) 1100111.01
e) 0.2 b) 147.1
f) 31.67 c) 67.4
d) Não
1.16 e) 10000
a) 0011 1010
50
1.23 a) 111101 f) 1000 0100
b) 1000000
c) 11111.101
1.28 Não.
d) 110
e) 1100110 1.29 a) 11110
f) 1101 b) 01100 (overflow )
c) 11110
d) 10000 (overflow )
1.24 a) 6,7,10
e) 00010
b) 16,22,27,33
c) 200
d) 11000 1.30 O aluno está a usar uma repre-
e) 2207.543 sentação em complemento para 2 com 8 bits,
f) 252 e nessa representação, o maior número posi-
g) 1331 tivo que pode ser representado é 127.
h) 67767
1.31 a) 88
b) 14
1.25 a) 9,A,B,F c) −128
b) C,D,F,11,12 d) −100
c) 13,23,16,D e) −1
d) BBD
e) 1578
f) 1011.CEC 1.32 a) 0011
g) 999 b) 0110
h) 13B1 c) 0000
i) EFFEF d) 1110
e) 1111
f) 1000
1.26 a) 2515
b) 4336
c) 1C95 1.33 a) 0000 1000
d) 1BB9 b) 0010 0001
e) 1001011 c) 0100 0000
f) 1000101 d) 0110 0101
g) 653 e) 0000 0000
h) 547 f) 1111 1111
i) DE3 g) 1111 1101
j) 30E h) 1010 0000
k) 1000011 i) 1000 0000
l) 1001
1.34 a) 1010 1010
1.27 a) 1111 1111 b) 0101 0111
b) 1111 1110 c) 1001 1100
c) 1000 0000
d) 1110 1110 a) 0000 0000 00110101
1.35
e) 1101 1001 b) 1000 0000 01000001
51
b) x y z x + yz (x + y)(x + z)
1.36 a) 1100 1100 0 0 0 0 0
b) 1011 1111 0 0 1 0 0
0 1 0 0 0
0 1 1 1 1
1.37 a) 0000 0000 0011 0101 1 0 0 1 1
b) 1111 1111 1100 0001 1 0 1 1 1
1 1 0 1 1
1 1 1 1 1
1.38 a) A=1000001,B=1000010,F=1000110
b) A=65,B=66,F=70 2.3 a) x y f
c) 0101
d) Minuscula=32+Maiuscula 0 0 1
0 1 1
e) $%0ABCb
1 0 0
1 1 1
2.1 a) A B X b) x y z f
0 0 0 0 0 0 1
0 1 1 0 0 1 0
1 0 0 0 1 0 0
1 1 0 0 1 1 0
b) 1 0 0 1
A B X 1 0 1 1
0 0 1 1 1 0 1
0 1 0 1 1 1 1
1 0 1
c) x y z f
1 1 1
c) 0 0 0 0
A B X Y 0 0 1 0
0 0 0 0 0 1 0 0
0 1 0 0 0 1 1 0
1 0 0 1 1 0 0 0
1 1 1 1 1 0 1 0
1 1 0 1
2.2 a) 1 1 1 0
x y x+y x+y x y xy
0 0 0 1 1 1 1 d) x y z f
0 1 1 0 1 0 0
0 0 0 0
1 0 1 0 0 1 0
0 0 1 1
1 1 1 0 0 0 0
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 1
52
e) x y w f d) x
e) x
0 0 0 0
f) z
0 0 1 0
0 1 0 0 g) 1
0 1 1 1 a = 1, b = 0
2.8
1 0 0 1
1 0 1 1
1 1 0 1 2.10 a)
1 1 1 1
y
2.12 a) F = (A B + A + C) (A + C)
z
b) F = AB C
c) c)
x A
y B
f F
z C
d) x 2.13 a) x y z f
y
0 0 0 0
z f
0 0 1 1
0 1 0 1
0 1 1 0
e) 1 0 0 0
y 1 0 1 1
x 1 1 0 0
f 1 1 1 0
z x
2.6 a) 1
b) x y
f
c) 0
d) 1
z
2.7 a) 1
b) 1
c) x
53
b) x y z f w
0 0 0 1
0 0 1 1
0 1 0 0 x
0 1 1 0
f
1 0 0 1
1 0 1 0
1 1 0 0 y
1 1 1 1
x
z
2.14 a) 8
y
b) 3
f c) x y z, xyz
d) xyz, xy z, x yz, x y z
z
2.15 a) f = x y z + xyz + x y z
b) f = xy z + xyz + x yz + x y z
c) alı́nea a) f = x z + x y z,
alı́nea b) f = x y + xy z + xyz
c) w x y z f
2.16 a) x = ab + ab
0 0 0 0 1
0 0 0 1 0 a b x
0 0 1 0 0 0 0 0
0 0 1 1 0 0 1 1
0 1 0 0 0 1 0 0
0 1 0 1 0 1 1 1
0 1 1 0 0
0 1 1 1 0
1 0 0 0 1 b) f = x y z + x y z + x y z
1 0 0 1 0
1 0 1 0 0 x y z f
1 0 1 1 0 0 0 0 0
1 1 0 0 1 0 0 1 1
1 1 0 1 0 0 1 0 1
1 1 1 0 0 0 1 1 0
1 1 1 1 1 1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 0
54
c) x = ab + ab 2.18 m0 = A B C D, m5 = A B C D,
m9 = A B C D, m14 = A B C D
a b x
0 0 0 2.19 a) m(7, 13, 15), m(5, 7, 13, 15)
0 1 1 e m(2, 10, 12, 14)
1 0 1 b) x y z + w xy z, x z, w x z + x y z
1 1 0
2.20 a) zw
xy 00 01 11 10
d) x = ab c + a bc + a b c 00 0 0 0 0
01 0 0 0 0
a b c x
11 0 1 1 0
0 0 0 0
0 0 1 1 10 0 1 1 0
0 1 0 0
0 1 1 0 b) zw
1 0 0 1 xy 00 01 11 10
1 0 1 1 00 1 1 1 1
1 1 0 0 01 0 0 0 0
1 1 1 0
11 0 0 0 0
10 1 1 1 1
e) x = ab + a b + a b
a b x c) zw
xy 00 01 11 10
0 0 1 00 0 0 0 0
0 1 1
1 0 0 01 0 1 0 0
1 1 1 11 0 1 0 0
10 0 0 0 0
f) f = x y z + x y z + x y z
x y z f 2.21 a) f = xy + x z
0 0 0 0 2.22 a) f = BC
0 0 1 1 b) f = AB + C D
0 1 0 1
c) f = C D + A BC
0 1 1 0
1 0 0 0 d) f = A B + BD
1 0 1 1 e) f = AD + B D
1 1 0 0
1 1 1 0 2.23 f = zw + z y + x y z
2.24 a) f = c + a b
2.17 a) f = BC + AC
b) f = d + a c
b) f = ABD + ABC + BCD
c) f = y z + zw + x w + xy
c) f = D + AB + AC
d) f = AC + AB 3.5 a) x
e) f = BD + AB b) x
f) f = XY + XZ + XW + YZW c) 0
g) f =A+C d) 1
h) f = W X + W Y + X Y Z + W Z,
i) f = Y Z + W X Z + WX Z + W XY Z
55
3.6 x y xy ⊕ x + y x⊕y 3.12 a) S0
0 0 0 0
0 1 1 1
I0
1 0 1 1
F
1 1 0 0
I1
3.7 a)
A b) S0
B f
C
I0
b) F
A I1
B f
EN
C
c) c) I1
D0
A
I2
I3 D1
f
I4
I5
B I6 D2
I7
3.13 a) F = S0 A + S0 B
3.9 a) F = (A ⊕ B) A C
b) F = S1 S0 I0 + S1 S0 I1 + S1 S0 I2 +
b) F = A B + A B C
+S1 S0 I3
3.14 a) S1
3.10 a)
A B F
S0 D0
0 0 0
0 1 0
1 0 1
D1
1 1 0
b) F = A B D2
3.11 a) 16
b) 5 D3
c) 8
EN
56
b) d)
DEC 2/4 MUX 4-1
B S0
S0 A0 D0 D0
A S1
S1 A1 D1 D1
D2 D2 C D0 Y S
D1
S2 EN D3 D3
D2
D3
DEC 2/4
A0 D0 D4 3.16 a)
A1 D1 D5 DEC 3/8
D2 D6 c A0 D0
EN D3 D7 b A1 D1
a A2 D2
D3 f
D4
3.15 a) D5
D6
A B C S D7
0 0 0 0
0 0 1 1 b) MUX 8-1
0 1 0 1
c S0
0 1 1 0
b S1
1 0 0 1
a S2
1 0 1 0 VCC
D0
1 1 0 0
D1
1 1 1 1
D2 Y f
D3
b) D4
D5
A B C T D6
D7
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1 c)
MUX 4-1
1 0 0 0 b S0
1 0 1 1 a S1
1 1 0 1 VCC
D0 Y f
1 1 1 1
c D1
D2
c) D3
DEC 3/8
C A0 D0
B A1 D1
A A2 D2
D3
D4
D5
T
D6
D7
57
d) 3.19 DEC 2/4
S1 A0 D0
DEC 2/4
S2 A1 D1
A0 D0 S0 D2
A1 D1 D3
D2
MUX 2-1 MUX 2-1
D3
S0 S0
DEC 2/4 D0 D0
D0 Y f Y
A0 D0 D1 D1 D1
A1 D2
D1 EN
D3
D2
D4 MUX 2-1
c D3
D5
b S0
D6
a D7 D0 Y
D1
3.17 a) EN
F
X Y F G
MUX 2-1
0 0 1 0 S0
0 1 0 1 D0 Y
1 0 1 0 D1
1 1 1 1 EN
MUX 2-1
b) MUX 4-1 S0
S0 D0 Y
S1 D1
VCC
D0 Y F EN
D1
D2
D3
3.20 F = AD + ABC
MUX 4-1
Y S0
X S1
3.21 a) 6ns; 11ns; 14ns
D0 Y G
D1 b) 14ns
D2
D3
c)
A
X
B
S1
C
3.18
S0
D
MUX 2-1
S0
3.22
MUX 2-1
D0 D0 Y
D1 D1 S0 23
23
D2 Z
D0 Y F
D3 8 8
MUX 2-1 D1
S0 18 18
D0 Y X
D1
20 50 t (ns)
58
3.23 a)
x y F
3.26 a) 0
0 0 1 b) 39 ns
1) 0 1 0 c)
1 0 1
1 1 1
Z
x y z F
Y
0 0 0 1
0 0 1 1 X
0 1 0 1
2) 0 1 1 1 20 50 80 t (ns)
1 0 0 1
1 0 1 1 d) Passar de A = B = C = D = 0
1 1 0 1 a A = B = D = 0 a C = 1 com tempo de
1 1 1 0 propagação de 45 ns.
x y F 3.27 a) F = Y Z + X W + Y W
b)
0 0 0
3) 0 1 1
X
F
1 0 0 W
1 1 1
Y
F
3.24 a) F = A B A A B B W
3.25 a)
x y z f e) Passar de X = Y = W = 0, Z = 1
0 0 0 0 a X = Z = 1, Y = W = 0 com tempo de
0 0 1 0 propagação de 65ns.
0 1 0 1
0 1 1 0 3.28 a)
1 0 0 0
1 0 1 1
A2 F
1 1 0 1
A1
1 1 1 1 A0
b) F = X Z + Y Z
F = A2 (A1 ⊕ A0 ) + A2 (A1 ⊕ A0 )
c) O pior tempo de propagação é
b) 75ns, por exemplo quando passa de
49 ns. Acontece por exemplo ao passar do
A2 = A1 = A0 = 0 a A2 = A1 = 0, A0 = 1.
X = Y = 1, Z = 0 a X = Z = 1, Y = 0.
59
4.1 a) 4.6 a) Mealy
c)
A X Y A B DA DB Z
B 0 0 0 0 0 0 0
Y 0 1 0 0 1 0 0
1 0 0 0 0 0 0
1 1 0 0 0 0 0
b) Latch SR, R = A, S = B, Y = Q 0 0 0 1 0 1 0
0 1 0 1 1 1 0
4.2 a) Sequencial
1 0 0 1 0 0 1
4.4 a) 1 1 0 1 0 0 1
0 0 1 0 0 0 0
A B C Y Z 0 1 1 0 1 0 0
0 1 1 0 1 1 0 1 0 1 1 0
0 1 0 0 1 1 1 1 0 1 1 0
0 0 0 0 1 0 0 1 1 0 1 0
1 0 0 0 1 0 1 1 1 1 1 0
1 1 0 1 0 1 0 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1
1 0 1 Indefinido d)
1x/1
b) Corresponde a um latch SR com
00/0
sinal de activação onde A = S, B =sinal ac- 1x/0 S0 S1 00/0
tivação, C = R, Z = Q,Y = Q
01/0
00/0 01/0
4.5 a) 00/0
0 0 0
S2 S3 01/0
01/0
0 S0 S1 S2 S3 1x/1
1
1x/0
1 1 1
b) 4.7 b)
A Q1 Q0 Q′1 Q′0 X A B Q′A Q′B
0 0 0 0 0 0 0 0 0 1
1 0 0 0 1 1 0 0 0 0
0 0 1 0 0 0 0 1 1 0
1 0 1 1 0 1 0 1 1 1
0 1 0 0 1 0 1 0 0 0
1 1 0 1 1 1 1 0 0 1
0 1 1 1 0 0 1 1 1 1
1 1 1 1 1 1 1 1 1 0
c) Q′0 = Q1 Q0 + A Q1 + A Q0 , c)
Q′1 = A Q0 + A Q1 + Q1 Q0 0/1
1/1 S0 S2
1/0
0/0 1/1
0/1
S1 S3
0/0
1/0
60
4.8 Tabela de transição de estados: X Q1 Q0 Q′1 Q′0
X Q1 Q0 Q′1 Q′0 Z 0 0 0 0 0
1 0 0 1 0
0 0 0 0 1 1
0 0 1 0 1
1 0 0 0 0 0
1 0 1 0 0
0 0 1 1 0 0
0 1 0 1 0
1 0 1 0 0 1
1 1 0 1 1
0 1 0 0 0 1
0 1 1 1 1
1 1 0 0 1 1
1 1 1 0 1
Q′0 = X Q1 Q0 + X Q1 Q0 ,
Q′0 = X Q0 + X Q1 ,
Q′1 = X Q1 Q0 ,
Q′1 = XQ1 + X Q0
Z = X Q1 Q0 + X Q1 Q0 + Q1 Q0
b) 33.33 MHz
4.9 a) Moore
b) Entradas: 1, Saı́das: 2
4.11 Tabela de transição de estados:
c) 3 Flips-flops
d) Tabela de transição de estados: X Q2 Q1 Q0 Q′2 Q′1 Q′0
10/01 01/10
01/10
S2
61
Tabela de transição de estados: 4.14
ai bi Q1 Q0 Q′1 Q′0 Z2 Z1 0/0 S0 S1 0/1
1/0
0 0 0 0 0 0 0 0 1/1
0 1 0 0 1 0 1 0
1 0 0 0 0 1 0 1 Tabela de transição de estados:
1 1 0 0 0 0 0 0 X Q0 Q′0 Z
0 0 0 1 0 1 0 1
0 0 0 0
0 1 0 1 1 0 1 0
1 0 1 1
1 0 0 1 0 1 0 1 0 1 1 1
1 1 0 1 0 1 0 1 1 1 1 0
0 0 1 0 1 0 1 0
0 1 1 0 1 0 1 0 Q′0 = Q0 + ai ,
1 0 1 0 0 1 0 1 Zi = ai ⊕ Q0
1 1 1 0 1 0 1 0 4.15
Q′0 = ai bi Q0 + ai Q1 Q0 + ai bi Q1 Q0 ,
M1 M0 Operação
Q′1 = ai bi Q1 + ai Q1 Q0 + bi Q1 Q0 ,
Z2 = Q′1 , 0 0 Carregamento paralelo
Z1 = Q′0 0 1 Complementar o estado
1 0 Deslocamento para a direita
1 1 Reset sı́ncrono
4.13 Tabela de transição de estados:
R A Q1 Q0 Q′1 Q′0 Z MUX 4-1
M0 S0
M1 S1
0 0 0 0 0 0 0
D0 D0 Y
0 1 0 0 0 0 1 D1
1 0 0 0 0 1 0 D2
D3
1 1 0 0 0 0 1
0 0 0 1 0 1 1 MUX 4-1
S0
0 1 0 1 0 1 1 S1
1 0 0 1 0 1 1 D1 D0 Y
1 1 0 1 1 0 0 D1
D2
0 0 1 0 1 0 1 D3
0 1 1 0 1 1 0
MUX 4-1
1 0 1 0 1 0 1 S0
1 1 1 0 1 0 0 S1
0 0 1 1 0 0 0 D2 D0 Y
D1
0 1 1 1 1 1 1 D2
1 0 1 1 1 1 1 D3
1 1 1 1 1 1 1 MUX 4-1
S0
00/0 00/0 S1
x1/1 01,1x/1
D3 D0 Y
S0 S3 D1
D2
D3
10/0 01/0
VCC D3 D2 D1 D0
Load
REG 4
S1 S2 CLK Q3 Q2 Q1 Q0
x0,01/1 11/0
11/0
x0/1
62
4.19 Tabela de transição de estados: 5.10 Ligam-se as variáveis A, B e C aos en-
dereços A2 , A1 e A0 ; as saı́das da memória
EN Q2 Q1 Q0 Q′2 Q′1 Q′0
correspondem às funções D0 = F0 , D1 = F1 ,
0 0 0 0 0 0 0 D2 = F2 e D3 = F3 .
1 0 0 0 0 0 1
0 0 0 1 0 0 1 Endereços Conteúdo
1 0 0 1 0 1 0 A2 A1 A0 D0 D1 D2 D3
0 0 1 0 0 1 0
1 0 1 0 0 1 1 0 0 0 0 0 0 1
0 0 1 1 0 1 1 0 0 1 0 0 1 1
1 0 1 1 1 0 0 0 1 0 1 0 0 0
0 1 0 0 1 0 0 0 1 1 1 0 1 1
1 1 0 0 1 0 1 1 0 0 1 0 1 1
0 1 0 1 1 0 1 1 0 1 1 1 0 1
1 1 0 1 1 1 0 1 1 0 1 0 1 0
0 1 1 0 1 1 0 1 1 1 1 1 0 1
1 1 1 0 1 1 1
0 1 1 1 1 1 1 5.11 a) 4K
1 1 1 1 0 0 0 b) 1K
c) 4KB (bytes)
Q′0 = EN ⊕ Q0 , d) 16Kb (bits)
Q′1 = Q1 ⊕ (Q0 EN ), e) 8K
Q′2 = Q2 ⊕ (Q1 Q0 EN ), f) 13 bits
4.20 Entrada: x, Saı́das: 5.12 a)
Y = x Q2 Q1 + Q0 (Q2 ⊕ Q1 ), 10
A0...A9
Z = x Q2 Q0 + Q1 Q0 (x + Q2 ),
1Kx8 RAM 1Kx8 RAM
Addr Addr
P0 Q0
D0...D7 D8...D15
P1 Q1
P2
P2 Q2
b)
LD
Clear
1Kx8 RAM
LD 10
A0...A9 Addr
CLK
R/W
CS
1Kx8 RAM
Addr
8
D0...D7
R/W R/W
CS
D1 D0
63
6.1 a) 6.3 a)
Din
1. Ox5FC0 R1 ← R3 − R1
b)
2. Ox2343 M[R0] ← R2, R0 ← R0 + 1
T=1
T=0
NOP 1 2 3
d)
65
7.5 a) Guarda na variável m o menor dos 7.9 a)
valores guardados em x e y. esc_alg : loco '0 '
b) addl 1
stod 4094
jump main halt
x: 2 b)
y: 3
m: 0 main : loco 0
main : lodd y push # i = 0
subd x ciclo : lodl 0 # do ...
jpos else push
lodd y call esc_alg # esc_alg ( i )
stod m insp 1
jump fimif incl 0 # i = i + 1
else : lodd x loco 9
stod m subl 0
fimif : halt jpos ciclo # while (i <=9)
insp 1
halt
7.6
7.14 Ver no simulador MAC1-Pro.
jump main 7.15
x: 6
media : loco 0
y: 2
push # soma = 0
f: 0
push # i = 0
g: 0
ciclo : lodl 0
h: 0
subl 3
main : lodd x
jpos fimciclo
subd y
lodl 4
stod f # f = x - y
addl 0 # AC = endereco v [ i ]
loco 0
pshi
subd y
pop # AC = v [ i ]
stod g # g = -y
addl 1 # AC = v [ i ] + soma
lodd y
stol 1 # soma = soma + v [ i ]
addd y
incl 0
addd x
jump ciclomediaint
stod h # h = 2* y + x
fimciclo : lodl 1
halt
divl 3 # AC = soma / n
insp 2
retn
7.8 Ver no simulador MAC1-Pro.
66