GUIAS ÚNICAS DE LABORATORIO TRANSFERENCIA ENTRE REGISTROS AUTOR: ALBERTO CUERVO SANTIAGO DE CALI UNIVERSIDAD SANTIAGO DE CALI DEPARTAMENTO DE LABORATORIOS DDEEPPAARRTTAAM MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS GGUUIIAASS DDEE LLAABBOORRAATTOORRIIOO DDEE TTRRAANNSSFFEERREENNCCIIAA EENNTTRREE RREEGGIISSTTRROOSS TRANSFERENCIA ENTRE REGISTROS OBJETIVO El lenguaje de transferencia entre registros constituye un conjunto de expresiones y afirmaciones con una notación simbólica para especificar las interconexiones necesarias entre los distintos componentes de un sistema digital. Presenta las herramientas necesarias para describir el sistema , así como la secuencia de microoperaciones que se realizan en el mismo, entendiéndose por microoperación una operación elemental que se puede efectuar en forma paralelo durante un período de pulso de reloj. Como resultado de una microoperación el dato previamente almacenado en un registro puede alterarse o ser almacenado en otro registro, etc. Esta práctica tiene como objetivo reforzar los conocimientos del estudiante en este tema con el diseño de un sistema digital descrito por un conjunto de afirmaciones en este lenguaje de transferencia. Es de vital importancia que el estudiante trate de solucionar el problema planteado por sí mismo para después confrontar su respuesta con la solución mostrada en el libro. Todos los circuitos digitales empleados en la solución pueden ser encontrados en el módulo DIGI-BOARD2 del laboratorio de la universidad. PLANTEAMIENTO DEL PROBLEMA Un sistema digital tiene tres registros: PROD, MDO y MDOR. Tres flip-flops suministran las funciones de control del sistema: X, Y y Z X es un flip-flop el cual se habilita por una señal externa para comenzar la operación del sistema, esto es, si una señal externa = 1 cuando ocurra un pulso de reloj, el flip-flop es colocado en el estado 1. Y y Z se usan para dar secuencia a las microoperaciones. Un cuarto flip-flop ALTO se coloca en 1 por el sistema digital una vez se completa la operación. La función del sistema digital se describe por medio de las siguientes afirmaciones de transferencia entre registros. X : PROD ← 0, X ← 0, ALTO ← 0, Y ← 1 Y : Y ← 0, si (MDOR=0) entonces (ALTO← ←1) por tanto (Z← ←1) Z : PROD ← PROD + MDO, MDOR ← MDOR – 1, Z ← 0, Y ← 1 Pregunta: ¿Cuál es la función que ejecuta el sistema digital? Diseñe el sistema digital (quedando bien explícitas todas las conexiones) y utilizando solamente los siguientes elementos del módulo DIGI-BOARD2. DDEEPPAARRTTAAM MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS GGUUIIAASS DDEE LLAABBOORRAATTOORRIIOO DDEE TTRRAANNSSFFEERREENNCCIIAA EENNTTRREE RREEGGIISSTTRROOSS • • • • • • • • • Cuatro flip-flops JK (38) para los flip-flops X, Y, Z y ALTO Dos compuertas OR/NOR (34) Tres compuertas AND/NAND (32) Un sumador de 4 bits (16) El registro SRG4 (11) para el registro PROD. El contador binario CTRDIV16 (30) para el registro MDOR. Un teclado de 4 bits (31) para el registro MDO El pulsador (29) para la señal externa El generador de pulsos de reloj (27) con una frecuencia de 1 Hz para los pulsos de reloj del sistema. Esta frecuencia es lo suficientemente lenta para poder ir visualizando las distintas operaciones que va ejecutando el sistema digital secuencialmente. Los cuatro flip-flops X, Y, Z y ALTO deben ser llevados a LEDs y los registros MDOR y PROD deben ser llevados al display de 7 segmentos para poder ir viendo las distintas operaciones que va ejecutando el sistema digital Monte su circuito y verifique el funcionamiento del mismo efectuando los siguientes pasos en orden • • • • • Con las entradas asincrónicas de los flip-flops coloque en 0 a los flip-flops X, Y y Z Coloque inicialmente el número 3 (0011) en el registro MDOR Coloque el número 2 (0010) en el registro MDO (en el teclado) Presione el pulsador hasta que se encienda el LED correspondiente al flip-flop X. Suelte el pulsador tan pronto se encienda este LED. El sistema digital comenzará a ejecutar su operación. Cuando se encienda el LED correspondiente al flip-flop ALTO habrá terminado. Anote el número que queda en el registro PROD viéndolo en el display de 7 segmentos. ¿Corresponde este número con el resultado esperado? ¿Cuál es entonces la función que realiza este sistema digital? Dibuje el diagrama de estados del sistema a partir de las proposiciones planteadas. SOLUCIÓN De acuerdo con las proposiciones de transferencia entre registro se observa lo siguiente en la operación de los flip-flops X, Y, Z y ALTO. 1. La señal externa del pulsador debe provocar que en el flip-flop X ocurra una transición de 0 a 1, por tanto esta señal debe ir a la J de este flip-flop. 2. Cuando ocurra un pulso de reloj con X=1, el flip flop X debe ir a 0 y Y a 1, por tanto se une la salida X a la entrada K del flipflop X y a la J del flip-flop Y a través de una compuerta OR ya que ya que el flip-flop Y debe colocarse en 1 también cuando Z=1. 3. Si Y=1, cuando ocurra un pulso de reloj se debe limpiar este flip-flop, por tanto se une su salida con su entrada de excitación K. DDEEPPAARRTTAAM MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS GGUUIIAASS DDEE LLAABBOORRAATTOORRIIOO DDEE TTRRAANNSSFFEERREENNCCIIAA EENNTTRREE RREEGGIISSTTRROOSS 4. Si Y=1se debe provocar una transición de 0 a 1 en el flip-flop de ALTO de forma condicional, esto es si la señal que indica que el contenido del registro MDOR=0. Por tanto la entrada J del flip-flop de ALTO es alimentada por una compuerta AND cuyas entradas son la salida del flip-flop Y y la salida de una compuerta NOR que indica que el contenido de MDOR=0. 5. Si Y=1, se debe provocar una transición de 0 a 1 en el flip-flop Z pero condicionado a que el contenido de MDOR≠ 0. Por tanto la entrada J del flip-flop Z es alimentada por una compuerta AND cuyas entradas son Y y la salida de una compuerta OR que indica que el contenido de MDOR ≠0 6. También se observa que el flip-flop de ALTO sólo debe ir a 0 cuando ocurra un pulso de reloj estando X en 1, por tanto la entrada K del flip-flop de ALTO es alimentada por la entrada X. 7. El flip-flop Z debe limpiarse cuando ocurra un pulso de reloj con Z=1. Por tanto la salida Z alimenta a la entrada K de este flip-flop. Del análisis anterior se puede dibujar el circuito del sistema digital, así como el diagrama de estados del mismo, los cuales se muestran a continuación. DDEEPPAARRTTAAM MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS GGUUIIAASS DDEE LLAABBOORRAATTOORRIIOO DDEE TTRRAANNSSFFEERREENNCCIIAA EENNTTRREE RREEGGIISSTTRROOSS Y Señal externa del pulsador J J X reloj Y X´ Z J reloj reloj K J K reloj K Y´ ALTO Z´ K CTRDIV16 reloj Z MDOR G2 para cargar el #3 C3 1 si MDOR=0 1 1 0 0 Z reloj X´ PROD 0 1 SRG4 C4 R 0 1 0 0 0 1 2 3 0 1 2 S U M A D O R 0 1 2 3 3 CI DDEEPPAARRTTAAM MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS GGUUIIAASS DDEE LLAABBOORRAATTOORRIIOO DDEE TTRRAANNSSFFEERREENNCCIIAA EENNTTRREE RREEGGIISSTTRROOSS Circuito del Sistema Digital ALTO MDOR=0 X Y MDOR = 0 Z Señal Diagrama de Estados externa De este diagrama de estados se observa que una vez comenzada la operación, el circuito alterna entre los estados Y y Z hasta que el contenido del Registro MDOR=0. Cuando esto último ocurre, se limpia el flip-flop Y y se coloca en 1 el flip-flop de ALTO para indicar que se terminó de realizar la operación. El flip-flop de ALTO se queda en el estado 1 indefinidamente hasta que se reinicie el sistema con una señal externa al estado X para comenzar una nueva operación. Como cuando Z=1 se decrementa al MDOR y se suma el contenido del PROD al MDO y el resultado se deja almacenado en el PROD, entonces se suma el número en el PROD tantas veces como el número almacenado en el MDOR. Esto es, el sistema efectúa la multiplicación por sumas sucesivas del MDO por el MDOR y el resultado lo deja almacenado en PROD. Observe que inicialmente en el estado X se limpia el registro PROD. A la entrada asincrónica R del PROD (SRG4) se lleva la señal X´ para borrar este registro en este estado La señal Z coloca al registro PROD en el modo 11para cargar a este registro con la salida del sumador cuando Z=1. Similarmente, los pulsos de reloj se inyectan a través de una compuerta AND (teniendo a Z en la otra entrada) a la entrada de pulsos para conteo decreciente del contador para decrementar al registro MDOR cuando Z=1. BIBLIOGRAFÍA 1. M. Morris Mano, “Lógica Digital y Diseño de Computadores”, Editorial Dossat S.A., 1982 2. F. Hill y G. Peterson, “Digital Systems: Hardware Organization and Design”, Nueva York: John Wiley and Sons, 1973 3. System Technick, “DIGI-BOARD2, Descripción Técnica” DDEEPPAARRTTAAM MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS GGUUIIAASS DDEE LLAABBOORRAATTOORRIIOO DDEE TTRRAANNSSFFEERREENNCCIIAA EENNTTRREE RREEGGIISSTTRROOSS DDEEPPAARRTTAAM MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS GGUUIIAASS DDEE LLAABBOORRAATTOORRIIOO DDEE TTRRAANNSSFFEERREENNCCIIAA EENNTTRREE RREEGGIISSTTRROOSS