Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Universidad Nacional Autónoma de México Facultad de Ingenieŕıa Diseño Digital VLSI Grupo: 5 - Semestre: 2023-1 Práctica #0: Compuerta AND, Suma Binaria y Multiplexor. Fecha de entrega: 04/09/2022 Profesora: Fonseca Chávez Elizabeth M.I. Alumno: Téllez González Jorge Luis Facultad de Ingenieŕıa Diseño Digital VLSI Índice 1. Objetivos 3 2. Introducción 3 2.1. Compuerta AND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2. Suma binaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3. Multiplexor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3. Desarrollo de experimentos 6 3.1. Compuerta AND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.2. Sumador binario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.3. Multiplexor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4. Conclusiones 20 LATEX 2 Facultad de Ingenieŕıa Diseño Digital VLSI Resumen En el siguiente reporte se emplea el software Quartus Prime Lite 18.0 para la implementación de una compuerta AND, un simulador de una suma binaria y un multiplexor; realizando una simulación de uno de ellos y posteriormente comprobando su correcto funcionamiento mediante la descarga a la FPGA DE10-Lite. 1. Objetivos Introducir el funcionamiento del software Quartus para su uso en la programación en VHDL y descargar a la tarjeta DE10-Lite. Aprender el funcionamiento de las estructuras básicas en VHDL para la construcción de expre- siones para el cálculo de datos. Construir un multiplexor 4:1. Siumlar el funcionamiento de un sumador binario de 3 bits. 2. Introducción VHDL o Very High Speed Integrated Circuit Hardware Description Language es un un lenguaje de descripción de hardware empleado para la programación de circuitos electrónicos digitales que emplea distintos niveles de abstracción. A diferencia de un lenguaje de programación de alto o mediano nivel, VHDL está pensado para la descripción y el modelado de sistemas digitales v́ıa hardware previa implementación f́ısica. Por tanto, presenta las siguientes diferencia clave: Se habla de puertas y biestables, no en variables ni funciones. Identificar circuitos combinaciones y secuenciales. LATEX 3 Facultad de Ingenieŕıa Diseño Digital VLSI La misión principal de un lenguaje de descripción de hardware es que sea capaz de simular el comportamiento lógico de un circuito sin necesidad de imponer restricciones, es decir, siempre debe dar el mismo resultado al realizar una simulación; considerando que los circuitos trabajar a la vez para obtener ese resultado, es decir, todo se ejecuta en paralelo. La plataforma Quartus integra herramientas de desarrollo necesarias para procesar diseños en forma amigable e incluso manejar proyectos jerárquicos. Por medio de este software de Intel es posible crear un diseño, sintetizarlo y configurarlo para su env́ıo y prueba a una FPGA; aunque la recomendación es que estos se simulen y analicen previamente en el tiempo. Quartus se encarga de compilar, sintetizar, simular, analizar en el tiempo y programar en un dispositivo en un único proyecto. Figura 1: Ventana de inicio de Quartus Prime Lite Edition 18.0 En la práctica se analizarán 3 elementos básicos que serán empleados durante el curso de Diseño Digital VLSI : LATEX 4 Facultad de Ingenieŕıa Diseño Digital VLSI 2.1. Compuerta AND La compuerta AND es la implementación en hardware de la conjunción lógica y es una de las operaciones básicas del Álgebra Booleana. Su tabla de verdad indica que únicamente se tendrá una salida Q en alto (1) śı y solo si dadas dos entradas A y B igualmente se encuentran el alto. De no ser aśı, la salida estará en bajo (0). Figura 2: Compuerta AND. 2.2. Suma binaria La suma binaria se emplea en el ámbito de VHDL por la representación en bits que se utiliza prácticamente en todos sus aspectos. Las posibles combinaciones en la suma de dos bits son: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 El algoritmo se realiza de forma similar a la suma decimal, sumando desde la derecha. En el caso de 1 + 1 = 10, únicamente se escribe el 0 y una unidad se arrastra en acarreo que se suma a la posición siguiente a la izquierda; lo que se denomina como bit de acarreo, En el caso de la suma en LATEX 5 Facultad de Ingenieŕıa Diseño Digital VLSI binario puro con signo en complemento a 2 consiste en sumar las secuencias binarias según la regla del binario puro, despreciando el acarreo final y teniendo en cuenta que habrá desborde si los dos últimos acarreos son distintos. 2.3. Multiplexor El multiplexor binario es un circuito combinacional con dos tipos distintos de entradas (datos y control) junto con una salida. Las entradas de control selecciona una y únicamente una entrada de datos para permitir su transmisión desde la entrada al multiplexor hasta la salida única. El número de ĺıneas de control es igual a 2n. Por ejemplo, un multiplexor de 8 entradas posee 3 entradas de control por 23 = 8. Figura 3: Multiplexor binario. 3. Desarrollo de experimentos 3.1. Compuerta AND Iniciamos retomando el proyecto de prueba configurado durante la primer parte de la Práctica 0 con el código propuesto para describir el comportamiento de una compuerta AND, como se muestra a continuación. LATEX 6 Facultad de Ingenieŕıa Diseño Digital VLSI Figura 4: Código de una compuerta AND en VHDL. La asignación de pines se realiza empleando los switches indicados y el LED del ejemplo que se usaron previamente. Figura 5: Asignación de pines. De forma adicional con respecto a la primera parte, se realizará la simulación de la compuerta AND empleando Modelsim. Considerando que ya se tiene el código depurado, compilado y guardado, LATEX 7 Facultad de Ingenieŕıa Diseño Digital VLSI ahora se generará un nuevo archivo en File − > New − > UniversityProgramVWF . Siguiendo las indicaciones del v́ıdeo proporcionado se genera la siguiente simulación, en donde se alternan los valores de las entradas a y b para ejemplificar cómo la salida entra en alto únicamente cuando ambas entradas también están en alto. Figura 6: Simulación en Modelsim de los valores de entrada en la compuerta AND. Para ejecutar la simulación se emplea el botón denominado Run Functional Simulation, lo que abre una nueva ventana tras un breve lapso de espera donde se muestra la salida en c, confirmando que la compuerta AND presenta el comportamiento esperado. Figura 7: Salida obtenida tras ejecutar la simulación. Pasando a la descarga a la tarjeta con los pines asignados previamente se procede a compilar el programa e iniciar el procedimiento de descarga a la FPGA env́ıando el output generado en Programmer − > Start : Finalmente, el programa se descarga a la tarjeta y se podrá observar el correcto comporta- LATEX 8 Facultad de Ingenieŕıa Diseño Digital VLSI Figura 8: Descarga de la salida de compilación a la FPGA. miento del mismo al representar la compuerta AND; mismo que coincide con lo observado en la ejecución de la simulación con Modelsim: Figura 9: AND: cuando A y B se activan, la salida es un LED encendido. LATEX 9 Facultad de Ingenieŕıa Diseño Digital VLSI Figura 10: AND: si alguna de las entradas está en bajo (o ambas), el LED permanece apagado. 3.2. Sumador binario A continuación se crea un nuevo proyecto llamado sumabin que contendrá el código propuesto para realizar la construcción de un sumador binario de 3 bits en la FPGA. Creando el respectivo proyecto con el procedimiento anterior, se transcribe el código respectivo quedando de la siguiente forma: Figura 11: Código del sumador binario empleando vectores. LATEX 10 Facultad de Ingenieŕıa Diseño Digital VLSI El sumador binario descrito previamente incluye el caso posibledel acarreo descrito por la variable Cout, aśı como el acarreo inicial con Cin. A diferencia del caso base compuesto por un semi sumador, el sumador completo incluye aquellos casos donde Cin = 1, es decir, se tiene un acarreo inicial que se suma adicionalmente a la adición entre a y b. Por ejemplo, si a = 0, b = 0 y Cin = 1, se tiene lo siguiente: Cin + a = 1 + 0 = 1 −→ 1 + b = 1 + 0 = s = 1 De alĺı que la salida s = 1, y cómo no existe un acarreo de salida, entonces Cout = 0. En cambio, si a = 1, b = 1 y Cin = 1, se tiene lo siguiente: Cin + a = 1 + 1 = 10 −→ 10 + b = 10 + 1 = s = 11 Entonces, la parte de salida es s = 1 y el acarreo de salida es Cout = 1. De esta forma, la tabla de verdad que describe al sumador binario de 2 variables es la siguiente: Cuadro 1: Tabla de verdad del sumador binario. Cin a b s Cout 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 Tras compilar el programa, se genera el siguiente esquemático RTL: LATEX 11 Facultad de Ingenieŕıa Diseño Digital VLSI Figura 12: RTL del sumador binario de 3 bits. El programa descrito emplea en su arquitectura un operador de adición con vectores princi- palmente. En general, se compone de lo siguiente: Se importan las bibliotecas base IEEE, empleando valores sin signo. Se declaran los puertos de la entidad, teniéndose como entradas a a y b, el acarreo de entrada Cin y, como salida, la variable salsum que representa el resultado de la operación y cout que se refiere al acarreo de salida posicionado a la izquierda del resultado. Pasando a la arquitectura, se declara una señal auxiliar mas1 que es de un bit adicional a las entradas (4 bits), en donde se almacena el resultado de sumar Cin+a+ b; concatenando un bit para que el código funcione. Luego, con cout <= mas1(3) se extrae el bit más significativo de la suma, el cual se asignará como valor a cout. Por último, el bit adicional en la posición más significativa (el bit 4) se descarta y el restante se guarda en salsum, que se trata del resultado. A continuación, se muestran los pines asignados al programa una vez que este fue verificado y compilado con éxito: En el siguiente diagrama se muestra la estrategia de asignación empleada para los pines, con LATEX 12 Facultad de Ingenieŕıa Diseño Digital VLSI Figura 13: Asignación de pines para el sumador de 3 bits. el objetivo de que la salida se visualice de forma clara: Figura 14: Pines asignados en la DE10-Lite. Descargando el programa a la tarjeta, se harán operaciones de suma para verificar el funcio- LATEX 13 Facultad de Ingenieŕıa Diseño Digital VLSI namiento correcto del programa: Figura 15: Primer suma realizada. Figura 16: Segunda suma realizada. LATEX 14 Facultad de Ingenieŕıa Diseño Digital VLSI Figura 17: Tercera suma realizada con Cin = 1. 3.3. Multiplexor El multiplexor es un elemento de control de flujo compuesto, en su forma más básica, de una serie de entradas, habilitadores y una única salida. Los habilitadores son quienes determinan la ĺınea de entrada que será seleccionada y, por tanto, el valor z a la salida. Figura 18: Diagrama de un multiplexor y su tabla de verdad. Considerando el diagrama anterior, se procede a escribir el código para implementar un mul- tiplexor 4:1 que estará compuesto por un selector vectorial sel de 2 bits (para implementar los habilitadores a y b), y las ĺıneas de entrada A conformadas por un vector de 4 bits. Como salida, se LATEX 15 Facultad de Ingenieŕıa Diseño Digital VLSI tendrá un valor F que estará determinado por medio de una estructura select dentro de VHDL: Figura 19: Código del multiplexor 4:1 compilado exitosamente. Figura 20: Código del multiplexor 4:1 compilado exitosamente. Para la asignación de pines, se emplea la siguiente distribución para hacer uso del multiplexor: LATEX 16 Facultad de Ingenieŕıa Diseño Digital VLSI Figura 21: Asignación de pines para el multiplexor. Figura 22: Visualización de los dip-switchs y la salida LED. Una vez realizado lo anterior, se realiza el proceso de descarga hacia la tarjeta y se procede a comprobar el correcto funcionamiento del multiplexor implementado mostrando el funcionamiento durante los 4 casos correspondientes a los observados en la tabla de verdad mostrada al inicio del LATEX 17 Facultad de Ingenieŕıa Diseño Digital VLSI experimento; considerando que tendremos las entradas A(3), A(2), A(1) en alto. Figura 23: Primer estado. Figura 24: Segundo estado. LATEX 18 Facultad de Ingenieŕıa Diseño Digital VLSI Figura 25: Tercer estado. Figura 26: Último estado. LATEX 19 Facultad de Ingenieŕıa Diseño Digital VLSI 4. Conclusiones El desarrollo de esta práctica estuvo marcado por un proceso de reaprendizaje debido a que muchos de los conceptos abordados en la práctica ya no los recordaba con detalle al haber cursado la materia antecedente hace un año. Sin embargo, gracias al material en v́ıdeo proporcionado logré recordar estos antecedentes y llevar a cabo las actividades con éxito. Gracias a la experiencia obtenida al realizar esta práctica he logrado refrescar muchas de las estructuras esenciales del lenguaje VHDL y las herramientas básicas de Quartus para llevar a cabo proyectos, compilar, realizar diagramas RTL, simular si es necesario y, finalmente, ejecutar programas por medio de la descarga a tarjeta. Considerando que los objetivos propuestos al inicio de la práctica han sido cumplidos con éxito al haberse realizado una explicación de los códigos propuestos, aśı como su compilación y ejecución f́ısica en la tarjeta, es posible afirmar que la práctica ha sido un éxito y me encuentro preparado para llevar a cabo proyectos de mayor nivel en este proceso de reaprendizaje con el fin de poder estudiar los temas de la asignatura con éxito. Bibliograf́ıa Chávez, E. F. (2020a). Compuertas Básicas. Consultado el 28 de agosto de 2022, desde https://www. youtube.com/watch?v=84PT9PCgkFI%5C&ab channel=ProfesoraElizabethFonseca Chávez, E. F. (2020b). Multiplexores VHDL. Consultado el 28 de agosto de 2022, desde https : //www.youtube.com/watch?v=7pTf 1W4l58%5C&ab channel=ProfesoraElizabethFonseca Chávez, E. F. (2020c). Sumadores VHDL. Consultado el 28 de agosto de 2022, desde https://www. youtube.com/watch?v=wVU7 hszzgw%5C&ab channel=ProfesoraElizabethFonseca Rodŕıguez, N. E. C. (s.f.-a). Introducción a los Sistemas Digitales. Consultado el 28 de agosto de 2022, desde http://profesores.fi-b.unam.mx/normaelva/introduccion.pdf LATEX 20 https://www.youtube.com/watch?v=84PT9PCgkFI%5C&ab_channel=ProfesoraElizabethFonseca https://www.youtube.com/watch?v=84PT9PCgkFI%5C&ab_channel=ProfesoraElizabethFonseca https://www.youtube.com/watch?v=7pTf_1W4l58%5C&ab_channel=ProfesoraElizabethFonseca https://www.youtube.com/watch?v=7pTf_1W4l58%5C&ab_channel=ProfesoraElizabethFonseca https://www.youtube.com/watch?v=wVU7_hszzgw%5C&ab_channel=ProfesoraElizabethFonseca https://www.youtube.com/watch?v=wVU7_hszzgw%5C&ab_channel=ProfesoraElizabethFonseca http://profesores.fi-b.unam.mx/normaelva/introduccion.pdf Facultad de Ingenieŕıa Diseño Digital VLSI Rodŕıguez, N. E. C. (s.f.-b). Multiplexores. Consultado el 28 de agosto de 2022, desde http : / / profesores.fi-b.unam.mx/normaelva/multiplexores binarios.pdf Rodŕıguez, N. E. C. (s.f.-c). Plataforma de diseño Quartus. Consultado el 28 de agosto de 2022, desde http://profesores.fi-b.unam.mx/fpga/plataforma de diseno Quartus.pdf Sánchez-Elez, M. (2014). Introducción a la Programación en VHDL. Consultado el 28 de agosto de 2022, desde http://profesores.fi-b.unam.mx/normaelva/introduccion.pdf Zubia, J. G. (s.f.). Suma en binario puro sin signo. Consultado el 28 de agosto de 2022, desde https ://weblab .deusto . es/olarex/cd/UD/Puertas%5C%20logicas ES final/operaciones aritmticas con sistema binario suma y resta.html Los créditos de las fotograf́ıas pertenecen a sus respectivos autores.© LATEX 21 http://profesores.fi-b.unam.mx/normaelva/multiplexores_binarios.pdf http://profesores.fi-b.unam.mx/normaelva/multiplexores_binarios.pdf http://profesores.fi-b.unam.mx/fpga/plataforma_de_diseno_Quartus.pdf http://profesores.fi-b.unam.mx/normaelva/introduccion.pdf https://weblab.deusto.es/olarex/cd/UD/Puertas%5C%20logicas_ES_final/operaciones_aritmticas_con_sistema_binario_suma_y_resta.html https://weblab.deusto.es/olarex/cd/UD/Puertas%5C%20logicas_ES_final/operaciones_aritmticas_con_sistema_binario_suma_y_resta.html Objetivos Introducción Compuerta AND Suma binaria Multiplexor Desarrollo de experimentos Compuerta AND Sumador binario Multiplexor Conclusiones
Compartir