Subido por Moises Filoteo Gonzalez

vdocuments.mx practica-3-registro-de-corrimiento-y-bancos-de-memoria

Anuncio
5/17/2018
PRÁCTICA 3. REGISTRO DE CORRIMIENTO Y BANCOS DE MEMORIA - slide pdf.c om
INSTITUTO POLITÉCNICO NACIONAL
Escuela Superior de Ingeniería Mecánica y Eléctrica
Unidad Zacatenco
LABORATORIO DE MICROPROCESADORES
PRÁCTICA No. 3
REGISTROS DE CORRIMIENTO Y BANCOS DE
MEMORIA.
PROF.:
ALUMNOS:
M. en C. Armando Martínez Ríos
Martínez Zamudio Miguel Ángel
Nieto Alcantara Jessika
MATERIA:
Microprocesadores
GRUPO:
6CM2
http://slide pdf.c om/re a de r/full/pra c tic a -3-re gistro-de -c or r imie nto-y-ba nc os-de -me mor ia
1/15
5/17/2018
PRÁCTICA 3. REGISTRO DE CORRIMIENTO Y BANCOS DE MEMORIA - slide pdf.c om
OBJETIVO:
Comprobar la operación y el funcionamiento de bancos de memoria y registros de
corrimiento.
EQUIPO:
a) Fuente de alimentación 5V.
b) Tablilla de experimentación.
c) Computadora
d) Programador Universal “SuperPro Z”
MATERIAL:





Resistores y LEDS
Oscilador 1Hz.
Dip
switch.
Cables
de conexión.
GAL 22V10.
MARCO TEÓRICO.
BANCOS DE MEMORIA.
Los módulos de memoria RAM son tarjetas de circuito impreso que tienen
soldados integrados de memoria DRAM por una o ambas caras. La
implementación
DRAMaltas
se basa
en una topología
de Circuito
eléctrico quelogrando
permite
alcanzar densidades
de memoria
por cantidad
de transistores,
integrados de decenas o cientos de Megabits. Además de DRAM, los módulos
poseen un integrado que permiten la identificación de los mismos ante el
computador por medio del protocolo de comunicación SPD.
La conexión con los demás componentes se realiza por medio de un área de pines
en uno de los filos del circuito impreso, que permiten que el modulo al ser
instalado en un zócalo apropiado de la placa base, tenga buen contacto eléctrico
con los controladores de memoria y las fuentes de alimentación.
La
figurapuede
siguiente
esquematiza
un que
agrupamiento
de ese tipo. Una tarjeta de
memoria
presentar
el aspecto
ilustra la figura:
http://slide pdf.c om/re a de r/full/pra c tic a -3-re gistro-de -c or r imie nto-y-ba nc os-de -me mor ia
2/15
5/17/2018
PRÁCTICA 3. REGISTRO DE CORRIMIENTO Y BANCOS DE MEMORIA - slide pdf.c om
Observe la división de la tarjeta en grupos de memoria llamados "bancos". Cada
banco generalmente se encuentra totalmente ocupado por circuitos idénticos o
totalmente vacíos. Cada banco puede estar ocupado por circuitos individuales de
capacidad variable, a condición de que la lógica de administración haya sido
prevista en la máquina. De este modo se pueden obtener varias combinaciones.
CARACTERÍSTICAS

El espacio de direcciones lógico de un proceso puede ser no contiguo.
Se divide la memoria física en bloques de tamaño fijo llamados marcos
(frames).
Se divide la memoria en bloques de tamaño llamados páginas.
Es posible comenzar a ejecutar un programa, cargando solo una parte del
mismo en memoria, y el resto se cargara bajo la solicitud.
No es necesario que las paginas estén contiguas en memoria, por lo que no

se
necesitan
procesos
de compactación cuando existen marcos de paginas
libres
dispersos
en la memoria.
Es fácil controlar todas las páginas, ya que tienen el mismo tamaño.




REGISTRO DE DESPLAZAMIENTO.
Los registros de desplazamiento son circuitos secuenciales formados por
biestables o flip-flops generalmente de tipo D conectados en serie y una circuitería
adicional
que controlará la manera de cargar y acceder a los datos que se
almacenan.
En los de desplazamiento se transfiere información de un flip-flop hacia el
adyacente, dentro del mismo registro o a la entrada o salida del mismo.
La capacidad de almacenamiento de un registro es el número total de bits que
puede contener.
http://slide pdf.c om/re a de r/full/pra c tic a -3-re gistro-de -c or r imie nto-y-ba nc os-de -me mor ia
3/15
5/17/2018
PRÁCTICA 3. REGISTRO DE CORRIMIENTO Y BANCOS DE MEMORIA - slide pdf.c om
E funcionamiento se realiza de manera síncrona con la señal de reloj. Gran parte
de los registros de desplazamiento reales incluyen una señal RESET o CLEAR
asíncrona, que permite poner simultáneamente todas las salidas en “0” o estado
bajo, sin necesidad de introducir ceros seguidos. Esto permite limpiar rápidamente
el registro de desplazamiento lo cual es muy importante a nivel práctico.
Sus funciones dentro del sistema digital son:


Servir de almacenamiento temporal de un conjunto de bits sobre los que se
está realizando una labor de procesamiento.
Desplazamiento de datos a lo largo de los flip-flops.
TIPOS DE REGISTROS.
Entrada serie/ Salida serie:
Los datos deben introducirse en serie, es decir, bit a bit por una única línea. La
salida se obtendrá de la misma manera.
http://slide pdf.c om/re a de r/full/pra c tic a -3-re gistro-de -c or r imie nto-y-ba nc os-de -me mor ia
4/15
5/17/2018
PRÁCTICA 3. REGISTRO DE CORRIMIENTO Y BANCOS DE MEMORIA - slide pdf.c om
Entrada serie/ Salida paralelo:
En este tipo de registros con salida en paralelo se dispone de la salida de cada
flip-flop por lo que una vez almacenados los datos cada bit se representa en su
respectiva salida. De esta manera todos los bits de salida estarán disponibles al
mismo tiempo.
Entrada paralelo/ Salida serie:
En este tipo de registros los bits de daros se introducen simultáneamente a través
de líneas paralelo en lugar de bit a bit. La salida serie se hace de igual modo que
en el primero caso explicado una vez que los datos hayan sido almacenados.
http://slide pdf.c om/re a de r/full/pra c tic a -3-re gistro-de -c or r imie nto-y-ba nc os-de -me mor ia
5/15
5/17/2018
PRÁCTICA 3. REGISTRO DE CORRIMIENTO Y BANCOS DE MEMORIA - slide pdf.c om
Entrada paralelo/ Salida paralelo:
Registros de desplazamiento bidireccionales:
Son aquellos
en queutilizando
los datos puertas
se pueden
desplazar
a la izquierda
o la derecha.
puede
implementar
lógicas
que permitan
la transferencia
de Se
un
bit de datos de una etapa a la siguiente de la izquierda o de la derecha
dependiendo del nivel de una línea de control.
Posee una entrada que estando en nivel alto hace que los bits almacenados en el
registro se desplacen hacia la derecha y a nivel bajo se desplazarán hacia la
izquierda.
Cuando este a alto las puertas impares estarán activas y el estado de la salida de
cada flip-flop pasara a la entrada D del siguiente. Cuando haya un flanco de reloj
los bits se desplazaran a una posición a la derecha.
Cuando este a bajo las puertas pares estarán activas y el estado de las salida de
cada flip-flop pasara a la entrada D del anterior. Cuando haya un flanco de reloj los
bits se desplazaran a una posición a la izquierda.
DESARROLLO:

Escriba un programa en VHDL que en un dispositivo grabe un registro
de corrimiento de 8 bits. La velocidad del corrimiento será a un
segundo.
Con un
selección deberá seleccionar si el corrimiento
es
a la derecha
o abit
la de
izquierda.
http://slide pdf.c om/re a de r/full/pra c tic a -3-re gistro-de -c or r imie nto-y-ba nc os-de -me mor ia
6/15
5/17/2018
PRÁCTICA 3. REGISTRO DE CORRIMIENTO Y BANCOS DE MEMORIA - slide pdf.c om
El programa grabado en la GAL para el registro de corrimiento fue:
library ieee;
use ieee.std_logic_1164.all;
entity Corrimiento is
port(E: in std_logic_vector (7 downto 0);
clk, carga , sel: in std_logic;
salida: out std_logic
);
attribute pin_numbers of Corrimiento : entity is
"E(7):3 E(6):4 E(5):5 E(4):6 E(3):7 E(2):8 E(1):9 E(0):10 sel:11 clk:1 carga:2 "
& "salida:15 ";
end Corrimiento;
architecture Reg of Corrimiento is
signal y: std_logic_vector(7 downto 0);
signal x: std_logic;
begin process (clk,carga,y,x)
begin
if(carga='0') then
salida <= '0';
elsif (clk'event and clk='1')then
if(carga='1')then
y <= E;
elsif(sel='1') then
x <=y(7);
for i in 0 to 6 loop
y (7-i)<= y(6-i);
end loop;
y(0)<='0';
elsif(sel='0') then
x <= y(0);
for i in 1 to 7 loop
y(i-1) <= y(i);
end loop;
y(7)<='0';
end if;
end if;
salida <= x;
end process;
end Reg;
Fig. 1 Código en VHDL para la el registro de corrimiento.
http://slide pdf.c om/re a de r/full/pra c tic a -3-re gistro-de -c or r imie nto-y-ba nc os-de -me mor ia
7/15
5/17/2018
PRÁCTICA 3. REGISTRO DE CORRIMIENTO Y BANCOS DE MEMORIA - slide pdf.c om
La distribución de los pines para el registro de corrimiento fue:
Fig. 2 Distribución de pines para el registro de corrimiento
Explicación del programa:
Como nos podemos dar cuenta, en el código estamos declarando tres variables de
entrada que son: la entrada del ciclo de reloj, la carga y la variable sel. Como
salida tenemos a la variable salida. Ahora, en la entrada del ciclo de reloj, que
siempre se asigna a la primera patita de la gal, va conectada precisamente la
salida de nuestro circuito integrado 555, y es el que da la pauta para que la
posición de los bits en el corrimiento se vaya dando de izquierda a derecha y de
derecha a izquierda. La carga está funcionando de la siguiente manera: cuando
nosotros
E (que
recordemos
una
variablepara
de tipo
vector deintroducimos
8 bits) de 8 un
bits,dato
esteendato
se carga
primeroque
en es
esta
variable
que
después se arroje hacia la variable salida uno por uno, ya que este es un registro
de corrimiento con entrada paralelo y salida en serie. La carga del dato en la
variable se da con un solo cambio de estado en dicha variable, por tanto, basta
con conectar un push a la entrada de la variable carga. La variable sel es la que
nos va a servir para dar la orden de que el corrimiento vaya de derecha a
izquierda y de izquierda a derecha. Si dicha entrada está habilitada en „0‟ el
corrimiento se da de derecha a izquierda, caso contrario si está habilitada en „1‟,
ya que de esta manera el corrimiento se da de izquierda a derecha.
http://slide pdf.c om/re a de r/full/pra c tic a -3-re gistro-de -c or r imie nto-y-ba nc os-de -me mor ia
8/15
5/17/2018
PRÁCTICA 3. REGISTRO DE CORRIMIENTO Y BANCOS DE MEMORIA - slide pdf.c om
CIRCUITO REALIZADO.
CIRCUITO DESARROLLADO PARA EL REGISTRO DE CORRIMIENTO.
http://slide pdf.c om/re a de r/full/pra c tic a -3-re gistro-de -c or r imie nto-y-ba nc os-de -me mor ia
9/15
5/17/2018
PRÁCTICA 3. REGISTRO DE CORRIMIENTO Y BANCOS DE MEMORIA - slide pdf.c om

Arme cuatro bancos de memoria con dos datos de 4 bits cada una,
saliendo todos los datos hacia los mismos leds de salida.
El programa grabado en la GAL para el banco 1 de memoria fue:
library ieee;
use ieee.std_logic_1164.all;
entity prac is
port ( G: in std_logic; -- entrada de habilitacion
I: in std_logic;
Z: out std_logic_vector(3 downto 0)
);
end prac;
architecture BANCO1 of prac is
begin
Z <= "0001" when (G='1' and I='1')else
"0010" when (G='1' and I='0')else
"ZZZZ" when (G='0');
end BANCO1;
Fig. 3 Código en VHDL para la el Banco de memoria 1
El programa grabado en la GAL para el banco 2 de memoria fue:
library ieee;
use ieee.std_logic_1164.all;
entity prac is
port ( G: in std_logic; -- entrada de habilitacion
I: in std_logic;
Z: out std_logic_vector(3 downto 0)
);
end prac;
architecture BANCO2 of prac is
begin
Z <= "0011" when (G='1' and I='1')else
"0100" when (G='1' and I='0')else
"ZZZZ" when (G='0');
end BANCO2;
http://slide pdf.c om/re a de r/full/pra c tic a -3-re gistro-de -c or r imie nto-y-ba nc os-de -me mor ia
10/15
5/17/2018
PRÁCTICA 3. REGISTRO DE CORRIMIENTO Y BANCOS DE MEMORIA - slide pdf.c om
Fig. 4 Código en VHDL para la el Banco de memoria 2
El programa grabado en la GAL para el banco 3 de memoria fue:
library ieee;
use ieee.std_logic_1164.all;
entity prac is
port ( G: in std_logic; -- entrada de habilitacion
I: in std_logic;
Z: out std_logic_vector(3 downto 0)
);
end prac;
architecture BANCO3 of prac is
begin
Z <= "0101" when (G='1' and I='1')else
"0110" when (G='1' and I='0')else
"ZZZZ" when (G='0');
end BANCO3;
Fig. 5 Código en VHDL para la el Banco de memoria 3
El programa grabado en la GAL para el banco 4 de memoria fue:
library ieee;
use ieee.std_logic_1164.all;
entity prac is
port ( G: in std_logic; -- entrada de habilitacion
I: in std_logic;
Z: out std_logic_vector(3 downto 0)
);
end prac;
architecture BANCO4 of prac is
begin
Z <=
"0111"
when
(G='1'
and
I='1')else
"1000"
when
(G='1'
and
I='0')else
"ZZZZ" when (G='0');
end BANCO4;
Fig. 6 Código en VHDL para la el Banco de memoria 4
http://slide pdf.c om/re a de r/full/pra c tic a -3-re gistro-de -c or r imie nto-y-ba nc os-de -me mor ia
11/15
5/17/2018
PRÁCTICA 3. REGISTRO DE CORRIMIENTO Y BANCOS DE MEMORIA - slide pdf.c om
La distribución de los pines para los bancos de memoria fue:
Fig. 7 Distribución de pines para los bancos de memoria
EL código para los cuatro bancos de memoria es muy similar, de echo es igual, la
única diferencia entre uno y otro so los datos de salida. Para el banco uno los
datos de salida son 1 y 2; para el banco 2 son 3 y 4; para el banco 3 son 5 y 6; y
para el banco 4 son 7 y 8.
En las primeras líneas colocamos las librerías necesarias para todas las
sentencias que declaremos más adelante no tengan ningún problema a la hora de
compilar.
Después declaramos la entidad, y ésta es finalizada en la línea 9. De la línea 5 a
la
8 declaramos
entrada
y salida.I será
Como
nos podemos
dar
cuenta
hay dos denuestros
entrada puertos
y dos dede
salida.
La entrada
ingresada
al BANCO
UNO directamente desde el dip. La entrada G será el nivel lógico que viene desde
una salida del decodificador. La salida z es nuestro dato de salida.
En la línea 11 declaramos la arquitectura, la inicializamos en la línea 13 con el
begin, y la finalizamos en la línea 18. La elección del banco de memoria estará
dada por las salidas del decodificado. para una entrada en el decodificador de „00‟,
se habilitara el banco 1; para una entrada de „01‟ se habilitara el banco 2; para una
entrada de „10‟ se habilitará el banco 3; y para una entrada de „11‟, se habilitara el
banco 4 los datos correspondientes a cada dato serán elegidos por la entrada I,
cuando
esté endado
„1‟ nos
mostrara el primer
y cuando
esté. en „0‟, nos
mostraraésta
el segundo
correspondiente
a cadadato,
uno de
los bancos.
http://slide pdf.c om/re a de r/full/pra c tic a -3-re gistro-de -c or r imie nto-y-ba nc os-de -me mor ia
12/15
5/17/2018
PRÁCTICA 3. REGISTRO DE CORRIMIENTO Y BANCOS DE MEMORIA - slide pdf.c om
OBSERVACIONES Y CONCLUSIONES.
OBSERVACIONES
MIGUEL ANGEL MARTÍNEZ ZAMUDIO
La segunda parte de la práctica fue muy sencilla ya que debido a que en la
práctica anterior habíamos trabajado con dos bancos de memoria, en esta
práctica ya solo se necesitó grabar otras dos gals con el mismo programa
pero cambiando los datos de salida. Gracias a que habíamos utilizado un
decodificador de 2 a 4 ya no fue necesario programar otro deco, con este
nos alcanzo perfectamente para nuestros 4 bancos.
Respecto a la primera parte de la práctica, nos costó mucho trabajo hacer el
código y que funcionara físicamente, ya que había veces en las que al
compilarlo no nos marcaba ningún error, sin embargo, a la hora de probarlo
el proto, no pasaba nada, no había nada de corrimiento ni a izquierdas ni
aenderechas.
Tras muchos intentos por fin quedo. No contábamos con un push así que
había que estar introduciendo y sacando un cablecito para que se cumpliera
con la función de la carga del dato y de poner todos a todo en cero para la
llegada de un nuevo dato.
CONCLUSIONES
MIGUEL ANGEL
MARTÍNEZ ZAMUDIO
Realizamos un registro de corrimiento de 8 bits con la opción de que este
corrimiento se diera de izquierda a derecha y de derecha a izquierda. Es
decir que simulamos 8 Flip-Flops cada uno con su entrada individual pero
todos con una salida en común, es por eso que se dice que el registro de
corrimiento se llama con entrada paralelo y salida en serie. Como podemos
darnos cuenta se trata de una transferencia de información en donde
nosotros introducimos dicha información en paralelo y al final la recibimos
en forma de serie.
Con los bancos de memoria, simulamos como es q trabaja el
microprocesador a la hora de su manejo de memoria. Cómo es el proceso de
elección del banco de memoria y a que información accede. Con esta
práctica queda más clara la teoría acerca de cómo se da el proceso del
corrimiento de bits en un registro de flip-flops de 8 bits. Recordemos que un
flip-flop es la unidad básica de memoria y por lo tanto tiene la capacidad de
transferir un bit que esta siendo introducido en su entrada, hacia la salida.
Esto fue lo que simulamos con nuestro registro de corrimiento.
http://slide pdf.c om/re a de r/full/pra c tic a -3-re gistro-de -c or r imie nto-y-ba nc os-de -me mor ia
13/15
5/17/2018
PRÁCTICA 3. REGISTRO DE CORRIMIENTO Y BANCOS DE MEMORIA - slide pdf.c om
OBSERVACIONES
NIETO ALCANTARA JESSIKA
En esta práctica fue más sencillo obtener la lógica de cómo hacer o como
conectar los 4 bancos de memoria, ya que en la práctica pasada se había
desarrollado
el programa
para
el las
decodificador
2 alas
4, combinaciones
es decir de 2
entradas y 4 salidas,
en este
caso
dos entradasdeeran
para accesar a cada memoria o cada banco de memoria. En la práctica
pasada se habían programado 2 GAL con el mismo programa de banco de
memoria y en este caso 4 diferentes datos salieron de ellas. En esta práctica
se programaron 4 bancos de memoria solo que tuvimos que juntarnos con
otro equipo para que usáramos sus GAL. Se grabaron los datos del 1 al 8, 2
en cada memoria y al hacer la selección desde el decodificador obteníamos
la salida de los datos.
En cuanto al registro de corrimiento, nos costó algo de trabajo hacer el
programa
ya quey preguntando
no sabemos amucho
de VHDL,
tuvimos
libros
e internet
profesores,
hasta
que seque
pudoinvestigar
diseñar yen
lo
más importante que compiló.
Para cargar el dato necesitamos tener un push button pero no contábamos
con él así que tuvimos que conectar un cable de la terminal de “clr” a tierra
para poder insertar el dato en la memoria, cambiando el dato desde un dip
de 8 para simular los 8 bits del dato, después de hacer esto el dato se tenía
que recorrer y esto se observó en el led de salida.
NIETOCONCLUSIONES
ALCANTARA JESSIKA
Concluimos que en un registro de desplazamiento los valores de las
salidas dependen de los valores de entrada, consiste en una serie de
flip-flop conectados en cascada, pueden ser muchos tipos, como
paralelo-serie, serie-paralelo, etc., esta serie en cascada está
conectada en común con una señal de reloj en este caso nuestro 555 a
un segundo. Cada pulso de reloj es un cambio en el registro de
corrimiento ya sea que el sentido sea a la izquierda o a la derecha.
Es
importante
que sepamos
corrimiento
a la2. izquierda
multiplica
por 2 mientras
que unoque
a la un
derecha
divide entre
En los bancos de memoria hicimos la simulación del cómo trabaja un
microprocesador al hacer la selección de memoria y de la dirección
que se desea leer o grabar, dependiendo que memoria sea si es RAM o
ROM.
http://slide pdf.c om/re a de r/full/pra c tic a -3-re gistro-de -c or r imie nto-y-ba nc os-de -me mor ia
14/15
5/17/2018
PRÁCTICA 3. REGISTRO DE CORRIMIENTO Y BANCOS DE MEMORIA - slide pdf.c om
Para esta práctica es importante no olvidar que un flip- flop es la celda
básica de memoria y un bit es la unidad básica de memoria, son cosas
muy diferentes ya que un flip-flop puede almacenar un bit de memoria.
BIBLIOGRAFÍA.



http://es.wikipedia.org/wiki/Registro_de_desplazamiento
http://personales.unican.es/manzanom/EdigitalI/REGG4.pdf
http://laimbio08.escet.urjc.es/assets/files/docencia/EDII/ed2_prac6_reg_fin.pdf
http://slide pdf.c om/re a de r/full/pra c tic a -3-re gistro-de -c or r imie nto-y-ba nc os-de -me mor ia
15/15
Descargar