Está en la página 1de 20

UNIVERSIDAD NACIONAL DEL CALLAO prof.

Ing Electrnica

UNIVERSIDAD NACIONAL DEL CALLAO


FACULTAD DE INGENIERA ELCTRICA Y ELECTRNICA
ESCUELA DE INGENIERA ELECTRNICA

SEPTIMO INFORME FINAL DE LABRATORIO


CURSO:

ARQUITECTURA DE COMPUTADORAS
PROFESOR:

Ing. Zenn Cucho Mendoza

ALUMNOS:
CDIGO
MAHR CALLE Renzo Arturo Fernando
1113210139
CICLO:

2014-A

Laboratorio de Arquitectura de Computadoras 2014-A

UNIVERSIDAD NACIONAL DEL CALLAO prof. Ing Electrnica

Informe Previo
Implemente un multiplexor de 4a1 usando sentencias port map y package:
Diseamos primero un mux2a2 el cual ser la base para construir el de multiplexor de
4a2:

Usando las sentencia package creamos, del diseo anterior, un componente que podr
interconectarse con otros componentes que creemos ms adelante.

Finalmente creamos otro mdulo Vhdl (El que ser de mayor jerarqua) y unimos
nuestros 2 mux de 2 a 1 para crear uno de 4 a 1.

Laboratorio de Arquitectura de Computadoras 2014-A

UNIVERSIDAD NACIONAL DEL CALLAO prof. Ing Electrnica


Gracias a la herramienta View RTL podemos ver como se vera el hardware que
hemos descrito:

Se puede observar que el hardware es exactamente igual a como se quiso describir,


dos mux de 2 a 1 para crear uno de 4 a 1, para concluir simulamos el cdigo Vhdl:

Se puede observar que la simulacin comprueba una vez ms que el diseo ha sido
satisfactorio.

Laboratorio de Arquitectura de Computadoras 2014-A

UNIVERSIDAD NACIONAL DEL CALLAO prof. Ing Electrnica

Informe Final
Disee un Alu con 4 operaciones aritmticas y 4 operaciones lgicas de 8 bits. (Use
Package).

Solucin:
Descripcin del experimento:
Se implementara un Alu bsico con:
4 operaciones aritmticas

4 operaciones lgicas

A+B
A-B
B-A
2A

A OR B
A AND B
A XOR B
A XNOR B

Un total de 8 funciones que se realizaran usando lgica combinacional y


finalmente implementado en Lenguaje de Descripcin de Hardware como
Vhdl usando el estilo estructural.
Tabla del Alu a construir:

Lgicos

Aritmticos

Cin

Sel

Funcin

000

F=A+B

001

F=A-B

010

F=B-A

100

F= A OR B

101

F=A AND B

110

F=A XOR B

111

F= A XNOR B

Funciones Aritmticas:
Suma (A + B):
Laboratorio de Arquitectura de Computadoras 2014-A

Tabla de Verdad:

Mapas de K:
Para Cout:

Para S:

Empleando Karnaugh obtenemos:

Luego describimos en el diseo lo obtenido:

Luego observamos gracias a la opcin view RTL como se ve el hardware que hemos
descrito:

Restador (A-B):

Tabla de Verdad:

Mapas de K:
Para Cout B y D:

Notamos que la ecuacin es idntica a la de suma pero se diferencia en el que el


sustraendo ser una de las entradas en su forma de complemento, adems ser
sumara 1 para obtener el complemento a 2 de esa entrada lo cual se solucionar
teniendo un 1 lgico en Cin

Describimos el diseo Vhdl:

Viewer RTL:

Restador (B-A):

Como vemos el circuito ser parecido al anterior pero en este caso negaremos la
entrada A:
En Vhdl:

Viewer RTL:

Doblador (2A):

El diseo de este circuito seria idntico al de la suma pero los dos trminos a sumar
seran los de la entrada A (A+A= 2A).
En Vhdl:

En el RTL Viewer:

Funciones Lgicas:

Debido a que es muy sencillo solo describir una compuerta en Vhdl no se entraran en
detalles.
Descripcin:
Compuerta OR:

Compuerta AND:

Compuerta XOR:

Compuerta XNOR:

Adems de los bloques funcionales tambin necesitaremos multiplexores que nos


ayudaran a seleccionar una sola funcin de todas cuando se requiera:

Mux de 16x8 para unir los dos bloques Aritmetico-Logico:

Finalmente un Mux de 4a1 para los carry de salida:

Ahora que ya se tiene todas las arquitecturas a usar en nuestro proyecto se creara un
Package donde cada elemento se volver un Componente que ms adelante cuando
describamos totalmente el Alu , podremos con tan solo llamarlo , unirlo con otros
componentes, (Como si se cablearan).

Creando el Package que tendr el nombre de s:

Con esto ya podemos crear finamente nuestro proyecto solo basta cablear todos los
Componentes
As creamos un nuevo mdulo Vhdl, este mdulo ser mayor jerarqua ya que ser el
que contenga la unin de todos los componentes en nuestro proyecto.

Proyecto Alu:
Se usara la sentencia port map que es la que llama a cada componente del package,
para esto en el momento de declarar las libreras tendremos que declarar: Use
work.s.all; que se refiere al Package que creamos como si de una librera se tratara.

Ahora veremos gracias al viewer RTL si lo que quisimos describir del hardware est
bien:

ALU

Vemos que existen 2 bloques uno aritmtico (suma, resta) lgico (or, and .etc.) adems
de que se unen por multiplexores a una salida, lo que quiere decir que el software
entendido el hardware que intentbamos escribir.

Ahora simularemos para ver si opera bien nuestra Alu:

Dnde: A=3(00000011b) y B=22(00010110b):


Sel (000) => (A+B) = 3 + 22 = 25 = 0001101b
Sel (001) => (A-B) = 3 - 22 = -19 (11101101b) Forma en complemento a 2
Sel (010) => (B-A) = 22 - 3 = 19 = 00010011b
Sel (011) => (2A) = 2(3) = 6 = 00000110b
Sel (100) => (A OR B) = 3 + 22 = 25 = 00010111b
Sel (101) => (A AND B) = 3 + 22 = 25 00000010b
Sel (110) => (A XOR B) = 3 + 22 = 25 = 00010101b
Sel (111) => (A XNOR B) = 3 + 22 = 25 = 11101010b

Conclusiones:

El recurso package, aunque laborioso para proyectos pequeos donde tal vez no
se pueda apreciar por lo mismo que no se repiten muchos componentes, es una
increble herramienta para proyectos ms grandes y complejos pues podemos
con tan solo llamar gracias al port map a entidades ya descritas que usualmente
se repitan dentro de nuestra descripcin del proyecto.

Con el mismo mtodo que usamos para construir nuestra Alu, se puede ir
creando de bloque en bloque un microprocesador de la cantidad de bits que
deseemos.

También podría gustarte