Publicado el 25 de Agosto del 2019
710 visualizaciones desde el 25 de Agosto del 2019
358,5 KB
36 paginas
Creado hace 11a (16/01/2013)
Titulación: Ingeniería Informática
Asignatura: Fundamentos de
Computadores
Bloque 3: Sistemas
secuenciales
Tema 9: Módulos secuenciales
básicos
Pablo Huerta Pellitero
Luis Rincón Córcoles
ÍNDICE
Módulos secuenciales básicos
Carga paralela
Registros de desplazamiento
• Contadores
• Bibliografía
• Registros
Contadores síncronos
Contadores asíncronos
• Banco de registros
2
BIBLIOGRAFÍA
Módulos secuenciales básicos
• Román Hermida, Ana Mº del Corral, Enric Pastor, Fermín
Sánchez
“Fundamentos de Computadores” , cap 5
Editorial Síntesis
• Thomas L. Floyd
“Fundamentos de Sistemas Digitales”, cap 8,9
Editorial Prentice Hall
• Daniel D. Gajski
“Principios de Diseño Digital”, cap 7
Editorial Prentice Hall
• M. Morris Mano
“Diseño Digital”, cap 7
Editorial Prentice Hall
3
Módulos secuenciales básicos
REGISTROS
Se denomina registro a un conjunto de biestables (típicamente flip-flops)
que funcionan al unísono, compartiendo las señales de control (reloj, reset,
etc).
Las entradas y la salidas de datos del registro pueden ser en paralelo o en
serie.
•
•
• Algunas de las entradas de control que pueden tener los registros son:
Habilitación/inhabilitación del reloj: se utiliza para controlar el
funcionamiento del registro. Si el reloj está inhabilitado, el registro no
cambiará su valor cuando llegue un flanco de reloj.
Habilitación de entrada: hace que la entrada llegue a los flip-flops, o
que no llegue y por tanto mantengan su valor anterior. El efecto que
tiene es equivalente a la habilitación/inhabilitación del reloj.
Clear o reset: entrada asíncrona común a todos los biestables que hace
Preset o set: entrada asíncrona común a todos los biestables que hace
que todos pongan su salida a ‘0’.
que todos pongan su salida a ‘1’.
Habilitación de salida: conecta/desconecta la salida del registro.
4
ÍNDICE
Módulos secuenciales básicos
Carga paralela
Registros de desplazamiento
• Contadores
• Bibliografía
• Registros
Contadores síncronos
Contadores asíncronos
• Banco de registros
5
REGISTROS CON CARGA PARALELA
Módulos secuenciales básicos
• Son los más comunes, y se utilizan para almacenamiento
de datos. Tienen ‘n’ bits de entrada de datos y ‘n’ bits de
salida de datos. Internamente hay ‘n’ flip-flops, y cada uno
de ellos almacena uno de los bits del registro.
• Ejemplo: registro de 4 bits con carga paralela.
Símbolo
Tabla de
funcionamiento
6
REGISTROS CON CARGA PARALELA
Módulos secuenciales básicos
• Registro con carga paralela:
7
REGISTRO CON CARGA PARALELA:
HABILITACIÓN DE RELOJ
Módulos secuenciales básicos
• El registro con carga paralela puede tener una entrada de
habilitación de reloj CE (Clock Enable). Si CE = ‘0’, el reloj
que llega a los biestables siempre vale ‘0’. Si CE = ‘1’ a los
biestables les llega la entrada de reloj Clk.
• Esta forma de controlar el reloj se conoce como “clock
gating”. Puede dar problemas de sesgo (“skew”) en el reloj
del sistema, por lo que es preferible utilizar habilitación de
entrada.
Símbolo
Tabla de
funcionamiento
8
REGISTROS CON CARGA PARALELA:
HABILITACIÓN DE RELOJ
• Registro con carga en paralelo y habilitación de reloj:
Módulos secuenciales básicos
9
Módulos secuenciales básicos
REGISTROS CON CARGA PARALELA:
HABILITACIÓN DE ENTRADA
• La habilitación de entrada se puede hacer utilizando
multiplexores a la entrada de los flip-flops. Estos
multiplexores hacen que al flip-flop llegue o bien la
entrada del registro o el valor que ya había
almacenado en el flip-flop.
Símbolo
Tabla de
funcionamiento
10
REGISTROS CON CARGA PARALELA:
HABILITACIÓN DE ENTRADA
• Registro con carga paralela y habilitación de entrada:
Módulos secuenciales básicos
11
REGISTROS CON CARGA PARALELA:
HABILITACIÓN DE SALIDA
Módulos secuenciales básicos
• La habilitación de salida permite, mediante un señal de
control (OE, Output Enable), que el registro coloque en la
salida el valor que tiene almacenado en los flip-flops, o que
deje la salida en alta impedancia.
• Se implementa utilizando buffers triestado.
Símbolo
Tabla de funcionamiento: escritura
Tabla de funcionamiento: lectura
12
Módulos secuenciales básicos
REGISTROS CON CARGA PARALELA:
HABILITACIÓN DE SALIDA
• Registro con carga paralela, habilitación de entrada, y
habilitación de salida:
13
REGISTRO CON CARGA PARALELA
Módulos secuenciales básicos
• Ejemplo: modelo funcional en VHDL de un registro con
carga paralela, habilitación de entrada, y habilitación de
salida.
library ieee;
use ieee.std_logic_1164.all;
entity reg_load_oe is
generic(width: integer);
port(clk, rst, load, oe: in std_logic;
I: in std_logic_vector(width-1 downto 0);
Q: out std_logic_vector(width-1 downto 0));
end reg_load_oe;
14
REGISTRO CON CARGA PARALELA
Módulos secuenciales básicos
• Ejemplo (continuación): arquitectura.
architecture funcional of reg_load_oe is
signal Q_interno: std_logic_vector(width-1 downto 0);
begin
--Escritura:
process(clk,rst)
begin
if rst = '1' then
Q_interno <= (others => '0');
elsif (rising_edge(clk) and load = '1') then
Q_interno <= I;
end if;
end process;
--Lectura
process(Q_interno, oe)
begin
if oe = '1' then Q <= Q_interno;
else Q <= (others => 'Z');
end if;
end process;
end funcional;
15
REGISTRO CON CARGA PARALELA
Módulos secuenciales básicos
• Ejemplo (continuación): test-bench de un registro de 4 bits.
library ieee;
use ieee.std_logic_1164.all;
entity test_reg_load_oe is
end test_reg_load_oe;
architecture test of test_reg_load_oe is
signal clk: std_logic := '0';
signal rst, load, oe: std_logic;
signal I, Q: std_logic_vector(3 downto 0);
begin
clk <= not clk after 5 ns;
rst <= '0', '1' after 20 ns, '0' after 22 ns;
load <= '0', '1' after 50 ns,'0' after 60 ns, '1' after 100 ns,
'0' after 110 ns;
oe <= '0', '1' after 70 ns;
I <= "0110", "1001" after 40 ns, "1111" after 80 ns;
inst: entity work.reg_load_oe generic map(4) port map(clk,rst,load,oe,I,Q);
end test;
16
REGISTRO CON CARGA PARALELA
Módulos secuenciales básicos
• Ejemplo (continuación): resultado de la simulación.
17
ÍNDICE
Módulos secuenciales básicos
Carga paralela
Registros de desplazamiento
• Contadores
• Bibliografía
• Registros
Contadores síncronos
Contadores asíncronos
• Banco de registros
18
REGISTROS DE DESPLAZAMIENTO
Módulos secuenciales básicos
• Son registros que permiten realizar ciertas operaciones de
carga de datos y desplazamientos a izquierda, derecha,
rotaciones, etc.
• Pueden tener entradas y/o salidas de datos serie tanto por
el bit más significativo como por el bit menos significativo.
• También pueden tener entradas de datos para carga en
paralelo, y/o salidas en paralelo.
• En los registros de desplazamiento, su contenido se va
propagando (desplazando) de un biestable a otro en cada
flanco de reloj.
• Tipos de registros de desplazamiento:
Conversión serie / serie.
Conversión serie / paralelo.
Conversión paralelo / serie.
Registros de desplazamiento universales.
19
REGISTRO CONVERSOR SERIE/SERIE
Módulos secuenciales básicos
• Son registros que tienen una entrada de datos de 1 bit y
una salida de datos de 1 bit. Internamente tienen ‘n’
biestables. El dato de entrada se va propagando
(desplazando) de un biestable a otro en cada flanco de
reloj, hasta llegar a la salida.
• La salida es igual a la entrada retrasada ‘n’ ciclos de reloj.
Símbolo
20
REGISTRO CONVERSOR SERIE/SERIE
Módulos secuenciales básicos
• El registro serie/serie también puede incluir entradas de
habilitación de reloj, habilitación de entrada, habilitación de
salida, etc.
• Ejemplo: registro serie/serie con habilitación de entrada y
desplazamiento hacia la derecha:
21
Módulos secuenciales básicos
REGISTRO CONVERSOR SERIE/PARALELO
• Es un registro con una entrada de datos de 1 bit y una
salida de datos de ‘n’ bits. Internamente tiene ‘n’
biestables, y el dato de entrada se va propagando
(desplazando) de uno a otro en cada flanco de reloj.
Internamente es similar al registro serie/serie, pero todos
los biestables están conectados a la salida en paralelo.
•
• Ejemplo: registro serie/paralelo con habilitación de entrada
y desplazamiento hacia la derecha:
22
REGISTRO CONVERSOR PARALELO/SERIE
Módulos secuenciales básicos
• Es un registro con una entrada de datos de ‘n’ bits en
paralelo, y una salida de datos de 1 bit. Internamente tiene
‘n’ biestables, y el dato de entrada se va propagando
(desplazando) de uno a otro en cada flanco de reloj.
• Ejemplo: registro paralelo/serie con habilitación de entrada
y desplazamiento hacia la derecha:
23
Módulos secuenciales básicos
REGISTROS DE DESPLAZAMIENTO
UNIVERSALES
• Los registros de desplazamiento universales permiten
realizar varias operaciones en función de varias señales de
control:
Carga en paralelo.
Desplazamiento a la izquierda y/o a la derecha.
Rotación.
Internamente están implementados utilizando multiplexores
que se conectan a las entradas de los biestables y que
permiten, mediante unas señales de control , escoger el
tipo de operación que tiene que realizar el registro.
•
• Ejemplo: registro de desplazamiento con la siguiente tabla
de operaciones:
24
REGISTROS DE DESPLAZAMIENTO
UNIVERSALES
Módulos secuenciales básicos
25
ÍNDICE
Módulos secuenciales básicos
Carga paralela
Conversión serie/serie
Conversión serie/paralelo
Registros de desplazamiento
• Contadores
• Bibliografía
• Registros
Contadores síncronos
Contadores asíncronos
• Banco de registros
26
CONTADORES
Módulos secuenciales básicos
• Un contador es un circuito secuencial con una salida de ‘n’ bits que puede
seguir una secuencia númerica concreta: 0, 1, 2, 3 .
Comentarios de: Bloque 3: Sistemas secuenciales - Tema 9: Módulos secuenciales básicos (0)
No hay comentarios