Você está na página 1de 13

lOMoARcPSD|34579991

Prova - Circuitos Digitais - Solução

Circuítos Digitais (Universidade Federal de Santa Maria)

A Studocu não é patrocinada ou endossada por nenhuma faculdade ou universidade


Baixado por Philipp Hass (philipphass2014@gmail.com)
lOMoARcPSD|34579991

ELC 1112 – Circuitos digitais II – Solução da


prova 1 2016/2
Marcos Maruo, Universidade Federal de Santa Maria 23 de março de 2017

1) Explique as diferenças entre

a) (1,0) contadores síncronos e assíncronos;

b) (1,0) contadores em anel e contadores Johnson.

Desenhe exemplos de cada tipo de contador para ilustrar as diferenças apontadas.

Solução 1.a.
Contadores síncronos são geradores de sequência nos quais todos os flip-flops do circuito digital compar-
tilham do mesmo sinal de relógio. Contadores assíncronos, em contrapartida, são geradores de sequência
nos quais pelo menos um flip-flop é comandado com um sinal de relógio diferente dos outros. Por exem-
plo, um contador síncrono de módulo 8 é mostrado na figura abaixo

e um contador assíncrono de módulo 8 é mostrado na figura abaixo

Note que cada flip-flop do contador assíncrono tem um sinal de relógio diferente.

Primeira avaliação escrita 2016/2 Página 1 / 12


Baixado por Philipp Hass (philipphass2014@gmail.com)
lOMoARcPSD|34579991

Solução 1.b.
Contadores em anel são construídos pela associação em série de flip-flops, em geral tipo D, em que a
entrada D é formada pela saída Q do flip-flop anterior na associação. A saída Q do último flip-flop serve
de sinal de entrada do primeiro flip-flop. Geralmente ele é inicializado de modo que a saída de somente
um flip-flop é igual a um em cada instante de tempo e seu estado de contagem é indicado pela posição do
bit em nível lógico alto. Um contador em anel tem módulo igual ao número de flip-flops do circuito Nf .
Um contador Johnson é similar mas a saída Q do último flip-flop é utilizada como entrada do primeiro
flip-flop da associação. Em geral, esse tipo de contador é inicializado zerando as saídas de todos os flip-
flops por meio de um comando assíncrono. Contadores Johnson tem módulo igual a 2Nf e necessitam de
um circuito auxiliar (uma porta AND de duas entradas) para decodificar seu estado. A seguir é mostrado
um contador em anel de módulo 4.

e um contador Johnson de módulo 4

2) Projete um gerador de sequência digital síncrono que reproduza a sequência 2, 1, 0, 3, 3, 2, 1, 0,


transcodificada para números inteiros de 2 bits. Utilize flip-flops tipo JK.

a) (0,5 ponto) Desenhe o diagrama de estados. Descreva de maneira breve sua estratégia para o pro-
jeto.

b) (1,0 ponto) Construa a tabela de ativação do circuito;

c) (0,5 ponto) Utilize mapas de Karnaugh para determinar a lógica combinacional para a transição de
estados.

Primeira avaliação escrita 2016/2 Página 2 / 12


Baixado por Philipp Hass (philipphass2014@gmail.com)
lOMoARcPSD|34579991

Solução 2.a
A sequência tem comprimento N=8 portanto requer um gerador de sequência de módulo 8. Para imple-
mentar esse gerador são necessários

n = ⌈log2 N ⌉ = ⌈log2 8⌉ = 3

flip-flops. Para implementar esse gerador utiliza-se a própria codificação de estados, por meio de seus
últimos 2 bits, para gerar a saída do gerador de sequência. Para diferenciar estados que produzem saídas
idênticas, os primeiros 4 estados terão o bit mais significativo igual a zero e os 4 estados posteriores da
sequência terão o bit mais significativo igual a um. Assim, o diagrama de transição de estados resultante
é mostrado na figura abaixo

Primeira avaliação escrita 2016/2 Página 3 / 12


Baixado por Philipp Hass (philipphass2014@gmail.com)
lOMoARcPSD|34579991

Solução 2.b
Considerando o diagrama de transição de estados obtido anteriormente, os estados devem ser atualizados
a cada ciclo de clock seguindo a tabela
Estado atual Estado futuro
QA [n] QB [n] QC [n] QA [n + 1] QB [n + 1] QC [n + 1]
0 0 0 0 1 1
0 0 1 0 0 0
0 1 0 0 0 1
0 1 1 1 1 1
1 0 0 0 1 0
1 0 1 1 0 0
1 1 0 1 0 1
1 1 1 1 1 0
O problema requer o uso de flip-flops JK que resultam na tabela de ativação abaixo
Estado atual Estado futuro FF A FF B FF C
QA [n] QB [n] QC [n] QA [n + 1] QB [n + 1] QC [n + 1] JA KA JB KB JC KC
0 0 0 0 1 1 0 X 1 X 1 X
0 0 1 0 0 0 0 X 0 X X 1
0 1 0 0 0 1 0 X X 1 1 X
0 1 1 1 1 1 1 X X 0 X 0
1 0 0 0 1 0 X 1 1 X 0 X
1 0 1 1 0 0 X 0 0 X X 1
1 1 0 1 0 1 X 0 X 1 1 X
1 1 1 1 1 0 X 0 X 0 X 1

Primeira avaliação escrita 2016/2 Página 4 / 12


Baixado por Philipp Hass (philipphass2014@gmail.com)
lOMoARcPSD|34579991

Solução 2.c.

QB [n] QC [n] QB [n] QC [n] QB [n] QC [n]


00 01 11 10 00 01 11 10 00 01 11 10
QA [n] QA [n] QA [n]
0 0 0 1 0 0 X X X X 0 1 0 X X

1 X X X X 1 1 0 0 0 1 1 0 X X

JA = QB [n] · QC [n] KA = QB [n] · QC [n] JB = QC [n]

QB [n] QC [n] QB [n] QC [n] QB [n] QC [n]


00 01 11 10 00 01 11 10 00 01 11 10
QA [n] QA [n] QA [n]
0 X X 0 1 0 1 X X 1 0 X 1 0 X

1 X X 0 1 1 0 X X 1 1 X 1 1 X

KB = QC [n] JC = QA [n] + QB [n] JC = QA [n] + QB [n]

Primeira avaliação escrita 2016/2 Página 5 / 12


Baixado por Philipp Hass (philipphass2014@gmail.com)
lOMoARcPSD|34579991

O circuito requer 3 flip-flops JK, 3 portas AND de 2 entradas e 2 portas OR de 2 entradas. O esquemático
do circuito resultante é mostrado na figura abaixo (referente ao arquivo provagerseq.hds)

A
Y J
B

NC Q
NC c1
A

Y K NQ
B
NR
NR c0

J
3
2
NC Q
1
A
0
Y K NQ
B

NR

Y J
B

NC Q
A
Y K NQ
B
NR

3) (3,0) Considere que você precisa implementar o circuito lógico digital que implementa a máquina
de estados finita cujo diagrama de estados é mostrado na Figura~ 1. Utilize uma tabela de implicação para
eliminar os estados redundantes e utilize somente flip-flops tipo T para construir a memória de estados.

Figura 1: Diagrama de estados da questão 3

Primeira avaliação escrita 2016/2 Página 6 / 12


Baixado por Philipp Hass (philipphass2014@gmail.com)
lOMoARcPSD|34579991

Eliminação de estados redundantes


Inicialmente gera-se a tabela de estados
Estado atual Estado futuro (i=0) Estado futuro (i=1) Saída
a a b 0
b c d 0
c d e 0
d c b 0
e b c 1
Não foram encontrados estados iguais. Então, baseado na tabela de estados, gera-se a tabela de implicação
b a=c
b=d
c a=d c=d
b=e d=e
d a=c b=e
e X X X X
a b c d
iteração 1, 4 eliminações
b a=c=d
b=d=e
c X X
d X b=d X
e X X X X
a b c d
iteração 2, 4 eliminações
b X
c X X
d X b=d X
e X X X X
a b c d
Iteração 3, 1 eliminação
b X
c X X
d X b=d X
e X X X X
a b c d
Iteração 4, 0 eliminações. Portanto, os estados b e d são equivalentes.
A tabela de estados, após a eliminação do estado d torna-se
Estado atual Estado futuro (i=0) Estado futuro (i=1) Saída
a a b 0
b c b 0
c b e 0
e b c 1
Definição da lógica de transição de estados

Primeira avaliação escrita 2016/2 Página 7 / 12


Baixado por Philipp Hass (philipphass2014@gmail.com)
lOMoARcPSD|34579991

Considerando a codificação de estados


Estado codificação
a 00
b 01
c 10
d 11
E que os estados são armazenados em dois flip-flops A e B, com A representando o dígito mais signifi-
cativo da codificação, constrói-se a tabela de transição de estados
Estado atual Entrada Estado Futuro Ativação Saída
QA [n] QB [n] i QA [n + 1] QB [n + 1] TA TB o
0 0 0 0 0 0 0 0
0 0 1 0 1 0 1 0
0 1 0 1 0 1 1 0
0 1 1 0 1 0 0 0
1 0 0 0 1 1 1 0
1 0 1 1 1 0 1 0
1 1 0 0 1 1 0 1
1 1 1 1 0 0 1 1
Finalmente, definem-se as funções lógicas para os sinais de controle dos flip-flops TA e TB

QB [n] i QB [n] QC [n]


00 01 11 10 00 01 11 10
QA [n] QA [n]
0 0 0 0 1 0 0 1 0 1

1 1 0 0 1 1 1 1 1 0

TB = (QA [n] + QB [n] + i)


· (QA [n] + QB [n] + i)
TA = QB [n] · i + QA [n] · i · (QA [n] + QB [n] + i)

e a lógica combinacional para a geração do sinal de saída

QA [n]
0 1
QB [n]
0 0 0

1 0 1

o = QA [n] · QB [n]

4) (3,0) Projete uma máquina de Moore para detectar uma sequência 1010 em sua entrada X. Quando
essa sequência é detectada, a saída Y deve ser igual a 1 por exatamente um ciclo do sinal de reló-
gio. Em qualquer outra situação, a saída Y deve ser zero. Utilize flip-flops tipo JK em seu projeto.

Primeira avaliação escrita 2016/2 Página 8 / 12


Baixado por Philipp Hass (philipphass2014@gmail.com)
lOMoARcPSD|34579991

Inicialmente foi construído um diagrama de transição de estados

que corresponde à tabela de estados


Estado atual Estado futuro (X=0) Estado futuro (X=1) Saída
nada nada 1 ac 0
1 ac 2 ac 1 ac 0
2 ac nada 3 ac 0
3 ac bingo 1 ac 0
bingo nada 3 ac 1
Para verificar se existem estados redundantes, utiliza-se uma tabela de implicação
1 ac nada = 2 ac
2 ac 1 ac = 3 ac 2 ac = nada
1ac = 3 ac
3 ac nada = bingo bingo = 2 ac bingo=nada
1 ac = 3 ac
bingo X X X X
nada 1 ac 2 ac 3 ac
iteração 1, 4 eliminações
1 ac nada = 2 ac
1ac = 3 ac
2 ac 1 ac = 3 ac 2 ac = nada =
nada = bingo bingo
1ac = 3 ac
3 ac X X X
bingo X X X X
nada 1 ac 2 ac 3 ac
iteração 2, 3 eliminações

Primeira avaliação escrita 2016/2 Página 9 / 12


Baixado por Philipp Hass (philipphass2014@gmail.com)
lOMoARcPSD|34579991

1 ac nada = 2 ac =
bingo
1ac = 3 ac
2 ac X X
3 ac X X X
bingo X X X X
nada 1 ac 2 ac 3 ac
iteração 3, 2 eliminações
1 ac X
2 ac X X
3 ac X X X
bingo X X X X
nada 1 ac 2 ac 3 ac
iteração 4, 1 eliminação. O processo acaba pois não há mais células a eliminar.
Arbitrando a codificação de estados
nada 000
1 ac 001
2 ac 011 e utilizando 3 flip-flops A,B e C com A armazenando o bit mais significativo da
3 ac 010
4 ac 110
codificação e C armazenando o bit menos significativo, elabora-se a tabela de transição de estados
QA [n] QB [n] QC [n] X QA [n + 1] QB [n + 1] QC [n + 1] JA KA JB KB JC KC Y
0 0 0 0 0 0 0 0 X 0 X 0 X 0
0 0 0 1 0 0 1 0 X 0 X 1 X 0
0 0 1 0 0 1 1 0 X 1 X X 0 0
0 0 1 1 0 0 1 0 X 0 X X 0 0
0 1 0 0 1 1 0 1 X X 0 0 X 0
0 1 0 1 0 0 1 0 X X 1 1 X 0
0 1 1 0 0 0 0 0 X X 1 X 1 0
0 1 1 1 0 1 0 0 X X 0 X 1 0
1 0 0 0 X X X X X X X X X X
1 0 0 1 X X X X X X X X X X
1 0 1 0 X X X X X X X X X X
1 0 1 1 X X X X X X X X X X
1 1 0 0 0 0 0 X 1 X 1 0 X 1
1 1 0 1 0 1 0 X 1 X 0 0 X 1
1 1 1 0 X X X X X X X X X X
1 1 1 1 X X X X X X X X X X

Primeira avaliação escrita 2016/2 Página 10 / 12


Baixado por Philipp Hass (philipphass2014@gmail.com)
lOMoARcPSD|34579991

Finalmente, basta determinar as funções lógicas correspondentes aos sinais JA , KA , JB , KB , JC , KC

QC [n] X QC [n] X
00 01 11 10 00 01 11 10
QA [n] QB [n] QA [n] QB [n]
00 0 0 0 0 00 X X X X

01 1 0 0 0 01 0 1 0 1

11 X X X X 11 1 0 X X

10 X X X X 10 X X X X

KB = QA [n] · QC [n] · X
JA = QB [n] · QC [n] · X
+ QA [n] · QC [n] · X
+ QA [n] · QC [n] · X
QC [n] X
00 01 11 10
QA [n] QB [n]
QC [n] X
00 X X X X 00 01 11 10
QA [n] QB [n]
01 X X X X 00 0 1 X X
11 1 1 X X 01 0 1 X X
10 X X X X 11 0 0 X X

10 X X X X

KA = 1
JC = QA [n] · X

QC [n] X
00 01 11 10 QC [n] X
QA [n] QB [n] 00 01 11 10
00 0 0 0 1 QA [n] QB [n]
00 X X 0 0
01 X X X X
01 X X 1 1
11 X X X X
11 X X X X
10 X X X X
10 X X X X

JB = QC [n] · X KC = QB [n]

Primeira avaliação escrita 2016/2 Página 11 / 12


Baixado por Philipp Hass (philipphass2014@gmail.com)
lOMoARcPSD|34579991

e a função lógica correspondente a Y


QB [n] QC [n]
00 01 11 10
QA [n]
0 0 0 0 0

1 X X X 1

Y = QA [n]

O circuito resultante pode ser conferido no arquivo detectorprova.hds

Primeira avaliação escrita 2016/2 Página 12 / 12


Baixado por Philipp Hass (philipphass2014@gmail.com)

Você também pode gostar