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 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
Q Q
Q Q
Q Q
Q Q
D2
D1 Entrada Paralela
D0 Relgio
13
input
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
15
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
Clock Q
Q 2 Count 0 1 2 3 4 5 6 7 0
22
1 Clock
Q 0
Q 1
Q 2
Clock
Q0
Q1
Q2 Count 0 7 6 5 4 3 2 1 0
24
Clock
Q 2
Q Q 0
Q Q 1 Q
Q Q 2 Q
Q Q 3 Q
Clock
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
Enable
Clock
Clear
28
D Q CLK
D Q
D Q
D Q
"1"
29
30
31
RCO QD QC QB QA
34