¡Bienvenidos a nuestro nuevo artículo sobre un proyecto apasionante para analizar una ALU de 4 bits! En esta ocasión, exploraremos la profundidad y el funcionamiento de uno de los componentes más esenciales en el mundo de la informática: la Unidad Lógica Aritmética. Descubriremos los entresijos de esta ALU de 4 bits y cómo es capaz de realizar diversas operaciones lógicas y aritméticas de manera eficiente. ¡Prepárense para sumergirse en el fascinante mundo de la tecnología y descubrir cómo funciona una ALU de 4 bits en detalle!
Un proyecto final sobre “Análisis de ALU de 4 bits” presentado por Vasu Singh (de la Universidad NorthCap, Gurugram, Haryana) a extrudesign.com.

1. Introducción
En este proyecto construiremos el corazón de una CPU simple de 4 bits, la ALU (Unidad Aritmética Lógica).
Lo creas o no, las computadoras existieron antes de que existieran los microcontroladores y las CPU. Anteriormente, se construían a partir de piezas discretas, incluidos circuitos integrados y transistores simples.
Podría decirse que las CPU son el corazón de la electrónica moderna, ya sea un dispositivo móvil o un circuito de control de una fábrica. ¿Pero cómo funcionan las CPU? ¿Qué está pasando dentro?
A UPC consta de tres secciones principales: Memoria para variables (registros), Circuito de control (microcódigo)y eso ALU. El ALU (Unidad Aritmético-Lógica) es la parte de una CPU que realiza cálculos y pruebas de estado.
Por ejemploSi desea sumar dos números binarios, la ALU es responsable de producir el resultado. Si su programa necesita ejecutar código cuando dos valores son iguales, es la ALU la que hace la comparación entre los valores y luego establece indicadores si se cumple o no la condición.

Las CPU modernas están compuestas por millones de transistores (¡ahora miles de millones!) y son imposibles de duplicar en casa. Pero una CPU simple (por ejemplo una Z80) sólo tiene 8500 transistores. Las primeras computadoras (como muchas de las mainframes de IBM) se construyeron con chips discretos de las series 4000 y 7400.
Por favor habilite JavaScript
Esto significa que nosotros puede ¡¡¡Construye una CPU en casa!!! Entonces, ¿por qué esperar?
Este proyecto es una ALU discreta de 4 bits construida con chips de la serie 7400.
2. Análisis teórico de ALU de 4 bits.
Dado que este proyecto es bastante complejo, necesitará lo siguiente:
- Comprensión básica de circuitos combinacionales.
- Comprensión básica de las puertas lógicas y su construcción a partir de puertas universales.
2.1 Circuitos combinados
2.1.1. Multiplexor (IC No. – 74151)
El multiplexor o MUX es un conmutador digital, también llamado selector de datos. Circuito con más de una línea de entrada, una línea de salida y más de una línea de selección. Acepta la información binaria de múltiples líneas o fuentes de entrada y, según el conjunto de líneas de selección, una línea de entrada particular se reenvía a una única línea de salida.
La idea básica de la multiplexación se muestra en la siguiente figura, donde los datos de múltiples fuentes se reenvían a una única línea de salida cuando se activa el interruptor de habilitación. Por lo tanto, los multiplexores también se denominan circuitos combinados «muchos a uno».

La siguiente figura muestra el diagrama de bloques de un multiplexor que consta de n líneas de entrada, m líneas de selección y una línea de salida. Con m líneas de selección, el número de líneas de entrada posibles es 2METRO.

2.1.2. Controlador de decodificador (IC No. – 7447)
El descifrador Es un componente esencial en el decodificador BCD a siete segmentos. Un decodificador no es más que un circuito lógico combinacional que se utiliza principalmente para convertir un BCD en un número decimal equivalente.

El diseño y la funcionalidad del circuito dependen principalmente de los conceptos. álgebra de Boole y puertas lógicas.
Se puede construir un circuito de pantalla LED de siete segmentos con ocho LED. Las conexiones comunes son anódicas, en caso contrario catódicas. Una pantalla de siete segmentos con ánodo general incluye 8 pines, donde el séptimo pin son pines de entrada etiquetados de la a a la g y el octavo pin está conectado al suministro.
2.1.3. Sumador BCD (formado por sumadores binarios/paralelos de 4 bits) (IC No. – 7483)
Si la salida de la suma de 4 bits no es un dígito BCD válido o si se genera el acarreo C3, se debe sumar el número decimal 6 (0 1 1 0) a la suma para obtener el resultado correcto. La siguiente figura muestra el sumador BCD de 4 bits. El sumador BCD se puede conectar en cascada para sumar números 1009 de varios dígitos conectando el acarreo de una etapa con el acarreo de la siguiente etapa.

2.2 Puertas lógicas
Una puerta lógica es un dispositivo que actúa como bloque de construcción para circuitos digitales. Realizan funciones lógicas básicas que son fundamentales para los circuitos digitales. La mayoría de los dispositivos electrónicos que utilizamos hoy en día tienen algún tipo de puerta lógica.
Las puertas lógicas se pueden utilizar, por ejemplo, en tecnologías como teléfonos inteligentes, tabletas o dispositivos de almacenamiento.
En un circuito, las puertas lógicas toman decisiones basadas en una combinación de señales digitales provenientes de sus entradas. La mayoría de las puertas lógicas tienen dos entradas y una salida. En un momento dado, cada terminal se encuentra en uno de dos estados binarios: INCORRECTO o VERDADERO. “Falso” significa 0 y en realidad significa 1. Dependiendo del tipo de puerta lógica utilizada y de la combinación de entradas, la salida binaria difiere.
Hay 7 puertas lógicas básicas:
AND (7408), OR (7432), XOR (7486), NOT (7404), NAND (7400), NOR (7402) y XNOR (74266).

Estructura básica de una puerta Y y O hecha a partir de puertas universales (NAND o NOR)

Necesitamos dos puertas NAND para crear una puerta AND. La primera puerta NAND devuelve ALTO cuando cualquiera de las entradas está BAJA o ambas entradas están BAJAS. Luego, la segunda puerta NAND se configura como una puerta NOT para invertir la salida de la primera puerta NAND.

Asimismo, ahora necesitamos dos puertas NOR para crear una puerta OR. La primera puerta NOR devuelve BAJO si alguna de las entradas es ALTA o ambas entradas son ALTAS. Luego, la segunda puerta NOR se configura como una puerta NOT para invertir la salida de la primera puerta NOR.
Pantalla de 2,3 LED y 7 segmentos
Un diodo emisor de luz (LED) es un dispositivo semiconductor que emite luz cuando una corriente eléctrica lo atraviesa. (Línea más larga – ánodo y línea más corta – cátodo)

Para display de 7 segmentos – Ver 2.1.2
3. Análisis experimental de ALU de 4 bits.
3.1 Requisitos del proyecto
3.1.1 Hardware
Varias puertas lógicas, mux, placa de pruebas, sumador binario de 4 bits, controlador decodificador, cable de pantalla LED de 7 segmentos LED
3.1.2 Software:
Hacer CAD: Obtenga una estimación de la estructura interna del IC y el diagrama de pines de los circuitos combinados.
Fritzing: ¿Tiene una estimación de los conectores de hardware en la placa?
Proteo: Tienes una idea de cómo diseñar el circuito en varios pasos.
3.2 Algunas fotos de los primeros intentos.

(Error: Las entradas de las puertas NOR están conectadas en orden inverso y no se realiza la selección de las salidas del mux.)

(Error: uso incorrecto de conceptos al utilizar puertas lógicas. Desventaja: algunos circuitos integrados no están disponibles)

Primer intento exitoso…
(Beneficio: aprenda a diseñar un circuito adecuado dividiéndolo en dos o cuatro subpartes y comprenda adecuadamente cómo funciona todo el circuito).
3.3 Diagrama de bloques

3.4 Diagrama de flujo

3.5 Depuración en hardware
Ahora que tenemos una idea adecuada del diseño y funcionamiento del circuito en el software Proteus, es el momento de implementar el circuito en el hardware.
Esta vez creamos un circuito limpio y ordenado en 3 placas de pruebas diferentes.
La imagen correspondiente se puede encontrar a continuación:



(Error: Incluso después de 6 intentos diferentes no es posible obtener las salidas correctas en la pantalla LED…)
(Resultado final: Al conectar el 3er.aprox Pin de ambos controladores de decodificador en BAJO, encontré que las pantallas LED de 7 segmentos están defectuosas, los 7 segmentos LED no se encienden…)
3.6 Diseño final de la ALU

Diploma
El diseño de ALU de 4 bits se desarrolla utilizando el controlador decodificador de subbloques, un multiplexor 8:1 y puertas como NAND, AND, OR e inversor, etc.
La ALU realiza un total de siete operaciones, de las cuales seis son operaciones lógicas y una es operación aritmética. La única operación aritmética realizada es el sumador BCD y las seis operaciones lógicas son AND, OR, XOR, NAND, NOR, XNOR y NOT.
Alcance futuro
Una vez completada la ALU, ahora podemos sumar matemáticamente y procesar lógicamente los dos correspondientes de los números de 4 bits dados. ¡Pero esta ALU es sólo una pequeña parte del rompecabezas!
Para nuestros próximos pasos, podemos agregar un restador, agregar un registro a la salida de la ALU y retroalimentarlo. Luego podríamos crear un controlador de memoria que pudiera transmitir números desde un chip y realizar operaciones con esos números. En este punto podríamos dejar que los números almacenados en la memoria decidan qué operación realizará la ALU.
¡¡Aquí es donde deja de ser una ALU y se convierte en una simple CPU!!
Crédito: El proyecto de análisis de ALU de 4 bits está dirigido por Vasu Singh y Dinesh Joon bajo el liderazgo del Dr. Sharda Vashist y el Dr. Vandana Khanna, Departamento de Ingeniería Informática, Universidad NorthCap, Gurugram, Haryana, INDIA.
Introducción
En este proyecto, vamos a construir el corazón de una CPU de 4 bits simple, la Unidad Aritmética Lógica (ALU, por sus siglas en inglés).
Puede resultar o no sorprendente, pero los computadores existían antes de que los microcontroladores y las CPUs estuvieran disponibles. Solían construirse utilizando partes discretas, incluyendo CI simples y transistores.
Las CPUs son consideradas el centro de la electrónica moderna, ya sea en un dispositivo móvil o en un circuito de control para una fábrica. Pero ¿cómo funcionan realmente las CPUs? ¿Qué sucede en su interior?
Una CPU está compuesta por tres secciones principales: memoria para variables (registros), circuito de control (microcódigo) y la ALU. La ALU es la parte de una CPU que realiza cálculos y pruebas de condición. Por ejemplo, si deseas sumar dos números binarios, es la ALU la responsable de producir el resultado. Si tu programa necesita ejecutar algún código si dos valores son iguales, es la ALU la que realiza la comparación entre los valores y establece banderas si se cumple o no la condición.
Las CPUs modernas están compuestas por millones de transistores (¡incluso miles de millones hoy en día!) y no se pueden duplicar en casa. Pero una CPU simple (como por ejemplo un Z80) tiene solo 8500 transistores. En el pasado, las computadoras (como muchas de las computadoras principales IBM) se construían con chips discretos de las series 4000 y 7400.
¡Esto significa que podemos construir una CPU en casa! ¿Por qué esperar?
Análisis teórico del ALU de 4 bits
Debido a que este proyecto es bastante complejo, necesitarás lo siguiente:
Comprensión básica de circuitos combinacionales
Comprensión básica de compuertas lógicas y su construcción a partir de compuertas universales
Circuitos combinacionales
Multiplexor (CI NO – 74151)
El multiplexor o MUX es un interruptor digital, también llamado selector de datos. Es un circuito con más de una línea de entrada, una línea de salida y más de una línea de selección. Acepta la información binaria de varias líneas o fuentes de entrada y, dependiendo del conjunto de líneas de selección, una línea de entrada en particular se enruta hacia una única línea de salida.
La idea básica de la multiplexación se muestra en la siguiente figura, en la que datos de varias fuentes se enrutan hacia la línea de salida única cuando el interruptor de habilitación está activado. Por lo tanto, los multiplexores también se llaman circuitos combinacionales de “muchos a uno”.
La siguiente figura muestra el diagrama de bloques de un multiplexor que consta de n líneas de entrada, m líneas de selección y una línea de salida. Si hay m líneas de selección, entonces el número posible de líneas de entrada es 2^m.
Decodificador (CI NO – 7447)
El decodificador es un componente esencial en el decodificador BCD de siete segmentos. Un decodificador no es más que un circuito lógico combinacional que se utiliza principalmente para convertir un número BCD en un número decimal equivalente.
El diseño del circuito, así como su funcionamiento, dependen en gran medida de los conceptos del álgebra booleana y las compuertas lógicas.
Se puede construir un circuito de visualización de siete segmentos con ocho LED. Los terminales comunes pueden ser ánodo o cátodo. Una pantalla de siete segmentos de ánodo común incluye 8 pines donde 7 pines son pines de entrada marcados de la “a” a la “g” y el octavo pin se conecta a la alimentación.
Sumador BCD (Formado por sumadores binarios / paralelos de 4 bits) (CI NO – 7483)
En esto, si la salida de la suma de 4 bits no es un dígito BCD válido, o se genera el acarreo C3, entonces se debe agregar el número decimal 6 (0 1 1 0) a la suma para obtener el resultado correcto. La siguiente figura muestra un sumador BCD de 4 bits. Se pueden encadenar sumadores BCD para sumar números de varios dígitos. Conecta el acarreo de una etapa con el acarreo de la siguiente etapa.
Compuertas lógicas
Una compuerta lógica es un dispositivo que actúa como un bloque de construcción para los circuitos digitales. Realiza funciones lógicas básicas que son fundamentales para los circuitos digitales. La mayoría de los dispositivos electrónicos que utilizamos hoy en día tienen algún tipo de compuertas lógicas.
Por ejemplo, las compuertas lógicas se pueden utilizar en tecnologías como smartphones, tablets o en dispositivos de memoria.
En un circuito, las compuertas lógicas toman decisiones basadas en una combinación de señales digitales provenientes de sus entradas. La mayoría de las compuertas lógicas tienen dos entradas y una salida. En cada momento dado, cada terminal se encuentra en una de las dos condiciones binarias: falsa o verdadera. Falsa representa 0 y verdadera representa 1. Dependiendo del tipo de compuerta lógica utilizada y de la combinación de entradas, la salida binaria será diferente.
Existen 7 compuertas lógicas básicas: AND (7408), OR (7432), XOR (7486), NOT (7404), NAND (7400), NOR (7402) y XNOR (74266).
Construcción básica de compuertas AND y OR a partir de compuertas universales (NAND y NOR respectivamente)
Necesitamos dos compuertas NAND para crear una compuerta AND. La primera compuerta NAND devuelve un estado ALTO si una de las entradas es BAJA o si ambas son BAJAS. Luego, la segunda compuerta NAND se configura como una compuerta NOT para invertir la salida de la primera compuerta NAND.
Del mismo modo, ahora necesitamos dos compuertas NOR para crear una compuerta OR. La primera compuerta NOR devuelve un estado BAJO si una de las entradas es ALTA o si ambas son ALTAS. Luego, la segunda compuerta NOR se configura como una compuerta NOT para invertir la salida de la primera compuerta NOR.
LED y visualización de 7 segmentos
Un diodo emisor de luz (LED) es un dispositivo semiconductor que emite luz cuando una corriente eléctrica pasa a través de él. (Anodo – Terminal más largo y Cátodo – Terminal más corto)
Para la visualización de 7 segmentos, consulta la sección 2.1.2.
Análisis experimental del ALU de 4 bits
Requisitos previos del proyecto
Hardware
Diferentes compuertas lógicas, multiplexores, placas de pruebas, sumador binario de 4 bits, decodificador, visualización de 7 segmentos, cables LED.
Software
Tinker CAD: Para tener una idea sobre la estructura interna y el diagrama de pines de los circuitos combinacionales.
Fritzing: Para tener una idea sobre las conexiones de hardware en la placa de pruebas.
Proteus: Para tener una idea de cómo diseñar el circuito en varias etapas.
Algunas imágenes de los primeros intentos
(Fallo: las entradas de las compuertas NOR se conectaron en orden inverso y no se realizó la selección de las salidas del multiplexor)
(Fallo: mal uso de los conceptos al utilizar las compuertas lógicas, desventaja: algunos CI no están disponibles)
Primer intento exitoso…
(Ventaja: aprender cómo diseñar un circuito adecuado dividiéndolo en 2 o 4 subpartes, entender adecuadamente el funcionamiento de todo el circuito)
Diagrama de bloques
(Diagrama de bloques del circuito)
Diagrama de flujo
(Diagrama de flujo del proceso)
Depuración en hardware
Después de tener una idea adecuada sobre el diseño y el funcionamiento del circuito en el software Proteus, llega el momento de implementar el circuito en hardware.
Esta vez, construimos un circuito ordenado en 3 placas de pruebas diferentes.
Se proporciona una imagen para cada uno:
(Fallo: No se pueden obtener salidas adecuadas en la visualización de 7 segmentos incluso después de 6 intentos diferentes…)
(Resultado final: Al conectar el tercer pin de ambos decodificadores en BAJO, descubrimos que las visualizaciones de 7 segmentos están defectuosas, no se iluminan los 7 segmentos…)
Diseño final del ALU
Conclusión
El diseño del ALU de 4 bits se ha realizado utilizando los sub-bloques del decodificador, el multiplexor de 8:1 y compuertas como NAND, AND, OR e inversores, etc…
El ALU realiza un total de siete operaciones, de las cuales seis son operaciones lógicas y una es una operación aritmética. La operación aritmética realizada es el sumador BCD y las seis operaciones lógicas son AND, OR, XOR, NAND, NOR, XNOR y NOT.
Alcance futuro
Con el ALU completado, ahora podemos sumar matemáticamente y procesar lógicamente cualquier par de números de 4 bits dados. ¡Pero este ALU es solo una pequeña pieza del rompecabezas!
En nuestros próximos pasos, podemos agregar un restador, podríamos conectar un registro a la salida del ALU y retroalimentarlo. Luego podríamos crear un controlador de memoria que podría transmitir números desde un chip y realizar operaciones con esos números. En este punto, los números almacenados en memoria podrían decidir qué operación realizará la ALU.
¡Aquí es donde deja de ser un ALU y se convierte en una CPU simple!
Crédito: El proyecto sobre el análisis del ALU de 4 bits fue completado por Vasu Singh y Dinesh Joon bajo la guía de la Dra. Sharda Vashist y la Dra. Vandana Khanna, del departamento de ingeniería informática de la Universidad NorthCap, Gurugram, Haryana, INDIA.