Tarea Que son los dispositivos digitales programables (PAL, GAL, CPLD, FPGA)
Matriz lógica programable PAL (Programmable Array Logic).
Se ha desarrollado para superar ciertas desventajas de la PLA, tales como largos retardos debidos a fusibles adicionales que resulta de la utilización de dos matrices programables y la mayor complejidad del circuito. La PAL básica está formada por una matriz AND programable y una matriz OR fija con la lógica de salida.
Matriz lógica programable PAL.
Los dispositivos lógicos programables que se usan más comúnmente para la implementación lógica son la PAL y la GAL.
Una
PAL está formada por una matriz de puertas AND programable, conectada a una matriz de puertas OR fija. Esta estructura
permite implementar cualquier suma de productos lógica con un número de variables definido (en el tema 2 se vio
como cualquier función lógica puede
expresarse como suma de productos).
En la figura de abajo
se ilustra la estructura básica de una PAL para dos variables
de entrada y una
de salida, aunque la mayoría
de PALs tienen muchas entradas
y muchas salidas.
Existe
una gran variedad de PALs cada una de las cuales se identifica mediante una referencia. Este referencia siempre
comienza con el prefijo PAL. Los dos primeros dígitos que siguen indican el número de entradas. La
letra siguiente indica el tipo de
salida: L = LOW (activa a nivel
bajo), H = HIGH (activa a nivel alto) y P = polaridad programable. Y los
últimos dos dígitos designan el
número de salidas. Por ejemplo PAL10L8 designará a una PAL de 10 entradas
activas a nivel bajo
y 8 salidas. Esta referencia, además, puede llevar subíndices que especifican la velocidad, tipo de encapsulado y el rango de temperatura.
Matriz lógica genérica GAL (Generic Array Logic).
Es el desarrollo más reciente. Al igual que la PAL se forma con una matriz AND programable y una matriz OR fija. Las dos principales diferencias son:
Es reprogramable: usa la tecnología E2CMOS (Electrically Erasable CMOS) CMOS borrable
eléctricamente en lugar de fusibles.
Tiene configuraciones de salida programables.
Los
avances en tecnología han hecho posible la creación de circuitos integrados
programables equivalentes a varios PLDs en el mismo chip. A estos circuitos
integrados se les llaman dispositivos lógicos programables complejos (CPLDs por
sus siglas en inglés). Un CPLD es un circuito integrado que consiste en un
número de bloques lógicos parecidos a un PAL, incluyendo además una matriz
programable de interconexiones entre estos bloques. Algunos CPLDs se basan en
la arquitectura del PAL, en cuyo caso cada macro celda contiene un flip flop y
una compuerta OR, cuyas entradas están asociadas a un arreglo de compuertas AND
fijo, mientras que los CPLDs que se 24 basan en PLAs cada salida de compuertas
AND en un bloque se puede conectar a la entrada de cualquier compuerta OR en
ese bloque. Los más grandes fabricantes de CPLDs hoy en día son Xilinx, Altera,
Lattice Semiconductor, Cypress y Atmel. Algunos de estos vendedores especifican
sus productos en términos de cantidad de compuertas, mientras que otros lo
hacen en términos de elementos lógicos. Por ejemplo, Altera vende tres series
de CPLDs, las cuales son MAX II, MAX 3000 Y MAX 7000. Cada una de éstas tiene
especificaciones en general y los dispositivos dentro de cada serie se
diferencian de acuerdo a sus capacidades lógicas y el número de pines de
entrada/ salida. Dentro de la serie MAX 7000 existen dispositivos que van de
las 600 compuertas (32 macroceldas) hasta 5000 compuertas (256 macroceldas). Su
arquitectura está basada en módulos de arreglos lógicos, llamados Logia Array
Blocks (LABs) que consisten en arreglos de 16 macroceldas. Los LABs se conectan
por medio del Programmable Interconnect Array (PIA) alimentado por todas las
entradas, pines de entrada/salida, así como por las macroceldas.
Las
macroceldas de la serie MAX 7000 pueden ser configuradas individualmente para
operar con lógica combinacional o secuencial. Tienen tres bloques funcionales:
el arreglo lógico, la matriz de selección de términos producto y el registro
programable.
La
lógica combinacional se implementa en el arreglo lógico que provee cinco
términos producto por cada macrocelda. El registro de cada macrocelda se puede
configurar para trabajar como flip flop D, T, JK o SR con un control de reloj
programable. En el caso de tener únicamente lógica combinacional, el flip flop
se puede ignorar.
FPGAs
Los
FPGAs son circuitos integrados que contienen un arreglo de bloques lógicos
idénticos con interconexiones programables, en los que el usuario puede
programar tanto las funciones realizadas por cada bloque lógico como las
conexiones entre bloques. Los FPGAs tienen varias ventajas con respecto a
MPGAs. Un arreglo de compuertas tradicional puede ser usado para implementar
cualquier circuito, pero sólo se puede programar en fábrica ya que se requiere
hacer una máscara específica para un circuito en particular y el tiempo de
diseño para un circuito integrado basado en arreglo de compuertas es de algunos
meses. Por otro lado, los FPGAs son productos comerciales, el tiempo de
manufactura se puede reducir de meses a algunas horas cambiando de MPGAs a
FPGAs. De la misma forma, se vuelve más fácil y más barato corregir errores en
los diseños. A volúmenes no tan altos, los FPGAs son más baratos que los MPGAs.
El interior de los FPGAs contiene típicamente tres elementos programables: los
bloques lógicos, los bloques de entrada/ salida y las interconexiones. Se
considera que los bloques de entrada/ salida se encuentran en la periferia del
circuito integrado, éstos conectan las señales lógicas a los pines del chip.
Los bloques lógicos se encuentran distribuidos dentro del FPGA y el espacio
entre ellos se usa para mandar conexiones entre bloques. La programabilidad de
campo se logra por los elementos que pueden ser reconfigurables por el usuario.
Los bloques lógicos se crean usando multiplexores, look-up tables y arreglos de
compuertas AND-OR o NAND-NAND, y cualquiera de estas cosas puede ser programada
(o configurada) por el usuario. Lo que diferencia un FPGA de un CPLD es la
interconexión flexible de propósito general. En un CPLD la interconexión es
bastante restringida, mientras que en un FPGA es muy flexible, lo cual a veces
puede resultar ser una desventaja ya que mandar una conexión de una parte del
chip a otra muy alejada puede hacer el diseño más lento. Los bloques lógicos
entre FPGAs varían en los componentes básicos que emplean. Algunos FPGAs usan
bloques basados en LUTs, mientras que otros usan multiplexores y compuertas
lógicas. Existen también bloques lógicos que simplemente consistían en pares de
transistores. En los primeros FPGAs de Altera, los bloques consistían en PLDs.
Los
bloques lógicos también varían en el tamaño. Algunos FPGAs usan bloques básicos
grandes, capaces de implementar varias funciones de cuatro o cinco variables,
con algunos flip flops. En contraste, también existen FPGAs con bloques que
sólo permiten una función de tres variables y un flip flop en cada bloque. Los
distintos fabricantes usan nombres diferentes para sus bloques, por ejemplo, en
Xilinx un bloque lógico programable se llama Configurable Logic Block; Altera
los llama Logic Elements (LEs) y una colección de ocho o diez de ellos se llama
Logic Array Block (LAB). Un elemento importante en los FPGAs es la
interconexión programable entre bloques lógicos. Existen diferentes tipos de
conexiones en FPGAs comerciales. Algunos usan matrices de switches, en las que
hay un switch en cada intersección de “cables”. Una matriz de switches soporta
cualquier conexión entre cable y cable, pero resulta muy cara esta tecnología,
además de que no todas las conexiones pueden existir al mismo tiempo. Otros
FPGAs usan conexiones especiales entre bloques lógicos adyacentes. Este tipo de
conexiones son rápidas porque no necesitan pasar por una matriz de ruteo. En
este tipo de FPGAs las interconexiones directas se dan hacia los cuatro bloques
vecinos (arriba, abajo, izquierda y derecha), en otros casos se dan hacia los
ocho vecinos, incluyendo así a los diagonales. Los pines de un FPGA están
conectados a bloques programables de entrada/ salida que facilitan conectar las
señales de los bloques lógicos al mundo externo. Cada bloque de entrada salida
tiene un número de opciones. El pin puede ser configurado para ser entrada o
salida mediante un buffer triestado. El bloque contiene flip flops para guardar
los valores de entrada o de salida. La señal de salida puede ser invertida si
se desea, mediante una compuerta XOR.
Los
FPGAs recientes tienen también bloques especializados. Dentro de estos bloques
existen los de memoria RAM, que van de 16k a 10M bits los cuales pueden servir
para almacenar datos necesarios en un proceso. El vendedor puede incluir
también bloques de procesamiento digital de señales con hardware para realizar
transformadas rápidas de Fourier, filtros FIR e IIR, entre otras cosas. Existen
también bloques embebidos de procesadores dentro de los FPGAs modernos, como el
MicroBlaze de Xilinx y el Nios de Altera.
Referencias
· Mandado Pérez E y Mandado Rodríguez
Y. (2008). Sistemas electrónicos digitales. 9a ed. México: Alfaomega.
· Marcus, M. P. (1982)"Circuitos digitales para Ingeniería". Prentice-Hall.
·
Adrian, «Dispositivos Lógicos Programables,» 6 Marzo
2018. [En línea]. Available:
http://www.ptolomeo.unam.mx:8080/jspui/bitstream/132.248.52.100/658/8/A8.pdf.
[Último acceso: 10 Octubre 2021]. |
Comentarios
Publicar un comentario