You are on page 1of 6

EXAME NACIONAL DE SISTEMAS DIGITAIS

1

ANO: 1998

l"FASE / I"CHAMADA

120MINUTOS

RESOLUC..\O

I

1.1. (20 pontos)

Se foi feito urn Reset inicial, isso quer dizer que 0 estado inicial e Q2QIQO = 000.

Tabela de Transieees do circuito

Qz (t) o. (t) Qo (t) Tz Tl To Qz (HI) Ql (t+l) Qo (HI)
0 0 0 0 1 1 0 1 1
0 0 1 0 0 1 0 0 0
0 1 0 1 0 1 1 1 1
0 1 1 1 1 1 1 0 0
1 0 0 0 1 0 1 1 0
1 0 1 0 0 0 1 0 1
1 1 0 1 0 0 0 1 0
1 1 1 1 1 0 0 0 1 • As colunas Q2(t), QI(t) e Qo(t) correspondem as varias cornbinacoes possiveis das saidas do circuito num determinado momento, pelo que sao de preenchimento automatico (3 variaveis ~ 8 combinacoes).

• As colunas T 2 , TIe To, correspondem as excitacoes dos Flip-Flops no mesmo momento referido anteriormente e preenchem-se tendo em atencao as equacoes dadas no enunciado.

• As colunas Q2 (t+ 1) , QI (t+ 1) e Qo (t+ 1) correspondem aos valores das saidas num instante posterior (aquando do aparecimento do flanco activo do clock), preenchemse de acordo com as colunas a sua esquerda e sabendo-se a tabela de funcionamento do Flip-Flop tipo T:

T Qt+1
0 1
1 0 Da tabela de transicoes do circuito facilmente se tira a sequencia gerada, sabendo-se que o estado inicial e 000. Sera entao:

Q2Q1QO = 000 ~ 011 ~ 100 ~ 110 ~ 010 ~ 111 ~ 001 ~ [000 _. ou, em decimal: 0~3~4~6~2~7~1~[0 ...

1.2. (I2 pontos) - Sabendo-se que os Flip-Flops sao activos ao flanco de subida:

CK

LJi'--- __ ----'

EXAME NACIONAL DE SISTEMAS DIGITAIS

2

ANO: 1998

120MINUTOS

RESOLlJCAO

2.1. (6 pontos)

A memoria tern 4K posicoes = 4. 1024 = 4096 posicoes (uma vez que, como se sabe, 1K = 1024).

Entao sendo m = 4096 , 0 numero minima de linhas de endereco necessario obtem-se da

expressao:

2n1 ~ 4096 ,sendo nl 0 numero de linhas de endereeo

entao, por tentativas, facilmente se obtem que nl = 12 , pois 212 = 4096

Nota: urn born ponto de partida e saber-se que 210 = 1024 = 1K , e depois por cada unidade que nl aumenta, 0 numero de posicoes duplica.

2.2. (8 pontos)

A primeira posicao tern como endereco 2000H = 2x163 = 409610 . - x I'll

Como a memoria tern 4096 posicoes, para saber 0 endereco da ultima basta somar esse numero ao endereco da primeira e subtrair 1 (pois a primeira tambem conta). Finalmente passa-se 0 numero obtido para hexadecimal, uma vez que e nesta forma que os enderecos aparecem e temos estado a fazer os calculos em decimal.

Assim:

Passando agora para hexadecimal, pelo metodo das divisoes sucessivas, obtem-se:

IFEFW '?H{ ~

--~ -

Nota: Altemativamente podiam-se efectuar todos os calculos em hexadecimal evitandose a conversao final.

3. (20 pontos) 4~o . Ao

U15·Vl! vH)o

/ .L /
I '\'\: 11 I ~~H
N\:11 fl): 11 "'" 1;
I-- f'f'\ : 1~ 1-'",\, 11 I-' 1\1\; 11 I-'!"Y\ 7 11
1 LR/.; LR1W
,f:/'; A~D . Ao Alo' 40 AID ·4u P./';; A.io A"
@ ® ® 0
~ (~ ih .1). les D~ ·90 r- es D~-i)o C.5 lh·-lh


iVlO g "/); g 'V1 ; Ii' 'Y\oo8
,.....,
/ \
"i' 3 I 1
_l
• \ ... / ,,)u_) \)£1)Al)O:) (1{, ~NttA=.l

EXAME NACIONAL DE SISTEMAS DIGITAIS

3

ANO: 1998

1 "F ASE / 1 aCHAMADA

120MINUTOS

RESOLIJCAO

4.1. (14 pontos)

A saida L tomara 0 valor 1 se a entrada X for igual a 1 ou 0 durante 2 impulsos de clock consecutivos, quer 0 circuito se encontre no estado inicial A ou noutro est ado qualquer. Depois, a saida mantera 0 valor 1 enquanto X se mantiver a 1 (no caso de ter la chegado com dois 1 s consecutivos em X) ou X se mantiver a 0 ( no caso de Ia ter chegado com 2 Os consecutivos em X).

4.2. (32 pontos)

Tabela de transiedes do circuito (Mealy)

Ql(t) Qo (t) X Dl Do Qdt+l) Qo (t+l) L
0 0 0 0 1 0 1 0
0 0 1 1 1 1 1 0
0 1 0 1 0 1 0 0
0 1 1 1 1 1 1 0
1 0 0 1 0 1 0 1
1 0 1 1 1 1 1 0
1 1 0 0 1 0 1 0
1 1 1 1 1 1 1 1 • As colunas Ql (t) , Q2 (t) e X correspondem as varias combinacoes e sao de preenchimento automatico.

• As colunas Ql (t+ 1) , Qo (t+ 1) e L preenchem-se de seguida tendo em atencao 0 diagram a de estados dado.

• As colunas D, e Do preenchem-se no fim, com base nas colunas ja preenchidas e sabendo-se a tabela de transicoes/excitacoes do Flip-Flop tipo D:

Qt~ Qt+1 D
0 0 0
0 1 1
1 0 0
1 1 1 A partir da tabela de transicoes do circuito vamos obter as equacoes de excitacao, mais simples, dos Flip-Flops, bern como a equacao da saida L. Para isso, vamos usar 0 metodo grafico de Karnaugh:

X X X

~: 1 &::1 GJ 9):1 y :1

<10 QO

Daqui, sai a expressao simplificada: Dl = X + QO . Ql +QO . Ql

EXAME NACIONAL DE SISTEMAS DlGITAIS

4

ANO: 1998

1"FASE / 13CHAMADA

120MINUTOS

RESOUJCAO

DO
X X X
Q1 CI I 8~ I B j 0
4>1 0 1)
(
QO QO Daqui, sai a expressao simplificada: DO = X + QO . Q1 + Q1 . QO

L -
X X X
C0i 0 0 I 0 I 0
Q" ill 0 ill 0
QO QO
- - Daqui, sai a expressao simplificada: L = X. QO • Q1 + X . QO .Q1

II

1. (18 pontos)

1- Controlo e Temporizacao de todas as accoes do microcomputador (incluindo as memorias e perifericos)

2- Realizacao de operacoes logicas e aritmeticas

3- Execucao de programaslProcessamento de dados

4- Troca de dados e instrucoes com a memoria e os perifericos de entrada e saida

2. (24 pontos)

Apos a execucao da instrucao CALL, os conteudos solicitados sao:

SP-71FFD

Razao: porque quando uma rotina e chamada (instrucao CALL), 0 SP e decrementado, ficando pois com 1FFE. Neste endereco e escrito 0 byte mais significativo do conteudo que 0 PC tinha antes da rotina ser chamada (endereco da instrucao a seguir ao CALL: 10 no nosso caso). Em seguida 0 SP e de novo decrementado, ficando pois com 1FFD, endereco onde e guardado 0 byte menos significativo do PC antes da rotina ser chamada (OD no nosso caso).

Isto acontece pois quando a rotina termina, 0 microprocessador volta ao programa principal de onde tinha saido. Tern po is de saber 0 endereco onde ir buscar a instrucao seguinte a rotina (lOOD no nosso caso, e que se guardou na pilha).

PC -7 04D5

Razao: Quando a rotina e chamada 0 PC e carregado com 0 endereco em que essa rotina se inicia, que faz parte da instrucao CALL.

Pilha -7 1FFE = 10 1FFD=OD

Como ja foi explicado a prop6sito do SP

ANO: 1998

3. (46 pontos)

EXAME NACIONAL DE SISTEMAS DIGITAIS

l"FASE / I"CHAMADA

RESOLIJCAO

FLUXOGRAMA

• Inicializo B com N. 0 registo B vai servir para contar 0 n° de alunos ja analisados (para saber quando devo parar)

• Inicializo C com 0.0 registo C vai servir para contar 0 numero de alunos com nota maior que 10

• Inicializo 0 par HL com endereco anterior ao inicio da tabela. o par HL vai servir para apontar para 0 dado da tabela (aluno) com que estou a trabalhar.

Decremento B

s

5

120MINUTOS

Incremento HL

Guardo (C) em lDFF

Comparo nota do aluno com 10

s

Incremento C

ANO: 1998

LDA IDFE MOV B,A

LXI H,IDFF

MVI C,OO

next

DCR B

JM fim

INX H

MOV A,M

CPI 10

JC next

INR C

fim

JMP next MOV A,C

STA IDFF RST 1

EXAME NACIONAL DE SISTEMAS DIGITAIS

6

1 "F ASE / 1 "CHAMADA

120MINUTOS

RESOLUCAO

PROGRAMA

Carrego 0 valor de N no Ac

Colo co esse valor de N no registo B. 0 registo B, por decrementacao posterior, vai servir-me para saber quando ja analisei todos os N alunos

Inicializo 0 par HL (apontador de dados) com 0 endereco anterior ao inicio da tabela

Inicializo 0 registo C com zero. 0 registo C vai-me servir, por incrementacao posterior,

para contar as notas superiores ou iguais a 10 valores. Decremento B

Testo se os alunos ja foram todos analisados. No caso de isso ter acontecido salto para 0 fim, se nao, continuo a analise ao aluno seguinte.

Por exemplo, se 0 numero de alunos fosse zero, logo it primeira vez que faco DCR B 0 resultado e negativo e 0 programa salta para 0 fim.

Incremento 0 par HL. A primeira, 0 par HL fica a pontar para 0 inicio da tabela (10 aluno)

Passo a nota do aluno para 0 Acumulador

Comparo essa nota com 10 val ores. Identicamente a todas as instrucoes de comparacao 0 que 0

microprocessador faz e subtrair (Ac)-IO e afectando as flags Z e Carry

Se 0 resultado dessa comparacao der origem a urn Carry e porque a nota do aluno (em Ac) e inferior a 10 e 0 microprocessador vai analisar 0 aluno seguinte. Se nao houver Carry segue para a instrucao seguinte

Como nao houve Carry, 0 microprocessador chega a esta instrucao e incrementa 0 registo C pois 0 aluno em analise teve nota superior ou igual a 10

Vai analisar outro aluno

Passa 0 conteudo de C (numero de alunos com nota superior ou igual a 10) para 0 acumulador

Guarda esse valor em IDFF, como e pedido no enunciado Paro a execucao do programa.

Luis Jeronimo (Outubro/99 )