UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIA DEPARTAMENTO DE ELECTRICIDAD
INTRODUCCION A LOS PLDs
(PRACTICA #4)
Nombres: Quiñonez Macuri Germán Eduardo Rodríguez Paiza Saúl Pablo Horario: Miércoles 11:15 a.m. Grupo: Nº3
Cochabamba-Bolivia
INTRODUCCION A LOS PLDs
4.1 Objetivo Esta práctica es una introducción a los dispositivos lógicos programables (PLDs), en particular a la GAL16V8, y el software de programación GDS V3.5.
4.2 Marco Teórico 4.2.1 Dispositivos Lógicos Programables Un dispositivo lógico programable, o PLD (Programmable Logic Device), es un dispositivo cuyas características pueden ser modificadas y almacenadas mediante programación. El principio de síntesis de cualquier dispositivo lógico programable se fundamenta en el hecho de que cualquier función booleana puede ser expresada como una suma de productos. El dispositivo programable más simple es el PAL (Programmable Array Logic). El circuito interno de un PAL consiste en un arreglo, o matriz, de compuertas AND y un arreglo de compuertas OR. El arreglo AND es programable mientras que el OR generalmente es fijo. Mediante una matriz de conexiones se seleccionan cuales entradas serán conectadas al arreglo AND, cuyas salidas son conectadas al arreglo OR y de esta manera obtener una función lógica en forma de suma de productos. Una matriz de conexiones es una red de conductores distribuidos en filas y columnas con un fusible en cada punto de intersección.
4.2.2 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.
Figura 4.1 Estructura típica de un GAL
4.3 Materiales y equipos utilizados Computadora personal Software : - ELWE GDS - Proteus ISIS - Multisim EWB
4.4 Diseño e implementación Conversor que transforme un byte en su complemento a dos: ̅7 𝐷 ̅6 𝐷 ̅5 𝐷 ̅4 𝐷 ̅3 𝐷 ̅2 𝐷 ̅1 𝐷 ̅0 + 00000001 𝐷7 𝐷6 𝐷5 𝐷4 𝐷3 𝐷2 𝐷1 𝐷0 → 𝐷
CHIP NC NC
COMPLEMENTO_A_2 GAL16V8 D0 D1 CD0 D1
D2 CD2
D3 D4 CD3 CD4
D5 CD5
D6 CD6
D7 CD7
GND VCC
CD0 = D0 CD1 = !D1 * D0 + D1 * !D0 CD2 = !D2 * D1 + !D2 * D0
+
D2 * !D1 * !D0
CD3 = !D3 * D2 + !D3 * D1 + !D3 * D0
+
D3 * !D2 * !D1 * !D0
CD4 = !D4 * D3 + !D4 * D2 + !D4 * D1 + !D4 * D0
+
D4 * !D3 * !D2 * !D1 * !D0
CD5 = !D5 * D4 + !D5 * D3 + !D5 * D2 + !D5 * D1 + !D5 * D0
+
D5 * !D4 * !D3 * !D2 * !D1 * !D0 CD6= !D6 * D5 + !D6 * D4 + !D6 * D3 + !D6 * D2 + !D6 * D1 + !D6 * D0
+
D6 * !D5 * !D4 * !D3 * !D2 * !D1 * !D0 CD7= !D7 * D6 + !D7 * D5 + !D7 * D4 + !D7 * D3 + !D7 * D2 + !D7 * D1 + !D7 * D0
+
D7 * !D6 * !D5 * !D4 * !D3 * !D2 * !D1 * !D0
Comparador relativo de magnitudes de tres números de dos bits cada uno [A1A0][B1B0][C1C0] : 𝑊 → 𝑑𝑜𝑠 𝑖𝑔𝑢𝑎𝑙𝑒𝑠
𝑋→𝐴=𝐵=𝐶
𝑌→𝐴≠𝐵≠𝐶
𝑍→𝐴<𝐵<𝐶
CHIP
COMP_MAGNITUD
NC
A1
A0
NC
WO XO
B1 YO
B0 ZO
C1
C0 NC
GAL16V8
NC
GND
NC NC NC W_AUX VCC
W_AUX= !A1 * !A0 * !B1 * !B0 + !A1 * !A0 * !C1 * !C0 + !A1 * A0 * !B1 * B0 + !A1 * A0 * !B0 * !C1 * C0 + A1 * !A0 * B1 * !B0 + A1 * !A0 * C1 * !C0 WO
= !B1 * !B0 * !C1 * !C0 + !B1 * B0 * !C1 * C0 + B1 * !B0 * C1 * !C0 + A1 * A0 * C1 * C0 + A1 * A0 * B1 * B0 + B1 * B0 * C1 * C0 + W_AUX
XO
= !A1 * !A0 * !B1 * !B0 * !C1 * !C0 + A1 * !A0 * B1 * !B0 * C1 * !C0 + !A1 * A0 * !B1 * B0 * !C1 * C0 + A1 * A0 * B1 * B0 * C1 * C0
YO
= !WO
ZO
= !A1 * !A0 * !B1 * B0 * C1 * !C0 + !A1 * !A0 * !B1 * B0 * C1 * C0 + !A1 * A0 * B1 * !B0 * C1 * C0 + !A1 * !A0 * B1 * !B0 * C1 * C0
Sumador de dos números de tres bits cada uno, con acarreos intermedios y final : 𝑁𝑟𝑜. 1: 𝐴2 𝐴1 𝐴0 𝑁𝑟𝑜. 2: 𝐵2 𝐵1 𝐵0 𝑆𝑢𝑚𝑎: 𝑆2 𝑆1 𝑆0 𝐴𝑐𝑎𝑟𝑟𝑒𝑜: 𝐶2 𝐶1 𝐶0 CHIP
SUMA_3_BITS
GAL16V8
NC
A2
A1
A0
B2
B1
NC
S2
S1
S0
C2
C1
S0
= !A0 * B0 + A0 * !B0
C0
= A0 * B0
B0
NC C0
NC NC
GND NC
S1
= !A1 * !B1 * C0 + !A1 * B1 * !C0 + A1 * B1 * C0 + A1 * !B1 * !C0
C1
= B1 * C0 + A1 * C0 + A1 * B1
S2
= !A2 * !B2 * C1 + !A2 * B2 * !C1 + A2 * B2 * C1 + A2 * !B2 * !C1
C2
= B2 * C1 + A2 * C1 + A2 * B2
VCC
4.5 Simulación del Circuito
Figura 4.2 Diagrama del circuito complemento a dos
Figura 4.3 Diagrama del circuito comparador relativo de magnitud
Figura 3.4 Diagrama del circuito sumador de tres bits
4.6 Cuestionario i.
ii.
iii. iv.
¿Qué es lógica cableada y lógica programable? R.- Lógica cableada o Lógica de contactos, es una forma de realizar controles (pueden ser en base a contadores y registros), Lógica programada es lo contrario de la lógica cableada, es decir, este tipo de diseño permite utilizar un circuito o un proyecto para muchas otras funciones con el simple cambio del software que incorpora. ¿Cuáles son las ventajas de la lógica cableada sobre las programables?, y ¿Cuáles son sus desventajas? R.-Una de las ventajas es que para diseñar circuitos muy pequeños los dispositivos con lógica cableada cuentan mucho menos. Otra de sus desventajas es que el armado de los circuitos es complicado. Y una de sus ventajas es que con lógicas cableadas se puede volver a rediseñar otros circuitos cosa que con algunos de la lógica programable no se puede. ¿Cuántos tipos de PLDs conoce, describa brevemente cada una de ellas? R.-GAL: son las que se pueden borrar y reobrar. PAL y PLA No se pueden borrar. ¿Dibuje y explique brevemente el diagrama de flujo (secuencia de pasos o procedimiento) a seguir par la programación de un PLD (GAL16V8)?
Diseño del circuito lógico
Introducir el diseño en el ordenador creando un archivo (.GAL)de entrada
¿Errores de sintaxis u otros?
si
El compilador crea un archivo JEDEC (mapa de fusibles ).
NO
NO
v.
vi.
¿Funciona el diseño?
SI
El programador puede cargar el mapa de fusibles en la matriz de la GAL16V8.
¿Qué es una GAL y cuantos tipos de GAL conoce? R: Una GAL es un dispositivo de la familia lógica programable y es un generador de arreglos lógicos. ¿A que se refiere los números 16V8 en el nombre de la GAL16V8? R: 16 significa 16 entradas.V significa configuración de salida de las variables. 8 significa 8 salidas da de las variables.