Uma maneira de superar a máquina do Estado não simulando em winsim é mudar as equações formados quando wincupl cumpre o código. Para uma máquina de estado, wincupl cumpre-lo em lógica booleon na forma de D-flip-flops. Estas equações não são perfeitas e, no caso de o código anterior pode mostrar que os erros podem formar. 'Ouestáespecificando ou' AND'ing o termo 'res' a cada equação pode satisfazer que o programa é executado e simula corretamente. No caso do exemplo anterior, o estado inicial é S0 0.110.000 para a, b, c, d, e, f, g.
Para os termos que são '0' (a, d, e, f, g) Você e (NOT (RES)) com o resto da equação, enquanto que para 'b' e 'c' você 'ou' RES com o .! restante para a equação
ad = (__________) & res; bd = (__________) # res; Cd = (__________) # res; dd = (__________) & res;! ed = (__________) & res;! fd = (__________) & res;! gd = (__________) & res;!
Se você usar as equações como esta, 'contagem de campo', as definições de estado e a máquina de estado não são necessário no código. Note-se que o (__________) parte no código acima é encontrada em um relatório de compilação em wincupl.
Alterar a configuração para produzir equações compilação faz isso (Estes são muito longo e adicionando o termo adicional pode torná-lo muito longo. Por este outro pino é necessário que quebra as longas equações em 2 equações menores). Ou uma outra maneira de encontrar as equações é para resolvê-los manualmente. Um exemplo do que está sendo manualmente resolvido é mostrado abaixo e é muito menor, em seguida, as equações produzidas por 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!) & res;! ed = (!! g # b & c) e res;! fd = (g & ! (! (b & c) # (B e C)!)) e res;! gd = (b # c) & res;
Volte à Página Anterior