module svaletlo title 'Output logic for Sunnyvale, CA, Traffic Lights' "SVALETLO device ’P16V8C’; " Input pins FLASHCLK, OVERRIDE, Q0, Q1, Q2 pin 1, 2, 4, 5, 6; " Output pins NSRED, NSYELLOW, NSGREEN pin 19, 18, 17 istype 'com'; EWRED, EWYELLOW, EWGREEN pin 14, 13, 12 istype 'com'; " Definitions (same as in state machine SVALETL) LSTATE = [Q2,Q1,Q0]; " State variables NSGO = [ 0, 0, 0]; " States NSWAIT = [ 0, 0, 1]; NSWAIT2 = [ 0, 1, 1]; NSDELAY = [ 0, 1, 0]; EWGO = [ 1, 1, 0]; EWWAIT = [ 1, 1, 1]; EWWAIT2 = [ 1, 0, 1]; EWDELAY = [ 1, 0, 0]; equations NSRED = !OVERRIDE & (LSTATE != NSGO) & (LSTATE != NSWAIT) & (LSTATE != NSWAIT2) # OVERRIDE & FLASHCLK; NSYELLOW = !OVERRIDE & ((LSTATE == NSWAIT) # (LSTATE == NSWAIT2)); NSGREEN = !OVERRIDE & (LSTATE == NSGO); EWRED = !OVERRIDE & (LSTATE != EWGO) & (LSTATE != EWWAIT) & (LSTATE != EWWAIT2) # OVERRIDE & FLASHCLK; EWYELLOW = !OVERRIDE & ((LSTATE == EWWAIT) # (LSTATE == EWWAIT2)); EWGREEN = !OVERRIDE & (LSTATE == EWGO); end svaletlo