Вы находитесь на странице: 1из 4

Mestrado Integrado em Engenharia Eletrotcnica e de Computadores

Laboratrio de Sistemas Digitais


Teste 2
1
o
ano
30 Jan. 2013
Durao 01:00H
Sem consulta
Nome: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
N
o
ordem (a
preencher pelo
docente)
Ateno: Fundamente devidamente todas as respostas. Ao lado de cada questo indicada a cotao
expressa em valores (total=20 valores).
1. Uma mquina de estados tem uma entrada X e uma sada S. O diagrama de transio de estados
e a tabela de transio de estados e sada, so parcialmente conhecidos:
X=__
A
S=1
8
S=0
C
S=__
X=__
X=__
Q

1
Q

0
Q
1
Q
0
X=0 X=1 S
00 11 _0 _
01 11 11 0
11 01 _0 _
Os trs estados desejados para o funcionamento da mquina so denidos por Q
1
Q
0
, sendo Q
1
e Q
0
as sadas de dois ip-ops do tipo D. A codicao de estados usada : A=00, B=11 e C=01.
a) (3) Complete o diagrama e a tabela de transio de estados e sada.
b) (3) Obtenha a expresso da entrada D
0
da memria de estado, assumindo o critrio de custo
mnimo na implementao da mquina de estados.
AJA/HSM/JCA/JPS/JSM Pg. 1 de 4
Laboratrio de Sistemas Digitais (MIEEC), 2012/13 Teste 2
2. Pretende-se desenvolver um controlador do elevador eltrico para um vidro de automvel. O
circuito possui uma entrada S, que faz subir o vidro, e outra entrada F, que sinaliza que o vidro
j atingiu a sua posio de completamente fechado. Possui tambm uma entrada D que origina
a descida, e outra A que indica que o vidro est completamente aberto. Duas sadas, MS e MD,
permitem controlar o motor eltrico do elevador (subir e descer respetivamente). impossvel
atuar simultaneamente os botes de subida e de descida.
Partindo de um estado em que o vidro est parado, numa qualquer posio, mostre a parte
do diagrama de estados que descreve o funcionamento deste controlador no que diz respeito
apenas subida do vidro, para cada uma das especicaes seguintes.
a) (2) Pretende-se que o pressionar do boto S faa com que o vidro suba enquanto estiver premido
(isto , enquanto S=1). O vidro deve parar quando interrompida a presso no boto S, ou
quando o vidro tiver atingido a posio de completamente fechado (F=1).
b) (1,5) Pretende-se agora acrescentar uma funcionalidade de fecho automtico. Uma presso breve
no boto S, entendida como um nico 1 nessa entrada (seguido de um ou mais 0s), deve fazer
com que o vidro suba automaticamente, isto , s pare quando tiver atingido a posio de
completamente fechado (F=1). Se a presso for prolongada (mais de que um 1 em S) ento
deve manter-se o funcionamento da alnea anterior. Considere que enquanto o vidro est a
subir o boto D ignorado.
AJA/HSM/JCA/JPS/JSM Pg. 2 de 4
Laboratrio de Sistemas Digitais (MIEEC), 2012/13 Teste 2
c) (1,5) Admita agora que, estando o vidro em modo de fecho automtico, a sua subida possa ser
parada pressionando o boto D (D=1). Altere o diagrama de transio de estados para ter
em considerao esta possibilidade.
3. (4) A tabela seguinte dene a funo de um registo de deslocamento de 4 bits.
Funo Entradas Prximo estado
S1 S0 QA QB QC QD
Hold 0 0 QA QB QC QD
Shift right 0 1 RIN QA QB QC
Shift left 1 0 QB QC QD LIN
Load 1 1 A B C D
Com base em dois desses registos de deslocamento, pretende-se realizar um circuito com 8 sadas
(Q
7
, Q
6
, ..., Q
1
, Q
0
) em que, para cada impulso do relgio, um nico 1 se desloca da esquerda
para a direita. Admitindo que o circuito parte do estado inicial 1000 0000, a sequncia de estados
dever ser: 1000 0000, 0100 0000, ..., 0000 0010, 0000 0001, 1000 0000, ... .
Mostre como obter esse circuito no esquecendo que nenhuma entrada de nenhum dos circuitos
deve ser deixada "no ar", ou seja, por ligar.
CLK
CLR
A
B
C
D
QA
QB
QC
QD
S1
S0
LN
RN
Shift-reg
(MSB)
Q
7
Q
6
Q
5
Q
4
Q
3
Q
2
Q
1
Q
0
CLK
CLR
A
B
C
D
QA
QB
QC
QD
S1
S0
LN
RN
Shift-reg
(MSB)
AJA/HSM/JCA/JPS/JSM Pg. 3 de 4
Laboratrio de Sistemas Digitais (MIEEC), 2012/13 Teste 2
4. (5) O bloco de cdigo seguinte uma verso incompleta de uma rotina que se pretende que, dado um
vetor V de nmeros inteiros e positivos, copie os seus valores pares e mpares para dois novos vetores
(P e I, respetivamente). O registo $a0 contm o endereo de memria onde comea o vetor V, e o
registo $a1 o nmero de elementos de V. Os registos $a2 e $a3 contm os endereos de memria
onde comeam os vetores P e I, respetivamente. Terminada a execuo, o primeiro elemento de
P dever ser o nmero de valores pares encontrados, ocupando estes as posies seguintes de P.
Tambm para o vetor I, o primeiro elemento dever ser o nmero de valores mpares encontrados,
ocupando estes as posies seguintes de I.
Por exemplo, se V=[7, 56, 8, 5, 1, 10, 15] resulta P=[3, 56, 8, 10] e I=[4, 7, 5, 1, 15].
Mostre os fragmentos do programa em falta, correspondentes aos retngulos indicados.
rot_p_i: add $t0, $a0, $zero # Registos de trabalho, para que os
add $t1, $a1, $zero # valores dos registos $a0 a $a3 no
add $t2, $a2, $zero # sejam alterados.
add $t3, $a3, $zero
add $t4, $zero, $zero # Coloca a 0 o nmero de elementos pares ($t4)
add $t5, $zero, $zero # e o nmero de elementos mpares ($t5).
ciclo: bne $t1, $zero, cont
# Escreve em memria os nmeros
# de elementos dos vetores P e I.
jr $ra
cont: addi $t1, $t1, -1
lw $t6, 0($t0) # Carrega em $t6 um elemento de V,
addi $t0, $t0, 4 # atualiza o endereo de V,
# verifica se esse elemento par ou mpar
# e salta para a etiqueta respetiva.
mpar: # Atualiza endereo, guarda
# valor em I e volta para ciclo.
par: # Atualiza endereo, guarda
# valor em P e volta para ciclo.
Fim
AJA/HSM/JCA/JPS/JSM Pg. 4 de 4

Вам также может понравиться