Autor Tema: Secuencia Gal y biestables  (Leído 16055 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado dielafer

  • PIC10
  • *
  • Mensajes: 8
Secuencia Gal y biestables
« en: 21 de Febrero de 2011, 13:53:25 »
Hola! El caso es que tengo que programar una secuencia numérica con una Gal, en principio voy a utilizar la 22V10, y 3 biestables. La manera mas facil que se me ocurre es con una máquina de estados en Xilinx pero tampoco tengo mucha idea de como llevarlo a cabo. ¿Podeis orientarme un poco?

Gracias.
« Última modificación: 24 de Febrero de 2011, 13:28:15 por dielafer »

Desconectado bigluis

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 511
    • Tutoriales de Qt C++
Re: Secuencia Gal y biestables
« Respuesta #1 en: 02 de Marzo de 2011, 14:30:41 »
En el siguiente link he posteado algunos ejemplos en verilog que te pueden servir:

http://www.todopic.com.ar/foros/index.php?topic=32327.msg274587#msg274587
Tutoriales de Qt C++

No es necesario que hagamos Grandes cosas, sino que lo que hagamos sea importante.

SI la NECESIDAD es la MADRE del CONOCIMIENTO, SEGURAMENTE la PEREZA su TÍA.

Cuando el ARTE requiere de PRECISION le llamamos CIENCIA

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Secuencia Gal y biestables
« Respuesta #2 en: 03 de Marzo de 2011, 15:53:51 »
Me parece que si vas a trabajar con la GAL22V10 una mejor opcion (dada la simplicidad de este chip) seria el winCUPL. A traves de este soft podras facilmente generar secuencias usando la teoria de Moore y Mealy. Si deseas mostrar la secuencia sobre display de 7 segmentos, este chip es inclusive capaz de generar en su escasa arquitectura (terminos producto y OLMC) el decodificador necesario. Desde luego que Xilinx es una herramienta poderosa pero ademas un tanto compleja y creo que un compilador CUPL te seria mas util, ademas que el .jed generado bien lo puedes cargar en la GAL de PROTEUS y simular tu proyecto para depurar todos los posibles inconvenientes. Bueno es mi humilde opinion, espero te sea util.

Saludos...
No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"

Desconectado bigluis

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 511
    • Tutoriales de Qt C++
Re: Secuencia Gal y biestables
« Respuesta #3 en: 03 de Marzo de 2011, 15:57:33 »
Lo que dice agauss es cierto, pero en algunos casos el wincupl me daba algunos problemas pero no estoy seguro si ya le repararon esos errores.
Tutoriales de Qt C++

No es necesario que hagamos Grandes cosas, sino que lo que hagamos sea importante.

SI la NECESIDAD es la MADRE del CONOCIMIENTO, SEGURAMENTE la PEREZA su TÍA.

Cuando el ARTE requiere de PRECISION le llamamos CIENCIA

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: Secuencia Gal y biestables
« Respuesta #4 en: 03 de Marzo de 2011, 18:31:33 »
Ojo que los dispositivos GAl estan dejandose de fabricar, sobre todo los de la firma Lattice.
Para nuevos proyectos os aconsejaria el utilizar dispositivos CPLD.
Todos los días se aprende algo nuevo.

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Secuencia Gal y biestables
« Respuesta #5 en: 03 de Marzo de 2011, 23:12:37 »
Si te sirve de algo te muestro un ejemplo de una secuencia para visualizar los numeros del 0-3. Use la GAL22V10 y el compilador winCUPL. En el adjunto estan el archivo .pld y el .jed, ademas de la simulacion para PROTEUS.

Saludos...

Código: [Seleccionar]
Name     sec2b ;
PartNo   00 ;
Date     01/03/2011 ;
Revision 01 ;
Designer Engineer ;
Company  MECATRONICA ;
Assembly None ;
Location  ;
Device   gal22v10 ;


PIN 1 = CLK;

PIN 23 = QA;
PIN 22 = QB;

QA.oe = 'b'1;
QA.ar = 'b'0;
QA.sp = 'b'0;
QB.oe = 'b'1;
QB.ar = 'b'0;
QB.sp = 'b'0;

QA.d = !QA;
QB.d = QB$QA;


PIN 21 = a;
PIN 19 = c;
PIN 18 = d;
PIN 17 = e;
PIN 16 = f;
PIN 15 = g;

FIELD ENTRADAS = [QB,QA];
FIELD SALIDAS  = [g,f,e,d,c,a];

TABLE ENTRADAS => SALIDAS
{
   'b'00 => 'b'011111;
   'b'01 => 'b'000010;
   'b'10 => 'b'101101;
   'b'11 => 'b'100111;
}
No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"

Desconectado bigluis

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 511
    • Tutoriales de Qt C++
Re: Secuencia Gal y biestables
« Respuesta #6 en: 04 de Marzo de 2011, 16:58:26 »
Hola agauss.

Lo que hace tu códig esta bien, pero estas desperdiciando dos pines de manera innecesaria, puedes realizar una secuencia de datos de manera simple.

En wincupl para realizar una secuencia de numeros que se muestren en un display de 7 segmentos con el 22v10 debes hacer algo así
Código: [Seleccionar]
PIN 1: CLK;
PIN [21..15]: [a_to_g6..0]; //Declaramos las salidas de la a hasta g del display

sequence [a_to_g6..0] {
   PRESENT 0             //Estado inicial al encender siempre es cero
      NEXT 'b'0111111;   //El estado siguiente sera el codigo correspondiente al 0
   PRESENT 'b'0111111;   //Si el estado presente es el codigo del 0
      NEXT 'b'0000110;   //El proximo estado sera el codigo del 1
   PRESENT 'b'0000110;   //Si el estado presente es el codigo del 1
      NEXT 'b'1011011;   //El proximo estado sera el codigo del 2
   PRESENT 'b'1011011;   //Si el estado presente es el codigo del 2
      NEXT 'b'1001111;   //El proximo estado sera el codigo del 3
   PRESENT 'b'1001111;   //Si el estado presente es el codigo del 3
      NEXT 'b'0111111;   //El estado siguiente sera el codigo del 0
}
« Última modificación: 04 de Marzo de 2011, 17:34:29 por bigluis »
Tutoriales de Qt C++

No es necesario que hagamos Grandes cosas, sino que lo que hagamos sea importante.

SI la NECESIDAD es la MADRE del CONOCIMIENTO, SEGURAMENTE la PEREZA su TÍA.

Cuando el ARTE requiere de PRECISION le llamamos CIENCIA

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Secuencia Gal y biestables
« Respuesta #7 en: 04 de Marzo de 2011, 17:54:26 »
Tienes toda la razon, mi intencion era mostrar el diseño del rograma usando la teoria de moore y mealy, ya sabes el diseño con los flip-flop, estado presente y estado siguiente. De ahi que tengo dos salidas de flip-flop QA y QB, sin embargo a traves de la funcion sequence de winCUPL esto parece inecesario al menos en terminos practicos (es decir, no es necesario conocer la terioa detras), aunque pienso que en terminos didacticos al menos para comenzar la primera opcion es util.

Respecto a tu codigo, tendria que decir que me parece una solucion bastante elegante.

Saludos...
No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"

Desconectado bigluis

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 511
    • Tutoriales de Qt C++
Re: Secuencia Gal y biestables
« Respuesta #8 en: 04 de Marzo de 2011, 18:38:44 »
Mis profesores creen lo mismo que tu, pero yo no lo creo, ciertamente es necesario saber que el circuito final contendrá ciertos flip-flop y compuertas, pero para mi hasta ahi nomas.

 :D Durante ese semestre debiamos realizar el diseño del circuito digital pero eso me daba mucha pereza y nunca lo hacia ya que de todos modos el compilador lo iba a hacer por mi.

Lo que quiero decir es que yo no se como hacer circuitos secuenciales, lo único que se hacer es sacar el diagrama de estados y a partir de eso genero el codigo necesario para que el circuito funcione ya que de todos modos el compilador hara ese trabajo por mi.

Lo que si te puedo decir es que con wincupl y los gal no hay que confiar tanto en el compilador ya que al poseer caracteristicas tan pobres existen ocasiones en las que el compilador dice que el dispositivo no soporta ese codigo aunque si lo haga y es ahi donde tienes que saber un poco acerca de la arquitectura interna y de como crea el circuito interno del gal el wincupl.

Lo interesante de hoy en dia es que ese problema ha quedado completamente resuelto ya que las nuevas tecnologias como CPLD y FPGA son sumamente versatiles en este sentido y basicamente el unico limite es tu imaginacion.
Tutoriales de Qt C++

No es necesario que hagamos Grandes cosas, sino que lo que hagamos sea importante.

SI la NECESIDAD es la MADRE del CONOCIMIENTO, SEGURAMENTE la PEREZA su TÍA.

Cuando el ARTE requiere de PRECISION le llamamos CIENCIA

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Secuencia Gal y biestables
« Respuesta #9 en: 13 de Marzo de 2011, 02:41:40 »
Para seguir con el hilo, otra buena opcion para programar PLDs como la GAL22V10 es el lenguaje ABEL, que puede programarse a travez de compiladores como el EasyABEL de DATAIO o bien con el ispLEVER de Lattice Semiconductors, este ultimo ofrece una licencia gratuita por un año llenando un formulario en su pagina web www.latticesemi.com ademas de contener tambien compiladores para VHDL y VERILOG. En fin aqui dejo un ejemlo muy sencillo; se trata de una funcion XOR de tres entradas, la funcion no esta reducida, se trata mas bien de una forma canonica programada directamente en codigo ABEL, espero sea de interes para alguien.

Código: [Seleccionar]
MODULE fxor3e;
TITLE 'Funcion XOR de 3 entradas'

DECLARATIONS;

   fxor3e DEVICE 'P22V10;
   A,B,C PIN 2,3,4;
   Y PIN 23 ISTYPE 'COM';

EQUATIONS;

   Y = (!C&!B&A)#(!C&B&!A)#(C&!B&!A)#(C&B&A);

END fxor3e;

Saludos...
No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Secuencia Gal y biestables
« Respuesta #10 en: 13 de Marzo de 2011, 03:26:18 »
Exactamente el mismo programa pero usando la modalidad de tablas de verdad.

Código: [Seleccionar]
MODULE fxor3e;
TITLE 'Funcion XOR de 3 entradas'

DECLARATIONS;

   fxor3e DEVICE 'P22V10';
   A,B,C PIN 2,3,4;
   Y PIN 23 ISTYPE 'COM';

EQUATIONS;

   truth_table ([C,B,A]->Y)
   [0,0,0]->0;
   [0,0,1]->1;
   [0,1,0]->1;
   [0,1,1]->0;
   [1,0,0]->1;
   [1,0,1]->0;
   [1,1,0]->0;
   [1,1,1]->1;

END fxor3e;

Saludos...
No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"

Desconectado agauss

  • PIC16
  • ***
  • Mensajes: 147
Re: Secuencia Gal y biestables
« Respuesta #11 en: 14 de Marzo de 2011, 03:45:12 »
Quizas sea buena idea empezar un POST con el tema "Logica programable en HDL con PLDs simples", o algo asi. Por supesto seria tratar con los GAL16V8 y GAL22V10, chips sencillos y economicos. Esto con la finalidad mas bien de tratar los aspectos referentes al software (CUPL, ABEL, VHDL, VERILOG, SCHEMATICS, etc), lo cual permitiria posteriormente ascender a niveles superiores con CPLD o FPGA. Creo que en la semana pondre manos a la obra, espero sea de interes para alguien.

saludos...
No es el conocimiento, sino el acto de aprendizaje, y no la posesión, sino el acto de llegar allí, que concede el mayor disfrute.
"Carl Friedrich Gauss"

El tacto es el arte de hacer un punto sin hacer un enemigo.
"Isaac Newton"

Desconectado Menta

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 611
Re: Secuencia Gal y biestables
« Respuesta #12 en: 07 de Abril de 2011, 00:27:43 »
Quizas sea buena idea empezar un POST con el tema "Logica programable en HDL con PLDs simples", o algo asi. Por supesto seria tratar con los GAL16V8 y GAL22V10, chips sencillos y economicos. Esto con la finalidad mas bien de tratar los aspectos referentes al software (CUPL, ABEL, VHDL, VERILOG, SCHEMATICS, etc), lo cual permitiria posteriormente ascender a niveles superiores con CPLD o FPGA. Creo que en la semana pondre manos a la obra, espero sea de interes para alguien.

saludos...

esta muy buena la idea.. a mi me enseñaron en la facultad algo, muy poquito, de cpld y fpga, en sí me hicieron leer los datasheets de un dispositivo cpld y de una fpga ambos de xilinxs, la verdad que recuerdo la mitad de las cosas, creo que cpld es algo sencillo, pero debería darse más tempranamente en la carrera, es algo que puede ser muy útil, yo aun uso chips ttl y cmos 74xxxx y 4xxx
Me interesa información básica como ser: cómo se graba una cpld? JTAG? qué necesito tener, comprar o armar? es como grabar un pic? etc
     


 

anything