En måde at overvinde staten maskinen ikke simulere i winsim er at ændre de ligninger, der dannes, når wincupl overholder koden. For en tilstandsmaskine, wincupl overholder det ind booleon logik i form af d-flip-flops. Disse ligninger er ikke perfekt, og i tilfælde af den tidligere kode kan vise, hvordan fejl kan danne. »Signalbehandling eller" AND'ing den "res sigt til hver ligning kan opfylde, at programmet kører og simulerer korrekt. I tilfælde af det foregående eksempel den oprindelige tilstand S0 er 0.110.000 for a, b, c, d, e, f, g.
For de vilkår, der er '0' (a, d, e, f, g), du OG (IKKE (RES)) med resten af ligningen, mens der for "b" og "c" du "eller" RES med .! hvile for ligningen
ad = (__________) & res, BD = (__________) # res, CD = (__________) # res; dd = (__________) & res;! ed = (__________) & res;! fd = (__________) & res;! gd = (__________) & res;! Salg
Hvis du bruger ligninger som dette, "felt tæller«, staten definitioner og staten maskine ikke kræves i koden. Bemærk, at (__________) deltager i ovenstående kode er fundet i en samling rapport i wincupl.
Ændring af kompilering indstilling for at lave ligninger gør dette (Disse er meget lang og tilføje ekstra sigt kan gøre det alt for længe. Til dette andet ben er påkrævet, som bryder op de lange ligninger i 2 mindre ligninger). Eller en anden måde at finde ligningerne er manuelt løse dem. Et eksempel på det at blive manuelt løses, er vist Bellow og er meget mindre derefter ligningerne produceret af wincupl
annonce = & res.
((C & f # e & f & g)!!!!);!! Bd = f # a & c & F # res;! cd = g & #res! (B & C & e!); dd = (! L & P & b # e & f & g # B & C!) & res;! ed = (!! g # B & C) & res;! fd = (g & ! (! (B & C) # (B & C)!!)) & res;!! gd = (b # c) & res;
Tilbage til forrige side