Escolar Documentos
Profissional Documentos
Cultura Documentos
OF SANTA CATARINA
hector@eel.ufsc.br
http://hectorpettenghi.paginas.ufsc.br
c’ c’ c’ c’ c’ c’ c’
rst
c c c c c c
E0 E1 E2 E3 E4 ... E98 E99
r=0 r=1 r=2 r=3 r=4 r=98 r=99
c
Vamos ter de montar uma FSM de 100 estados!
9.1 RTL Design: Introdução
c*(r<99)
rst
Init Wait Count
(r<99)’
r=0 r=r+1
• Tal diagrama contém:
• Variáveis com múltiplos bits (r)
• Operações de “alto nível”:
– Soma de valores com múltiplos bits (r)
– Atribuição (registro) de valores (r=0, r=r+1)
– Comparação de grandezas (r<99)
• Tem-se então um diagrama de estados de alto nível
9.1 RTL Design: Introdução
Entradas Saídas
de controle Controle de controle
Entradas Saídas
de dados
Datapath de dados
9.1 RTL Design: Introdução
Entradas Saídas
de controle Controle de controle
Comandos Status
Entradas Saídas
de dados
Datapath de dados
c*(r<99)
rst
Init Wait Count
(r<99)’
r=0 r=r+1
• No contador de 100:
• Soma incremental (r+1)
• Somador da Aula 4 (veremos outra forma de fazer uma soma
incremental na próxima aula)
r 1
Somador
(m bits)
r+1
9.1 RTL Design: Introdução
• No contador de 100:
• Atribuição (registro) de valores (r=0, r=r+1)
• Registrador com FFs Tipo D com load e clear das Aulas 7 e Lab
r+1
clr
load Registrador
clk (m bits)
load = 1 → r = r+1
clr = 1 → r = 0
9.1 RTL Design: Introdução
• No contador de 100:
• Comparação de grandezas (r<99)
• Comparador, o qual pode ser projetado usando Aula 3
r 99
A B
Comparador
A<B
r < 99
9.1 RTL Design: Introdução
• No contador de 100:
• Associando os elementos que Machine Manager v.0.1β
fazem operações de alto nível,
c
obtém-se o datapath Controle
r 1
m h
r
Somador Datapath
(m bits) 7
r+1 r 99
r+1
clr A B
load Registrador
Comparador
clk (m bits)
A<B
r r < 99
9.1 RTL Design: Introdução
• No contador de 100:
• Associando os elementos que fazem operações de alto nível,
obtém-se o datapath
Tm Tw Tc
Datapath
1
99
Somador
A B
(m bits)
Comparador r+1
A<B clr
ld
Registrador
clk (m bits)
r < 99
r
r
7
9.1 RTL Design: Introdução
• No contador de 100:
Tm Tw Tc
Datapath
1
99
Somador
A B
(m bits)
Comparador r+1
A<B clr
ld
Registrador
clk (m bits)
r < 99
r
r
7
Tw = 1 → r = r+1
Tm: resultado de r < 99
Tc = 1 → r = 0
9.1 RTL Design: Introdução Machine Manager v.0.1β
c
Controle
c’*(Tm)
rst Tm Tw Tc
c*(Tm )
r
Init Wait Count
Datapath
7
(Tm)’
Tc=1 Tw=0 Tw=1
Tc=0
Tm Tw Tc
Datapath
1
99
Somador
(m bits)
A B
Comparador r+1
A<B clr
ld Registrador
clk (m bits)
r < 99
r
r
7
9.1 RTL Design: Introdução Machine Manager v.0.1β
c
Controle
c’*(Tm)
rst Tm Tw Tc
c*(Tm )
r
Init Wait Count
Datapath
7
(Tm)’
Tc=1 Tw=0 Tw=1
Tw=0 Tc=0 Tc=0
Tm Tw Tc
Datapath
1
99
Somador
(m bits)
A B
Comparador r+1
A<B clr
ld Registrador
clk (m bits)
r < 99
r
r
7
9.1 RTL Design: Introdução
9.2 RTL Design: Elementos do Datapath
9.2 RTL Design: Elementos do Datapath
• Exemplos de elementos do bloco operacional, ou seja,
elementos utilizados para construir um datapath:
• Registradores
• Registradores de deslocamento
• Comparadores
Entradas Saídas
Controle
• Somadores de controle de controle
• Multiplicadores Entradas
de dados
Datapath Saídas
de dados
• Subtratores
• ALUs (unidades lógico-aritméticas)
9.2 RTL Design: Elementos do Datapath
Comparadores
a3 a2 a1 a0 b3 b2 b1 b0
4-bit equality comparator
eq
(b)
eq
(a)
9.2 RTL Design: Elementos do Datapath
Comparadores
Então A > B
9.2 RTL Design: Elementos do Datapath
Comparadores
a b
a b
Igt in_gt out_gt
Ieq in_eq out_eq
Ilt in_lt out_lt
9.2 RTL Design: Elementos do Datapath
Comparadores
a b a b a b a b
igt in_gt out_gt in_gt out_gt in_gt out_gt in_gt out_gt AgtB
ieq in_eq out_eq in_eq out_eq in_eq out_eq in_eq out_eq AeqB
ilt in_lt out_lt in_lt out_lt in_lt out_lt in_lt out_lt AltB
4-bit register
I3 I2 I1 I0
D D D D
Q Q Q Q reg(4)
clk
Q3 Q2 Q1 Q0
Q3 Q2 Q1 Q0
ALU load
mux mux mux mux
load
9.2 RTL Design: Elementos do Datapath
Registradores de Deslocamento
ALU
9.2 RTL Design: Elementos do Datapath
Registradores de Deslocamento
• Registrador multifunção:
• Muitos registradores tem múltiplas funções
• Podem ser facilmente projetados usando muxes
Funções:
s1 s0 Operação
• Exemplo: 0 0 Mantém valor atual
0 1 Carga paralela
1 0 Desloca à direita
1 1 (não usado - coloca 0s)
ALU
9.2 RTL Design: Elementos do Datapath
Registradores de Deslocamento
ALU
PROBLEMAS
Problema 9.5. Pretende-se implementar um circuito que implemente o padrão
de contagem em hexadecimal 0386C9ECFF0386..., correspondente
a um sinal de 8 bits (b0 a b7). Este padrão corresponde à contagem de 5 estados,
que se repetem ao longo do tempo. Utilizando o mínimo de lógica combinatória
adicional, ligue dois registros Multi-modo apresentado na Figura de modo a
implementar o circuito gerador deste padrão.
PROBLEMAS
Problema 9.6. Obtenha a forma de onda para a saída Q de 4-bits do registrador
Multi-modo apresentado.
Solução:
co SC SC SC SC SC ci
sn s3 s2 s1 s0
a3 a2 a1 a0 b3 b2 b1 b0
4-bit adder ci
co s3 s2 s1 s0
9.2 RTL Design: Elementos do Datapath
Subtratores e Somadores/Subtratores
X Y
n n
Subtrator
de n bits
n
Somador de n
1
bits
X-Y
9.2 RTL Design: Elementos do Datapath
Subtratores e Somadores/Subtratores
C X Y
n n
Somador/ C X Y
Subtrator n n
de n bits
n Somador/subtrator
de n bits
Somador de n
bits n
n
S
Se C = 0: X + Y
Se C = 1: X - Y
9.2 RTL Design: Elementos do Datapath
Deslocadores
• Circuito pode i3 i2 i1 i0
Símbolo
q3 q2 q1 q0
Left shifter
i3 i2 i1 i0 i3 i2 i1 i0
inR
in inL
01 01 01 01 2 01 201 2 01 2 01
• Outros: sh shL s0
shR s1
q3 q2 q1 q0 q3 q2 q1 q0
Desloca para esquerda,
Desloca para esquerda
direita ou não desloca
ou não desloca
9.2 RTL Design: Elementos do Datapath
Deslocadores
<<1 0 (shift in 0)
8 00100000 (32)
8
8-bit adder
8
F
9.2 RTL Design: Elementos do Datapath
Deslocadores
leituras +
divide por 4
• Estratégia: somar e dividir
>>2
por 4
Ravg
ld
Tavg
9.2 RTL Design: Elementos do Datapath
Contadores
4 4 4
• Incrementador: +1 4 +1
4
4
tc C
9.2 RTL Design: Elementos do Datapath
Contadores
1
cnt 8-bit up-counter
tc C
osc
(256 Hz) 8
p (unused)
(1 Hz)
9.2 RTL Design: Elementos do Datapath
Contadores
• Sequenciador de lâmpadas:
clk tc c2 c1 c0
(1 Hz)
00 10 010
unused
3x 8 decoder i2 i1 i0
d7 d6 d5 d4 d3 d2 d1 d0
lig hts
9.2 RTL Design: Elementos do Datapath
Contadores
cnt
ld
4-bit register
4 4
4 –1
tc C 4
9.2 RTL Design: Elementos do Datapath
Contadores
dir
1 Mux 2x1 0
4
clr clr
cn t ld 4-bit register
4 4 4 4
4 –1 +1
4 4
1 2x 1 0
tc C
9.2 RTL Design: Elementos do Datapath
Contadores
L 4
load
1 4-bit 2x 1 0
4
cnt load
4-bit register
4 4
4 +1
tc C
9.2 RTL Design: Elementos do Datapath
Contadores
load L
1
cnt 4-bit down-counter
tc C
clk
4
9.2 RTL Design: Elementos do Datapath
Contadores
clr
1 cnt 6-bit up counter
osc tc C
(60 Hz)
p
(1 Hz)
PROBLEMAS
Problema 9.7. Projete um circuito que fornece a sequencia apresentada usando o
contador dado e portas logicas de duas entradas.
3
Solução:
load L
000 001 010
cnt
3-bit up-counter (0—> 7)
reset
tc=4 C 110 101 100
hector@eel.ufsc.br
http://hectorpettenghi.paginas.ufsc.br
• Resposta do 4.2:
Exercícios
• Resposta do 4.6: basta usar um registrador com carga
paralela