2. DISPOSITIVOS LÓGICOS PROGRAMABLES SIMPLES

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

INDICE. XVII 0 Introducción 0.1. Historia de la computación

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

Operación de circuitos lógicos combinatorios.

Introducción a la programación de PLD s

Sistemas digitales Octubre '09- Febrero '10

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

INDICE Capitulo 1. Álgebra de variables lógicas Capitulo 2. Funciones lógicas

INDICE Prefacio 1 Sistemas numéricos y códigos 2 Circuitos digitales

Circuitos Lógicos Combinatorios. Ing. Jorge Manrique 2004 Sistemas Digitales 1

4.1. Circuitos Digitales Configurables

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

Conocer, diseñar y aplicar los circuitos digitales para el control de los diferentes sistemas mecatrónicos.

Bloques Combinacionales

TEMA 5.3 SISTEMAS DIGITALES

Modelos de Circuitos FCHE 2011

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

BLOQUE 2 (PARTE 2) DISPOSITIVOS LÓGICOS PROGRAMABLES

EL-3213 Circuitos Digitales I. Registros y latches multibit

Asignaturas antecedentes y subsecuentes Diseño de Sistema Digital I

Tema 9. SISTEMAS COMBINACIONALES PROGRAMABLES SISTEMAS COMBINACIONALES PROGRAMABLES NO UNIVERSALES

Registros y latches multibit. EL-3213 Circuitos Digitales I. Registro de 8 bits (octal register) Otros registros de 8 bits. 74x175

INDICE 1. Conceptos Introductorias 2. Sistemas Numéricos y Códigos 3. Compuertas Lógicas y Álgebras Booleana 4. Circuitos Lógicos Combinatorios

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

PARTE I. TÉCNICAS DE DISEÑO ELECTRÓNICO MEDIANTE LENGUAJES DE DESCRIPCIÓN HARDWARE

Organización n del Computador 1. Lógica Digital 2 Circuitos y memorias

Autómatas programables

TEMA 1 INTRODUCCIÓN A LOS SISTEMAS DIGITALES

Duración (en horas) Evaluación de los aprendizajes

CURSO: Electrónica digital UNIDAD III: CIRCUITOS SECUENCIALES - TEORÍA

INDICE Programa Entrada Unidad de control Unidad aritmética y lógica (ALU)

5.3. Álgebras de Boole y de conmutación. Funciones lógicas

Programa Oficial de Asignatura. Ficha Técnica. Presentación. Competencias y/o resultados del aprendizaje. Electrónica Analógica y Digital

SUBSISTEMAS COMBINACIONALES. Tema 4: SUBSISTEMAS COMBINACIONALES

Dispositivos Lógicos Programables

INDICE. XIII Introducción. XV 1. Introducción a la técnica digital 1.1. Introducción

TEMA 7 ELECTRÓNICA DIGITAL: LÓGICA COMBINACIONAL

INDICE Capítulo 1. Introducción Capítulo 2. Circuitos lógicos básicos Capítulo 3. Sistemas numéricos Capítulo 4. Codificación

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

Dispositivos Digitales. EL-611 Complemento de Diseño Lógico y. Dispositivos Digitales

Práctica 4. Sistemas Digitales. Objetivos particulares

Sistemas Combinacionales

Créditos prácticos: Fernández Vadillos José Guillén Castillo Francisco Luis Novas Castellano Nuria

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

Electrónica Digital: Sistemas Numéricos y Algebra de Boole

9-Sistemas Secuenciales

TECNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN

INDICE Capitulo 1. Sistemas y Códigos de Numeración Capitulo 2. Álgebra de Boole Capitulo 3. Sistema Combinacionales

PROGRAMA INSTRUCCIONAL CIRCUITOS DIGITALES

Tutorial introductorio al Lenguaje Abel ( Advanced Bolean Equations Language).

IEE 2712 Sistemas Digitales

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

Sistemas Combinacionales y Sistemas Secuenciales

Programa Regular. Electrónica II

Electrónica Digital Área de Ingeniería Mecatrónica Carrera/programa de Ingeniería Electrónica e Ingeniería Electromecánica

TEMA 5 DISPOSITIVOS LÓGICOS PROGRAMABLES Y MEMORIAS. 1. Introducción. 2. Dispositivos lógicos programables.

Cuatro Tipos de Flip-Flop en la GAL22V10

Electrónica Digital: Diseño y Lógica Secuencial

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

DISEÑO CURRICULAR ELECTRÓNICA DIGITAL

Objetivos. Instituto Tecnológico de Costa Rica Escuela de Ingeniería Electrónica I SEMESTRE Contenido del Curso EL FLUJO DE DISEÑO O DIGITAL

Relación de Problemas de Circuitos Secuenciales

DISEÑO LOGICO CON DISPOSITIVOS LOGICOS PROGRAMABLES (PLD S) ING. LUIS F. LAPHAM CARDENAS PROFESOR INVESTIGADOR DIVISION DE ELECTRONICA C.E.T.I.

2. Números naturales: sistema de numeración y operaciones básicas

PROGRAMA DE CURSO Modelo 2009

UNIVERSIDAD NACIONAL FEDERICO VILLARREAL FACULTAD DE INGENIERÍA ELECTRÓNICA E INFORMÁTICA

DESCRIPCIÓN DE LA ASIGNATURA

Lógica Secuencial. Circuitos Digitales, 2º de Ingeniero de Telecomunicación ETSIT ULPGC

ÍNDICE CAPÍTULO 1 FUNDAMENTOS DE LOS MICROCONTROLADORES

Organización de Computadoras Apunte 5: Circuitos Lógicos Secuenciales

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

PROBLEMA VHDL. 7 dig1. dig2. Entradas : Señales a[3..0] y b [3..0] en código GRAY Salida : Señales Dig1[6..0] y Dig2[6..0] para los visualizadores

ELO211: Sistemas Digitales. Tomás Arredondo Vidal 1er Semestre 2009

DISEÑO CURRICULAR ARQUITECTURA DEL COMPUTADOR

LÓGICA PROGRAMABLE. Introducción Simple PLDs Complex PLDs FPGAs. Dpto. Ingeniería Electrónica y Comunicaciones

Carrera: MTF Participantes Representante de las academias de ingeniería Mecatrónica de los Institutos Tecnológicos.

Programa Regular. Asignatura: Electrónica II (Sistemas Lógicos y Digitales). Carreras: Bioingeniería. Ciclo lectivo: 2016.

Temario TEMARIO. Sist. Electrónicos Digitales 1

6.1. Operadores aritméticos en binario natural

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

Tema 7 - Registros, contadores y memorias

Lenguaje ABEL. Introducción. Estructura de un archivo fuente ABEL. Estructura de un archivo fuente ABEL

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, Decana de América)

Lógica Programable -Introducción - Introducción n a los Sistemas Lógicos y Digitales 2008

Componentes Combinacionales. Circuitos Digitales, 2º de Ingeniero de Telecomunicación ETSIT ULPGC

Circuitos Lógicos Secuenciales. Figura 36. Circuito lógico secuencial. Actividad de apertura. Circuitos lógicos secuenciales.

Circuitos Secuenciales

REPÚBLICA BOLIVARIANA DE VENEZUELA UNIVERSIDAD BICENTENARIA DE ARAGUA SECRETARIA DIRECCIÓN DE ADMISIÓN Y CONTROL DE ESTUDIOS

Sistemas Informáticos

Unidad 3: Circuitos digitales.

Circuitos combinacionales. Funciones integradas

Circuitos Combinatorios

DISEÑO F.S.M DIGITAL2 YESID SANTAFE

Aquí vemos como una PLD no programada (donde todos sus fusibles están intactos), así para la salida O1 tenemos:

Prerrequisito: Número de Horas Totales 160 Hrs Teoría: 120 Práctica: 40 Horas semanales: 8 Créditos: 17

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

ELECTRONICA DIGITAL. Guía de Aprendizaje Información al estudiante. Electrónica Digital. M5. Electrónica. Ingeniería Electrónica.

Especialista en Electrónica Digital

TEMA 10. CIRCUITOS SECUENCIALES

T7-SISTEMAS SECUENCIALES

Transcripción:

UNIVERSIDAD TECNOLÓGICA DE LA MIXTECA Instituto de Electrónica y Mecatrónica 2. DISPOSITIVOS LÓGICOS PROGRAMABLES SIMPLES C I R C U I T O S D I G I T A L E S R E C O N F I G U R A B L E S 1 M. C. Felipe Santiago Espinosa Marzo / 2017

INTRODUCCIÓN Los Dispositivos Lógicos Programables Simples (SPLD s) proporcionan la flexibilidad que no se consigue con lógica estándar (TTL y CMOS). Los primeros SPLD s se usaron para hacer partes de diseños que no correspondían con ningún componente existente en el mercado. Una aplicación típica para estos circuitos es la decodificación de direcciones desde un procesador, para el manejo de información de una memoria o de periféricos mapeados a memoria. Con su uso se redujo el número de chips, en comparación con una implementación con circuitos LSI, manteniendo una inversión mínima de capital cuando un ASIC a medida era la otra alternativa. 2

CARACTERÍSTICAS Los SPLD s se basan en matrices programables. Una matriz programable es una red de conductores distribuidos por filas y columnas, con un fusible en cada intersección. Matriz OR (a) Sin programar y (b) Programada. 3

CARACTERÍSTICAS Matriz AND (a) Sin programar y (b) Programada. 4

TIPOS DE SPLD S PROM (Programmable Read Only Memory) PLA (Programmable Logic Array) 5

TIPOS DE SPLD S PAL (Programmable AND-Array Logic) GAL (Generic Array Logic) 6

PAL Y GAL Los dispositivos lógicos programables que se emplean con mayor frecuencia son la PAL y la GAL. En el nombre del dispositivo se especifican algunas características, ejemplos: PAL16L8 Es una PAL con 16 entradas y 8 salidas, las salidas son lógicas (combinacionales). PAL16R8 Es una PAL similar a la anterior pero las salidas con registros (flip-flops). GAL16V8 Es una GAL con 16 entradas y 8 salidas versátiles, es decir, pueden ser tanto combinacionales como con registro. Otros dispositivos: PALCE16V8, PALCE22V10, GAL18V10, GAL20V8, GAL22V10 y GAL26V12. 7

PROGRAMACIÓN DE SPLD S El comportamiento del circuito se define con algún lenguaje de descripción de hardware (HDL). Las herramientas de software ayudan en la edición de la descripción, así como en la compilación y simulación del circuito. Algunas herramientas para SPLD s son: CUPL: Compilador universal para lógica programable. ABEL: Lenguaje Avanzado para expresiones booleanas. OPAL, PALASM, TANGO-PLD, etc. Con la descripción libre de errores se crea un archivo de configuración que será descargado en el chip para su evaluación real. 8

WINCUPL CUPL: Es un Compilador universal para Lógica Programable, se emplea para programar o simular SPLDs. Con CUPL es posible compilar descripciones de circuitos combinacionales o secuenciales. WinCUPL es una versión de CUPL para windows. Es un entorno desarrollado por Atmel Corporation. Un circuito combinacional se describe por medio de su ecuación booleana o con su tabla de verdad. Para los circuitos secuenciales se pueden emplear ecuaciones para los elementos de estado. Aunque también es posible una descripción a través de una máquina de estados finitos, conservando la estructura de la solución del problema. 9

En WinCUPL, los archivos con las descripciones tienen extensiones.pld. El compilador genera los archivos siguientes: Un archivo JEDEC (filename.jed) para descargarse con un programador o emplearse con un simulador. Un archivo absoluto (filename.abs) para usarse por CSIM, el módulo de simulación de CUPL. Un archivo de lista (filename.lst) que muestra los errores en el archivo fuente original. Un archivo de documentación (filename.doc) que contiene ecuaciones lógicas expandidas, tablas de símbolos, términos productos e información del mapa de fusibles. Un archivo en formato PLA (filename.pla) para ser usado por otros módulos o programas técnicos. 10

ECUACIONES BOOLEANAS Se pueden emplear los 4 operadores lógicos fundamentales: NOT, AND, OR y XOR: Operador Descripción Ejemplo Precedenci a! NOT!A 1 & AND A & B 2 # OR A # B 3 $ XOR A $ B 4 Una ecuación lógica tiene la forma: [! ] var [.ext ] = exp; 11

Donde: Var es una variable o lista de variables indexadas o no indexadas. Si se trata de una lista, la expresión se aplica a los diferentes elementos de la lista..ext es una extensión a las variables que las vincula con las características de los dispositivos programables [opcional]. Exp es una expresión, es decir, una combinación de variables y operadores. = el operador de asignación que se aplica a una variable o a un conjunto de variables! El operador de complemento [opcional]. Para generar salidas con lógica negada. 12

EXTENSIONES DE LAS VARIABLES EN WINCUPL 13

USO DE LAS EXTENSIONES DE LAS VARIABLES 14

VARIABLES INDEXADAS Las variables son indexadas si finalizan con un número, referido como índice, pueden usarse para representar buses. Por ejemplo, para: A0 A1 A2 A3 A4 A5 A6 A7, puede usarse A0..A7 (ó simplemente A0..7). El índice es un número entre 0 y 31, siendo el bit 0 el menos significativo. Un operador puede aplicarse a un conjunto de variables indexadas, por ejemplo, las expresiones: [A3, A2, A1, A0] : & A3 & A2 & A1 & A0 [B3.. B0] : # B3 # B2 # B1 # B0 [C3, C2, C1, C0] : $ C3 $ C2 $ C1 $ C0 15

AGRUPACIÓN DE VARIABLES Con la palabra reservada FIELD se hace referencia a un grupo de variables (indexadas o no) para tratarlas como una variable única de varios bits, por ejemplo: FIELD address = [ A3.. A0]; FIELD modo = [ini, asc, des ]; 16

DESCRIPCIONES EN WINCUPL Una descripción en WinCUPL debe iniciar con: Encabezado: Se indica el nombre del programa, el dispositivo a ser programado (usaremos g22v10), el autor, la fecha y otros datos (se genera en forma automática). Asignación de terminales: Se asignan las terminales de entrada y salida del dispositivo. Ejemplo: PIN 1 = A ; /* Comentarios de ayuda*/ Es posible emplear variables indexadas en la definición de entradas, por ejemplos: PIN [1..4] = [a0..a3]; /* Entrada de 3 bits */ PIN [1..4] = [a3..a0]; /* Debe aparecer el índice 0 */ 17

EJEMPLO 1: CIRCUITO COMBINACIONAL Se describirá mediante CUPL el siguiente circuito: a b c La ecuación para el circuito es: f Con la notación de CUPL: 18

CIRCUITO COMBINACIONAL Se utilizará una GAL22V10: Entradas: Pin 1 a Pin 2 b Pin 3 c Salida: Pin 23 f 19

SIMULACIÓN EN WINCUPL 1. Iniciar un nuevo archivo de simulación a partir del archivo PLA 2. Agregar señales al espacio de simulación 3. Agregar vectores 4. Definir los valores de las entradas 5. Ejecutar la simulación Simulación en ISIS de Proteus 1. Definir el circuito 2. Cargar el archivo JED en el PAL 3. Ejecutar la simulación 20

TABLAS DE VERDAD Es otra manera de describir circuitos combinacionales, CUPL reserva a la palabra TABLE para estas descripciones. Primero se define un campo (FIELD) para las variables de entrada y otro para las variables de salida. Después se especifican una a una las asignaciones de las salidas ante las diferentes entradas (Es posible generar el código en forma automática). Se pueden considerar condiciones no importa para las entradas pero no para las salidas. Una lista de valores de entrada se puede considerar para generar la misma salida. 21

SINTAXIS DE UNA TABLA DE VERDAD FIELD ent = [D3..0]; /* Número en binario */ FIELD sal = [Q7..0]; /* Número en BCD */ TABLE ent => sal { 0=> 00; 1=>01; 2=>02; 3=>03; 4=>04; 5=>05; 6=>06; 7=>07; 8=>08; 9=>09; A=>10; B=>11; C=>12; D=>13; E=>14; F=>15; } Con excepción de las terminales de los dispositivos y la definición de las variables indexadas, que siempre se definen en decimal, para otras operaciones CUPL maneja los números en hexadecimal, a menos que se especifique otra base utilizando el prefijo correcto. 22

BASES NUMÉRICAS Prefijo Base Ejemplo En binario, octal o hexadecimal pueden utilizarse condiciones no importa ( X ), por ejemplo: b 110X O 2X3 h 12AX Valor (decimal) B Binario (2) B 1101 13 O Octal (8) O 123 83 D Decimal (10) D 872 872 H Hexadecimal (16) H A2 162 23

EJEMPLO 2: DECODIFICADOR DE 3 A 8 Circuito con 3 entradas y 8 salidas, sólo una salida está activa. A2 A1 A0 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 Simular en WinCUPL y en PROTEUS. 24

FUNCIONES EN WINCUPL Si se requieren tareas repetitivas, es posible el uso de funciones. Por ejemplo, una función para un sumador de 1 bit se define como: function sum_1bit (X, Y, Cin, Cout) { Cout = Cin & X # Cin & Y # X & Y; /* Carry */ sum_1bit = Cin $ (X $ Y); /* Suma */ } 25

FUNCIONES EN WINCUPL Un circuito complejo se crea a partir de llamadas a funciones: /* Un sumador de 4 bits, con acarreo */ Z1 = sum_1bit(x1, Y1, b'0, C1); /* El acarreo inicial es b'0 */ Z2 = sum_1bit(x2, Y2, C1, C2); Z3 = sum_1bit(x3, Y3, C2, C3); Z4 = sum_1bit(x4, Y4, C3, C4); /* En C4 está el acarreo final */ Nota: Simular el sumador de 4 bits. 26

MÁQUINAS DE ESTADOS FINITOS Una Máquina de Estados Finitos (MEF) es un circuito digital, el cual recorre una secuencia de estados en un orden predefinido. El circuito tiene memoria, es decir, sus salidas no solo dependen de las entradas, sino que también de los estados anteriores. Entrada/Salida: x/y 27

MEF Una MEF se compone de dos bloques principales, como se muestra en la figura: Para los elementos de memoria se emplean flip-flops, la máquina es síncrona por que los flip-flops cambian su estado en cada flanco de reloj. 28

MÁQUINA DE MEALY Las salidas dependen de las entradas y del estado actual. 29

MÁQUINA DE MOORE Las salidas sólo dependen del estado actual. 30

MEF EN WINCUPL Para definir una máquina de estados en CUPL primero se determinan los bits con los que se representarán los estados válidos, para ello se crea un FIELD. FIELD Estados = [Qn..Q0]; [Qn..0] son terminales de salida, según el número de estados. Cada estado puede tener un nombre simbólico, se establece con la palabra $define $define s0 b 0...0 $define s1 b 0 1... $define sk b 1 1 31

FSM EN WINCUPL Con la palabra reservada SEQUENCE se determina la secuencia de estados, de acuerdo con la siguiente sintaxis: SEQUENCE Estados { PRESENT s0 NEXT s1; /* Avance incondicional */ PRESENT s1 IF (condition1) NEXT s2; /* Avance condicionado */ DEFAULT s1; PRESENT s2 IF (condition2) NEXT s3 OUT SalidaX; /* Avance y salida */ DEFAULT NEXT s4; /* condicionada */.. } 32

Ejemplo 3: Contador 0 a 3 Las salidas están en los mismos bits de estado. FIELD estados = [Q1..Q0]; $define S0 'b'00 $define S1 'b'01 $define S2 'b'10 $define S3 'b'11 Los flip-flops de salida cuentan con un reset asíncrono (ar) y un preset síncrono (ps). Por lo tanto, se debe agregar: estados.ar = 0; estados.sp = 0; 33

Ejemplo 4: Detección de un flanco de subida Es una máquina de Mealy porque la salida se genera durante la transición. Codificar y simular mediante WinCUPL 34

Ejemplo 5: Detección de un flanco de subida (versión 2) Es una máquina de Moore porque la salida sólo depende del estado actual. Codificar y simular mediante WinCUPL. Lo más simple es emplear una secuencia (sequence) y después una tabla (table). 35

EJERCICIOS: 1. Multiplexor de 2 a 1. 2. Decodificador de BCD a 7 segmentos. 3. Comparador de datos de 4 bits. 4. Generador de paridad Par/Impar. 5. Contador Up/Down de 3 bits. 6. Registro de corrimiento, entrada serial y salida paralela. 7. Sistema con dos semáforos (que el color verde tarde el doble de tiempo que el amarillo). 8. Control automático de una bomba de agua 9. Seguidor de línea con dos motores independientes 10. Control de una puerta automática 36