Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

1 
FEDERAL UNIVERSITY 
OF SANTA CATARINA 
1 
EEL5105	–	Circuitos	e	Técnicas	Digitais	
Aula	8	
hector@eel.ufsc.br	
http://hectorpettenghi.paginas.ufsc.br	
Prof.	Héctor	Pettenghi	
Material desenvolvido com apoio de arquivos de apresentação do livro de Frank Vahid 
2 2 
FSMs	e	Projeto	de	Blocos	de	Controle	
RTL	Design:	Introdução		
		
		
3 3 
Projeto	de	Blocos	de	Controle	
•  De	maneira	geral,	passos	para	realização	do	projeto:	
1	 Capturar	a	FSM	 Criar	um	diagrama	de	estados	(FSM)	que	descreva	o	comportamento	desejado	do	controlador.	
2	 Criar	a	arquitetura	 Criar	uma	arquitetura	padrão	usando	o	registrador	apropriado	além	de	entradas	e	saídas	apropriadas.	
3	 Codificar	os	estados	
Escolher	um	valor	binário	único	(código)	para	cada	estado.	
Qualquer	código	pode	ser	usado	desde	que	ele	seja	único	para	
cada	estado.	
4	 Criar	uma	tabela	de	estados	
Criar	uma	tabela	verdade	para	a	lógica	combinacional	de	tal	
forma	que	valores	de	saída	e	de	próximo	estado	corretos	sejam	
gerados.	
5	 Implementar	a	lógica	combinacional	 Implementar	a	lógica	combinacional	usando	qualquer	método.	
4 4 
Projeto	de	Blocos	de	Controle	
•  Exemplo	1:	Projetar	um	sincronizador	de	aperto	de	botão		
(circuito	que	converte	um	toque	no	botão	em	um	pulso	com	
duração	de	um	ciclo	de	clock,	independentemente	do	tempo	
que	o	botão	fica	apertado).	
Button press 
synchronizer 
controller 
bi bo 
5 5 
Projeto	de	Blocos	de	Controle	
•  Exemplo	1:	Projetar	um	sincronizador	de	aperto	de	botão		
(circuito	que	converte	um	toque	no	botão	em	um	pulso	com	
duração	de	um	ciclo	de	clock,	independentemente	do	tempo	
que	o	botão	fica	apertado).	
•  Passo	1:	Capturar	a	FSM	
	
6 6 
Projeto	de	Blocos	de	Controle	
•  Exemplo	1:	Projetar	um	sincronizador	de	aperto	de	botão		
(circuito	que	converte	um	toque	no	botão	em	um	pulso	com	
duração	de	um	ciclo	de	clock,	independentemente	do	tempo	
que	o	botão	fica	apertado).	
•  Passo	1:	Capturar	a	FSM	
•  Passo	2:	Criar	a	arquitetura	
A B C 
bo=1 bo=0 bo=0 
bi 
bi b i ’ 
bi ’ 
bi ’ 
bi 
FSM inputs: bi; FSM outputs: bo 
7 7 
Projeto	de	Blocos	de	Controle	
•  Exemplo	1:	Projetar	um	sincronizador	de	aperto	de	botão		
(circuito	que	converte	um	toque	no	botão	em	um	pulso	com	
duração	de	um	ciclo	de	clock,	independentemente	do	tempo	
que	o	botão	fica	apertado).	
•  Passo	1:	Capturar	a	FSM	
•  Passo	2:	Criar	a	arquitetura	
A B C 
bo=1 bo=0 bo=0 
bi 
bi b i ’ 
bi ’ 
bi ’ 
bi 
FSM inputs: bi; FSM outputs: bo 
Combinational 
logic 
n0 
s1 s0 
n1 
bo bi 
clk State register 
FS
M
 
in
pu
ts
 
FS
M
 
ou
tp
ut
s 
8 8 
Projeto	de	Blocos	de	Controle	
•  Exemplo	1:	Projetar	um	sincronizador	de	aperto	de	botão		
(circuito	que	converte	um	toque	no	botão	em	um	pulso	com	
duração	de	um	ciclo	de	clock,	independentemente	do	tempo	
que	o	botão	fica	apertado).	
•  Passo	3:	Codificar	os	estados	
	
9 9 
Projeto	de	Blocos	de	Controle	
•  Exemplo	1:	Projetar	um	sincronizador	de	aperto	de	botão		
(circuito	que	converte	um	toque	no	botão	em	um	pulso	com	
duração	de	um	ciclo	de	clock,	independentemente	do	tempo	
que	o	botão	fica	apertado).	
•  Passo	3:	Codificar	os	estados	
•  Passo	4:	Criar	uma	tabela	de	estados	
00 01 10 
bo=1 bo=0 bo=0 
bi 
bi 
bi ’ 
bi ’ 
bi ’ 
bi 
FSM inputs: bi; FSM outputs: bo 
10 10 
Projeto	de	Blocos	de	Controle	
•  Exemplo	1:	Projetar	um	sincronizador	de	aperto	de	botão		
(circuito	que	converte	um	toque	no	botão	em	um	pulso	com	
duração	de	um	ciclo	de	clock,	independentemente	do	tempo	
que	o	botão	fica	apertado).	
•  Passo	4:	Criar	uma	tabela	de	estados	
Step 4: State table 
11 11 
Projeto	de	Blocos	de	Controle	
•  Exemplo	1:	Projetar	um	sincronizador	de	aperto	de	botão		
(circuito	que	converte	um	toque	no	botão	em	um	pulso	com	
duração	de	um	ciclo	de	clock,	independentemente	do	tempo	
que	o	botão	fica	apertado).	
•  Passo	5:	Implementar...	
12 12 
Projeto	de	Blocos	de	Controle	
•  Exemplo	1:	Projetar	um	sincronizador	de	aperto	de	botão		
(circuito	que	converte	um	toque	no	botão	em	um	pulso	com	
duração	de	um	ciclo	de	clock,	independentemente	do	tempo	
que	o	botão	fica	apertado).	
•  Passo	5:	Implementar...	
clk State register 
bo 
bi 
s1 s0 
n1 
n0 
Combinational logic 
n1 = s1’s0bi + s1s0bi 
n0 = s1’s0’bi 
bo = s1’s0bi’ + s1’s0bi = s1s0 
13 13 
Projeto	de	Blocos	de	Controle	
•  Exemplo	2	(fazer	somente	FSM):	Detector	de	código	para	abrir	porta.	
•  Destrava	porta	(u=1)	somente	
quando	botões	pressionados	são:	
•  Início,	depois	verm.,	azul,	verde,	verm.	
•  Entradas	de	cada	um	dos	botões:	s,r,g,b	
•  Entrada	a	indica	que	um	dos	botões	
coloridos	foi	pressionado.	
Início 
Verm. 
Verde 
Azul 
s 
r 
g 
b 
a 
Trava da 
porta 
u 
Detector 
de 
código 
14 14 
Projeto	de	Blocos	de	Controle	
•  Exemplo	2	(fazer	somente	FSM):	Detector	de	código	para	abrir	porta.	
•  Destrava	porta	(u=1)	somente	
quando	botões	pressionados	são:	
•  Início,	depois	verm.,	azul,	verde,	verm.	
•  Entradas	de	cada	um	dos	botões:	s,r,g,b	
•  Entrada	a	indica	que	um	dos	botões	
coloridos	foi	pressionado.	
• Funcionamento	da	máquina	de	estados:	
•  Espera	em	um	estado	“Wait”	até	que	s	seja	apertado	(s	=	1)	
•  Quando	s	é	apertado,	vai	para	um	estado	“Start”	e	então:	
– Se	vermelho	for	apertado,	vá	para	“Red1”	
– Então,	se	azul	for	apertado,	vá	para	“Blue”	
– Então,	se	verde	for	apertado,	vá	para	“Green”	
– Então,	se	vermelho	for	apertado,	vá	para	“Red2”	
» Em	“Red2”,	mandar	a	porta	abrir	(u	=	1)	
– Botão	errado	apertado	em	qualquer	estado,	volta	para	“Wait”	
• Montar	máquina...	
Início 
Verm. 
Verde 
Azul 
s 
r 
g 
b 
a 
Trava da 
porta 
u 
Detector 
de 
código 
15 15 
Projeto	de	Blocos	de	Controle	
•  Exemplo	2	(fazer	somente	FSM):	Detector	de	código	para	abrir	porta.	
•  Resultado:	 Início 
Verm. 
Verde 
Azul 
s 
r 
g 
b 
a 
Trava da 
porta 
u 
Detector 
de 
código 
Wait 
Start 
Red1 R ed2 Green Blue 
s ’ 
a ’ 
a r ’ a b ’ a g ’ a r ’ 
a ’ 
ab ag ar 
a ’ a ’ 
u=0 
u=0 ar 
u=0 s 
u=0 u=0 u=1 
Entradas: s,r,g,b,a; 
Saída: u 
16 16 
Projeto	de	Blocos	de	Controle	
•  Exemplo	2	(fazer	somente	FSM):	Detector	de	código	para	abrir	porta.	
•  Resultado:	 Início 
Verm. 
Verde 
Azul 
s 
r 
g 
b 
a 
Trava da 
porta 
u 
Detector 
de 
código 
Wait 
Start 
Red1 R ed2 Green Blue 
s ’ 
a ’ 
a r ’ a b ’ a g ’ a r ’ 
a ’ 
ab ag ar 
a ’ a ’ 
u=0 
u=0 ar 
u=0 s 
u=0 u=0 u=1 
Entradas: s,r,g,b,a; 
Saída: u 
Como essa máquina de 
estados pode ser hackeada? 
17 17 
Projeto	de	Blocos	de	Controle	
•  Exemplo	2	(fazer	somente	FSM):	Detector	de	código	para	abrir	porta.	
•  Resultado:	 Início 
Verm. 
Verde 
Azul 
s 
r 
g 
b 
a 
Trava da 
porta 
u 
Detector 
de 
código 
Wait 
Start 
Red1 R ed2 Green Blue 
s ’ 
a ’ 
a r ’ a b ’ a g ’ a r ’ 
a ’ 
ab ag ar 
a ’ a ’ 
u=0 
u=0 ar 
u=0 s 
u=0 u=0 u=1 
Entradas: s,r,g,b,a; 
Saída: u 
Como essa máquina de 
estados pode ser hackeada? 
Mantendo	todos	os	botões	
apertados	ao	mesmo	tempo!	
18 18 
Projeto	de	Blocos	de	Controle	
•  Exemplo	2	(fazer	somente	FSM):	Detector	de	código	para	abrir	porta.	
•  Arrumando	a	FSM:	
•  O	Problema	foi	completamente	resolvido?	
Wait 
Start 
Red1 Red2 Green Blue 
s’ 
a ’ 
a ’ 
ab ag ar 
a ’ a ’ 
u=0 
u=0 ar 
u=0 s 
u=0 u=0 u=1 
ar’ ab’ ag’ ar’ 
19 19 
Projeto	de	Blocos	de	Controle	
•  Exemplo	2	(fazer	somente	FSM):	Detector	de	código	para	abrir	porta.	
•  Arrumando	a	FSM:	
•  O	Problema	foi	completamenteresolvido?	
•  Não!	Se	o	estado	for	“Start”	e	os	três	botões	forem	apertados,	qual	será	o	
próximo	estado?	
Wait 
Start 
Red1 Red2 Green Blue 
s’ 
a ’ 
a ’ 
ab ag ar 
a ’ a ’ 
u=0 
u=0 ar 
u=0 s 
u=0 u=0 u=1 
ar’ ab’ ag’ ar’ 
“Red1”	ou	“Wait”	não	dá	para	saber...	
20 20 
Projeto	de	Blocos	de	Controle	
•  Regras	que	devem	ser	obedecidas	para	evitar	armadilhas:	
•  Para	um	estado	qualquer,	apenas	uma	condição	de	transição	deve	
ser	verdadeira	de	cada	vez.	
a 
b 
Qual o próximo 
estado para a = b = 1? 
21 21 
Projeto	de	Blocos	de	Controle	
•  Regras	que	devem	ser	obedecidas	para	evitar	armadilhas:	
•  Para	um	estado	qualquer,	apenas	uma	condição	de	transição	deve	ser	
verdadeira	de	cada	vez.	
•  Para	um	estado	qualquer,	pelo	menos	uma	das	condições	deve	ser	
verdadeira	para	cada	uma	das	combinações	de	entradas.	
a 
b 
Qual o próximo 
estado para a = b = 1? 
a 
a ’ b 
Corrigido (em parte). 
a 
a ’ b 
O que irá acontecer 
se a = b = 0? 
22 22 
Projeto	de	Blocos	de	Controle	
•  Regras	que	devem	ser	obedecidas	para	evitar	armadilhas:	
•  Para	um	estado	qualquer,	apenas	uma	condição	de	transição	deve	ser	
verdadeira	de	cada	vez.	
•  Para	um	estado	qualquer,	pelo	menos	uma	das	condições	deve	ser	
verdadeira	para	cada	uma	das	combinações	de	entradas.	
a 
b 
Qual o próximo 
estado para a = b = 1? 
a 
a ’ b 
Corrigido (em parte). 
a 
a ’b 
a ’ b ’ 
Corrigido. 
a 
a ’ b 
O que irá acontecer 
se a = b = 0? 
23 23 
Projeto	de	Blocos	de	Controle	
•  Resolvendo	o	problema	detector	de	código	para	abrir	porta:	
Wait 
Start 
Red1 Red2 Green Blue 
s’ 
a ’ 
a ’ 
ab ag ar 
a ’ a ’ u=0 
u=0 
ar 
u=0 
s 
u=0 u=0 u=1 
a(rb’g’) 
QUESTÃO 1: Tempo 5 min 
24 24 
Projeto	de	Blocos	de	Controle	
•  Exemplo	3:	Faça	o	projeto	de	um	circuito	árbitro	para	o	
acesso	a	um	barramento	que	funcione	conforme	descrito	a	
seguir.	
barramento 
Dispositivo	1	
Dispositivo	2	
Árbitro	para	
o	
barramento	
r1 
c1 
c2 
r2 
•  O árbitro recebe requisições para o 
uso do barramento de 2 dispositivos 
diferentes 
•  O “Dispositivo 1” tem prioridade 
sobre o “Dispositivo 2” para o uso do 
barramento 
•  Somente um dispositivo por vez 
pode ser autorizado a usar o 
barramento 
•  Para sinalizar que o dispositivo 
pode usar o barramento, o árbitro faz 
o sinal de concessão igual a 1 (c1 = 1 
ou c2 = 1, dependendo do 
dispositivo) 
clk reset 
25 25 
Projeto	de	Blocos	de	Controle	
•  Exemplo	3:	Faça	o	projeto	de	um	circuito	árbitro	para	o	
acesso	a	um	barramento	que	funcione	conforme	descrito	a	
seguir.	
barramento 
Dispositivo	1	
Dispositivo	2	
Árbitro	para	
o	
barramento	
r1 
c1 
c2 
r2 
•  Uma vez que o dispositivo recebe a 
concessão para usar o barramento, 
ele permanece com esta concessão 
durante todo o tempo que ele 
necessitar usar o barramento (por 
isso, o dispositivo mantém seu sinal 
de requisição em nível alto durante o 
período de uso do barramento) 
•  Faça o projeto do árbitro... 
clk reset 
26 26 
Projeto	de	Blocos	de	Controle	
•  Exemplo	3:	Faça	o	projeto	de	um	circuito	árbitro	para	o	acesso	
a	um	barramento	que	funcione	conforme	descrito	a	seguir.		
•  Solução:	
•  Em	um	determinado	momento,	o	circuito	poderá	então	estar	em	
um	dentre	os	seguintes	estados:	
–  Nenhum	dispositivo	com	acesso	concedido	ao	barramento	
–  Concessão	de	acesso	para	o	Dispositivo	1	
–  Concessão	de	acesso	para	o	Dispositivo	2	
•  Como	são	3	os	estados	possíveis,	precisamos	de	2	variáveis	de	
estado	para	codificar	tais	estados	e,	portanto,	usaremos	2	flip-flops.	
•  Com	isso,	podemos	especificar	as	variáveis:	
–  Entradas:	r1	e	r2	
–  Saídas:	c1	e	c2	
–  Variáveis	de	estados:	q1	e	q2	
27 27 
Projeto	de	Blocos	de	Controle	
•  Exemplo	3:	Faça	o	projeto	de	um	circuito	árbitro	para	o	
acesso	a	um	barramento	que	funcione	conforme	descrito	a	
seguir.	
•  Solução:	
•  Construindo	o	diagrama	de	estados,	temos:	
Acesso	para	
ninguém	
00	
Acesso	para	
Disp.	1	
01	
Acesso	para	
Disp.	2	
10	
c1 = 0 
c2 = 0 
c1 = 1 
c2 = 0 
c1 = 0 
c2 = 1 
r1 = 1 / r2 = X 
r1 = 0 
r2 = 0 
r1 = 0 
r2 = 1 
r1 = 1 
r2 = X 
r1 = X 
r2 = 1 
r1 = 0 / r2 = X 
r1 = X 
r2 = 0 
28 28 
Projeto	de	Blocos	de	Controle	
•  Exemplo	3:	Faça	o	projeto	de	um	circuito	árbitro	para	o	
acesso	a	um	barramento	que	funcione	conforme	descrito	a	
seguir.	
•  Solução:	
•  Construindo	o	diagrama	de	estados,	temos:	
Acesso	para	
ninguém	
00	
Acesso	para	
Disp.	1	
01	
Acesso	para	
Disp.	2	
10	
c1 = 0 
c2 = 0 
c1 = 1 
c2 = 0 
c1 = 0 
c2 = 1 
r1 = 1 / r2 = X 
r1 = 0 
r2 = 0 
r1 = 0 
r2 = 1 
r1 = 1 
r2 = X 
r1 = X 
r2 = 1 
r1 = 0 / r2 = X 
r1 = X 
r2 = 0 
q1 
q2 
29 29 
Projeto	de	Blocos	de	Controle	
•  Exemplo	3:	Faça	o	projeto	de	um	circuito	árbitro	para	o	
acesso	a	um	barramento	que	funcione	conforme	descrito	a	
seguir.	
•  Solução:	
•  Agora,	a	tabela:	
30 30 
Projeto	de	Blocos	de	Controle	
Entradas	 Estado	atual	 Próx.	estado	 Saídas	
r1(t)	 r2(t)	 q1(t)	 q2(t)	 q1(t+1)	 q2(t+1)	 c1(t)	 c2(t)	
0	 0	 0	 0	 0	 0	 0	 0	
0	 0	 0	 1	 0	 0	 1	 0	
0	 0	 1	 0	 0	 0	 0	 1	
0	 0	 1	 1	 X	 X	 X	 X	
0	 1	 0	 0	 1	 0	 0	 0	
0	 1	 0	 1	 0	 0	 1	 0	
0	 1	 1	 0	 1	 0	 0	 1	
0	 1	 1	 1	 X	 X	 X	 X	
1	 0	 0	 0	 0	 1	 0	 0	
1	 0	 0	 1	 0	 1	 1	 0	
1	 0	 1	 0	 0	 0	 0	 1	
1	 0	 1	 1	 X	 X	 X	 X	
1	 1	 0	 0	 0	 1	 0	 0	
1	 1	 0	 1	 0	 1	 1	 0	
1	 1	 1	 0	 1	 0	 0	 1	
1	 1	 1	 1	 X	 X	 X	 X	
31 31 
Projeto	de	Blocos	de	Controle	
•  Exemplo	3:	Faça	o	projeto	de	um	circuito	árbitro	para	o	
acesso	a	um	barramento	que	funcione	conforme	descrito	a	
seguir.	
•  Solução:	
•  E	as	equações:	
–  q1(t+1)	=	d1(t)	=	q1(t)r2(t)	+	r1(t)r2(t)q2(t)	
–  q2(t+1)	=	d2(t)	=	r1(t)q1(t)	
–  c1(t)	=	q2(t)	
–  c2(t)	=	q1(t)	
•  Agora	basta	montar	o	circuito...	
32 32 
Projeto	de	Blocos	de	Controle	
•  Exemplo	4:	Gerador	da	seqüência	(0001,	0011,	1100,	1000,	
repete...).	
33 33 
Projeto	de	Blocos	de	Controle	
•  Exemplo	4:	Gerador	da	seqüência	(0001,	0011,	1100,	1000,	
repete...).	
A 
B 
D 
wxyz=0001 wxyz=1000 
wxyz=0011 wxyz=1100 
C 
Inputs: none; Outputs: w,x,y,z 
clk State register 
w 
x 
y 
z 
n0 s0 s1 n1 
34 34 
Projeto	de	Blocos	de	Controle	
•  Exemplo	5:	Controle	de	chave	de	carro	segura	
•  Muitas	das	chaves	modernas	
para	carros	incluem	um	chip:	
•  Quando	o	carro	é	ligado,	o	computador	de	bordo	solicita	um	
identificador	para	a	chave.	
•  Em	seguida,	a	chave	envia	um	código	de	volta	para	o	computador.	
•  Desenhar	a	máquina	de	estados	para	um	chave	que	envia	o	
código	1101	através	de	uma	saída	r	após	tal	código	ser	
requisitado	através	de	uma	entrada	a.	
	
35 35 
Projeto	de	Blocos	de	Controle	
•  Exemplo	5:	Controle	de	chave	de	carro	segura	
•  Muitas	das	chaves	modernas	
para	carros	incluem	um	chip:	
•  Quando	o	carro	é	ligado,	o	computador	de	bordo	solicita	um	
identificador	para	a	chave.	
•  Em	seguida,	a	chave	envia	um	código	de	volta	para	o	computador.	
•  Desenhar	a	máquina	de	estados	para	um	chave	que	envia	o	
código	1101	através	de	uma	saída	r	após	tal	código	ser	
requisitado	através	de	uma	entrada	a.	
	
K1 K2 K3 K4 
r=1 r=1 r=0 r=1 
Espera 
r=0 
Entrada: a; Outputs: r 
a ’ a 
36 36 
Projeto	de	Blocos	de	Controle	
•  Exemplo	5:	Controle	de	chave	de	carro	segura	
•  Comportamento	ao	longo	do	tempo:	
	
K1 K2 K3 K4 
r=1 r=1 r=0 r=1 
Espera 
r=0 
Entrada: a; Outputs: r 
a ’ a 
W ait W ait K1 K2 K3 K4 W ait W ait 
clk 
Entradas 
Saídas 
Estados 
a 
r37 37 
Projeto	de	Blocos	de	Controle	
•  Exemplo	5:	Controle	de	chave	de	carro	segura	
•  Comportamento	ao	longo	do	tempo:	
•  O	que	aconteceria	se	a	requisição	feita	pelo	computador	de	
bordo	ficasse	ativa	por	muito	tempo?	
	
K1 K2 K3 K4 
r=1 r=1 r=0 r=1 
Espera 
r=0 
Entrada: a; Outputs: r 
a ’ a 
clk 
a 
W ait W ait K1 K2 K3 K4 W ait 
r 
38 38 
FSMs	e	Projeto	de	Blocos	de	Controle	
RTL	Design:	Introdução		
		
		
39 39 
	RTL	Design:	Introdução	
•  Até	agora:	sistemas	digitais	cada	vez	+	complexos	
•  Porta	lógicas,	multiplex.,	decod.,	somadores,	controladores	(FSMs)	
•  Nas	próximas	aulas:	como	associar	esses	sistemas	para	fazer	
circuitos	ainda	mais	complexos	
40 40 
	RTL	Design:	Introdução	
•  	Exemplo:	máquina	de	venda	de	
refrigerante	
•  Supondo	que	tal	máquina	possui:	
•  Interface	com	o	usuário	com	saída	s	de		
8	bits	que	indica	custo	do	refrigerante	
escolhido	
•  Mecanismo	de	recepção	de	moedas	com:	
– saída	c	de	1	bit	que	indica	que	uma	
moeda	foi	depositada		
– saída	a	de	8	bits	que	indica	o	valor	da	
moeda	
•  Mecanismo	de	entrega	de	refrigerante	com	
entrada	d	de	1	bit	que	aciona	a	entrega	
41 41 
	RTL	Design:	Introdução	
•  	Exemplo:	máquina	de	venda	de	refrigerante	
•  Entradas:	s,	c	e	d	
•  Saída:	a	
Interface	
com	o	
usuário	
Mecanismo	
moedas	
8 
8 
Mecanismo	
entrega	
s 
c 
a 
d 
Machine	Manager	v.0.1β	
42 42 
	RTL	Design:	Introdução	
•  	Exemplo:	máquina	de	venda	de	refrigerante	
•  Diagrama	de	estados:	
•  Tal	diagrama	contém:	
•  Variáveis	com	múltiplos	bits	(tot,	s	e	a)	
•  Operações	de	“alto	nível”:	
–  Soma	de	valores	com	múltiplos	bits	(tot+a)	
–  Atribuição	(registro)	de	valores	(tot=0,	tot=tot+a)	
–  Comparação	de	grandezas	(tot<s)	
•  Tem-se	então	um	diagrama	de	estados	de	alto	nível	
Wait 
Add 
Disp 
I nit 
d=0 
tot=0 
c’*(tot<s) 
d=1 
c 
tot=tot+a 
c’*(tot<s)’ 
43 43 
	RTL	Design:	Introdução	
•  RTL	Design	(Projeto	RTL)	envolve	converter	diagrama	de	
estados	de	alto	nível	em	circuito	digital	
•  Para	tal,	dois	tipos	de	entradas/saídas	são	definidos:	
•  Entradas/saídas	de	controle:	tipicamente	de	um	bit	(ou	poucos	
bits)	representando	evento	ou	estado	do	sistema	
•  Entradas/saídas	de	dados:	geralmente	múltiplos	bits	que	
representam	alguma	informação	
44 44 
	RTL	Design:	Introdução	
•  Exemplos	de	entrada/saída	de	controle:		
•  1	bit	representando	que	um	botão	foi	apertado		
•  1	bit	que,	em	nível	alto,	aciona	um	mecanismo	de	
destravamento	de	porta	
•  Exemplos	de	entrada/saída	de	dados	
•  8	bits	indicando	uma	medida	de	temperatura	de	um	sensor	
•  8	bits	indicando	a	soma	dos	valores	das	moedas	depositadas	
em	uma	máquina	de	refrigerante	
45 45 
	RTL	Design:	Introdução	
•  	Exemplo:	máquina	de	venda	de	refrigerante	
•  Entradas/saídas	de	controle:	c	e	d	
•  Entradas/saídas	de	dados:	s	e	a	
Interface	
com	o	
usuário	
Mecanismo	
moedas	
8 
8 
Mecanismo	
entrega	
s 
c 
a 
d 
Machine	Manager	v.0.1β	
46 46 
	RTL	Design:	Introdução	
•  RTL	Design	(Projeto	RTL	)	envolve	converter	diagrama	de	
estados	de	alto	nível	em	circuito	digital	
•  Dois	tipos	de	entradas/saídas	são	definidos:	
•  Entradas/saídas	de	controle:	tipicamente	de	um	bit	(ou	poucos	
bits)	representando	evento	ou	estado	do	sistema	
•  Entradas/saídas	de	dados:	geralmente	múltiplos	bits	que	
representam	alguma	informação/entidade	
•  São	definidos	também	dois	blocos:	
•  Bloco	de	controle:	trata	de	entradas/saídas	de	controle		
•  Bloco	operacional	(datapath):	trata	de	entr./saídas	de	dados	
47 47 
	RTL	Design:	Introdução	
•  RTL	Design	(Projeto	RTL	)	envolve	converter	diagrama	de	
estados	de	alto	nível	em	circuito	digital	
•  Com	isso,	temos	a	seguinte	arquitetura	geral:	
	
Controle	
Datapath	
Entradas 
de controle 
Saídas 
de controle 
Entradas 
de dados 
Saídas 
de dados 
48 48 
	RTL	Design:	Introdução	
•  RTL	Design	(Projeto	RTL	)	envolve	converter	diagrama	de	
estados	de	alto	nível	em	circuito	digital	
•  Com	isso,	temos	a	seguinte	arquitetura	geral:	
•  Bloco	de	controle	e	datapath	conversam	entre	si	a	partir	de	
sinais	de	comando	e	status	
Controle	
Datapath	
Entradas 
de controle 
Saídas 
de controle 
Entradas 
de dados 
Saídas 
de dados 
Comandos Status 
49 49 
Machine	Manager	v.0.1β	
	RTL	Design:	Introdução	
•  Voltando	para	a	máquina	de	venda	de	refrigerante:	
•  Entradas/saídas	de	controle:	c	e	d	
•  Entradas/saídas	de	dados:	s	e	a	
Controle	
Datapath	
Interface	
com	o	
usuário	
Mecanismo	
moedas	
8 
8 
Mecanismo	
entrega	
s 
c 
a 
d 
50 50 
	RTL	Design:	Introdução	
•  Voltando	para	a	máquina	de	venda	de	refrigerante:	
	
•  Possíveis	sinais	de	comando	e	status:		
•  m	(manda	datapath	somar	valor	da	nova	moeda)		
•  h	(informa	controle	que	valor	depositado	é	maior	que	preço	do	
refrigerante	escolhido).	
Machine	Manager	v.0.1β	
Controle	
Datapath	
Interface	
com	o	
usuário	
Mecanismo	
moedas	
8 
8 
Mecanismo	
entrega	
s 
c 
a 
d 
m h 
51 51 
	RTL	Design:	Introdução	
	
•  Projeto	do	Bloco	de	Controle:	usando	a	técnica	descrita	nesta	
aula	
Machine	Manager	v.0.1β	
Controle	
Datapath	
Interface	
com	o	
usuário	
Mecanismo	
moedas	
8 
8 
Mecanismo	
entrega	
s 
c 
a 
d 
m h 
52 52 
	RTL	Design:	Introdução	
•  	Datapath:	Realiza	operações	com	entradas/saídas	de	dados	
Machine	Manager	v.0.1β	
Controle	
Datapath	
Interface	
com	o	
usuário	
Mecanismo	
moedas	
8 
8 
Mecanismo	
entrega	
s 
c 
a 
d 
m h 
53 53 
Datapath	
•  Para	a	máquina	de	venda	de	refrigerante:	
•  Diagrama	de	estados	de	alto	nível:	
•  Operações	de	“alto	nível”:	
•  Soma	de	valores	com	múltiplos	bits	(tot+a)	
•  Atribuição	(registro)	de	valores	(tot=0,	tot=tot+a)	
•  Comparação	de	grandezas	(tot<s)	
Wait 
Add 
Disp 
I nit 
d=0 
tot=0 
c’*(tot<s) 
d=1 
c 
tot=tot+a 
c’*(tot<s)’ 
54 54 
Datapath	
•  Na	máquina	de	venda	de	refrigerante:	
•  Soma	de	valores	com	múltiplos	bits	(tot+a)	
•  Somador	da	Aula	5	
Somador	
(m	bits)	
tot a 
tot+a 
55 55 
Datapath	
•  Na	máquina	de	venda	de	refrigerante:	
•  Atribuição	(registro)	de	valores	(tot=0,	tot=tot+a)	
•  Registrador	com	FFs	Tipo	D	com	load	e	clear	das	Aulas	6,	7	e	Lab	
Registrador		
(m	bits)	clk 
clr 
tot+a 
tot 
load 
load = 1 → tot = tot+a 
clr = 1 → tot = 0 
56 56 
Datapath	
•  Na	máquina	de	venda	de	refrigerante:	
•  Comparação	de	grandezas	(tot<s)	
•  Comparador,	o	qual	pode	ser	projetado	usando	Aula	3	
Comparador	
tot s 
tot < s 
A B 
A < B 
57 57 
Datapath	
•  Na	máquina	de	venda	de	refrigerante:	
•  Associando	os	elementos	que		
fazem	operações	de	alto	nível,		
obtém-se	o	datapath	
Comparador	
tot s 
tot < s 
A B 
A < B 
Somador	
(m	bits)	
tot a 
tot+a 
Registrador		
(m	bits)	clk 
clr 
tot+a 
tot 
load 
Machine	Manager	v.0.1β	
Controle	
Datapath	
8 
8 
s 
c 
a 
d 
m h 
58 58 
Datapath	
Datapath	
•  Na	máquina	de	venda	de	refrigerante:	
•  Associando	os	elementos	que	fazem	operações	de	alto	nível,	
obtém-se	o	datapath	
Comparador	
tot < s 
A B 
A < B 
Somador	
(m	bits)	
tot 
Registrador		
(m	bits)	clk 
clr 
ld 
tot+a 
8 
8 
s 
a 
a 
s 
Tc Tw Tm 
59 59 
Datapath	
Datapath	
•  Na	máquina	de	venda	de	refrigerante:	
Comparador	
tot < s 
AB 
A < B 
Somador	
(m	bits)	
tot 
Registrador		
(m	bits)	clk 
clr 
ld 
tot+a 
8 
8 
s 
a 
a 
s 
Tc Tw Tm 
Tw = 1 → tot = tot+a 
Tc = 1 → tot = 0 Tm: resultado de tot < s 
60 60 
Datapath	 Machine	Manager	v.0.1β	
Controle	
Datapath	
8 
8 
s 
c 
a 
d 
Tw Tc Tm 
Datapath	
Comparador	
tot < s 
A B 
A < B 
Somador	
(m	bits)	
tot 
Registrador		
(m	bits)	clk 
clr 
ld 
tot+a 
8 
8 
s 
a 
a 
s 
Tc Tw Tm 
QUESTÃO 2: Tempo 5 min 
61 
FEDERAL UNIVERSITY 
OF SANTA CATARINA 
61 
EEL5105	–	Circuitos	e	Técnicas	Digitais	
Aula	8	
hector@eel.ufsc.br	
http://hectorpettenghi.paginas.ufsc.br	
Prof.	Héctor	Pettenghi	
Material desenvolvido com apoio de arquivos de apresentação do livro de Frank Vahid 
62 62 
Exercícios	
•  Exercícios	do	Livro	do	Frank	Vahid	
•  3.23	até	3.27	
•  3.29	e	3.30	
•  3.32	e	3.33	
•  3.38	até	3.42	
•  A	versão	digital	do	livro	do	Frank	Vahid	está	disponível	no	
site	da	BU	
•  Mais	especificamente	em:	
http://150.162.4.10/pergamum/biblioteca_s/php/login_pearson.php	
63 63 
Exercícios	
•  Outro	Exemplo:	Contador	de	2	bits	com	contagem	ascendente,	
pausa	e	indicação	de	máximo	da	contagem:	
00	
11	
01	
10	
y=0 
y=0 y=1 
y=0 x 
x 
x 
x 
x’ 
x’ 
x’ 
x’ 
64 64 
Exercícios	
•  Respostas	Livro	do	Frank	Vahid	
3.23 3.24 
3.25 
65 65 
Exercícios	
•  Respostas	Livro	do	Frank	Vahid	
3.26 
66 66 
Exercícios	
•  Respostas	Livro	do	Frank	Vahid	
3.27 
67 67 
Exercícios	
•  Respostas	Livro	do	Frank	Vahid	
3.29 
68 68 
Exercícios	
•  Respostas	Livro	do	Frank	Vahid	
3.30 
69 69 
Exercícios	
•  Respostas	Livro	do	Frank	Vahid	
3.32 
3.33 
70 70 
Exercícios	
•  Resposta	do	3.38	
71 71 
Exercícios	
•  Resposta	do	3.38	
72 72 
Exercícios	
•  Resposta	do	3.39	
73 73 
Exercícios	
•  Resposta	do	3.39	
74 74 
Exercícios	
•  Resposta	do	3.40

Mais conteúdos dessa disciplina