PAL16R6 PAL DESIGN SPECIFICATION P7066 VINCENT COLI 01/04/82 6-BIT COUNTER MMI SUNNYVALE, CALIFORNIA CLK I0 D0 D1 D2 D3 D4 D5 I1 GND /OC /CO Q5 Q4 Q3 Q2 Q1 Q0 /CI VCC /Q0 := /I1* I0*/Q0 ;HOLD D0 + I1*/I0*/D0 ;LOAD D0 (LSB) + I1* I0*/CI*/Q0 ;HOLD IF NO CARRY IN + I1* I0* CI* Q0 ;COUNT IF CARRY IN AND Q0=H /Q1 := /I1* I0*/Q1 ;HOLD D1 + I1*/I0*/D1 ;LOAD D1 + I1* I0*/CI*/Q1 ;HOLD IF NO CARRY IN + I1* I0*/Q0*/Q1 ;HOLD IF Q0,Q1=L + I1* I0* CI* Q1*Q0 ;COUNT IF CARRY IN AND Q0,Q1=H /Q2 := /I1* I0*/Q2 ;HOLD D2 + I1*/I0*/D2 ;LOAD D2 + I1* I0*/CI*/Q2 ;HOLD IF NO CARRY IN + I1* I0*/Q0*/Q2 ;HOLD IF Q0,Q2=L + I1* I0*/Q1*/Q2 ;HOLD IF Q1,Q2=L + I1* I0* CI* Q2*Q1*Q0 ;COUNT IF CARRY IN AND Q0,Q1,Q2=H /Q3 := /I1* I0*/Q3 ;HOLD D3 + I1*/I0*/D3 ;LOAD D3 + I1* I0*/CI*/Q3 ;HOLD IF NO CARRY IN + I1* I0*/Q0*/Q3 ;HOLD IF Q0,Q3=L + I1* I0*/Q1*/Q3 ;HOLD IF Q1,Q3=L + I1* I0*/Q2*/Q3 ;HOLD IF Q2,Q3=L + I1* I0* CI* Q3*Q2*Q1*Q0 ;COUNT IF CARRY IN AND Q0,Q1,Q2,Q3=H /Q4 := /I1* I0*/Q4 ;HOLD D4 + I1*/I0*/D4 ;LOAD D4 + I1* I0*/CI*/Q4 ;HOLD IF NO CARRY IN + I1* I0*/Q0*/Q4 ;HOLD IF Q0,Q4=L + I1* I0*/Q1*/Q4 ;HOLD IF Q1,Q4=L + I1* I0*/Q2*/Q4 ;HOLD IF Q2,Q4=L + I1* I0*/Q3*/Q4 ;HOLD IF Q3,Q4=L + I1* I0* CI* Q4*Q3*Q2*Q1*Q0 ;COUNT IF CARRY IN AND Q0,Q1,Q2,Q3,Q4=H ; NOTE: ONE PRODUCT LINE (OR FUNCTION) MUST BE REMOVED FOR Q5 IN ORDER TO ; IMPLEMENT THIS FUNCTION IN ONE PAL16R6. /Q5 := /I1* I0*/Q5 ;HOLD D5 + I1*/I0*/D5 ;LOAD D5 (MSB) + I1* I0*/CI*/Q5 ;HOLD IF NO CARRY IN + I1* I0*/Q0*/Q5 ;HOLD IF Q0,Q5=L + I1* I0*/Q1*/Q5 ;HOLD IF Q1,Q5=L + I1* I0*/Q2*/Q5 ;HOLD IF Q2,Q5=L + I1* I0*/Q3*/Q5 ;HOLD IF Q3,Q5=L + I1* I0*/Q4*/Q5 ;HOLD IF Q4,Q5=L + I1* I0* CI*Q0*Q1*Q2*Q3*Q4*Q5 ;COUNT IF CARRY IN AND Q0,Q1,Q2,Q3,Q4,Q5=H IF (VCC) CO = CI*Q0*Q1*Q2*Q3*Q4*Q5 ;CARRY OUT FUNCTION TABLE CLK /OC I1 I0 D5 D4 D3 D2 D1 D0 /CI /CO Q5 Q4 Q3 Q2 Q1 Q0 ; INPUT OUTPUT ;CONTROL INSTR DDDDDD CARRY QQQQQQ COMMENTS ;CLK /OC I1 I0 543210 /CI /CO 543210 (HEX VALUES) --------------------------------------------------------------------------- C L H L LLLLLH X H LLLLLH LOAD (01) C L H H XXXXXX L H LLLLHL INCREMENT C L H L LLLLHH X H LLLLHH LOAD (03) C L H H XXXXXX L H LLLHLL INCREMENT C L H L LLLHHH X H LLLHHH LOAD (07) C L H H XXXXXX L H LLHLLL INCREMENT C L H L LLHHHH X H LLHHHH LOAD (0F) C L H H XXXXXX L H LHLLLL INCREMENT C L H L LHHHHH X H LHHHHH LOAD (1F) C L H H XXXXXX L H HLLLLL INCREMENT C L H L HHHHHH X L HHHHHH LOAD (3F) (/CO=L) C L H H XXXXXX L H LLLLLL INCREMENT (ROLL OVER) C L H L HHHHHH L L HHHHHH LOAD (3F) C L H L HHHHHL X H HHHHHL LOAD (3E) C L H L HHHHLH X H HHHHLH LOAD (3D) C L H L HHHLHH X H HHHLHH LOAD (3B) C L H L HHLHHH X H HHLHHH LOAD (37) C L H L HLHHHH X H HLHHHH LOAD (3F) C L H L LHHHHH X H LHHHHH LOAD (3F) C L H L HHHHHH L L HHHHHH LOAD (3F) C L L L XXXXXX X L HHHHHH PRESET C L H H XXXXXX L H LLLLLL INCREMENT (ROLL OVER) C L H H XXXXXX L H LLLLLH INCREMENT TO (01) C L H H XXXXXX L H LLLLHL INCREMENT TO (02) C L H H XXXXXX L H LLLLHH INCREMENT TO (03) C L H H XXXXXX L H LLLHLL INCREMENT TO (04) C L H H XXXXXX L H LLLHLH INCREMENT TO (05) C L H H XXXXXX L H LLLHHL INCREMENT TO (06) C L H H XXXXXX L H LLLHHH INCREMENT TO (07) C L H H XXXXXX L H LLHLLL INCREMENT TO (08) C L H H XXXXXX L H LLHLLH INCREMENT TO (09) C L H H XXXXXX L H LLHLHL INCREMENT TO (0A) C L H H XXXXXX L H LLHLHH INCREMENT TO (0B) C L H H XXXXXX L H LLHHLL INCREMENT TO (0C) C L H L HHHHHL X H HHHHHL LOAD (3E) C L H H XXXXXX L L HHHHHH INCREMENT TO (3F) (/CO=L) C L H H XXXXXX H H HHHHHH CI INHIBITS COUNT AND CO C L L H LLLLLL L L HHHHHH HOLD SEL INHIBITS COUNT ONLY C L H H HHHHHH L H LLLLLL INCREMENT TO (00) X H X X XXXXXX X X ZZZZZZ TEST HI-Z --------------------------------------------------------------------------- DESCRIPTION THIS IS AN 6-BIT SYNCHRONOUS COUNTER WITH PARALLEL LOAD, PRESET, AND HOLD CAPABILITY. THE LOAD OPERATION LOADS THE INPUTS (D5-D0) INTO THE OUTPUT REGISTER (Q5-Q0). THE PRESET OPERATION SETS THE OUTPUT REGISTER TO ALL HIGHS. THE HOLD OPERATION HOLDS THE PREVIOUS VALUE REGARDLESS OF CLOCK TRANSITIONS. THE INCREMENT OPERATION ADDS ONE TO THE OUTPUT REGISTER WHEN THE CARRY-IN IS TRUE (/CI=L), OTHERWISE THE OPERATION IS A HOLD. THE CARRY-OUT (/CO) IS TRUE (/CO=L) WHEN THE OUTPUT REGISTER (Q5-Q0) IS ALL HIGHS, OTHERWISE FALSE (/CO=H). THESE OPERATIONS ARE EXERCISED IN THE FUNCTION TABLE AND SUMMARIZED IN THE OPERATIONS TABLE: /OC CLK I1 I0 /CI D5-D0 Q5-Q0 OPERATION -------------------------------------------------- H X X X X X Z HI-Z L C L L X X H PRESET L C L H X X Q HOLD L C H L X D D LOAD L C H H H X Q HOLD L C H H L X Q PLUS 1 INCREMENT -------------------------------------------------- TWO OR MORE 6-BIT COUNTERS MAY BE CASCADED TO PROVIDE LARGER COUNTERS. THE OPERATION CODES WERE CHOSEN SUCH THAT WHEN I1 IS HIGH, I0 MAY BE USED TO SELECT BETWEEN LOAD AND INCREMENT AS IN A PROGRAM COUNTER (JUMP/INCREMENT). ALSO, CARRY-OUT (/CO) AND CARRY-IN (/CI) ARE LOCATED ON PINS 12 AND 19 RESPECTIVELY, WHICH PROVIDES FOR CONVENIENT INTERCONNECTIONS WHEN TWO OR MORE 6-BIT COUNTERS ARE CASCADED TO IMPLEMENT LARGER COUNTERS.