Programador para PLDs o GALs

Alguien me puede decir en donde puedo adquiri un programador o "quemador" para pld's o gal's cualquiera de los dos por ke necesito uno para un proyecto escolar, eh estado buscando en intenet y no encuentro nada, por favo si alguien puede ayudarme se lo agradecería mucho
 
Hola yo tambien soy nueva aqui, mira, exactamente ando programando gals en un software que se llama WinCupl, se puede bajar de internet gratis una version que unicamente te permite programarlo con ecuaciones logicas, es decir, cuando vayas a programar en WinCupl, tendrias que hacer un codigo algo asi parecido:

Name New Motor2 ;
PartNo 00 ;
Date 5/16/2006 ;
Revision 01 ;
Designer Nataly/Jose ;
Company Professional ;
Assembly None ;
Location xx ;
Device g16v8 ;

/* *************** INPUT PINS *********************/
PIN 1=clk ; /* */
PIN 2=X ; /* */

/* *************** OUTPUT PINS *********************/

PIN 13=A ; /* */
PIN 14=B ; /* */
PIN 15=C ; /* */
PIN 16=D ; /* */


A.d = ( !X & A & !B & !C & D ) # ( X & A & !B & C & !D ) # ( X & !A & B & C & !D ) # ( !X & !A & B & !C & D );
B.d = (X & !A & !B & !C & !D )#(!X & !A & !B & !C & !D )#(X & A & !B & !C & D ) # ( !X & A & !B & C & !D ) # ( !X & !A & B & C & !D ) # ( X & !A & B & !C & D );
C.d = (X & !A & !B & !C & !D )#(!X & !A & !B & !C & !D )# ( !X & A & !B & !C & D ) # ( !X & A & !B & C & !D ) #( X & !A & B & C & !D ) # ( X & !A & B & !C & D);
D.d = ( X & A & !B & !C & D ) # ( X & A & !B & C & !D ) # ( !X & !A & B & C & !D ) # ( !X & !A & B & !C & D );



En este programa, lo que hace es que sigue la secuencia de un motor de pasos unipolar (si quisieras hacer uno, debes encontrar la secuencia, no siempre es la misma); hasta abajo es donde te menciono de las ecuaciones. El A es la variable de salida, y el .d significa que va a utilizar un FF tipo D.

Espero que te ayude mi información
 
Hola Naly yo he programado Gal en un programador que baje de la red pero tu como los has programado, armaste alguno, si es así me puedes decir que diaghrama empleaste?

Saludos
 
Hola :), claro que si, de hecho los diagramas que empleo son las maquinas de estados de mealy y moore, para generar los estados, y sus salidas, claro que dependen de las entradas en muchos casos.

Ya programe un semaforo, el que tanto han pedido, proximamente hare un articulo explicando como fue la secuencia, porque fue asi, y como se programa en una gal, para que lo tengan :).

Por lo pronto, en mi semestre llevo programado el motor de pasos unipolar que mencione en la respuesta anterior, y el semaforo, pero tambien hemos programado alguanas cosas como contadores. El editor - compilador que utilizo es el llamado WinCupl, que porgrama toda gal y pal, en internet existe un recurso gratuito, puedes encontrarlo aqui, ademas de muchos documentos de ayuda:

http://www.atmel.com/tools/WINCUPL.aspx

Ahora, como mencione, las maquinas de estados de mealy y de moore te sirven para generar tus salidas y por supuesto tu estado siguiente, que sera generado con un reloj (que en la mayoria se usa un astable 555), ahora, tu puedes decir a que estado quieres que se vaya tu maquina, dependiendo la condicion que le quieras dar como entrada, y tambien puedes hacer tus salidas combinacionales, digamos que se prendan ciertos leds, actives motores, etc, como tu necesites que suceda cuando cambie de un estado a otro.

En unos dias mas pondre una descripcion detallada

espero que les haya servido por ahorita mi información
 
Gracias por la información Naly, una pregunta, acabo de revisar tu respuesta y vi la información que señalas encontré en ella un diagrama de un programador, es el que armaste? otra cosa señalas que programas en el winculp con ecuaciones pero al descargar el programa en el Gal usas el formato jedec i pregunta es porque en ISPExpert System de Lattice programas con el jedec que te lo genera de otyra forma con el programa, como te dije no he leido a bien la información pero lo voy a hacer gracias nuevamente.

Moy
 
:D ahhh Ok, mira, cuando uno esta programando la secuencia que uno quiere, con entradas y salidas por supuesto, se tiene que compilar el programa, al momento de que se hace esto, se generan varios archivos de diferentes extensiones, unos sirven para simular, el que ocupamos para cargarlo a otro programa (del quemador universal o cual sea) que se utiliza para quemar nuestra gal o nuestra pal, es el archivo con extensión .jed , que es el que lleva toda la información de los fusibles a quemar.

mmm de hecho, cuando mencionas que si arme un prototipo que encontraste en la red, no me habia dado cuenta que habia un diagrama, si me pudieses poner el link de ese articulo para verlo, te lo agradecería mucho, por favor :)


espero que haya tenido alguna respuesta a tu pregunta

:)
 
El PDF es: ATF15XX-DK2 CPLD Development/Programmer Kit (47 pages, updated 8/02)
CPLD Development/Programmer Kit User Guide.

El programador que yo armé solo graba de la marca Lattice y mediante el software de ISPExpert de la misma compañía genera el archivo JEDEC
Es por eso que me interesa armar otro tipo de programador sobre todo que maneje ATMEL por que es la marca que más se mueve en las casas electrónicas.

Saludos
 
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 :D

Naly
 
Los lenguajes que sirven para programar las GALs y los PLDs en general se llaman lenguajes de descripción de hardware, además de los 2 que menciona naly hay muchos más pero 2 que te recomiendo que investigues y si puedes aprendas son VERILOG y VHDL, esos dos lenguajes son muy usados a nivel profesional, hace 1 año fui a una conferencia de intel y ahí dijeron que esos lenguajes eran los que ellos usaban. VHDL es muy fácil de aprender, VERILOG nunca lo he usado pero no debe ser muy complicado.

Para que te inicies en el VHDL te recomiendo un curso de la Universidad de Guadalajara (México) que puedes descargar de estos enlaces: Parte 1 y Parte 2
 
saludos.

yo tambien utilizo wincupl para programar plds. tengo una pregunta que haceros ya que estoy trabajando en un contador que luego se representa en un display.
he implementado todas las funciones de decodificacion, pero no se como implementar las del contador,
no se como meter la idea se sincrono.

si alguien tiene alguna idea se lo agradeceria.
 
Encontré esto: Programa GAL 16V8/A/B/C/D/Z/ZD, 18V10/B, 20V8/A/B/Z, 20RA10/B, 20XV10/B, 22V10/B/C/Z, 26CV12/B, 6001/B, and 6002B.

Necesita:

Socket para el integrado
Resistencias 4,7K 1/4W
Capacitor cerámico de 100nF
Conector de 25 pines (puerto paralelo)
Cables
Fuente 5V/250mA
Fuente 8.5-16.5V/20mA (ajustable)

me gustaría probarlo con mi gal16v8 nueva.
 
Acá te paso un contador sencillo de 4 bits que basicamente usa las macroceldas de salida de una gal16v8 como flip flops d. Con una circuito externo podrias adaptarlo a 7seg (no te dan las salidas sino :rolleyes: (4 + 7))

Name 4BITCounter ;
PartNo 00 ;
Date 01/04/2009 ;
Revision 01 ;
Designer gzaloprgm;
Company GXZ ;
Assembly g2 ;
Location ;
Device g16v8 ;

Pin 1 = clock;
Pin 17 = q0;
Pin 16 = q1;
Pin 15 = q2;
Pin 14 = q3;

q0.d = !q0;
q1.d = !q0 & q1 # q0 & !q1;
q2.d = q0 & q1 & !q2 # !q0 & !q1 & q2 # q0 & !q1 & q2 # !q0 & q1 & q2;
q3.d = q0 & q1 & q2 & !q3 # !q0 & !q1 & !q2 & q3 # q0 & !q1 & !q2 & q3 # !q0 & q1 & !q2 & q3 # q0 & q1 & !q2 & q3 # !q0 & !q1 & q2 & q3 # q0 & !q1 & q2 & q3 # !q0 & q1 & q2 & q3;

Saludos,
Gzaloprgm
 
muchas gracias gzalorgm, no habia visto las macroceldas en la hoja de caractristicas.
sabiendo que tengo unos biestables a la salida es mas facil.

utilizare tus expresiones.
 
amigo tengo un problema con una pantalla de cuatro digitos y cada digito es de siete segmentos con punto decimal usaba el mm54541 pero ahora tengo el mc14499p lo que pasa es que este integrado tiene data,clock, y enable mientras que el mm5451 tiene data, y clok como podria reemplazar este integrado aparte tengo que manejar dos leds despues de los cuatro digitos cosa que ocon el 5451 si lo puedo hacer quiero usar el mc14499p porque ahorro espacio.
 
hola naly, necesito que me eches una mano con el tema de la programacion en wincupl , del semaforo para el cruce de una calle.
en principio el semaforo siempre estara en verde, hasta que un peaton pulse el botos de paso de peatones, entonces comenzara el proceso de cambio de los dos semaforos, el de coches y el peatones.
semaforo coches.- verde a ambar (7seg), ambar a rojo (2seg), rojo a verde.
semaforo peaton.- rojo , rojo , verde
 
mmm...pues yo en la escuela uso la GAL22V10 y para programar lo hacemos en lenguaje VHDL, se me hace mucho mas sencillo ya que contiene instrucciones como if's o for's y el compilador saca las ecuaciones y las reduce para despues programarlo.
Para programar en este lenguaje usamos un programa que se llama Galaxy de Cypress. Por ahora no tengo tiempo pero si les intesesa se los puedo pasar.
 
Hola:
primero para comentarles que he buscado mucho en internet y no he podido encontrar lo que necesito.
tengo un selector de monedas, al pasar la moneda me da una conbinacion de 1's y O's, lo cual necesito guradar para poder empezar a sumar y reproducir un sonido especifico, esa es la parte que necesito, cmo guarda ese dato? las monedas son representadas en una combinacion 4 bits, se que la Gal22V10D tiene la posiblidad de configurar el flip-flop tipo D pero lo intente en el labo y no me guardo el dato; estoy un poco perdido en esa parte.

muchas gracias a cualquier respuesta...
 
Según lo que yo se, esa gal solo permite que la entrada de clock de los FF internos sea de la pata 1.

Sí, por ejemplo, el selector de monedas te da un cero cuando no hay moneda y un valor cuando cayo alguna, podrías hacer una or entre los valores del selector y conectarla a la pata 1.

En tal caso sumaría a unos FF internos el valor actual + el valor de la moneda.

Esto ultimo supongo que es posible hacerlo "facilmente" con tablas.

Lo del ruido de la moneda lo podes sacar de la pata uno.

Si necesitas ayuda con algo decime.

Saludos,
Gzaloprgm
 
Atrás
Arriba