reporte 2 digitales

15
Laboratorio Il – circuitos lógicos y aritmeticos Presentado por: Juan Sebastián Bravo Guevara [email protected] Lina Isabel Aristizabal Casanova [email protected] Jeison Fernando Ramos [email protected] PRESENTADO A: ING. FERNANDO A. URBANO M.

Upload: juan-sebastian-bravo-guevara

Post on 15-Dec-2015

235 views

Category:

Documents


4 download

DESCRIPTION

reporte de laboratorio de circuitos digitales MSI

TRANSCRIPT

Page 1: Reporte 2 Digitales

Laboratorio Il – circuitos lógicos y aritmeticos

Presentado por:

Juan Sebastián Bravo Guevara [email protected]

Lina Isabel Aristizabal [email protected]

Jeison Fernando [email protected]

PRESENTADO A:ING. FERNANDO A. URBANO M.

CIRCUITOS DIGITALES IINGENIERÍA ELECTRÓNICA Y TELECOMUNICACIONES

FIETUNIVERSIDAD DEL CAUCA

2015

Page 2: Reporte 2 Digitales

1. TABLA DE CONTENIDO

1. Tabla de contenido2. Resumen3. Introducción4. Procesos de Diseño

4.1 Diseño de una ALU de 8 bits.4.2 Diseño de un multiplicador de 8 bits

5. Conclusiones.6. Bibliografía.7. Anexos

Page 3: Reporte 2 Digitales

2. RESUMEN

El reporte presentado a continuación presenta los diseños de circuitos lógicos y aritméticos requeridos para el segundo laboratorio, aplicando las técnicas vistas en clase y con la ayuda de la lógica de módulos combinacionales MSI, circuitos aritméticos y el programa altera quartus ll. Se desarrollan conceptos como: lógica combinacional MSI, circuitos aritméticos (semisumador, sumador completo, ALU), dispositivos secuenciales e implementación del programa quartus ll en la tarjeta altera DE0. Para mostrar los diseños de circuitos se utilizo como herramienta el programa de diseño libre tynicad y en la sección de resultados se tomo como apoyo las simulaciones hechas en el programa altera quartus ll.

3. INTRODUCCION

El tema de investigación presentado en el laboratorio son los circuitos aritméticos donde se implementa técnicas de diseño con ayuda de lógica MSI.

Para la realización de la práctica de laboratorio es necesario implementar conceptos básicos de los circuitos combinacionales como:

Módulos combinacionales MSI: Bloques funcionales que realizan una tarea específica y pueden implementar funciones booleanas: circuitos (multiplexores, demultiplexores, decodificadores, codificadores, etc.)

Circuitos aritméticos: Son dispositivos MSI que pueden realizar operaciones aritméticas (suma, resta, multiplicación y división) con números binarios.

Dispositivos secuenciales: circuitos digitales con realimentación que no son combinacionales.

Los objetivos de la práctica son:

Diseñar el circuito propuesto utilizando las técnicas vistas en clase Desarrollar el circuito en Quartus ll de altera. Simular los diseños realizados, usando Altera simulator. Implementar en la tarjeta Altera DE0.

Page 4: Reporte 2 Digitales

4. PROCEDIMIENTO DE DISEÑO

4.1 Diseño de la unidad aritmético - lógica (ALU) de 8 bits .

Teniendo como base la ALU vista en clase, Diseñe una de 8 bits.

Selección de operación Salida OperaciónOpcode(2) Opcode(1) Opcode(0) Cin Cout Resul

0 0 0 X 0 A Complemento de A0 0 1 X 0 A.B A and B0 1 0 X 0 A Transferencia de A0 1 1 x 0 A+B A or B1 0 0 * * A-1 Decremento de A1 0 1 * * A+B Suma 1 1 0 * * A-B Resta1 1 1 * * A+1 Incremento de A

* Puede tomar el valor 0 o 1 respectivamente, depende de la operación respectiva.

DESARROLLO.

Para realizar el circuito de la unidad aritmético lógica se empezó haciendo las funciones lógicas respectivas de and, or, complemento y transferencia.

Para esto utilizamos un multiplexor y el siguiente circuito:

Page 5: Reporte 2 Digitales

El circuito se compone de un multiplexor de una palabra de 8 bits que como se puede observar en la figura, dependiendo de las líneas de selección desarrollara la operación correspondiente:

Selección de operación Salida OperaciónOpcode(2) Opcode(1) Opcode(0) Cin Cout Resul

0 0 0 X 0 A Complemento de A0 0 1 X 0 A.B A and B0 1 0 X 0 A Transferencia de A0 1 1 x 0 A+B A or B

En este circuito utilizamos Opcode(1) y Opcode(0) como las líneas de selección del multiplexor que implementa las funciones.

Para la parte aritmética la cual esta compuesta por las funciones aritméticas: decremento, suma, resta e incremento. Se implemento el siguiente circuito:

El circuito anterior consta de un multiplexor que dependiendo de la operación aritmética a realizar selecciona la entrada necesaria para esa operación.

El bloque aritmético consta de un sumador completo de 8 bits con una entrada A y una entraba B que depende del circuito del multiplexor para realizar la operación requerida esto es:

Page 6: Reporte 2 Digitales

Si las líneas de selección son 00 se realiza el decremento de A (B= complemento a dos de 1), si son 01 la suma entre A y B (B=B), si es 10 la resta entre A y B (B= complemento a 2 de B) y si es 11 el incremento de A (B=1).

Selección de operación Salida OperaciónOpcode(2) Opcode(1) Opcode(0) Cin Cout Resul

1 0 0 * * A-1 Decremento de A1 0 1 * * A+B Suma 1 1 0 * * A-B Resta1 1 1 * * A+1 Incremento de A

El circuito del sumador completo es el siguiente:

El circuito de la anterior figura es un full adder de un bit pero análogamente tenemos el de 8 bits que fue el implementado en la práctica.

Page 7: Reporte 2 Digitales

La ALU esta complementada entre el circuito de funciones lógicas y el de funciones aritméticas. Para crear un proyecto en el cual funcionen los dos circuitos, utilizamos otro multiplexor de una línea de selección (Opcode (2)), el cual nos permite seleccionar entre las funciones lógicas y las aritméticas.

El circuito mostrado es un mux diseñado para 3 bits pero análogamente tenemos el de 8 bits:

Entonces para completar la ALU unimos los 2 bloques, el del circuito de funciones lógicas y el de funciones aritméticas con el anterior mux para tener la ALU completa.

Page 8: Reporte 2 Digitales

Los resultados que se obtuvieron serán presentados en la siguiente simulación:

Como se puede observar en la simulación, en las líneas de selección se va a tomar como ejemplo la combinación 100 entonces como vemos el valor de la entrada A será FF y al hacer la operación de decremento (FF-1) obtendremos como resultado 1FE lo cual muestra el buen funcionamiento de la ALU.

Page 9: Reporte 2 Digitales

4.2 Diseño de un multiplicador paralelo de 8 bits.

Existen varias maneras de implementar la multiplicación en un circuito, investigue, diseñe e implemente en la tarjeta Altera DE0, un multiplicador combinacional de 8 bits. Fundamente su selección mediante un artículo o libro debidamente referenciado y colóquelo como anexo al reporte técnico. La no presentación del artículo o el libro, automáticamente anulará el punto por completo (práctica, sustentación, diseño e informe). No se aceptarán como referencias, páginas Web.

DESARROLLO.

Para la selección del multiplicador a utilizar se investigo en el articulo “Métricas para la generación de Multiplicadores paralelos en FPGA “.[1]

Habiendo escogido el multiplicador, nos referenciamos en otro articulo en el cual estaba de manera detallada el algoritmo del multiplicador. El nombre de este multiplicador es “Multiplicador Guild”. Este circuito fue propuesto por H. H. Guild. El diseño es el siguiente:

“El procesador elemental del multiplicador esta mostrado en la siguiente figura:

1

La estructura de este multiplicador se basa en cadenas de sumadores para cada bit del producto, las cuales se encuentran en dirección diagonal desde la esquina superior izquierda hasta la esquina inferior derecha. Cada sumador de la cadena recibe un acarreo de entrada que corresponde a una suma de la cadena previa y transmite su salida de acarreo a un sumador de una cadena posterior”.[2]

El Full Adder que se implemento es el siguiente.

1 Ver anexo [1]Ver anexo [2]

Page 10: Reporte 2 Digitales

El circuito elemental para el multiplicador que se implemento es el siguiente.

Por lo tanto el circuito del multiplicador guild es:

Page 11: Reporte 2 Digitales

Para no tener que utilizar entradas extra se utilizaron 2 registros de 8 bits con diferente clk para guardar los 8 bits de cada número, con estos registros ya tendremos lo que es el circuito del multiplicador completo.

Los resultados obtenidos se muestran con la simulación:

Esta simulación se hace con número decimales para tener una mejor comodidad, sin embargo las salidas de este multiplicador van al decodificador 7 segmentos utilizado en la práctica previa.

El resultado se mostrara en números hexadecimales.

5. CONCLUSIONES.

A pesar de haber una variedad grande de algoritmos para multiplicadores en paralelo, se escogió el multiplicador guild teniendo en cuenta la condición que se puso en el laboratorio.

Page 12: Reporte 2 Digitales

Para poder implementar la ALU de 8 bits al tener 16 entradas se utilizo un registro para poder guardar los datos y no tener que usar interruptores externos a los de la FPGA

6. BIBLIOGRAFIA

Notas de clase M. Morris Mano, Michael D. Ciletti, Diseño Digital, Pearson, Quinta Edición,

México, 2013. Roger L. Tokheim, Electrónica Digital Principios y Aplicaciones, Mc Graw Hill,

Séptima Edición, México, 2008.

8. Anexos[1] http://www.iberchip.net/VII/cdnav/pdfp/p33.pdf [2] http://helvia.uco.es/xmlui/bitstream/handle/10396/11518/2013000000885.pdf?sequence=1