BarajasOrozco FranciscoJavier8
BarajasOrozco FranciscoJavier8
BarajasOrozco FranciscoJavier8
Practica 8
ALU
Alumno:
Francisco Javier Barajas Orozco 215516445
Sección: D02
5 de Noviembre del 2022
INDICE
Descripción general……………………………………………………………….. 3
Marco teórico…..…………………………………………………………………… 3-4
Descripción del circuito…………….…………………………………………….. 5
Metodología y diagramas
comportamentales………………………………………………………………….. 6-
11
Conclusiones……………….………………………………………………………... 12
Bibliografía……………….………………………………………………………….. 12
Descripción general:
Esta práctica consiste en programar un integrado ALU el cual realizara las operaciones
lógicas AND, OR Y XOR y las operaciones aritméticas A+B, A-B con longitudes de 5 bits.
Marco teórico:
la unidad aritmética lógica o unidad aritmético-lógica, también conocida como ALU (siglas
en inglés de arithmetic logic unit), es un circuito digital que realiza operaciones aritméticas
(suma, resta) y operaciones lógicas (SI, Y, O, NO) entre los valores de los argumentos
(uno o dos)
Por mucho, los circuitos electrónicos más complejos son los que están construidos dentro
de los chips de microprocesadores modernos. Por lo tanto, estos procesadores tienen
dentro de ellos un ALU muy complejo y potente. De hecho, un microprocesador moderno
(y los mainframes) puede tener múltiples núcleos, cada núcleo con múltiples unidades de
ejecución, cada una de ellas con múltiples ALU.
Muchos otros circuitos pueden contener en el interior una unidad aritmético
lógica: unidades de procesamiento gráfico como las que están en
las GPU modernas, FPU como el viejo coprocesador matemático 80387, y procesadores
digitales de señales como los que se encuentran en tarjetas de sonido, lectoras de CD y
los televisores de alta definición. Todos estos tienen en su interior varias ALU potentes y
complejas.
Sistemas numéricos
Una ALU debe procesar números usando el mismo formato que el resto del circuito digital.
Para los procesadores modernos, este formato casi siempre es la representación
del número binario de complemento a dos. Las primeras computadoras usaron una amplia
variedad de sistemas de numeración, incluyendo complemento a uno, formato signo-
magnitud, e incluso verdaderos sistemas decimales, con diez tubos por dígito.
Las ALU para cada uno de estos sistemas numéricos mostraban diferentes diseños, y
esto influenció la preferencia actual por el complemento a dos, debido a que ésta es la
representación más simple, para el circuito electrónico de la ALU, para calcular adiciones,
sustracciones, etc.
La ALU se compone básicamente de: Circuito Operacional, Registros de
Entradas, Registro Acumulador y un Registro de Estados, conjunto de registros que hacen
posible la realización de cada una de las operaciones.
La mayoría de las acciones de la computadora son realizadas por la ALU. La ALU toma
datos de los registros del procesador. Estos datos son procesados y los resultados de
esta operación se almacenan en los registros de salida de la ALU. Otros mecanismos
mueven datos entre estos registros y la memoria.
Una unidad de control controla a la ALU, al ajustar los circuitos que le señala a la ALU qué
operaciones realizar.
Operaciones simples
La mayoría de las ALU pueden realizar las siguientes operaciones:
Operaciones aritméticas de números enteros (adición, sustracción, y a
veces multiplicación y división, aunque esto es más complejo)
Operación lógica de bits (AND, NOT, OR, XOR, XNOR)
Operación de desplazamiento de bits (Desplazan o rotan una palabra en un
número específico de bits hacia la izquierda o la derecha, con o sin extensión de
signo). Los desplazamientos pueden ser interpretados como multiplicaciones o
divisiones por 2.
Operaciones complejas
Un ingeniero puede diseñar una ALU para calcular cualquier operación, sin importar lo
compleja que sea; el problema es que cuanto más compleja sea la operación, tanto más
costosa será la ALU, más espacio usará en el procesador, y más energía disipará, etc.
Por lo tanto, los ingenieros siempre calculan un compromiso, para proporcionar
al procesador (u otros circuitos) una ALU suficientemente potente para calcular rápido,
pero no de una complejidad de tal calibre que haga una ALU económicamente
prohibitiva. Imagina que necesitas calcular, digamos, la raíz cuadrada de un número; el
ingeniero digital examinará las opciones siguientes para implementar esta operación:
1. Diseñar una ALU muy compleja que calcule la raíz cuadrada de cualquier número
en un solo paso. Esto es llamado cálculo en un solo ciclo de reloj.
2. Diseñar una ALU compleja que calcule la raíz cuadrada con varios pasos (como el
algoritmo que algunos hemos aprendido en la escuela). Esto es llamado cálculo
iterativo, y generalmente confía en el control de una unidad de control compleja
con microcódigo incorporado.
3. Diseñar una ALU simple en el procesador, y vender un procesador separado,
especializado y costoso, que el cliente pueda instalar adicional al procesador, y
que implementa una de las opciones de arriba. Esto es
llamado coprocesador o unidad de coma flotante.
4. Emular la existencia del coprocesador, es decir, siempre que un programa intente
realizar el cálculo de la raíz cuadrada, hacer que el procesador compruebe si hay
presente un coprocesador y usarlo si lo hay; si no hay uno, interrumpir el proceso
del programa e invocar al sistema operativo para realizar el cálculo de la raíz
cuadrada por medio de un cierto algoritmo de software. Esto es
llamado emulación por software.
5. Decir a los programadores que no existe el coprocesador y no hay emulación, así
que tendrán que escribir sus propios algoritmos para calcular raíces cuadradas por
software. Esto es realizado por bibliotecas de software.
Las opciones superiores van de la más rápida y más costosa a la más lenta y económica.
Por lo tanto, mientras que incluso la computadora más simple puede calcular la fórmula
más complicada, las computadoras más simples generalmente tomarán un tiempo largo
porque varios de los pasos para calcular la fórmula implicarán las opciones #3, #4 y #5 de
arriba.
En este diagrama se observa las conexiones con compuertas lógicas y muestra el cómo
actuara cada operación dada, desde las operaciones lógicas hasta las aritméticas.
Metodología:
° Lo primero que se realizo fue ir de paso a paso observando el material otorgado por el
profesor, haciendo paso a paso lo indicado se realizo el programa VHDL que este nos
dejara dar las instrucciones a nuestro integrado para operar.
A este pasos solo se le añadieron las cantidades faltantes dentro de los vectores para
agrandar la cantidad de bits que se podrán usar dentro del integrado.
Ademas se añadirán las operaciones que se realizaran en cada caso de acuerdo a cada
operación( AND, OR , XOR, A+B, A-B) y por medio de una tabla de verdad o
transformaciones lógicas podemos obtener los valores que usaremos para cada
operación.
Cuando se realicen estos cambios en las combinaciones se generara el archivo ioc que
este nos dejara ver como quedan los puentes de silicio que se conectaran a las entradas
y salidas, asi como nos dejara ver como queda las mismas en las posiciones propuestas.
Resultados:
En seguida se muestran los resultados arrojados por el programa, para mostrar nuestros
códigos funcionando y poder ver las conexiones, tanto de los circuitos como el
cronograma de trabajo.
Cronograma
Conexiones con compuertas:
Referencias:
https://hardzone.es/reportajes/que-es/alu/-- Conceptos básicos de ALU, 5 de noviembre
de 2022
https://www.arrow.com/es-mx/categories/standard-and-specialty-logic/specialty-logic/al-
Programacion de alu, 5 de noviembre de 2022