module ggameocx Title 'Guessing-Game State Machine' "GGAMEOCX device 'P16V8R'; " Inputs and outputs CLOCK, RESET, G1..G4 pin 1, 2, 3..6; L1..L4, ERR pin 12..15, 18 istype 'reg'; X= .X.; " States QSTATE = [L1,L2,L3,L4,ERR]; S1 = [ 1, X, X, X, X]; S2 = [ X, 1, X, X, X]; S3 = [ X, X, 1, X, X]; S4 = [ X, X, X, 1, X]; SOK = [ 0, 0, 0, 0, 0]; SERR = [ X, X, X, X, 1]; state_diagram QSTATE state S1: IF RESET THEN SOK ELSE IF G2 # G3 # G4 THEN SERR ELSE IF G1 THEN SOK ELSE S2; state S2: IF RESET THEN SOK ELSE IF G1 # G3 # G4 THEN SERR ELSE IF G2 THEN SOK ELSE S3; state S3: IF RESET THEN SOK ELSE IF G1 # G2 # G4 THEN SERR ELSE IF G3 THEN SOK ELSE S4; state S4: IF RESET THEN SOK ELSE IF G1 # G2 # G3 THEN SERR ELSE IF G4 THEN SOK ELSE S1; state SOK: IF RESET THEN SOK ELSE IF G1 # G2 # G3 # G4 THEN SOK ELSE S1; state SERR: IF RESET THEN SOK ELSE IF G1 # G2 # G3 # G4 THEN SERR ELSE S1; equations QSTATE.CLK = CLOCK; end ggameocx