lógica programável - ufscguntzel/ine5348/logp_aula4.pdf · r s qt+1 comentário tabela de...
TRANSCRIPT
Universidade Federal de Santa CatarinaCentro Tecnológico
Departamento de Informática e EstatísticaCurso de Graduação em Ciências da Computação
Aula 4Revisão de latches, flip-flops e registradores. Descrição
de latches, flip-flops e registradores com VHDL. Síntese esimulação.
Prof. José Luís Gü[email protected]
www.inf.ufsc.br/~guntzel/ine5348/ine5348.html
LLóógica Programgica ProgramáávelvelINE 5348INE 5348
slide 4.2 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
A teoria sobre o funcionamento de latches, flip-flops eregistradores está detalhada nos capítulos 4 e 5 daapostila “Introdução aos Sistemas Digitais”, de JoséLuís Güntzel e Francisco Assis do Nascimento, a qualecontra-se disponível gratuitamente em formato PDF noendereço www.ufpel.edu.br/~guntzel/isd/isd.html
Observação Importante
slide 4.3 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
R
S
Q
Q
O Latch RSsímbolo circuito com portas nor
n2
n1R
S
Q
Q
proibido-11
estado reset001
estado set110
mantém estado anteriorQt00
comentárioQt+1SR
tabela de transiçãode estados
slide 4.4 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
O Latch RS: análise dinâmica (1)
Supondo que:1. em t=t0 se faça R=1 e S=02. e em t=t1 se faça R=0 e S=0
n2
n1R
S
Q
Q
R
S
Q
Q
nada mudanas saídas
após t1
t0 t1
td(n1) td(n2)
valor indeterminado(=desconhecido)
slide 4.5 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
R
S
Q
Q
nada mudanas saídas
após t1
t0 t1
td(n1)td(n2)
valor indeterminado(=desconhecido)
O Latch RS: análise dinâmica (2)
Supondo que:1. em t=t0 se faça R=0 e S=12. e em t=t1 se faça R=0 e S=0
n2
n1R
S
Q
Q
slide 4.6 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
O Latch RS: resumo do funcionamento
tabela de transiçãode estados
estado proibido0011
mantém o estado set (= mantém estado anterior)0100
vai para o estado set0110
mantém o estado reset (= mantém estado anterior)1000
vai para o estado reset1001
açãoQ’QSR
proibido-11
estado reset001
estado set110
mantém estado anteriorQt00
comentárioQt+1SR
slide 4.7 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
reset set
R=0 ∧ S=1
R=1 ∧ S=0
(R=0 ∧ S=0) ∨(R=0 ∧ S=1)
(R=0 ∧ S=0) ∨(R=1 ∧ S=0)
O Latch RS: resumo do funcionamento
Diagrama de estados
tabela de transiçãode estados
-11
001
110
Qt00
Qt+1SR
slide 4.8 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
O Latch RS:
-11
001
110
Qt00
Qt+1SR
tabela de transiçãode estados
Exemplo 4.2 da apostila
Q
R
S
Q
t1 t2
R
S
Q
Q
slide 4.9 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
O Latch RS Controladosímbolo circuito com portas nor e and
mantém estado anteriorQtXX0
1
1
1
1
C
proibido-11
estado reset001
estado set110
mantém estado anteriorQt00
comentárioQt+1SR
tabela de transiçãode estados
R
S
Q
C
Q
R1
S1
Q
Q
R
S
C
slide 4.10 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
O Latch RS Controlado: resumo do funcionamento
Diagrama de estados
tabela de transiçãode estados
reset set
C=1 ∧ R=0 ∧ S=1
C=1 ∧ R=1 ∧ S=0
C=0 ∨(C=1 ∧ R=0 ∧ S=0) ∨(C=1 ∧ R=0 ∧ S=1)
C=0 ∨(C=1 ∧ R=0 ∧ S=0) ∨(C=1 ∧ R=1 ∧ S=0)
QtXX0
1
1
1
1
C
-11
001
110
Qt00
Qt+1SR
slide 4.11 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
tabela de transiçãode estados
O Latch RS Controlado
QtXX0
1
1
1
1
C
-11
001
110
Qt00
Qt+1SR
Q
C
R
S
Q
t1 t2 t3 t4
R
S
Q
C
Q
Exemplo 4.3 da apostila
slide 4.12 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
O Latch D
símbolo circuito a partir do latch RS controlado
estado set111
estado reset001
mantém estado anteriorQtX0
comentárioQt+1DC
R
S
Q
C
Q
D
C
D Q
C Q
tabela de transiçãode estados
slide 4.13 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
tabela de transiçãode estados
O Latch D
111
001
QtX0
Qt+1DC
D Q
C Q
Q
C
D
Q
t1 t2 t3 t4
Exemplo 4.4 da apostila
slide 4.14 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
Latch D
D Q
C Q
R
S
Q
C
Q
Latch RS
tabela de transiçãode estados
QtXX1
0
0
0
0
C
-11
001
110
Qt00
Qt+1SR
símbolo
110
000
QtX1
Qt+1DC
tabela de transiçãode estados
símbolo
Latches com ativação em lógica complementar
slide 4.15 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
D
C
QmQ
mestre escravo
D Q
C Q
D Q
C Q Q
tdE
C
D
Q
tdM = atraso do latchmestre
tdE = atraso do latchescravo
QmtdE
tdMtdM
O Flip-flop D mestre-escravo
circuito
análise dinâmica(exemplo de funcionamento)
Considerando umaimplementação comportas CMOS, necessita38 transistores:2 x 18 + 2 = 38
slide 4.16 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
D Q
C Q
D Q
C Q
D Q
C Q
D Q
C Q
dado
controle
Q3 Q2 Q1 Q0
controle
dado
Q3
Q2
Q1
Q0
O Flip-flop D mestre-escravo
111
001
QtX0
Qt+1DC
Exemplo 4.7 da apostila
slide 4.17 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
D Q
C Q
O Flip-flop D disparado pela borda ascendente(ou Flip-flop D sensível à borda ascendente)
símbolo circuito com portas nand
11↑
00↑
QtX≠↑
Qt+1DC
tabela de transição de estados
necessita 24 transistores
D
C
1
Q
Q
2
4
3
5
6
slide 4.18 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
O Flip-flop D disparado pela borda ascendente
D Q
C Q
Q
C
D
Q
11↑
00↑
QtX≠↑
Qt+1DC
tabela de transiçãode estados
Exemplo 4.8 da apostila
slide 4.19 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
J Q
C
QK
O Flip-flop JK (disparado pela borda ascendente)
símbolotabela de transição de estados
QtXX≠↑
↑
↑
↑
↑
C
Qt11
101
010
Qt00
Qt+1KJ
slide 4.20 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
J Q
C
QK
Q
C
J
Q
K
QtXX≠↑
↑
↑
↑
↑
C
Qt11
101
010
Qt00
Qt+1KJ
O Flip-flop JK (disparado pela borda ascendente)
tabela de transiçãode estados
Exemplo 4.9 da apostila
slide 4.21 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
Flip-flops disparados pela borda descendente(ou Flip-flops sensíveis à borda descendente)
Flip-flop D
11↓
00↓
QtX≠↓
Qt+1DC
tabela de transiçãode estados
símbolo
D Q
C Q
J Q
C
QK
Flip-flop JK
tabela de transiçãode estados
QtXX≠↓
↓
↓
↓
↓
C
Qt11
101
010
Qt00
Qt+1KJ
símbolo
slide 4.22 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
D Q
C Qclear
limpa
dado
CK
Q
CK
Q
limpa
dado
Flip-flops com set e reset assíncronos
11↑
00↑
QtX≠↑
Qt+1DC
tabela de transiçãode estados
Exemplo 4.11 da apostila
slide 4.23 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
J Q
C
QK
ajusta
preset
CK
Q
CK
J
Q
K
ajusta
tabela de transiçãode estados
QtXX≠↓
↓
↓
↓
↓
C
Qt11
101
010
Qt00
Qt+1KJ
Exemplo 4.12 da apostila
Flip-flops com set e reset assíncronos
slide 4.24 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
Tempo de Preparação - tsu (setup time)Tempo de Manutenção - th (hold time)Atraso de Propagação - td ou tp (propagation delay)
Latch D
Flip-flop Ddisparado pela
borda de descida
Q
CK
D
tsu
th
tdtd
Q
tsu
th
td
valor da entrada Dnão é amostrado
slide 4.25 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
LIBRARY ieee;USE ieee.std_logic_1164.all;
ENTITY latchD ISPORT ( D, clk : IN STD_LOGIC; Q : OUT STD_LOGIC);END latchD;ARCHITECTURE comportamento OF latchD ISBEGIN PROCESS (D, clk) BEGIN IF clk = ‘1’ THEN Q <= D; END IF; END PROCESS;END comportamento;
Latch D (ativado por nível lógico alto)
D Q
C Q
111
001
QtX0
Qt+1DC
clk
slide 4.26 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
LIBRARY ieee;USE ieee.std_logic_1164.all;
ENTITY ffD ISPORT ( D, clk : IN STD_LOGIC; Q : OUT STD_LOGIC);END ffD;
ARCHITECTURE comportamento OF ffD ISBEGIN PROCESS (clk) BEGIN IF clk’EVENT AND clk = ‘1’ THEN Q <= D; END IF; END PROCESS;END comportamento;
Flip-flop D (disparado pela borda ascendente)
D Q
C Q
Atributo: refere-se atroca de nível de clk
11↑
00↑
QtX≠↑
Qt+1DC
clk
slide 4.27 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
LIBRARY ieee;USE ieee.std_logic_1164.all;
ENTITY ffD ISPORT ( D, clk : IN STD_LOGIC; Q : OUT STD_LOGIC);END ffD;
ARCHITECTURE comportamento OF ffD ISBEGIN PROCESS BEGIN WAIT UNTIL clk’EVENT AND clk = ‘1’; Q <= D; END PROCESS;END comportamento;
Flip-flop D (disparado pela borda ascendente) - Versão 2
A lista de sensibilização éomitida
O Uso de WAIT UNTILespecifica implicitamente quesomente o relógio faz parte dalista de sensibilização
D Q
C Qclk
slide 4.28 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
• Para efeitos de síntese de circuitos, WAIT UNTIL somente podeser usado se ele for a primeira atribuição do processo
• Na verdade, ‘EVENT é redundante no comando WAIT UNTILe portanto poderíamos simplificar para
WAIT UNTIL clk=‘1’;
o que se refere ao sinal clk se tornar igual a “1”
• Entretanto, algumas ferramentas de síntese de circuitos a partirde VHDL exigem a inclusão do atributo “EVENT”
WAIT UNTIL
slide 4.29 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
LIBRARY ieee;USE ieee.std_logic_1164.all;
ENTITY ffD ISPORT ( D, Resetn, clk : IN STD_LOGIC; Q : OUT STD_LOGIC);END ffD;
ARCHITECTURE comportamento OF ffD ISBEGIN PROCESS (Resetn, clk) BEGIN IF Resetn = ‘0’ THEN Q <= ‘0’ ;
ELSIF clk’EVENT AND clk = ‘1’ THEN Q <= D; END IF; END PROCESS;END comportamento;
Flip-flop D (com reset assíncrono ativado com lógica negada)
D Q
C QClear
Resetn
Primeiro testa se o resetassíncrono está ativado (pois éum sinal de mais alta hierarquia)
clk
slide 4.30 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
LIBRARY ieee;USE ieee.std_logic_1164.all;
ENTITY ffD ISPORT ( D, clear, clk : IN STD_LOGIC; Q : OUT STD_LOGIC);END ffD;
ARCHITECTURE comportamento OF ffD ISBEGIN PROCESS (clk) BEGIN IF clk’EVENT AND clk = ‘1’ THEN IF clear = ‘0’ THEN Q <= ‘0’ ; ELSIF Q <= D; END IF; END PROCESS;END comportamento;
Flip-flop D (com reset síncrono ativado com lógica negada)
A ativação do reset está condicionadaao sinal clk estar passando pela bordaascendente (ou seja, este sinal ésíncrono)
D Q
C Q
clear
D
clk
slide 4.31 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
CK
D Q
C Q
D3
Q3
D Q
C Q
D0
Q0
D Q
C Q
D2
Q2
D Q
C Q
D1
Q1
0123
RegistradoresRegistradoresRegistrador com carga paralela (versão 1)
entradas individuais
saídas individuaissinal de carga(relógio)
slide 4.32 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
Usando explicitamente flip-flops do tipo DRegistradores
clk
D Q
C Q
D3
Q3
D Q
C Q
D0
Q0
D Q
C Q
D2
Q2
D Q
C Q
D1
Q1
0123
Uma abordagem possível para se descrever um registrador de váriosbits é criar uma entidade que instancia flip-flops na quantidadedesejada. Vejamos…
slide 4.33 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
LIBRARY ieee;USE ieee.std_logic_1164.all;
ENTITY ffD ISPORT ( D, clk : IN STD_LOGIC; Q : OUT STD_LOGIC);END ffD;
ARCHITECTURE comportamento OF ffD ISBEGIN PROCESS (clk) BEGIN IF clk’EVENT AND clk = ‘1’ THEN Q <= D; END IF; END PROCESS;END comportamento;
Registradores (Usando explicitamente flip-flops do tipo D)
D Q
C Qclk
slide 4.34 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
LIBRARY ieee;USE ieee.std_logic_1164.all;
ENTITY reg4b ISPORT ( clk : IN STD_LOGIC; D : IN STD_LOGIC_VECTOR (3 DOWNTO 0); Q : OUT STD_LOGIC_VECTOR (3 DOWNTO 0));END reg4b;ARCHITECTURE estrutura OF reg4b IS
COMPONENT ffD PORT ( D, clk : IN STD_LOGIC; Q : OUT STD_LOGIC);END COMPONENT;
BEGIN ffD0: ffD PORT MAP (D(0), clk, Q(0)); ffD1: ffD PORT MAP (D(1), clk, Q(1)); ffD2: ffD PORT MAP (D(2), clk, Q(2)); ffD3: ffD PORT MAP (D(3), clk, Q(3));END estrutura;
Registrador de 4 bits (com flip-flops do tipo D)
clk
D Q
CQ
D3
Q3
D Q
CQ
D0
Q0
D Q
CQ
D2
Q2
D Q
CQ
D1
Q1
0123
slide 4.35 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
LIBRARY ieee;USE ieee.std_logic_1164.all;
ENTITY reg4b ISPORT ( clk : IN STD_LOGIC; D : IN STD_LOGIC_VECTOR (3 DOWNTO 0); Q : OUT STD_LOGIC_VECTOR (3 DOWNTO 0));END reg4b;
ARCHITECTURE comportamento OF reg4b ISBEGIN PROCESS (clk) BEGIN IF clk’EVENT AND clk = ‘1’ THEN Q <= D; END IF; END PROCESS;END comportamento;
Registrador de 4 bits (versão não hierárquica)
clk
D Q
CQ
D3
Q3
D Q
CQ
D0
Q0
D Q
CQ
D2
Q2
D Q
CQ
D1
Q1
0123
slide 4.36 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
LIBRARY ieee;USE ieee.std_logic_1164.all;
ENTITY reg4b ISPORT ( Resetn, clk : IN STD_LOGIC; D : IN STD_LOGIC_VECTOR (3 DOWNTO 0); Q : OUT STD_LOGIC_VECTOR (3 DOWNTO 0));END reg4b;
ARCHITECTURE comportamento OF reg4b ISBEGIN PROCESS (clk) BEGIN IF Resetn = ‘0’ THEN Q <= “0000”; ELSIF clk’EVENT AND clk = ‘1’ THEN Q <= D; END IF; END PROCESS;END comportamento;
Registrador de 4 bits (versão com reset assíncrono)
slide 4.37 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
CK
D Q
C Q
D3
Q3
0
1D Q
C Q
D2
Q2
01
D Q
C Q
D1
Q1
01
D Q
C Q
D0
Q0
0
10123
carga
carga Reg
4
4
sinal de cargaseparado do relógio símbolo
Registrador com carga paralela (versão 2)
slide 4.38 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
Q
0
1
CK
carga
limpa
D Q
C Qclear
dado
Q
CK
limpa
dado
carga
Registrador com carga paralela (versão 2)
Exemplo 5.1 da apostila
slide 4.39 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
LIBRARY ieee;USE ieee.std_logic_1164.all;
ENTITY reg4b ISPORT ( clk, carga : IN STD_LOGIC; D : IN STD_LOGIC_VECTOR (3 DOWNTO 0); Q : OUT STD_LOGIC_VECTOR (3 DOWNTO 0));END reg4b;
ARCHITECTURE comportamento OF reg4b ISBEGIN PROCESS (clk) BEGIN IF clk’EVENT AND clk = ‘1’ THEN IF carga=‘1’ THEN Q <= D; END IF; END IF; END PROCESS;END comportamento;
Registrador de 4 bits (versão não hierárquica com carga)
Q
0
1
clk
carga
D Q
C Q
D
slide 4.40 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
LIBRARY ieee;USE ieee.std_logic_1164.all;
ENTITY reg32b ISPORT ( clk, carga : IN STD_LOGIC; D : IN STD_LOGIC_VECTOR (31 DOWNTO 0); Q : OUT STD_LOGIC_VECTOR (31 DOWNTO 0));END reg32b;
ARCHITECTURE comportamento OF reg32b ISBEGIN PROCESS (clk) BEGIN IF clk’EVENT AND clk = ‘1’ THEN IF carga=‘1’ THEN Q <= D; END IF; END IF; END PROCESS;END comportamento;
Registrador de 32 bits (versão não hierárquica, c/ carga)
slide 4.41 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
Generalizando para N bitsLIBRARY ieee;USE ieee.std_logic_1164.all;
ENTITY regn ISGENERIC (N : INTEGER := 16 );PORT ( Resetn, clk, carga : IN STD_LOGIC; D : IN STD_LOGIC_VECTOR (N-1 DOWNTO 0); Q : OUT STD_LOGIC_VECTOR (N-1 DOWNTO 0));END regn;
ARCHITECTURE comportamento OF regn ISBEGIN PROCESS (clk, Resetn) BEGIN IF Resetn = ‘0’ THEN Q <= (OTHERS => ‘0’ ); ELSIF clk’EVENT AND clk = ‘1’ THEN IF carga=‘1’ THEN Q <= D; END IF; END IF; END PROCESS;END comportamento;
slide 4.42 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
Experimento 1
Descrever em VHDL, sintetizar e simular para FPGAs Stratix oseguinte registrador:
Aproveitar a descrição VHDL da transparência anterior.Levantar as seguintes informações:• Número de LEs• Características temporais
slide 4.43 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
CK
dado(entrada serial)
limpa
Q3
D
C Q3
clear
Q
Q2
D
C Q2
clear
Q
Q0
D
C Q0
clear
Q
Q1
D
C Q1
clear
Q
CK
limpa
dado
Q3
Q2
Q1
Q0
Registrador de deslocamento (à direita) Exemplo 5.2 da apostila
slide 4.44 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
CK
limpa
dado
Q3
Q2
Q1
Q0
CK
dado(entradaserial)
limpa
Q3
D
C Q3
clear
Q
Q2
D
C Q2
clear
Q
Q0
D
C Q0
clear
Q
Q1
D
C Q1
clear
Q
Registrador de deslocamento (à esquerda)
Exemplo 5.3 da apostila
slide 4.45 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
CK
clear
C1
D Q
Q
DCReset
C
00011011
D Q
Q
DCReset
C
00011011
D Q
Q
DCReset
C
00011011
D Q
Q
DCReset
C
000110113 2 1 0
entrada serialp/ desl. à dir.
entrada serialp/ desl. à esq.
I3 0
I1I2I
0Q
1Q
2QQ
3
C0
Registrador de deslocamento com carga paralela
carga paralela11↑01
0000
clear
zera conteúdoXXX
desloca à direita01↑
desloca à esquerda10↑
mantém conteúdo00↑
mantém conteúdoXX≠↑
operaçãoC0C1CK
slide 4.46 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
Registrador-Deslocador
• Uma alternativa para se descrever um registrador-deslocador éutilizar a hierarquia
• Suponha que se deseje usar o circuito abaixo como componentebásico
0
1
clk
sel
D Q
C Q
D0
D1
Então, descrevendo-o em VHDL…
slide 4.47 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
Registrador-Deslocador (componente básico)
LIBRARY ieee;USE ieee.std_logic_1164.all;
ENTITY muxffd ISPORT ( D0, D1, sel, clk: IN STD_LOGIC; Q : OUT STD_LOGIC );END muxffd;
ARCHITECTURE comportamento OF muxffd ISBEGIN PROCESS BEGIN WAIT UNTIL clk’EVENT AND clk = ‘1’ ; IF sel = ‘0’ THEN Q <= D0; ELSE Q <= D1; END IF; END PROCESS;END comportamento;
0
1
clk
sel
D Q
C Q
D0
D1
muxffd
slide 4.48 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
Registrador-Deslocador (de 4 bits, hierárquico)LIBRARY ieee;USE ieee.std_logic_1164.all;
ENTITY shift4 IS PORT ( R : IN STD_LOGIC_VECTOR(3 DOWNTO 0); carga, serial, clk : IN STD_LOGIC; Q : BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0) );END shift4;
ARCHITECTURE estrutura OF shift4 IS COMPONENT muxffd PORT ( D0, D1, sel, clk : IN STD_LOGIC; Q : OUT STD_LOGIC ); END COMPONENT;BEGIN estagio3: muxffd PORT MAP ( serial, R(3), carga, clk, Q(3) ); estagio2: muxffd PORT MAP ( Q(3), R(2), carga, clk, Q(2) ); estagio1: muxffd PORT MAP ( Q(2), R(1), carga, clk, Q(1) ); estagio0: muxffd PORT MAP ( Q(1), R(0), carga, clk, Q(0) );END estrutura;
0
1
clk
sel
D Q
C Q
D0
D1
muxffd
Por que“BUFFER”?
slide 4.49 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
Modos Possíveis para os Sinais que sãoPortas de Entidade
Para sinal que é saída de entidade. O valor do sinal podeser usado dentro da entidade (i.e., o sinal pode aparecertanto à esquerda quanto à direita de uma atribuição)
BUFFER
Para sinal que é tanto entrada quanto saída de entidadeINOUT
Para sinal que é saída de entidade. O valor do sinal nãopode ser usado dentro da entidade (i.e., o sinal só podeaparecer à esquerda de uma atribuição)
OUT
Para sinal que é entrada de entidadeIN
UsoModo
slide 4.50 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
Registrador-Deslocador (de 4 bits, nao hierárquico)
0
1
clk
sel
D Q
C Q
D0
D1
LIBRARY ieee;USE ieee.std_logic_1164.all;
ENTITY shift4 IS PORT ( R : IN STD_LOGIC_VECTOR(3 DOWNTO 0); carga, serial, clk : IN STD_LOGIC; Q : BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0) );END shift4;
ARCHITECTURE comportamento OF shift4 ISBEGIN PROCESS BEGIN WAIT UNTIL clk’EVENT AND clk = ‘1’ ; IF carga = ‘1’ THEN Q <= R; ELSE Q(0) <= Q(1); Q(1) <= Q(2); Q(2) <= Q(3); Q(3) <= serial; END IF; END PROCESS;END comportamento;
O que acontece se invertermosa ordem destas atribuições?
slide 4.51 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
Registrador-Deslocador (com n bits, não hierárquico)LIBRARY ieee;USE ieee.std_logic_1164.all;
ENTITY shiftn IS GENERIC ( N : INTEGER := 8 ); PORT ( R : IN STD_LOGIC_VECTOR(N-1 DOWNTO 0); carga, serial, clk : IN STD_LOGIC; Q : BUFFER STD_LOGIC_VECTOR(N-1 DOWNTO 0) );END shiftn;
ARCHITECTURE comportamento OF shiftn ISBEGIN PROCESS BEGIN WAIT UNTIL clk’EVENT AND clk = ‘1’ ; IF carga = ‘1’ THEN Q <= R; ELSE Genbits: FOR i IN 0 TO N-2 LOOP Q(i) <= Q(i+1); END LOOP; Q(N-1) <= w; END IF; END PROCESS;END comportamento;
0
1
clk
sel
D Q
C Q
D0
D1
slide 4.52 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
FOR LOOP x FOR GENERATE
FOR LOOP: usado para gerar um conjunto de atribuiçõesseqüenciais (logo, usado dentro de processos)
FOR GENERATE: usado para gerar um conjunto de atribuiçõesconcorrentes (logo, usado dentro de bloco, mas fora deprocessos)
slide 4.53 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
Experimento 2Descrever em VHDL, sintetizar e simular para FPGAs Stratix o umregistrador de deslocamento para a direita da transparência anterior.
Acrescentar um reset assíncrono ativado com lógica direta.
Levantar as seguintes informações:• Número de LEs• Características temporais
slide 4.54 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
Q
CK
Q
limpa
D Q
C Qclear
limpa
CK
Registrador contador (1 bit)
Exemplo 5.4 da apostila
slide 4.55 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
CK
limpa
Q0
Q0
Q1
Q1
Q2
Registrador contador (3 bits)
limpa
CK
Q0
D
C Q
0
clear
Q
Q1
D
C Q
1
clear
Q
Q2
D
C Q
2
clear
Q
Exemplo 5.5 da apostila
slide 4.56 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
Usando flip-flops D – versão 2
limpa
CK
Q0
D
C Q
0
clear
Q
Q1
D
C Q
1
clear
Q
Q2
D
C Q
2
clear
Q
Contador Assíncrono (ripple) de 3 bits
• Para descrever este tipo de contador em VHDL usandohierarquia, iremos instanciar o flip-flop D
• Porém, a descrição do flip-flop D em VHDL deve conter ambassaídas, Q e NQ
slide 4.57 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
Flip-flop D (versão 2)
D Q
C Qclear
Com saídas Q e NQLIBRARY ieee;USE ieee.std_logic_1164.all;
ENTITY ffDv2 ISPORT ( D, clk, limpa : IN STD_LOGIC; Q, NQ : OUT STD_LOGIC);END ffDv2;ARCHITECTURE comportamento OF ffDv2 ISBEGIN PROCESS (clk, limpa) BEGIN IF limpa=‘1’ THEN Q <= ‘0’; NQ <= ‘1’; ELSIF clk’EVENT AND clk = ‘1’ THEN Q <= D; NQ <= not D; END IF; END PROCESS;END comportamento;
slide 4.58 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
LIBRARY ieee;USE ieee.std_logic_1164.all;
ENTITY cont3b ISPORT ( clk, limpa : IN STD_LOGIC; Aout : OUT STD_LOGIC_VECTOR (2 DOWNTO 0));END cont3b;ARCHITECTURE estrutura OF cont3b IS
SIGNAL NQ0, NQ1, NQ2 : STD_LOGIC;
COMPONENT ffDv2 PORT ( D, clk, limpa: IN STD_LOGIC; Q, NQ : OUT STD_LOGIC);END COMPONENT;
BEGIN ffD0: ffDv2 PORT MAP (NQ0, clk, limpa, Aout(0), NQ0); ffD1: ffDv2 PORT MAP (NQ1, NQ0, limpa, Aout(1), NQ1); ffD2: ffDv2 PORT MAP (NQ2, NQ1, limpa, Aout(2), NQ2);END estrutura;
limpa
CK
Q0
D
C Q0
clear
Q
Q1
D
C Q1
clear
Q
Q2
D
C Q2
clear
Q
(Usando o flip-flop versão 2)
Contador Assíncrono (ripple) de 3 bits
slide 4.59 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
Contador Assíncrono (ripple) de 4 bitsLIBRARY ieee;USE ieee.std_logic_1164.all;
ENTITY contador ISPORT ( clk, limpa , carga : IN STD_LOGIC; Q : OUT STD_LOGIC_VECTOR( 3 DOWNTO 0) );END contador ;ARCHITECTURE comportamento OF contador IS SIGNAL conta : STD_LOGIC_VECTOR (3 DOWNTO 0) ;BEGIN PROCESS (clk, limpa) BEGIN IF limpa = ‘0’ THEN conta <= “0000”; ELSIF ( clk’EVENT AND clk = ‘1’ ) THEN IF carga = ‘1’ THEN conta <= conta + 1; ELSE conta <= conta; END IF; END IF; END PROCESS; Q <= conta;END comportamento;
Não é necessário(apenas por clareza…)
slide 4.60 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
(Com carga paralela e usando sinais do tipo “integer”)Contador Assíncrono (ripple) de n bits
LIBRARY ieee;USE ieee.std_logic_1164.all;
ENTITY contnb ISPORT ( R : IN INTEGER RANGE 0 TO 15; clk, limpa , carga : IN STD_LOGIC; Q : BUFFER INTEGER RANGE 0 TO 15 );END contnb ;ARCHITECTURE comportamento OF contnb ISBEGIN PROCESS (clk, limpa) BEGIN IF limpa = ‘0’ THEN Q <= 0; ELSIF ( clk’EVENT AND clk = ‘1’ ) THEN IF carga = ‘1’ THEN Q <= R; ELSE Q <= Q + 1; END IF;
END IF; END PROCESS;END comportamento;
slide 4.61 Prof. José Luís Güntzel
Latches, Flip-flops e Registradores
INE/CTC/UFSCLógica Programável - semestre 2007/2
Experimento 3
Descrever em VHDL, sintetizar e simular para FPGAs Stratix o umregistrador contador da transparência anterior.
Levantar as seguintes informações:• Número de LEs• Características temporais