Me sale un error en WinCupl excessive number of product terms

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:
Atrás
Arriba