Está en la página 1de 9

MANUAL DE PRÁCTICAS

DE
DISEÑO DE SISTEMAS DIGITALES

Noviembre de 2013

AUTORES
Dr. Homero Miranda Vidales
Ing. Alfredo Arriaga Contreras
Diego Abraham Marín Pachicano

Nombre Flores Hernández José Antonio


Brigada 06 Día Jueves Hora 13:00
Nombre del instructor Rubio Galarza Luis Ricardo

Laboratorio de Diseño de Sistemas Digitales


Práctica No. 3 Funciones Lógicas en VHDL

/ /

FUNCIONES LÓGICAS EN VHDL (DEM)


Práctica 3

Procedimiento
0 1 2 3 4
Participación Calificación de
0 1 2 la Práctica
Comprensión
0 1
Conclusiones
0 1 2 3

OBJETIVO

Que el alumno reafirme los métodos de simplificación de funciones lógicas y aprenda a


implementar dichas funciones mínimas en código VHDL.

MATERIAL Y EQUIPO A UTILIZAR

1) Tarjeta de desarrollo NexysTM 3


2) Software XilinxR ISE WebPack
3) Software XilinxR PlanAhead
4) Software Diligent Adept
5) Equipo de cómputo

PROCEDIMIENTO

3.1 A partir de la siguiente tabla de verdad, genere la función lógica correspondiente.

A B C Y
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 0

Laboratorio de Diseño de Sistemas Digitales 9


Universidad Autónoma de San Luis Potosí

Facultad de Ingeniería

Práctica No. 3:
“FUNCIONES LÓGICAS EN VHDL (DEM)”

Laboratorio de Mecatrónica Diseño de Sistemas Digitales


Área Mecánica y Eléctrica
Facultad de Ingeniería UASLP
Alumno: Flores Hernández José Antonio
Carrera: Ingeniería en Mecatronica
Instructor: Rubio Galarza Luis Ricardo

1. Introducción
El álgebra de Boole es una herramienta de fundamental importancia en el mundo de la computación. Las propiedades
que se verifican en ella sirven de base al diseño y la construcción de las computadoras que trabajan con objetos cuyos
valores son discretos, es decir las computadoras digitales, en particular las binarias (en las cuales los objetos básicos
tienen solo 2 valores posibles) las que son, en definitiva, la totalidad de las computadoras de uso corriente. El hecho
que la expresión de una función sea lo más simple posible es de fundamental importancia en la construcción práctica
de circuitos lógicos, por eso analizaremos algunos métodos para simplificar expresiones booleanas.

Método algebraico.
El método consiste en la aplicación, más o menos ingeniosa, de transformaciones algebraicas de manera de lograr
expresiones más sencillas. Por supuesto que este no es un método sistemático, pero es la base, al fin, de los métodos
sistemáticos. Para esto se hace uso de maxi términos y mini términos:

 Mini término: Es un producto booleano en la que cada variable aparece sólo una vez; es decir, es una
expresión lógica que se compone de variables y los operadores lógicos AND y NOT.

 Maxi término: Es una expresión lógica que se compone de variables y los operadores lógicos OR y NOT.
Mapas de Karnaugh
Los Mapas de Karnaugh son una herramienta muy utilizada para la simplificación de circuitos lógicos. Cuando se
tiene una función lógica con su tabla de verdad y se desea implementar esa función de la manera más económica
posible se utiliza este método. La tabla de Karnaugh consiste en una representación bidimensional de la función que
se quiere simplificar. Si la función viene expresada como una tabla de verdad, entonces la tabla de Karnaugh puede
verse como una forma alternativa de representación 2D. Puesto que la tabla de verdad de una función de n variables
posee 2n filas, la tabla de Karnaugh correspondiente debe poseer también 2n celdas. Una vez construida la tabla de
Karnaugh se procede a la reducción del número de términos (si es posible) mediante la agrupación de celdas
adyacentes en la tabla con valor ‘1’

2. Objetivos
Que el alumno reafirme los métodos de simplificación de funciones lógicas y aprenda a implementar dichas
funciones mínimas en código VHDL.

Práctica No. 3: FUNCIONES LÓGICAS EN VHDL (DEM)


1/1
Universidad Autónoma de San Luis Potosí

Facultad de Ingeniería

3. Desarrollo
De acuerdo a la tabla 1, primero se obtiene la función canónica mediante el uso de mini términos, después mediante
el método algebraico se tiene que simplificar la función.

Tabla 1. Tabla de verdad de 4 entradas y 3 salidas.


A B C D S(0) S(1) S(2)
0 0 0 0 0 0 1 0
1 0 0 0 1 0 1 1
2 0 0 1 0 1 0 1
3 0 0 1 1 0 0 1
4 0 1 0 0 1 1 0
5 0 1 0 1 1 0 1
6 0 1 1 0 1 0 1
7 0 1 1 1 0 1 0
8 1 0 0 0 1 1 1
9 1 0 0 1 0 1 0
10 1 0 1 0 1 0 1
11 1 0 1 1 1 1 1
12 1 1 0 0 0 0 1
13 1 1 0 1 1 0 1
14 1 1 1 0 1 1 0
15 1 1 1 1 0 0 0

Tomando en cuenta los mini términos, se puede escribir la siguiente función canónica de cada una de las salidas:

𝑆(0) = (𝐴̅𝐵̅𝐶𝐷
̅ ) + (𝐴̅𝐵𝐶̅ 𝐷
̅ ) + (𝐴̅𝐵𝐶̅ 𝐷 ) + (𝐴̅𝐵𝐶𝐷
̅ ) + (𝐴𝐵̅𝐶̅ 𝐷 ̅ ) + (𝐴𝐵̅𝐶𝐷) + (𝐴𝐵𝐶̅ 𝐷 ) + (𝐴𝐵𝐶𝐷
̅ ) + (𝐴𝐵̅𝐶𝐷 ̅)

𝑆(1) = (𝐴̅𝐵̅𝐶̅ 𝐷
̅ ) + (𝐴̅𝐵̅𝐶̅ 𝐷 ) + (𝐴̅𝐵𝐶̅ 𝐷
̅ ) + (𝐴̅𝐵𝐶𝐷) + (𝐴𝐵̅𝐶̅ 𝐷
̅ ) + (𝐴𝐵̅𝐶̅ 𝐷 ) + (𝐴𝐵̅𝐶𝐷) + (𝐴𝐵𝐶𝐷
̅)

𝑆(2) = (𝐴̅𝐵̅𝐶̅ 𝐷 ) + (𝐴̅𝐵̅𝐶𝐷̅ ) + (𝐴̅𝐵̅𝐶𝐷) + (𝐴̅𝐵𝐶̅ 𝐷 ) + (𝐴̅𝐵𝐶𝐷


̅ ) + (𝐴𝐵̅𝐶̅ 𝐷 ̅ ) + (𝐴𝐵̅𝐶𝐷) + (𝐴𝐵𝐶̅ 𝐷
̅ ) + (𝐴𝐵̅𝐶𝐷 ̅)
+ (𝐴𝐵𝐶 𝐷)̅

Lo siguiente será simplificar las 3 funciones de salida:

𝑆(0) = (𝐴̅𝐵̅𝐶𝐷
̅ ) + (𝐴̅𝐵𝐶̅ 𝐷
̅ ) + (𝐴̅𝐵𝐶̅ 𝐷 ) + (𝐴̅𝐵𝐶𝐷
̅ ) + (𝐴𝐵̅𝐶̅ 𝐷 ̅ ) + (𝐴𝐵̅𝐶𝐷) + (𝐴𝐵𝐶̅ 𝐷 ) + (𝐴𝐵𝐶𝐷
̅ ) + (𝐴𝐵̅𝐶𝐷 ̅)

𝑆(0) = 𝐴𝐶𝐷 ̅ + 𝐴̅𝐵𝐶̅ + 𝐴̅𝐵𝐷


̅ + 𝐵̅𝐶𝐷 ̅ + 𝐵𝐶̅ 𝐷 + 𝐵𝐶𝐷
̅ + 𝐴𝐵̅𝐷
̅ + 𝐴𝐵̅𝐶 + 𝐴𝐶𝐷
̅

𝑆(1) = (𝐴̅𝐵̅𝐶̅ 𝐷
̅ ) + (𝐴̅𝐵̅𝐶̅ 𝐷 ) + (𝐴̅𝐵𝐶̅ 𝐷
̅ ) + (𝐴̅𝐵𝐶𝐷) + (𝐴𝐵̅𝐶̅ 𝐷
̅ ) + (𝐴𝐵̅𝐶̅ 𝐷 ) + (𝐴𝐵̅𝐶𝐷) + (𝐴𝐵𝐶𝐷
̅)

𝑆(1) = 𝐴̅𝐵̅𝐶̅ + 𝐴̅𝐶̅ 𝐷


̅ + 𝐵̅𝐶̅ 𝐷
̅ + 𝐵̅𝐶̅ 𝐷 + 𝐴𝐵̅𝐶̅ + 𝐴𝐵̅𝐷

Práctica No. 3: FUNCIONES LÓGICAS EN VHDL (DEM)


2/1
Universidad Autónoma de San Luis Potosí

Facultad de Ingeniería

𝑆(2) = (𝐴̅𝐵̅𝐶̅ 𝐷 ) + (𝐴̅𝐵̅𝐶𝐷̅ ) + (𝐴̅𝐵̅𝐶𝐷) + (𝐴̅𝐵𝐶̅ 𝐷 ) + (𝐴̅𝐵𝐶𝐷


̅ ) + (𝐴𝐵̅𝐶̅ 𝐷 ̅ ) + (𝐴𝐵̅𝐶𝐷) + (𝐴𝐵𝐶̅ 𝐷
̅ ) + (𝐴𝐵̅𝐶𝐷 ̅)
+ (𝐴𝐵𝐶 𝐷)̅

̅𝐵
𝑆(2) = 𝐴 ̅𝐶̅ 𝐷 + 𝐴
̅𝐷 + 𝐴 ̅𝐵 ̅𝐶𝐷
̅𝐶 + 𝐴 ̅+𝐵
̅𝐶𝐷 ̅𝐶𝐷 + 𝐵𝐶̅ 𝐷 + 𝐴𝐵
̅+𝐵 ̅𝐷̅ + 𝐴𝐶̅ 𝐷 ̅𝐶 + 𝐴𝐵𝐶̅
̅ + 𝐴𝐵

El otro metodo que usaremos para obtener una funcion canonica de cada salida sera mediante mapas de Karnaugh,
los cuales se describen a continuacion, siendo un mapa por salida y la funcion que se puede obtener de ellos:

Tabla 2. Mapa de las combinaciones.


AB \ CD 00 01 11 10
00 0 1 3 2
01 4 5 7 6
11 12 13 15 14
10 8 9 11 10

Tabla 3. Mapa de karnaugh para la salida S(0).


AB \ CD 00 01 11 10
00 0 0 0 1
01 1 1 0 1
11 0 1 0 1
10 1 0 1 1

𝑆(0) = 𝑐𝑑̅ + 𝑎̅𝑏𝑐̅ + 𝑏𝑐̅𝑑 + 𝑎𝑏̅𝑐 + 𝑎𝑏̅𝑑̅

Tabla 4. Mapa de karnaugh para la salida S(1).


AB \ CD 00 01 11 10
00 1 1 0 0
01 1 0 1 0
11 0 0 0 1
10 1 1 1 0

𝑆(1) = 𝑏̅𝑐̅ + 𝑎̅𝑐̅𝑑̅ + 𝑎𝑏̅𝑑 + 𝑎̅𝑏𝑐𝑑 + 𝑎𝑏𝑐𝑑̅

Tabla 5. Mapa de karnaugh para la salida S(2).


AB \ CD 00 01 11 10
00 0 1 1 1
01 0 1 0 1
11 1 1 0 0
10 1 0 1 1

𝑆(2) = 𝑏̅𝑐 + 𝑏𝑐̅𝑑 + 𝑎𝑐̅𝑑̅ + 𝑎̅𝑐𝑑̅ + 𝑎̅𝑐̅𝑑

Una vez obtenidas estas funciones se pueden comparar con las primeras que se obtuvieron por medio del metodo
algebraico, y se puede confirmar que el metodo algebraico no siempre nos va a proporcionar la funcion mas sencilla
o mas simple, pero de igual manera nos acerca al resultado mas exacto que nos propociona los mapas de karnaugh.

Práctica No. 3: FUNCIONES LÓGICAS EN VHDL (DEM)


3/1
Universidad Autónoma de San Luis Potosí

Facultad de Ingeniería

Por ultimo se crea el codigo que se usa para simular las salidas del sistema, para este caso se utilizan las salidas
obtenidas por medio del metodo mapas de karnaugh, se crea el proyecto necesario para implementarlo en la tarjeta
FPGA NEXYS3 y se carga mediante el software Adept. A continuacion se muestran las evidencias de la simulacion
y el resultado final, coincidiendo las salidas a las descritas en la tabla 1.

Figura1. Codigo VHDL utilizado para la simulación.

Figura2. Cargando el código mediante software adept a la nexys3.

Práctica No. 3: FUNCIONES LÓGICAS EN VHDL (DEM)


4/1
Universidad Autónoma de San Luis Potosí

Facultad de Ingeniería

Figura3. Tarjeta Nexys 3 mostrando combinación 0.

Figura4. Tarjeta Nexys 3 mostrando combinación 3.

Práctica No. 3: FUNCIONES LÓGICAS EN VHDL (DEM)


5/1
Universidad Autónoma de San Luis Potosí

Facultad de Ingeniería

Figura5. Tarjeta Nexys 3 mostrando combinación 6.

4. Respuestas a preguntas de comprensión:


(Nota: En caso de que la práctica lo solicite, anotar las preguntas de comprensión y su respuesta correspondiente.)

1. ¿Cuáles son las problemáticas del algebra de Boole?


Las funciones que se obtienen a partir de este método no suelen ser más simples que se podrían obtener
como funciones canónicas de la tabla de verdad y llegar a la función reducida suele ser más complejo o
tardado.

2. ¿Cuáles son las ventajas de utilizar el método de mapas de Karnaugh?


La función reducida suele ser más exacta a comparación del algebra de Boole y aparte se obtiene de
manera más directa y rápida.

3. ¿Por qué es necesario nombrar todas las entradas con los nombres de los pines de la tarjeta de desarrollo
Nexys3?
Para poder dirigir las salidas a su lugar correspondiente, de lo contrario se podría malinterpretar la salida
o señales que nos muestra la NEXYS 3.

Práctica No. 3: FUNCIONES LÓGICAS EN VHDL (DEM)


6/1
Universidad Autónoma de San Luis Potosí

Facultad de Ingeniería

5. Conclusiones generales
La reducción de funciones canónicas de una tabla de verdad nos permiten simplificar de manera efectiva todas las
posibles variables y salidas de un sistema, esto nos ayuda a su vez a poder determinar el comportamiento de un sistema
y a predecir o calcular como se comportara bajo condiciones exactas, lo cual es la variación de las señales de entrada
y la o las señales de salida. Sin embargo dentro de los diferentes métodos que pudiesen existir para realizar esta
función, lo que siempre resultara más útil es aquel método que nos permita obtener una función canoníca más sencilla
y exacta, y por supuesto que esta sea más fácil de obtener. Ya que de este modo nuestro trabajo se vuelve más sencillo
y eficaz al realizar el estudio o simulaciones de determinados sistemas. Por esto es que se puede decir, que de ambos
métodos vistos en la práctica, los mapas de karnaugh son más útiles al momento de querer hacer representaciones
canónicas de una tabla de verdad, ya que a partir de un esquema más sencillo se puede obtener directamente una
función mucho más sencilla de la que obtendríamos si empleáramos el método algebraico.

6. Referencias
1. https://www.fing.edu.uy/tecnoinf/mvd/cursos/arqcomp/material/teo/arq-teo03.pdf
2. http://www.mate.unlp.edu.ar/practicas/111_3_0505202117502.pdf
3. https://bookdown.org/alberto_brunete/intro_automatica/mapa-de-karnaugh.html
4. https://unicrom.com/mapas-de-karnaugh-simplificacion-de-funciones/
5. http://www.itnuevolaredo.edu.mx/takeyas/apuntes/matematicas_discretas/apuntes/Algebra_Booleana.pdf

Práctica No. 3: FUNCIONES LÓGICAS EN VHDL (DEM)


7/1

También podría gustarte