Diseño de ALU en VHDL con Basys-3
Diseño de ALU en VHDL con Basys-3
Práctica No.7
Ing. Electrónica
Diseño digital con VHDL
Unidad 4
Dra. Yazmin Maldonado
Presenta:
Espinosa Alvizo Azul Mar - 19212294
García Ortiz Ricardo - 19212297
Ruiz Pérez Axel Antonio - 19212342
Villela Salinas Vincent Alejandro - 19212358
17/06/2021
Índice general
Índice de figuras .............................................................................................................. 1
1 Introducción .............................................................................................................. 2
2 Marco teórico ............................................................................................................ 3
2.1 VHDL................................................................................................................... 3
2.2 Basys-3 ............................................................................................................... 3
2.3 Señal de reloj ..................................................................................................... 3
2.4 Contador............................................................................................................. 4
2.5 Operaciones aritméticas con números binarios ............................................. 5
2.5.1 Suma binaria ............................................................................................... 5
2.5.2 Resta binaria ............................................................................................... 5
2.5.3 Multiplicación binaria ................................................................................. 6
2.5.4 División binaria ........................................................................................... 6
2.6 Operaciones lógicas .......................................................................................... 7
2.6.1 Complemento a 2 ........................................................................................ 7
2.6.2 AND ............................................................................................................. 7
2.6.3 OR ................................................................................................................ 8
2.6.4 NAND ........................................................................................................... 8
2.7 Unidad Aritmética Lógica (ALU) ....................................................................... 9
2.8 Divisor de frecuencia....................................................................................... 10
2.9 Decodificador ................................................................................................... 11
2.10 Display de 7 segmentos .................................................................................. 11
2.11 Multiplexación .................................................................................................. 13
2.12 Biblioteca ......................................................................................................... 14
2.13 Entidad ............................................................................................................. 14
2.14 Arquitectura ..................................................................................................... 14
2.15 Sentencias condicionales ............................................................................... 15
2.16 Constraints....................................................................................................... 15
3 Objetivo ................................................................................................................... 16
4 Material y equipo .................................................................................................... 17
5 Procedimiento y metodología experimental ......................................................... 18
5.1 Simulación ....................................................................................................... 18
5.2 Constraints....................................................................................................... 21
5.3 Esquemático .................................................................................................... 24
6 Sesión de revisión .................................................................................................. 27
7 Discusión de los resultados experimentales ........................................................ 31
8 Conclusiones .......................................................................................................... 33
9 Referencias ............................................................................................................. 35
Índice de figuras
Figura 2.1: Señal de reloj sincronizada con otra señal que representa a una secuencia de
bits. .................................................................................................................................... 4
Figura 2.2: Diagrama de tiempos. ...................................................................................... 4
Figura 2.3: Valores de suma binaria. ................................................................................. 5
Figura 2.4: Valores de resta binaria. .................................................................................. 6
Figura 2.5: Valores de la multiplicación binaria. ................................................................. 6
Figura 2.6: Primer método de complemento a 2. ............................................................... 7
Figura 2.7: Segundo método de complemento a 2. ............................................................ 7
Figura 2.8: Compuerta AND. .............................................................................................. 8
Figura 2.9: Compuerta OR. ................................................................................................ 8
Figura 2.10: Compuerta NAND. ......................................................................................... 8
Figura 2.11: Símbolo de la ALU. ...................................................................................... 10
Figura 2.12: Decodificador. .............................................................................................. 11
Figura 2.13: Display de siete segmentos. ........................................................................ 12
Figura 2.14: Estructura de ánodo común ......................................................................... 12
Figura 2.15: Display presente en la Basys-3. ................................................................... 12
Figura 2.16: Conexiones del display de siete segmentos a la placa Basys-3. .................. 13
Figura 2.17: Diagrama de tiempos de la multiplexación ................................................... 13
Figura 5.1: Simulación. .................................................................................................... 21
Figura 5.2: Constraints (primera parte). ........................................................................... 22
Figura 5.3: Constraints (segunda parte). .......................................................................... 24
Figura 5.4: Esquemático RTL. ......................................................................................... 26
Figura 6.1: Prueba de suma............................................................................................. 27
Figura 6.2: Prueba de resta. ............................................................................................ 28
Figura 6.3: Prueba de multiplicación. ............................................................................... 28
Figura 6.4: Prueba de división ......................................................................................... 29
Figura 6.5: Prueba de operación lógica AND. .................................................................. 29
1
1 Introducción
2
2 Marco teórico
2.1 VHDL
VHDL es un lenguaje de descripción de circuitos electrónicos digitales que utiliza
distintos niveles de abstracción. El significado de las siglas VHDL es VHSIC (Very
High Speed Integrated Circuits) Hardware Description Language. Esto significa que
VHDL permite acelerar el proceso de diseño. VHDL no es un lenguaje de
programación, por ello conocer su sintaxis no implica necesariamente saber diseñar
con él. VHDL es un lenguaje de descripción de hardware, que permite describir
circuitos síncronos y asíncronos. [1]
2.2 Basys-3
La tarjeta Basys 3 es una plataforma de desarrollo de circuitos digitales lista para
ser utilizada, haciendo uso del FPGA Artix-7 (número de parte XC7A35T-
1CPG236C). La tarjeta incluye por sí sola una gran cantidad de componentes en
ella, para que de esta manera se consiga completar una gran cantidad de diseño
sin requerir hardware adicional, así como las suficientes entradas y salidas para el
FPGA para que los diseños tengan la oportunidad de expandirse si así lo necesitan.
[2]
Una señal de reloj oscila entre el estado alto y el estado bajo, graficando la forma
de una onda cuadrada como la mostrada en la Figura 2.1. Suponiendo la existencia
de una señal A en la cual se produce un cambio de estado cada vez que el reloj
produce un flanco de subida, para cada duración de un bit de la señal de reloj, la
forma de onda A puede encontrarse en un estado alto o un estado bajo. Estos
estados, ya sean altos o bajos representan una secuencia de bits. Un grupo de
3
múltiples bits puede ser utilizado como parte de información binaria, como lo puede
ser un número o una letra. La señal de reloj como en su misma no transporta
información. [3]
Figura 2.1: Señal de reloj sincronizada con otra señal que representa a una secuencia de bits.
2.4 Contador
El objetivo básico de un contador digital es el de contar sucesos. Estos pueden ser
representados ya sea por cambios de nivel o por medio de impulsos, por ejemplo,
los de una señal de reloj. Para que un contador sea capaz de realizar su función,
este debe de tener la capacidad de recordar el número actual, esto con la finalidad
4
de poder avanzar de manera correcta hacia el siguiente número de una determinada
secuencia. [3]
5
Figura 2.4: Valores de resta binaria.
6
2.6 Operaciones lógicas
2.6.1 Complemento a 2
El complemento a 2 es comúnmente utilizado para restar números binarios, y de ahí
parte su necesidad en el sistema binario, pues facilita de gran manera el cómo es
que estos mismos números son operados mediante una resta. Existen dos métodos
para obtener el complemento a 2, los cuales serán explicados a continuación.
2.6.2 AND
La Figura 2.8 muestra la operación lógica AND consiste en presentar una salida
activa siempre y cuando todas las entradas que participen tengan un valor lógico de
1, usualmente se acostumbra trabajar con dos entradas por cuestiones de sencillez
en cuanto a los modelos de compuertas lógicas, pero pueden presentar más de dos
entradas dichas compuertas.
7
Figura 2.8: Compuerta AND.
2.6.3 OR
La operación lógica OR consiste en presentar una salida activa si al menos una de
las entradas presenta un valor lógico de 1; y como se puede deducir, si más de una
entrada presenta el valor lógico de 1, se continúa manteniendo el valor activo en la
salida. Esto se ejemplifica en la Figura 2.9.
2.6.4 NAND
La operación lógica NAND consiste en presentar en la salida un valor invertido
respecto al que se suele encontrar en la compuerta AND, obteniendo una salida
igual a 0 en el caso de que todas sus entradas sean iguales a 1, como se muestra
en la Figura 2.10.
8
2.7 Unidad Aritmética Lógica (ALU)
Es un contador digital capaz de realizar las operaciones aritméticas y lógicas entre
los datos de un circuito; suma, resta, multiplica y divide, así como establece
comparaciones lógicas a través de los condicionales lógicos “si”, “no”, y, “o”. Desde
los circuitos más simples, como relojes y calculadoras, hasta complejos circuitos,
como los microchips actuales, todos incluyen al menos una Unidad aritmético-
lógica, que varía su poder y complejidad según su finalidad. [6]
Existen dos tipos de ALU, siendo de coma fija y de coma flotante, y presentan las
siguientes partes:
1. Operadores aritméticos, lógicos y de desplazamiento.
2. Registros para almacenar datos temporales.
3. Registro de estado.
4. Registro contador de programa.
5. Registro de direcciones de interrupción.
Se encuentra formado por los circuitos necesarios para realizar las operaciones con
los datos provenientes del registro de entrada, también es capaz de aceptar ordenes
como entrada para seleccionar el tipo de operación que debe de realizar. El registro
de entrada contiene los datos u operandos que intervienen en una instrucción antes
de que se realice la operación por parte del circuito operacional, también puede ser
empleado para almacenar los resultados intermedios o finales de las operaciones.
El registro de estado se compone por un grupo de biestables en los que se deja
constancia de condiciones que se dieron en la última operación realizada, y que
resaltaran de importancia para operaciones posteriores, como lo podría ser un
indicador de signo, un acarreo, etc. Finalmente, el registro acumulador contiene los
datos que se tratan en cada momento, ya que almacena los resultados de las
operaciones realizadas por el circuito operacional; está conectado a los registros de
entrada para para de esta manera tener una retroalimentación en el caso de
operaciones encadenadas. También posee una conexión con el bus de datos para
el envío de resultados a la memoria principal o a la unidad de control. El símbolo de
la ALU se encuentra ilustrado en Figura 2.11. [7]
9
Figura 2.11: Símbolo de la ALU.
Tomando como referencia una frecuencia inicial, se usa un contador que cuente los
flancos de bajada o subida según sea el caso, y después de alcanzar un
determinado valor se invierte el estado de la señal resultante. Como se puede ver,
depende del máximo número al que pueda llegar el contador la frecuencia de salida
del divisor.
El valor máximo del contador en base a la señal que se quiere de salida tomando
como referencia los 100 MHz de la placa Basys-3 puede ser calculado en base a la
siguiente fórmula:
10
2.9 Decodificador
El decodificador es un dispositivo que acepta una entrada digital codificada en
binario y activa una salida. Este dispositivo tiene varias salidas, y se activará aquella
que establezca el código aplicado a la entrada. Con un código de n bits se pueden
encontrar posibles combinaciones. Si se tienen 3 bits (3 entradas) serán posibles
23=8 combinaciones. Una combinación en particular activará solo una salida. Por
ejemplo: activar la salida Q2 hay que poner en la entrada el equivalente al número
2 en binario. [8]
11
Figura 2.13: Display de siete segmentos.
2.11 Multiplexación
Cuando se desee mostrar un número de cuatro dígitos en el display, se hace uso
de un circuito controlador de escaneo. Este se encarga de mostrar cada dígito
durante una cuarta parte del tiempo, en repetición y a una velocidad superior a la
que el ojo humano puede percibir, dando de esta manera la ilusión de que los cuatro
dígitos se encuentran encendidos todo el tiempo. A esto se le conoce como
multiplexación.
Los cuatro dígitos deben de encenderse una vez cada 1 ms a 16 ms, para que cada
dígito se vea brillante y continuamente iluminado a frecuencias de refresco de
aproximadamente 1 KHz a 60 Hz. Tomando como referencia un refresco de 62.5
Hz, en donde toda la pantalla se refresca cada 16 ms, debido a que cada dígito dura
encendido una cuarta parte del tiempo, cada dígito se enciende durante 4 ms. Para
conseguir comprender con mayor facilidad esto, se presenta la Figura 2.17, que
ejemplifica la multiplexación. [2]
13
2.12 Biblioteca
Las bibliotecas VHDL permiten almacenar paquetes y entidades de uso común que
pueden ser utilizadas en archivos VHDL. Un archivo de paquete VHDL contiene
elementos de diseño comunes que pueden ser utilizados en los códigos fuente del
archivo VHDL que componen su diseño. [9]
2.13 Entidad
La entidad se encarga de describir la forma externa del circuito. En esta sección del
código, se señalan las entradas y las salidas del diseño. La entidad es análoga a un
símbolo esquemático en los diagramas electrónicos, el cual describe las conexiones
del dispositivo hacia el resto del diseño. Las principales cualidades de la entidad
son que esta define externamente al circuito o subcircuito e indica el nombre y tipo
de datos de entrada y salida.
Los puertos pueden ser declarados como entradas in, salidas out, o entrada-salida
buffer. Un puerto de entrada únicamente puede ser leído y no se pueden realizar
cambios a su valor internamente en la arquitectura. Respecto a los puertos de
salida, solamente se puede escribir en estos y sus valores pueden ser leídos para
ser considerados en otras partes del código. [1]
2.14 Arquitectura
La arquitectura puede ser explicada de la manera más básica como la descripción
del comportamiento del circuito. La arquitectura describe el funcionamiento de la
entidad a la que esta hace referencia, dicho en otras palabras, en esta sección se
describe el funcionamiento de la entidad a la que está asociada haciendo uso del
código en VHDL. La arquitectura define internamente el circuito, en este se pueden
encontrar señales internas, funciones, procedimientos y constantes.
2.16 Constraints
Se encarga de fungir como la parte que une la parte del software, que es el código,
con el hardware, que es la placa Basys-3 y el Artix-7. En este apartado se
especifican explícitamente que pines del Artix-7 son utilizados en qué entradas o
salidas declaradas en la entidad. Sin los constraints el código VHDL realizado no se
podría ejecutar físicamente, ya que no habría un agente encargado de unir el código
con la placa.
15
3 Objetivo
16
4 Material y equipo
● Computadora
● Tarjeta Basys-3
17
5 Procedimiento y metodología experimental
5.1 Simulación
Para comprobar el funcionamiento del código VHDL, se hace uso de la simulación
de la practica en VIVADO. La Figura 5.1 muestra la simulación correspondiente a
todas las operaciones aritméticas y lógicas que puede realizar la ALU, considerando
todas las posibles situaciones que pueden ocurrir en cada una de ellas, es decir,
suma y multiplicación con y sin desbordamiento, resta con resultado positivo y
negativo, división normal y división entre cero, así como el complemento a 2 de un
numero normal y el complemento a dos de 0, que requiere del led de
desbordamiento para mostrarse; las operaciones AND, NAND y OR no requieren
de probar casos especiales. De color amarillo se encuentra la señal de reloj clk y la
señal de divisor de frecuencia de 250 Hz, que es utilizada para mantener en
sincronía tanto el módulo de la ALU como el módulo del barrido de los displays. Los
vectores A y B corresponde a los valores de los dos datos con los cuales se va a
realizar la operación en cuestión, y se encuentran de color verde para indicar que
se trata de los datos de entrada. De color azul oscuro se encuentra el valor del
vector S, que se encarga de determinar qué operación se realiza. De color naranja
se encuentran los vectores encargados de mostrar los resultados, ya sean
resultados aritméticos en Qout, o resultados lógicos en Ql. La señal Co se encarga
de encender cuando ocurre un resultado con desbordamiento, y se muestra de color
azul claro. De color rojo se muestra la señal N encarga de indicar cuando un
resultado es negativo. Finalmente, de color gris se muestran las señales auxiliares
Qs y Qm que muestran el valor completo del resultado de una suma o una
18
multiplicación respectivamente. Cada operación realizada aborda una duración de
un segundo.
En el primer segundo, el vector S tiene un valor de 000, lo que indica que se trata
de una suma, la cual es realizada al convertir los vectores A y B como enteros sin
signo, y sumarlos obteniendo por ende un resultado entero, que es convertido
nuevamente a un vector sin signo. El dato A posee un valor de 101 y B un valor de
010, el resultado de dicha suma se muestra en el vector Qout, ya que se trata de
una operación aritmética, muestra el resultado 111, el cual es correcto. En Qs se
muestra este mismo valor expresado con 4 bits. En el segundo siguiente, el vector
A mantiene su valor de 101, pero B cambia su valor a 101, para de esta manera
obtener una suma con desbordamiento. En el vector Qs se puede apreciar el
resultado completo de dicha suma, el cual es de 1010, del cual los últimos 3 bits son
tomados para mostrarse en Qout, es decir 010, y el bit más significativo se encarga
de encender la señal de Co, por lo que dicha operación se realiza correctamente.
Es importante mencionar, que mientras se trabaje con operaciones aritmética, la
salida Ql de operaciones lógicas siempre tendrá un valor de 000.
19
Debido a que se trata de una multiplicación por 1, el valor de Qout debe de ser igual
a 101, tal como se muestra en la simulación.
20
salida, finalmente, el ultimo bit de A y B presentan un 1, por lo que la salida para
dicho bit es 1, dando como resultado final en Ql 001.
5.2 Constraints
Para establecer una relación entre el código anteriormente explicado y los
componentes físicos presentes en la tarjeta Basys-3, se hace uso de los constraints
que se encuentran en la Figura 5.2 y en la Figura 5.3.
Comenzando con la Figura 5.2, para el pulso de reloj se hace uso del pin W5, ya
que este se trata del oscilador de 100 MHz incorporado en la propia tarjeta. Para la
asignación de los valores de A, B y S se hace uso de los primeros nueve switches
21
de izquierda a derecha que se encuentran en la zona inferior de la tarjeta. Para
ingresar el valor de A, se utilizan los switches R2, T1 y U1, es decir, los primeros
tres. Para ingresar el valor de B, se hace uso de los siguientes tres switches, que
corresponden a W2, R3 y T2. Finalmente, la operación a realizar es seleccionada
con los switches T3, V2 y W13. En el caso de que el resultado de una resta sea
negativo, se enciende el led L1.
22
Por su parte, en la
23
Figura 5.3: Constraints (segunda parte).
5.3 Esquemático
Haciendo uso de VIVADO, se puede obtener el diseño esquemático del circuito
realizado mediante el código VHDL. En la Figura 5.4 se muestra el diagrama
esquemático para la ALU. A simple vista se puede apreciar como este se encuentra
compuesto por múltiples compuertas lógicas entre las que destacan las compuertas
NOT, OR y AND, así como se pueden ver registros de flip-flops, multiplexores, así
como comparadores, sumadores, multiplicadores, divisores y restadores, entre
otros. Las entradas que se encuentran en el circuito son las mencionadas
anteriormente, es decir A, B S y clk, mientras que las salidas corresponden a Co, N,
OnDis, Ql y Qout.
24
El circuito comienza con la representación esquemática del divisor de frecuencia de
250 Hz, que se encuentra en la parte superior del circuito que tiene como única
entrada la señal de reloj clk de 100 MHz, compuesto por sumador un círculo con un
signo positivo en el centro, el cual representa a la variable cuenta250hz y como este
se incrementa, se encuentra conectado a un multiplexor 2 a 1 cuya salida se
encuentra conectada a un registro de flip-flops, y cuya salida a su vez se encuentra
conectado a una memoria ROM conectada a otro registro de flip-flops cuya salida
negada es una de sus propia entradas. El resto del circuito corresponde al proceso
encargado de la ALU, en el que se usan como entradas A, B y S, en donde se puede
apreciar como S se conecta en los multiplexores del final, y de esta forma se
encarga de indicar las salidas de operaciones aritméticas o lógicas según sea
deseado, así de la señal del encendido y apagado del digito de salida aritmética en
el display.
Respecto a las operaciones lógicas AND, NAND y OR, tenemos un caso similar
debido a que simplemente se trata de los vectores A y B conectados a una
compuerta AND, NAND u OR, según sea el caso y cuyas salidas se conectan a un
multiplexor 8 a 1 encargado de dar como salida la operación lógica que se requiera
en base a S. Para el complemento a 2 se puede observar como el vector A es
invertido (se obtiene el complemento a 1) mediante una compuerta NOT para
posteriormente pasar por un sumador que le suma 1, y así conseguir el
complemento a 2. En la parte superior del diagrama se puede ver una serie de
compuertas OR conectadas entre si que dan lugar a la salida Co, la cual depende
de las salidas de las operaciones de suma, multiplicación o complemento a 2 para
encenderse.
25
Figura 5.4: Esquemático RTL.
26
6 Sesión de revisión
27
Figura 6.2: Prueba de resta.
28
Figura 6.4: Prueba de división
Una vez que se realizaron todas las operaciones aritméticas, se procede a realizar
una operación lógica. En la Figura 6.5 se muestra la aplicación de la operación
aritmética AND. En este caso, debido a que se trata de una operación lógica, el
display de salida para resultados aritméticos se encuentra apagado, sin embargo,
el resto de dígitos se mantienen encendidos para lograr apreciar los valores de A y
B ingresados, así como de la operación realizada. Se puede observar que al dato A
se le asigno un valor de 5, que corresponde a 101 en binario; luego se muestra un
numero 5, indicando que se trata de la operación lógica AND; y finalmente al dato
B se le asigna un valor de 3, cuyo equivalente en binario es 011. El bit más
significativo del dato A es 1, mientras que en el dato B es 0, por lo que el led
correspondiente a dicho bit se mantiene apagado. En el bit siguiente del dato A, se
tiene un 0, mientras que en B se tiene un 1, por lo que el led de dicho resultado se
mantiene apagado. Finalmente, el bit menos significativo del dato A es 1, al igual
que el bit menos significativo de B, por lo que dicho led se enciende como se
muestra en la figura.
Una vez que se terminó de realizar las pruebas para comprobar el funcionamiento
de la práctica, se procedió a la presentación de la práctica a la docente, la cual
realizó preguntas al equipo. Empezó pidiendo que se mostrara el diagrama RTL del
circuito diseñado mediante código VHDL.
29
Una vez que la profesora observo el esquemático RTL, menciono que lo ideal sería
que el módulo de la ALU también se encuentre conectado a la señal de reloj para
que se esta forma vaya sincronizado con el módulo del barrido de los displays.
pregunto por la diferencia entre las salidas del módulo de la ALU llamadas Ql y Qout,
a lo que el alumno Ruiz Pérez Axel Antonio le respondió que Ql es la salida utilizada
para los resultados de las operaciones lógicas, y que por lo tanto se ve reflejada en
los displays, mientras que Qout es la salida encargada de mandar el resultado de
las operaciones aritméticas hacia el módulo del barrido de los displays, para que
sea mostrado en el display de salida. Después de esto pregunto por otra salida del
módulo de la ALU llamada OnDis, a lo que el alumno le contesto que es la señal
encargada de indicarle al módulo de los displays cuando se debe de encender el
digito de la salida aritmética y cuando se debe de apagar, ya que este debe de
permanecer apagado durante las operaciones lógicas. Se hizo énfasis en que el
nombre OnDis proviene de On de encendido en inglés, y Dis de display.
30
7 Discusión de los resultados experimentales
Otra dificultad que se presentó durante el desarrollo del código, fue la manera de
realizar el complemento a 2, ya que este se puede realizar en una línea de código
al invertir el vector de 3 bits de entrada y sumarle 1, pero debido a que se trataba
de una operación lógica, el procedimiento debía de realizarse bit por bit. Debido a
que, desde nuestra perspectiva y producto de varios intentos, la única forma de
realizar dicha operación al obtener el complemento a 1 y sumarle, era mediante
procesos externos al proceso de la ALU, por lo que para tratar de mantener todo en
un mismo proceso, se recurrió a otro método para obtener el complemento a 2.
Investigando encontramos que dicho complemento puede ser encontrado sin
necesidad de realizar el procedimiento anterior. Simplemente se tenía que señalar
el primer bit menos significativo que sea igual a 1, e invertir el valor de los bits más
significativos a este. Con este procedimiento se consiguió obtener el complemento
a 2 bit por bit en un mismo proceso.
Una vez que se terminó la primera versión del código, se procedió a realizar la
simulación, en donde encontramos en gran medida resultados satisfactorios, sin
embargo, durante esto se notó que, al realizar operaciones lógicas, se apagaban
31
los cuatro dígitos del display, en lugar e únicamente el encargado de mostrar el
resultado de operaciones aritméticas, de igual forma surgieron ideas para mejorar
el código.
Una vez que se superaron todas las dificultades anteriores, se realizó la simulación
de la practica en la cual se trataron de simular todas las posibles situaciones ante
las cuales podría la práctica, y en todos los casos los resultados fueron los
esperados, dando fin así al desarrollo de la práctica.
32
8 Conclusiones
Hablando más técnicamente, el uso de dos módulos y una instancia para poder unir
estos para poder ser usados adecuadamente; Fue una de las prácticas más
interesantes en cuanto a contenido, se tuvo que realizar básicamente una
calculadora lógica y aritmética de operaciones básicas.
En estas nuevas experiencias, hubo correcciones que se deben mencionar; tal
como cambiar el método de la resta que se realizaba dentro de la síntesis del código,
debido a que este no se realizaba de una manera adecuada, considerando que
debía tratarse a tal operación como naturalmente era, y no forzarlo a considerar
valores con predisposición. Fue una buena lección aprendida, que no solo hay más
de un camino o manera existente, ni que el hecho de que funcione, signifique que
todo esté completamente bien, o mejor dicho, optimizado.
33
los displays y de esta manera reducir el tiempo de realización de un determinado
código.
De igual entendí de mejor manera como es que una ALU se puede, por así decirlo,
"Comunicar" los datos que esta misma maneja, pues si bien puede considerarse
como una comunicación sumamente básica mediante displays y leds, nos sirve de
preámbulo para poder entenderlo mejor a futuro, y es que considero que todo esto
es un buen inicio para poder comprender como es que funcionan sistemas más
complejos.
34
9 Referencias
35