Alu Controlada Por Registro Pipo

download Alu Controlada Por Registro Pipo

of 20

Transcript of Alu Controlada Por Registro Pipo

ALU CONTROLADA POR REGISTRO PIPO

Introduccin Una ALU (Unidad Aritmtica Lgica), es un circuito digital que calcula operaciones aritmticas y lgicas entre dos nmeros. Se compone bsicamente de: Circuito Operacional, Registros de Entradas, Registro Acumulador y un Registro de Estados, conjunto de registros que hacen posible la realizacin de cada una de las operaciones. Cada bit de la ALU se procesa de manera idntica, con la excepcin del direccionamiento del bit del acarreo.Un registro electrnico es un dispositivo lgico secuencial capaz de almacenar varios bits de informacin. El formato de esta informacin puede ser de dos tipos:1. Serie: los bits se transfieren uno a continuacin del otro por una misma lnea.1. Paralelo: se intercambian todos los bits al mismo tiempo, utilizando un nmero de lneas de transferencia igual al nmero de bits.En funcin del nmero de N bits almacenados se define un registro de N bits, estos elementos estn constituidos por flip flops de tipo D disparo por flanco. Los registros de desplazamiento son elementos en los cuales sus componentes internos estn conectados de manera tal que los datos se puedan desplazar de uno en uno.El registro PIPO en un registro convencional de N bits, se introducen los datos en N entradas y se leen en N salidas en paralelo: Parallel IN; Parallel OUTEn esta prctica se realiz la implementacin de una ALU (Unidad Aritmtica Lgica) en VHDL, se control un bus de datos de 4 bits mediante 3 registros a los que entran y se refieran a: A, B y el tercero como selectores. Las salidas correspondientes de los registros son a su vez las entradas de la ALU. Para las salidas de la ALU no se toma en cuenta el bit de acarreo, por lo cual solo se trata de 4 bits.

Objetivoa) Desarrollar un programa en VHDL que permita realizar diferentes operaciones matemticas y lgicas que son caractersticas de una ALU (Unidad Aritmtica Lgica).b) Determinar la tcnica ms optimizada para implementacin de circuitos lgicos.

Planteamiento del problemaControlar mediante 3 registros un bus de datos de 4 bits, los cuales ingresarn a cada uno de los registros: uno para A, otro para B y otro como selectores. Estas salidas de los registros sern las entradas de lo que sera una ALU que realice operaciones aritmticas y lgicas. Para la salida de la ALU no se tomar en cuenta el bit de acarreo, por lo tanto esta ser una salida de 4 bits solamente.Tendremos un solo bus de datos de 4 bits y mediante un enable en cada registro, controlaremos el paso de este dato al registro deseado.

Marco TericoLatch Se denomina latch a un elemento de almacenamiento de un bit. Puede conceptualizarse como un mux realimentado. Apenas G se active (en 1), inmediatamente en Q se copia el valor de D. Cuando G se desactiva (va a 0) la salida Q se mantiene capturada (latch) mediante la va de realimentacin.QDG10QDG

Una implementacin directa en base a compuertas es la siguiente:GS2DQS1

Cuando G est alto: Q sigue a D, en forma transparente; en caso contrario, Q permanece estable. El circuito se denomina Latch D esttico, ya que mantiene el dato en Q, mientras G est inactivo, no importando cunto tiempo permanezca bajo (siempre y cuando las fuentes permanezcan aplicadas).Cuando D est alto (y despus de un tiempo, Q tambin estar alto), al ocurrir un canto de bajada en G, se produce una perturbacin (un falso cero) en Q. Esto debido a que las seales S1 y S2 conmuta en tiempos diferentes. Esta perturbacin es inaceptable, pues genera oscilaciones. Sin embargo existen dos dificultades importantes, una de ellas es si el ancho del pulso G es demasiado angosto, esto implicara que el latch no alcanzara a setearse. Otra dificultad, y ms importante, es si D cambia casi al mismo tiempo que el latch (candado) se cierra, con el canto de bajada de G. En este caso no puede determinarse cul ser el valor que ser capturado. Por estas razones, el diseo de dispositivos secuenciales debe garantizar que las entradas sean vlidas y estables durante los perodos en que stas pueden influir sobre el cambio de estado. Para el circuito analizado, estas restricciones son:set-upholdancho pulsoGD

La seal G debe permanecer activa por el tiempo que sea suficiente para que el latch pueda capturar el dato. Esto requiere un ancho mnimo para el pulso G.El tiempo de set-up debe garantizar que el valor de D se haya propagado a travs del lazo de realimentacin antes de que se cierre el latch. El tiempo de hold debe garantizar que el latch est cerrado y Q estable antes de permitir cambios en la entrada D.

Flip-Flop D (Data)Un problema con los FF-RS es la condicin S=1, R=1, una forma de solucionarlo es permitir una sola nica entrada. La salida del FF-D, es siempre igual, al valor ms reciente aplicado a la entrada al dispararse la seal de reloj.Por tanto recuerda y produce la ltima entrada.

Registros de DesplazamientoRegistro: Circuito digital con dos funciones bsicas: almacenamiento de datos y movimiento de datos (Floyd) Es una coleccin de dos o ms biestables tipo-D con una entrada comn. Se utiliza para almacenar una serie de bits relacionados, como un byte (8 bits) de datos.

Registro de desplazamiento: Es todo circuito que transforma un dato en formato serie a formato paralelo o viceversa donde todas las operaciones son sincronizadas por una seal de reloj externa.

Clasificaciones:Segn formato de entradas-salidas:Entrada Serie-Salida Paralelo (Serial In Parallel Out).Entrada Paralelo-Salida Serie (Parallel In Serial Out).Universal (Composicin de los dos anteriores).Entrada Serie-Salida Serie (usado como lnea de retardo)Existen dentro de lo expuesto diferentes tipos de entradas auxiliares tales como cargas (asincrnicas, sincrnicas ambas), reset asincrnico o sincrnico, habilitacin de reloj, etc.Lo mismo con las salidas: hay registros de desplazamiento (RD)

ALU (Unidad aritmtico-lgica)La ALU (unidad aritmtico-lgica) es el dispositivo que se encarga de realizar:a) Operaciones aritmticas (suma, resta, etc.).b) Operaciones lgicas (AND, OR, XOR, etc.).

Las seales de entrada son: las lneas de control que determinan la operacin a implementar; las lneas de datos de entrada correspondiente a los argumentos de la operacin (registros de entrada)Las seales de salida son: las lneas de datos donde se retorna el resultado de la operacin implementada (registro de salida); los indicadores de estado (o flags), que indican la validez e informacin adicional de la operacin (desbordamiento, acarreo, signo, cero, etc)

Multiplexor El multiplexor (mux) tiene 2n entradas de datos, n bits de seleccin y una salida. Los bits de seleccin se usan para decidir cul entrada pasa a la salida. Mux 2 a 1 Mux 4 a 1

ALU de 1 bit Dos operaciones: AND y OR. Un bit para seleccionar la operacin.

El siguiente paso es agregar la suma. Se agrega un sumador completo al diseo anterior. 3 operaciones: AND, OR y suma. 2 bits para seleccionar la operacin.

Agregar la resta a b. a b a + b si b est en complemento a 2. El complemento a dos de b se encuentra sumando 1 al complemento a uno de b. El complemento a uno de b se encuentra negando a b. a b = a + (b) = a + (b + 1) = a + b + 1 El 1 de la suma viene en Carry In. 4 operaciones: AND, OR, suma y resta. 2 bits para seleccionar la operacin. Un bit extra para diferenciar entre la suma y la resta. En la resta, Carry In es 1.

Agregar la operacin NOR: (a + b) Ley de De Morgan: (a + b) = a b La ALU ya puede calcular a b y b. Hace falta poder calcular a. 5 operaciones: AND, OR, NOR, suma y resta. 2 bits para seleccionar la operacin. B invert diferencia entre la suma y la resta. En la resta, Carry In es 1. A invert y B invert diferencian entre AND y NOR.

Variando A invert y B invert permite generar: 8 operaciones lgicas. 5 operaciones aritmticas.

Display de 7 segmentos

Eldisplay de 7 segmentos o visualizador de 7 segmentoses un componente que se utiliza para larepresentacin de nmerosen muchos dispositivos electrnicos debido en gran medida a su simplicidad. Aunque externamente su forma difiere considerablemente de un diodo LED (diodos emisores de luz) tpico, internamente estn constituidos por una serie de diodos LED con unas determinadas conexiones internas, estratgicamente ubicados de tal forma que forme un nmero 8.A cada uno de los segmentos que forman el display se les denomina a, b, c, d, e, f y g y estn ensamblados de forma que se permita activar cada segmento por separado consiguiendo formar cualquier dgito numrico. A continuacin se muestran algunos ejemplos:Si se activan o encienden todos los segmentos se forma el nmero "8".Si se activan slo los segmentos: "a, b, c, d, e, f," se forma el nmero "0".Si se activan slo los segmentos: "a, b, g, e, d," se forma el nmero "2".Si se activan slo los segmentos: "b, c, f, g," se forma el nmero "4".Muchas veces aparece un octavo segmento denominado p.d. (punto decimal).Los diodos led trabajan a baja tensin y con pequea potencia, por tanto, podrn excitarse directamente con puertas lgicas. Normalmente se utiliza un codificador (en nuestro caso decimal/BCD) que activando un solo pins de la entrada del codificador, activa las salidas correspondientes mostrando el nmero deseado. Recordar tambin que existen display alfanumricos de 16 segmentos e incluso de una matriz de 7*5 (35 bits).Los hay de dos tipos:nodo comn y ctodo comn.En los de tipo de nodo comn, todos los nodos de los leds o segmentos estn unidos internamente a una patilla comn que debe ser conectada a potencial positivo (nivel 1). El encendido de cada segmento individual se realiza aplicando potencial negativo (nivel 0) por la patilla correspondiente a travs de una resistencia que lmite el paso de la corriente.En los de tipo de ctodo comn, todos los ctodos de los leds o segmentos estn unidos internamente a una patilla comn que debe ser conectada a potencial negativo (nivel 0). El encendido de cada segmento individual se realiza aplicando potencial positivo (nivel 1) por la patilla correspondiente a travs de una resistencia que lmite el paso de la corriente.Los segmentos pueden ser de diversos colores, aunque el display ms comnmente utilizado es el de color rojo, por su facilidad de visualizacin.Tambin existen displays alfanumricos de 14 segmentos que permiten representar tanto letras como nmeros. El display de 14 segmentos tuvo xito reducido y slo existe de forma marginal debido a la competencia de la matriz de 5x7 puntos.Si bien hoy este tipo de displays parecen antiguos u obsoletos. Ya en la actualidad es muy comn el uso de vistosos displays grficos, incluso con posibilidad de colores a un bajo costo. Sin embargo el display de 7 segmentos sigue siendo una excelente opcin en ciertas situaciones en las que se requiera mayor poder lumnico y trabajo en reas hostiles, donde los displays podran verse afectado por condiciones ambientales adversas. An no se ha creado otro dispositivo de sealizacin que rena caractersticas como este en cuanto a: Buen poder lumnico, claridad, sencilla implementacin, bajo costo y robustez.

Desarrollo del sistemaLa prctica la dividimos en tres partes, la primera consista en hacer los registros con Flip-flops D de tipo PIPO, es decir, paralelo de entrada-paralelo de salida; la segunda parte consista en hacer la ALU en VHDL con ayuda de la FPGA y la ltima parte fue una parte adicional que no se nos requiri en la prctica la cual consisti en conectar las salidas a un display de manera que el resultado lo pudiramos leer de manera ms cmoda en BCD, en vez de traducir el resultado.Los registros los armamos con el integrado 7475, el cual contiene 4 latches D con 2 entradas habilitadoras ya que estn conectados 1 habilitador para 2 latches. Para la prctica requerimos de 3 integrados ya que necesitamos 12 entradas: 4 entradas para el primer nmero(al que llamamos 'A'), 4 entradas para el segundo nmero (que nombramos 'B') y 4 para el selector de operaciones. El cableado consisti en conectar todos las entradas 'D' de los latches nmero 1 de los 3 integrados, lo mismo con los dems latches, de si introducamos una seal a un latch, esta tambin apareciera en el mismo latch del siguiente integrado. Posteriormente conectamos los 2 habilitadores del mismo integrado y lo mandamos a un switch, hicimos esto para controlar los 4 latches con 1 solo habilitador. El registro consista en mandar la misma seal de 4 bits a las 4 entradas, pero con ayuda del habilitador se pudo tener diferentes salidas en los latches guardando o dejando cambiar las seales. Nuestras 12 salidas que correspondan a 2 nmeros de 4 bits cada uno y un selector tambin de 4 bits correspondan a las entradas de la ALU.La ALU (Unidad Aritmtica Lgica) se construy en VHDL, primero con la ayuda del programa simulador Active-Hdl. La ALU se divide en dos partes, la parte aritmtica la cual consiste en tomar las seales de entrada como nmeros y hacer una operacin especifica como suma, resta, suma 1, resta 1; y la parte lgica que consiste en tomar las seales de entrada como bits independientes y hacer operaciones lgicas como AND, OR, XOR, XNOR, NAND o NOT bit a bit. Para seleccionar la operacin que queramos hacer utilizamos otras 4 entradas en donde el Bit ms significativo seleccionaba si la operacin era lgica o aritmtica (Las operaciones al igual que el cdigo se anexan en la seccin siguiente) Una vez simulado en cdigo proseguimos a pasarlo a la FPGA con ayuda del software de Xilinx ISE. En un principio decidimos manejar como seales el resultado de las operaciones y las salidas asignarlas slo a los display, sin embargo concluimos que era mejor declararlas como INOUT de tal manera que tambin mostrramos mediante leds la salida, esto con el fin de ver el resultado de las operaciones lgicas y no confundirnos con el display.Por ltimo, las salidas las asignamos a leds, pero tambin utilizamos un convertidor de binario a 7 segmentos (el cual tambin anexamos en la seccin siguiente). Debido a que nuestra salida slo contaba con 4 bits, es decir sin bit de acarreo para sumas que dieran resultados superiores a 15, solo necesitamos programar el primer display de 0 a 9 y; el segundo solo 0 y 1 con la finalidad de que el primero expresara las unidades y el segundo el de las decenas.

Anlisis de ResultadosPara la implementacin de la ALU, utilizamos la FPGA Spartan 3E. El cdigo en VHDL de la ALU qued de la siguiente manera:

Mostrando el correcto funcionamiento de la ALU:

Como paso extra, convertimos las salidas de la ALU a entradas para un display de 7 segmentos ctodo comn. El cdigo y su correcto funcionamiento se muestran a continuacin:

Al final mapeamos la ALU con el convertidor de la siguiente manera:

Como se logra ver, cada parte de la prctica funciona correctamente.

ConclusionesEsta prctica nos ayud para entender mejor el funcionamiento y aplicacin de los registros. Hemos aprendido como utilizar los latches y flip-flops, y que debemos ocupar flip-flops cuando queremos guardar la informacin por un tiempo determinado (medido por flancos de reloj) y ocupemos latches en caso de que lo que se necesite sea retener la informacin por tiempo indeterminado.La prctica tambin nos ayud a reforzar nuestros conocimientos de combinacionales, ya que la ALU es puramente combinacional y recordamos las operaciones lgicas simples para comprobar que los resultados eran correctos.Por ltimo aprendimos que lo ms importante a la hora de buscar errores es el cableado, ya que nos ocurri que los latches no funcionaban adecuadamente y tuvimos que probar los latches para ver que funcionaran correctamente, sin embargo fue por un cable que por cierto estaba bien conectado, pero por alguna razn hacia falso, era el culpable del error.Referencias1. John F. Wakerly, Diseo Digital: Principios y Prcticas Tercera Edicin, Editorial Prentice Hall Pearson Educacin, 2001, Mxico1. Registros de desplazamiento, Introduccin a los Sistemas Lgicos y Digitales 2009, Sergio Noriega, www.ing.unlp.edu.ar/islyd/Tema%206%20Registros%20de%20Desplazamiento%202009.pdf1. Sistemas Digitales. R. Tocci, N. Widmer, G. Moss. Ed. Prentice Hall.1. FLIP-FLOPS (FF), Arturo Guillen, http://www.slideshare.net/arturo979/flip-flops-ff1. Electrnica Digital, Registro, Delgado Migue, 13 de abril de 2012, http://tutoriales-electronica.blogspot.mx/2012/04/registro-de-desplazamiento.html1. Tema 7: Registros y Contadores, Entrena Luis, Lpez Celia, Garca Mario, San Milln Enrique, Universidad Carlos III de Madrid, 2008, http://ocw.uc3m.es/tecnologia-electronica/electronica-digital/espanol_pdf/tema-7.-registros-y-contadores1. ALU Unidad Lgica Aritmtica, http://euler.mat.uson.mx/~havillam/ca/SlidesArq/07%20ALU.ppt[8] WIKIPEDIA, Visualizador de 7 segmentos, http://es.wikipedia.org/wiki/Visualizador_de_siete_segmentos

Apndices