Dispositivos Lógicos Programables

Post on 25-Jul-2015

298 views 7 download

Transcript of Dispositivos Lógicos Programables

Electrónica II

Ingeniería Electromecánica

DISPOSITIVOS LÓGICOS PROGRAMABLES

Mayo 2012

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

PROGRAMACIÓN PLDS

PROGRAMACIÓN PLDS

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.

PROGRAMACIÓN PLDS: ABEL

BA

BA

BA

A

BA

BA

BA

A

$

&

#

!

)(

)(

DCBA

CABABC

?

Funciones lógicas:

PROGRAMACIÓN PLDS: ABEL

Ejemplo: multiplexor 12 entradas y 4 salidas

PROGRAMACIÓN PLDS: ABEL

Ejemplo: multiplexor 12 entradas y 4 salidas

PROGRAMACIÓN PLDS: ABEL

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

PROGRAMACIÓN PLDS: ABEL

Tablas de verdad:

PROGRAMACIÓN PLDS: ABEL

Secciones Básicas:

Declaraciones

Descripciones lógicas

Vectores de prueba

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

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

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

PROGRAMACIÓN PLDS: ABEL

Ejemplo: multiplexor cuádruple 1 de 4 con GAL20V8

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;

PROGRAMACIÓN PLDS: ABEL

Ejemplo: multiplexor cuádruple 1 de 4 con GAL20V8

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

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;

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

PROGRAMACIÓN PLDS

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.

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.

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.

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.

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.

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.

PROGRAMACIÓN PLD: CUPL ARCHIVOS:

PROGRAMACIÓN PLD: CUPL

PROGRAMACIÓN PLD: CUPL

COMPONENTES:

Programa: Descripción de funciones

PROGRAMACIÓN PLD: CUPL

COMPONENTES:

PROGRAMACIÓN PLD: CUPL

COMPONENTES:

PROGRAMACIÓN PLD: CUPL

COMPONENTES:

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

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.

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

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

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.

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

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

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

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

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

HAGA EL MISMO EJEMPLO.

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

CUPL CON WINCUPL 10. Ejecutar: VARIAS OPCIONES

PARA SIMULAR

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

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

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

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

CUPL CON WINCUPL

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

CUPL CON WINCUPL

ADEMÁS: PARA TRABAJAR CON WINDOWS 7

CUPL CON WINCUPL

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

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.

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

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.

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.

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

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.

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.

CUPL CON WINSIM

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

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:

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

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.

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.

EJEMPLOS DISPOSITIVOS LÓGICOS PROGRAMABLES

Conversor BCD 7segmentos con GAL22V10

GAL22V10

Se pueden incluir directamente las tablas!

Conversor BCD 7segmentos con GAL22V10

EJEMPLOS DISPOSITIVOS LÓGICOS PROGRAMABLES

Multiplexor + Conversor BCD 7segmentos con GAL22V10

EJEMPLOS DISPOSITIVOS LÓGICOS PROGRAMABLES

PROGRAMACIÓN GAL CON SUPERPRO

1. Instalar

PROGRAMACIÓN GAL CON SUPERPRO

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

PROGRAMACIÓN GAL CON SUPERPRO

3. Cargar archivo *jed

PROGRAMACIÓN GAL CON SUPERPRO

4. Programar

http://sites.google.com/site/jaimepsantos/software/wincupl

http://sites.google.com/site/jaimepsantos/software/winsim

CAPÍTULO 7 FUNDAMENTOS DE SISTEMAS DIGITALES. FLOYD

marialuisa.pinto@uptc.edu.co

RECOMENDADOS