目录 1
第1章 绪言 1
1.1 工艺的挑战 1
1.1.1 时序收敛 2
1.1.2 设计能力 2
1.1.3 物理属性 2
1.1.4 设计生产率鸿沟 3
1.1.5 面市时间的发展趋势 3
1.1.6 系统芯片技术 4
1.2 可供选用的验证技术 5
1.2.1 仿真技术 5
1.2.2 静态技术 7
1.2.3 形式技术 8
1.2.4 物理验证与分析 9
1.2.5 各种验证做法的比较 9
1.3 验证方法 11
1.3.1 系统级验证 11
1.3.2 系统芯片硬件寄存器传输级验证 12
1.3.3 系统芯片软件验证 12
1.3.4 网表验证 12
1.3.5 物理验证 12
1.3.6 器件测试 12
1.4 测试平台的建立 13
1.4.1 采用硬件描述语言建立测试平台 13
1.5 测试平台的迁移 14
1.4.5 基于(设计)规约建立测试平台 14
1.4.2 采用编程语言接口建立测试平台 14
1.4.4 基于事务建立测试平台 14
1.4.3 基于波形建立测试平台 14
1.5.1 将测试平台从功能性迁移至寄存器传输级 15
1.5.2 测试平台从寄存器传输级向网表的迁移 15
1.6 验证语言 15
1.7 验证IP重用 16
1.8 验证途径 16
1.8.1 自顶而下的设计与验证途径 16
1.8.2 自底而上的验证途径 17
1.8.4 受系统接口驱动的验证途径 19
1.8.3 基于平台的验证途径 19
1.9 验证和器件测试 20
1.9.1 器件测试的挑战 20
1.9.2 测试策略 20
1.10 验证计划 21
1.11 蓝牙系统芯片的参考设计 24
1.11.1 蓝牙器件中的元素 24
1.11.2 蓝牙网络 25
1.11.3 蓝牙系统芯片 25
参考文献 28
第2章 系统级验证 30
2.1 系统设计 30
2.1.2 架构映射 31
2.1.1 功能/行为设计 31
2.2 系统验证 32
2.2.1 功能验证 32
2.2.2 性能验证 32
2.2.3 系统级测试平台 33
2.2.4 建立系统级测试平台 33
2.2.5 系统测试平台的评价尺度 33
2.2.6 运用系统级测试平台 34
2.2.7 系统测试平台的迁移 36
2.3 蓝牙系统芯片 37
参考文献 42
3.1 IP功能块 43
第3章 功能块级验证 43
3.2 功能块级验证 44
3.3 蓝牙系统芯片的功能块细节 45
3.3.1 仲裁器 45
3.3.2 仲裁器的测试平台 51
3.3.3 译码器 59
3.3.4 ASB主方 59
3.3.5 ASB从方 59
3.3.6 ASB/APB桥 60
3.4 代码静态检查 60
3.5 模型形式检查 61
3.5.2 模型检查的局限 62
3.5.3 模型检查方法 62
3.5.1 模型检查的时间 62
3.5.4 模型检查的步骤 65
3.6 功能验证与仿真 71
3.6.1 黑盒验证途径 71
3.6.2 白盒验证途径 72
3.6.3 灰盒验证途径 72
3.6.4 仿真 73
3.7 协议检查 73
3.7.1 存储器/寄存器访问信号 74
3.7.2 协议检查示例 74
3.8 定向随机测试 80
3.9 代码覆盖状况分析 82
3.9.1 覆盖状况分析的类型 82
3.9.2 代码覆盖率分析 84
参考文献 87
第4章 模拟与混合信号仿真 89
4.1 混合信号仿真 89
4.2 设计抽象层次 90
4.3 仿真环境 91
4.3.1 选择仿真环境 92
4.3.2 现行环境的局限 93
4.4 使用SPICE 93
4.5 仿真方法 93
4.6 蓝牙系统芯片中的数模转换器 95
4.6.1 DAC的测试平台 99
4.6.2 建立网表 101
4.6.4 响应 104
4.7 含模拟混合信号功能块的芯片级验证 104
4.6.3 仿真 104
参考文献 105
第5章 仿真 106
5.1 功能仿真 106
5.2 测试平台壳 107
5.2.1 蓝牙系统芯片的功能块细节 110
5.2.2 测试向量转换 110
5.2.3 激励生成 111
5.2.4 激励的截取 115
5.2.5 结果检查 116
5.2.6 从方的测试平台壳 117
5.3 基于事件的仿真 124
5.3.3 选择基于事件的仿真方案 125
5.3.1 基于事件的仿真工具 125
5.3.2 基于事件的仿真环境 125
5.3.4 基于事件的仿真流程 126
5.4 基于周期的仿真 126
5.4.1 何时采用基于周期的仿真 127
5.4.2 基于周期的仿真环境 127
5.4.3 选择基于周期的仿真方案 128
5.4.4 基于周期的仿真的局限性 128
5.4.5 基于周期的仿真流程 128
5.4.6 基于事件和基于周期的仿真的比较 129
5.5 ASB/APB桥的仿真 130
5.5.1 ASB/APB功能块 130
5.5.2 设计寄存器传输级代码 131
5.5.3 基于事件的仿真测试平台 138
5.5.4 运行仿真 138
5.6 基于事件和基于周期相混合的仿真 140
5.7 基于事务的验证 141
5.7.1 基于事务的验证中的元素 141
5.7.2 基于事务的验证环境 142
5.7.3 建立测试平台 143
5.7.4 事务分析 147
5.7.5 基于事务的验证中的功能覆盖状况 147
5.7.6 基于事务的验证流程 148
5.7.7 蓝牙系统芯片 149
5.8.1 仿效 162
5.8 仿真加速 162
5.8.2 何时采用仿效 164
5.8.3 仿效环境 165
5.8.4 选择仿效方案 166
5.8.5 仿效的局限性 166
5.8.6 仿效的流程 167
5.8.7 快速原型系统 167
5.8.8 硬件加速器 168
5.8.9 设计划分 168
参考文献 168
第6章 软件/硬件协同验证 170
6.1 软件/硬件协同验证环境 170
6.2 仿效 171
6.3 软原型或虚拟原型 172
6.3.1 软原型的局限性 173
6.3.2 建立软原型的流程 173
6.3.3 蓝牙系统芯片的软原型 174
6.4 协同验证 190
6.4.1 协同验证环境 191
6.4.2 选择协同验证环境 191
6.4.3 协同验证方法 192
6.4.4 UART的协同验证 193
6.5 快速原型系统 212
6.5.1 快速原型系统的局限性 212
6.5.2 可重配置快速原型系统 213
6.5.3 专用快速原型系统 215
6.6 软件/硬件验证方法的比较 218
6.7 基于FPGA的设计 218
6.7.1 基于FPGA的设计指导原则 219
6.7.2 基于FPGA的设计流程 219
6.8 开发电路印制板 221
6.9 软件测试 222
6.9.1 软件开发的生命周期 222
6.9.2 软件开发的指导原则 224
6.9.3 软件测试的最佳经验 225
6.9.4 调试工具 225
6.9.5 中断的调试 227
参考文献 229
7.1 网表验证 232
第7章 网表静态验证 232
7.2 蓝牙系统芯片的仲裁器 234
7.3 等价性检查 234
7.3.1 等价性检查解决方案的选择 235
7.3.2 等价性检查的流程 236
7.3.3 寄存器传输级对寄存器传输级的验证 237
7.3.4 寄存器传输级对门级网表的验证 237
7.3.5 从门级网表到门级网表验证 239
7.3.6 调试 240
7.3.7 对仲裁器进行等价性检查 242
7.4 时序静态验证 244
7.4.1 选择时序静态验证解决方案 245
7.4.2 时序静态验证的流程 245
7.4.3 对仲裁器进行时序静态验证 246
参考文献 251
第8章 物理验证与设计签付 252
8.1 设计检查 252
8.2 物理效应分析 252
8.2.1 寄生效应的提取 252
8.2.2 电感效应 253
8.2.3 信号完整性 253
8.2.4 电迁移效应 255
8.2.5 亚波长挑战 255
8.2.6 工艺天线效应 256
8.3 设计签付 256
参考文献 257
附录 术语表 259