- •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
7.2 Xilinx LCA
Figure 7.5 shows the hierarchical Xilinx LCA interconnect architecture.
●The vertical lines and horizontal lines run between CLBs.
●The general-purpose interconnect joins switch boxes (also known as magic boxes or switching matrices).
●The long lines run across the entire chip. It is possible to form internal buses using long lines and the three-state buffers that are next to each CLB.
●The direct connections (not used on the XC4000) bypass the switch matrices and directly connect adjacent CLBs.
●The Programmable Interconnection Points ( PIP s) are programmable pass transistors that connect the CLB inputs and outputs to the routing network.
●The bidirectional ( BIDI ) interconnect buffers restore the logic level and logic strength on long interconnect paths.
FIGURE 7.5 Xilinx LCA interconnect. (a) The LCA architecture (notice the matrix element size is larger than a CLB). (b) A simplified representation of the interconnect resources. Each of the lines is a bus.
Table 7.3 shows the interconnect data for an XC3020, a typical Xilinx LCA FPGA, that uses two-level metal interconnect. Figure 7.6 shows the switching matrix. Programming a switch matrix allows a number of different connections between the
general-purpose interconnect.
TABLE 7.3 XC3000 interconnect parameters.
Parameter |
XC3020 |
Technology |
1.0 m m, l = 0.5 m m |
Die height |
220 mil |
Die width |
180 mil |
Die area |
39,600 mil 2 = 102 M l 2 |
CLB matrix height (Y) |
480 m m = 960 l |
CLB matrix width (X) |
370 m m = 740 l |
CLB matrix area (X ¥ Y) |
17,600 m m 2 = 710 k l 2 |
Matrix transistor resistance, R P1 |
0.5 1k W |
Matrix transistor parasitic capacitance, C P1 |
0.01 0.02 pF |
PIP transistor resistance, R P2 |
0.5 1k W |
PIP transistor parasitic capacitance, C P2 |
0.01 0.02 pF |
Single-length line (X, Y) |
370 m m, 480 m m |
Single-length line capacitance: C LX , C LY |
0.075 pF, 0.1 pF |
Horizontal Longline (8X) |
8 cols. = 2960 m m |
Horizontal Longline metal capacitance, C LL 0.6 pF
In Figure 7.6 (d), (g), and (h):
FIGURE 7.6 Components of interconnect delay in a Xilinx LCA array. (a) A portion of the interconnect around the CLBs. (b) A switching matrix. (c) A detailed view inside the switching matrix showing the pass-transistor arrangement. (d) The equivalent circuit for the connection between nets 6 and 20 using the matrix. (e) A view of the interconnect at a Programmable Interconnection Point (PIP). (f) and
(g)The equivalent schematic of a PIP connection. (h) The complete RC delay path.
●C1 = 3CP1 + 3CP2 + 0. 5C LX is the parasitic capacitance due to the switch matrix and PIPs (F4, C4, G4) for CLB1, and half of the line capacitance for the double-length line adjacent to CLB1.
●C P1 and R P1 are the switching-matrix parasitic capacitance and resistance.
●C P2 and R P2 are the parasitic capacitance and resistance for the PIP connecting YQ of CLB1 and F4 of CLB3.
●C2 = 0. 5CLX + CLX accounts for half of the line adjacent to CLB1 and the line adjacent to CLB2.
●C 3 = 0. 5C LX accounts for half of the line adjacent to CLB3.
●C 4 = 0. 5C LX + 3C P2 + C LX + 3C P1 accounts for half of the line adjacent to CLB3, the PIPs of CLB3 (C4, G4, YQ), and the rest of the line and switch matrix capacitance following CLB3.
We can determine Elmore s time constant for the connection shown in Figure 7.6 as
tD = R P2 (C P2 + C 2 + 3C P1 ) + (R P2 + R P1 )(3C P1 + C 3 + C P2 ) (7.9)
+(2R P2 + R P1 )(C P2 + C 4 ) .
If RP1 = RP2 , and CP1 = CP2 , then
t D = (15 + 21)R P C P + (1.5 + 1 + 4.5)R P C LX . (7.10)
We need to know the pass-transistor resistance RP . For example, suppose RP = 1k W . If k ' n = 50 m AV 2 , then (with Vt n = 0.65 V and V DD = 3.3 V)
1 = = 7.5 . (7.11)
(50 ¥ 10 6 )(1 ¥ 10 3 )(3.3 0.65)
If L = 1 m m, both source and drain areas are 7.5 m m long and approximately 3 m m wide (determined by diffusion overlap of contact, contact width, and contact-to-gate spacing, rules 6.1a + 6.2a + 6.4a = 5.5 l in Table 2.7 ). Both drain and source areas are
thus 23 m m 2 and the sidewall perimeters are 14 m m (excluding the sidewall facing the channel). If we have a diffusion capacitance of 140 aF m m 2 (area) and 500 aF m m 1 (perimeter), typical values for a 1.0 m m process, the parasitic source and drain capacitance is
CP = (140 ¥ 10 18 )(23) + (500 ¥ 10 18 )(14) (7.12)
=1.022 ¥ 10 14 F .
If we assume CP = 0.01 pF and CLX = 0.075 pF ( Table 7.3 ),
tD = (36)(1)(0.01) + (7)(1)(0.075) (7.13)
=0.885 ns .
A delay of approximately 1 ns agrees with the typical values from the XACT delay calculator and is about the fastest connection we can make between two CLBs.
FIGURE 7.7 The Xilinx EPLD UIM (Universal Interconnection Module). (a) A simplified block diagram of the UIM. The UIM bus width, n , varies from 68 (XC7236) to 198 (XC73108). (b) The UIM is actually a large programmable AND array. (c) The parasitic capacitance of the EPROM cell.