Você está na página 1de 34

Registradores

Circuitos Lgicos
DCC-IM/UFRJ Prof. Gabriel P. Silva
1

Registradores
Conjunto de elementos de memria (flip-flops ou latches) utilizados para armazenar n bits. Utilizam um nico sinal de clock ou um nico sinal de habilitao. So elementos de memria bsicos utilizados quando se deseja armazenar pequenas quantidades de informao, normalmente em circuitos de interface ou controle de mquinas de estado.

Registradores
Registrador de carga paralela EN CK

Carga do registrador

D EN

D Ck

Q _ Q

(74LS377)

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');

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;

Deslocador
O deslocador serve para mover um conjunto de bits de uma ou mais posies para a esquerda ou direita. Dependendo do tipo de deslocamento, podem ser inseridos '0's para as posies que ficam vagas medida que os bits correspondentes vo sendo deslocados. Para os nmeros cuja representao coloca o bit de sinal no bit mais esquerda, normalmente esse bit replicado quando os bits so deslocados para a direita.
6

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
7

Deslocador
Note que para cada bit deslocado para a direita, corresponde a uma diviso inteira por 2: 00011100 28 --> 00000111 --> 7

E para cada bit deslocado para a esquerda, corresponde a uma multiplicao por 2: 00001111 15 --> 01111000 --> 120
8

Deslocador

Registrador de Deslocamento

SDI

SDO

CK

Composto por uma srie de Latches ou Flip-Flops onde a sada Q de um est acoplada a entrada D do seguinte. Aplicaes: As UALs dos processadores tm registradores de deslocamento (esquerda, direita e em anel). Converso srie para paralelo e vice-versa. No exemplo acima os ltimos 4 valores da seqncia so armazenados do registrador de deslocamento.
10

Registrador de Deslocamento
Apresenta o seguinte comportamento:
Clock t0 Entrada 1 0 1 1 1 0 0 0 Q1 0 1 0 1 1 1 0 0 Q2 0 0 1 0 1 1 1 0 Q3 0 0 0 1 0 1 1 1 Q4 = Sada 0 0 0 0 1 0 1 1

t1 t2 t3 t4 t5 t6 t7

11

Registrador de Deslocamento

Entrada Clock

Q 1 Q Q

Q Q 2 Q

Q 3 Q Q

Q 4 Sada Q Q

12

Registrador de Deslocamento com Carga Paralela


Sada Paralela Q1 Q3 Q2 Q0

Q Q

Q Q

Q Q

Q Q

D3 Entrada Serial Carrega/ Desloca

D2

D1 Entrada Paralela

D0 Relgio
13

Registrador de Deslocamento Universal


Armazena 4 valores
o o o o Entradas seriais ou paralelas Sadas seriais ou paralelas Permite o deslocamento esquerda ou direita Desloca novos valores esquerda ou direita
output clear estabelece o contedo do registrador e da sada em 0 s1 e s0 determinam o tipo de deslocamento s0 0 0 1 1 s1 0 1 0 1 funo mantm estado deslocamento direita deslocamento esquerda carregue nova entrada
14

left_in left_out clear s0 s1

right_out right_in clock

input

Registrador de Deslocamento Universal


Considere um dos quatro flip-flops
o Prximo valor no prximo ciclo de clock:
Nth clula p/ N-1th clula Q D para N+1th clula CLK

clear 1 0 0 0 0

s0 0 0 1 1

s1 0 1 0 1

new value 0 output output value of FF to left (shift right) output value of FF to right (shift left) input

CLEAR 0 1 2 3 s0 e s1 control mux Q[N-1] (left) Input[N] Q[N+1] (right)

15

Aplicao de Registradores de Deslocamento


Converso paralelo-serial para transmisso serial
sadas paralelas

entradas paralelas

Transmisso serial

16

Reconhecedor de Padres
Funo combinacional de amostras da entrada
o ex: reconhecendo o padro 1001 em um nico sinal de entrada
OUT

OUT1 IN CLK D Q D Q

OUT2 D Q

OUT3 D Q

OUT4

17

Contadores

Podem ser:

Assncronos
So mais lentos pois a sada de um flipflop dispara uma mudana no flip-flop seguinte

Sncronos
O estado de todos os flip-flops so alterados simultaneamente

18

Contadores
Seqncias atravs de um conjunto fixo de padres
o Neste caso: 1000, 0100, 0010, 0001 o Um dos padres o estado inicial (usar load ou set/reset)
OUT1 IN CLK D Q D Q OUT2 D Q OUT3 D Q OUT4

19

Contadores
Contador Mobius (ou Johnson)
o Neste h apenas a mudana de um bit entre dois estados adjacentes: 1000, 1100, 1110, 1111, 0111, 0011, 0001, 0000

OUT1 IN CLK D Q D Q

OUT2 D Q

OUT3 D Q

OUT4

20

Contadores
Contador Binrio Crescente
clk t0 t1 t2 t3 t4 t5 t6 t7 Q2 0 0 0 0 1 1 1 1 Q1 0 0 1 1 0 0 1 1 Q0 0 1 0 1 0 1 0 1

21

Contador Binrio FF tipo T

Clock Q

Q 2 Count 0 1 2 3 4 5 6 7 0

22

Contador Binrio Assncrono FF tipo T

1 Clock

Q 0

Q 1

Q 2

Contador Binrio Assncrono (crescente)


23

Contador Binrio Asscrono FF tipo T (decrescente)

Clock

Q0

Q1

Q2 Count 0 7 6 5 4 3 2 1 0

24

Contador Binrio Assncrono FF tipo T

Clock

Q 2

Contador Binrio Assncrono (decrescente)


25

Contador Binrio Sncrono FF tipo T

Q Q 0

Q Q 1 Q

Q Q 2 Q

Q Q 3 Q

Clock

Contador Binrio Sncrono (crescente)


26

Contadores
Contador Binrio Crescente
clk t0 t1 t2 t3 t4 t5 t6 t7 Q2 0 0 0 0 1 1 1 1 Q1 0 0 1 1 0 0 1 1 Q0 0 1 0 1 0 1 0 1

27

Contador Binrio Sncrono - FF tipo T com enable e clear

Enable

Clock

Clear

28

Contador Binrio - FF Tipo D


OUT1 OUT2 OUT3 OUT4

D Q CLK

D Q

D Q

D Q

"1"

Contador Binrio Sncrono (crescente)

29

Contador Binrio com FF Tipo D


Lgica entre os registradores (no 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

30

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;

31

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;
32

Contador Binrio Crescente Sncrono de 4-bits


Componente padro em muitas aplicaes
o FF ativado na transio positiva com entradas de load e clear o Dado carregado das entradas paralelas D, C, B, A o Entradas de Enable: precisam estar em 1 para contagem o RCO: sada de ripple-carry utilizada para cascateamento - 1 quando o contador est em seu estado mais alto (1111) - implementado usando uma porta AND
EN D C B A LOAD CLK CLR
33

RCO QD QC QB QA

Contador Binrio Crescente Sncrono de 4-bits


(2) RCO vai para 1

(3) 4-bits mais altos so incrementados

(1) 4-bits baixos = 1111

34

Você também pode gostar