Está en la página 1de 34

Universidad Nacional Autónoma de México

Facultad de Ingeniería
Departamento de Ingeniería Eléctrica
Laboratorio de Diseño Digital (6617)

Profesor: Ing. J. Héctor Murillo Quintero


Semestre 2023-1

Práctica No. 01

Introducción al software de
descripción de hardware y
compuertas lógicas
Grupo laboratorio: 02

Nieves González Jonathan Alexander


De Los Santos Ortiz Carlos Alejandro

12 de septiembre de 2022
Índice

Objetivo 3
Material 3
Introducción 3
Desarrollo 4
Actividad 1. Introducción al software de descripción de hardware. 4
Actividad 2. Para la función H. 11
Actividad 3. Para el problema, Jorge va al cine. 12
Actividad 4. Para la función F. 14
Actividad 5. Para la función G y G2. 15
Actividad 6. Para el sumador. 16
Actividad 7. Para el bus de datos. 17
Actividad 8. Para la función K. 18
Actividad 9. Para el comparador. 19
Conclusiones 21
Referencias 21
Investigación Previa 22
Objetivo
Analizar, diseñar, simular e implementar compuertas lógicas.

Material
o Software Quartus II

Introducción
Las Compuertas Lógicas son circuitos eléctricos especialmente diseñados para trabajar con datos booleano (0,
1). Éstos permiten dar datos de entrada y salida con funciones lógicas como suma y multiplicación
principalmente, aunque igualmente pueden volverse más complejas estás compuertas, dando como resultado
variantes que niegan entradas, afirman, incluyen o excluyen según sea el caso.

Las compuertas lógicas trabajan en estado Alto y estado Bajo, también llamandose, "1" o "0", los cuales se
relacionan con la lógica positiva y negativa del circuito digital; el estado Alto suele tener un valor de 5v como
máximo y el estado Bajo tiene un valor de 0v como mínimo, manteniendose un umbral entre ambos estados
donde el resultado puede variar sin saber con exactitud la salida que nos entregara. Las lógicas se explican a
continuación.

Algunas de las compuertas lógicas más comunes son: AND, OR, NOT, NAND, NOR, XOR, XNOR y se
desarrollaran más durante la investigación previa en el presente reporte de práctica.

VHDL, de sus siglas en inglés (Very High Speed Integrated Circuit Hardware Description Language) es un
lenguaje utilizado para la descripción de diseños digitale y para automatizar procesos de diseño electrónico;
tiene una sintaxis bastante amplia y permite modelar de manera estructural flujos de datos y comportamiento de
hardware en varios estilos.

Algunas de sus ventajas son:

​ - Circuitos descritos utilizando VHDL, siguiendo unas guías para síntesis, pueden ser utilizadas por
diversas herramientas de síntesis para crear e implementar circuitos.
​ - Los módulos creados en VHDL pueden utilizarse en diferentes diseños, lo que permite la reutilización
del código. Además, la misma descripción puede utilizarse para diferentes tecnologías sin tener que
rediseñar todo el circuito.
​ - Al estar basado en un estándar (IEEE std 1076-1987, IEEE std 1076-1993) los ingenieros de toda la
industria de diseño pueden usar este lenguaje para minimizar errores de comunicación y problemas de
compatibilidad.
​ - VHDL permite diseño Top-Down, esto es, describir (modelar) el comportamiento de los bloques de
alto nivel, analizarlos (simularlos) y refinar la funcionalidad en alto nivel requerida antes de llegar a
niveles más bajos de abstracción de la implementación del diseño.
​ - VHDL permite dividir o descomponer un diseño hardware y su descripción VHDL en unidades más
pequeñas (modularidad).

En la presente práctica se busca comprender la relación práctica entre el uso de compuertas lógicas
y del lenguaje VHDL para programar físicamente sobre una tarjeta las funciones necesarias para
cualquier diseño que se quiera realizar en un futuro.
Desarrollo
Actividad 1. Introducción al software de descripción de hardware.
Realice todos los pasos requeridos para crear en el entorno de la plataforma de Quartus, un proyecto donde su
primer archivo sea un archivo por bloques/esquemático utilizando las librerías de la plataforma, para observar las
funciones lógicas, asigne los pines que corresponde a las entradas y a las salidas e implemente su proyecto en la
tarjeta de desarrollo.

I. Primeramente, se abre la aplicación de Quartus (Para la presente práctica se utilizara Quartus II en su


versión 9.1sp2).

II. Se inicia configurando el ayudante de proyecto (Project Wizard)


III. Después de mostrarse la ventana con información de introducción al Project Wizard, se mostrará la ventana
de directorios, donde el programa nos permitirá indicar en donde queremos guardar el proyecto, así como
permitirnos darle un nombre al mismo.

IV. Después de hacer clic en Next, se procederá a la ventana para añadir diseños de páginas. Permitirá añadir
archivos al proyecto. De momento se omitirá está ventana y se procederá a la siguiente.
V. La siguiente ventana es la página de ajustes de dispositivos. En está ventana se permitirá al usuario añadir las
tablas y dispositivos de la familia ALTERA con los que se desee trabajar en el proyecto, incluyendo su
modelo y especificaciones.
Para el caso del presente reporte de práctica, se añadió la tarjeta MAX II en el modelo EPM240T100C5,
dado que es la que se trabajará durante el curso.

VI. La siguiente ventana permitirá añadir algunos ajustes especiales relacionados a las herramientas, simulación y
tiempo de análisis para el proyecto. De momento se omitirán los ajustes de esta ventana y se clickea Next.

VII. Finalmente, la siguiente ventana mostrará el resumen de los ajustes establecidos para el proyecto que se ha
creado. Si todos los ajustes son correctos, se presiona el botón de Finish.
VIII. Una vez creado el proyecto. aparecerá una interfaz parecida a la siguiente. Para crear un archivo esquemático
de bloques se dará clic en la pestaña File -> New -> Block Diagram / Schematic File.
Aparecerá un nuevo archivo en la interfaz.

IX. Para añadir elementos al diagrama de bloques, se empezará clickeando en el ícono Symbol Tool
X. Se desplegará la siguiente ventana. Para buscar las funciones necesarias simplemente se escribe el
nombre de la función o su clave de compuerta lógica.

XI. Posteriormente, se construirán las compuertas lógicas correspondientes junto a sus respectivas entradas y
salidas en forma de pines.
A continuación, se muestran las compuertas construidas durante la práctica:

❖ AND:
❖ OR:

❖ NOT:

❖ NAND:

❖ NOR:

❖ XOR:

❖ XNOR:
❖ BUFFER:

Actividad 2. Para la función H.


Usando como guía el esquemático propuesto, compruebe su diseño con la tabla de verdad para su
sistema combinacional utilizando una simulación funcional.
Como parte de su análisis puede realizar la reducción de la función y comentar el funcionamiento
de ambos circuitos.
1

A B C H
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 0

Se sobreentiende que no hay diferencia respecto al resultado en cuanto a la función reducida


respecto a la función sin reducir.
Actividad 3. Para el problema, Jorge va al cine.
Describa detalladamente el planteamiento del problema, comente las modificaciones que se tienen
que realizar cuando se crea una descripción estructurada.
Como parte de su análisis puede realizar la reducción de la función y comentar si es necesario
utilizar todas las variables.

El problema plantea si Jorge puede ir al cine acompañado y con auto, para esto pude ir con su
amiga Carme, la cual solo está disponible si la temperatura es menor a 20° C y además que no esté
lloviendo, por otro lado puede ir acompañado de su padre, el cual está disponible si la temperatura
es mayor a 20° C, ya que de lo contrario visitará a su mamá. Por último, tenemos el auto disponible
si no llueve (el papá de Jorge no ocupará el auto) o la temperatura es mayor a 20 °C (su padre no
verá a su mamá, por lo que puede ir en auto con Jorge).

Por lo que tenemos las siguientes variables:


Entradas
L=1 (llueve)
T=1 (temperatura>20° C)

Salidas
C=1 (Carmen disponible)
P=1 (papá disponible)
A=1 (auto disponible)
X=1 (Jorge acompañado y en auto)

Para la descripción estructurada se utilizaron 5 variables auxiliares, esto para declarar las
condiciones en las que Carmen estaría disponible (m0), el papá disponible (m1), el auto disponible
(m2), después para declarar cuando la salida X sea 1, es decir las condiciones en que Jorge puede ir
al cine acompañado y en auto (n1 y n2).
Podemos decir que no es necesario utilizar todas las variables ya que en la reducción del circuito
solo utilizamos 3 variables, como se ve en el punto 5 del previo, la implementación en VHDL
quedaría de la siguiente forma:

Como se observa la reducción de nuestro circuito es X = L’ + T, lo que significa que para que Jorge
vaya al cine acompañado y en auto es necesario que no esté lloviendo o que la temperatura sea
mayor a 20° C.
Actividad 4. Para la función F.
Realice la simulación de la función reducida y mediante la tabla combinacional generada
anteriormente compruebe la validez de esta función con respecto a la original. Determine qué
propiedades intervinieron para llegar a una expresión mínima.

Esquema de la función reducida.

Simulación de la función reducida.

Como se observa, la simulación tiene el mismo comportamiento que se ve en la simulación del


punto 6 del cuestionario previo, o visto de otra forma obedece a la misma tabla de verdad.

p q r F

0 0 0 0 1

1 0 0 1 0

2 0 1 0 1

3 0 1 1 1

4 1 0 0 1

5 1 0 1 1

6 1 1 0 0

7 1 1 1 1
Actividad 5. Para la función G y G2.
Compruebe al observar ambas salidas la validez de la función G2 con respecto a la original.

Obedeciendo a la tabla de verdad obtenida en el previo.

X Y Z G/G2

0 0 0 0 0

1 0 0 1 0

2 0 1 0 1

3 0 1 1 1

4 1 0 0 1

5 1 0 1 1

6 1 1 0 0

7 1 1 1 1

Se muestran las simulaciones de la función G y G2 respectivamente, en ellas se muestran que ambas


funciones obedecen a la misma tabla de verdad.

Simulación de la función G.

Simulación de la función G2.


Actividad 6. Para el sumador.
Realice la suma propuesta en el cuestionario previo mediante una simulación, estableciendo los
valores necesarios en la entrada del circuito realice las adecuaciones necesarias y describa
detalladamente el proceso de suma que se está llevando a cabo.

En la siguiente figura se muestra el esquema del sumador completo utilizando compuertas AND,
OR y NOT.

Ahora implementando el diseño anterior en un bloque para realizar la suma de 2 y 2 bits, tenemos
el siguiente diagrama.
A continuación se muestra la simulación de la suma propuesta en el cuestionario previo.

Actividad 7. Para el bus de datos.


Implemente la función, realice varias pruebas para las entradas A y B, comente la diferencia que
existe entre las salidas lógicas 1, 0 y Z.

Implementación en diagrama de bloques del conmutador.

La entrada G es un habilitador que está conectada a los buffer de las entradas A0, A1, B0 y B1, de
tal forma que al tener un 1 en G, en Z0 y Z1 se mostrarán los datos de B0 y B1 respectivamente,
mientras que si en G tenemos un 0, en Z0 y Z1 tendremos los valores de A0 y A1 respectivamente.

La diferencia entre las salidas de Z y los valores lógicos 1 y 0, es que en Z se pueden mostrar varios
datos si se hace con un bus de datos o podríamos tener señales más complicadas si las entradas A y
B fueran señales, esto dependerá de la implementación de circuito.
Actividad 8. Para la función K.
Mediante la función canónica compruebe la validez de la reducción. Analice las ventajas y
desventajas del uso del método de mapas de Karnaugh comparado con la metodología hecha con
álgebra booleana.

Como se puede ver en la simulación de la función estructurada en el punto 9 del previo, esta
obedece a la tabla de verdad obtenida a través de los mintérminos que se nos da.

Tabla de verdad de la función K.

W X Y Z K

0 0 0 0 0 1

1 0 0 0 1 1

2 0 0 1 0 0

3 0 0 1 1 1

4 0 1 0 0 0

5 0 1 0 1 1

6 0 1 1 0 1

7 0 1 1 1 0

8 1 0 0 0 0

9 1 0 0 1 0

10 1 0 1 0 0

11 1 0 1 1 1

12 1 1 0 0 1

13 1 1 0 1 1

14 1 1 1 1

15 1 1 1 1 1
Actividad 9. Para el comparador.
Realice las pruebas necesarias para comprobar la funcionalidad del comparador. Comente la
efectividad del uso de mapas de Karnaugh para solucionar este circuito.
Realice la simulación de las funciones reducidas.

Los mapas de Karnaugh fueron realmente efectivos para hallar las expresiones de las salidas G, E y
L, ya que se obtuvieron en unos pocos y sencillos pasos, cosa que no es tan fácil de observar
únicamente en la tabla de verdad.

A continuación se muestra la simulación del esquema de bloques mostrado en la figura anterior,


dado que este funciona mediante las funciones reducidas, esta simulación comprueba que las
expresiones son correctas.
Como se puede observar, este esquema cumple con mostrar las salidas adecuadamente como se plantea en la
siguiente tabla de verdad:

X1 X0 Y1 Y0 G E L
0 0 0 0 0 0 1 0
1 0 0 0 1 0 0 1
2 0 0 1 0 0 0 1
3 0 0 1 1 0 0 1
4 0 1 0 0 1 0 0
5 0 1 0 1 0 1 0
6 0 1 1 0 0 0 1
7 0 1 1 1 0 0 1
8 1 0 0 0 1 0 0
9 1 0 0 1 1 0 0
10 1 0 1 0 0 1 0
11 1 0 1 1 0 0 1
12 1 1 0 0 1 0 0
13 1 1 0 1 1 0 0
14 1 1 1 0 1 0 0
15 1 1 1 1 0 1 0
Conclusiones

❖ De Los Santos Ortiz Carlos Alejandro:

Las investigación previa fué un gran preámbulo para poder aplicar los conceptos básicos revisados durante
clase teórica para comprender la importancia de las tablas de verdad al momento de construir funciones
lógicas con sus respectivos circuitos combinacionales: de pasar de una función a una tabla de verdad, de
tabla de verdad a función booleana, simplificó muchísimo la cantidad de cálcuos booleanos necesarios al
momento de aplicar las funciones en el programa de Quartus II. Respecto al trabajo durante laboratorio, se
pudo comprender cómo se crea un proyecto donde se asigne la tarjeta de trabajo, cómo hacer un diagrama
la importancia del diagrama de bloques y como pasar de éste diagrama a una programación en VHDL,
necesaria para que la tarjeta cumpla su función; el asignar los pines en la tarjeta permitió comprender mejor
la relación que guarda lo realizado en la plataforma con respecto al trabajo en físico.

Finalmente, se puede concluir que las compuertas lógicas aun siendo el elemento más básico para el diseño
digital son elementos con una gran importancia, sobre todo las compuertas OR, AND y NOT, ya que de
ellas surgen las demás compuertas como XOR, NAND, XNOR, etc. Por supuesto, las primeras compuertas
mencionadas mantendrían una jerarquía de uso mayor, gracias a que las funciones en su forma más reducida
tendrían mayor aparición.

❖ Nieves González Jonathan Alexander

A través de las actividades de esta práctica y de la resolución del cuestionario previo, se logró una gran
comprensión sobre el entorno del software Quartus II, lo que es la base para la implementación de los
distintos circuitos que hemos estado viendo, sumadores completos, comparadores, sumadores de más de un
bit, o diseños que resuelvan distintas problemáticas, especialmente estos últimos circuitos realizados por
nosotros mismos nos ayudaron bastante para poder asimilar cómo es que funcionan las operaciones lógicas
que realizan las compuertas, AND, OR, NOT, XOR, XNOR y NAND y de esta forma implementarlas
correctamente en nuestros circuitos. Ya avanzada un poco más de la mitad de la práctica comenzamos a
utilizar mapas de Karnaugh, esto para encontrar las expresiones más simples para las salidas de nuestros
circuitos, lo que encontramos como una herramienta muy útil y fácil de usar, ya que es bastante gráfica la
metodología seguida para encontrar las zonas que nos simplifican expresiones, esto en contraste con el
álgebra booleana que usamos al inicio para encontrar las expresiones mínimas, ya que esta herramienta
depende bastante del conocimiento que tengas sobre los axiomas y teoremas que conozcas sobre el álgebra
booleana.

Otra cosa que cabe mencionar, es que el lenguaje de descripción de software a través de código, es decir
VHDL fue también bastante fácil de utilizar y muy práctica la manera en que puedes alternar entre realizar
diseños a través de código y por medio de diagramas esquemáticos.

Referencias
● Notas personal de clase teórica de Diseño Digital con Ing. Roberto Federico Mandujano Wild.
● Sánchez-Élez, M. (2014, julio). INTRODUCCIÓN A LA PROGRAMACIÓN EN VHDL. Facultad de

Informática Universidad Complutense de Madrid.


https://eprints.ucm.es/id/eprint/26200/1/intro_VHDL.pdf

● Mora Campos, A. (2010), Guía Básica del VHDL, Instituto Tecnológico de Querétaro,

http://www.itq.edu.mx/carreras/IngElectronica/archivos_contenido/Apuntes%20de%20materias/Apuntes

_VHDL_2016.pdf

Investigación Previa
Declaración estructural del circuito en VHDL.
Implementación por flujo de datos con ecuaciones booleanas.

Simulación

Por lo que vemos obtenemos la tabla de verdad y su respectiva reducción en esquema de bloques.

p q r F
0 0 0 0 1
1 0 0 1 0
2 0 1 0 1
3 0 1 1 1
4 1 0 0 1
5 1 0 1 1
6 1 1 0 0
7 1 1 1 1
Esquemático de la función G y declaración en VHDL de la función G2.

Tabla de verdad

X Y Z G/G2

0 0 0 0 0

1 0 0 1 0

2 0 1 0 1

3 0 1 1 1

4 1 0 0 1

5 1 0 1 1

6 1 1 0 0

7 1 1 1 1
Implementación del esquema del sumador completo para sumar 2 bits con 2 bits con acarreo inicial

en 0.
Declaración estructural de flujo de datos de la función K.

También podría gustarte