COMBINATIONAL CIRCUITS Combinational PLDs Basic Configuration of three PLDs (Programmable Logic Devices)
Boolean variables Fixed Programmable INPUTS AND array OUTPUTS OR array (decoder)
Programmable Read-Only Memory (PROM)
Programmable INPUTS Fixed OUTPUTS AND array OR array
Programmable Array Logic (PAL)
Programmable INPUTS Programmable AND array OR array OUTPUTS
(Field) Programmable Logic Array (PLA)
1 ©Loberg COMBINATIONAL CIRCUITS Combinational PLDs Two-level AND-OR Arrays (Programmable Logic Devices)
F (C,B, A) = CBA + CB A A AND B + V B C A C B F C F AND F + V 1 B OR C Multiple functions
Simplified equivalent circuit for two-level AND-OR array
2 ©Loberg COMBINATIONAL CIRCUITS Combinational PLDs Field-programmable AND and OR Arrays (Programmable Logic Devices)
Field-programmable logic elements are devices that contain uncommitted AND/OR arrays that are (programmed) configured by the designer.
+ V + V
A A F (C,B, A) F (C,B, A) = CBA B B
C C
Unprogrammed AND array Fuse can be "blown" by passing a high current through it.
3 ©Loberg COMBINATIONAL CIRCUITS Combinational PLDs Field-programmable AND and OR Arrays (Programmable Logic Devices)
F (P1 ,P2 ,P3 ) = P1 + P3
P1 P1
P2 P2
P3 P3 F F (P1 ,P2 ,P3 )
Unprogrammed OR array Programmed OR array
P1 P2 P3
P1 + P3
4 ©Loberg COMBINATIONAL CIRCUITS Combinational PLDs Output Polarity Options (Programmable Logic Devices)
I1
Ik
Active high
Active low Complementary outputs Programmable polarity
P P 1 m + V
5 ©Loberg COMBINATIONAL CIRCUITS Combinational PLDs Bidirectional Pins and Feed back Lines (Programmable Logic Devices)
I1
Ik Feedback
IOm
Three-state driver
6 ©Loberg COMBINATIONAL CIRCUITS Combinational PLDs PLA (Programmable Logic Array) (Programmable Logic Devices)
If we use ROM to implement the Boolean function we will waste the silicon area.
All Input combinations are implemented in ROM (address decoder).
Usually we must implement only few minterms. A B ⇒ Only few OR-operators. C ⇒ A⋅ B ⋅ The standard SOP format has few A C OR operations and several input B ⋅C variables. Inverted A⋅ B ⋅C output PLA saves silicon area 0 C B A 1 = ⋅ + ⋅ + ⋅ ⋅ C B A F1 B A C A C B A F1
F2 = C ⋅ A + B ⋅C F2
7 ©Loberg COMBINATIONAL CIRCUITS Combinational PLDs PLA (Programmable Logic Array) (Programmable Logic Devices)
Example (Old Signetics FPLA 82S100 Field Programmable Logic Array)
82S100 is 16X48X8 Fuse Programmable Vcc Logic Array circuit fuse I0
I1
I15
P0 P1 P47
Vcc S0 F0
S1 F1 fuse S7 F7
8 ©Loberg COMBINATIONAL CIRCUITS Combinational PLDs PLA (Programmable Logic Array) (Programmable Logic Devices) I0 Example of FPLA Device Philips PLS153A
I7
I/O B9
B0 9 ©Loberg COMBINATIONAL CIRCUITS Combinational PLDs PAL (Programmable Array Logic) (Programmable Logic Devices)
Fixed OR array Product term 1 F1 = A⋅ B ⋅C + A⋅ B ⋅C + D 2 F1 3
A I1 Feedback
4
5 F2 6 B I2 7
8 F3 9 C I3 10
11 F4 12 D I4 10 ©Loberg COMBINATIONAL CIRCUITS Combinational PLDs PAL (Programmable Array Logic) (Programmable Logic Devices)
Example of PAL Device AMD PAL18P8
11 ©Loberg COMBINATIONAL CIRCUITS Combinational PLDs PAL (Programmable Array Logic) (Programmable Logic Devices)
Combinational logic + D-flip-flops (for sequential circuit applications)
One example : PEEL 22CV10A Electrically Erasable
1 of 10 Macro cells
I I/O
MACRO OE AND CELL array
SP AC I
SP Synchronous Preset Common Clock AC Asynchronous Clear OE Output Enable
12 ©Loberg COMBINATIONAL CIRCUITS Combinational PLDs PAL16R4AM (Programmable Logic Devices)
13 ©Loberg COMBINATIONAL CIRCUITS Combinational PLDs ROM implementation (Programmable Logic Devices) m m 2 × n m inputs (address Ai = 2 combinations) n outputs (data) ROM
Linear, one-dimensional Word-lines memory core addressing
A0 m W0 A m× 2 W Encoder 1 decoder 1 Address lines
Memory Input variables matrix ROM cells
Am−2 WM −2
Am−1 WM −1
m-bit address 2m = M n-bit data Data lines Dn−1 Dn−2 D1 D0 Outputs 14 ©Loberg COMBINATIONAL CIRCUITS Combinational PLDs ROM implementation (Programmable Logic Devices)
Canonical SOP form of the Boolean function : Minterms Address locations
A0 D0 10 Input variables 1k x 8 8 Outputs D7 A9
Select lines Output Enable lines
15 ©Loberg COMBINATIONAL CIRCUITS Combinational PLDs ROM implementation (Programmable Logic Devices) Example
13 input variables In12 - In0 ROM organized as 8Kb x 8 (8192x8bits) 8 different switching functions F7-F0 For example M27C64A UV EPROM
V VCC Supply voltage +5V (10%) CC VPP
13 8 VSS Ground A12 − A0 Q0 − Q7 VPP Program Supply 12.5V +- 0.25V Direction during program M27C64A P Program P E E Chip Enable G G Output Enable − Address Inputs VSS A12 A0 Q7 − Q0 Data Outputs
Logic diagram Signal Names
16 ©Loberg COMBINATIONAL CIRCUITS Combinational PLDs ROM implementation (Programmable Logic Devices)
Example
VCC +5V
10 11 VCC In0 A0 Q0 F0 VPP 1 28 9 12 M27C64A A12 P 8 13 NC 7 15 A7 6 16 A8 5 17 A9 4 18 A11 3 19 G In7 Q7 F7 A10 In8 25 1 VPP E In9 24 27 21 P A0 Q7 In10 Q0 In11 23 NC 26 2 20 In12 A12 E Q2 14 G 22 VSS 14 15 Q3
Implemented combinational logic Dip Connections
17 ©Loberg COMBINATIONAL CIRCUITS
ROM implementation
Universal Programmer
UV Eraser
18 COMBINATIONAL CIRCUITS Combinational PLDs Programming Software (Programmable Logic Devices)
Examples (free download)
ATMEL : WinCUPL software
SPLDs Simple Programmable Logic Devices (16V8, 20V8, 22V10)
ATF22LV10ZQZ
CPLDs Complex Programmable Logic Devices
ATF15xxBE family ATV750B
XILINX : Xilinx ISE Design Suite (Schematics, VHDL, Verilog)
CPLDs Complex Programmable Logic Devices
XC95xx family FPGAs Field Programmable Gate Arrays Virtex, Spartan,..
19 The End
20