P. 1
PRÁCTICA 3. REGISTRO DE CORRIMIENTO Y BANCOS DE MEMORIA

PRÁCTICA 3. REGISTRO DE CORRIMIENTO Y BANCOS DE MEMORIA

|Views: 1.001|Likes:

More info:

Published by: Jessika Nieto Alcantara on May 06, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

11/22/2013

pdf

text

original

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.:

M. en C. Armando Martínez Ríos

ALUMNOS: Martínez Zamudio Miguel Ángel Nieto Alcantara Jessika

MATERIA:

Microprocesadores

GRUPO:

6CM2

Una tarjeta de memoria puede presentar el aspecto que ilustra la figura: . tenga buen contacto eléctrico con los controladores de memoria y las fuentes de alimentación. MARCO TEÓRICO. 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. Computadora Programador Universal “SuperPro Z” MATERIAL:      Resistores y LEDS Oscilador 1Hz. Dip switch. GAL 22V10. Los módulos de memoria RAM son tarjetas de circuito impreso que tienen soldados integrados de memoria DRAM por una o ambas caras. Tablilla de experimentación.OBJETIVO: Comprobar la operación y el funcionamiento de bancos de memoria y registros de corrimiento. EQUIPO: a) b) c) d) Fuente de alimentación 5V. Cables de conexión. logrando integrados de decenas o cientos de Megabits. 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. La implementación DRAM se basa en una topología de Circuito eléctrico que permite alcanzar densidades altas de memoria por cantidad de transistores. BANCOS DE MEMORIA. La figura siguiente esquematiza un agrupamiento de ese tipo. que permiten que el modulo al ser instalado en un zócalo apropiado de la placa base.

por lo que no se necesitan procesos de compactación cuando existen marcos de paginas libres dispersos en la memoria. y el resto se cargara bajo la solicitud. Es posible comenzar a ejecutar un programa. dentro del mismo registro o a la entrada o salida del mismo. En los de desplazamiento se transfiere información de un flip-flop hacia el adyacente. No es necesario que las paginas estén contiguas en memoria. De este modo se pueden obtener varias combinaciones. CARACTERÍSTICAS       El espacio de direcciones lógico de un proceso puede ser no contiguo. Es fácil controlar todas las páginas. La capacidad de almacenamiento de un registro es el número total de bits que puede contener. Cada banco puede estar ocupado por circuitos individuales de capacidad variable. Cada banco generalmente se encuentra totalmente ocupado por circuitos idénticos o totalmente vacíos. . REGISTRO DE DESPLAZAMIENTO.Observe la división de la tarjeta en grupos de memoria llamados "bancos". a condición de que la lógica de administración haya sido prevista en la máquina. 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. cargando solo una parte del mismo en memoria. ya que tienen el mismo tamaño. 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.

sin necesidad de introducir ceros seguidos. es decir.E funcionamiento se realiza de manera síncrona con la señal de reloj. bit a bit por una única línea. Entrada serie/ Salida serie: Los datos deben introducirse en serie. Desplazamiento de datos a lo largo de los flip-flops. Gran parte de los registros de desplazamiento reales incluyen una señal RESET o CLEAR asíncrona. La salida se obtendrá de la misma manera. . Esto permite limpiar rápidamente el registro de desplazamiento lo cual es muy importante a nivel práctico. que permite poner simultáneamente todas las salidas en “0” o estado bajo. 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. TIPOS DE REGISTROS.

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. De esta manera todos los bits de salida estarán disponibles al mismo tiempo.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.

Se puede implementar utilizando puertas lógicas que permitan la transferencia de 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. . 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. 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. 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 derecha. Con un bit de selección deberá seleccionar si el corrimiento es a la derecha o a la izquierda.Entrada paralelo/ Salida paralelo: Registros de desplazamiento bidireccionales: Son aquellos en que los datos se pueden desplazar a la izquierda o la derecha. Cuando haya un flanco de reloj los bits se desplazaran a una posición a la izquierda. 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.

y. for i in 1 to 7 loop y(i-1) <= y(i). signal x: std_logic.carga. end loop. carga . Fig. elsif(sel='1') then x <=y(7). 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 ". begin process (clk. end Corrimiento. end process. end if. use ieee. salida: out std_logic ). end Reg. salida <= x. entity Corrimiento is port(E: in std_logic_vector (7 downto 0).all.std_logic_1164.El programa grabado en la GAL para el registro de corrimiento fue: library ieee. clk. elsif (clk'event and clk='1')then if(carga='1')then y <= E. architecture Reg of Corrimiento is signal y: std_logic_vector(7 downto 0). for i in 0 to 6 loop y (7-i)<= y(6-i).x) begin if(carga='0') then salida <= '0'. 1 Código en VHDL para la el registro de corrimiento. end loop. end if. sel: in std_logic. y(7)<='0'. y(0)<='0'. . elsif(sel='0') then x <= y(0).

este dato se carga primero en esta variable para que después se arroje hacia la variable salida uno por uno. que siempre se asigna a la primera patita de la gal. 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 y la variable sel. por tanto. ya que este es un registro de corrimiento con entrada paralelo y salida en serie. va conectada precisamente la salida de nuestro circuito integrado 555. Como salida tenemos a la variable salida. 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.La distribución de los pines para el registro de corrimiento fue: Fig. La carga del dato en la variable se da con un solo cambio de estado en dicha variable. caso contrario si está habilitada en „1‟. basta con conectar un push a la entrada de la variable carga. La carga está funcionando de la siguiente manera: cuando nosotros introducimos un dato en E (que recordemos que es una variable de tipo vector de 8 bits) de 8 bits. en la entrada del ciclo de reloj. Ahora. ya que de esta manera el corrimiento se da de izquierda a derecha. Si dicha entrada está habilitada en „0‟ el corrimiento se da de derecha a izquierda. 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. .

CIRCUITO DESARROLLADO PARA EL REGISTRO DE CORRIMIENTO. .CIRCUITO REALIZADO.

std_logic_1164. 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. entity prac is port ( G: in std_logic. Fig.std_logic_1164. 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').all. Z: out std_logic_vector(3 downto 0) ). -. 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. end prac.all. use ieee. Z: out std_logic_vector(3 downto 0) ). Arme cuatro bancos de memoria con dos datos de 4 bits cada una. 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 BANCO2. entity prac is port ( G: in std_logic. end BANCO1.entrada de habilitacion I: in std_logic.entrada de habilitacion I: in std_logic. end prac. -.

std_logic_1164. -.all. use ieee. end prac. Fig. entity prac is port ( G: in std_logic.all.std_logic_1164. use ieee. end BANCO4.entrada de habilitacion I: in std_logic. -. Z: out std_logic_vector(3 downto 0) ).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. 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'). entity prac is port ( G: in std_logic. end prac. Z: out std_logic_vector(3 downto 0) ). 6 Código en VHDL para la el Banco de memoria 4 . 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. 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'). Fig. end BANCO3.entrada de habilitacion I: in std_logic.

y la finalizamos en la línea 18. Después declaramos la entidad. Como nos podemos dar cuenta hay dos de entrada y dos de salida. la inicializamos en la línea 13 con el begin. Para el banco uno los datos de salida son 1 y 2. La entrada G será el nivel lógico que viene desde una salida del decodificador. y cuando esté en „0‟. . cuando ésta esté en „1‟ nos mostrara el primer dato. de echo es igual. para el banco 2 son 3 y 4. .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. para una entrada en el decodificador de „00‟. En la línea 11 declaramos la arquitectura. se habilitara el banco 1. se habilitara el banco 4 los datos correspondientes a cada dato serán elegidos por la entrada I. De la línea 5 a la 8 declaramos nuestros puertos de entrada y salida. para una entrada de „01‟ se habilitara el banco 2. para el banco 3 son 5 y 6. la única diferencia entre uno y otro so los datos de salida. y para una entrada de „11‟. nos mostrara el segundo dado correspondiente a cada uno de los bancos. y ésta es finalizada en la línea 9. La elección del banco de memoria estará dada por las salidas del decodificado. para una entrada de „10‟ se habilitará el banco 3. La salida z es nuestro dato de salida. 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. La entrada I será ingresada al BANCO UNO directamente desde el dip. y para el banco 4 son 7 y 8.

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. es por eso que se dice que el registro de corrimiento se llama con entrada paralelo y salida en serie. 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.OBSERVACIONES Y CONCLUSIONES. no pasaba nada. hacia la salida. con este nos alcanzo perfectamente para nuestros 4 bancos. Esto fue lo que simulamos con nuestro registro de corrimiento. sin embargo. Con los bancos de memoria. 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. simulamos como es q trabaja el microprocesador a la hora de su manejo de memoria. Respecto a la primera parte de la práctica. 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. en esta práctica ya solo se necesitó grabar otras dos gals con el mismo programa pero cambiando los datos de salida. no había nada de corrimiento ni a izquierdas ni a derechas. Es decir que simulamos 8 Flip-Flops cada uno con su entrada individual pero todos con una salida en común. 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. . a la hora de probarlo en el proto. ya que había veces en las que al compilarlo no nos marcaba ningún error. nos costó mucho trabajo hacer el código y que funcionara físicamente. Gracias a que habíamos utilizado un decodificador de 2 a 4 ya no fue necesario programar otro deco. 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. Tras muchos intentos por fin quedo.

después de hacer esto el dato se tenía que recorrer y esto se observó en el led de salida. Se grabaron los datos del 1 al 8. hasta que se pudo diseñar y lo más importante que compiló. 2 en cada memoria y al hacer la selección desde el decodificador obteníamos la salida de los datos. nos costó algo de trabajo hacer el programa ya que no sabemos mucho de VHDL. en este caso las dos entradas eran las combinaciones para accesar a cada memoria o cada banco de memoria. tuvimos que investigar en libros e internet y preguntando a profesores. 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. serie-paralelo. esta serie en cascada está conectada en común con una señal de reloj en este caso nuestro 555 a un segundo. En esta práctica se programaron 4 bancos de memoria solo que tuvimos que juntarnos con otro equipo para que usáramos sus GAL. 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.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. es decir de 2 entradas y 4 salidas. consiste en una serie de flip-flop conectados en cascada. etc. pueden ser muchos tipos. dependiendo que memoria sea si es RAM o ROM. 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. ya que en la práctica pasada se había desarrollado el programa para el decodificador de 2 a 4.. como paralelo-serie. cambiando el dato desde un dip de 8 para simular los 8 bits del dato. . CONCLUSIONES NIETO ALCANTARA JESSIKA Concluimos que en un registro de desplazamiento los valores de las salidas dependen de los valores de entrada. Es importante que sepamos que un corrimiento a la izquierda multiplica por 2 mientras que uno a la derecha divide entre 2. 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. En cuanto al registro de corrimiento.

BIBLIOGRAFÍA.pdf .escet. son cosas muy diferentes ya que un flip-flop puede almacenar un bit de memoria.    http://es.flop es la celda básica de memoria y un bit es la unidad básica de memoria.unican.es/assets/files/docencia/EDII/ed2_prac6_reg_fin.wikipedia.urjc.pdf http://laimbio08.Para esta práctica es importante no olvidar que un flip.es/manzanom/EdigitalI/REGG4.org/wiki/Registro_de_desplazamiento http://personales.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->