PPTT-CIS-IXB-[NoPPTT]
UNIVERSIDAD
NACIONAL
DE LOJA
Facultad de Energía las Industrias y los Recursos Naturales No Renovables
Carrera de Ingeniería en Sistemas
“CALCULADORA SIMPLE DE 8BITS DESARROLLADA EN
VHDL”
SISTEMAS OPERATIVOS Y REDES
Unidad de Titulación Especial
Autor:
• Jéssica Mercedes Cueva Riofrío
Tutor:
• Ing. Gastón Chamba
23 de diciembre de 2019
Loja-Ecuador
Índice
Índice 2
Introducción 3
Descripción 4
Calculadora simple completamente funcional 4
DESARROLLO 5
F1 = A + B 5
F2 = A or B 8
F3 = A xor B 9
F4 = not A 10
MULTIPLEXOR 4 ENTRADAS 8BITS 11
REGISTROS DE 4BITS Y 8 BITS 13
DECODIFICADOR BCD DE 7 SEGMENTOS 16
CALCULADORA COMPLETA 16
Conclusiones 18
2
Introducción
El presente documente da una pauta para conocer como se puede elaborar la ALU utilizando
el programa MODELSIM, el programa permite elaborar programas a nivel de hardware
utilizando el lenguaje VHDL. Además, ayuda a comprender como los dispositivos en este caso
una calculadora simple realiza sus operaciones a nivel de hardware.
En el desarrollo de la calculadora simple se ha realizado varios módulos que permiten su
normal funcionamiento, entre estos módulos se ha elaborado un sumador de 8 bits, full adder
con las compuertas or, xor y not cada una de ellas de 8 bits, un multiplexor de 4 entradas de
8 bits, tres registros: dos de 4 bits y uno de 8bits, y dos decodificadores bcd.
Para la elaboración de la calculadora se ha planteado los siguientes objetivos:
• Implementar un decodificador de 7 segmentos en VHDL
• Agregar el decodificador implementado a la calculadora.
• Para diseñar registros de 4 bits y 8 bits con habilitación y reinicio asíncrono
3
Descripción
Calculadora simple completamente funcional
Figura 1: Calculadora simple o mini ALU
En la figura 1 se muestra una calculadora de 8 bits (los operandos tienen una longitud de 8
bits) que realiza 4 operaciones, una aritmética (F1, sumatoria) y tres funciones lógicas (F2, F3
y F4), de la siguiente manera:
• F1 = A + B
• F2 = A or B
• F3 = A xor B
• F4 = not A
4
Además, todo el diseño está compuesto por 7 archivos (8 componentes).
DESARROLLO
Para la elaboración de la calculadora simple se ha considerado lo antes propuesto, a
continuación, se describen los módulos que permiten el funcionamiento de la misma.
F1 = A + B
Para la operación aritmética A + B se ha elaborado tres módulos, los dos primeros son de 1bit
y el tercero es de 8bit; el primero de 1 bit es el hall adder (HA) el cual está constituido por
compuerta AND y un compuerta XOR ambas previamente codificadas en VHDL, luego se
procedió a construir el full adder (FA), este se constituye por dos HA y una compuerta OR
previamente codificados, por ultimo para construir el F1 se procedió a instanciar 8 veces el FA.
En las figuras 2, 3 y 4 se muestra el código VHDL de los módulos antes mencionados.
HALL ADDER 1BIT
Figura 2: Código en VHDL del Hall Adder
5
FULL ADDER DE 1BIT
Figura 3: Código en VHDL del Full Adder
6
SUMADOR DE 8BITS
Figura 4: Código en VHDL de la operacion aritmética A+B
7
F2 = A or B
En la realización de la operación lógica A or B se elabora el módulo que instancia 8 veces la
compuerta OR como se muestra en la figura 5.
Figura 5: Código en VHDL de la operacion lógica A or B
8
F3 = A xor B
En la realización de la operación lógica A xor B se elabora el módulo que instancia 8 veces la
compuerta XOR como se muestra en la figura 6.
Figura 6: Código en VHDL de la operación lógica A xor B
9
F4 = not A
En la realización de la operación lógica not A se elabora el módulo que instancia 8 veces la
compuerta NOT como se muestra en la figura 7.
Figura 7: Código en VHDL de la opeación lógica not A
10
MULTIPLEXOR 4 ENTRADAS 8BITS
En la realización del multiplexor de 4 entradas de 8bits se elaboran tres módulos dos de ellos
de 1 bit y el tercero de 8 bits que es el que se va a utilizar. El primer módulo que se realiza es
un multiplexor de 2 entradas y una salida, luego se hizo un multiplexor de 4 entradas y una
salida instanciando 3 veces el multiplexor antes mencionado y por último para construir el
multiplexor de 4 entradas de 8 bits que se utiliza en la mini ALU se procedió a declarar variables
de tipo vector de 8bits tanto de entrada como de salida y luego se instancia 8 veces el
multiplexor de 4 entradas. En las figuras 8, 9 y 10 se muestra el código en VHDL de los
módulos antes mencionados.
MULTIPLEXOR 2 ENTRADAS 1BIT
Figura 8: Código en VHDL del multiplexor de 2 entradas
11
MULTIPLEXOR 4 ENTRADAS 1BIT
Figura 9: Código en VHDL del multiplexor de 4 entradas
12
MULTIPLEXOR 4 ENTRADAS 8BIT
Figura 10: Código en VHDL del multiplexor de 4 entradas de 8bits
REGISTROS DE 4BITS Y 8 BITS
En la realización de los registros se ha elaborado 3 módulos: un registro de 1 bit, el segundo
de 4 bits, y el tercero de 8 bits. Los registros dos y tres instanciaron el registro de un bit las
veces que es necesario para cada uno de ellos. En las figuras 11, 12 y 13 se muestra el código
VHDL de los mismos y en el que se puede evidenciar lo antes mencionado.
13
REGISTRO DE 1BIT
Figura 11: Código en VHDL del registro de 1bit
REGISTRO DE 4BIT
Figura 12: Código en VHDL del registro de 4bits
14
REGISTRO DE 8BIT
Figura 13: Código en VHDL del registro de 8bits
15
DECODIFICADOR BCD DE 7 SEGMENTOS
En la elaboración del decodificador se realizo para cada variable los mapas de Karnaugh
obteniendo el siguiente algoritmo codificado en VHDL, como se muestra en la figura 14.
Figura 14: Código en VHDL del decodificador de 7 segmentos bcd
CALCULADORA COMPLETA
Por último, todos los módulos se los unió en un solo archivo como se muestra en la figura 15,
cabe señalar que cuando se envían los datos del multiplexor a los registros es necesario
realizar dos codificadores adicionales uno para transformas de binario a decimal y otro para
transformar de decimal a binario respectivamente.
16
Figura 15: Código en VHDL de la Calculadora Simple de 8bits
17
Conclusiones
- Para poder realizar este tipo de casos hay que tener conocimiento básico del lenguaje
de programación VHDL.
- El análisis del caso de estudio debe ser indispensables con la finalidad de realizar un
buen trabajo.
- Hay que tomar en cuenta que en este caso de estudio de la calculadora hay que realizar
más que permitan obtener un numero decimal, y dividirlo en unidades, decenas y
centenas, además que permita a éstas se las pueda transformas en binario para que
puedan pasar por el registro y el decodificador.
18