Informe Practica
PRESENTADO A:
ING. FERNANDO APARICIO URBANO
PRESENTADO POR:
RUDY ANDREA CERÓN CERÓN
ESTEBAN YAMÁ MARTINEZ
FACULTAD DE INGENIERIA ELECTRONICA Y TELECOMUNICACIONES
PROGRAMA DE INGENIERIA ELECTRONICA Y TELECOMUNICACIONES
SISTEMAS DIGITALES II
POPAYÁN, 24 DE MARZO 2015.
.
I.
RESUMEN
En este trabajo se desarrollan las 4 operaciones: Suma, resta, multiplicación y división con dosnúmeros de 8 bits. Este diseño cumple con los requerimientos asignados y se implementa usando
la Unidad Lógica Aritmética (ALU). Para realizar cada una de las operaciones se buscó un diseño
que permitiera obtener los resultados esperados y se describen cada uno de ellos.
2
TABLA DE CONTENIDO
Pg.
I.
II.
III.
IV.
V.
VI.
Resumen
Requerimientos
Procedimiento de diseño
Suma
Resta
Multiplicación
División
ALU
Conclusiones
Bibliografía
2
4
4
5
6
8
11
14
16
17
3
II.
Requerimientos
Se describe un sistema digital en VHDL que utilice en la entrada 2 números de 8 bits(A, B) y
realice las siguientes operaciones:
-
Suma
Resta
Multiplicación
División
Una vez calculado el resultado se debe mostrar en display 7 segmentos en hexadecimal.
La suma debe llevar su respectivo acarreo y laresta el signo, en el caso de que el numero B sea
mayor que A, y para la división se muestra el cociente y el residuo.
Además, debe permitir seleccionar la operación que se quiera realizar.
III.
Procedimiento de diseño
Se empieza por realizar cada módulo independientemente, para después intégralos en una ALU
(unidad lógica aritmética) como se muestra en la siguiente figura.
Imagen 1.
4
Elcircuito consta de los siguientes bloques.
Suma:
En este módulo se realiza la suma de los números A y B, cada uno de 8 bits, esta
operación se realiza bit a bit. Su salida debe ser de 16 bits, ya que al multiplexor que
permite seleccionar la operación que se desea realizar es de ese tamaño; para esto al
resultado se concatenan 7 ceros así:
resul <=”0000000” & temp;
donde,
temp <= (‘0’ & A) + B;
Eldiagrama que representa al sumador es:
Figura 2.
Ejemplo:
Se tienen:
A = 11000110 (198),
B = 10000011(131).
El resultado es: 101001001(329), siendo el bit más significativo (MSB) su respectivo
acarreo ubicándose en la posición [8].
A continuación se presenta su respectiva simulación (en Model Sim):
5
Figura 3.
Resta:
A continuación se presenta el diagrama que describe este bloque:Figura 4.
Al realizar la resta se presentan 2 casos:
o
Si el número B es menor que A: una vez obtenido el complemento a 2 de B, se
hace la suma bit a bit, el resultado será un número positivo.
Para este caso el programa realiza la operación de forma automática:
temp <= (‘0’ & A) – B;
Se puede ver que se concatena un cero a la izquierda en que se va a ubicar el
acarreo.
o
Si el numero B, que es elnumero que se va a restar, es mayor que A, después de
saber el resultado de la suma entre A y el complemento a 2 de B, se obtiene un
6
acarreo igual a 1 en la posición [8], el cual indica que el signo es negativo por lo que
se debe complementar a 2 dicho resultado, de esta manera:
S <= (not temp) + 1;
Para decidir qué resultado mostrar dependiendo si el número B es mayor o menor
que el número A,se utilizó la función when-else.
La cual funciona como un multiplexor de 2 a 1, en donde la línea de selección es la
posición temp[8] del resultado obtenido de hacer la resta de A – B así:
resul <= “00000000”&temp(7 downto 0) when temp(8) =’0’ else “00000001”&S(7 downto 0);
El diagrama que describe los casos anteriores es:
Figura 6.
Esta figura representa la operación resta, en la cual se tienendos posibilidades (anteriormente
descritas) en el primero de ellos el resultado que se muestra es la resta de A-B, mientras que para
el segundo caso, como el resultado es negativo, se muestra el signo de la operación y el resultado
de la resta.
La respectiva simulación de este bloque es:
7
Figura 7.
Multiplicación:
Para realizar el diseño del multiplicador se usó el método de la suma de...
Regístrate para leer el documento completo.