# Programmable Array Logic

**Programmable Array Logic**(PAL) is a type of Programmable Logic Device (PLD) used to realize a particular logical function. PALs comprise of an AND gate array followed by an OR gate array as shown by Figure 1. However it is to be noted that here only the AND gate array is programmable unlike the OR gate array which has a fixed logic. This is because here the inputs are fed to the AND gates through fuses (shown in blue), which act as programmable links. Programmable-AND and fixed-OR structure of PALs make them less flexible from programming point of view when compared with Programmable Logic Arrays (PLAs). However due to the same reason PALs are less expensive than PLAs. Figure 2 shows the internal structure of a PAL with m inputs and n outputs. Each of the input line is showed to pass through the buffers and/or inverters. All of these inputs are connected each and every AND gate present in the PAL.

Further this connection matrix is programmable (red box in Figure 2) which lets the user to decide the connection between the input lines and the AND gates. This means that one has to connect each and every input line to either single or multiple AND gate(s), depending on the logic. This causes one to realize the logical 'and' functionality between the input lines. Further the outputs of the AND gate array are fed as inputs to the OR gates via hard-wired connections (shown by blue box in Figure 2), which are fixed and hence unalterable. Moreover it is to be noted that the output of every AND gate is not fed to every OR gate. For example, OR gate 1 (O_{1}) is has multiple inputs including the outputs of AND gate 1 (A_{1}), AND gate 2 (A_{2}) and AND gate p (A_{p}). However OR gate n (O_{n}) has only two inputs which are the outputs of AND gates A_{1} and A_{p}. As these connections are fixed, one has to pay attention while establishing the connection to realize the logical 'or' functionality of the product-terms obtained as outputs from AND gate array.
Finally there are n output lines of the OR gate array resulting in n output PAL realizing the required logic in sum-of-products (SOP) form. The PAL shown in Figure 2 can be addressed as m-input, p-product-term, n-output PAL. However it is to be noted that the number of inputs, AND gates and OR gates present in the PAL are all independent i.e. one PAL can have 3 inputs, 8 AND gates and 4 outputs (and thus 4 OR gates).

All PALs can be electrically programmed using bit files through device programmers. Further device feeders and gang programmers can be used in order to program more than one **PAL**. Common programming languages in use include PAL assembler (PALASM), Compiler for Universal Programmable Logic (CUPL) and Advanced Boolean Expression Language (ABEL).

Closely Related Articles Latches and Flip FlopsS R Flip Flop S R LatchActive Low S R Latch and Flip FlopGated S R Latches or Clocked S R Flip FlopsD Flip Flop or D LatchJ K Flip FlopMaster Slave Flip FlopRead Only Memory | ROMProgrammable Logic DevicesApplication of Flip FlopsShift RegistersBuffer Register and Controlled Buffer RegisterData Transfer in Shift RegistersSerial In Serial Out (SISO) Shift RegisterSerial in Parallel Out (SIPO) Shift RegisterParallel in Serial Out (PISO) Shift RegisterParallel in Parallel Out (PIPO) Shift RegisterUniversal Shift RegistersBidirectional Shift RegisterDynamic Shift RegisterUninterruptible Power Supply | UPSConversion of Flip FlopsMore Related Articles Digital ElectronicsBoolean Algebra Theorems and Laws of Boolean AlgebraDe Morgan Theorem and Demorgans LawsTruth Tables for Digital LogicBinary Arithmetic Binary AdditionBinary SubtractionSimplifying Boolean Expression using K MapBinary DivisionExcess 3 Code Addition and SubtractionK Map or Karnaugh MapSwitching Algebra or Boolean AlgebraBinary MultiplicationParallel SubtractorBinary Adder Half and Full AdderBinary SubstractorSeven Segment DisplayBinary to Gray Code Converter and Grey to Binary Code ConverterBinary to BCD Code ConverterAnalog to Digital ConverterDigital Encoder or Binary EncoderBinary DecoderBasic Digital CounterDigital ComparatorBCD to Seven Segment DecoderParallel AdderParallel Adder or SubtractorMultiplexerDemultiplexerOR Operation | Logical OR OperationAND Operation | Logical AND OperationLogical OR GateLogical AND GateNOT GateUniversal Gate | NAND and NOR Gate as Universal GateNAND GateDiode and Transistor NAND Gate or DTL NAND Gate and NAND Gate ICsX OR Gate and X NOR GateTransistor Transistor Logic or TTLNOR GateFan out of Logic GatesINHIBIT GateNMOS Logic and PMOS LogicSchmitt GatesLogic Families Significance and Types of Logic FamiliesBinary Number System | Binary to Decimal and Decimal to Binary ConversionBinary to Decimal and Decimal to Binary ConversionBCD or Binary Coded Decimal | BCD Conversion Addition SubtractionBinary to Octal and Octal to Binary ConversionOctal to Decimal and Decimal to Octal ConversionBinary to Hexadecimal and Hex to Binary ConversionHexadecimal to Decimal and Decimal to Hexadecimal ConversionGray Code | Binary to Gray Code and that to Binary ConversionOctal Number SystemDigital Logic Gates2′s Complement1′s ComplementASCII CodeHamming Code2s Complement ArithmeticError Detection and Correction Codes9s complement and 10s complement | SubtractionSome Common Applications of Logic GatesKeyboard EncoderAlphanumeric codes | ASCII code | EBCDIC code | UNICODENew Articles Voltage SensorFlow MeasurementVoltage in ParallelVoltage in SeriesVoltage Regulator 7805How to Use a Digital Multimeter?