Los dispositivos lógicos programables y la lógica combinatoria.
Dispositivos Lógicos Programables
-
Upload
ricardo-alonso-estepa-estupinan -
Category
Documents
-
view
297 -
download
7
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
RECOMENDADOS