[资料下载] Altera FPGA/CPLD设计 高级篇
目录
第1章 可编程逻辑设计指导原则 1
1.1 可编程逻辑基本设计原则 1
1.1.1 面积和速度的平衡与互换原则 1
1.1.2 硬件原则 11
1.1.3 系统原则 13
1.1.4 同步设计原则 17
1.2 可编程逻辑常用设计思想与技巧 19
1.2.1 乒乓操作 19
1.2.2 串并转换 21
1.2.3 流水线操作 22
1.2.4 异步时钟域数据同步 23
1.3 Altera推荐的Coding Style 27
1.3.1 Coding Style的含义 27
1.3.2 结构层次化编码(Hierarchical Coding) 27
1.3.3 模块划分的技巧(Design Partitioning) 29
1.3.4 组合逻辑的注意事项 30
1.3.5 时钟设计的注意事项 33
1.3.6 全局异步复位资源 39
1.3.7 判断比较语句case和if...else的优先级 39
1.3.8 使用Pipelining技术优化时序 40
.1.3.9 模块复用与Resource Sharing 40
1.3.10 逻辑复制 42
1.3.11 香农扩展运算 44
1.3.12 信号敏感表 46
1.3.13 状态机设计的一般原则 47
1.3.14 Altera Megafunction资源的使用 49
1.3.15 三态信号的设计 49
1.3.16 加法树的设计 50
1.4 小结 52
1.5 问题与思考 52
第2章 Altera器件高级特性与应用 53
2.1 时钟管理 53
2.1.1 时序问题 53
2.1.2 锁相环应用 60
2.2 片内存储器 69
2.2.1 RAM的普通用法 69
2.2.2 RAM用做移位寄存器 73
2.2.3 RAM实现固定系数乘法 74
2.3 数字信号处理 75
2.3.1 DSP块资源 75
2.3.2 工具支持 79
2.3.3 典型应用 79
2.4 片外高速存储器 80
2.4.1 存储器简介 80
2.4.2 ZBT SRAM接口设计 83
2.4.3 DDR SDRAM接口设计 85
2.4.4 QDR SRAM接口设计 99
2.4.5 DDR2、QDR II和RLDRAM II 100
2.4.6 软件支持和应用实例 100
2.5 高速差分接口和DPA 102
2.5.1 高速差分接口的需求 102
2.5.2 器件的专用资源 102
2.5.3 动态相位调整电路(DPA) 109
2.5.4 软件支持和应用实例 112
2.6 高速串行收发器 115
2.7 小结 117
2.8 问题与思考 117
第3章 LogicLock设计方法 119
3.1 LogicLock设计方法简介 119
3.1.1 LogicLock设计方法的目标 120
3.1.2 LogicLock设计流程 122
3.1.3 LogicLock设计方法支持的器件族 122
3.2 LogicLock区域 122
3.2.1 Region的类型与常用属性值 123
3.2.2 Region的创建方法 124
3.2.3 Region的层次结构 129
3.2.4 指定Region的逻辑内容 130
3.3 LogicLock的约束注意事项 132
3.3.1 约束优先级 132
3.3.2 规划LogicLock区域 133
3.3.3 向LogicLock区域中布置器件特性 133
3.3.4 虚拟引脚(Virtual Pins) 134
3.4 反标注布线信息 135
3.4.1 导出反标注布线信息 136
3.4.2 导入反标注布线信息 138
3.5 LogicLock设计方法支持的Tcl Scripts 138
3.6 Quartus II基于模块化的设计流程 139
3.7 小结 149
3.8 问题与思考 149
第4章 时序约束与时序分析 151
4.1 时序约束与时序分析基础 151
4.1.1 周期与最高频率 152
4.1.2 利用Quartus II工具分析设计 154
4.1.3 时钟建立时间 157
4.1.4 时钟保持时间 158
4.1.5 时钟输出延时 158
4.1.6 引脚到引脚的延迟 159
4.1.7 Slack 159
4.1.8 时钟偏斜 160
4.1.9 Quartus II 时序分析工具和优化向导 160
4.2 设置时序约束的常用方法 161
4.2.1 指定全局时序约束 162
4.2.2 指定个别时钟约束 166
4.3 高级时序分析 174
4.3.1 时钟偏斜 174
4.3.2 多时钟域 176
4.3.3 多周期约束 176
4.3.4 伪路径 183
4.3.5 修正保持时间违例 185
4.3.6 异步时钟域时序分析 186
4.4 最小化时序分析 187
4.5 使用Tcl工具进行高级时序分析 188
4.6 小结 189
4.7 问题与思考 189
第5章 设计优化 191
5.1 解读设计 191
5.1.1 内部时钟域 192
5.1.2 多周期路径和伪路径 193
5.1.3 I/O接口的时序要求 194
5.1.4 平衡资源的使用 194
5.2 设计优化的基本流程和首次编译 195
5.2.1 设计优化基本流程 195
5.2.2 首次编译的约束和设置 196
5.2.3 查看编译报告 198
5.3 资源利用优化 200
5.3.1 设计代码优化 201
5.3.2 资源重新分配 201
5.3.3 解决互连资源紧张的问题 203
5.3.4 逻辑综合面积优化 203
5.3.5 网表面积优化 207
5.3.6 寄存器打包 209
5.3.7 Quartus II中的资源优化顾问 211
5.4 I/O时序优化 211
5.4.1 执行时序驱动的编译 211
5.4.2 使用IOE中的触发器 212
5.4.3 可编程输入输出延时 215
5.4.4 使用锁相环对时钟移相 217
5.4.5 其他I/O时序优化方法 218
5.5 最高时钟频率优化 219
5.5.1 设计代码优化 219
5.5.2 逻辑综合速度优化 225
5.5.3 布局布线器设置 227
5.5.4 网表优化和物理综合 228
5.5.5 使用LogicLock对局部进行优化 233
5.5.6 位置约束、手动布局和反标注 234
5.5.7 Quartus II中的时序优化顾问 235
5.6 使用DSE工具优化设计 236
5.6.1 为什么需要DSE 236
5.6.2 什么是DSE,如何使用 236
5.7 如何减少编译时间 238
5.8 设计优化实例 239
5.9 小结 242
5.10 问题与思考 243
第6章 Altera其他高级工具 245
6.1 命令行与Tcl脚本 245
6.1.1 命令行脚本 246
6.1.2 Tcl脚本 250
6.1.3 使用命令行和Tcl脚本 254
6.2 HardCopy流程 255
6.2.1 结构化ASIC 255
6.2.2 HardCopy器件 258
6.2.3 HardCopy设计流程 260
6.3 基于Nios II处理器的嵌入式系统设计 263
6.3.1 Nios II处理器系统 263
6.3.2 Avalon交换结构 266
6.3.3 使用SOPC Builder构建系统硬件 269
6.3.4 Nios II IDE集成开发环境 272
6.3.5 Nios II系统典型应用 278
6.4 DSP Builder工具 281
6.4.1 DSP Builder设计流程 281
6.4.2 与SOPC Builder一起构建系统 284
6.5 小结 285
6.6 问题与思考 285
第7章 FPGA系统级设计技术 287
7.1 信号完整性及常用I/O电平标准 287
7.1.1 信号完整性 287
7.1.2 单端标准 292
7.1.3 差分标准 296
7.1.4 伪差分标准 299
7.1.5 片上终端电阻 299
7.2 电源完整性设计 300
7.2.1 电源完整性 300
7.2.2 同步翻转噪声 301
7.2.3 非理想回路 304
7.2.4 低阻抗电源分配系统 307
7.3 功耗分析和热设计 311
7.3.1 功耗的挑战 311
7.3.2 FPGA的功耗 311
7.3.3 热设计 313
7.4 SERDES与高速系统设计 315
7.4.1 SERDES的基本概念 316
7.4.2 Altera Stratix GX和Stratix II中SERDES的基本结构 319
7.4.3 典型高速系统应用框图举例 324
7.4.4 高速PCB设计注意事项 329
7.5 小结 331
7.6 问题与思考 331