Introducción a la programación de PLD s

Documentos relacionados
Programación de Dispositivos Lógicos Programables utilizando WinCUPL

Instituto Tecnológico de Tuxtla Gutiérrez PRACTICAS DE GAL S. Software WinCupl 5.0

Electrónica Digital II. M. C. Felipe Santiago Espinosa

Practica 1 (3.5 %) 1. Realice el diseño y montaje de un R_S discreto activo en bajo.

Sistemas digitales Octubre '09- Febrero '10

Practica No. 1 Circuitos Secuenciales

Arquitectura de Computadoras Practica No. 1 Circuitos Secuenciales

SISTEMAS ELECTRÓNICOS DIGITALES

Bloques funcionales combinacionales. Bloques para el encaminamiento y/o transferencia de datos

TUTORIAL CUPL (actualizado 11/07/2005)

Practica Nº4 Multiplexores

Sistemas Combinacionales

Práctica 2. Simulación y diseño de circuitos secuenciales

TEMA 5.3 SISTEMAS DIGITALES

Manual de referencia de la tarjeta BASYS 2

Componentes indispensables Un (1) 74LS181 ALU Un (1) 74 LS 47 Un display 7seg Ánodo Común

Electrónica Digital. Actividad Dirigida. Implementación de un Cronómetro Digital

Electrónica Digital II. Contadores

TEMA 7. Registros y contadores

TEMA 3 BLOQUES COMBINACIONALES.

Ejercicios de repaso. 1.- Diseñe un contador asíncrono ascendente módulo 16 utilizando 74XX76. Debe poseer RESET externo.

INDICE Control de dispositivos específicos Diseño asistido por computadora Simulación Cálculos científicos

CODIFICADORES Y DECODIFICADORES

8. Multiplexores Digitales

Laboratorio 5: Tarjeta de Desarrollo Spartan-3

Electrónica Digital. Fco. Javier Expósito, Manuel Arbelo, Pedro A. Hernández Dpto. de Física Fundamental y Experimental, Electrónica y Sistemas

ÍNDICE CAPÍTULO 1. CÓDIGOS DE NUMERACIÓN CAPÍTULO 2. ÁLGEBRA DE CONMUTACIÓN Y FUNCIONES LÓGICAS... 37

INTRODUCCIÓN AL SOFTWARE ISE (Integrated Software Environment) DE XILINX

TECNOLOGÍA DE COMPUTADORES / SISTEMAS DIGITALES EXAMEN PARCIAL. PARTE COMBINACIONAL. 26 NOVIEMBRE 2009.

Tema VI: Memorias y Dispositivos de Lógica Programable (PLDs)

1 Características de la pedalera

Simulín. Qué es Simulín? Características. Simulador de circuitos digitales para uso docente. v5.60 (Julio 2014) Función lógica (expresión algebraica)

Preparación: Para el diseño secuencial será necesario que utilices una señal de reloj. Para generar este pulso de reloj, refiérete a la práctica 2.

Sistemas Electrónicos Digitales Curso de adaptación al Grado

Circuitos Combinatorios

PROYECTO DE DISEÑO 2 INFORMACIÓN PRELIMINAR

CIRCUITOS COMBINACIONALES CON isplever

GUÍA PRACTICA 0. Uso del IDE BASCOM

Quartus II. Dr. Andrés David García García. Departamento de Mecatrónica. TE.1010 Sistemas Digitales

CURSO: ELECTRÓNICA DIGITAL UNIDAD 2: SISTEMAS COMBINATORIOS - TEORÍA PROFESOR: JORGE ANTONIO POLANÍA 1. CIRCUITOS ARITMÉTICOS

Sistemas Digitales I Taller No 2: Diseño de Circuitos combinacionales usando VHDL

CYNTHIA PATRICIA GUERRERO SAUCEDO

ÍNDICE CAPÍTULO 1 FUNDAMENTOS DE LOS MICROCONTROLADORES

Bloques Combinacionales

CONEXIÓN DEL HARDWARE AL COMPUTADOR PERSONAL

Práctica 3 Captura Esquemática

TÉCNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN EN COMPETENCIAS PROFESIONALES ASIGNATURA DE DISPOSITIVOS DIGITALES

Nelson David Muñoz Politécnico CJIC TUTORIAL DISPLAYS

TRABAJO PRÁCTICO Nº 3. Expresiones booleanas, tablas de verdad y compuertas lógicas

Introducción a Verilog y XILINX

PRÁCTICA 4. Montaje y evaluación de sistemas secuenciales.

Preguntas frecuentes TD002

PRÁCTICA 4: INTRODUCCIÓN A LA SIMULACIÓN Y A LA

DISEÑO DE PROCESADORES DEDICADOS. Práctica 6 LCD de Propósito General

Lab 5: Contador decimal en System Generator

Electrónica Digital. ó+ ó 2

Sistemas Digitales Trabajo Práctico 2. Voltímetro digital con salida VGA

LABORATORIO DE CIRCUITOS DIGITALES (2005-II) SEGUNDA CLASE DE VHDL

Sesión 1: Introducción al lenguaje VHDL. S1 1 Laboratorio de Estructura de Computadores Curso 04 / 05

ARQUITECTURAS ESPECIALES

Práctica 2: Montaje de un circuito combinacional usando puertas lógicas

FUNDAMENTOS DE SISTEMAS DIGITALES. Tema 3: Lógica combinacional (II): Ruta de datos

Implementación de una unidad procesadora de cuatro bits, como material didáctico

UNIDAD 2: SISTEMAS DE CONTROL DE PROCESOS UNIVERSIDAD ALONSO DE OJEDA FACULTAD DE INGENIERIA ESCUELA DE COMPUTACION ASIGNATURA: AUTOMATIZACIÓN

TECNOLOGÍA DE COMPUTADORES. CURSO 2016/17. Problemas Temas 7

ABEL Para Síntesis. Dr. Juan C. Herrera Lozada

PRÁCTICA 4: Entorno de desarrollo EasyPIC4

Otros circuitos digitales. Actividad de apertura. Circuitos lógicos secuenciales.

GUIA DE COMPONENTE PRACTICO

Programación inalámbrica de Arduino por Bluetooth

Módulo 2 n. Figura 2.1. Simbología de un contador

Circuitos combinacionales

Modelos de Circuitos FCHE 2011

LECCIÓN Nº 02 FUNCIONES DE LOGICA COMBINACIONAL (PARTE 1)

CURSO: ELECTRÓNICA DIGITAL UNIDAD 3: SISTEMAS SECUENCIALES - TEORÍA PROFESOR: JORGE ANTONIO POLANÍA

BLOQUE 2 (PARTE 2) DISPOSITIVOS LÓGICOS PROGRAMABLES

Organización del Computador 1 Lógica Digital 1: álgebra de Boole y

Laboratorio 01: Generación del Hola Mundo Android

Diseño de circuitos secuenciales en OPAL

HOJA DE PROBLEMAS 6: MÓDULOS COMBINACIONALES BÁSICOS

Práctica nº 6. Implementación sobre circuitos programables.

CONVERTIDOR ANÁLOGICO-DIGITAL (ADC)

Práctica 6. Control de LCD 16x2 con PIC 16F84A.

FUNDAMENTOS DE COMPUTADORES Ejercicios U2: Circuitos Combinacionales

TRABAJO PRÁCTICO Nº 3. Expresiones booleanas, tablas de verdad y compuertas lógicas

LABORATORIO DE TECNOLOGÍA DE COMPUTADORES PRÁCTICA 7

Máquinas de Estados en la GAL22V10 Usando ABEL-HDL

Montaje y evaluación de sistemas digitales combinacionales.

Desarrollo de Productos Electrónicos

Tema 5. SISTEMAS COMBINACIONALES. Tema 5. Sistemas combinacionales por Angel Redondo I.E.S Isaac Peral Torrejon de Ardoz 1

LÓGICA SECUENCIAL Y COMBINATORIA

Examen 22 de Febrero 2006

Práctica I.- Introducción a los Sistemas Secuenciales

Transcripción:

Introducción a la programación de PLD s Sira E. Palazuelos Cagigas Ernesto Martín Gorostiza Departamento de Electrónica Universidad de Alcalá PALCE22V10 2 1

Proceso de diseño Problema de Diseño Especificación Formal - Diag. de bloques - Tabla de Verdad - Funcionas Lógicas - Circuito Descripción utilizando un Lenguaje de Descripción Hardware (CUPL) Ficheros ASCII Simulador Compilador PALCE22V10 Grabador de PLD s Fichero.JED 3 Ejemplo de programa en CUPL Ejemplo: Multiplexor + Conversor BCD 7segmentos Entradas Dos datos BCD de 4 bits. Selección. Salidas Señales de activación del display. Funcionamiento Visualiza dígito decimal correspondiente al dato BCD seleccionado si es válido (si no apaga display y enciende el punto). A3-A0 B3-B0 Selección MUX S3-S0 BCD 7 Seg 4 2

Ejemplo de programa en CUPL Conexión de la PAL (asignación de pines) A3 A2 A1 A0 B3 B2 B1 B0 Selección I1 (2) I2 (3) I3 (4) I4 (5) I5 (6) I6 (7) I7 (8) I8 (9) I9 (10) (15) I/O1 (16) I/O2 (17) I/O3 (18) I/O4 (19) I/O5 (20) I/O6 (21) I/O7 (14) I/O0 a b c d e f g Punto 5 Ejemplo de programa en CUPL Programa: Cabecera El campo de la cabecera más importante es Device CABECERA ASIGNACIÓN DE PINES A ENTRADAS Y SALIDAS CUERPO DEL PROGRAMA Name Prac3; Partno CIR001; Revision 01; Date 13/3/99; Designer Julio Pastor; Company Departamento de Electronica; Location Universidad de Alcala de Henares; Assembly None; Device p22v10; /**************************************************/ /* LABORATORIO DE ELECTRONICA DIGITAL */ /* Practica 3: Multiplexor - Decodificador BCD */ /**************************************************/ 6 3

Ejemplo de programa en CUPL Programa: Asignación de pines CABECERA ASIGNACIÓN DE PINES A ENTRADAS Y SALIDAS CUERPO DEL PROGRAMA A3 A2 A1 A0 B3 B2 B1 B0 Selección I1 (2) I2 (3) (15) I/O1 I3 (4) (16) I/O2 I4 (5) (17) I/O3 I5 (6) (18) I/O4 I6 (7) (19) I/O5 I7 (8) (20) I/O6 I8 (9) (21) I/O7 I9 (10) (14) I/O0 /** Definicion de los pines de entrada **/ Pin [2..5] = [A3..0]; /* Dato A */ Pin [6..9] = [B3..0]; /* Dato B */ Pin 10 = select; /* Seleccion */ /** Definicion de los pines de salida **/ a b c d e f g Punto Pin [15..21] = a,b,c,d,e,f,g; /* A los displays*/ Pin 14 = punto; /* Punto decimal */ 7 Ejemplo de programa en CUPL Programa: Descripción del multiplexor CABECERA A3-A0 B3-B0 Selección MUX S3-S0 S3 = Select A3 + Select B3 S2 = Select A2 + Select B2 S1 = Select A1 + Select B1 S0 = Select A0 + Select B0 ASIGNACIÓN DE PINES A ENTRADAS Y SALIDAS CUERPO DEL PROGRAMA /** Cuerpo del programa **/ /* Descripcion del multiplexor utilizando funciones logicas */ S3 = (!select & A3) # (select & B3); S2 = (!select & A2) # (select & B2); S1 = (!select & A1) # (select & B1); S0 = (!select & A0) # (select & B0); 8 4

Ejemplo de programa en CUPL Programa: Conversor BCD 7 segmentos S3-S0 BCD 7 Seg a - f Punto S3 S2 S1 S0 a b c d e f g Punto 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 9 Ejemplo de programa en CUPL Programa: Conversor BCD 7 segmentos CABECERA ASIGNACIÓN DE PINES A ENTRADAS Y SALIDAS CUERPO DEL PROGRAMA /* Descripcion del conversor BCD - 7 segmentos utilizando una tabla de verdad */ TABLE S3,S2,S1,S0=>!a,!b,!c,!d,!e,!f,!g,!punto { 'h'0=>'b'11111100; 'h'1=>'b'01100000; 'h'2=>'b'11011010; 'h'3=>'b'11110010; 'h'4=>'b'01100110; 'h'5=>'b'10110110; 'h'6=>'b'00111110; 'h'7=>'b'11100000; 'h'8=>'b'11111110; 'h'9=>'b'11100110; 'h'a=>'b'00000001; 'h'b=>'b'00000001; 'h'c=>'b'00000001; 'h'd=>'b'00000001; 'h'e=>'b'00000001; 'h'f=>'b'00000001; } 10 5

Ejemplo de programa en CUPL Programa: Contador (secuencial) Parte correspondiente a definición de campos y códigos de estado (después de la cabecera y la asignación de pines) CABECERA ASIGNACIÓN DE PINES A ENTRADAS Y SALIDAS CUERPO DEL PROGRAMA field count = [Q3..0]; /* declare counter bit field */ $define S0 'b'0000 /* define counter states */ $define S1 'b'0001 $define S2 'b'0010 $define S3 'b'0011 $define S4 'b'0100 $define S5 'b'0101 $define S6 'b'0110 $define S7 'b'0111 $define S8 'b'1000 $define S9 'b'1001 field mode = [clr,dir]; /* declare mode control field */ up = mode:0; /* define count up mode */ down = mode:1; /* define count down mode */ clear = mode:[2..3]; /* define count clear mode */ 11 Ejemplo de programa en CUPL Programa: Contador (secuencial) Parte correspondiente al autómata CABECERA ASIGNACIÓN DE PINES A ENTRADAS Y SALIDAS CUERPO DEL PROGRAMA Sequenced count { /* free running counter */ present S0 if up next S1; if down next S9; if clear next S0; if down out carry; present S1 if up next S2; if down next S0; if clear next S0; present S2 if up next S3; if down next S1; if clear next S0; present S9 if up next S0; if down next S8; if clear next S0; if up out carry; /* carry */ } 12 6

Atmel WinCUPL Abrir fichero.pld 13 Atmel WinCUPL Compilar el programa ó 14 7

Atmel WinCUPL Compilar el programa Si no compila el programa: Problemas de sintaxis (repasar programa). Existen ñ, acentos etc. (es recomendable que no aparezcan ni en los comentarios). Puede ser porque haya que reasignar los pines, si obtenemos el error Demasiados términos producto en pin X. Ver fichero.doc ===================================================================== Symbol Table ===================================================================== Pin Variable Pterms Max Min Pol Name Ext Pin Type Used Pterms Level --- -------- --- --- ---- ------ ------ ----- d 15 V 11 10 1 b 16 V 9 12 1 c 17 V 9 14 1 a 18 V 9 16 1 e 19 V 7 16 1 f 20 V 9 14 1 g 21 V 8 12 1 punto 14 V 4 8 1 15 PALCE22V10 16 8

Atmel WinCUPL Compilar el programa Solución: verificaremos si es posible hacer una reasignación de pines, de forma que en todas las salidas el número de productos necesarios sea menor al número de productos disponibles. ===================================================================== Symbol Table ===================================================================== Pin Variable Pterms Max Min Pol Name Ext Pin Type Used Pterms Level --- -------- --- --- ---- ------ ------ ----- a 15 V 9 10 1 b 16 V 9 12 1 c 17 V 9 14 1 d 18 V 11 16 1 e 19 V 7 16 1 f 20 V 9 14 1 g 21 V 8 12 1 punto 14 V 4 8 1 17 Atmel WinCUPL Otros comentarios Es necesario introducir una señal de reloj a los biestables de la PAL cuando funciona como elemento secuencial. Esta señal debe se introduce en el pin 1 de la PAL. La característica Power Up Reset de la PAL hace que tras alimentar el sistema todos los biestables de la PAL tengan salida 0, es decir, el estado en el que la PAL comienza siempre es el 0. Esta circunstancia debe ser considerada en la programación de la PAL: se debe incluir siempre ese estado inicial y gestionar las transiciones oportunas. El WinCUPL no admite la letra 'ñ' ni acentos, en ningún punto del programa (ni siquiera en los comentarios). El WinCUPL incluye un directorio de ejemplos (EXAMPLES) que pueden utilizarse para familiarizarse con la sintaxis. 18 9

Atmel WinCUPL Simular el programa 19 Atmel WinCUPL Simular el programa 20 10

Atmel WinCUPL Simular el programa Ahora definimos el número de unidades de tiempo durante las cuales queremos realizar la simulación. 21 Atmel WinCUPL Simular el programa Haciendo click con el botón derecho se puede dar un valor a cada entrada en cada instante de tiempo o durante toda la simulación. 22 11

Atmel WinCUPL Simular el programa Con este icono se realiza la simulación y se obtienen los resultados. 23 Atmel WinCUPL Simular el programa Después de la simulación podemos observar en la pantalla resultante la evolución de las señales de salida en el tiempo. Si los resultados no son los deseados se revisará el programa, compilará y simulará de nuevo hasta que lo sean. 24 12

Atmel WinCUPL Archivos involucrados Fichero.PLD Fichero.SI Ficheros ASCII Compilador Simulador Fichero.ABS Fichero.DOC Fichero.JED Fichero.SO Fichero.WO 25 Programación de dispositivos programables. ALL-11 ALL-11. WACCESS Utilizaremos el programador ALL-11 junto con el programa WACCESS para volcar nuestro programa en la PAL, creando las conexiones necesarias. El PLD se situará en el programador ajustado a la parte inferior con la muesca hacia arriba, y se bajará la palanca. 26 13

WACCESS Una vez colocada correctamente la PAL en el programador, ejecutamos el programa: WACCESS 27 WACCESS A continuación, seleccionamos el dispositivo. Primero el fabricante: 28 14

WACCESS Posteriormente, dentro del fabricante, elegiremos el tipo de dispositivo, y el modelo exacto. 29 WACCESS En caso de error aparecerá un mensaje que puede ser: Posibles causas de error: La PAL está estropeada. PAL mal colocada (al revés, o no ajustada a la parte inferior). El fabricante o el modelo seleccionados no se corresponden con la PAL. El programador no está encendido (botón de la parte posterior). 30 15

WACCESS Si todo va bien, seguiremos con el proceso de grabación: Cargamos el fichero.jed que deseamos grabar en la PAL: 31 WACCESS Una vez cargado el.jed, programamos la PAL: 32 16

WACCESS En caso de error aparecerá un mensaje que puede ser: Posibles causas de error: La PAL está estropeada. PAL mal colocada (al revés, o no ajustada a la parte inferior). El fabricante o el modelo seleccionados no se corresponden con la PAL. El programador no está encendido (botón de la parte posterior). 33 WACCESS Si todo va bien, debería aparecer la siguiente pantalla: En ese caso, la PAL estará correctamente grabada, levantaremos la palanca del programador y retiraremos el dispositivo. 34 17