Title: Programmable Logic Technologies
1ECE U322Digital Logic Design
Dec. 1, 2005
- Lecture 33
- PAL, PLA and Mapping Designs onto FPGAs
- Next weeks lectures will contain reviews
2PALs and PLAs
- PLA is the most flexible
- One PLA can implement a huge range of logic
functions - BUT many pins, large package, higher cost
- Each programmable connection needs extra space
- PALs are more restricted you trade number of OR
terms vs. number of outputs - Many device variations needed
- Each device is cheaper than a PLA
3PAL Logic Implementation
K-maps
Design Example BCD to Gray Code Converter
Truth Table
Minimized Functions
4Discrete Logic Implementation
Code Converter Discrete Gate Implementation
5PAL Logic Implementation
Minimized Functions
4 product terms per each OR gate
6Example Magnitude Comparator
- Inputs ABCD Outputs EQ, NE, LT, GT
7PLA Logic Implementation
Another Example Magnitude Comparator
8(No Transcript)
9Complex Programmable Logic Devices
- Complex PLDs typically combine PAL combinational
logic with FFs - Organized into logic blocks
- Fixed OR array size
- Combinational or registered output
- Some pins are inputs only
- Usually enough logic for simple counters, state
machines, decoders, etc.
1016V8 CPLD
OLMC (Output Logic MacroCell) has OR, FF, output
multiplexer and I/O control logic. Note that
OLMC output is fed back to input matrix for use
in other OLMCs.
11Field Programmalble Gate Arrays (FPGAs)
- FPGAs have much more logic than CPLDs
- 2K to 400K equivalent gates
- Requires different architecture
- FPGAs can be RAM-based or Flash-based
- RAM FPGAs must be programmed at power-on
- External memory needed for programming data
- May be dynamically reconfigured
- Flash FPGAs store program data in non-volatile
memory - Reprogramming is more difficult
- Holds configuration when power is off
12FPGA Structure
- Typical organization is 2-D array
- Configurable logic blocks (CLBs) contain
functional logic - Combinational functions plus FFs
- Complexity varies by device
- CLB interconnect is either local or long line
- CLBs have connections to local neighbors
- Horizontal and vertical channels use for long
distance - Channel intersections have switch matrix
- IOBs (I/O logic Blocks) connect to pins
- Usually have some additional C.L./FF in block
13FPGA Hardware Architecture
- IOBs Input/Output Logic Blocks
- Inputs and outputs to the circuit
- CLBs Configurable Logic Blocks
- Combinational logic Flip-Flops
- Interconnect
- PIP Programmable Interconnect Point
- PSM Programmable Switch Matrix
- Support for reprogramming
14FPGA Structure
IOB
IOB
IOB
IOB
Input/Output Block
CLB
CLB
CLB
CLB
Switch Matrix
SM
SM
SM
CLB
CLB
CLB
CLB
SM
SM
SM
CLB
CLB
CLB
CLB
Configurable Logic Block
SM
SM
SM
CLB
CLB
CLB
CLB
15A Simplified Logic Slice2 of these are in a CLB
16Combinational Logic on a Simplified Logic Slice
17Mapping a Function to a 4-input LUT
18Sequential Logic on a Simplified Logic Slice
19Combinational and Sequential Logic on a Slice
20Implement one bit of a register
- If L 1, Register should load new data
- Load data is D
- If L 0, register should shift in new data
- Shift data is S
- How to map to FPGA slice?
21Combinational and Sequential Logic on a Slice
22I/O BlockXilinx 4000 Family -- Simplified
23Programmable Interconnect Point (PIP)The basic
unit of programmable interconnect
24Xilinx Interconnect
- Programmable Interconnect
- Pass Transistors as switches
Usable by another net.
0
1
Stored bits determine switch state.
0
1
25Interconnect Switch Matrixes and Programmable
Interface Points
26Xilinx Architecture Summary
- CLBs sprinkled across chip in a regular array
- CLBs can implement any function of 4 input
variables - IOBs for interfacing to outside world
- Lots of different kinds of interconnect for
efficient design
27Xilinx Design Process
- Step1 Design
- Two design entry methods HDL(Verilog or VHDL) or
schematic drawings - Step 2 Synthesize to create Netlist
- Translates V, VHD, SCH files into an industry
standard format EDIF file - Step 3 Implement design (netlist)
- Translate, Map, Place Route
- Step 4 Configure FPGA
- Download BIT file into FPGA
HDL code
Schematic
Synthesize
Netlist
Implement
BIT File
28Truth Table for Full Adder
29Implement a Full Adder with a ROM
30Map a Full Adder to a PLA
31Map a Full Adder to a PAL
All possible connections are shown
32Map a Full Adder to an FPGA
33Design a 101 string recognizer
34Implement on an FPGA