Una gal es parte de la famila de los PLDs, (Programmable Logic Device o Dispositivos lógicos programables), no es nada mas que un chip que tiene adentro una matriz interna de puras ANDs, ORs, NOT, a la que se le conoce con el nomre de matriz genérica programable (de ahi el nombre GAL por Generic Array Logic) que es reprogramable, es decir, puedes usarla varias veces borrando la información que tenías; aparte, tiene unas celdas llamadas macroceldas, que es donde la lógica de salida programable se hace básicamente ahí, además que contienen flip flops tipo D, lo cual nos ayuda tanto la matriz de compuertas logicas como los flip flops a realizar circuitos logicos ya sean secuenciales o combinacionales;
La gal más usada es la GAL16V8, que tiene 16 entradas y 8 salidas, las cuales puedes programar para tener así varias salidas que hagan ciertas funciones;
No hay un lenguaje de programación en específico, se pueden programar en ABEL o en WinCupl, (a mi me gusta WinCupl), es un software que te ayuda definir tus entradas y salidas, les pones el nombre que gustes, y aparte, puedes hacer tablas de verdad, o directamente escribir la función logica para que haga la función que quieres en una salida.
declarar entradas se hacen de esta forma, como un ejemplo:
PIN 1 = clk ; /* */
PIN 2 = A ; /* */
PIN 3 = B ; /* */
PIN 4 = C ; /* */
Nota: Si tu usaras pulso de reloj en tus circuitos, el pin 1 hará ese trabajo, solo lo pones como lo indiqué ahi arriba, y conectas el 555 o el generador, o cualquier circuito que te esté dando un pulso de reloj en ese pin.
las salidas se declaran de este modo, básicamente igual, solo tienes que ver el datasheet del componente para ver sus pines:
PIN 12 = W1 ; /* */
PIN 13 = W2 ; /* */
PIN 14 = X1 ; /* */
PIN 15 = X2 ; /* */
y ya terminando de declarar, puedes hacer la función logica que ocupas, en su respectiva salida, (a mi me gusta escribir directamente las funciones, y no hacer una tabla de verdad ahi en el software)
algo así como:
W1 = (!A & B & !C & !D & !E & F & !G & !H ) # (!A & B & !C & D & !E & F & !G & H ) # (!A & B & C & !D & !E & F & G & !H ) # (!A & B & C & D & !E & F & G & H ) # (A & B & !C & !D & E & F & !G & !H );
y así, se guarda como archivo PLD, y cuando lo compilas se genera un archivo .JED, ese es el que mandaras al chip para que se quemen los fusibles internos y así tengas tu función.
El software lo puedes bajar gratis de la web, pero tiene limitaciones, ya que funciones muy largas que contienen mas de 4 OR no se pueden realizar, ocupas cortarlas, básicamente, ocupas hacer tus trucos.
Para programar al chip, ocupas un "programador" vaya la redundancia, pero así se le dice al aparato que quema el archivo al chip, lo puedes armar o si lo tienen disponible en tu area de trabajo, adelante
Bueno, espero que te haya servido, actualmente estudio Ing. Cibernética Electrónica, y te puedo ayudar si tienes cualquier duda.
Saludos al foro
Naly