Sistemas igitais, 2ª chamada 25/Jan/200 (Prova) Página epartamento de Engenharia Electrotécnica e de omputadores Sistemas igitais (2000/200) orrecção 2ª chamada 25/Janeiro/200 uração: 2horas, sem consulta. ntes 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. prova deverá ser resolvida no enunciado. Se necessário, utilize o verso para continuar a sua resolução. ssine todas as folhas que entregar, indicando em cada uma o número de páginas/folhas que entregou. - onsidere =000 2 e Y=E7 6 que representam números inteiros com sinal em complemento para dois com 8 bits. a) iga, justificando, se pode ocorrer overflow na adição de 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. omo o número =000 é negativo e o número Y=E7 6 =00 2 também é negativo, então pode ocorrer overflow na soma desses números. b) Efectue a adição de com Y em binário, e indique se ocorre ou não overflow. 000 +00 000 O resultado da adição de com Y é o número 000. omo 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 com Y é 000. c) Qual é o maior número negativo representado em complemento para 2 com 8 bits que adicionado ao número provoca overflow? Justifique. omo o número é negativo, só pode ocorrer overflow quando é adicionado com outro número negativo, dando um resultado que é menor (mais negativo) do que o mais negativo que pode ser representado. omo o número mais negativo que pode ser representado em complemento para dois com 8 bits é -2 (8-) =-28=0000000 2, então o maior número negativo M que adicionado com ainda não provoca overflow será dado por +M =(-28) ou M = -28-: 0000000 (-28) -000 ( -45) 000 ( -83) Logo, o número pedido será obtido subtraindo uma unidade a M: M-=-83-=-84 = 0000
Sistemas igitais, 2ª chamada 25/Jan/200 (Prova) Página 2 2 onsidere a função booleana F(,,,) representada no seguinte mapa de Karnaugh, onde os termos indiferentes (don t care) estão representados por d. 0 0 0 0 0 0 0 d d d d 0 0 0 d d d d a) Escreva as expressões simplificadas na forma de soma-de-produtos e produto-de-somas para a função F(,,,) (utilize um mapa de Karnaugh para obter cada expressão). '.' 0 0 0 0 0 d d d d '. '+ '+ 0 0 0 0 0 d d d d Expressão mínima soma-de-produtos: F(,,,) =. +. + Expressão mínima produto-de-somas: F(,,,) = ( +).( +) b) esenhe um circuito lógico que realize a função F(,,,) utilizando um número mínimo de portas lógicas do tipo NN 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 NN ou NOR resultará da expressão mínima produto-de-somas. O circuito OR-N correspondente a essa expressão é: ' F(,,,) ' Transformando-o de forma a conter apenas portas lógicas do tipo NOR com duas entradas: F(,,,)
Sistemas igitais, 2ª chamada 25/Jan/200 (Prova) Página 3 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. MOTOR_SUIR MOTOR_ESER - dois botões exteriores de chamada, um em cada andar (HM_ESER e HM_SUIR), que são activados quando se pretende deslocar o monta-cargas para o andar respectivo. HM_ESER MOVER NO_NR2 - dois sensores (NO_NR e NO_NR2) que são activados sempre que o monta-cargas está correctamente posicionado no andar respectivo. e das saídas do sistema de controlo: - MOTOR_SUIR e MOTOR_ESER que quando activadas provocam o movimento do monta-cargas no sentido respectivo HM_SUIR NO_NR dmita que o sistema de controlo só aceita comandos provenientes dos botões quando o monta-cargas está parado num dos andares. omplete 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. NOT: O diagrama de estados incompleto apresentado no enunciado original tinha um erro: as duas transições de estado apresentadas tinham associada a condição HM_SUIR=0 e HM_SUIR=, quando deveria ser HM_ESER=0 e HM_ESER= como se mostra na figura abaixo. NO_NR=0 MOTOR_SUIR=0 MOTOR_ESER= ESER MOTOR_SUIR= MOTOR_ESER=0 SUIR NO_NR2=0 NO_NR= MOVER= ou HM_ESER= MOVER= ou HM_SUIR= NO_NR2= MOVER=0 e HM_ESER=0 PRO MOTOR_SUIR=0 MOTOR_ESER=0 PRO2 MOTOR_SUIR=0 MOTOR_ESER=0 MOVER=0 ou HM_SUIR=0
Sistemas igitais, 2ª chamada 25/Jan/200 (Prova) Página 4 4 O diagrama de transição de estados da figura representa uma máquina de Moore com uma entrada e uma saída S. =0 = = init S=0 S=0 =0 S=0 =0 = S= = =0 a) onstrua 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 estado estado actual =0 = saída S init init 0 0 init 0 odificando agora os estados como: init=00, =0, =0 e =, serão necessários 2 flip-flops do tipo e a tabela de transição de estados fica: próximo estado estado actual Q* Q0* Q Q0 =0 = saída S 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Sistemas igitais, 2ª chamada 25/Jan/200 (Prova) Página 5 b) esenhe o esquema do circuito lógico que implementa a máquina de estados, utilizando flip-flops do tipo. 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: Q*(Q,Q0,) QQ0 0 2 3 6 7 Q 4 5 Q0.' Q.Q0'. Q*(Q,Q0,) = Q0.' + Q.Q0'. Q0 Q0*(Q,Q0,) QQ0 Q 0 2 6 4 3 7 5 Q0*(Q,Q0,) = Q0 S(Q,Q0) Q Q0 Q0 0 2 3 Q.Q0 S(Q,Q0) = Q.Q0 Q um circuito lógico que realiza esta máquina de estados é: Q0* Q0 Q Q Q* Q S clock
Sistemas igitais, 2ª chamada 25/Jan/200 (Prova) Página 6 5 a) onstrua um circuito síncrono baseado num contador binário (74x63) e em circuitos lógicos adicionais capaz de gerar, nas saídas Q,Q,Q,Q do contador, a seguinte sequência de valores (admitindo que o estado inicial é igual a Q,Q,Q,Q =0000): 0,, 2, 3, 4, 5, 6, 7, 0,, 2, 0,, 2,... 74x63 estado próximo presente estado /LR /L ENT ENP Q Q Q Q Q* Q* Q* Q* 0 x x x x x x x 0 0 0 0 0 x x x x x x 0 x x x x x Q Q Q Q x 0 x x x x Q Q Q Q N (se N<5) N + 0 0 0 0 LK LR L ENP ENT 74x63 Q Q Q Q RO nalisando a sequência pretendida, representada em binário: 0 0 0 0 0 0 0 0 2 0 0 0 3 0 0 4 0 0 0 5 0 0 6 0 0 7 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 2 0 0 0... carrega 00 quando saída é 0 carrega 0000 (reset) quando saída é 00 podemos concluir o seguinte: quando as saídas apresentam o estado 0 deve ser activada a entrada L, mantendo as entradas ligadas permanentemente a 00. 2 quando as saídas apresentam o estado 00 deve ser activada a entrada LR para iniciar as saídas com 0000 Vcc (5V) O circuito pretendido é o seguinte: 74x63 LK LR L ENP ENT Q Q Q Q RO Gnd (0V) load reset
Sistemas igitais, 2ª chamada 25/Jan/200 (Prova) Página 7 b) Modifique o circuito que construiu, acrescentando-lhe uma entrada por forma a que quando =0 é mantida a sequência de contagem anterior, e quando = passa a ser gerada a sequência: 0,, 2, 3, 4, 5, 6, 7, 8, 9, 0,, 2, 0,, 2,... Para obter a nova sequência de contagem, basta desactivar o sinal de carregamento do contador quando =, e manter a mesma função do circuito anterior quando =0. Uma solução consiste em acrescentar, na porta NN que produz o sinal de load, uma entrada ligada a : quando =0, = e esse NN produz a mesma função realizada no circuito anterior; quando = ( =0), o sinal load fica permanentemente igual a (desactivado) e nunca é efectuado o carregamento do contador. O circuito resultante é: Vcc (5V) 74x63 LK LR L ENP ENT Q Q Q Q RO Gnd (0V) load reset
Sistemas igitais, 2ª chamada 25/Jan/200 (Prova) Página 8 6 Pretende-se construir uma máquina de estados com uma saída Z que é quando os 4 últimos bits consecutivos colocados na sua entrada são 0 (ver exemplo). pó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 : 00000000000 Saída Z: xxxx0000000000000 a) esenhe um circuito baseado num shift-register 74x94 e em circuitos lógicos adicionais capaz de realizar a funcionalidade pretendida para a máquina de estados. Universal Shift-register 74x94 função S S0 Q* Q* Q* Q* hold shift right shift left load 0 0 0 0 Q Q Q Q RIN Q Q Q Q Q Q LIN O circuito pretendido pode ser construído ligando o shift-register em configuração shift-left (S=, S0=0) e um comparador com a constante 0 nas saídas do shift-register (uma porta N com uma entrada negada), ligando a entrada à entrada LIN do shift-register. Em cada transição de relógio os valores lógicos presentes na entrada são deslocados para as saídas Q~Q, e a saída Z é activada com sempre que nas saídas aparecer 0: Vcc (5V) clock LK LR S S0 LIN RIN 74x94 Q Q Q Q Z Gnd (0V)
Sistemas igitais, 2ª chamada 25/Jan/200 (Prova) Página 9 b) dmita 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 : 00000000000 Saída Z: xxxx00000000000000 Para que apenas sejam detectadas sequências0 não sobrepostas, deve ser apagada a história dos bits anteriores sempre que for detectada uma sequência válida (0). 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 LR sempre que Z=. No entanto, como LR é 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 LR), ligando a saída Z à entrada S0: quando Z=0 é feito o shift-left ( S= e S0=0); quando é detectada a sequência 0 a saída Z fica com e é realizado o load(s=, S0=) com 0000. O circuito resultante fica: Vcc (5V) clock LK LR S S0 LIN RIN 74x94 Q Q Q Q Z Gnd (0V) - FIM -