第1章 FPGA开发基础知识 1
1.1 可编程逻辑器件基础 1
1.1.1 可编程逻辑器件概述 1
1.1.2 可编程逻辑器件的发展历史 1
1.1.3 可编程逻辑器件开发工具 2
1.2 FPGA器件的基础知识 3
1.2.1 FPGA芯片的基本工作原理 3
1.2.2 Xilinx FPGA的基本架构 4
1.2.3 典型的FPGA开发流程 8
1.2.4 基于FPGA的SoC设计方法 10
1.2.5 FPGA芯片与设计的性能指标 11
1.3 本章小结 12
第2章 Xilinx FPGA资源简介 13
2.1 Xilinx最新FPGA 13
2.1.1 高端平台Virtex 5系列 13
2.1.2 中低端平台Spartan 3E系列 24
2.2 Xilinx主流芯片介绍 26
2.2.1 Xilinx FPGA芯片介绍 26
2.2.2 Xilinx PROM芯片介绍 32
2.2.3 Xilinx芯片的选型 33
2.3 Xilinx FPGA的开发资源 34
2.3.1 Xilinx FPGA在通信领域中的解决方案 34
2.3.2 Xilinx FPGA在汽车电子领域中的解决方案 36
2.3.3 Xilinx FPGA在工业/科学/医疗领域中的解决方案 37
2.3.4 Xilinx FPGA在宇航和国防领域中的解决方案 37
2.3.5 Xilinx FPGA在其他领域中的解决方案 38
2.4 Xilinx FPGA的电子文档资源 38
2.4.1 Xilinx官方文档分类 38
2.4.2 ISE软件自带文档 39
2.4.3 Xilinx电子文档资源的搜索技巧 40
2.4.4 FPGA设计人员的进阶路线 42
2.5 Xilinx FPGA芯片管脚解读 43
2.5.1 FPGA芯片的封装形式 43
2.5.2 FPGA芯片的管脚介绍 45
2.5.3 FPGA芯片管脚的分配策略 49
2.6 本章小结 49
第3章 新一代开发工具ISE Design Suite 10.1 51
3.1 ISE Design Suite 10.1简介 51
3.1.1 ISE Design Suite 10.1综述 51
3.1.2 ISE Design Suite 10.1的创新特性 51
3.2 ISE Design Suite 10.1主要组件 53
3.2.1 ISE Foundation 53
3.2.2 EDK开发工具 55
3.2.3 DSP工具 55
3.2.4 ChipScope Pro 56
3.2.5 PlanAhead 56
3.3 本章小结 57
第4章 ISE Foundation基本组件 59
4.1 ISE Foundation的介绍与安装 59
4.1.1 ISE Foundation简要介绍 59
4.1.2 ISE软件的安装 59
4.1.3 ISE软件的基本操作 62
4.1.4 ISE软件的开发操作流程 66
4.2 基于ISE的工程建立与设计输入 67
4.2.1 新建工程 67
4.2.2 HDL代码输入 68
4.2.3 状态机的输入与验证 70
4.2.4 原理图输入法 78
4.2.5 代码模板的使用 80
4.2.6 Xilinx IP Core的使用 81
4.3 基于ISE的仿真 86
4.3.1 基于波形测试法的仿真 86
4.3.2 基于HDL测试代码的仿真 89
4.4 基于ISE的综合与实现 90
4.4.1 基于Xilinx XST的综合 91
4.4.2 基于ISE的实现 96
4.4.3 基于目标和用户策略的设计方法 104
4.4.4 基于SmartXplorer/Xplorer的实现技术 107
4.4.5 基于SmartCompile的设计保存技术 112
4.5 用户约束文件 116
4.5.1 约束文件的基本知识 117
4.5.2 UCF文件的语法说明 117
4.5.3 管脚和区域约束语法 118
4.5.4 时序约束语法 120
4.6 管脚和区域约束工具Floorplan Editor 124
4.6.1 Floorplan Editor功能简介 125
4.6.2 利用PACE完成管脚分配 125
4.6.3 使用Floorplan Editor完成管脚分配和区域约束 127
4.6.4 Floorplan Editor的其他功能 129
4.7 时序约束工具Constraints Editor 132
4.7.1 Constraints Editor功能简介 132
4.7.2 利用Constraints Editor添加时序约束 134
4.7.3 利用Constraints Editor添加分组约束 139
4.7.4 利用Constraints Editor添加专用约束 140
4.8 基于ISE的器件配置 141
4.8.1 FPGA配置电路 141
4.8.2 iMPACT参数设置 145
4.8.3 配置FPGA器件 150
4.8.4 配置PROM器件 153
4.9 本章小结 158
第5章 ISE Foundation高级组件 159
5.1 在线逻辑分析仪ChipScope Pro 159
5.1.1 ChipScope Pro工具简介 159
5.1.2 ChipScope Core Generator使用说明 162
5.1.3 ChipScope Core Inserter使用说明 167
5.1.4 ChipScope Core Analyzer使用说明 172
5.1.5 ChipScope Pro Serial I/O Toolkit使用说明 175
5.1.6 ChipScope Pro应用实例 186
5.2 平面布局规划器PlanAhead 192
5.2.1 PlanAhead 10.1的安装及新特性 193
5.2.2 PlanAhead设计流程 194
5.2.3 利用PinAhead进行I/O引脚规划 199
5.2.4 使用ExploreAhead优化实现结果 207
5.3 时序分析器Timing Analyzer 213
5.3.1 时序分析基础 213
5.3.2 Xilinx FPGA中的时钟资源 220
5.3.3 ISE时序分析器的软件操作 224
5.3.4 Timing Analyzer应用实例 237
5.4 布局规划器Floorplanner 238
5.4.1 Floorplanner简介 238
5.4.2 Floorplanner软件操作 240
5.4.3 Floorplanner应用实例 248
5.5 底层编辑器FPGA Editor 250
5.5.1 FPGA Editor简介 250
5.5.2 FPGA Editor软件操作 251
5.5.3 FPGA Editor应用实例 262
5.6 功耗分析工具XPower 264
5.6.1 功耗分析简介 264
5.6.2 XPower估计器 265
5.6.3 XPower分析器 269
5.6.4 低功耗设计技术 275
5.6.5 XPower分析器应用实例 277
5.7 本章小结 278
第6章 ISE与第三方软件 279
6.1 ModelSim仿真软件的使用 279
6.1.1 ModelSim仿真软件的安装 279
6.1.2 在ModelSim中指定Xilinx的仿真库 281
6.1.3 ModelSim的基本操作 282
6.1.4 ModelSim的高级操作 284
6.2 综合工具Synplify Pro 296
6.2.1 Synplify Pro综合软件的安装 296
6.2.2 Synplify Pro的使用 297
6.3 ISE与MATLAB的联合使用 302
6.3.1 利用MATLAB辅助FPGA的逻辑设计 303
6.3.2 利用MATLAB完成DSP系统开发 304
6.3.3 利用MATLAB自动生成滤波器代码 306
6.4 本章小结 309
第7章 FPGA底层单元与逻辑开发实例 311
7.1 FPGA底层单元开发 311
7.1.1 Xilinx全局时钟网络的使用 311
7.1.2 DCM模块的使用 312
7.1.3 Xilinx内嵌块存储器的使用 320
7.1.4 硬核乘加器DSP48的使用 330
7.2 FPGA常用IP Core使用实例 338
7.2.1 Cordic算法IP Core的使用 338
7.2.2 FFT算法IP Core的使用 344
7.2.3 FIR滤波器IP Core的使用 356
7.3 开发实例——LMS算法的Verilog实现 370
7.3.1 LMS算法的原理 370
7.3.2 LMS算法的MATLAB实现 373
7.3.3 LMS算法的FPGA实现 375
7.3.4 LMS算法的软件调试 385
7.4 本章小结 391
附录 Verilog HDL语言基础 393
参考文献 409