sistemas digitales - practica 4

8
UNIVERSIDAD AUTONOMA DE QUERETARO FACULTAD DE INFORMATICA ING. EN TELECOMUNICACIONES SISTEMAS DIGITALES PRACTICA No. 3 “Funciones f(4) y f(5) para la GAL” 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 FECHA: 10/09/11

Upload: luis-reyes

Post on 29-Jun-2015

576 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Sistemas digitales - Practica 4

UNIVERSIDAD AUTONOMA

DE QUERETARO

FACULTAD DE INFORMATICA

ING. EN TELECOMUNICACIONES

SISTEMAS DIGITALES

PRACTICA No. 3

“Funciones f(4) y f(5) para la GAL”

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

FECHA: 10/09/11

Page 2: Sistemas digitales - Practica 4

Objetivo

El alumno realizara la primera práctica completa para programar una GAL con los conocimientos

que se han aprendido, los cuales son:

Reducir la función dada por el método de Quine Mc Cluskey, realizar el código en VHDL para

después simularlo y por ultimo pasarlo a la GAL para realizar el correspondiente circuito en el

Proto y probar su funcionamiento.

Antecedentes

Matriz Genérica Programable

Una Matriz Genérica Programable (GAL, Generic Array Logic) es una denominación que utilizaba originalmente Lattice Semiconductor y que más tarde se licenció a otros fabricantes. Un GAL en su forma básica es un PLD con una matriz AND reprogramable, una matriz OR fija y una lógica de salida programable mediante una macrocelda. Esta estructura permite implementar cualquier función lógica como suma de productos con un numero de términos definido.

En los PLDs no reprogramables la síntesis de las ecuaciones lógicas se realiza mediante quema de fusibles en cada punto de intersección de los pines de entrada con las compuertas.

En el caso de un GAL es básicamente la misma idea pero en vez de estar formada por una red de conductores ordenados en filas y columnas en las que en cada punto de intersección hay un fusible, el fusible se reemplaza por una celda CMOS eléctricamente borrable (EECMOS). Mediante la programación se activa o desactiva cada celda EECMOS y se puede aplicar cualquier combinación de variables de entrada, o sus complementos, a una compuerta AND para generar cualquier operación producto que se desee. Una celda activada conecta su correspondiente intersección de fila y columna, y una celda desactivada desconecta la intersección. Las celdas se pueden borrar y reprogramar eléctricamente. A continuación se muestran la estructura típica de un GAL y la macrocelda de salida del GAL22V10.

Material Galaxy previamente instalado

Protoboard

GAL 22v10D

Cable calibre 22

Programador con software

Dip switch de 8

Tablero lógico

Page 3: Sistemas digitales - Practica 4

Desarrollo Ejercicios:

Reducir, programar y pasar a la GAL las siguientes funciones:

1. Fr =∑ (0,1,2,3,4,8,10,14,15)

2. F4 =∑ (1,2,3,4,6,7,9,11,12,14)

3. F5 = ∑(0,2,4,8,10,14,15,16,18,20,24,26,30,31)

1) Para el primer ejercicio, las tablas de reducción fueron las siguientes

indice binario Representacion Binaria Reduccion

0 0 0 0 0 0

1 0 0 0 1 1

0 0 1 0 2

0 1 0 0 4

1 0 0 0 8

2 0 0 1 1 3

1 0 1 0 10

3 1 1 1 0 14

4 1 1 1 1 15

indice binario Representacion Binaria Reduccion

0 0 0 0 - 0-1

0 0 - 0 0-2

0 - 0 0 0-4

- 0 0 0 0-8

1 0 0 - 1 1,-3

0 0 1 - 2,-3

- 0 1 0 2,-10

1 0 - 0 8,-10

2 1 - 1 0 10,-14

3 1 1 1 - 14,-15

Page 4: Sistemas digitales - Practica 4

indice binario Representacion Binaria Reduccion

0 0 0 - - 0-1, 2-3

- 0 - 0 0-2, 8-10

Implicante primo Representacion Binaria Terminos cubiertos

I1 - 0 - 0 0-2, 8-10

I2 0 0 - - 0-1, 2-3

I3 1 1 1 - 14,-15

I4 1 - 1 0 10,-14

I5 0 - 0 0 0-4

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

La función minimizada quedo de la siguiente forma:

Fr(A,B,C,D) = I1 + 12 + 13 + 15

Fr(A,B,C,D) = B’D’ + A’B’ + ABC + A’C’D’

2) Para las otras dos funciones minimizadas por el mismo método quedaron asi:

F4(A,B,C,D) = A’CD + B’D + BD’

F5(A,B,C,D,E) = C’E’ + BCD + B’D’E’

Resultados

El código en VHDL para las 3 funciones fue el siguiente:

--Practica 4

Page 5: Sistemas digitales - Practica 4

-- Luis Angel Reyes

Library IEEE;

USE IEEE.std_logic_1164.all;

ENTITY Practica3 IS

port(

--Variables de entrada

E,D,C,B,A:in std_logic;

--salidas

X,Y,Z:out std_logic

);

END Practica3;

ARCHITECTURE Practica3 OF Practica3 IS

BEGIN

X <= ((NOT C)AND (NOT A))OR((NOT D)AND(NOT C))

OR(D AND C AND B)OR((NOT D)AND(NOT B)AND (NOT A));

Y <= ((NOT D)AND B AND A)OR(C XOR A);

Z <= ((NOT C)AND(NOT A))OR (D AND C AND B)

OR ((NOT D)AND(NOT B)AND(NOT A));

END Practica3;

1) Hicimos su correspondiente simulación y una vez que corroboramos que la simulación

daba los valores correspondientes a la tabla de verdad, procedimos a usar el programador

para pasar el archivo .jed generado por el galaxy para programar la GAL.

Page 6: Sistemas digitales - Practica 4

2) Cabe mencionar que la reducción de F4 fue con ayuda del maestro ya que por el método

de Quine Mc Cluskey se necesitaba otro paso para poder llegar a la minimización correcta,

pero nosotros corroboramos el resultado minimizando la función por mapas K.

3) Después de tener la GAL programada, realizamos el cableado en el proto para realizar el

siguiente circuito:

Observamos donde van las señales de

entrada en la GAL y las 3 salidas que

corresponden una para cada una de las

funciones.

Imágenes de como quedo el circuito:

Page 7: Sistemas digitales - Practica 4

Podemos observar en los diferentes

estados como los leds que muestran las

salidas cambian

Otro diferente tiempo, cabe mencionar que para

programar estas funciones juntas y debido a que 2

eran de 4 variables y una de 5, era necesario y si

queríamos checar las 3 funciones al mismo

tiempo, hay que tener cuidado al momento de

programarla para que las variables coincidan con

la tabla de verdad, así tuvimos que la variable con

menor frecuencia fue E en lugar de A y la variable

con mayor frecuencia fue A

Conclusión Aprendimos en esta práctica varias cosas como:

El uso correcto de los operadores lógicos para escribir correctamente la función dentro del código

fuente y que salga el resultado correcto, ya que como vimos, con funciones más largas es un poco

más complicado programarlas y sobre todo el uso de los paréntesis.

La forma correcta de usar las señales de entrada cuando se tiene una función de 4 entradas y una

de 5 y se quieren programar juntas, la importancia de saber cuál es el bit más significativo dentro

de la función.

Así también tanto para programar como para cablear el circuito habría que tener cuidado con las

entradas del switch así la GAL.

La importancia que tienen las señales intermedias que nos hubieran podido facilitar la

programación de las funciones y estas señales que ahora utilizaremos para programas posteriores.

Page 8: Sistemas digitales - Practica 4