Programmable Logic PAL PLA PLAs Programmable Logic Array
![Programmable Logic PAL, PLA Programmable Logic PAL, PLA](https://slidetodoc.com/presentation_image_h/344a9a282d9ea68a05b405d7e5d9097c/image-1.jpg)
Programmable Logic PAL, PLA
![PLAs Programmable Logic Array × Pre-fabricated building block of many AND/OR gates (or NOR, PLAs Programmable Logic Array × Pre-fabricated building block of many AND/OR gates (or NOR,](http://slidetodoc.com/presentation_image_h/344a9a282d9ea68a05b405d7e5d9097c/image-2.jpg)
PLAs Programmable Logic Array × Pre-fabricated building block of many AND/OR gates (or NOR, NAND) "Personalized" by making/ breaking connections among the gates. × General purpose logic building blocks. 2
![PLA 3 PLA 3](http://slidetodoc.com/presentation_image_h/344a9a282d9ea68a05b405d7e5d9097c/image-3.jpg)
PLA 3
![PLA 4 PLA 4](http://slidetodoc.com/presentation_image_h/344a9a282d9ea68a05b405d7e5d9097c/image-4.jpg)
PLA 4
![PLA • A 3× 2 PLA with 4 product terms. 5 PLA • A 3× 2 PLA with 4 product terms. 5](http://slidetodoc.com/presentation_image_h/344a9a282d9ea68a05b405d7e5d9097c/image-5.jpg)
PLA • A 3× 2 PLA with 4 product terms. 5
![Design for PLA: Example × Implement the following functions using PLA F 0 = Design for PLA: Example × Implement the following functions using PLA F 0 =](http://slidetodoc.com/presentation_image_h/344a9a282d9ea68a05b405d7e5d9097c/image-6.jpg)
Design for PLA: Example × Implement the following functions using PLA F 0 = A + B' C' F 1 = A C' + A B F 2 = B' C' + A B F 3 = B' C + A Personality Matrix Product term AB BC AC BC A Inputs Outputs A B C F 0 F 1 F 2 F 3 0 1 1 - 0 1 0 0 0 1 1 - 0 0 1 0 0 - 0 0 1 0 1 0 0 1 1 - - Input Side: 1 = asserted in term 0 = negated in term - = does not participate Output Side: 1 = term connected to output 0 = no connection to output Reuse of terms 6
![Example: Continued A F 0 = A + B' C' F 1 = A Example: Continued A F 0 = A + B' C' F 1 = A](http://slidetodoc.com/presentation_image_h/344a9a282d9ea68a05b405d7e5d9097c/image-7.jpg)
Example: Continued A F 0 = A + B' C' F 1 = A C' + A B F 2 = B' C' + A B F 3 = B' C + A B C AB B’C AC’ B’C’ Personality Matrix A F 0 F 1 F 2 F 3 7
![Constants × Sometimes a PLA output must be programmed to be a constant 1 Constants × Sometimes a PLA output must be programmed to be a constant 1](http://slidetodoc.com/presentation_image_h/344a9a282d9ea68a05b405d7e5d9097c/image-8.jpg)
Constants × Sometimes a PLA output must be programmed to be a constant 1 or a constant 0. − P 1 is always 1 − × × because its product line is connected to no inputs and is therefore always pulled HIGH; this constant-1 term drives the O 1 output. No product term drives the O 2 output, which is therefore always 0. Another method of obtaining a constant-0 output is shown for O 3. 8
![BCD to Gray Code Converter Minimized Functions: W=A+BD+BC X = B C' Y=B+C Z BCD to Gray Code Converter Minimized Functions: W=A+BD+BC X = B C' Y=B+C Z](http://slidetodoc.com/presentation_image_h/344a9a282d9ea68a05b405d7e5d9097c/image-9.jpg)
BCD to Gray Code Converter Minimized Functions: W=A+BD+BC X = B C' Y=B+C Z = A'B'C'D + B C D + A D' + B' C D' 9
![A B C D A BD 4 product terms per each OR gate BC A B C D A BD 4 product terms per each OR gate BC](http://slidetodoc.com/presentation_image_h/344a9a282d9ea68a05b405d7e5d9097c/image-10.jpg)
A B C D A BD 4 product terms per each OR gate BC BC’ Product terms cannot be shared ! B PLA achieves higher flexibility at the cost of lower speed! C BCD AD’ BCD’ W X Y Z 10
![PALs • Programmable Array Logic × a fixed OR array. 11 PALs • Programmable Array Logic × a fixed OR array. 11](http://slidetodoc.com/presentation_image_h/344a9a282d9ea68a05b405d7e5d9097c/image-11.jpg)
PALs • Programmable Array Logic × a fixed OR array. 11
![PAL inputs 1 st output section 2 nd output section Only functions with at PAL inputs 1 st output section 2 nd output section Only functions with at](http://slidetodoc.com/presentation_image_h/344a9a282d9ea68a05b405d7e5d9097c/image-12.jpg)
PAL inputs 1 st output section 2 nd output section Only functions with at most four products can be implemented 3 rd output section 4 th output section 12
![PAL x x x W = AB C + CD X = A BC PAL x x x W = AB C + CD X = A BC](http://slidetodoc.com/presentation_image_h/344a9a282d9ea68a05b405d7e5d9097c/image-13.jpg)
PAL x x x W = AB C + CD X = A BC + A CD + ACD + BCD Y = A C D + ACD + A BD 13
![14 14](http://slidetodoc.com/presentation_image_h/344a9a282d9ea68a05b405d7e5d9097c/image-14.jpg)
14
![Helper Terms × If an I/O pin’s outputcontrol gate produces a constant 1, the Helper Terms × If an I/O pin’s outputcontrol gate produces a constant 1, the](http://slidetodoc.com/presentation_image_h/344a9a282d9ea68a05b405d7e5d9097c/image-15.jpg)
Helper Terms × If an I/O pin’s outputcontrol gate produces a constant 1, the output is always enabled, but the pin may still be used as an input too. × outputs can be used to generate firstpass “helper terms” for logic functions that cannot be performed in a single pass with the limited number of AND terms available for a single output. 15
![Read-Only Memory ROM Read-Only Memory ROM](http://slidetodoc.com/presentation_image_h/344a9a282d9ea68a05b405d7e5d9097c/image-16.jpg)
Read-Only Memory ROM
![ROM • Decoder Ø Produces minterms • ORs Ø Produce SOP’s A B S ROM • Decoder Ø Produces minterms • ORs Ø Produce SOP’s A B S](http://slidetodoc.com/presentation_image_h/344a9a282d9ea68a05b405d7e5d9097c/image-17.jpg)
ROM • Decoder Ø Produces minterms • ORs Ø Produce SOP’s A B S 3 S 2 C S 1 D S 0 4: 16 dec 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 A‘B’C’D’ A ‘B’C’D A‘B’CD’ A‘B’CD A‘BC’D’ A‘BC’D A‘BCD’ A‘ BCD A B’C’D’ A B’C’D A B’CD’ A B’CD A B C’D’ A B C’D A B C D’ AB C D F 1 F 2 F 3 Enb 17
![ROM • ROM Ø A decoder Ø A set of programmable OR’s A B ROM • ROM Ø A decoder Ø A set of programmable OR’s A B](http://slidetodoc.com/presentation_image_h/344a9a282d9ea68a05b405d7e5d9097c/image-18.jpg)
ROM • ROM Ø A decoder Ø A set of programmable OR’s A B C D 7 D 6 D 5 D 4 A 2 D 3 D 2 A 1 D 1 A 0 D 0 X X X X X F 1 F 0 X F 3 F 2 18
![ROM vs. PLA/PAL Fixed AND array (decoder) Inputs Programmable Connections Programmable OR array Outputs ROM vs. PLA/PAL Fixed AND array (decoder) Inputs Programmable Connections Programmable OR array Outputs](http://slidetodoc.com/presentation_image_h/344a9a282d9ea68a05b405d7e5d9097c/image-19.jpg)
ROM vs. PLA/PAL Fixed AND array (decoder) Inputs Programmable Connections Programmable OR array Outputs (a) Programmable read-only memory (PROM) Inputs Programmable Connections Programmable AND array Fixed OR array Outputs Programmable OR array Outputs (b) Programmable array logic (PAL) device Inputs Programmable Connections Programmable AND array Programmable Connections (c) Programmable logic array (PLA) device 19
![Example • Find a ROM-based circuit implementation for: Ø f(a, b, c) = a’b’ Example • Find a ROM-based circuit implementation for: Ø f(a, b, c) = a’b’](http://slidetodoc.com/presentation_image_h/344a9a282d9ea68a05b405d7e5d9097c/image-20.jpg)
Example • Find a ROM-based circuit implementation for: Ø f(a, b, c) = a’b’ + abc Ø g(a, b, c) = a’b’c’ + ab + bc Ø h(a, b, c) = a’b’ + c • Solution: Ø Express f(), g(), and h() in m() format (use truth tables) Ø Program the ROM based on the 3 m()’s 21
![Example Ø There are 3 inputs and 3 outputs, thus we need a 8 Example Ø There are 3 inputs and 3 outputs, thus we need a 8](http://slidetodoc.com/presentation_image_h/344a9a282d9ea68a05b405d7e5d9097c/image-21.jpg)
Example Ø There are 3 inputs and 3 outputs, thus we need a 8 x 3 ROM block. − f = m(0, 1, 7) − g = m(0, 3, 6, 7) − h = m(0, 1, 3, 5, 7) a b c 3 -to-8 decoder 0 1 2 3 4 5 6 7 f g h 22
![ROM as a Memory • Read Only Memories (ROM) or Programmable Read Only Memories ROM as a Memory • Read Only Memories (ROM) or Programmable Read Only Memories](http://slidetodoc.com/presentation_image_h/344a9a282d9ea68a05b405d7e5d9097c/image-22.jpg)
ROM as a Memory • Read Only Memories (ROM) or Programmable Read Only Memories (PROM) have: Ø Ø N input lines, M output lines, and Ø 2 N decoded minterms. • Can be viewed as a memory with the inputs as addresses of data (output values), Ø hence ROM or PROM names! 23
![(Memories) • Volatile: Ø Random Access Memory (RAM): − SRAM "static" − DRAM "dynamic" (Memories) • Volatile: Ø Random Access Memory (RAM): − SRAM "static" − DRAM "dynamic"](http://slidetodoc.com/presentation_image_h/344a9a282d9ea68a05b405d7e5d9097c/image-23.jpg)
(Memories) • Volatile: Ø Random Access Memory (RAM): − SRAM "static" − DRAM "dynamic" • Non-Volatile: Ø Read Only Memory (ROM): − Mask ROM "mask programmable" − EPROM "electrically programmable" − EEPROM “electrically erasable electrically programmable" − FLASH memory - similar to EEPROM with programmer integrated on chip 24
![ROM as Memory Read Example: For input (A 2, A 1, A 0) = ROM as Memory Read Example: For input (A 2, A 1, A 0) =](http://slidetodoc.com/presentation_image_h/344a9a282d9ea68a05b405d7e5d9097c/image-24.jpg)
ROM as Memory Read Example: For input (A 2, A 1, A 0) = 011, output is (F 0, F 1, F 2, F 3 ) = 0010. • What are functions F 3, F 2 , F 1 and F 0 in terms of (A 2, A 1, A 0)? • 8 x 4 ROM Address A B C D 0 D 1 D 2 D 3 A 2 D 4 D 5 A 1 D 6 A 0 D 7 X X X A[2: 0] X X X F 0 F 1 F 2 X 3 0 1 1 0 0 2 1 0 0 1 3 0 0 1 0 4 0 0 5 1 0 0 0 6 0 0 1 1 7 0 1 0 0 F[3: 0] 4 F 3 25
![Design by ROM: Example • BCD to 7 Segment Display Controller ABCD 0000 0001 Design by ROM: Example • BCD to 7 Segment Display Controller ABCD 0000 0001](http://slidetodoc.com/presentation_image_h/344a9a282d9ea68a05b405d7e5d9097c/image-25.jpg)
Design by ROM: Example • BCD to 7 Segment Display Controller ABCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 0111 C 0 C 1 C 2 C 3 C 4 C 5 C 6 1 0 1 1 1 X X X 1 1 1 0 0 1 1 1 X X X 1 1 0 1 1 1 1 X X X 1 0 1 1 0 X X X 1 0 0 0 1 1 1 0 1 1 X X X 0 0 1 1 1 0 1 1 X X X 26
![Standard Devices Ø Vpp and PGM are used when programming 2764 EPROM 8 K Standard Devices Ø Vpp and PGM are used when programming 2764 EPROM 8 K](http://slidetodoc.com/presentation_image_h/344a9a282d9ea68a05b405d7e5d9097c/image-26.jpg)
Standard Devices Ø Vpp and PGM are used when programming 2764 EPROM 8 K x 8 27
- Slides: 26