Sie sind auf Seite 1von 13

GAL Y VHDL

ARREGLO LOGICO GENERICO

GAL (GENERIC ARRAY LOGIC)


ANTECEDENTES La Electrnica, a travs de un sin nmero de aplicaciones tecnolgicas y con una rapidez arrolladora, ha logrado intervenir prcticamente en todos los mbitos de la vida cotidiana de la sociedad contempornea.

Tal vez sorprende que la palabra Electrnica, que es hoy tan comn, entr como vocablo del medio tecnolgico en 1930, para abarcar la radio y las aplicaciones industriales de tubos de electrones (bulbos).

Lo que dispar verdaderamente el desarrollo de la electrnica, sin embargo, fue el invento del transistor en 1947. John Bardeen, Walter Brattain y William Shockley de los Laboratorios Bell, descubren el efecto transistor, el cual permite cambios en la conductividad de los materiales mediante el uso de corriente elctrica.

En la dcada de 1960 surge otro campo de la electrnica denominado Electrnica Digital, el cual se basa en el lgebra Booleana creada por George Boole (1815-1864), lgico y matemtico britnico, que en 1854 escribi Las leyes del pensamiento, en el cual describe un sistema algebraico en donde las proposiciones lgicas se indican por smbolos y pueden relacionarse mediante operadores matemticos abstractos que corresponden a las leyes de la lgica. La principal caracterstica del lgebra booleana es que las variables slo pueden tomar dos valores: Uno o Cero (Verdadero o Falso).

Heidi Elliot de la revista Electronic Business opina que lo que empez como dispositivo para reemplazar el tubo de vaco se puede comparar ahora con el invento de la rueda.

ASICS Desde los finales de la dcada de 1970, los equipos electrnicos digitales utilizan Circuitos Integrados (CI o CHIPS) de funcin lgica fija, realizados en pequea o mediana escala de integracin (SSI, MSI).

Para la implementacin de aplicaciones muy complejas, que requieren de una gran cantidad de circuitos de funcin fija, resulta ms conveniente intgralos en un solo dispositivo fabricado a la medida, los cuales son llamados: ASICS, Application Specific Integrated Circuits. (Circuitos Integrados de Aplicacin Especifica o circuitos a la medida).

Entre las ventajas que presenta el uso de los ASICs podemos mencionar que: Ahorran espacio, reducen el

nmero de dispositivos, menor costo, reducen el tiempo de ensamble, bajo consumo de potencia, menor calentamiento, facilidad en la verificacin (control de calidad), mejor confiabilidad.

Los ASIC se pueden clasificar por su tecnologa de fabricacin en cuatro categoras: Arreglos de Compuertas, Celdas Estndar, Full Custom y Lgica Programable.

Las tecnologas de Arreglos de Compuertas, Celdas Estndar y Full Custom, estn encaminadas a la produccin industrial de alto volumen y requieren de equipo especializado para la fabricacin del ASIC.

Por otro lado, con la Lgica Programable es posible disear e implementar desde un solo circuito con el uso de solamente una computadora, un programador y software de Diseo Electrnico Asistido EDA (Electronic Design Assistant).

PLD Un dispositivo de lgica programable (PLD) es un Circuito Integrado cuya estructura lgica final es directamente configurada por el usuario, sin necesidad de llevar a cabo ningn proceso de fabricacin.

Un dispositivo lgico programable, o PLD (Programmable Logic Device), es un dispositivo cuyas caractersticas pueden ser modificadas y almacenadas mediante programacin. El principio de sntesis de cualquier dispositivo lgico programable se fundamenta en el hecho de que cualquier funcin booleana puede ser expresada como una suma de productos. El dispositivo programable ms simple es el PAL (Programmable Array Logic). El circuito interno de un PAL consiste en un arreglo, o matriz, de compuertas AND y un arreglo de compuertas OR. El arreglo AND es programable mientras que el OR generalmente es fijo. Mediante una matriz de conexiones se seleccionan cuales entradas sern conectadas al arreglo AND, cuyas salidas son conectadas al arreglo OR y de esta manera obtener una funcin lgica en forma de suma de productos. Una matriz de conexiones es una red de conductores distribuidos en filas y columnas con un fusible en cada punto de interseccin. La mayora de los PLDs estn formados por una matriz de conexiones, una matriz de compuertas AND, y una matriz de compuertas OR y algunos, adems, con registros. Con estos recursos se implementan las funciones lgicas deseadas mediante un software especial y un programador. Las matrices pueden ser fijas o programables. El tipo ms sencillo de matriz programable, que data de los aos 60, era una matriz de diodos con un fusible en cada punto de interseccin de la misma. En la figura 3 se muestran los circuitos bsicos para la mayora de los PLDs.

Peggy Aycinena de la revista electrnica Integrated System Design asegura que los dispositivos lgicos programables son la ola del futuro porque presentan las siguientes caractersticas: 10,000 compuertas en 1 in2, entradas y salidas configurables, reprogramables, programado remotamente para diferentes funciones.

Los PLDs facilitan el proceso de diseo y reducen el tiempo de desarrollo, cuando se requieren prototipos o produccin de baja escala, pues todo el proceso se puede llevar a cabo con la ayuda de una computadora personal, programas de aplicacin y el programador los cuales actualmente estn disponibles a bajo costo.

Algunos fabricantes de PLDs son:

Actel (http://www.actel.com/) Altera Corp. (http://www.altera.com/) Atmel Corp. (http://www.atmel.com/) Chip Express (http://www.chipexress.com/) Cypress Sem.(http://www.cypress.com/) Lattice Sem. (http://www.latticesemi.com/) Quicklogic Corp. (http://www.quicklogic.com/) Xilinx Inc. (http://www.xilinx.com/)

Los diferentes tipos de dispositivos de lgica programable que existen hoy en da pueden clasificarse por su tecnologa, su capacidad (Figura 2):

Simplex Programmable Logic Device SPLDs.

Complex Programmable Logic Device CPLDs.

Field Programmable Gate Arraysevice FPGAs.

Field Programmable Inter Connect FPICs.

De la clasificacin anterior slo nos enfocaremos a los modelos Simplex Programmable Logic Device SPLDs.

Los SPLDs estn constituidos por un arreglo de compuertas AND, seguido por otro arreglo de compuertas OR, uno o ambos arreglos programables, algunos incluyen Flip Flops.

A su vez los SPLDs se pueden clasificar segn su estructura interna en:

PAL Programmable Array Logic, VANTIS.

GAL Generic Array Logic, Lattice Semiconductor.

PLA Programmable Logic Array.

PLD Programmable Logic Device.

De estos tipos de SPLDs, el GAL destaca por su bajo precio y versatilidad por lo que lo describiremos en el siguiente punto.

GAL GAL (Generic Array Logic), en espaol Arreglo Lgico Genrico, son un tipo de circuito integrado, de marca registrada por Lattice Semiconductor, que ha sido diseados con el propsito de sustituir a la mayora de las PAL, manteniendo la compatibilidad de sus terminales.

Utiliza una matriz de memoria EEPROM en lugar por lo que se puede programar varias veces. Un GAL en su forma bsica es un PLD con una matriz AND reprogramable, una matriz OR fija y una lgica de salida programable mediante una macrocelda. Esta estructura permite implementar cualquier funcin lgica como suma de productos con un nmero de trminos definido. En los PLDs no reprogramables la sntesis de las ecuaciones lgicas se realiza mediante quema de fusibles en cada punto de interseccin de los pines de entrada con las compuertas. En el caso de un GAL es bsicamente la misma idea pero en vez de estar formada por una red de conductores ordenados en filas y columnas en las que en cada punto de interseccin hay un fusible, el fusible se reemplaza por una celda CMOS elctricamente borrable (EECMOS). Mediante la programacin se activa o desactiva cada celda EECMOS y se puede aplicar cualquier combinacin de variables de entrada, o sus complementos, a una compuerta AND para generar cualquier operacin producto que se desee. Una celda activada conecta su correspondiente interseccin de fila y columna, y una celda desactivada desconecta la interseccin. Las celdas se pueden borrar y reprogramar elctricamente.

ESTRUCTURA El GAL bsicamente est formado por una matriz AND reprogramable y una matriz OR fija con configuracin programable de salidas y/o entradas.

Las estructuras GAL son estructuras PAL construidas con tecnologa CMOS, y fueron comercializadas por primera vez en 1984 por Lattice Semiconductor. Como se ha mencionado, son programables y borrables elctricamente. Son reprogramables y ms flexibles, a la salida de la matriz AND/OR hay un circuito ms complejo con selectores y flip-flops que permiten implementar ecuaciones ms complejas. Hay distintas arquitecturas segn la versin del fabricante. La Figura 7 presenta un ejemplo de una GAL.

El circuito a la salida de la matriz se denomina macrocelda. Tienen integracin baja/media. El Terminal puede funcionar como entrada o salida segn la programacin. Los trminos productos se dibujan todos sobre una sola lnea para simplificar el diagrama.

Un terminal en modo salida puede reflejar la salida Q y Q negada del flip-flop para circuitos secuenciales o la entrada D y negada para circuitos combinacionales.

De modo similar puede realimentar el terminal de salida o la salida Q negada del flip flop hacia otros trminos. Las GAL se usan para circuitos lgicos sencillos y de complejidad media.

La macrocelda, en el idioma ingls es por sus siglas OLMC (OutputLogicMacrocells). Y son Macroceldas lgicas que contienen puertas OR y lgica programable, circuitos lgicos que se pueden programar como lgica combinacional o lgica secuencial (flip-flops, contadores y registros).

REFERENCIA ESTNDAR De manera comercial las GALs estn identificadas por un estndar que permite conocer sus caractersticas rpidamente. Por ejemplo a continuacin describimos el dispositivo GAL16V8.

CONSTRUCCION Basada en la estructura bsica mostrada anteriormente, la construccin de los dispositivos GALs se diferencian por sus caractersticas de entradas, salidas y configuracin interna de las macroceldas empleadas, por ejemplo detallemos el GAL 16V8, donde ciertas localidades en el arreglo de memoria son diseadas para controlar las conexiones programables a la matriz de los trminos de entrada, cada bit en esta matriz representa una conexin programable entre un rengln y una columna. Afortunadamente, no es necesario buscar dentro de las direcciones de cada localidad de bit en la matriz. El software de programacin cuida de estos detalles en una manera amigable. El diagrama lgico completo del GAL 16V8 se muestra en la figura 8. Este dispositivo tiene ocho terminales de entrada dedicadas (terminales 2-9), dos con funciones especiales (1 y 11), y ocho (12-19) que pueden ser usadas como entradas o salidas.

La mayora de los componentes de las GALs son; la matriz de los trminos de entrada, las compuertas AND (las cuales generan los trminos producto de entrada), y las macroceldas lgicas de salida (OLMCs, Output Logic Macro Cells). Hay que notar que las 8 terminales de entrada son conectados directamente a una columna de la matriz de trminos de entrada, y as cada complemento de entrada es conectado a est. Estas terminales siempre sern especificadas como entradas cuando se programa el dispositivo. Un nivel lgico y su complemento son siempre retroalimentados de cada macro a una columna de la matriz de entrada. La fuente de estos niveles lgicos es determinada por la configuracin de cada macro. Con esto, da un total de 32 variables de entrada (columnas en la matriz de entrada) que pueden ser programadas como conexiones a las 64 compuertas AND de entradas mltiples. En la matriz de entrada, cualquier columna puede ser conectada a un rengln de entrada durante el proceso de programacin. La flexibilidad del GAL 16V8 consiste en su macrocelda lgica de salida programable (ver figura 9). Ocho productos diferentes (salidas de las compuertas AND) son aplicadas como entradas a cada una de las ocho macroceldas. Dentro de cada macro los productos son enviados a una compuerta OR al mismo tiempo para generar la suma de productos (SOP, sum of products). Recordando, cualquier funcin puede ser expresada como una forma de SOP. Dentro de la macro, la salida del SOP puede ser enrutado a la terminal de salida para implementar un circuito combinacional, o como entrada a un flip-flop tipo D para implementar un circuito con salida registrada.

Como un ejemplo de las caractersticas ofrecidas por este tipo de dispositivos, a continuacin se enlistan las especificaciones ms relevantes del circuito GAL16V8 de marca Lattice Semiconductor.

fmax = 250 Mhz.

3.5 ns mximo tiempo de propagacin.

2.5 ns mximo tiempo de propagacin de la entrada de reloj a el dato de salida.

Celdas Reprogramables.

Vcc = 5 Volts 5%

Consumo de corriente 90 mA.

Rapidez en el borrado <> Las terminales de la 12 a 19 correspondientes al OLMC (Output Logic Macrocell) pueden programarse para trabajar como entradas y/o salidas, y en el caso de ser usadas como salidas estas pueden ser combinacionales o registradas (Flip Flops), lo cual le da la versatilidad de ser programado de diferentes formas y para diferentes requerimientos.

La programacin de los PLDs en general se lleva a cabo por medio de programas de aplicacin especializados siendo las dos estrategias de programacin ms utilizadas la captura esquemtica y la de lenguaje de descripcin de hardware (HDL).

La gran ventaja de estas herramientas es el de hacer los diseos en la computadora, donde los errores son fcilmente detectables y corregibles.

FUNCIONAMIENTO Una GAL permite implementar cualquier expresin en suma de productos con un nmero de variables definidas, por ejemplo este diagrama muestra la estructura bsica de una GAL para dos variables de entrada y una salida.

El proceso de programacin consiste en activar o desactivar cada celda E2CMOS con el objetivo de aplicar la combinacin adecuada de variables a cada compuerta AND y obtener la suma de productos

La salida de compuertas AND se introducen en las macroceldas lgicas de salida OLMC que contienen compuertas OR y lgica programable.

PRINCIPALES FABRICANTES DE DISPOSITIVOS GALs

Altera Cypress Lattice Philips Texas Instruments Xilinx

QUE ES EL VHDL?
Lenguaje de descripcin hardware estructurado para modelar sistemas digitales.

VHDL V: VHSIC Very High Speed Integrated Circuit H: Hardware D: Description L: Language

TIPO DE PROGRAMA VHDL sirve para describir la forma de comportarse de un circuito electrnico. El comportamiento puede ser llevado a algn dispositivo que dispondr de sus propios componentes para conseguir dicho comportamiento deseado. La forma de comportarse es independiente del hardware donde se implementar. El VHDL es un estndar llamado IEEE 1076-1993. Sus ventajas son: Una disponibilidad pblica. Independencia de dispositivos y fabricantes Reutilizacin Diseo jerrquico

HISTORIA DEL VHDL

TIPOS DE DESCRIPCION DE PROGRAMA (ESTRUCTURA) Como se ha dicho antes, VHDL sirve para describir un circuito electrnico, pero el mismo circuito puede ser descrito de varias formas. Las formas de hacerlo son: - Descripcin de comportamiento - Descripcin de flujo de datos (RTL Registred Transfer Level) - Descripcin estructural Los tres ejemplos de cdigo son slo las arquitecturas, los tres podran tener como entidad:

Descripcin de comportamiento Una descripcin de comportamiento de un multiplexor de dos entradas, una salida y una seal de seleccin sera: la salida ser igual a la primera entrada si la seal de control est desactivada y la salida ser la segunda entrada si la seal de control est activada. En VHDL la arquitectura de este multiplexor para la entidad llamada mux sera:

Descripcin de flujo de datos En una descripcin de flujo de datos del mismo multiplexor la salida sera la ecuacin lgica: s=(entrada1 AND NOT control) OR (entrada2 AND control) En VHDL la arquitectura sera:

Descripcin estructural Una descripcin estructural consistira en decir que el circuito tiene una puerta inversora U1, dos puertas AND de dos entradas U2 y U3 y una puerta lgica OR de dos entradas U4, adems tambin describe las conexiones entre estas puertas, un ejemplo sera: la entrada de U1 es la seal de control, la salida de U1 se conecta a la segunda entrada de U2, la primera entrada de U1 es entrada1, etc. El cdigo VHDL sera:

En el cdigo anterior se deberan haber definido previamente las puertas inversor, and_2_entradas y or_2_entradas.

DISEO CON VHDL El lenguaje VHDL es en principio independiente del dispositivo programable que debamos utilizar. Puede incluso utilizarse para hacer una simulacin sin hacer referencia al CI programable. Adems, el lenguaje es suficientemente flexible para que un mismo problema admita diferentes codificaciones. Sin embargo, no todas estas codificaciones darn los mismos resultados en cuanto a prestaciones y uso de recursos a la hora de programar un circuito dado. Aunque los programas informticos permiten optimizar el paso de un cdigo VHDL al fichero de programacin de un CI programable, no podemos esperar en la actualidad que la solucin encontrada sea la mejor. Por otro lado, optimizar puede tener sentidos distintos. Un diseador puede estar interesado en obtener la mxima frecuencia de trabajo, o bien en reducir la utilizacin de recursos del CI, de forma que quede espacio para programar otras lgicas. Es tarea del diseador ayudar a mano a que el resultado final sea lo ms eficiente posible. Es ms, a veces la forma de escribir el cdigo VHDL depende del dispositivo que se use (por ejemplo si es una FPGA o un CPLD). El ciclo de diseo se puede dividir, en general, en 3 fases: especificacin, validacin, materializacin. En la especificacin se introduce el diseo bien mediante captura esquemtica, bien mediante un lenguaje de descripcin hardware (HDL). El diseo debe verificarse sintcticamente.

Con la generacin del netlist (sntesis) tenemos la descripcin de una serie de elementos lgicos conectados y podemos pasar a realizar la validacin del diseo, mediante la simulacin. La simulacin puede ser funcional, considerando los elementos como ideales (sin retrasos), o estructural, en el que la herramienta informtica incorpora modelos ms elaborados de los elementos lgicos que permiten realizar la simulacin incorporando retrasos. En este ltimo caso, podemos abordar adems el anlisis de los tiempos de setup y de hold. La simulacin funcional es ms rpida y se aconseja realizarla primero hasta que la lgica de nuestro diseo se compruebe. Una vez que se ha realizado la simulacin funcional podemos pasar a la implementacin fsica, es necesario una etapa de sntesis y ajuste (fitting) en el que el diseo se divide en elementos asimilables a los recursos fsicos de nuestra PLC (sumas de productos, multiplexores, memoria embebida). Se puede observar en la figura que se pueden generar netlist tomando como base diferentes tipos de elementos, por ejemplo, puertas elementales al inicio del diseo, o bien los elementos que realmente se encuentran en un dispositivo programable, una vez que sabemos cul vamos a utilizar. Requerimientos y limitaciones. En un diseo existen una serie de requerimientos previos como pueden ser: - El diseo debe estar terminado en una cierta fecha. - Debe funcionar correctamente, con el mnimo de material. - Debe ser capaz de operar a una cierta frecuencia. - No puede superar un cierto coste econmico. - Debe ajustarse a un circuito ms complejo (limitaciones de espacio y compatibilidad). El orden de los requerimientos puede ayudar a tomar decisiones. Por ejemplo, si la fecha limite es el

requerimiento ms importante, el diseador no dedica ms tiempo a mejorar un diseo que ya cumple el resto de requerimientos. Si la frecuencia de operacin es un parmetro ms crtico que el coste, no se pierde tiempo intentando reducir el rea si las prestaciones ya son suficientes. Es necesario tener en cuenta tambin las limitaciones de los CI programables: - Nmero de salidas/entradas. - Nmero de biestables. - El nmero de trminos producto (o capacidad booleana). - Las posibles combinaciones de reset/preset que admita. - Los posibles esquemas de distribucin reloj. - La capacidad de interconexin interna de seales.

A la hora de decidir entre una CPLD o una FPGA es importante tener en cuenta algunas consideraciones. Las CPLDs proporcionan habitualmente las mejores prestaciones, pero tambin contienen menos registros que las FPGAs. Las CPLDs pueden implementar funciones ms complicadas en un slo pase (sin que la salida sea realimentada al integrado) y en ellas el anlisis de tiempos es ms fcil. Las FPGAs son ms flexibles en cuanto a la construccin de celdas lgicas en cascada debido a su granularidad ms fina (celdas lgicas ms sencillas, pero en mayor nmero que en una CPLD, y con mayor capacidad de conexin). La optimizacin y el anlisis de tiempos son ms difciles en una FPGA. Antes de elegir un dispositivo, es conveniente entender qu recursos necesita un diseo, su funcionamiento, as como los objetivos de prestaciones, coste y otros. Con todos los requerimientos en una lista, se pueden comparar las necesidades con lo que un dispositivo puede ofrecer. Finalmente, hay que contar por supuesto con un software adecuado y manejable.

Las etapas de sntesis y ajuste La sntesis (synthesis) es el proceso de crear las ecuaciones lgicas o las listas de nodos a partir del cdigo VHDL. El proceso de ajuste (fitting) consiste en encontrar la manera de que esa lgica sea realizada por un dispositivo programable. Una optimizacin especfica del dispositivo se puede dar tanto en un proceso como en otro. El trmino fitting se usa normalmente para referirse a CPLDs. El software de ajuste (fitter) se encarga de repartir la lgica entre las macroceldas y de conectar y enviar las seales a travs de la matriz de interconexiones. El anlogo en FPGA es el trmino de colocacin y conexionado (place and routing), que es el proceso de determinar qu celdas lgicas sern utilizadas y cmo las seales se transmitirn de una a otra. El software de sntesis puede pasar al software de ajuste unas ecuaciones lgicas que indiquen qu recursos se utilizarn, o puede pasar unas ecuaciones no optimizadas, siendo tarea del "fitter" dicha optimizacin. Lo importante es que los programas de sntesis y ajuste estn bien acoplados, es decir que el "fitter" reciba la informacin del algoritmo de sntesis de una forma que le permita producir la mejor implementacin. Si el "fitter" no produce ninguna optimizacin, entonces el proceso de sntesis debe pasar una ecuaciones lgicas y una informacin de forma que el "fitter" no tenga ms que situar la lgica.

Das könnte Ihnen auch gefallen