Logo Studenta

VLSI_Practica0_TGJL

¡Este material tiene más páginas!

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

Continuar navegando