Você está na página 1de 4

1

Registradores
Aula 17
Prof. Abel Guilhermino
Registrador
Um registrador um elemento lgico utilizado
para armazenar uma palavra binria de n-bits.
Praticamente, todos os grandes sistemas
digitais utilizam registradores para armazenar
dados importantes.
Registrador bsico
Pode-se construir um registrador com a conexo de n
clulas de armazenamento, de um nico bit, em
paralelo, possibilitando ler ou escrever em todas as
clulas simultaneamente.
Vamos examinar um registrador de 4 bits que pode
armazenar e bits de dado.
d
0 d
1
d
2 d
3
Q
0
Q
1
Q
2
Q
3

Sada
Entrada

Clula individual Registrador de 4 bits


Exemplo (registrador de 8 bits)
Seu cdigo em Verilog:
module regis (clk,din,dout);
input clk;
input [7:0] din;
output [7:0] dout;
reg [7:0] dout;
always @(posedge clk)
begin
dout <= din;
end
endmodule
Basta identificar uma
borda de subida do sinal
de clock para que a
entrada din seja atribuda
sada dout.
Obs:
Exemplo (registrador de 8 bits)
Seu cdigo em VHDL:
entity reg is
port ( clk : in bit;
din : in bit_vector(7 downto 0);
dout : out bit_vector(7 downto 0)
);
end reg;
architecture arch of reg is
begin
process (clk)
begin
if (clkevent and clk=1) then
dout <= din;
end if;
end process;
end arch;
Basta identificar uma
borda de subida do sinal
de clock para que a
entrada din seja atribuda
sada dout.
Obs:
Registrador de Deslocamento
Um registrador de deslocamento projetado
para mover bits para as clulas vizinhas,
enquanto houver pulsos de clock.
Q

D
D

Q
b
7
b
6
b
5
b
4
b
3
b
2
b
1
b
0
Como todas as clulas so controladas pelo
mesmo sinal de clock , todas elas so
carregadas ao mesmo tempo
2
7
Transferncia de informao
a
1
a
2
a
3
a
4
b
1
b
2
b
3
b
4

Transferncia em paralelo
a
1
a
2
a
3
a
4
b
1
b
2
b
3
b
4
Transferncia serial

(pulso de transferncia)
registrador registrador
Registrador de Deslocamento
Como sabemos o flip-flop pode armazenar um estado
de sada, at que um novo pulso chegue ao clock.
Registrador de deslocamento trata-se de um certo
nmero de flip-flops RS ou JK mestre-escravo, sendo
cada J ou S ligada sada Q do flip-flop anterior e
cada entrada K ou R ligada sada Q do flip-flop
anterior.
O primeiro flip-flop ligado com um flip-flop tipo D
J
K
>
Q
Q
J
K
>
Q
Q
J
K
>
Q
Q
J
K
>
Q
Q
entrada
clock
Registrador de deslocamento de 4 bits
Flip-flop D mestre-escravo feito a partir de um JK
Conversor Srie-Paralelo
Informao Paralela : os bits se apresentam
simultaneamente.
Apresenta tantos fios quanto o nmero de bits
Caso: Queremos transmitir a informao
I
3
I
2
I
1
I
0
= 1010
1
0
0
1
I
0
I
1
I
2
I
3
Conversor Srie-Paralelo
Informao Serial : os bits so transmitidos por
um nico fio.
Podemos construir um conversor srio-paralelo
com um registrador de deslocamento
J
K
>
Q
Q
J
K
>
Q
Q
J
K
>
Q
Q
J
K
>
Q
Q
Entrada
srie
clock
Q
3 Q
2
Q
1
Q
0
Conversor Srie-Paralelo
J
K
>
Q
Q
J
K
>
Q
Q
J
K
>
Q
Q
J
K
>
Q
Q
Entrada
srie
clock
Q
3 Q
2
Q
1
Q
0
Informao
srie
tempo
0 1 0 1
clock
tempo
1
o
2
o
3
o
4
o
5
o
Informao descidas Q
3
Q
2
Q
1
Q
0
I
0
= 0 1
o
pulso 0 0 0 0
do clock
I
1
= 1 2
o
pulso 1 0 0 0
I
2
= 0 3
o
pulso 0 1 0 0
I
3
= 1 4
o
pulso 1 0 1 0
Obs: A cada descida do clock as
informaes so deslocadas para o
prximo flip-flop
Conversor Paralelo-Srie
Podemos realizar o processo inverso, ou seja, entrar
com uma palavra com n bits e retirar bit a bit com
pulsos de clock.
Para isto utilizamos as funes Preset e Clear dos flip-
flops JK mestre-escravo.
O circuito utilizado est mostrado abaixo:
J
K
>
Q
Q
J
K
>
Q
Q
J
K
>
Q
Q
J
K
>
Q
Q
Entrada
srie
clock
Q
3 Q
2
Q
1
Q
0
CLR
PR
CLR CLR CLR
PR PR PR
Enable
clear
3
Conversor Paralelo-Srie
Para inserirmos a palavra paralela:
Primeiro damos um pulso em zero no Clear e todas as sadas vo
para estado zero (Enable = 0 => Preset = 1).
Contudo, enquanto o enable estiver em zero, a entrada preset estar
em 1, e as sadas permanecero em zero.
Quando a entrada ENABLE for para 1, as sadas assumiro os
valores presentes nas entradas PRESET, ou seja, quando
ENABLE=1 Q
3
= \PR3; Q
2
= \PR2; Q
1
= \PR1; Q
0
= \PR0
Ento para externar serialmente os bits, aplica-se pulsos ao clock.
J
K
>
Q
Q
J
K
>
Q
Q
J
K
>
Q
Q
J
K
>
Q
Q
Entrada paralelo
clock
Q
3 Q
2
Q
1
Q
0
CLR
PR
CLR CLR CLR
PR PR PR
Enable
clear
Divisor por 2
Considere o estado inicial:
Registrador de
deslocamento
I
3
Q
3
I
2
Q
2
I
1
Q
1
I
0
Q
0
Entrada
srie
clock
Agora considere a entrada srie em zero e um
pulso de clock aplicado. Assim, temos:
Registrador de
deslocamento
0
Q
3
I
2
Q
2
I
1
Q
1
I
0
Q
0
0
clock
Ou seja, o nmero na sada
uma potncia de 2 menor.
Exemplo: (diviso por 2)
Considere: I
3
I
2
I
1
I
0
= (1010)
2
= (10)
10
Depois do pulso de clock teremos:
0I
2
I
1
I
0
= 0101 = (5)
10
Registrador de
deslocamento
0
Q
3
I
2
Q
2
I
1
Q
1
I
0
Q
0
0
clock
Outros registradores
Um registrador de deslocamento de carregamento paralelo
permite ao usurio armazenar toda a palavra em uma transio
de clock.
Este registrador pode possuir duas operaes de deslocamento
controladas pelos sinais SHR(Shift Right) e SHL(Shift Left).
Operao Shift Right:
A operao de deslocamento a direita iniciada fazendo SHR=1.
Neste caso cada bit movido uma posio para a direita
O bit mais a esquerda forado para o valor 0 (zero).
1 0 1 0 1 1 0 0
1 0 1 0 1 1 0 0
1 0 1 0 1 1 0 0
(a) Condio inicial
(b) Aps um SHR
(c) Aps mais um SHR
Obs: A operao SHR pode ser utilizada para dividir o contedo do
registrador por uma potncia de 2
Outros registradores
Operao Shift Left:
A operao de deslocamento a direita iniciada fazendo SHL=1.
Neste caso cada bit movido uma posio para a esquerda
O bit mais a direita forado para o valor 0 (zero).
1 0 1 0 1 1 0 0 (a) Condio inicial
(b) Aps um SHL
(c) Aps mais um SHL
0 0 1 0 1 1 0 0
0 0 1 0 1 1 0 0
Obs: A operao SHL pode ser utilizada para multiplicar o contedo do
registrador por uma potncia de 2
Obs: As operaes de diviso e multiplicao usando os operadores SHL e
SHR s funciona corretamente para nmeros decimais pares inteiros.
Outros registradores
Operao ROR (Rotate Right)
Rotacionamento para a direita
Ao contrrio do SHR o bit mais a direita transferido para o outro
lado do registrador.
1 0 1 0 1 1 1 0
1 0 1 0 1 1 1 0
1 0 1 0 1 1 1 0
(a) Condio inicial
(b) Aps um ROR
(c) Aps mais um ROR
4
Outros registradores
Operao ROL (Rotate Left)
Rotacionamento para a esquerda
Ao contrrio do SHL o bit mais a esquerda transferido para o outro
lado do registrador.
1 0 1 0 1 1 1 0
1 0 1 1 1 0 1 0
1 1 1 0 1 0 1 0
(a) Condio inicial
(b) Aps um ROL
(c) Aps mais um ROL
Exerccios
Implementar atravs de componentes lgicos um
registrador Shift Right de 4 bits usando flip-flops JK
mestre-escravo.
Implementar atravs de componentes lgicos um
registrador Shift Left de 4 bits usando flip-flops JK
mestre-escravo.
Implementar atravs de componentes lgicos um
registrador ROR de 4 bits usando flip-flops JK mestre-
escravo.
Implementar atravs de componentes lgicos um
registrador ROL de 4 bits usando flip-flops JK mestre-
escravo.
Exerccios
Implementar atravs em Verilog um
registrador Shift Right.
Implementar atravs em Verilog um
registrador Shift Left.
Implementar atravs em Verilog um
registrador ROR.
Implementar atravs em Verilog um
registrador ROL.
Implemente um divisor por 4 usando flip-flops

Você também pode gostar