Está en la página 1de 3

Unidad Aritmética Lógica (ALU) para proyecto identificador de números primos

Teniendo en cuenta nuestro algoritmo utilizaremos solamente 3 operaciones aritméticas las cuales
son suma, resta y para la operación de modulo utilizaremos la división.

Tenemos 2 entradas de 4 bits que representaran los números a operar

Estas son llamadas número A y numero B además de una salida de 5 bits para el resultado.

También se incorporó una entrada de 3 bits llamada código op que nos sirve para ingresar el
código de la operación que se va a realizar entre los 2 números de las entradas

En nuestro caso son:

código op
operación en decimal
en binario
suma 000 0
resta 001 1
división 010 2

Teniendo en cuenta estos parámetros se diseñó la siguiente ALU

Figura .1 (ALU para sistema verificador de números primos: fuente elaboración propia)
Para crear este diseño lo primero que se realizo fue implementar las operaciones por medio de
sub circuitos de logisim que los encontramos en la librería de aritmética

Figura. 2 (librería aritmética logisim: fuente elaboración propia)

A continuación conectamos nuestros registros número A y numero B a las correspondientes


entradas de los sub circuitos de cada operación y las salidas de estos se conectan a un multiplexor
con entrada de 3 bits por medio del cual podremos direccionar que operación ver en la salida
resultado, esto de acuerdo al número que pongamos en el registro de entrada código op.

En la salida del multiplexor se implementó un extensor de 4 a 5 bits para poder visualizar


resultados mayores a 15 (1111)

Figura. 3 (multiplexor con extensor de 4 a 5 bits: fuente elaboración propia)


Para el sub circuito división en el pin inferior que nos muestra el residuo se implementó un
pequeño circuito lógico compuesto de una compuerta or y una compuerta and que van
conectados a una salida que utilizaremos como bandera (flag) ,la cual se pondrá en 1 en caso que
la división tenga residuo

Esta bandera la llamamos modulo

También se incorporó un sub circuito comparador que verifica si el número ingresado en la


entrada código op es igual a un valor constante que para este caso será 2 (010) que corresponde al
código de la operación división

Esto para evitar que la bandera (modulo) se active cuando estamos haciendo operaciones
diferentes a la división

Figura .4 (circuito para implementar bandera (flag) con circuito comparador y compuertas lógicas: fuente elaboración
propia)

Referencias:

http://www.cburch.com/logisim/docs/2.1.0-es/libs/arith/divider.html

https://www.youtube.com/watch?v=YygPpWjNWts

También podría gustarte