MODULE Counter
TITLE '3 bit Grey Code Counter Chris Williams'
CLK, !EN, !LD, !HOLD PIN;"
D3..D0 PIN;
Q3..Q0 PIN ISTYPE 'REG';
DIN = [D3..D0];
DOUT = [Q3..Q0];
Equations
[Q3..Q0].CLK = CLK;
[Q3..Q0].OE = EN;
WHEN LD THEN DOUT := DIN; ELSE
WHEN (HOLD) THEN DOUT = DOUT; ELSE
WHEN (DOUT == 0) THEN DOUT := 1; ELSE
WHEN (DOUT == 1) THEN DOUT := 3; ELSE
WHEN (DOUT == 3) THEN DOUT := 2; ELSE
WHEN (DOUT == 2) THEN DOUT := 6; ELSE
WHEN (DOUT == 6) THEN DOUT := 7; ELSE
WHEN (DOUT == 7) THEN DOUT := 5; ELSE
WHEN (DOUT == 5) THEN DOUT := 4; ELSE
WHEN (DOUT == 4) THEN DOUT := 0; ELSE
WHEN (DOUT >= 8) THEN DOUT := 0;
END