El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
Sistemas digitales - Practica 3
1. UNIVERSIDAD AUTONOMA DE QUERETARO
FACULTAD DE INFORMATICA
ING. EN TELECOMUNICACIONES
SISTEMAS DIGITALES
Prof. Dr. J. Carlos Pedraza
PRACTICA No. 3
“Programar nuestro GAL22V10”
Alumnos:
Ramírez Cruz Uriel Exp. 215488
Reyes Cruz Luis Ángel Exp. 163986
Paniagua Martínez Jonathan Exp. 215486
Uribe García Alejandro Exp. 215484
2. Objetivo
Que el alumno utilice lenguaje de programación VHDL, así también el programa Galaxy para
configurar el hardware del dispositivo lógico programable GAL22V10 utilizando el programador,
usando una función lógica y resolviéndola con el método de minimización de Quine Mc. Cluskey.
Antecedentes
Método de Quine Mc. Cluskey
es un método de simplificación de funciones booleanas desarrollado por Willard Van Orman Quine
y Edward J. McCluskey. Es funcionalmente idéntico a la utilización del mapa de Karnaugh, pero su
forma tabular lo hace más eficiente para su implementación en lenguajes computacionales, y
provee un método determinístico de conseguir la mínima expresión de una función booleana.
Lenguaje VHDL
Diseñado para el desarrollo de sistemas digitales de tipo combinacional y secuencial.
Desarrollo de microcontroladores a través de una Unidad Central de Procesamiento (CPU).
Permite conocer los retardos, tiempos de respuesta, realizar simulaciones, etc.
La principal filosofía es que el dispositivo se programa sólo cuando la simulación funciona
correctamente.
De forma paralela, se desarrolla la tarjeta de circuito impreso, logrando obtener un sistema en un
menor tiempo.
4. Material
Programa Galaxy
Programador Para GAL
dispositivo lógico programable GAL22V10
Desarrollo
Realizar lla función por el método de minimización de Quine Mc. Cluskey.
Función lógica de 4 variables.
𝑓4 = ∑(0,1,2,3,4,8,10,14,15)
1. Agrupación de términos por índice binario
Índice binario Representación binaria Reducción
0 0000 0
1 0001 1
0010 2
0100 4
1000 8
2 0011 3
1010 10
3 1110 14
4 1111 15
2. El segundo paso del método consiste en realizar las particiones a la tabla original para
localizar todas las adyacencias existentes, eliminando la variable que cambia su valor.
1ª Partición
Índice binario Representación binaria Reducción
0 000- 0-1
00-0 0-2
0-00 0-4, I5
-000 0-8
1 00-1 1-3
001- 2-3
-010 2-10
10-0 8-10
2 1-10 10-14, I4
3 111- 14-15, I3
5. 3. Definido.
Se dice que 2 términos son compatibles si y solo si cumplen las siguientes condiciones:
Tener un índice binario adyacente
Contener las mismas variables
Tener las mismas variables eliminadas
Solo cambie de valor una variable entre ellos
Índice binario Representación binaria Reducción
0 00— 0-1-2-3, I2
-0-0 0-2-8-10, I1
4. Implicante primo
Se denomina implicarte primo a todo termino que contiene al menos un elemento que no ha sido
cubierto por ningún otro implicarte primo de una partición superior
𝐼ℎ → 𝑖𝑚𝑝𝑙𝑖𝑐𝑎𝑛𝑡𝑒 ℎ
Implicante primo
Implicante primo Términos cubiertos Representación binaria
I1 0-2-8-10 -0-0
I2 0-1-2-3 00--
I3 12-15 111-
I4 10-14 1-10
I5 0-4 0-00
5. El último paso del método consiste en la selección de los implicantes primos secuenciales
y se lleva acabo formando una tabla en los implicantes primos y los min términos.
Implicante 0 1 2 3 4 8 10 14 15
I1 X X X X
I2 X X X X
I3 X X
I4 X X
I5 X X
𝑓4 𝐴, 𝐵, 𝐶, 𝐷 = 𝐼1 + 𝐼2 + 𝐼3 + 𝐼5 = + + 𝐴𝐵𝐶 +
𝐵𝐷 𝐴𝐵 𝐴𝐶𝐷
6. 2. Programamos nuestro código en Galaxy , este el que nos permite programar en VHDL y una vez
compilado correctamente el programa nos genera 2 archivos muy importantes: el rpt que nos
sirve para saber en que pines de la GAL van a quedar nuestras entradas y salidas una vez que lo
pasemos y el.jed que en realidad es el archivo que se pasa a la GAL ya que este contiene el mapa
de fusibles que se usaran.
El active sim sirve para simular el programa en VHDL y saber si la programación fue adecuada.
Y una vez hecho esto así es como queda nuestro código y nuestro mapa de fusibles.
Después damos seguimiento a pasarlos al GAL22V10 con el programador
--Practica 2
-- Equipo
Library IEEE;
USE IEEE.std_logic_1164.all;
ENTITY practica2 is
port(
--Variables de entrada
A:in std_logic;
B:in std_logic;
C:in std_logic;
D:in std_logic;
--salidas
Y:out std_logic;
Z:out std_logic
);
7. END practica2;
ARCHITECTURE practica2 OF practica2 IS
BEGIN
Y <= ((not A) and (not B) and (not C)) or ((not A) and B and C) or ( A and (not B) and C) or
( A and B and (not C));
Z <= (A and (not B) and (not D)) or (B and C and D) or (not A) ;
END practica2;
8.
9.
10. 3. Así es como queda realizada nuestra practica finalmente en una simulación en Proteus Y
físicamente en nuestro GAL22V10.
11. Conclusión
Esta práctica nos enseña a manejar el dispositivo lógico programable GAL22V10, también
saber cómo resolver nuestra función lógica utilizando el método el método de
minimización de Quine Mc. Cluskey y a su ves practicamos un poco mas el lenguaje de
programación VHDL y del programa Galaxy .
Por último nos enseña como pasarlo al programador para que este guarde el código
generado en el dispositivo lógico programable GAL22V10.