Post on 26-Jul-2020
Universidade Federal de Santa CatarinaCentro Tecnológico
Departamento de Informática e EstatísticaCurso de Graduação em Ciências da Computação
Aula 7Máquinas Seqüencias Síncronas: Síntese de circuitosseqüenciais. Exemplos. Mapeamento e alternativas de
implementação de máquinas de estado: "hardwired", PLA,ROM e PLD.
Prof. José Luís Güntzelguntzel@inf.ufsc.br
www.inf.ufsc.br/~guntzel/ine5348/ine5348.html
LLóógica Programgica ProgramáávelvelINE 5348INE 5348
slide 7.2 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Alternativas de Implementação de FSMsRegistrador de Estados:• Tipos de registradores:
– Feito com FFDs ou com FFJKs ou com FFTs– Pode ser um registrador-deslocador– Pode ser um registrador-contador
• Quanto à forma de fabricação:– Registradores podem estar prontos, integrados em chips com 4 ou 8
bits, cascateáveis (componentes MSI CMOS ou TTL)
– Registradores podem fazer uso de flip-flops pre-existentes dentro deum componente programável tipo SPLD, CPLD ou FPGA.
– Registradores podem ser especificados para serem fabricados do zero(opção de fabricação com máscaras ou masked)
slide 7.3 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
hardwired
Micropro-gramação
Alternativas de Implementação de FSMsLógica de Próximo Estado e Lógica de Saída:• Tipos de implementações:
– Implementando as equações por meio de um circuito combinacional(“lógica aleatória”)
– Implementando as equações pela configuração de planos “E” e “OU”(PALs e PLAs)
– Gravando a tabela-verdade em bloco de memória (ROM, EPROM,EEPROM ou RAM)
• Quanto à forma de fabricação:– Usando chips de memória ROM, EPROM ou EEPROM– Usando chips programáveis SPLDs: PLAs ou PALs– Usando chips programáveis CPLDs ou FPGAs– Mandando fabricar um chip do zero (masked)
slide 7.4 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Alternativas de Implementação de FSMs
Lógica Combinacional Registradores
saídasentradas
estado atual
prox.estado
Lógica de Saída
Lógica de PróximoEstado
Lógica de Próximo Estado e Lógica de Saída
slide 7.5 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Alternativas de Implementação de FSMs
PROM(ou ROM)
Registradores
saídasentradas
estado atual
prox.estado
A0
An-1
An
An+m-1
D0
Dk-1
Dk
Dk+m-1
Lógica de Próximo Estado e Lógica de Saída como Bloco ROM
Entradas deendereço
Saídas dedados
slide 7.6 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Alternativas de Implementação de FSMsLógica de Próximo Estado e Lógica de Saída como Bloco ROM
ROM
Registradorde estado
0 1 0 0 1 1 0 1 1 0 1 0 1
entradas
saídas
endereço
9
4
Conteúdo da ROMPróximo estado
Saída
Estado atual
ckreset
slide 7.7 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Alternativas de Implementação de FSMsPara Cada Linha da Tabela de Estados uma Linha da ROM
00
00
00
00
11
11
11
11
10
01
10
01
01
01
00
00
Próximo estado
Y1Y0
0011
1011
0111
0010
1010
0110
1001
0101
0001
0100
0000
1
1
1
1
0
E1
111
110
101
100
100
saídasE0Estado atual
y1y0ROM
Registradorde estado
0 0 0 1 1 0 1 1 0 1 0 10 00 00 00 10 10 10 11 0…
E1E0
saídas
endereço
n
2
ckreset y1 y0
• O número de linhas da ROM é limitado• Pode haver diversas linhas da tabela de transição
que resultem nos mesmo valores para as saídas
slide 7.8 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Alternativas de Implementação de FSMs
010X01
X
X
X
1
0
E1
00X11
11X10
10101
01X00
00X00
Próximo estado
Y1Y0
E0Estado atual
y1y0
101001
010101
010001
010100
000000
X
X
1
1
0
E1
00X11
11X10
10101
01100
00100
Próximo estado
Y1Y0
E0Estado atual
y1y0
Necessita de 10 linhas da ROM Necessita de 6 linhas da ROM
Agrupando-seos don’t cares
A Solução é Agrupar Casos Equivalentes na Tabela de Transição
slide 7.9 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Alternativas de Implementação de FSMsO Agrupamento Pode Ser Implementado Por um Codificador
ROM
Registradorde estado
0 1 0 0 1 1 0 1 1 0 1 0
E0E1E2
saídas
endereço
n
2
ckreset
Codifi-cador
slide 7.10 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Alternativas de Implementação de FSMsExplorando Características da FSM
B
C
D
E
A
0 0 0 1 0 1 0 1 1 0 1 0 11 0 0 0 1 0 0 0 1 1 1 1 00 1 1 0 0 0 1 0 0 1 1 0 0
Seqüências de estadospodem ser implementadoscomo contagem embinário…
ii+1i+2
endereço
ROM não precisa armazenar prox. estado, somente saídas!
slide 7.11 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Alternativas de Implementação de FSMs
ROM
0 1 0 0 1 1 0 1 1 0 1 0 1
saídas
endereço
n
Bloco ROM + Registrador Contador (Incrementador)
incrreset
• A codificação de estadosprecisa ser coerente com aoperação do contador
• Mas onde entra a variável decontrole w?
B
C
D
E
A w
wck
Registrador-incrementadorcom reset assíncrono
slide 7.12 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Alternativas de Implementação de FSMsBloco ROM + Registrador Contador (Incrementador)
B
C
D
E
A
F
E0
E0
E1
E1
E2E2
ROM
0 1 0 0 1 1 0 1 1 0 1 0 1
saídas
endereço
n
incr
reset
ck
Lógicacombinacional
carga
E0 E1 E2
Registrador-incrementadorcom carga paralela ecom reset assíncrono
slide 7.13 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Alternativas de Implementação de FSMsLógica de Próximo Estado e Lógica de Saída como PLA
Plano E Plano OU
Inversores e buffers
entradas
saídas
…
reset
ckcarga
Registradorde estado
saídasn
E0 E1 E2
slide 7.14 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Alternativas de Implementação de FSMsPLA em Tecnologia CMOS
Negando as entradas eaplicando De Morgan…
Soma de Produtos (SdP) “NOR de NORs”
A
B
C
D
A
B
C
D
slide 7.15 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Alternativas de Implementação de FSMsLógica de Próximo Estado e Lógica de Saída como PLA
Plano NOR(1o nível)
Plano NOR(2o nível)
Inversores e buffers
entradas
…
reset
ckcarga
saídasn
E0 E1 E2
A
S
B C D
transistor depré-carga
NOR CMOS com muitas entradas
slide 7.16 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Alternativas de Implementação de FSMsLógica de Próximo Estado e Lógica de Saída como PAL
Plano E(configurável)
entradas
saídas
Plano OU(fixo)
slide 7.17 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Alternativas de Implementação de FSMsImplementando uma FSM Completa com PAL
Lógica Combinacional Registradores
saídasentradas
estado atual
prox.estado
Lógica de Saída
Lógica de PróximoEstado
slide 7.18 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Alternativas de Implementação de FSMsImplementando uma FSM Completa com PAL
saída
Para o plano E
D Q
Clock
Select Enable
Flip-flop
slide 7.19 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Alternativas de Implementação de FSMsImplementando uma FSM Completa em um CPLD
BlocotipoPAL
Blo
co d
e E
/S B
loco
de E
/S
Blo
co d
e E
/S
Blo
co d
e E/S
Rede de interconexão
BlocotipoPAL
BlocotipoPAL
BlocotipoPAL
Estrutura deum CPLD
CPLDs existentes nomercado:
• Possuem entre 2 a100 blocos tipo PAL
• Variedade deencapsulamentos,com até 200 pinos(QFP)
slide 7.20 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
D Q
D Q
D Q
PAL-like block (details not shown)
PAL-like block
macrocell
CPLDs reais:• Cada bloco
possui em tornode 16 macrocells
• Cada porta ORpossui entre 5 a20 entradas
Tri-state buffers:Permitem configuraros pinos (E/S)
Alternativas de Implementação de FSMsImplementando uma FSM Completa em um CPLD
slide 7.21 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
I/O block
I/O block
I/O block I/O
blo
ck
Estrutura de um FPGA
chaves programáveis(ligações entre linhasverticais ehorizontais)
bloco lógicoprogramável
chaves programáveis(ligações do blococom as linhas deinterconexão)
slide 7.22 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1
AB
C
F
FPGAs: LUTs (Lookup Tables)
• Implementadas com muxes 2:1 ebits de memória, SRAM(reprogramabilidade…)
• Normalmente, possuem 4 ou 5entradas
• Implementam qualquer funçãológica. Para 4 entradas, existem
224 = 65.536 diferentes funções!!!
slide 7.23 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
0 1 0 0 0 0 1 1
AB
C
F1
FPGAs: LUTs (Lookup Tables)
1
1
0
0
0
0
1
0
F1
1111
1011
1101
0001
0110
0010
1100
0000
F2CBA
Programando LUTs
slide 7.24 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
saída
D Q
Clock
Select
Flip-flop
LUTIn1In2In3
Alternativas de Implementação de FSMsImplementando uma FSM Completa em um FPGA
slide 7.25 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Arquitetura do CLB dodispositivo VIRTEX-II
Slice
Slice
Slice
Slice
• Fast Carry Logic Path
• Provides fast arithmetic add and sub
RESUMINDO O CLB• 4 Slices• 8 LUTS / 8 Flip-Flops• 2 cadeias de vai-um• 64 bits para memória• 64 bits para shift-register
Transparência de F. Moraes (PUCRS)
slide 7.26 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Arquitetura (metade) do Slice
slide 7.27 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
FPGAs Altera: Stratix II
EstruturaBásica daMatriz doStratix II
slide 7.28 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
FPGAs Altera: Stratix IIEstrutura de um LAB (Logic Array Block)
• 8 ALMs (Adaptative LogicModules)
• Cadeia de carry• Cadeia aritmética
compartilhada• Sinais de controle do LAB• Conexões locais• Cadeia de registradores
Cada LAB é constituído por:
1 LAB
ALMs
slide 7.29 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
FPGAs Altera: Stratix IIDiagrama de blocos de um ALM
slide 7.30 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Detalhes de um ALMFPGAs Altera: Stratix II
slide 7.31 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
controle reg. de desl.reg. de desl.
reg. de desl.
A
BS = A + B
a
b
s
ck
Síntese de Circuitos SeqüenciaisExemplo 7: Somador (Bit) Serial
slide 7.32 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Síntese de Circuitos SeqüenciaisExemplo 7: Somador (Bit) Serial, versão Mealy
ab/s11/0reset
G H00/001/110/1
01/010/011/1
00/1Estado G: carry-in = 0Estado H: carry-in = 1
slide 7.33 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Síntese de Circuitos SeqüenciaisExemplo 7: Somador (Bit) Serial, versão Mealy
H11G
G00H
H10H
H01H
H
G
G
G
Estadoatual
H11
G01
G10
G00
Próximoestado
ba
Tabela de (transição de) estados
ab/s11/0reset
G H00/001/110/1
01/010/011/1
00/1Estado G: carry-in = 0Estado H: carry-in = 1
slide 7.34 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Síntese de Circuitos SeqüenciaisExemplo 7: Somador (Bit) Serial, versão Mealy
1110
0001
1101
1011
1
0
0
0
y
111
001
010
000
Yba
Tabela de (transição de) estados
ab/s11/0reset
G H00/001/110/1
01/010/011/1
00/1
Y = a·b + a·y + b ·y
1110
0100
Y
y
y
a ba b a b a b a·b
a·y
b·y
slide 7.35 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Exemplo 7: Somador (Bit) Serial, versão Mealy
0110
1001
0101
0011
1
0
0
0
y
111
101
110
000
sba
Tabela de saída
ab/s11/0reset
G H00/001/110/1
01/010/011/1
00/1
s = a ⊕ b ⊕ y
0101
1010
Y
y
y
a ba b a b a b
Síntese de Circuitos Seqüenciais
slide 7.36 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Exemplo 7: Somador (Bit) Serial, versão Moore
Síntese de Circuitos Seqüenciais
Estados G0 e G1: carry-out = 0Estados H0 e H1: carry-out = 1
11
reset
G0/s=0(ab)00 H0/s=0
G1/s=1 H1/s=1
0001, 10
01, 10
11 01, 10
00
01, 10
11
11
00
slide 7.37 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Exemplo 7: Somador (Bit) Serial, versão Moore
Síntese de Circuitos Seqüenciais
G1
G1
G0
G0
00
Próximo estado
H0
H0
G1
G1
01
saídaEstadoatual
1H1H0H1
H0
G1
G0
0H1H0
1H0G1
0H0G1
s0110
Tabela de estados e de saída11
reset
G0/s=0(ab)00 H0/s=0
G1/s=1 H1/s=1
0001, 10
01, 10
11 01, 10
00
01, 10
11
11
00
slide 7.38 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Exemplo 7: Somador (Bit) Serial, versão Moore
Síntese de Circuitos Seqüenciais
01
01
00
00
00
Próximo estado (Y1Y0)
10
10
01
01
01
saídaEstadoatual
y1y0
1111011
10
01
00
01110
11001
01001
s0110
Tabela de estados e de saída(Após a codificação doe estados)
11
reset
G0/s=0(ab)00 H0/s=0
G1/s=1 H1/s=1
0001, 10
01, 10
11 01, 10
00
01, 10
11
11
00
slide 7.39 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Exemplo 7: Somador (Bit) Serial, versão Moore
Síntese de Circuitos Seqüenciais
01
01
00
00
00
Próximo estado (Y1Y0)
10
10
01
01
01
saídaEstadoatual
y1y0
1111011
10
01
00
01110
11001
01001
s0110
Y1 = a·b + a·y1 + b ·y1
Y0 = a ⊕ b ⊕ y1
s = y0
slide 7.40 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Exemplo 7: Somador (Bit) Serial, versão Moore
Síntese de Circuitos Seqüenciais
b
s
ck
y1
y0
Y1
Y0
reset
D0 Q0
Q0
D1 Q1
Q1
Somadorcompleto s
cout
a
Y1 = a·b + a·y1 + b ·y1
Y0 = a ⊕ b ⊕ y1
s = y0
slide 7.41 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
LIBRARY ieee ;USE ieee.std_logic_1164.all ;
-- registrador-deslocador para a direita, com carga paralela e sinal de enableENTITY shiftrne IS
GENERIC ( N : INTEGER := 4 ) ;PORT ( R : IN STD_LOGIC_VECTOR(N-1 DOWNTO 0) ;
L, E, w : IN STD_LOGIC ;Clock : IN STD_LOGIC ;Q : BUFFER STD_LOGIC_VECTOR(N-1 DOWNTO 0) ) ;
END shiftrne ;
ARCHITECTURE Behavior OF shiftrne ISBEGIN
PROCESSBEGIN
WAIT UNTIL Clock'EVENT AND Clock = '1' ;IF E = '1' THEN
IF L = '1' THENQ <= R ;
ELSEGenbits: FOR i IN 0 TO N-2 LOOP
Q(i) <= Q(i+1) ;END LOOP ;Q(N-1) <= w ;
END IF ;END IF ;
END PROCESS ;END Behavior ;
Deslocador
VHDL para o Exemplo 7
Retirado de BROWN, S.; VRANESIC, Z. Fundamentals ofDigital Logic with VHDL Design. McGraw-Hill, 2000.
slide 7.42 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
1 LIBRARY ieee ;2 USE ieee.std_logic_1164.all ;
3 ENTITY serial IS4 GENERIC ( length : INTEGER := 8 ) ;5 PORT ( Clock : IN STD_LOGIC ;6 Reset : IN STD_LOGIC ;7 A, B : IN STD_LOGIC_VECTOR(length-1 DOWNTO 0) ;8 Sum : BUFFER STD_LOGIC_VECTOR(length-1 DOWNTO 0) );9 END serial ;
10 ARCHITECTURE Behavior OF serial IS11 COMPONENT shiftrne12 GENERIC ( N : INTEGER := 4 ) ;13 PORT ( R : IN STD_LOGIC_VECTOR(N-1 DOWNTO 0) ;14 L, E, w : IN STD_LOGIC ;15 Clock : IN STD_LOGIC ;16 Q : BUFFER STD_LOGIC_VECTOR(N-1 DOWNTO 0) ) ;17 END COMPONENT ;
18 SIGNAL QA, QB, Null_in : STD_LOGIC_VECTOR(length-1 DOWNTO 0) ;19 SIGNAL s, Low, High, Run : STD_LOGIC ;20 SIGNAL Count : INTEGER RANGE 0 TO length ;21 TYPE State_type IS (G, H) ;22 SIGNAL y : State_type ; continua no próximo slide
Deslocador
VHDL para o Exemplo 7
Retirado de BROWN, S.; VRANESIC, Z. Fundamentals ofDigital Logic with VHDL Design. McGraw-Hill, 2000.
slide 7.43 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
23 BEGIN24 Low <= '0' ; High <= '1' ;25 ShiftA: shiftrne GENERIC MAP (N => length)26 PORT MAP ( A, Reset, High, Low, Clock, QA ) ;27 ShiftB: shiftrne GENERIC MAP (N => length)28 PORT MAP ( B, Reset, High, Low, Clock, QB ) ;29 AdderFSM: PROCESS ( Reset, Clock )30 BEGIN31 IF Reset = '1' THEN32 y <= G ;33 ELSIF Clock'EVENT AND Clock = '1' THEN34 CASE y IS35 WHEN G =>36 IF QA(0) = '1' AND QB(0) = '1' THEN y <= H ;37 ELSE y <= G ;38 END IF ;39 WHEN H =>40 IF QA(0) = '0' AND QB(0) = '0' THEN y <= G ;41 ELSE y <= H ;42 END IF ;43 END CASE ;44 END IF ;45 END PROCESS AdderFSM ;
Continua no próximo slide
Deslocador
VHDL para o Exemplo 7
Retirado de BROWN, S.; VRANESIC, Z. Fundamentals ofDigital Logic with VHDL Design. McGraw-Hill, 2000.
slide 7.44 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
46 WITH y SELECT47 s <= QA(0) XOR QB(0) WHEN G,48 NOT ( QA(0) XOR QB(0) ) WHEN H ;49 Null_in <= (OTHERS => '0') ;50 ShiftSum: shiftrne GENERIC MAP ( N => length )51 PORT MAP ( Null_in, Reset, Run, s, Clock, Sum ) ;52 Stop: PROCESS53 BEGIN54 WAIT UNTIL (Clock'EVENT AND Clock = '1') ;55 IF Reset = '1' THEN56 Count <= length ;57 ELSIF Run = '1' THEN58 Count <= Count -1 ;59 END IF ;60 END PROCESS ;61 Run <= '0' WHEN Count = 0 ELSE '1' ; -- stops counter and ShiftSum62 END Behavior ;
Retirado de BROWN, S.; VRANESIC, Z. Fundamentals ofDigital Logic with VHDL Design. McGraw-Hill, 2000.
slide 7.45 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Exemplo 8: Controlador de DMA
Síntese de Circuitos Seqüenciais
Sinais:
BR= Bus RequestBG= Bus GrantRD= ReadWR= WriteDS= DMA selectRS= register select
CPU Memória
ControladorDMA
Dispositivode E/S
DS
RS
BR
BG
interrupção
RD WR end dado
BR
BG
interrupção
RD WR end dado RD WR end dado
Decod. deendereços
requisição DMA
confirmação DMA
barramento de ends
barramento de dados
controle de escrita
controle de leitura
slide 7.46 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Exemplo 8: Controlador de DMA
Síntese de Circuitos Seqüenciais
Passo 1:Passo 1: processador ativa o DMAC (controlador de DMA)
• Informando a identidade do dispositivo
• A operação a ser realizada pelo dispositivo
• O endereço de memória que é a fonte ou o destino do dadoe
• O número de bytes a serem transferidos
slide 7.47 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Exemplo 8: Controlador de DMA
Síntese de Circuitos Seqüenciais
Passo 2:Passo 2: O DMAC inicia a operação sobre o dispositivo:
• Arbitrando o barramento
• Quando os dados estiverem disponíveis ele os transfere
• Fornece os endereços de memória a serem lidos ouescritos
• Gera o próximo endereço de memória e inicia a novatransferência…
slide 7.48 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Exemplo 8: Controlador de DMA
Síntese de Circuitos Seqüenciais
Passo 3:Passo 3: Uma vez completada a transferência sob ocontrole do DMAC:
• O DMAC interrompe o processador,
• O processador deve verificar se toda a operação detransferência foi realizada com sucesso.
• O processador retoma o controle do barramento
slide 7.49 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
O controlador de DMA no sistemaAcesso Direto à Memória (DMA)
CPU Memória
ControladorDMA
Dispositivode E/S
DS
RS
BR
BG
interrupção
RD WR end dado
BR
BG
interrupção
RD WR end dado RD WR end dado
Decod. deendereços
requisição DMA
confirmação DMA
barramento de ends
barramento de dados
controle de escrita
controle de leitura
slide 7.50 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
CPU Memória
ControladorDMA
Dispositivode E/S
DS
RS
BR
BG
interrupção
RD WR end dado
BR
BG
interrupção
RD WR end dado RD WR end dado
Decod. deendereços
requisição DMA
confirmação DMA
barramento de ends
barramento de dados
controle de escrita
controle de leitura
O dispositivoenvia uma
requisição de DMA
Transferência DMA
slide 7.51 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
CPU Memória
ControladorDMA
Dispositivode E/S
DS
RS
BR
BG
interrupção
RD WR end dado
BR
BG
interrupção
RD WR end dado RD WR end dado
Decod. deendereços
requisição DMA
confirmação DMA
barramento de ends
barramento de dados
controle de escrita
controle de leituraBR=1
Transferência DMA
slide 7.52 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
CPU Memória
ControladorDMA
Dispositivode E/S
DS
RS
BR
BG
interrupção
RD WR end dado
BR
BG
interrupção
RD WR end dado RD WR end dado
Decod. deendereços
requisição DMA
confirmação DMA
barramento de ends
barramento de dados
controle de escrita
controle de leitura
A CPU inicializao controladorpor meio do
bar. de dados
Transferência DMA
BR=1
slide 7.53 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
CPU Memória
ControladorDMA
Dispositivode E/S
DS
RS
BR
BG
interrupção
RD WR end dado
BR
BG
interrupção
RD WR end dado RD WR end dado
Decod. deendereços
requisição DMA
confirmação DMA
barramento de ends
barramento de dados
controle de escrita
controle de leitura
BG=1
Transferência DMA
slide 7.54 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
CPU Memória
ControladorDMA
Dispositivode E/S
DS
RS
BR
BG
interrupção
RD WR end dado
BR
BG
interrupção
RD WR end dado RD WR end dado
Decod. deendereços
requisição DMA
confirmação DMA
barramento de ends
barramento de dados
controle de escrita
controle de leitura
BG=1
R=1 ou W=1
O DMACcoloca no barramento
de endereços o valor do
Registrador de endse faz R=1 ou W=1
Transferência DMA
slide 7.55 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
CPU Memória
ControladorDMA
Dispositivode E/S
DS
RS
BR
BG
interrupção
RD WR end dado
BR
BG
interrupção
RD WR end dado RD WR end dado
Decod. deendereços
requisição DMA
confirmação DMA
barramento de ends
barramento de dados
controle de escrita
controle de leitura
BG=1
R=1 ou W=1
Quando o dispositivode E/S recebe a confirmação,
ele baixa o sinal derequisição de DMA e coloca
o dado no barramento dedados.
Então, o DMAC controla atransferência entre Memória
e dispositivo de E/S
Transferência DMA
slide 7.56 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
CPU Memória
ControladorDMA
Dispositivode E/S
DS
RS
BR
BG
interrupção
RD WR end dado
BR
BG
interrupção
RD WR end dado RD WR end dado
Decod. deendereços
requisição DMA
confirmação DMA
barramento de ends
barramento de dados
controle de escrita
controle de leitura
Transferência DMA
BG=1
O DMAC testa se ocontador de palavras
vale zero. Casonegativo, ele fica a
espera do dispositivode E/S sinalizar que
está pronto para novatransferência.
slide 7.57 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
CPU Memória
ControladorDMA
Dispositivode E/S
DS
RS
BR
BG
interrupção
RD WR end dado
BR
BG
interrupção
RD WR end dado RD WR end dado
Decod. deendereços
requisição DMA
confirmação DMA
barramento de ends
barramento de dados
controle de escrita
controle de leitura
Transferência DMA
interrupção=1
Quando o DMACverifica que o contadorde palavras vale zero,ele interrompe a CPU.BG=1
slide 7.58 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
CPU Memória
ControladorDMA
Dispositivode E/S
DS
RS
BR
BG
interrupção
RD WR end dado
BR
BG
interrupção
RD WR end dado RD WR end dado
Decod. deendereços
requisição DMA
confirmação DMA
barramento de ends
barramento de dados
controle de escrita
controle de leitura
Transferência DMA
interrupção=1
A CPU baixa o valor deBG.
BG=0
slide 7.59 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Exemplo 8: Controlador de DMA
Síntese de Circuitos Seqüenciais
buffersbar. dedados
RD
RS
WR
BR
DS
BG
Lógicade
Controle Registrador de controle
Contador de palavras
Registrador de ends
buffersbar. deends
bar
ram
ento
inte
rno
requisição de DMA
confirmação de DMA p/ dispositivo de E/Sinterrupção
seleção de DMA
seleção de registrador
leitura
escrita
requisição do barramento
concessão do barramento
barramento de ends
barramento de dados
Estrutura Interna
slide 7.60 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Exemplo 8: Controlador de DMA. Projetando o Bloco de Controle
Síntese de Circuitos Seqüenciais
buffersbar. dedados
RD
RS
WR
BR
DS
BG
Lógicade
Controle Registrador de controle
Contador de palavras
Registrador de ends
buffersbar. deends
bar
ram
ento
inte
rno
requisição de DMA
confirmação de DMA p/ dispositivo de E/Sinterrupção
seleção de DMA
seleção de registrador
leitura
escrita
requisição do barramento
concessão do barramento
barramento de ends
barramento de dados
slide 7.61 Prof. José Luís Güntzel
Máquinas Seqüenciais Síncronas
INE/CTC/UFSCLógica Programável - semestre 2007/2
Exemplo 8: Controlador de DMA. Projetando o Bloco de Controle
Síntese de Circuitos Seqüenciais
BR
BG
Lógicade
Controle
Contador de palavras
Registrador de ends
requisição de DMA
confirmação de DMA p/ dispositivo de E/Sinterrupção
inc
requisição do barramento
concessão do barramento
barramento de ends
WR RD
=0?
zero
transf_OK
dec
RDWR