Вы находитесь на странице: 1из 4

ARQUITECTURA DE COMPUTADORES I PROYECTO FINAL COMPARADOR DE BINARIOS

CHRISTIAN CAMILO CORONADO FERIA 20061020013 OMAR ORLANDO AMAYA 20061020001 Grupo 1

UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS FACULTAD DE INGENIERIA PROYECTO CURRICULAR DE INGENIERIA DE SISTEMAS Bogota Mayo de 2009

PROBLEMA: Comparar Dos Nmeros Binarios.

El problema que presentamos es el de poder hacer una comparacin entre dos nmeros binarios y mostrar en salida si el un numero es mayor, menor o igual al otro. Para esto planteamos la solucin mediante el simulador de circuitos modelsim, en el cual el problema se desarrollo de la siguiente manera: Lo primero que necesitamos son dos entradas, que serian los dos nmeros a comparar, los cuales se plantearan como vectores de x bits (para el ejemplo propuesto lo planteamos para dos nmeros de 8bits, pero modificarlo para nmeros de mas o menos bits es relativamente sencillo); tambin necesitaremos tres salidas que representaran el mayor que, menor que y el igual que: Estas entradas y salidas las declaramos dentro de una entidad ( ENTITY) que hemos llamado Comparador3b, para que esta funcione correctamente debemos utilizar las libreras adecuadas:

LIBRARY IEEE; USE IEEE.STD_LOGIC_1164 .ALL; ENTITY Comparador3b IS

En la primera parte del cdigo llamamos las libreras que vamos a utilizar, en este caso solo se utilizara la IEEE.

En este ejemplo, svE1 y svE2 son los dos nmeros a comparar, cabe PORT ( destacar que el programa compra el svE1 contra el svE2 en un solo sentido; estos como se muestra son svE1, svE2: IN std_logic_vector (7 DOWNTO 0); ventores de 8Bits ( 7 DOWNTO 0). sIgual, smMyor y sMenor son las tres sIgual, sMayor, sMenor: OUT std_logic); salidas para identificar la comparacin. END Comparador3b;

Para el diseo de la arquitectura ( ARCHITECTURE) se tomaron en cuenta los tres casos posibles que pueden resultar de la comparacin, mayor, menor, igual, y se efecto la comparacin directa por medio de los operadores correspondientes ( >, <, = ) donde las salidas se manejan mediante sentencias if else:

ARCHITECTURE Comparador3bArch OF Comparador3b IS BEGIN Compara:PROCESS(svE1, svE2) BEGIN IF (svE1 = svE2) THEN sIgual <= '1'; ELSE sIgual <= '0'; END IF; IF (svE1 > svE2) THEN sMayor <= '1'; ELSE sMayor <= '0'; END IF; IF (svE1 < svE2) THEN sMenor <= '1'; ELSE sMenor <= '0'; END IF; END PROCESS Compara; END Comparador3bArch; De nuevo en el ejemplo propuesto la arquitectura algo simple ya que el programa como tan realiza la comparacin de los nmeros de 8 bits completos y no toca programar una comparacin bit a bit, el cdigo de la comparacin esta entre un PROCESS que toma como parmetros las entradas del sistema y as cada ves que una de estas cambie entonces la comparacin se vuelva a efectuar automticamente. Los IF ELSE son sensillos al solo manejar en que momento se enciende una o la otra salida dependiendo del resultado de la comparacin.

Realizando la simulacin del problema y dndole valores a cada entrada que varen en el tiempo, esto a cada bit de los nmeros a comparar, se logra una simulacin que tome casi todas las combinaciones posibles de nmeros y la salida adecuada en cada situacin: