modern-cpp-programming-cookbook-2nd
2023-03-11 16:50:38 5.4MB c++ modern cookbook
1
In Modern C++ Design, Andrei Alexandrescu opens new vistas for C++ programmers. Displaying extraordinary creativity and virtuosity, Alexandrescu offers a cutting-edge approach to software design that unites design patterns, generic programming, and C++, enabling programmers to achieve expressive, flexible, and highly reusable code. The book introduces the concept of generic components, reusable design templates that enable an easier and more seamless transition from design to application code, generate code that better expresses the original design intention, and support the reuse of design structures with minimal recoding. The author then shows how to apply this approach to recurring, real-world issues that C++ programmers face in their day-to-day activity. All code is available on the Web, along with Alexandrescu's downloadable Loki C++ library, which provides powerful out-of-the-box functionality for virtually any C++ project. For experienced C++ programmers who have at least some familiarity with the Standard Template Library (STL).
2023-03-09 15:21:48 14.76MB Modern C++ Design 中文版
1
1 Introduction and Overview Thucydides Xanthopoulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 The Clock Design Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Some Subjective Milestones in the History of Microprocessor Clocking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.1 Integrating the PLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.2 Clock Distribution Moves to the Forefront: The Dawn of the GHz Race . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.3 Delay Lock Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2.4 Exploiting Inductance for Oscillation and Distribution . . . . . . . . . 5 1.2.5 Variable Frequency (and Voltage) . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2.6 Frequency Increase (or Supply Lowering) Through Resiliency . . . 6 1.3 Overview of this Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2 Modern Clock Distribution Systems Simon Tam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2 Definitions and Design Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2.1 Setup and Hold Timing Constraints . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2.2 Clock Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Static and Dynamic Clock Uncertainties . . . . . . . . . . . . . . . . . . . . . 14 Distribution Delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Duty Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2.3 Clock Distribution Power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.3 Clock Distribution Topologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.3.1 Unconstrained Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.3.2 Balanced Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.3.3 Central Spine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.3.4 Spines with Matched Branches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.3.5 Grid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.3.6 Hybrid Distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.4 Microprocessor Clock Distributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.5 Clock Design for Test and Manufacturing . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.5.1 Global and Local Clock Compensations. . . . . . . . . . . . . . . . . . . . . . 36 2.5.2 Global Clock Compensation Architecture . . . . . . . . . . . . . . . . . . . . 37 2.5.3 Local Clock Compensation Architecture . . . . . . . . . . . . . . . . . . . . . 43 2.6 Elements of Clock Distribution Circuits . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 2.6.1 Clock Duty Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 2.6.2 Power Supply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 2.7 Clock DFX Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.7.1 Optical Probing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.7.2 On-Die Measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 2.7.3 Locating Critical Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 2.7.4 On-Die-Clock Shrink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 2.8 Multiclock Domain Distributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 2.8.1 Multicore Processor Clock Distribution . . . . . . . . . . . . . . . . . . . . . . 55 2.9 Future Directions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 2.10 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 3 Clocked Elements James Warnock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 3.2 CSE Design Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 3.2.1 Latency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 3.2.2 Hold Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.2.3 Power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 3.2.4 Scan Design for CSEs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 3.3 Static Latch Designs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 3.3.1 Master–Slave Latches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 3.3.2 Two-Phase Level-Sensitive Latches . . . . . . . . . . . . . . . . . . . . . . . . . 76 3.3.3 Pulsed-Clock Static Level-Sensitive Latches . . . . . . . . . . . . . . . . . . 78 3.4 Flip-Flop Designs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 3.4.1 Sense-Amp Style Flip-Flop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 3.4.2 Hybrid Latch Flip-Flop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 3.4.3 Semi-Dynamic Flip-Flop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 3.5 Test and Debug Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 3.6 CSE Design for Variability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 3.6.1 Variability-Induced Frequency Degradation . . . . . . . . . . . . . . . . . . . 88 3.6.2 Variability-Induced Functional Failures . . . . . . . . . . . . . . . . . . . . . . 89 3.7 Reliability Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 3.7.1 Soft Error Rate Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 3.7.2 End of Life Considerations for CSE Design . . . . . . . . . . . . . . . . . . 93 3.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 4 Exploiting Inductance Nestoras Tzartzanis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 4.2 Monolithic Inductance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 4.2.1 Spiral Inductors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 4.2.2 Transmission Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 4.3 Inductor-Based Clock Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 4.3.1 Differential LC VCO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 4.3.2 Quadrature LC VCO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 4.3.3 Distributed VCO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 4.3.4 Poly-Phase Circularly Distributed VCO . . . . . . . . . . . . . . . . . . . . . . 121 4.4 Clock Distribution Using Inductance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 4.4.1 Rotary Traveling-Wave Oscillator Arrays . . . . . . . . . . . . . . . . . . . . 123 4.4.2 Standing Wave Oscillator and Grid . . . . . . . . . . . . . . . . . . . . . . . . . . 124 4.4.3 Inductor-Based Resonant Global Clock Distribution . . . . . . . . . . . 128 4.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 5 Phase Noise and Jitter Scott Meninger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 5.2 Timing Error in the Time Domain: Jitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 5.2.1 Phase Jitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 5.2.2 Period Jitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 5.2.3 Cycle-to-Cycle Jitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 5.3 Timing Error in the Frequency Domain: Phase Noise . . . . . . . . . . . . . . . . . 142 5.3.1 Relationship Between Phase Noise and Jitter . . . . . . . . . . . . . . . . . 143 5.4 Frequency Domain Modeling of PLLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 5.4.1 PLL Phase Noise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 5.4.2 PLL Intrinsic Noise: VCO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 5.4.3 PLL Intrinsic Noise: Feedback Divider . . . . . . . . . . . . . . . . . . . . . . 146 5.4.4 PLL Intrinsic Noise: Phase Detector . . . . . . . . . . . . . . . . . . . . . . . . . 146 5.4.5 PLL Intrinsic Noise: Charge Pump . . . . . . . . . . . . . . . . . . . . . . . . . . 148 5.4.6 PLL Intrinsic Noise: Loop Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 5.4.7 PLL Extrinsic Noise: Reference Clock . . . . . . . . . . . . . . . . . . . . . . . 151 5.4.8 PLL Extrinsic Noise: Supply Noise . . . . . . . . . . . . . . . . . . . . . . . . . 152 5.4.9 PLL Extrinsic Noise: Buffer Delay and Noise . . . . . . . . . . . . . . . . . 152 5.4.10 PLL Phase Noise Filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 Some Intuition on Reference Clock Phase Noise (or Jitter) Filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 5.4.11 Phase Noise to Period Jitter and Phase Noise to C2C Jitter . . . . . . 156 5.4.12 Phase, Period, and C2C Jitter Examples . . . . . . . . . . . . . . . . . . . . . . 159 Phase Jitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 Period Jitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 C2C Jitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 5.5 Reference Clock Jitter Transfer Example: Microprocessor . . . . . . . . . . . . . 161 5.5.1 A Proposed Core Clock Methodology Using Mean Time Between Failures (MTBF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 5.6 Non-Random Jitter Distributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 5.6.1 Reference Spurs in PLLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 5.6.2 Duty Cycle Distortion (DCD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 5.6.3 Power Supply Noise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 5.6.4 Inter-Symbol Interference (ISI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 5.6.5 Including Deterministic Jitter in Analysis . . . . . . . . . . . . . . . . . . . . 172 5.7 Reference Clock Jitter Transfer Example: Serial Link . . . . . . . . . . . . . . . . . 173 5.7.1 Serial Link Budgeting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 5.7.2 Bit Error Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 5.7.3 Serial Link Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 5.8 Delay Locked Loops (DLLs) and Jitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 5.9 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 6 Digital Delay Lock Techniques Thucydides Xanthopoulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 6.2 What Constitutes a Digital Delay Locked Loop? . . . . . . . . . . . . . . . . . . . . . 183 6.3 An Overview of DLL Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 6.4 Phase Detectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 6.4.1 Metastability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 An Example of Phase Detector Failure Calculation . . . . . . . . . . . . 201 6.5 DCDL Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 6.5.1 Gate-Delay DCDLs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 Synchronous vs. Asynchronous Operation in Coarse DCDLs . . . . 207 6.5.2 Subgate-Delay DCDLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 6.5.3 Resolution vs. Dynamic Range in DCDLs . . . . . . . . . . . . . . . . . . . . 211 6.6 Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 6.6.1 Sensitivity to Initial Phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 6.6.2 Dynamic Range Increase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 6.6.3 Stability and Bandwidth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 6.6.4 Lock Acquisition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 6.7 Putting it All Together . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 6.8 Noise Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 6.9 Advanced Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 6.9.1 Duty Cycle Correction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 6.9.2 Clock Multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 6.9.3 Infinite Dynamic Range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 6.9.4 Clock-Data Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 6.9.5 On-Chip Temperature Sensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 6.10 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 7 Clocking and Variation James Tschanz. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 7.2 Variation Reduction Through Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 7.2.1 Skew and Jitter-Tolerant Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 7.2.2 Time Borrowing for Datapath Variation Reduction . . . . . . . . . . . . . 246 7.3 Variation Reduction Through Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 7.3.1 Manufacturing Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 7.3.2 Active Clock Deskew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 7.3.3 Dynamic Frequency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 7.4 Variation Reduction Through Resiliency . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 7.4.1 Timing Error Detection – Error Detection Sequentials . . . . . . . . . . 262 7.4.2 Timing Error Correction and Recovery . . . . . . . . . . . . . . . . . . . . . . 266 7.4.3 Results: Guardband Reduction Through Resiliency . . . . . . . . . . . . 268 7.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 8 Physical Design Considerations Georgios Konstadinidis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 8.2 Clock Skew Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 8.2.1 Setup Time Skew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 8.2.2 Hold Time Skew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 8.2.3 Half-Cycle Setup Skew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 8.2.4 Multiple-Cycle Setup Skew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 8.2.5 Grid or H-Tree? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 8.3 Transistor Variation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 8.3.1 Channel Length Variation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 Photolithography Challenges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 Poly Flaring and Poly Pullback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 Line Edge Roughness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 Channel Length Variation Control. . . . . . . . . . . . . . . . . . . . . . . . . . . 288 8.3.2 Dopant Fluctuation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 8.3.3 Well Proximity Effect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 8.3.4 Strain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 Stress Memorization and Tensile Stress Liner . . . . . . . . . . . . . . . . . 293 SiGe and Compressive Stress Liner . . . . . . . . . . . . . . . . . . . . . . . . . 293 Shallow Trench Isolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 New Materials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 8.3.5 Long Term Effects on Variation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 NBTI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 Hot Carrier Injection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 8.4 Voltage Variation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 8.5 Temperature Variation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 8.6 Interconnect Variation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 8.7 Conclusion: Clock Design and Analysis Guidelines: Putting All Together . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 8.7.1 Clock Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 8.7.2 Minimizing Variation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
2023-03-07 14:53:36 12.02MB clock VLSI ASIC
1
Modern Control System(8th) Matlab M-file现代控制系统第八版matlab M-file
2023-03-02 22:04:12 30KB Modern Control System Matlab
1
Effective Modern C++.mobi 必读书籍。 Effective Modern C++, C++11, 14必读。Kindle版 C++
2023-03-02 17:29:34 1.14MB C++ 必读书籍 Kindle Effect
1
现代C++编程的指南,涵盖了C++11, C++14和C++17,C++程序员要跟上时代的脚本
2023-02-26 13:41:37 6.39MB C++
1
J.J.Sakurai的经典量子力学教程
2023-02-22 19:06:48 46.89MB J.J.Sakurai
1
Richard C.Dorf & Robert H.Bishop 编写,Modern Control Systems 12edition
2023-02-07 02:49:55 71.63MB 控制系统
1
本书提出了泛型组件的概念,这是一种可重用的设计模板,可用来产生规范的C++代码。泛型组件还提供了从设计到代码的无缝转换,生成更能表达设计者最初意图的代码,并支持设计模式的重用——只需改动少量的代码。本书是一部重要的著作,全面地展示了泛型模式或模式模板——一各在C++中创建可扩展设计的功能强大的新方法。这种方法结合了模板与模式,也许很多人觉得不可能,但这却是事实!如果你的工作涉及C++设计和编程,那么你不应该错过本书。
2023-01-30 20:51:50 12.94MB c++ ; template
1
data, Database management, Data warehousing Database design
2023-01-05 09:03:10 21.14MB Modern Database Management
1