En måte å overvinne tilstandsmaskinen ikke simulere i winsim er å endre ligningene dannes når wincupl holder koden. For en tilstandsmaskin, wincupl holder den inn booleon logikk i form av D-flip-flops. Disse ligninger er ikke perfekt, og i tilfellet med den foregående kode kan vise hvordan feil kan dannes. 'OR'ing eller' AND'ing den 'res' sikt til hver ligning kan tilfreds at programmet kjører og simulerer riktig. I tilfellet med det foregående eksempel begynnelsestilstanden er S0 0.110.000 for a, b, c, d, e, f, g.
For de vilkår som er '0' (a, d, e, f, g) du AND (NOT (RES)) med resten av ligningen, mens for "b" og "c" du "eller" RES med .! hvile for ligningen
ad = (__________) og res, bd = (__________) # res, cd = (__________) # res; dd = (__________) og res;! ed = (__________) & res;! fd = (__________) og res;! gd = (__________) og res;!
Hvis du bruker ligningene som dette, feltet count ', staten definisjoner og staten maskinen ikke er kreves i koden. Legg merke til at (__________) del i koden ovenfor er funnet i en samlerapport i wincupl.
Endre kompilering innstillingen for å lage likninger gjør dette (Dette er veldig lang og legge den ekstra sikt kan gjøre det for lenge. For dette er en annen pin kreves som bryter opp de lange ligninger i 2 mindre ligninger). Eller annen måte for å finne de ligninger er manuelt løse dem. Et eksempel på det som blir manuelt løses er vist under, og er mye mindre da ligningene produsert av wincupl
ad = & res.
((C & f # e & f & g)!!!);! Bd = f # A & C & f # res;! cd = g & #res! (b & c & e!); dd = (! d & c & b # e & f & g # b & c!) og res;! ed = (! g # b & c) og res, fd = (g &! ! (! (b & c) # (B & C)!)) og res;!! gd = (b # c) og res;
Gå tilbake til forrige side