DEVICE 20V8; TITLE 7 BIT COUNTER WITH CARRY IN AND OUT AND SYNCHRONOUS CLEAR; NAME C.L.G.; SIGNATURE CNT7BIT; /* This example can be found on page 5-23 in the GAL handbook */ PIN 2 = D0; /* PARALLEL LOAD DATA */ PIN 3 = D1; PIN 4 = D2; PIN 5 = D3; PIN 6 = D4; PIN 7 = D5; PIN 8 = D6; PIN 9 = LD; /* LOAD CONTROL */ PIN 10 = CLEAR; /* SYNC CLEAR */ PIN 13 = OE; PIN 15 = CARRYOUT; /* ASYNC CARRY OUTPUT */ PIN 16 = Q6; /* COUNTER MSB */ PIN 17 = Q5; PIN 18 = Q4; PIN 19 = Q3; PIN 20 = Q2; PIN 21 = Q1; PIN 22 = Q0; PIN 23 = CARRYIN; /* CARRY IN FOR CASCADING */ Q0.D = ( LD & D0 /* LOAD D0 */ | !LD & !Q0 & CARRYIN ) /* TOGGLE */ & !CLEAR; Q1.D = ( LD & D1 /* LOAD D1 */ | !LD & !Q1 & Q0 & CARRYIN /* TOGGLE */ | !LD & Q1 & !Q0 ) /* HOLD */ & !CLEAR; Q2.D = ( LD & D2 /* LOAD D2 */ | !LD & !Q2 & Q1 & Q0 & CARRYIN /* TOGGLE */ | !LD & Q2 & !( Q1 & Q0 )) /* HOLD */ & !CLEAR; Q3.D = ( LD & D3 /* LOAD D3 */ | !LD & !Q3 & Q2 & Q1 & Q0 & CARRYIN /* TOGGLE */ | !LD & Q3 & !( Q2 & Q1 & Q0 )) /* HOLD */ & !CLEAR; Q4.D = ( LD & D4 /* LOAD D4 */ | !LD & !Q4 & Q3 & Q2 & Q1 & Q0 & CARRYIN /* TOGGLE */ | !LD & Q4 & !( Q3 & Q2 & Q1 & Q0 )) /* HOLD */ & !CLEAR; Q5.D = ( LD & D5 /* LOAD D5 */ | !LD & !Q5 & Q4 & Q3 & Q2 & Q1 & Q0 & CARRYIN /* TOGGLE */ | !LD & Q5 & !( Q4 & Q3 & Q2 & Q1 & Q0 )) /* HOLD */ & !CLEAR; Q6.D = ( LD & D6 /* LOAD D6 */ | !LD & !Q6 & Q5 & Q4 & Q3 & Q2 & Q1 & Q0 & CARRYIN /* TOGGLE */ | !LD & Q6 & !( Q5 & Q4 & Q3 & Q2 & Q1 & Q0 )) /* HOLD */ & !CLEAR; /* Async carry out */ CARRYOUT = !LD & Q6 & Q5 & Q4 & Q3 & Q2 & Q1 & Q0 & CARRYIN;