MODULE Counter TITLE '3 bit Grey Code Counter' 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 MODULE Decoder TITLE '7Seg Decoder' "CLK, !EN, Q3, Q2, Q1, Q0 PIN; !A, !B, !C, !D, !E, !F, !G PIN ISTYPE 'COM'; DOUT = [A,B,C,D,E,F,G]; DIN = [Q3,Q2,Q1,Q0]; equations TRUTH_TABLE (DIN -> DOUT ) 1 -> 48; 2 -> 109; 3 -> 121; 4 -> 51; 5 -> 91; 6 -> 95; 7 -> 112; 8 -> 127; 9 -> 115; 10 -> 119; 11 -> 31; 12 -> 78; 13 -> 61; 14 -> 79; 15 -> 71; 0 -> 126; END