Ett sätt att övervinna staten maskinen inte simulera i winsim är att ändra ekvationerna som bildas när wincupl följer koden. För en tillståndsmaskin uppfyller wincupl det i booleon logik i form av d-flip-flops. Dessa ekvationer är inte perfekt och i fallet med den föregående koden kan visa hur fel kan bilda. "OR'ing eller" AND'ing den "res" term för varje ekvation kan uppfylla detta programmet körs och simulerar korrekt. I fallet med det tidigare exemplet initialtillståndet S0 är 0.110.000 för a, b, c, d, e, f, g.
För de villkor som är "0" (a, d, e, f, g) du och (NOT (RES)) med resten av ekvationen, medan det för "b" och "c" du "eller" RES med .! vila för ekvationen Omdömen
ad = (__________) & res, bd = (__________) # res, cd = (__________) # res, dd = (__________) & res;! ed = (__________) & res;! fd = (__________) & res;! gd = (__________) & res;!
Om du använder ekvationerna så här, fältet count ", de statliga definitioner och statsapparaten inte krävs i koden. Notera att (__________) del i ovanstående kod hittats i en sammanställning rapport i wincupl.
Ändra sammanställningen inställningen att producera ekvationer gör detta (Dessa är mycket lång och att lägga till ytterligare en period kan göra det för länge. För detta ett annat stift krävs som bryter upp de långa ekvationer i 2 mindre ekvationer). Eller ett annat sätt att hitta ekvationerna är att manuellt lösa dem. Ett exempel på det är manuellt lösas visas nedan och är mycket mindre då de ekvationer som produceras av wincupl Omdömen
ad = & res.
((C & F # e & f & g)!!),! Bd = f # a & c & f # res,! cd = g & #res! (b & c & e!), dd = (! L & F & b # e & f & g # b & c!) och res;! ed = (! g # b & c) och res;! fd = (g & ! (! (b & c) # (B & C)!)) & res;! gd = (b # c) & res; Omdömen
Gå tillbaka till föregående sida