Hola que tal, estoy haciendo una máquina de estados de un menú de motores con una gal22v10, pero al momento de compilar, me sale el error que me dice: excessive number of product terms, alguna idea como solucionarlo??? aquí les dejo mi código:
Código:
Name Menu motores ;
PartNo 00 ;
Date 26/02/2013 ;
Revision 01 ;
Designer Engineer ;
Company jorch ;
Assembly None ;
Location ;
Device g22v10 ;
/* *************** INPUT PINS *********************/
PIN 1 = CLK ; /* */
PIN 2 = M;
PIN 3 = S;
PIN 4 = X;
/* *************** OUTPUT PINS *********************/
PIN [23..19] = [O0..4] ;
PIN 18 = RELOJ;
/*DEFINICIONES*/
$DEFINE EDO_A 0
$DEFINE EDO_B 1
$DEFINE EDO_C 2
$DEFINE EDO_D 3
$DEFINE EDO_E 4
$DEFINE EDO_F 5
$DEFINE EDO_G 6
$DEFINE EDO_H 7
$DEFINE EDO_I 8
$DEFINE EDO_J 9
$DEFINE EDO_K 10
$DEFINE EDO_L 11
$DEFINE EDO_M 12
$DEFINE EDO_N 13
$DEFINE EDO_O 14
$DEFINE EDO_P 15
$DEFINE EDO_Q 16
$DEFINE EDO_R 17
$DEFINE EDO_S 18
$DEFINE EDO_T 19
$DEFINE EDO_U 20
/*CAMPOS*/
FIELD ESTADO = [O0..4];
/*MAQUINA DE ESTADOS*/
SEQUENCE ESTADO
{
PRESENT EDO_A
IF M NEXT EDO_B;
DEFAULT NEXT EDO_A;
PRESENT EDO_B
IF M NEXT EDO_C;
IF S NEXT EDO_D;
DEFAULT NEXT EDO_B;
PRESENT EDO_C
IF M NEXT EDO_A;
IF S NEXT EDO_G;
DEFAULT NEXT EDO_C;
PRESENT EDO_D
IF M NEXT EDO_E;
IF S NEXT EDO_J;
IF X NEXT EDO_B;
DEFAULT NEXT EDO_D;
PRESENT EDO_E
IF M NEXT EDO_F;
IF S NEXT EDO_L;
IF X NEXT EDO_B;
DEFAULT NEXT EDO_E;
PRESENT EDO_F
IF M NEXT EDO_D;
IF S NEXT EDO_N;
IF X NEXT EDO_B;
DEFAULT NEXT EDO_F;
PRESENT EDO_G
IF M NEXT EDO_H;
IF S NEXT EDO_P;
IF X NEXT EDO_C;
DEFAULT NEXT EDO_G;
PRESENT EDO_H
IF M NEXT EDO_I;
IF S NEXT EDO_R;
IF X NEXT EDO_C;
DEFAULT NEXT EDO_H;
PRESENT EDO_I
IF M NEXT EDO_G;
IF S NEXT EDO_T;
IF X NEXT EDO_C;
DEFAULT NEXT EDO_I;
PRESENT EDO_J
IF M NEXT EDO_K;
IF S NEXT EDO_D;
DEFAULT NEXT EDO_J;
PRESENT EDO_K
IF M NEXT EDO_J;
IF S NEXT EDO_D;
DEFAULT NEXT EDO_K;
PRESENT EDO_L
IF M NEXT EDO_M;
IF S NEXT EDO_E;
DEFAULT NEXT EDO_L;
PRESENT EDO_M
IF M NEXT EDO_L;
IF S NEXT EDO_E;
DEFAULT NEXT EDO_M;
PRESENT EDO_N
IF M NEXT EDO_O;
IF S NEXT EDO_F;
DEFAULT NEXT EDO_N;
PRESENT EDO_O
IF M NEXT EDO_N;
IF S NEXT EDO_F;
DEFAULT NEXT EDO_O;
PRESENT EDO_P
IF M NEXT EDO_Q;
IF S NEXT EDO_G;
DEFAULT NEXT EDO_P;
PRESENT EDO_Q
IF M NEXT EDO_P;
IF S NEXT EDO_G;
DEFAULT NEXT EDO_Q;
PRESENT EDO_R
IF M NEXT EDO_S;
IF S NEXT EDO_H;
DEFAULT NEXT EDO_R;
PRESENT EDO_S
IF M NEXT EDO_R;
IF S NEXT EDO_H;
DEFAULT NEXT EDO_S;
PRESENT EDO_T
IF M NEXT EDO_U;
IF S NEXT EDO_I;
DEFAULT NEXT EDO_T;
PRESENT EDO_U
IF M NEXT EDO_T;
IF S NEXT EDO_I;
DEFAULT NEXT EDO_U;
}
/*FUNCIONES*/
RELOJ = M#S#X;
Última edición por un moderador: