|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
Title: | Principles of VLSI Rtl Design a Practical Guide | Publisher: | Springer [/td] | Author: | Sanjay Churiwala, Sapan Garg | Edition: | Hardcover Edition. | Language: | English | ISBN: | 1441992952 | EAN: | 9781441992956 | No. of Pages: | 192 | Publish Date: | 2011-4-19 | Binding: | Hardcover |
This book examines the impact of register transfer level (RTL) design choices that may result in issues of testability, data synchronization across clock domains, synthesizability, power consumption and routability, that appear later in the product lifecycle.
Since register transfer level (RTL) design is less about being a bright engineer, and more about knowing the downstream implications of your work, this book explains the impact of design decisions taken that may give rise later in the product lifecycle to issues related to testability, data synchronization across clock domains, synthesizability, power consumption, routability, etc., all which are a function of the way the RTL was originally written. Readers will benefit from a highly practical approach to the fundamentals of these topics, and will be given clear guidance regarding necessary safeguards to observe during RTL design.
Contents
1 Introduction to VLSI RTL Designs . . . . . . . . . . . . . . . . . . . 1
1.1 A Brief Background . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Hardware Description Languages (HDL) . . . . . . . . . . . . . 2
1.3 RTLDesigns . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 DesignGoals andConstraints . . . . . . . . . . . . . . . . . . . 5
1.5 RTLBasedChipDesignFlow . . . . . . . . . . . . . . . . . . . 6
1.6 Design Challenges . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.6.1 Simulation Friendly RTL . . . . . . . . . . . . . . . . . 8
1.6.2 Timing-Analysis Friendly RTL . . . . . . . . . . . . . . 9
1.6.3 Clock-Domain-Crossing (CDC) Friendly RTL . . . . . 13
1.6.4 Power Friendly RTL . . . . . . . . . . . . . . . . . . . 14
1.6.5 DFT Friendly RTL . . . . . . . . . . . . . . . . . . . . 16
1.6.6 Timing-Exceptions Friendly RTL . . . . . . . . . . . . 17
1.6.7 Congestion Conscious RTL . . . . . . . . . . . . . . . 19
1.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2 Ensuring RTL Intent . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1 Need for Unambiguous Simulation . . . . . . . . . . . . . . . . 21
2.2 SimulationRace . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.1 Read-Write Race . . . . . . . . . . . . . . . . . . . . . 22
2.2.2 Write-WriteRace . . . . . . . . . . . . . . . . . . . . . 24
2.2.3 Always-Initial Race . . . . . . . . . . . . . . . . . . . 26
2.2.4 Race Due to Inter-leaving of Assign
with Procedural Block . . . . . . . . . . . . . . . . . . 27
2.2.5 AvoidingSimulationRace . . . . . . . . . . . . . . . . 28
2.3 Feedthroughs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.1 Feedthroughs Because of Races . . . . . . . . . . . . . 29
2.3.2 Feedthroughs Without Simulation Race . . . . . . . . . 30
2.3.3 VHDL Feedthroughs . . . . . . . . . . . . . . . . . . . 30
2.4 Simulation-Synthesis Mismatch . . . . . . . . . . . . . . . . . . 32
2.5 Latch Inference . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.6 Synchronous Reset . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.7 Limitations ofSimulation . . . . . . . . . . . . . . . . . . . . . 40
xi
xii Contents
3 Timing Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.1 Scope of STA . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.1.1 SimulationLimitations intheContext ofTiming . . . . 44
3.1.2 Exhaustiveness of STA . . . . . . . . . . . . . . . . . . 45
3.2 TimingParameters forDigitalLogic . . . . . . . . . . . . . . . 45
3.2.1 DelayParameters . . . . . . . . . . . . . . . . . . . . . 45
3.2.2 SlewParameters forDigitalLogic . . . . . . . . . . . . 47
3.2.3 Delay andSlewMeasurement . . . . . . . . . . . . . . 48
3.3 FactorsAffectingDelay andSlew . . . . . . . . . . . . . . . . . 49
3.3.1 DiscreteFactors . . . . . . . . . . . . . . . . . . . . . 49
3.3.2 Continuous Factors . . . . . . . . . . . . . . . . . . . . 53
3.4 Sequential Arcs . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.4.1 PulseWidth . . . . . . . . . . . . . . . . . . . . . . . . 58
3.4.2 Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.4.3 Hold . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.4.4 Recovery . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.4.5 Removal . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.5 Understanding Setup and Hold . . . . . . . . . . . . . . . . . . 60
3.5.1 Understanding Setup . . . . . . . . . . . . . . . . . . . 61
3.5.2 Understanding Hold . . . . . . . . . . . . . . . . . . . 62
3.6 Negative Timing Check . . . . . . . . . . . . . . . . . . . . . . 62
3.7 BasicAnalysis . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.8 Uncertainty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.9 STAContrastedwithSimulation . . . . . . . . . . . . . . . . . 67
3.9.1 Setup Violation in STA, No Violation in Simulation . . . 68
3.9.2 Setup Violation in STA, Hold Violation in Simulation . . 68
3.9.3 Hold Violation in STA, Setup Violation in Simulation . . 68
3.10 Accurate Timing Simulation . . . . . . . . . . . . . . . . . . . . 69
3.11 Limitations ofStaticTimingAnalysis . . . . . . . . . . . . . . . 70
3.12 SSTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.13 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4 Clock Domain Crossing (CDC) . . . . . . . . . . . . . . . . . . . . . 73
4.1 ClockDomain . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.2 Metastability Due to CDC . . . . . . . . . . . . . . . . . . . . . 74
4.2.1 Understanding Metastability . . . . . . . . . . . . . . . 74
4.2.2 Problems Due to Metastability . . . . . . . . . . . . . . 75
4.3 Synchronizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.3.1 Double Flop Synchronizer . . . . . . . . . . . . . . . . 76
4.3.2 MeanTimeBetweenFailures (MTBF) . . . . . . . . . . 77
4.3.3 Meta Hardened Flops . . . . . . . . . . . . . . . . . . . 78
4.4 Bus Synchronization . . . . . . . . . . . . . . . . . . . . . . . . 78
4.4.1 Challenge with Bus Synchronization . . . . . . . . . . . 78
4.4.2 Grey Encoding . . . . . . . . . . . . . . . . . . . . . . 79
4.4.3 Enable Synchronization Method . . . . . . . . . . . . . 79
4.4.4 Cost of Enable Synchronization . . . . . . . . . . . . . 80
Contents xiii
4.5 DataLoss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.5.1 SlowtoFastCrossing . . . . . . . . . . . . . . . . . . 81
4.5.2 Fast toSlowCrossing . . . . . . . . . . . . . . . . . . 82
4.6 Preventing Data Loss Through FIFO . . . . . . . . . . . . . . . 83
4.6.1 FIFOBasics . . . . . . . . . . . . . . . . . . . . . . . 83
4.6.2 Full and Empty Generation . . . . . . . . . . . . . . . . 84
4.6.3 FIFOLimitations . . . . . . . . . . . . . . . . . . . . . 85
4.7 Other Reliability Concerns . . . . . . . . . . . . . . . . . . . . 85
4.8 CatchingCDC . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.8.1 UsingSTA . . . . . . . . . . . . . . . . . . . . . . . . 87
4.8.2 UsingSimulation . . . . . . . . . . . . . . . . . . . . . 87
4.8.3 Using Rule Checkers . . . . . . . . . . . . . . . . . . . 88
4.9 DomainRevisited . . . . . . . . . . . . . . . . . . . . . . . . . 88
5 Power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.1 Importance of Low Power . . . . . . . . . . . . . . . . . . . . . 91
5.1.1 IncreasingDeviceDensity . . . . . . . . . . . . . . . . 91
5.1.2 Increasing Speed . . . . . . . . . . . . . . . . . . . . . 91
5.1.3 BatteryLife . . . . . . . . . . . . . . . . . . . . . . . . 92
5.1.4 Green Concerns . . . . . . . . . . . . . . . . . . . . . . 92
5.1.5 User Experience . . . . . . . . . . . . . . . . . . . . . 92
5.2 Causes ofPowerDissipation . . . . . . . . . . . . . . . . . . . 92
5.3 FactorsAffectingPower . . . . . . . . . . . . . . . . . . . . . . 95
5.3.1 SwitchingActivity . . . . . . . . . . . . . . . . . . . . 95
5.3.2 Capacitive Load . . . . . . . . . . . . . . . . . . . . . 95
5.3.3 Supply Voltage . . . . . . . . . . . . . . . . . . . . . . 95
5.3.4 Transition Rate . . . . . . . . . . . . . . . . . . . . . . 96
5.3.5 DeviceCharacteristics . . . . . . . . . . . . . . . . . . 96
5.3.6 DeviceState . . . . . . . . . . . . . . . . . . . . . . . 96
5.4 SwitchingActivity . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.4.1 Shifter Instead of Multipliers . . . . . . . . . . . . . . . 97
5.4.2 Operand Isolation . . . . . . . . . . . . . . . . . . . . . 97
5.4.3 AvoidComparison . . . . . . . . . . . . . . . . . . . . 98
5.4.4 ClockGating . . . . . . . . . . . . . . . . . . . . . . . 99
5.5 Supply Voltage . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
5.5.1 SimulationLimitation . . . . . . . . . . . . . . . . . . 107
5.5.2 Implication on Synthesis . . . . . . . . . . . . . . . . . 108
5.5.3 Implication onBackend . . . . . . . . . . . . . . . . . 108
5.6 Selective Shut Down . . . . . . . . . . . . . . . . . . . . . . . . 109
5.6.1 Need for Isolation . . . . . . . . . . . . . . . . . . . . 110
5.6.2 Generation of Power-Enable . . . . . . . . . . . . . . . 111
5.6.3 Power Sequencing . . . . . . . . . . . . . . . . . . . . 112
5.7 Load Capacitance . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.8 Input Transition . . . . . . . . . . . . . . . . . . . . . . . . . . 112
5.9 DeviceCharacteristics . . . . . . . . . . . . . . . . . . . . . . . 113
xiv Contents
5.10 PowerEstimation . . . . . . . . . . . . . . . . . . . . . . . . . 113
5.10.1 InternalPowerEstimation . . . . . . . . . . . . . . . . 116
5.10.2 SwitchingPowerEstimation . . . . . . . . . . . . . . . 117
5.10.3 Leakage Power Estimation . . . . . . . . . . . . . . . . 117
5.10.4 PowerEstimationatNon-gateLevel . . . . . . . . . . . 117
5.11 Probabilistic Estimation . . . . . . . . . . . . . . . . . . . . . . 118
5.11.1 SpatialCorrelation . . . . . . . . . . . . . . . . . . . . 119
5.11.2 TemporalCorrelation . . . . . . . . . . . . . . . . . . . 121
5.12 Simulation Plus Probabilistic . . . . . . . . . . . . . . . . . . . 121
5.13 CPF/UPF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
6 Design for Test (DFT) . . . . . . . . . . . . . . . . . . . . . . . . . . 125
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
6.1.1 Manufacturing Defect – Vis-a-Vis – Design Defect . . . 125
6.1.2 Stuck-At Fault Models . . . . . . . . . . . . . . . . . . 126
6.1.3 CostConsiderations . . . . . . . . . . . . . . . . . . . 126
6.2 Controllability and Observability . . . . . . . . . . . . . . . . . 126
6.2.1 Controllability and Observability Conflict . . . . . . . . 127
6.3 Scan Chains . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
6.3.1 Need for Simultaneous Control . . . . . . . . . . . . . 128
6.3.2 Complexity Due to Signal Relationship . . . . . . . . . 129
6.3.3 Need forManyControl andObservePoints . . . . . . . 130
6.3.4 Using Scan Chain for Controllability and Observability . 130
6.4 Mechanics of Scan Chain . . . . . . . . . . . . . . . . . . . . . 131
6.4.1 Scan Flop . . . . . . . . . . . . . . . . . . . . . . . . . 131
6.4.2 Replacing Flops with Scan Versions . . . . . . . . . . . 132
6.4.3 Timing Impact of Scan Flops . . . . . . . . . . . . . . . 132
6.4.4 Area Impact of Scan Flops . . . . . . . . . . . . . . . . 133
6.4.5 Stitching theChain . . . . . . . . . . . . . . . . . . . . 133
6.5 Shift andCapture . . . . . . . . . . . . . . . . . . . . . . . . . 133
6.5.1 ShiftIn . . . . . . . . . . . . . . . . . . . . . . . . . . 134
6.5.2 Capture . . . . . . . . . . . . . . . . . . . . . . . . . . 134
6.5.3 ShiftOut . . . . . . . . . . . . . . . . . . . . . . . . . . 135
6.5.4 Overlapping ShiftIn and ShiftOut . . . . . . . . . . . . 135
6.5.5 Chain Length . . . . . . . . . . . . . . . . . . . . . . . 136
6.6 Pseudo Random Flop Outputs . . . . . . . . . . . . . . . . . . . 136
6.6.1 TristateControls . . . . . . . . . . . . . . . . . . . . . 137
6.6.2 Uncontrollable Flops . . . . . . . . . . . . . . . . . . . 137
6.7 Shadow Registers . . . . . . . . . . . . . . . . . . . . . . . . . 138
6.7.1 Observability . . . . . . . . . . . . . . . . . . . . . . . 138
6.7.2 Scan Wrap . . . . . . . . . . . . . . . . . . . . . . . . 139
6.8 MemoryTesting . . . . . . . . . . . . . . . . . . . . . . . . . . 140
6.9 LatchBasedDesigns . . . . . . . . . . . . . . . . . . . . . . . . 140
6.10 Combinational Loops . . . . . . . . . . . . . . . . . . . . . . . 142
6.11 Power Impact . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Contents xv
6.12 Transitions Fault Model . . . . . . . . . . . . . . . . . . . . . . 144
6.13 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
7 Timing Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
7.1 FalsePaths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
7.1.1 False Paths Due to Specific Protocol . . . . . . . . . . . 148
7.1.2 False Paths Due to Paths Being Unsensitizable . . . . . 148
7.1.3 FalsePathsDue toCDC . . . . . . . . . . . . . . . . . 150
7.1.4 FalsePathsDue toMultiMode . . . . . . . . . . . . . . 151
7.1.5 FalsePathsDue toPinMuxing . . . . . . . . . . . . . . 152
7.1.6 False Paths Due to Exclusive Clocks . . . . . . . . . . . 154
7.1.7 False Paths Due to Asynchronous Control Signals . . . . 155
7.1.8 False Paths Due to Quasi Static Signals . . . . . . . . . 156
7.1.9 set_false_path -vs- set_clock_groups . . . . . . . . . . 156
7.2 DisableTiming . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
7.3 MultiCyclePaths . . . . . . . . . . . . . . . . . . . . . . . . . 158
7.3.1 SlowtoFastClockTransfer ofData . . . . . . . . . . . 158
7.3.2 Fast toSlowClockTransfer ofData . . . . . . . . . . . 161
7.3.3 Protocol Based Data Transfer . . . . . . . . . . . . . . 163
7.3.4 Multicycle Paths for False Paths . . . . . . . . . . . . . 164
7.3.5 Multicycle Paths for Deep Logic . . . . . . . . . . . . . 164
7.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
8 Congestion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
8.1 Impact of Congestion . . . . . . . . . . . . . . . . . . . . . . . 167
8.2 PhysicalDesignBasics . . . . . . . . . . . . . . . . . . . . . . 168
8.3 RTLCharacteristics . . . . . . . . . . . . . . . . . . . . . . . . 168
8.3.1 High Utilization . . . . . . . . . . . . . . . . . . . . . 169
8.3.2 LargeMacros . . . . . . . . . . . . . . . . . . . . . . . 170
8.3.3 Interaction with Many Blocks . . . . . . . . . . . . . . 171
8.3.4 TooManyCriticalPaths . . . . . . . . . . . . . . . . . 172
8.4 Feedthrough . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
8.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Appendix A Interleaving of Processes . . . . . . . . . . . . . . . . . . . 175
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Principles of VLSI RTL Design A Practical Guide.pdf
(6.97 MB, 下载次数: 1810 )
|
|