34
1 Registradores Registradores Circuitos Lógicos Circuitos Lógicos DCC-IM/UFRJ Prof. Gabriel P. Silva

Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

  • Upload
    lyduong

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

1

RegistradoresRegistradores

Circuitos LógicosCircuitos LógicosDCC-IM/UFRJ

Prof. Gabriel P. Silva

Page 2: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

2

Registradores

• Conjunto de elementos de memória (flip-flops ou latches) utilizados para armazenar n bits.

• Utilizam um único sinal de clock ou um único sinal de habilitação.

• São elementos de memória básicos utilizados quando se deseja armazenar pequenas quantidades de informação, normalmente em circuitos de interface ou controle de máquinas de estado.

Page 3: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

3

Registradores

Registrador de carga paralela

EN

CK

Carga do registrador

Q

EN

DD

Ck

Q

_Q

(74LS377)

Page 4: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

4

Registrador

LIBRARY ieee; USE ieee.std_logic_1164.ALL;

ENTITY Reg IS PORT(Data_in : IN STD_LOGIC_VECTOR; Data_out: OUT STD_LOGIC_VECTOR; Wr : IN STD_LOGIC ; Reset : IN STD_LOGIC ; Clk : IN STD_LOGIC); END Reg;

ARCHITECTURE behavioral OF Reg IS BEGIN PROCESS(Wr,Reset,Clk) CONSTANT Reg_delay: TIME := 2 ns; VARIABLE BVZero: STD_LOGIC_VECTOR(Data_in'RANGE):= (OTHERS => '0');

Page 5: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

5

Registrador

BEGIN IF (Reset = '1') THEN Data_out <= BVZero AFTER Reg_delay; END IF;

IF (Clk'EVENT AND Clk = '1' AND Wr = '1') THEN Data_out <= Data_in AFTER Reg_delay; END IF; END PROCESS; END behavioral;

Page 6: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

6

Deslocador

• O deslocador serve para mover um conjunto de bits de uma ou mais posições para a esquerda ou direita.

• Dependendo do tipo de deslocamento, podem ser inseridos '0's para as posições que ficam vagas à medida que os bits correspondentes vão sendo deslocados.

• Para os números cuja representação coloca o bit de sinal no bit mais à esquerda, normalmente esse bit é replicado quando os bits são deslocados para a direita.

Page 7: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

7

Deslocador

• Deslocamento para a direita de 2 bits:

00001111 --> 00000011

• Deslocamento para esquerda de 3 bits

00001111 --> 01111000

• Deslocamento para a direita de 2 bits de valor negativo em complemento a dois:

10001111 --> 11100011

Page 8: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

8

Deslocador

• Note que para cada bit deslocado para a direita, corresponde a uma divisão inteira por 2:

00011100 --> 00000111

28 --> 7

• E para cada bit deslocado para a esquerda, corresponde a uma multiplicação por 2:

00001111 --> 01111000

15 --> 120

Page 9: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

9

Deslocador

Page 10: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

10

Registrador de Deslocamento

D Q D Q D Q D QSDI SDO

CK

• Composto por uma série de Latches ou Flip-Flops onde a saída Q de um está acoplada a entrada D do seguinte.• Aplicações:

• As UALs dos processadores têm registradores de deslocamento (esquerda, direita e em anel).• Conversão série para paralelo e vice-versa.

• No exemplo acima os últimos 4 valores da seqüência são armazenados do registrador de deslocamento.

Page 11: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

11

Registrador de Deslocamento

t 0 t 1 t 2 t 3 t 4 t 5 t 6 t 7

1

0

1

1

1

0

0

0

0

1

0

1

1

1

0

0

0

0

1

0

1

1

1

0

0

0

0

1

0

1

1

1

0

0

0

0

1

0

1

1

Q 1 Q 2 Q 3 Q 4 Saída= Entrada

Apresenta o seguinte comportamento:

Clock

Page 12: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

12

Registrador de Deslocamento

D Q

Q Clock

D Q

Q

D Q

Q

D Q

Q

Entrada Saída Q 1 Q 2 Q 3 Q 4

Page 13: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

13

Registrador de Deslocamento com Carga Paralela

3 Q2 Q1 Q0

RelógioEntrada Paralela

Saída Paralela

Carrega/Desloca

EntradaSerial

D Q

Q

D Q

Q

D Q

Q

D Q

Q

Q33

D3 D2 D1 D0

Page 14: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

14

clear estabelece o conteúdo do registradore da saída em 0

s1 e s0 determinam o tipo de deslocamento

s0 s1 função0 0 mantém estado0 1 deslocamento à direita1 0 deslocamento à esquerda1 1 carregue nova entrada

left_inleft_out

right_out

clearright_in

output

input

s0s1

clock

Registrador de Deslocamento Universal

Armazena 4 valoreso Entradas seriais ou paralelaso Saídas seriais ou paralelaso Permite o deslocamento à esquerda ou à direitao Desloca novos valores à esquerda ou à direita

Page 15: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

15

Nth célula

s0 e s1control mux

0 1 2 3

DQ

CLK

CLEAR

Q[N-1](left)

Q[N+1](right)Input[N]

p/ N-1th célula

para N+1th célula

clear s0 s1 new value1 – – 00 0 0 output0 0 1 output value of FF to left (shift right)0 1 0 output value of FF to right (shift left)0 1 1 input

Registrador de Deslocamento Universal

Considere um dos quatro flip-flopso Próximo valor no próximo ciclo de clock:

Page 16: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

16

entradas paralelas

saídas paralelas

Transmissão serial

Aplicação de Registradores de Deslocamento

Conversão paralelo-serial para transmissão serial

Page 17: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

17

D Q D Q D Q D QIN

OUT1 OUT2 OUT3 OUT4

CLK

OUT

Reconhecedor de Padrões

Função combinacional de amostras da entradao ex: reconhecendo o padrão 1001 em um único sinal de

entrada

Page 18: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

18

Contadores

Podem ser: Assíncronos

• São mais lentos pois a saída de um flip-flop dispara uma mudança no flip-flop seguinte

Síncronos• O estado de todos os flip-flops são

alterados simultaneamente

Page 19: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

19

D Q D Q D Q D QIN

OUT1 OUT2 OUT3 OUT4

CLK

Contadores

Seqüências através de um conjunto fixo de padrõeso Neste caso: 1000, 0100, 0010, 0001o Um dos padrões é o estado inicial (usar load ou

set/reset)

Page 20: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

20

D Q D Q D Q D QIN

OUT1 OUT2 OUT3 OUT4

CLK

Contadores

Contador Mobius (ou Johnson)o Neste há apenas a mudança de um bit entre dois

estados adjacentes:

1000, 1100, 1110, 1111, 0111, 0011, 0001, 0000

Page 21: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

21

Contadores

t 0

t 1

t 2

t 3

t 4

t 5

t 6

t 7

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

Q 2 Q 1 Q 0 clk

Contador Binário Crescente

Page 22: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

22

Contador Binário – FF tipo T

Clock

Q 0

Q 1

Q 2

Count 0 1 2 3 4 5 6 7 0

Page 23: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

23

Contador Binário Assíncrono – FF tipo T

T Q

Q Clock

T Q

Q

T Q

Q

1

Q 0

Q 1

Q 2

Contador Binário Assíncrono(crescente)

Page 24: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

24

Contador Binário Assícrono – FF tipo T(decrescente)

Clock

Q 0

Q 1

Q 2

Count 0 7 6 5 4 3 2 1 0

Page 25: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

25

Contador Binário AssíncronoFF tipo T

T Q

Q Clock

T Q

Q

T Q

Q

1

Q 0

Q 1

Q 2

Contador Binário Assíncrono(decrescente)

Page 26: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

26

T Q

Q Clock

T Q

Q

T Q

Q

1

Q 0

Q 1

Q 2

T Q

Q

Q 3

Contador Binário Síncrono FF tipo T

Contador Binário Síncrono(crescente)

Page 27: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

27

Contadores

t 0

t 1

t 2

t 3

t 4

t 5

t 6

t 7

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

Q 2 Q 1 Q 0 clk

Contador Binário Crescente

Page 28: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

28

Contador Binário Síncrono - FF tipo Tcom enable e clear

T Q

Q Clock

T Q

Q

Enable

Clear

T Q

Q

T Q

Q

Page 29: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

29

D Q D Q D Q D Q

OUT1 OUT2 OUT3 OUT4

CLK

"1"

Contador Binário - FF Tipo D

Contador Binário Síncrono(crescente)

Page 30: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

30

Contador Binário com FF Tipo D

Lógica entre os registradores (não somente um multiplexer)o XOR decide quando um determinado bit deve ser

“toggled”o Sempre para o bit de mais baixa ordem; somente

quando o primeiro bit é verdade para o segundo bit, e assim por diante

Page 31: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

31

Contador 4 Bits em VHDL

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;

ENTITY contador IS PORT(CLK, CLR : IN std_logic; Q : OUT std_logic_vector(3 downto 0)); END contador;

Page 32: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

32

Contador 4 Bits em VHDL

ARCHITECTURE arquitetura OF contador IS SIGNAL tmp: std_logic_vector(3 downto 0); BEGIN

PROCESS (CLK, CLR) BEGIN IF (CLR = '1') THEN tmp = "0000"; ESLIF (CLK'event AND CLK = '1') THEN tmp = tmp + 1; END IF;

END PROCESS;

Q = tmp;

end arquitetura;

Page 33: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

33

EN

DCBA

LOAD

CLK

CLR

RCO

QDQCQBQA

Contador Binário Crescente Síncrono de 4-bits

Componente padrão em muitas aplicaçõeso FF ativado na transição positiva com entradas de load e

clearo Dado carregado das entradas paralelas D, C, B, Ao Entradas de Enable: precisam estar em 1 para contagemo RCO: saída de ripple-carry utilizada para cascateamento

- ‘1’ quando o contador está em seu estado mais alto (1111)

- implementado usando uma porta AND

Page 34: Registradores - dcc.ufrj.brdcc.ufrj.br/~gabriel/circlog/Registradores.pdf · flop dispara uma mudança no flip-flop ... -‘1’ quando o contador está em seu estado mais alto (1111)-implementado

34

(1) 4-bits baixos = 1111

(2) RCO vai para 1

(3) 4-bits mais altossão incrementados

Contador Binário Crescente Síncrono de 4-bits