elementos de armazenamento: latchese flip-flopscortes/mc613/slides/aula_07/aula7_latch… ·...

29
MC613 – 2012 1 IC-UNICAMP MC 613 IC/Unicamp 2012s1 Prof Guido Araújo Prof Mario Côrtes Elementos de armazenamento: Latches e Flip-flops

Upload: others

Post on 16-Jul-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 1

IC-UNICAMP MC 613

IC/Unicamp

2012s1

Prof Guido Araújo

Prof Mario Côrtes

Elementos de armazenamento:

Latches e Flip-flops

Page 2: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 2

IC-UNICAMP

Tópicos

• Latches

– SR e SR chaveado

– Tipo D

• Flip-flops

– Mestre-Escravo

– Tipo D

– Tipo JK

– Tipo T

• Comportamento transparente e sensível à

borda

• Preset e Clear síncronos e assíncronos

Page 3: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 3

IC-UNICAMP

Time

1

0

1

0

1

0

1

0

R

S

Qa

Qb

?

?

t1 t2 t3 t4 t5 t6 t7 t8 t9 t10

Qa

Qb

R

S

S R Qa Qb

0 0

0 1

1 0

1 1

0/1 1/0

0 1

1 0

0 0

(no change)

Latch SR com NORs

Page 4: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 4

IC-UNICAMP

~S

~R Qb

Qa

Latch SR com NANDs

~S ~R Qa Qb

1 1

0 1

1 0

0 0

0/1 1/0

1 0

0 1

1 1

(no change)

Page 5: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 5

IC-UNICAMP

Latch SR chaveado

Q

Q

R1

S1

R

S

Clk

S R

x x

0 0

0 1

1 0

Q(t ) (no change)

0

1

Clk

0

1

1

1

1 1 1

Q t 1 + ( )

Q(t ) (no change)

x

R

Clk

Q

Q

S

1

0

1

0

1

0

1

0

1

0

Time

?

?

S Q

Q

Clk

R

Por que?

Page 6: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 6

IC-UNICAMP

Latch tipo D chaveado

Q

S

R

Clk

D (Data)

Q

D Q

Q Clk

Clk D

0

1

1

x

0

1

0

1

Q t 1 + ( )

Q t ( )

t 1 t 2 t 3 t 4

Time

Clk

D

Q

Page 7: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 7

IC-UNICAMP

Latch tipo D (alternativa)

Q EN

D

D Q

Q EN

Q

EN

D 1

0

Equivalente a

Page 8: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 8

IC-UNICAMP

Latches e Flip-Flops: diferenças

• Manifestação da saída Q em função de

variações na entrada D:

– Latch: transparente durante EN (ou Ck) ativos, ou

seja, entrada D passa diretamente para a saída Q

– Flip-Flop: na borda do Clock, o valor presente na

entrada D é transferido para Q

• Instante em que o valor da entrada D é

armazenado

– Latch: valor armazenado é o presente na entrada

D no instante em que EN (ou Ck) é desativado

(operação de latch ou travamento)

– Flip-Flop: na borda do Clock, o valor presente na

entrada D é armazenado

Page 9: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 9

IC-UNICAMP

Flip-Flop Mestre Escravo

D

Clock

Q m

Q Q s =

D Q

Q

D Q

Q

Master Slave

D

Clock

Q

Q

D Q

Q

Q m Q s

ClkClk

Sensível à borda de DESCIDA

Page 10: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 10

IC-UNICAMP

Um Flip-Flop tipo D clássico

D Q

Q Clock

D

Clock

P4

P3

P1

P2

5

6

1

2

3 Q

Q

4

Page 11: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 11

IC-UNICAMP

FF D: borda de subida, com

Preset e Clear assíncronos

Preset

Clear

D Q

Q

D

Clock

Q

Q

Clear

Preset

Page 12: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 12

IC-UNICAMP

Latch e FF: comportamento comparado

D Q

Q

D Q

Q

D Q

Q

D

Clock Q a

Q b

Q c

Q c

Q b

Q a

Clk

D

Clock

Q a

Q b

Q c

Page 13: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 13

IC-UNICAMP

Tempos de setup e hold

t su

t h

Clk

D

Q

• Tsu: tempo de guarda antes da borda do

clock (de descida, no exemplo) durante o

qual a entrada D não deve mudar

• Th: idem, para depois da borda do clock

Page 14: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 14

IC-UNICAMP

FF D com Clear síncrono

D

Clock Q

QClear

D Q

Q

Page 15: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 15

IC-UNICAMP

D Q

Q

Q

Q

J

Clock

K

J Q

QK

K

0

1

Q t 1+( )

Q t( )

0

J

0

0

0 11

1 Q t( )1

Flip-Flop JK

Resolve

problema do SR

Page 16: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 16

IC-UNICAMP

Flip-Flop tipo T

Clock

T

Q

T Q

Q

T

0

1

Q t 1 + ( )

Q t ( )

Q t ( )

D Q

Q

Q

Q T

Clock

J Q

QK

T

Equivalente a

Page 17: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 17

IC-UNICAMP

Descrições em VHDL

• Conceito importante: processPROCESS ( A, B )

BEGIN

…….. -- corpo do processo

END PROCESS

• Trecho entre Begin e End é executado

sequencialmente (a ordem importa)

• O processo é executado concorrentemente

como as demais declarações

• O processo é invocado quando muda algum

sinal/variável na lista de sensibilidade

Page 18: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 18

IC-UNICAMP

LIBRARY ieee ;

USE ieee.std_logic_1164.all ;

LIBRARY altera ;

USE altera.maxplus2.all ;

ENTITY flipflop IS

PORT ( D, Clock : IN STD_LOGIC ;

Resetn, Presetn : IN STD_LOGIC ;

Q : OUT STD_LOGIC ) ;

END flipflop ;

ARCHITECTURE Structure OF flipflop IS

BEGIN

dff_instance: dff PORT MAP

( D, Clock, Resetn, Presetn, Q ) ;

END Structure ;

Instanciação de FFD de um pacote

Page 19: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 19

IC-UNICAMP

LIBRARY ieee ;

USE ieee.std_logic_1164.all ;

ENTITY implied IS

PORT ( A, B : IN STD_LOGIC ;

AeqB : OUT STD_LOGIC ) ;

END implied ;

ARCHITECTURE Behavior OF implied IS

BEGIN

PROCESS ( A, B )

BEGIN

IF A = B THEN

AeqB <= '1' ;

END IF ;

END PROCESS ;

END Behavior ;

Memória implícita

Page 20: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 20

IC-UNICAMP

LIBRARY ieee ;

USE ieee.std_logic_1164.all ;

ENTITY latch IS

PORT ( D, Clk : IN STD_LOGIC ;

Q : OUT STD_LOGIC) ;

END latch ;

ARCHITECTURE Behavior OF latch IS

BEGIN

PROCESS ( D, Clk )

BEGIN

IF Clk = '1' THEN

Q <= D ;

END IF ;

END PROCESS ;

END Behavior ;

Latch tipo D chaveado

Page 21: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 21

IC-UNICAMP

LIBRARY ieee ;

USE ieee.std_logic_1164.all ;

ENTITY flipflop IS

PORT ( D, Clock : IN STD_LOGIC ;

Q : OUT STD_LOGIC) ;

END flipflop ;

ARCHITECTURE Behavior OF flipflop IS

BEGIN

PROCESS ( Clock )

BEGIN

IF Clock'EVENT AND Clock = '1' THEN

Q <= D ;

END IF ;

END PROCESS ;

END Behavior ;

Flip-Flop tipo D

Page 22: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 22

IC-UNICAMP

LIBRARY ieee;

USE ieee.std_logic_1164.all;

ENTITY flipflop IS

PORT ( D, Clock : IN STD_LOGIC ;

Q : OUT STD_LOGIC ) ;

END flipflop ;

ARCHITECTURE Behavior OF flipflop IS

BEGIN

PROCESS

BEGIN

WAIT UNTIL Clock'EVENT AND Clock = '1' ;

Q <= D ;

END PROCESS ;

END Behavior ;

FFD com Wait Until

Page 23: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 23

IC-UNICAMP

LIBRARY ieee ;

USE ieee.std_logic_1164.all ;

ENTITY flipflop IS

PORT ( D, Resetn, Clock : IN STD_LOGIC ;

Q : OUT STD_LOGIC) ;

END flipflop ;

ARCHITECTURE Behavior OF flipflop IS

BEGIN

PROCESS ( Resetn, Clock )

BEGIN

IF Resetn = '0' THEN

Q <= '0' ;

ELSIF Clock'EVENT AND Clock = '1' THEN

Q <= D ;

END IF ;

END PROCESS ;

END Behavior ;

FFD com Reset assíncrono

Page 24: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 24

IC-UNICAMP LIBRARY ieee ;

USE ieee.std_logic_1164.all ;

ENTITY flipflop IS

PORT ( D, Resetn, Clock : IN STD_LOGIC ;

Q : OUT STD_LOGIC) ;

END flipflop ;

ARCHITECTURE Behavior OF flipflop IS

BEGIN

PROCESS

BEGIN

WAIT UNTIL Clock'EVENT AND Clock = '1' ;

IF Resetn = '0' THEN

Q <= '0' ;

ELSE

Q <= D ;

END IF ;

END PROCESS ;

END Behavior ;

FFD com Reset síncrono

Page 25: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 25

IC-UNICAMP

LIBRARY ieee ;

USE ieee.std_logic_1164.all ;

ENTITY ffjk is

port( J,K, Reset, Clock: in std_logic; Q: out std_logic);

END ffjk;

ARCHITECTURE Estrutural OF ffjk IS

BEGIN

PROCESS (Clock, Reset)

VARIABLE temp: std_logic;

BEGIN

IF Reset='1' THEN

temp := '0';

ELSIF (Clock'event and Clock='1') THEN

temp := (J AND NOT(temp)) OR (NOT(K) and temp);

END if;

Q <= temp;

END PROCESS;

END Estrutural;

FF-JK c reset assíncrono estrutural

Obs: ver netlist gerado pelo Quartus

Page 26: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 26

IC-UNICAMP

ARCHITECTURE Behavioral of ffjk is

BEGIN

PROCESS (Clock, Reset)

VARIABLE temp: std_logic;

VARIABLE jk: std_logic_vector (2 downto 1);

BEGIN

jk := J & K;

IF Reset='1' THEN temp := '0';

ELSIF (Clock'event and Clock='1') then

CASE (jk) is

WHEN "11" => temp := not (temp);

WHEN "10" => temp := '1';

WHEN "01" => temp := '0';

WHEN others => temp := temp;

END CASE;

END if;

Q <= temp;

END PROCESS;

END Behavioral;

FF-JK comportamental

Obs: ver netlist gerado pelo Quartus

Page 27: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 27

IC-UNICAMPRegistradores

• Conjunto de elementos de memória (flip-flops) utilizados

para armazenar n bits.

• Utilizam em comum os sinais de clock e controle

CLK

D0 D Q

Q

D1

D2

D3

Q0

Q1

Q2

Q3

D Q

Q

D Q

Q

D Q

Q

D Q

Q CLK

D3:0 Q 3:0

Page 28: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 28

IC-UNICAMP 8-bit register with asynchronous clear

LIBRARY ieee ;

USE ieee.std_logic_1164.all ;

ENTITY reg8 IS

PORT ( D : IN STD_LOGIC_VECTOR(7 DOWNTO 0) ;

Resetn, Clock: IN STD_LOGIC ;

Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ) ;

END reg8 ;

ARCHITECTURE Behavior OF reg8 IS

BEGIN

PROCESS ( Resetn, Clock )

BEGIN

IF Resetn = '0' THEN

Q <= "00000000" ;

ELSIF Clock'EVENT AND Clock = '1' THEN Q <= D ;

END IF ;

END PROCESS ;

END Behavior ;

Page 29: Elementos de armazenamento: Latchese Flip-flopscortes/mc613/slides/aula_07/aula7_latch… · Latchese Flip-Flops: diferenças • Manifestação da saída Q em função de variações

MC613 – 2012 29

IC-UNICAMP n-bit register with enable

LIBRARY ieee ;

USE ieee.std_logic_1164.all ;

ENTITY regn IS

GENERIC ( N : INTEGER := 8 ) ;

PORT (R : IN STD_LOGIC_VECTOR(N-1 DOWNTO 0) ;

Rin, Clock: IN STD_LOGIC ;

Q : OUT STD_LOGIC_VECTOR(N-1 DOWNTO 0) ) ;

END regn ;

ARCHITECTURE Behavior OF regn IS

BEGIN

PROCESS

BEGIN

WAIT UNTIL Clock'EVENT AND Clock = '1' ;

IF Rin = '1' THEN Q <= R ;

END IF ;

END PROCESS ;

END Behavior ;