PAL16A4 PAL DESIGN SPECIFICATION P7014 BIRKNER/COLI 07/15/81 ALU/ACCUMULATOR MMI SUNNYVALE, CALIFORNIA CLK I0 I1 B0 B1 B2 B3 I2 I3 GND /OC LIO /P A3 A2 A1 A0 /G CIN VCC CARRY0 .EQU /I3*/I2*/I1*/I0 * CIN CARRY1 .EQU /I3*/I2*/I1*/I0 * (A0*B0) + /I3*/I2*/I1*/I0 * (A0+B0)*CIN CARRY2 .EQU /I3*/I2*/I1*/I0 * (A1*B1) + /I3*/I2*/I1*/I0 * (A1+B1)*(A0*B0) + /I3*/I2*/I1*/I0 * (A1+B1)*(A0+B0)*CIN CARRY3 .EQU /I3*/I2*/I1*/I0 * (A2*B2) + /I3*/I2*/I1*/I0 * (A2+B2)*(A1*B1) + /I3*/I2*/I1*/I0 * (A2+B2)*(A1+B1)*(A0*B0) + /I3*/I2*/I1*/I0 * (A2+B2)*(A1+B1)*(A0+B0)*CIN /A0 := /I3*/I2*/I1*/I0*(A0:*:B0) ;A0 PLUS B0 + /I3*/I2* I0*(/A0) ;HOLD A0 (A0 AND) + /I3*/I2* I1*(/B0) ;LOAD B0 ( B0 ) + /I3* I2*/I1*/I0*(B0) ;LOAD /B0 :+: /I3* I2*/I1* I0*(/A0*/B0) ;A0 OR B0 + /I3* I2* I1*/I0*/CIN ;SHIFT LEFT A0 + /I3* I2* I1* I0*(/A1) ;SHIFT RIGHT A0 + I3*(/A0) ;HOLD A0 (LSB) + CARRY0 ;A0 PLUS B0 PLUS 1 /A1 := /I3*/I2*/I1*/I0*(A1:*:B1) ;A1 PLUS B1 + /I3*/I2* I0*(/A1) ;HOLD A1 (A1 AND) + /I3*/I2* I1*(/B1) ;LOAD B1 ( B1 ) + /I3* I2*/I1*/I0*(B1) ;LOAD /B1 :+: /I3* I2*/I1* I0*(/A1*/B1) ;A1 OR B1 + /I3* I2* I1*/I0*(/A0) ;SHIFT LEFT A1 + /I3* I2* I1* I0*(/A2) ;SHIFT RIGHT A1 + I3*(/A1) ;HOLD A1 + CARRY1 ;A1 PLUS B1 PLUS 1 /A2 := /I3*/I2*/I1*/I0*(A2:*:B2) ;A2 PLUS B2 + /I3*/I2* I0*(/A2) ;HOLD A2 (A2 AND) + /I3*/I2* I1*(/B2) ;LOAD B2 ( B2 ) + /I3* I2*/I1*/I0*(B2) ;LOAD /B2 :+: /I3* I2*/I1* I0*(/A2*/B2) ;A2 OR B2 + /I3* I2* I1*/I0*(/A1) ;SHIFT LEFT A2 + /I3* I2* I1* I0*(/A3) ;SHIFT RIGHT A2 + I3*(/A2) ;HOLD A2 + CARRY2 ;A2 PLUS B2 PLUS 1 /A3 := /I3*/I2*/I1*/I0*(A3:*:B3) ;A3 PLUS B3 + /I3*/I2* I0*(/A3) ;HOLD A3 (A3 AND) + /I3*/I2* I1*(/B3) ;LOAD B3 ( B3 ) + /I3* I2*/I1*/I0*(B3) ;LOAD /B3 :+: /I3* I2*/I1* I0*(/A3*/B3) ;A3 OR B3 + /I3* I2* I1*/I0*(/A2) ;SHIFT LEFT A3 + /I3* I2* I1* I0*/LIO ;SHIFT RIGHT A3 + I3*(/A3) ;HOLD A3 (MSB) + CARRY3 ;A3 PLUS B3 PLUS 1 IF(VCC) G = /I3*/I2*/I1*/I0 * (A3*B3) + /I3*/I2*/I1*/I0 * (A3+B3)*(A2*B2) + /I3*/I2*/I1*/I0 * (A3+B3)*(A2+B2)*(A1*B1) + /I3*/I2*/I1*/I0 * (A3+B3)*(A2+B2)*(A1+B1)*(A0*B0) IF(VCC) P = /I3*/I2*/I1*/I0 * (A3+B3)*(A2+B2)*(A1+B1)*(A0+B0) + /I3*/I2*/I1* I0 * (/A3)*(/A2)*(/A1)*(/A0) + /I3*/I2* I1*/I0 * (/B3)*(/B2)*(/B1)*(/B0) + /I3*/I2* I1* I0 * (/A3+/B3)*(/A2+/B2)*(/A1+/B1)*(/A0+/B0) + /I3* I2*/I1* I0 * (/A3*/B3)*(/A2*/B2)*(/A1*/B1)*(/A0*/B0) + /I3* I2* I1*/I0 * (/A2)*(/A1)*(/A0)*/CIN + /I3* I2* I1* I0 * /LIO*(/A3)*(/A2)*(/A1) IF (/I3* I2* I1*/I0) /LIO = (/A3) ;SHIFT LEFT OUT IF (/I3* I2* I1* I0) /CIN = (/A0) ;SHIFT RIGHT OUT DESCRIPTION THE ALU ACCUMULATOR LOADS THE A-REGISTER WITH ONE OF EIGHT OPERANDS ON THE RISING EDGE OF THE CLOCK. G AND P OUTPUT GENERATE AND PROPAGATE ON THE ADD INSTRUCTION. P OUTPUTS OP = ZERO ON INSTRUCTIONS 1,2,3,5,6,7. OPERATIONS TABLE: /OC CLK I3 I2 I1 I0 LIO CIN A3-A0 OPERATION ------------------------------------------------------------------------------ H X X X X X X X Z HI-Z A =Z L C L L L L X L A PLUS B ADD A:=A PLUS B L C L L L L X H A PL B PL 1 ADD A:=A PLUS B PLUS 1 L C L L L H X X A HOLD A:=A L C L L H L X X B LOAD A:=B L C L L H H X X A AND B AND A:=A*B L C L H L L X X /B LOAD COMP A:=/B L C L H L H X X A OR B OR A:=A+B L C L H H L X LI SL(A) SHIFT LEFT L C L H H H RI X SR(A) SHIFT RIGHT L C H X X X X X A HOLD A:=A ------------------------------------------------------------------------------