- •INTRODUCTION TO ASICs
- •1.1 Types of ASICs
- •1.2 Design Flow
- •1.3 Case Study
- •1.4 Economics of ASICs
- •1.5 ASIC Cell Libraries
- •1.6 Summary
- •1.7 Problems
- •1.8 Bibliography
- •1.9 References
- •CMOS LOGIC
- •2.12 References
- •2.1 CMOS Transistors
- •2.2 The CMOS Process
- •2.3 CMOS Design Rules
- •2.4 Combinational Logic Cells
- •2.5 Sequential Logic Cells
- •2.6 Datapath Logic Cells
- •2.7 I/O Cells
- •2.8 Cell Compilers
- •2.9 Summary
- •2.10 Problems
- •2.11 Bibliography
- •ASIC LIBRARY DESIGN
- •3.1 Transistors as Resistors
- •3.3 Logical Effort
- •3.4 Library-Cell Design
- •3.5 Library Architecture
- •3.6 Gate-Array Design
- •3.7 Standard-Cell Design
- •3.8 Datapath-Cell Design
- •3.9 Summary
- •3.10 Problems
- •3.11 Bibliography
- •3.12 References
- •PROGRAMMABLE ASICs
- •4.1 The Antifuse
- •4.2 Static RAM
- •4.4 Practical Issues
- •4.5 Specifications
- •4.6 PREP Benchmarks
- •4.7 FPGA Economics
- •4.8 Summary
- •4.9 Problems
- •4.10 Bibliography
- •4.11 References
- •5.1 Actel ACT
- •5.2 Xilinx LCA
- •5.3 Altera FLEX
- •5.4 Altera MAX
- •5.5 Summary
- •5.6 Problems
- •5.7 Bibliography
- •5.8 References
- •6.1 DC Output
- •6.2 AC Output
- •6.3 DC Input
- •6.4 AC Input
- •6.5 Clock Input
- •6.6 Power Input
- •6.7 Xilinx I/O Block
- •6.8 Other I/O Cells
- •6.9 Summary
- •6.10 Problems
- •6.11 Bibliography
- •6.12 References
- •7.1 Actel ACT
- •7.2 Xilinx LCA
- •7.3 Xilinx EPLD
- •7.4 Altera MAX 5000 and 7000
- •7.5 Altera MAX 9000
- •7.6 Altera FLEX
- •7.7 Summary
- •7.8 Problems
- •7.9 Bibliography
- •7.10 References
- •8.1 Design Systems
- •8.2 Logic Synthesis
- •8.3 The Halfgate ASIC
- •8.3.4 Comparison
- •8.4 Summary
- •8.5 Problems
- •8.6 Bibliography
- •8.7 References
- •9.1 Schematic Entry
- •9.3 PLA Tools
- •9.4 EDIF
- •9.5 CFI Design Representation
- •9.6 Summary
- •9.7 Problems
- •9.8 Bibliography
- •9.9 References
- •VHDL
- •10.1 A Counter
- •10.2 A 4-bit Multiplier
- •10.3 Syntax and Semantics of VHDL
- •10.5 Entities and Architectures
- •10.6 Packages and Libraries
- •10.7 Interface Declarations
- •10.8 Type Declarations
- •10.9 Other Declarations
- •10.10 Sequential Statements
- •10.11 Operators
- •10.12 Arithmetic
- •10.13 Concurrent Statements
- •10.14 Execution
- •10.15 Configurations and Specifications
- •10.16 An Engine Controller
- •10.17 Summary
- •10.18 Problems
- •10.19 Bibliography
- •10.20 References
- •IEEE Language Reference Manual project
- •VERILOG HDL
- •11.1 A Counter
- •11.2 Basics of the Verilog Language
- •11.3 Operators
- •11.4 Hierarchy
- •11.5 Procedures and Assignments
- •11.6 Timing Controls and Delay
- •11.7 Tasks and Functions
- •11.8 Control Statements
- •11.9 Logic-Gate Modeling
- •11.10 Modeling Delay
- •11.11 Altering Parameters
- •11.12 A Viterbi Decoder
- •11.13 Other Verilog Features
- •11.14 Summary
- •11.15 Problems
- •11.16 Bibliography
- •11.17 References
- •12.2 A Comparator/MUX
- •12.3 Inside a Logic Synthesizer
- •12.6 VHDL and Logic Synthesis
- •12.8 Memory Synthesis
- •12.9 The Multiplier
- •12.10 The Engine Controller
- •12.13 Summary
- •12.14 Problems
- •12.15 Bibliography
- •12.16 References
- •SIMULATION
- •13.1 Types of Simulation
- •13.3 Logic Systems
- •13.4 How Logic Simulation
- •13.5 Cell Models
- •13.6 Delay Models
- •13.7 Static Timing Analysis
- •13.8 Formal Verification
- •13.9 Switch-Level Simulation
- •13.11 Summary
- •13.12 Problems
- •13.13 Bibliography
- •13.14 References
- •TEST
- •14.1 The Importance of Test
- •14.2 Boundary-Scan Test
- •14.3 Faults
- •14.4 Fault Simulation
- •14.6 Scan Test
- •14.7 Built-in Self-test
- •14.8 A Simple Test Example
- •14.10 Summary
- •14.11 Problems
- •14.12 Bibliography
- •14.13 References
- •15.1 Physical Design
- •15.3 System Partitioning
- •15.4 Estimating ASIC Size
- •15.5 Power Dissipation
- •15.6 FPGA Partitioning
- •15.7 Partitioning Methods
- •15.8 Summary
- •15.9 Problems
- •15.10 Bibliography
- •15.11 References
- •16.1 Floorplanning
- •16.2 Placement
- •16.3 Physical Design Flow
- •16.4 Information Formats
- •16.5 Summary
- •16.6 Problems
- •16.7 Bibliography
- •16.8 References
- •ROUTING
- •17.1 Global Routing
- •17.2 Detailed Routing
- •17.3 Special Routing
- •17.5 Summary
- •17.6 Problems
- •17.7 Bibliography
- •17.8 References
- •A.2 VHDL Syntax
- •A.3 BNF Index
- •A.5 References
- •B.2 Verilog HDL Syntax
- •B.3 BNF Index
- •B.4 Verilog HDL LRM
- •B.5 Bibliography
- •B.6 References
5.5 Summary
Table 5.4 is a look-up table to Tables 5.5 5.9 , which summarize the features of the
logic cells used by the various FPGA vendors.
TABLE 5.4 Logic cell tables. |
|
|
Programmable ASIC family |
Programmable ASIC family |
|
Actel (ACT 1) |
Actel (ACT 3) |
|
Xilinx (XC3000) |
||
Table 5.8 Xilinx LCA (XC5200) |
||
Table 5.5 |
||
Actel (ACT 2) |
Altera FLEX (8000/10k) |
|
Xilinx (XC4000) |
||
|
||
Altera MAX (EPM 5000) |
AMD MACH 5 |
|
Table 5.6 Xilinx EPLD (XC7200/7300) |
Table 5.9 Actel 3200DX |
|
QuickLogic (pASIC 1) |
Altera MAX (EPM 9000) |
|
Crosspoint (CP20K) |
|
|
Table 5.7 Altera MAX (EPM 7000) |
|
|
Atmel (AT6000) |
|
TABLE 5.5 Logic cells used by programmable ASICs.
Basic logic cell
Logic cell contents
Logic path delay
Actel |
Xilinx |
Actel ACT 2 |
Xilinx XC4000 |
|
ACT 1 |
XC3000 |
|||
|
|
|||
Logic |
CLB |
C-Module |
CLB |
|
(combinatorial-module) |
||||
module |
(Configurable |
(Configurable |
||
(LM) |
Logic Block) |
and S-Module |
Logic Block) |
|
|
|
(sequential module) |
|
Three
2:1MUXes 32-bit LUT, 2 D flip-flops, 9
plus OR
gate
MUXes
C-Module: 4:1 MUX,
2-input OR, 2-input
AND
S-Module: 4-input MUX, 2-input OR, latch or D flip-flop
32-bit LUT, 2 D flip-flops, 10 MUXes, including fast carry logic
E-suffix parts contain dual-port RAM.
|
Fixed with |
|
Fixed with |
Fixed |
ability to |
Fixed |
ability to bypass |
|
bypass FF |
|
FF |
|
Most |
|
|
|
3-input, |
|
|
Combinational |
many |
All 5-input |
Most 3- and 4-input |
logic |
4-input |
functions plus |
functions (total 766 |
functions |
functions |
2 D flip-flops |
macros) |
|
(total 702 |
|
|
|
macros) |
|
|
|
1 LM |
|
|
|
required |
2 D-flip-flops |
|
Flip-flop (FF) |
for latch, 2 per CLB, |
1 S-Module per D |
|
|
LMs |
latches can be |
flip-flop; some FFs |
implementation required |
built from |
require 2 modules. |
|
|
for |
pre-FF logic. |
|
|
flip-flops |
|
|
Two 4-input LUTs plus combiner with ninth input
CLB as 32-bit SRAM (except D-suffix parts)
2 D flip-flops per CLB
|
|
|
64 |
|
|
64 (XC4002A) |
|
|
|
|
|
|
|
|
LMs: |
|
(XC3020/A/L, |
|
100 |
|
|
|
XC3120/A) |
|
|
||
|
|
|
|
(XC4003/A/E/H) |
||
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
100 |
|
A1225: |
144 (XC4004A) |
|
A1010: |
(XC3030/A/L, |
||||
|
451 = 231 S + 220 C |
|
||||
|
XC3130/A) |
|
196 |
|||
|
352 |
(8R |
|
|||
|
|
|
|
(XC4005/A/E/H) |
||
|
¥ 44C) |
144 |
|
|
||
|
|
|
|
|||
|
|
|
|
|
|
|
Basic logic |
= 295 + |
(XC3042/A/L, A1240: |
256 (XC4006/E) |
|||
cells |
57 I/O |
XC3142/A) |
|
|
324 (XC4008/E) |
|
|
|
684 = 348 S + 336 C |
||||
in each chip |
|
|
|
|
||
|
|
224 |
|
400 |
||
|
|
|
|
|
||
|
|
|
(XC3064/A/L, |
|
||
|
A1020: |
|
(XC4010/D/E) |
|||
|
XC3164/A) |
|
|
|||
|
|
A1280: |
|
|||
|
616 |
(14 |
320 |
|
576 |
|
|
R ¥ 44C) |
|
|
|||
|
|
1232 = 624 S + 608 C (XC4013/D/E) |
||||
|
(XC3090/A/L, |
|||||
|
|
|
||||
|
= 547 + |
|
|
|||
|
XC3190/A) |
|
|
784 (XC4020/E) |
||
|
69 I/O |
|
|
|
||
|
484 |
|
|
1024 |
||
|
|
|
|
|
||
|
|
|
(XC3195/A) |
|
|
|
|
|
|
|
|
(XC4025/E) |
|
|
|
|
|
|
|
|
TABLE 5.6 Logic cells used by programmable ASICs. |
|
|||||
|
Altera MAX 5000 |
Xilinx XC7200/7300 |
QuickLogic |
|||
|
pASIC 1 |
|||||
|
|
|
|
|
|
|
|
16 macrocells in a LAB |
|
|
|
||
|
(Logic Array Block) |
9 macrocells within a |
|
|||
Basic |
except EPM5032, |
FB (Functional Block), Logic Cell (LC) |
||||
logic cell |
which has 32 |
fast FBs (FFBs) omit |
|
|||
|
macrocells in a single |
ALU |
|
|||
|
LAB |
|
|
|
|
Logic cell contents
Macrocell: 64106-wide AND, 3-wide OR array, 1 flip-flop, 2 MUXes, programmable inversion. 32 64 shared logic expander OR terms.
LAB looks like a 32V16 PLD.
Macrocell: 21-wide AND, 16-wide OR array, 1 flip-flop, 1ALU
FB looks like 21V9 PLD.
Four 2-input and two 6-input AND, three 2:1 MUXes and one D flip-flop
Logic path |
Fixed (unless using |
Fixed |
||
delay |
shared logic expanders) |
|||
Combinational |
Wide input functions |
Wide input functions |
||
logic functions |
with ability to share |
with added 2-input |
||
per logic cell |
product terms |
ALU |
||
Flip-flop (FF) |
1 D flip-flop or latch |
|
|
|
per macrocell. More |
1 D flip-flop or latch |
|||
|
||||
implementation |
can be constructed in |
per macrocell |
||
|
arrays. |
|
|
|
|
|
FBs: |
||
|
LABs: |
4 |
(XC7236A) |
|
|
8 |
(XC7272A) |
||
|
32 (EPM5032) |
|||
|
2 |
(XC7318) |
||
|
64 (EPM5064) |
|||
Basic logic cells |
4 |
(XC7336) |
||
|
||||
in each chip |
128 (EPM5128) |
|||
|
|
|||
|
6 |
(XC7354) |
||
|
128 (EPM5130) |
|||
|
8 |
(XC7372) |
||
|
192 (EPM5192) |
|||
|
12 (XC73108) |
|||
|
|
|||
|
|
16 (XC73144) |
TABLE 5.7 Logic cells used by programmable ASICs.
Fixed
All 3-input functions
1 D flip-flop per LC. LCs for other flip-flops not specified.
48 (QL6X8)
96 (QL8X12)
192 (QL12X16)
384 (QL16X24)
Basic logic cell
Crosspoint CP20K |
Altera MAX 7k |
Atmel AT6000 |
Transistor-pair tile |
16 macrocells in a |
|
(TPT), RAM-logic |
LAB (Logic Array |
Cell |
Tile (RLT) |
Block) |
|
Logic cell contents
Logic path delay
Combinational functions
per logic cell
Flip-flop (FF)
implementation
Basic logic cells in each chip
TPT: 2 transistors (0.5 gate). RLT: 3 inverters, two 3-input NANDs, 2-input NAND, 2-input AND.
Variable
TPT is smaller than a gate, approx. 2 TPTs = 1 gate.
D flip-flop requires 2 RLTs and 9 TPTs
TPTs:
1760 (20220)
15,876 (22000)
RLTs:
440 (20220)
3969 (22000)
Macrocell: wide AND, 5-wide OR array, 1 flip-flop, 3 MUXes, programmable inversion. 16 shared logic expander OR terms, plus parallel logic expander.
LAB looks like a 36V16 PLD. Fixed (unless using shared logic expanders)
Wide input functions with ability to share product terms
1 D flip-flop or latch per macrocell. More can be constructed in arrays.
Macrocells:
32 (EPM7032/V)
64 (EPM7064)
96 (EPM7096)
128 (EPM70128E)
160 (EPM70160E)
192 (EPM70192E)
256 (EPM70256E)
Two 5:1 MUXes, two 4:1 MUXes, 3:1 MUX, three 2:1 MUXes, 6 pass gates, four 2-input gates, 1 D flip-flop
Variable
1-, 2-, and 3-input combinational configurations:
44 logical states and
72 physical states
1 D flip-flop per cell
1024 (AT6002)
1600 (AT6003)
3136 (AT6005)
6400(AT6010)
TABLE 5.8 Logic cells used by programmable ASICs.
Actel ACT 3 Xilinx XC5200
Altera FLEX 8000/10k
2 types of Logic
Basic logic cell
Logic cell contents
Module:
C-Module and
S-Module (similar but not identical to ACT 2) C-Module: 4:1 MUX, 2-input OR, 2-input AND.
(LUT = look-up table) S-Module: 4:1 MUX, 2-input OR, latch or D flip-flop.
4 Logic Cells (LC)
in a CLB
(Configurable Logic
Block)
LC has 16-bit LUT, 1 flip-flop (or latch), 4 MUXes
8 Logic Elements
(LE) in a Logic Array
Block (LAB )
16-bit LUT,
1 programmable flip-flop or latch, MUX logic for control, carry logic, cascade logic
Logic path delay |
Fixed |
Combinational
Most 3- and
functions
4-input
per logic cell
functions (total 766 macros)
Fixed
One 4-input LUT per LC may be combined with adjacent LC to form 5-input LUT
Fixed with ability to bypass FF
4-input LUT may be cascaded with adjacent LE
Flip-flop (FF)
implementation
Basic logic cells in each chip
1 D flip-flop (or |
|
latch) per |
1 D flip-flop (or |
S-Module; some latch) per LC (4 per FFs require 2 CLB)
modules.
A1415: 104 S + |
|
96 C |
|
A1425: 160 S + 64 CLB (XC5202) |
|
150 C |
120 CLB (XC5204) |
|
|
A1440: 288 S + |
196 CLB (XC5206) |
276 C |
|
A1460: 432 S + 324 CLB (XC5210) |
|
416 C |
484 CLB (XC5215) |
A14100: 697 S |
|
1 D flip-flop (or latch) per LE
LEs:
208 (EPF8282/V/A /AV)
336 (EPF8452/A)
504 (EPF8636A)
672 (EPF8820/A)
1008 (EPF81188/A)
1296 (EPF81500/A)
576 (EPF10K10)
1152 (EPF10K20)
1728 (EPF10K30)
TABLE 5.9
Basic logic cell
Logic cell contents
+ 680 C
2304 (EPF10K40)
2880 (EPF10K50)
3744 (EPF10K70)
4992 (EPF10K100)
Logic cells used by programmable ASICs.
AMD MACH 5
4 PAL Blocks in a Segment, 16 macrocells in a PAL Block
20-bit to 32-bit wide OR array, switching logic, XOR gate, programmable flip-flop
Actel 3200DX Based on ACT 2, plus D-module (decode) and dual-port SRAM C-Module: 4:1 MUX, 2-input OR, 2-input AND
S-Module: 4-input MUX, 2-input OR, latch or D flip-flop
D-module:
7-input AND,
2-input XOR
Altera MAX 9000
16 macrocells in a LAB (Logic Array Block)
Macrocell: 114-wide AND, 5-wide OR array, 1 flip-flop, 5 MUXes, programmable inversion. 16 shared logic expander OR terms, plus parallel logic expander.
LAB looks like a 49V16 PLD.
Logic path delay
Combinational functions per logic cell
Flip-flop (FF)
implementation
Fixed
Wide input functions
1 D flip-flop or latch per macrocell
Fixed
Most 3- and 4-input functions (total 766 macros)
1 D flip-flop or latch per S-Module; some FFs require 2 modules.
Fixed (unless using expanders)
Wide input functions with ability to share product terms
1 D flip-flop or latch per macrocell. More can be constructed in arrays.
128 (M5-128)
192 (M5-192)
Basic logic cells
256 (M5-256)
in each chip
320 (M5-320)
384 (M5-384)
512 (M5-512)
The key points in this chapter are:
A3265DX: 510 S + 475 C + 20 D
A32100DX: 700 S + 662 C + 20 D + 2 kSRAM
A32140D): 954 S + 912 C + 24 D
A32200DX:
1 230 S + 1 184 C + 24 D + 2.5 kSRAM
A32300DX:
1 888 S + 1 833 C + 28 D + 3kSRAM
A32400DX:
2 526 S + 2 466 C + 28 D + 4 kSRAM
Macrocells:
320 (EPM9320) 4
¥5 LABs
400 (EPM9400) 5
¥5 LABs
480 (EPM9480) 6
¥5 LABs
560 (EPM9560) 7
¥5 LABs
●The use of multiplexers, look-up tables, and programmable logic arrays
●The difference between fine-grain and coarse-grain FPGA architectures
●Worst-case timing design
●Flip-flop timing
●Timing models
●Components of power dissipation in programmable ASICs
●Deterministic and nondeterministic FPGA architectures
Next, in Chapter 6, we shall examine the I/O cells used by the various programmable ASIC families.