Dispositivos Lógicos Programables

72
Electrónica II Ingeniería Electromecánica DISPOSITIVOS LÓGICOS PROGRAMABLES Mayo 2012

Transcript of Dispositivos Lógicos Programables

Page 1: Dispositivos Lógicos Programables

Electrónica II

Ingeniería Electromecánica

DISPOSITIVOS LÓGICOS PROGRAMABLES

Mayo 2012

Page 2: Dispositivos Lógicos Programables

PROGRAMACIÓN PLDS

Desarrollo De PLDs

Compilación Y

Verificación Lógica

Diseño

Programación PLD

Verificación Del

dispositivo

¿Correcto?

SI NO FIN

Page 3: Dispositivos Lógicos Programables

PROGRAMACIÓN PLDS

Page 4: Dispositivos Lógicos Programables

PROGRAMACIÓN PLDS

Page 5: Dispositivos Lógicos Programables

PROGRAMACIÓN PLDS: ABEL

- ABEL es una marca registrada de Data I/O Corporation y es el acrónimo de Advanced Boolean Expression Language.

- Permite implementar diseños lógicos en dispositivos lógicos programables.

- Puede ser utilizado para programar cualquier tipo de PLD y, por tanto, es un lenguaje independiente del dispositivo.

- El lenguaje ABEL se ejecuta en un computador conectado a un programador de dispositivos.

- Proporciona tres formatos para describir e introducir el diseño lógico: ecuaciones, tablas de verdad y diagramas de estado.

Page 6: Dispositivos Lógicos Programables

PROGRAMACIÓN PLDS: ABEL

BA

BA

BA

A

BA

BA

BA

A

$

&

#

!

)(

)(

DCBA

CABABC

?

Funciones lógicas:

Page 7: Dispositivos Lógicos Programables

PROGRAMACIÓN PLDS: ABEL

Ejemplo: multiplexor 12 entradas y 4 salidas

Page 8: Dispositivos Lógicos Programables

PROGRAMACIÓN PLDS: ABEL

Ejemplo: multiplexor 12 entradas y 4 salidas

Page 9: Dispositivos Lógicos Programables

PROGRAMACIÓN PLDS: ABEL

Las variables de entrada o salida múltiples se pueden agrupar usando corchetes para simplificar una ecuación.

Page 10: Dispositivos Lógicos Programables

PROGRAMACIÓN PLDS: ABEL

Tablas de verdad:

Page 11: Dispositivos Lógicos Programables

PROGRAMACIÓN PLDS: ABEL

Secciones Básicas:

Declaraciones

Descripciones lógicas

Vectores de prueba

Page 12: Dispositivos Lógicos Programables

PROGRAMACIÓN PLDS: ABEL

Secciones Básicas:

Declaraciones

Descripciones lógicas

Los vectores de prueba examinan el diseño lógico antes de programar el hardware, aplicando todas las combinaciones de entrada y comprobando que las salidas son correctas.

Vectores de prueba

Page 13: Dispositivos Lógicos Programables

PROGRAMACIÓN PLDS: ABEL

Secciones Básicas:

Declaraciones

Descripciones lógicas

Los vectores de prueba examinan el diseño lógico antes de programar el hardware, aplicando todas las combinaciones de entrada y comprobando que las salidas son correctas.

Vectores de prueba

Page 14: Dispositivos Lógicos Programables

PROGRAMACIÓN PLDS: ABEL

Secciones Básicas:

Declaraciones

Descripciones lógicas

Los vectores de prueba examinan el diseño lógico antes de programar el hardware, aplicando todas las combinaciones de entrada y comprobando que las salidas son correctas.

Vectores de prueba

Page 15: Dispositivos Lógicos Programables

PROGRAMACIÓN PLDS: ABEL

Ejemplo: multiplexor cuádruple 1 de 4 con GAL20V8

Page 16: Dispositivos Lógicos Programables

PROGRAMACIÓN PLDS: ABEL

Ejemplo: multiplexor cuádruple 1 de 4 con GAL20V8

Aout = !S1 & !S0 & A0 # !S1 & S0 & A1 # S1 & !S0 & A2 # S1 & S0 & A3; Bout = !S1 & !S0 & B0 # !S1 & S0 & B1 # S1 & !S0 & B2 # S1 & S0 & B3; Cout = !S1 & !S0 & C0 # !S1 & S0 & C1 # S1 & !S0 & C2 # S1 & S0 & C3; Dout = !S1 & !S0 & D0 # !S1 & S0 & D1 # S1 & !S0 & D2 # S1 & S0 & D3;

Page 17: Dispositivos Lógicos Programables

PROGRAMACIÓN PLDS: ABEL

Ejemplo: multiplexor cuádruple 1 de 4 con GAL20V8

Page 18: Dispositivos Lógicos Programables

PROGRAMACIÓN PLDS: ABEL

Ejemplo: multiplexor cuádruple 1 de 4 con GAL20V8

A0-

A1-

A2-

A3-

B0-

B1-

B2-

B3-

C0-

C1-

C2-

-S0

-S1

-Aout

-Bout

-Cout

-Dout

-D3

-D2

-D1

-D0

-C3

Page 19: Dispositivos Lógicos Programables

PROGRAMACIÓN PLDS: ABEL

Ejemplo: multiplexor cuádruple 1 de 4 con GAL20V8

Module cuad_1_de_4_mux

Title ‘Multiplexor cuadruple 1 de 4 en GAL20V8’

mux device ‘P20V8’

A0, A1, A2, A3 pin 1, 2, 3, 4;

B0, B1, B2, B3 pin 5, 6, 7, 8;

C0, C1, C2, C3 pin 9, 10, 11, 13;

D0, D1, D2, D3 pin 14, 15, 16, 17;

Aout, Bout, Cout, Dout pin 21, 20, 19, 18;

S0, S1 pin 22, 23;

Equations

Aout = !S1 & !S0 & A0 # !S1 & S0 & A1 # S1 & !S0 & A2 # S1 & S0 & A3;

Bout = !S1 & !S0 & B0 # !S1 & S0 & B1 # S1 & !S0 & B2 # S1 & S0 & B3;

Cout = !S1 & !S0 & C0 # !S1 & S0 & C1 # S1 & !S0 & C2 # S1 & S0 & C3;

Dout = !S1 & !S0 & D0 # !S1 & S0 & D1 # S1 & !S0 & D2 # S1 & S0 & D3;

Page 20: Dispositivos Lógicos Programables

PROGRAMACIÓN PLDS: ABEL

Ejemplo: multiplexor cuádruple 1 de 4 con GAL20V8

Test_vectors

([S1,S0,A0,A1,A2,A3,B0,B1,B2,B3,C0,C1,C2,C3,D0,D1,D2,D3]->

[Aout,Bout,Cout,Dout])

“S S A A A A B B B B C C C C D D D D outputs

“1 0 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 A B C D

[0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]->[1,0,0,0];

[0,1,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]->[0,1,0,0];

[1,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]->[0,0,1,0];

[1,1,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]->[0,0,0,1];

[0,0,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0]->[0,1,1,1];

[0,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0]->[1,0,1,1];

[1,0,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0]->[1,1,0,1];

[1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0]->[1,1,1,0];

END

Page 21: Dispositivos Lógicos Programables

PROGRAMACIÓN PLDS

Page 22: Dispositivos Lógicos Programables

PROGRAMACIÓN PLD: CUPL

CUPL = Universal Compiler for Programable Logic

CUPL es uno de los estándares de la industria electrónica utilizado para generar el mapa de fusibles de un dispositivo lógico programable a través de una descripción lógica de alto nivel.

Desarrollado por Logical Devices, Inc. y consiste básicamente de tres programas:

- CUPL : Compilador Universal de lógica programable. Permite escribir y compilar descripciones lógicas para asignar a dispositivos lógicos programables (PLD), a través de programadores de dispositivos. - CSIM : Simulador de CUPL, compara los valores esperados con los calculados en la operación de CUPL.

- CBLD : Manejador de librerías, permite manejar las librerías del programa para crear más pequeñas con dispositivos específicos.

Page 23: Dispositivos Lógicos Programables

PROGRAMACIÓN PLD: CUPL

CUPL = Universal Compiler for Programable Logic

CUPL es uno de los estándares de la industria electrónica utilizado para generar el mapa de fusibles de un dispositivo lógico programable a través de una descripción lógica de alto nivel.

Desarrollado por Logical Devices, Inc. y consiste básicamente de tres programas:

- CUPL : Compilador Universal de lógica programable. Permite escribir y compilar descripciones lógicas para asignar a dispositivos lógicos programables (PLD), a través de programadores de dispositivos. - CSIM : Simulador de CUPL, compara los valores esperados con los calculados en la operación de CUPL.

- CBLD : Manejador de librerías, permite manejar las librerías del programa para crear más pequeñas con dispositivos específicos.

Page 24: Dispositivos Lógicos Programables

PROGRAMACIÓN PLD: CUPL

CUPL = Universal Compiler for Programable Logic

CUPL es uno de los estándares de la industria electrónica utilizado para generar el mapa de fusibles de un dispositivo lógico programable a través de una descripción lógica de alto nivel.

Desarrollado por Logical Devices, Inc. y consiste básicamente de tres programas:

- CUPL : Compilador Universal de lógica programable. Permite escribir y compilar descripciones lógicas para asignar a dispositivos lógicos programables (PLD), a través de programadores de dispositivos. - CSIM : Simulador de CUPL, compara los valores esperados con los calculados en la operación de CUPL.

- CBLD : Manejador de librerías, permite manejar las librerías del programa para crear más pequeñas con dispositivos específicos.

Page 25: Dispositivos Lógicos Programables

PROGRAMACIÓN PLD: CUPL

CUPL = Universal Compiler for Programable Logic

CUPL es uno de los estándares de la industria electrónica utilizado para generar el mapa de fusibles de un dispositivo lógico programable a través de una descripción lógica de alto nivel.

Desarrollado por Logical Devices, Inc. y consiste básicamente de tres programas:

- CUPL : Compilador Universal de lógica programable. Permite escribir y compilar descripciones lógicas para asignar a dispositivos lógicos programables (PLD), a través de programadores de dispositivos. - CSIM : Simulador de CUPL, compara los valores esperados con los calculados en la operación de CUPL.

- CBLD : Manejador de librerías, permite manejar las librerías del programa para crear más pequeñas con dispositivos específicos.

Page 26: Dispositivos Lógicos Programables

PROGRAMACIÓN PLD: CUPL ARCHIVOS:

Archivos de Salida

*.LST Archivo con listado de errores

*.DOC Archivo con documentación

*.SO Archivo con resultado de la simulación

*.JED(1) Archivo con mapa de fusible en formato JEDEC

*.JED(2) Archivo con mapa de fusible y vectores de prueba en

formato JEDEC

*.HL Archivo con mapa de fusible en formato HL

*.HEX Archivo con mapa de fusible en formato HEX

Archivos de Entrada.

*.PLD Archivo con las descripciones lógicas.

*.SI Archivo con valores esperados (para simulador).

Archivos Intermedios

*.ABS Archivo generado por CUPL, para ser usado por CSIM.

Page 27: Dispositivos Lógicos Programables

PROGRAMACIÓN PLD: CUPL ARCHIVOS:

Archivos de Salida

*.LST Archivo con listado de errores

*.DOC Archivo con documentación

*.SO Archivo con resultado de la simulación

*.JED(1) Archivo con mapa de fusible en formato JEDEC

*.JED(2) Archivo con mapa de fusible y vectores de prueba en

formato JEDEC

*.HL Archivo con mapa de fusible en formato HL

*.HEX Archivo con mapa de fusible en formato HEX

Archivos de Entrada.

*.PLD Archivo con las descripciones lógicas.

*.SI Archivo con valores esperados (para simulador).

Archivos Intermedios

*.ABS Archivo generado por CUPL, para ser usado por CSIM.

Page 28: Dispositivos Lógicos Programables

PROGRAMACIÓN PLD: CUPL ARCHIVOS:

Page 29: Dispositivos Lógicos Programables

PROGRAMACIÓN PLD: CUPL

Page 30: Dispositivos Lógicos Programables

PROGRAMACIÓN PLD: CUPL

COMPONENTES:

Programa: Descripción de funciones

Page 31: Dispositivos Lógicos Programables

PROGRAMACIÓN PLD: CUPL

COMPONENTES:

Page 32: Dispositivos Lógicos Programables

PROGRAMACIÓN PLD: CUPL

COMPONENTES:

Page 33: Dispositivos Lógicos Programables

PROGRAMACIÓN PLD: CUPL

COMPONENTES:

Page 34: Dispositivos Lógicos Programables

PROGRAMACIÓN PLD: CUPL

EJEMPLO: : Implementar las operaciones booleanas NOT, AND, OR, XOR, NAND, NOR y XNOR para tres variables de entrada en el dispositivo lógico programable GAL22V10.

AND = A & B & C ; NAND = !(A & B & C) ; OR = A # B # C ; NOR = !(A # B # C) ; XOR = A $ B $ C ; XNOR = !(A $ B $ C) ; NOTA = !A ;

A

CBA

CBA

CBA

CBA

ABC

ABC

Page 35: Dispositivos Lógicos Programables

PROGRAMACIÓN PLD: CUPL

EJEMPLO: : Implementar las operaciones booleanas NOT, AND, OR, XOR, NAND, NOR y XNOR para tres variables de entrada en el dispositivo lógico programable GAL22V10.

Page 36: Dispositivos Lógicos Programables

PROGRAMACIÓN PLD: CUPL

EJEMPLO: : Implementar las operaciones booleanas NOT, AND, OR, XOR, NAND, NOR y XNOR para tres variables de entrada en el dispositivo lógico programable GAL22V10.

Small Outline Integrated Circuit

Plastic Leaded chip carrier

Dual In Line Package

http://oretano.iele-ab.uclm.es/~arodenas/Encapsulados/encapsulados.swf

Page 37: Dispositivos Lógicos Programables

PROGRAMACIÓN PLD: CUPL

EJEMPLO: : Implementar las operaciones booleanas NOT, AND, OR, XOR, NAND, NOR y XNOR para tres variables de entrada en el dispositivo lógico programable GAL22V10.

A-

B-

C-

-AND -NAND -OR -NOR -XOR -XNOR -NOTA

Page 38: Dispositivos Lógicos Programables

PROGRAMACIÓN PLD: CUPL

EJEMPLO: : Implementar las operaciones booleanas NOT, AND, OR, XOR, NAND, NOR y XNOR para tres variables de entrada en el dispositivo lógico programable GAL22V10.

Page 39: Dispositivos Lógicos Programables

CUPL CON WINCUPL WinCupl para generar el archivo .jed: http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2759 http://www.atmel.com/dyn/products/tools_card.asp?category_id=172&family_id=653&subfamily_id=734&tool_id=2759

Page 40: Dispositivos Lógicos Programables

CUPL CON WINCUPL WinCupl para generar el archivo .jed, se puede descargar desde: http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2759 http://www.atmel.com/dyn/products/tools_card.asp?category_id=172&family_id=653&subfamily_id=734&tool_id=2759

Page 41: Dispositivos Lógicos Programables

CUPL CON WINCUPL Una vez instalado:

Pasos: 1. Ir a File > New > Design File 2. En Device se cambia virtual por g22v10 (para generar el archivo .jed). 3. En Name nombrar como quieran. 4. Presionar OK

Page 42: Dispositivos Lógicos Programables

CUPL CON WINCUPL Una vez instalado: 5. Numero de entradas: según diseño, por ejemplo 3

6. Numero de salidas: según diseño por ejemplo 5 7. Número de nodos: 0

Page 43: Dispositivos Lógicos Programables

CUPL CON WINCUPL Una vez instalado: 8. Editar las entradas y salidas según el diseño.

HAGA EL MISMO EJEMPLO.

Page 44: Dispositivos Lógicos Programables

CUPL CON WINCUPL 9. Compilar: Ir a Options > Compiler

Output Files, en el recuadro Download, debe estar activado la opción JEDEC General: JEDEC name

Page 45: Dispositivos Lógicos Programables

CUPL CON WINCUPL 10. Ejecutar: VARIAS OPCIONES

PARA SIMULAR

Page 46: Dispositivos Lógicos Programables

CUPL CON WINCUPL 11. Depurar: COMPILACIÓN DEPENDENTE DEL DISPOSITIVO Identifique errores de compilación.

Page 47: Dispositivos Lógicos Programables

CUPL CON WINCUPL 12. Ejecutar: una vez corregidos los errores, compare el árbol del proyecto y determine si hay más archivos

Page 48: Dispositivos Lógicos Programables

CUPL CON WINCUPL 13. Rescatar archivo .jed. Identifique la ruta de archivos y copie el archivo *.jed en una carpeta en el escritorio.

Page 49: Dispositivos Lógicos Programables

CUPL CON WINCUPL 14. Generar archivo de simulación y analizar con WinSim:

Page 50: Dispositivos Lógicos Programables

CUPL CON WINCUPL

ADEMÁS: SE PUEDE CAMBIAR LA RUTA DE TRABAJO DEL COMPILADOR

Page 51: Dispositivos Lógicos Programables

CUPL CON WINCUPL

ADEMÁS: PARA TRABAJAR CON WINDOWS 7

Page 52: Dispositivos Lógicos Programables

CUPL CON WINCUPL

ADEMÁS: PARA TRABAJAR CON WINDOWS 7 VERIFICAR PRESENCIA DE ARCHIVOS *.JED

Page 53: Dispositivos Lógicos Programables

CUPL CON WINSIM

15. Antes de usar el winsim necesitamos tener el archivo .pld que se crea con el programa wincupl (PASOS 1-14): - Presionar el botón de la función winsim dentro del wincupl o bien abrirlo desde la barra de inicio. - Saldrá una ventana nueva donde se indica: New.

Page 54: Dispositivos Lógicos Programables

CUPL CON WINCUPL 15…. Presionar Design File y buscar el archivo PLD del proyecto que se acabo de generar con wincupl.

Page 55: Dispositivos Lógicos Programables

CUPL CON WINSIM 15…. Se abrirá el programa con extensión .si y presionar el botón Add signal. Agregar las entradas deseadas presionando OK.

Page 56: Dispositivos Lógicos Programables

CUPL CON WINSIM 15…. Agregar las SALIDAS deseadas presionando OK. Al finalizar Presionar “Done” Las señales aparecerán en el costado izquierdo de la pantalla.

Page 57: Dispositivos Lógicos Programables

CUPL CON WINSIM 15…. Definir un valor lógico para las entradas, que puede ser: 0, H, L, Z, etc. Esto se hace presionando el botón derecho del ratón y seleccionando el valor lógico deseado

Page 58: Dispositivos Lógicos Programables

CUPL CON WINSIM 15….Una vez sean asignados los valores a las entradas, correr la simulación presionando el botón Simulate. Analizar los estados de las salidas.

Page 59: Dispositivos Lógicos Programables

CUPL CON WINSIM 15….Agregue un vector para tener más pulsos de las señales de entrada con estados independientes según se definan. Corra la simulación presionando el botón Simulate. Analizar los estados de las salidas.

Page 60: Dispositivos Lógicos Programables

CUPL CON WINSIM

15….Cambie todos los estados de las entradas y analice las salidas, cumplen la función lógica diseñada?

Page 61: Dispositivos Lógicos Programables

CUPL Y PROTEUS 16. Simular con Proteus: ubique el archivo .jed que copio en el paso 13. Abra un nuevo archivo .dsn desde proteus ISI. Busque el dispositivo AM22V10 que es equivalente a la gal G22V10:

Page 62: Dispositivos Lógicos Programables

16… compare la distribución de pines para el simulador con el datasheet del dispositivo. Faltan pines? Cuales? de acuerdo a la función lógico y distribución de entradas y salidas que haya realizado en el proyecto pld desde wincupl, conecte puntas de prueba (logic probe) para las entradas y salidas habilitadas.

A-

B-

C-

-AND -NAND -OR -NOR -XOR -XNOR -NOTA

CUPL Y PROTEUS

Page 63: Dispositivos Lógicos Programables

CUPL Y PROTEUS 16… de click derecho sobre el dispositivo y abra “Edit propierties” De click en el icono de la carpeta para ubicar el archivo jedec relacionado con el proyecto. Busque el archivo .jed y de OK.

Page 64: Dispositivos Lógicos Programables

CUPL Y PROTEUS 16… Si el archivo se compilo correctamente desde wincupl, la simulación correrá sin problemas. Ejecute la simulación y pruebe el circuito.

Page 65: Dispositivos Lógicos Programables

EJEMPLOS DISPOSITIVOS LÓGICOS PROGRAMABLES

Conversor BCD 7segmentos con GAL22V10

GAL22V10

Se pueden incluir directamente las tablas!

Page 66: Dispositivos Lógicos Programables

Conversor BCD 7segmentos con GAL22V10

EJEMPLOS DISPOSITIVOS LÓGICOS PROGRAMABLES

Page 67: Dispositivos Lógicos Programables

Multiplexor + Conversor BCD 7segmentos con GAL22V10

EJEMPLOS DISPOSITIVOS LÓGICOS PROGRAMABLES

Page 68: Dispositivos Lógicos Programables

PROGRAMACIÓN GAL CON SUPERPRO

1. Instalar

Page 69: Dispositivos Lógicos Programables

PROGRAMACIÓN GAL CON SUPERPRO

2. Verificar conexión física y Ubicar dispositivo

Page 70: Dispositivos Lógicos Programables

PROGRAMACIÓN GAL CON SUPERPRO

3. Cargar archivo *jed

Page 71: Dispositivos Lógicos Programables

PROGRAMACIÓN GAL CON SUPERPRO

4. Programar