Lógica Programável - Departamento de Informática e ...guntzel/ine5348/LogP_aula7.pdf ·...

61
Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação Aula 7 Máquinas Seqüencias Síncronas: Síntese de circuitos seqüenciais. Exemplos. Mapeamento e alternativas de implementação de máquinas de estado: "hardwired", PLA, ROM e PLD. Prof. José Luís Güntzel [email protected] www.inf.ufsc.br/~guntzel/ine5348/ine5348.html L L ó ó gica Program gica Program á á vel vel INE 5348 INE 5348

Transcript of Lógica Programável - Departamento de Informática e ...guntzel/ine5348/LogP_aula7.pdf ·...

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ü[email protected]

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