CIRCUITOS LOGICOS PROGRAMABLES

22
INSTITUTO TECNOLOGICO DE COLIMA “DISPOSITIVOS LOGICOS PROGRAMABLES”

description

Definicion basica de los circuitos logicos programables

Transcript of CIRCUITOS LOGICOS PROGRAMABLES

Page 1: CIRCUITOS LOGICOS PROGRAMABLES

INSTITUTO TECNOLOGICO DE COLIMA

“DISPOSITIVOS LOGICOS PROGRAMABLES”

Page 2: CIRCUITOS LOGICOS PROGRAMABLES

PLC

Cualquier dispositivo lógico cuya función esta especificada por el usuario (AND OR)

FABRICACIÓN

CMOS (varias veces)

EPLD

- Radiación ultravioleta.- Ventanas de cuarzo. - Encapsulados en cerámica

EEPLD

- Eléctricamente.- Encapsulado de plástico

Bipolares TTL o ECL (una ves)

• Fundición de fusibles o destrucción de uniones

PROM

programable read only memory) viene de la ROM (reas onle memory). Formada por compuestas AND conectadas como decodificador y una matriz programable OR.

PROGRAMACIÓN

Solo se programa una vez. Quema fusibles o destruye uniones.

Aplicaciones

• Funcionamiento del sistema PC : en la gestión del proceso de arranque, el chequeo inicial del sistema, carga del sistema operativo y diversas rutinas de control de dispositivos de entrada/salida suelen ser las tareas encargadas a los programas grabados en ROM.

• La memoria ROM constituye lo que se ha venido llamando Firmware, es decir, el software metido físicamente en hardware. 

Page 3: CIRCUITOS LOGICOS PROGRAMABLES

PROGRAMACION

DIAGRAMA

• Numero fijos de AND que alimentan a una matriz programable OR

Page 4: CIRCUITOS LOGICOS PROGRAMABLES

PAL

Programmable Array Logic (Lógica en un Arreglo Programable), la arquitectura de éste PLD está compuesto por un Plano AND programable y el Plano OR fijo. Este dispositivo es el intermedio entre una PROM y un PLA; debido a que, por cada entrada que se agregue no será necesario duplicar la cantidad de fusibles y el tener un plano fijo conduce a un menor retardo en la circuitería interna. También incluye la capacidad de programar la polaridad de salida. Este PLD puede incluir una serie de componentes a la salida del plano OR, como pueden ser: Inversores y Flip-Flops, que permitirán hacer del dispositivo, un PLD versátil.

Existen dos tipos de PAL’s, uno de los cuales puede ser programado solamente una vez, por ejemplo: El PAL16R8 el cual es un dispositivo de 16 posibles entradas y con 8 salidas; todas con Flip-Flops. El otro PAL mejor conocido como GAL de Generic Array Logic ( Lógica en Arreglo Genérico ), combina las características de un PAL; pero además, agrega tecnología especial para ser borrado y programado eléctricamente.

El circuito interno de un PAL consiste de una matriz de conexiones, una matriz de compuertas AND programables y un arreglo de compuertas OR fijo. La matriz de conexiones es una red de conductores distribuidos en filas y columnas con un fusible en cada punto de intersección, mediante la cual se seleccionan cuales entradas del dispositivo serán conectadas al arreglo OR y así obtener una función lógica en forma de suma de productos. Los circuitos PAL son no reprogramables; ya que la síntesis de las ecuaciones lógicas se realiza a través de la quema de fusibles en cada punto de intersección de los pines de entrada con las compuertas. Si un dispositivo contiene macrocélulas, comúnmente tendrá una arquitectura PAL. Las macrocélulas típicas pueden programarse como entradas, salidas, o entrada/salida (e/s) usando una habilitación tri-estado. Normalmente tienen registros de salida que pueden usarse o no conjuntamente con el pin de e/s asociado.

El software de diseño PALASM (PAL Assembler, ensamblador PAL) convertía las ecuaciones Booleanas de los ingenieros en el patrón de fusibles requerido para programar el dispositivo.

Por lo general se usa algún lenguaje de "alto nivel" (como CUPL o ABEL) que describe la ecuaciones lógicas deseadas, y posteriormente se lo compila (mediante pasos de optimización y minimización) a un archivo JEDEC, que posee la información sobre qué fusibles internos quemar. Un entorno de desarrollo y simulación gratuito es WinCUPL de Atmel.

Page 5: CIRCUITOS LOGICOS PROGRAMABLES

Es necesario comprar (o construir) un programador. Al contrario que con los mayoría de los microcontroladores, no parece haber ninguno sencillo, ya que por lo general todos los PLD necesitan un voltaje de programación VPP de aproximadamente 15V.

Ventajas

Configurables la matriz AND y fija la OR

La salida no es flexible

Menos conexiones a realizar

Ocupan menos espacio

Las PAL CMOS permiten ser borradas (UV y/o eléctricamente

Aplicaciones

Conversores de código (por ejemplo de binario a gray o viceversa) Conversores de binario a 7 segmentos (que también muestren las letras A-F) Verificadores de paridad y chequeo de errores Distintos tipos de contadores y registros Controladores de memoria y E/S para microprocesadores Tablas predefinidas (LUT)

PLA

Las PLA (Programmable Array Logic).son matrices lógicas programables. Estos dispositivos contienen ambos términos AND y OR programables lo que permite a cualquier término AND alimentar cualquier término OR. Las PLA probablemente tienen la mayor flexibilidad frente a otros dispositivos con respecto a la lógica funcional. Todos los PLA están formados por matrices programables.

Page 6: CIRCUITOS LOGICOS PROGRAMABLES

Normalmente poseen realimentación desde la matriz OR hacia la matriz AND que puede usarse para implementar máquinas de estado asíncronas. La mayoría de las máquinas de estado, sin embargo, se implementan como máquinas sincrónas. Con esta perspectiva, los fabricantes crearon un tipo de PLA denominado Secuencial (Sequencer) que posee registros de realimentación desde la salida de la matriz OR hacia la matriz AND.

Los PLA tienen la capacidad de programar la polaridad de salida, lo que permite trabajar con max-términos si se requieren; esto se logra a través de una ORExclusiva. No obstante, los fusibles adicionales (debido a que hay dos planos programables), agregan un retardo mayor que los de un solo plano programable y una circuitería más compleja y al mismo tiempo la programación se vuelve más elaborada. Debido a la tecnología que utilizan también aumenta su costo.

La matriz AND está formada por una red de compuertas AND conectadas a través de conductores y fusibles en cada punto de intersección. Cada punto de intersección entre una fila y una columna se denomina celda. La siguiente figura muestra un arreglo de compuertas no programado.

La matriz OR está formada por una red de compuertas OR conectadas a través conductor y fusibles en cada punto de intersección. La siguiente figura muestra un arreglo de compuertas no programado.

Page 7: CIRCUITOS LOGICOS PROGRAMABLES

Programación de un PLD Programar significa realizar las conexiones reales en el arreglo, es decir cuales conexiones deben estaren 0, 1 Existen 2 métodos para programar un PLD

•Programación por ZIF

Este implica remover el chip del PLC y se requiere colocarlo en un dispositivo especial llamado (Programador)

•Programación en Sistema

Este método el chip no necesita extraerse del circuito para su programación se la realiza por medio de un cable conocido como JTAG donde tiene 4 terminales que son conectadas la PLC y es cargada la información por medio de software que establece el formato apropiado de PLC

->Ventajas

Configurable la matriz AND y OR

Mayor número de conexiones a programar

Mayor flexibilidad en la realización del circuito

Tipos de configuraciones

-Con fusibles:

Irreversibles y no reconfigurables

Fueron los primeros en aparecer

-Con transistores MOS reconfigurables (no volátiles)

Borrables y reconfigurables:

Borrables mediante luz ultravioleta

Borrables eléctricamente

-Con transistores MOS y memoria activa estática (volátiles)

Se configura cada conexión mediante un biestable

Al dejar de alimentar el circuito se pierde la configuración

Page 8: CIRCUITOS LOGICOS PROGRAMABLES

GAL (GENERIC ARRAY LOGIC)

En su forma básica es un PLD con una matriz AND reprogramable, una matriz OR fija y una macrocelda. Esta estructura permite implementar cualquier función lógica en forma de suma de productos con un numero de términos definido. Pueden ser reprogramadas varias veces.

En un GAL el fusible se reemplaza por una celda CMOS eléctricamente borrable (EECMOS) y mediante programación se activa o desactiva cada celda EECMOS.

Una celda activada conecta su correspondiente intersección de fila y columna, y una celda descativada desconecta dicha intersección. Con esta estructura se puede aplicar cualquier combinación de variables de entrada, o sus complementos, a una compuerta AND para generar cualquier operación producto que se desee.

ESTRUCTURA

Matriz Lógica Genérica (GAL)

CARACTERISTICAS:

• Es reprogramable.• Tiene configuraciones de salida reprogramables. • Usa tecnología E2CMOS (Electrically Erasable CMOS).

FUNCIONAMIENTO DE UNA GAL

Page 9: CIRCUITOS LOGICOS PROGRAMABLES

COMO SE PROGRAMA

Page 10: CIRCUITOS LOGICOS PROGRAMABLES

Mediante software ABEL, VHDL, VERIGOL, AHDL

Diagrama de bloques de la GAL22V10

Page 11: CIRCUITOS LOGICOS PROGRAMABLES

Diagrama de la matriz GAL22V10

Page 12: CIRCUITOS LOGICOS PROGRAMABLES

APLICACIÓNES

Page 13: CIRCUITOS LOGICOS PROGRAMABLES
Page 14: CIRCUITOS LOGICOS PROGRAMABLES

Ejemplo de aplicación:

Demostrar cómo se puede implementar la suma de productos de 6Variables siguientes con la GAL22V10:

EJEMPLO DE APLICACIÓN:

Indicar cómo se programa una GAL para obtener la siguiente expresiónde 3 variables:

FPGA (Field Programmable Gate Array)

Page 15: CIRCUITOS LOGICOS PROGRAMABLES

• Consiste en arreglos de varias celdas lógicas las cuales se comunican unas con otras mediante canales de conexión verticales y horizontales. lo que se programa en una FPGA son los conmutadores que sirven para realizar las conexiones entre los diferentes bloques, mas la configuracion de los bloques.• No tienen una estructura de implementación predefinida, como los CPLD, permitiendo implementar una función lógica de mulltiples maneras. • Son tremendamente flexibles y potentes algunas de ellas. • Los inconvenientes de su utilización es la baja velocidad de operacion y baja densidad lógica debido a los retardos introducidos por los conmutadores y las largas pistas de conexion.

ELEMENTOS BASICOS1. Bloques lógicos, cuya estructura y contenido se denomina arquitectura. Hay muchos tipos de arquitecturas, que varían principalmente en complejidad (desde una simple puerta hasta módulos mas complejos o estructuras tipo PLD). Suelen incluir biestables para facilitar la implementación de circuitos secuenciales. Otros módulos de importancia son los bloques de Entrada/Salida.

2. Recursos de interconexión, cuya estructura y contenido se denomina arquitectura de rutado.

3. Memoria RAM, que se carga durante el RESET para configurar bloques y conectarlos.

TIPOS DE FPGAS

1. Matriz simétrica, como son las de XILINX.2. Basada en canales, ACTEL.3. Mar de puertas, ORCA.4. PLD jerárquico, ALTERA o CPLDs de XILINX.

ARQUITECTURA DE LAS FPGA DE XILINX

Page 16: CIRCUITOS LOGICOS PROGRAMABLES

Como se realiza el proceso de programación:

En primer lugar, si se piensa que el numero de dispositivos de conexión que hay en una FPGA es muy grande (tipicamente superior a 100.000), es necesario que cumplan las siguientes propiedades:

Ser lo mas pequenos posible. Tener la resistencia ON lo mas baja posible, mientras la OFF ha de

ser lo mas alta posible (para que funcione como conmutador). Se deben poder incorporar al proceso de fabricación de la FPGA.

PRINCIPALES FAMILIAS

.

En la actualidad existen tambien las familias de FPGA SpartanII, SpartanIII, Virtex, VirtexII y VirtexPro.CELDAS LOGICAS

Cada celda lógica es funcionalmente similar a los bloques lógicos de un CPLD.La diferencia está en que un FPGA normalmente utiliza generadores de funciones en vez de compuertas.

Cada uno de estos generadores es como una memoria en donde en vez de implementar la función lógica mediante compuertas, se precalcula el resultado y se almacena en el generaqdor.

COMO SE PROGRAMA

Page 17: CIRCUITOS LOGICOS PROGRAMABLES

El denominado modo Serial/Slave. En este caso los datos llegan en serie por un pin de entrada de datos de forma síncrona: un reloj (CCLK) valida los datos de la Entrada serie (DIN). Se deja al alumno definir el formato de los datos de entrada cuando se esta en configuración. El control de la FPGA se puede hacer desde un microprocesador, resultando el esquema de conexion mas sencillo Resulta evidente que hay que utilizar los recursos de interconexion para realizar la pro-gramacion, por lo que sería necesario configurar primero las interconexiones para realizar la programacion de los CLBs.Para programar las LUTs, se sugiere como forma sencilla de implementacion comenzar configurando todas las lineas para que lleven a, b c y d a todos los CLBs de la FPGA. Luego se Utilizaran unas lineas de seleccion de CLB" que vayan habilitando cada CLB mientras se hace la programacion. Son necesarios unos decodificadores globales que sirvan para llevar el dato a cada fila/columna de CLBs. Esto se puede ver como el acceso en escritura a una memoria. Si se realiza la escritura por las o columnas, harian falta unos registros de desplazamiento globales. Todos los elementos de memoria se deben enlazar siguiendo una filosofia "scan-path".

CUANTAS VECES SE PUEDE PROGRAMAR

Una FPGA basada en SRAM (RAM estática) admite un número ilimitado de reprogramaciones sin necesidad de borrados previos.

Un FPGA que utiliza este tipo de tecnología solo se puede programar una sola vez y utilizan algo similar a un fusible para realizar las conexiones. Una vez que este programado ya no se puede recuperar.Una desventaja obvia es que no son reutilizables, pero por el contrario disminuyen considerablemente el tamaño y costo de los dispositivos.

APLICACIONES

Page 18: CIRCUITOS LOGICOS PROGRAMABLES

La principal aplicación de las FPGAs está orientada al procesamiento digital de señales (DSP), la cual es empleada en comunicaciones, procesado de datos, etc. La elección de una FPGA para aplicaciones de tratamiento de señal se debe a su alta frecuencia de trabajo, a su capacidad de procesamiento en paralelo, y a su bajo precio en comparación con los ASICs. De esta aplicación se derivan una gran variedad de aplicaciones de las FPGAs, citándose algunas de ellas a continuación:

Sistemas de visión artificial: en el mundo actual existen cada vez en más número dispositivos que disponen de un sistema de visión artificial. Ejemplo de esto son las cámaras de videovigilancia, robots, etc.

Sistemas de imágenes médicas: cada vez con más frecuencia se están empleando las FPGAs para el tratamiento de imágenes biomédicas obtenidas mediante procesos de PET, escáner CT, rayos X, imágenes tridimensionales, etc.

Radio definida por software: de forma tradicional, una radio consistía en una antena, encargada de recibir y enviar una señal, y un hardware encargado de procesar esa señal, filtrarla, modificar su frecuencia, etc.

Codificación y encriptación: la seguridad en el envío de mensajes es fundamental en la vida diaria, por ejemplo a la hora de enviar un email o de realizar una compra por internet, y lo es más aún en el ámbito militar, aeronáutico y gubernamental

Reconocimiento de voz: el reconocimiento de la persona que habla es una técnica empleada en seguridad, sistemas de recuperación de información, etc., y se espera que en el futuro su ámbito de aplicación aumente.

Aeronáutica y defensa: además de las mencionada previamente, existen multitud de aplicaciones aeronáuticas y de defensa que emplean FPGAs debido a las buenas características que éstas ofrecen.

Bibliografia

http://www.pablin.com.ar/electron/cursos/intropld/

http://es.wikipedia.org/wiki/L%C3%B3gica_programada

http://html.rincondelvago.com/dispositivos-logicos-programables.html

http://ingridbasanta.blogspot.mx/2007/12/dispositivos-lgicos-programables.html

http://www.virtual.unal.edu.co/cursos/sedes/manizales/4060027/CURSO/leccion_3/10.htm

Page 19: CIRCUITOS LOGICOS PROGRAMABLES

Dispositivos lógicos programables, Universidad de Guadalajara, Centro universitario de ciencias exactas e ingenierías.