第1章 Xilinx FPGA/CPLD简介 1
1.1 逻辑器件概述 1
1.2 FPGA简介 2
1.3 CPLD简介 3
1.4 FPGA/CPLD的特点 4
1.5 CPLD与FPGA的区别 5
1.6 Xilinx简介 5
1.6.1 Xilinx公司概述 5
1.6.2 Xilinx FPGA/CPLD器件 6
1.7 Xilinx FPGA/CPLD的基本结构 10
1.7.1 Xilinx CPLD的基本结构 10
1.7.2 Xilinx FPGA的基本结构 11
1.8 小结 14
第2章 ISE系统简介 15
2.1 ISE系列产品的特点 15
2.1.1 ISE特点综述 15
2.1.2 ISE 10.x新增特性 16
2.2 ISE 10.x支持的器件 17
2.3 ISE的软件系列 17
2.4 ISE的系统配置和安装 18
2.4.1 推荐的系统配置 18
2.4.2 ISE的安装 18
2.5 ISE设计流程实例:32位加/减法器设计 22
2.5.1 ISE 10.x集成开发环境界面 23
2.5.2 设计输入 25
2.5.3 功能仿真 29
2.5.4 设计综合 32
2.5.5 工程实现 33
2.5.6 时序仿真 34
2.5.7 器件配置 34
2.6 小结 37
第3章 ISE工程管理与设计输入 38
3.1 ISE工程管理器——Project Navigator 38
3.1.1 Project Navigator简介 38
3.1.2 实例3-1:使用Project Navigator创建并管理工程 38
3.2 HDL语言输入工具——HDL Editor 41
3.2.1 HDL Editor综述 41
3.2.2 源代码输入助手——Language Templates 41
3.2.3 实例3-2:使用HDL Editor设计16位移位寄存器 42
3.3 状态机输入工具——StateCAD 43
3.3.1 StateCAD简介 43
3.3.2 实例3-3:使用StateCAD设计加法器 44
3.4 原理图输入工具——ECS 50
3.4.1 ECS简介 50
3.4.2 基于ECS的混合设计方法 50
3.5 IP核生成工具——CORE Generator 50
3.5.1 CORE Generator简介 51
3.5.2 实例3-4:使用CORE Generator生成Block RAM 52
3.6 测试激励生成器——HDL Bencher 54
3.6.1 HDL Bencher简介 54
3.6.2 实例3-5:使用HDL Bencher生成测试激励 54
3.7 设计结构向导——Architecture Wizard 58
3.7.1 Architecture Wizard简介 58
3.7.2 实例3-6:使用Architecture Wizard生成DCM 58
3.8 小结 61
第4章 功能仿真工具 62
4.1 ModelSim简介 62
4.1.1 ModelSim的安装 64
4.1.2 ModelSim的用户界面 67
4.2 ModelSim仿真流程 71
4.2.1 启动ModelSim 71
4.2.2 编译ModelSim仿真库 73
4.2.3 编译源代码 75
4.2.4 执行仿真 78
4.3 ModelSim中的调试方法 79
4.3.1 源文件窗口调试 79
4.3.2 波形窗口调试 81
4.3.3 列表窗口调试 83
4.3.4 数据流窗口调试 84
4.3.5 存储器窗口调试 86
4.4 ModelSim仿真进阶 87
4.4.1 批处理仿真 87
4.4.2 WLF文件和波形比较 89
4.4.3 代码覆盖率检测 93
4.4.4 SDF时序反标 95
4.4.5 VCD文件应用 96
4.5 后仿真实例 97
4.6 小结 103
第5章 ISE综合工具 104
5.1 Synplify/Synplify Pro综合工具 104
5.1.1 Synplify/Synplify Pro的功能与特点 104
5.1.2 Synplify Pro的用户界面 108
5.1.3 实例5-1:Synplify Pro综合流程 110
5.2 Xilinx内嵌的综合工具——XST 117
5.2.1 XST综述 117
5.2.2 XST综合属性设置 118
5.2.3 实例5-2:XST综合流程 121
5.3 全局时钟和第二全局时钟资源 124
5.3.1 全局时钟资源简介 124
5.3.2 Xilinx全局资源的使用方法 124
5.3.3 第二全局时钟资源 126
5.4 小结 126
第6章 约束设置 127
6.1 时序约束基础 127
6.1.1 周期约束 128
6.1.2 偏移约束 131
6.1.3 专用约束 132
6.1.4 分组约束 135
6.2 约束编辑器——Constraints Editor 139
6.2.1 Constraints Editor用户界面 139
6.2.2 实例:在ConstraintsEditor中附加约束 140
6.3 引脚与区域约束编辑器——Floorplan Editor 147
6.3.1 利用Floorplan完成引脚配置和区域约束 147
6.3.2 利用PACE进行引脚分配 149
6.4 约束文件 150
6.4.1 约束文件简介 150
6.4.2 UCF、NCF文件的基本语法规则 151
6.4.3 引脚和区域约束语法 154
6.5 小结 156
第7章 设计实现 157
7.1 布局规划器——Floorplanner 157
7.1.1 Floorplanner的用户界面 158
7.1.2 Floorplanner的特点及作用 158
7.1.3 Floorplan设计流程 159
7.1.4 实例7-1:布局规划实例 162
7.2 FPGA底层编辑器——FPGA Editor 164
7.2.1 FPGA Editor用户界面 165
7.2.2 FPGA Editor的作用 165
7.2.3 FPGA Editor输入/输出文件 167
7.2.4 FPGA Editor设计流程 167
7.2.5 实例7-2:FPGA Editor设计实例 167
7.3 小结 174
第8章 辅助设计工具 175
8.1 时序分析器——Timing Analyzer 175
8.1.1 时序分析基础 175
8.1.2 Timing Analyzer简介 182
8.1.3 实例8-1:时序分析器使用实例 185
8.2 虚拟逻辑分析仪——ChipScope Pro 190
8.2.1 ChipScope Pro综述 190
8.2.2 ChipScope Pro核的使用 191
8.2.3 ChipScope Pro Analyzer使用简介 199
8.2.4 实例8-2:基于ChipScope Pro Core Inserter在线调试实例 204
8.2.5 实例8-3:基于CORE Generator的在线调试示例 210
8.3 功耗分析器——XPower 213
8.3.1 XPower综述 214
8.3.2 XPower用户界面 215
8.3.3 实例8-4:XPower功耗分析实例 216
8.4 小结 220
第9章 Xilinx器件配置 221
9.1 Xilinx器件配置简介 221
9.2 配置流程 223
9.3 Xilinx器件配置模式 224
9.3.1 主串模式 224
9.3.2 从串模式 226
9.3.3 字节宽度外部接口并行配置(BPI)模式 227
9.3.4 JTAG模式 228
9.4 Xilinx器件配置下载电缆 230
9.5 程序下载器——iMPACT 230
9.5.1 iMPACT综述 231
9.5.2 iMPACT用户界面 231
9.5.3 iMPACT程序下载实例 238
9.6 小结 241
第10章 FPGA系统设计原则和技巧 242
10.1 时钟管理模块使用技巧 242
10.1.1 DCM模块 242
10.1.2 实例:DCM设计实例 245
10.2 FPGA系统设计的基本原则 251
10.2.1 面积与速度的平衡互换原则 252
10.2.2 硬件可实现原则 253
10.2.3 同步设计原则 253
10.3 FPGA系统设计的常用技巧 255
10.3.1 乒乓操作技巧 255
10.3.2 串并/并串转换技巧 256
10.3.3 硬件流水线设计技巧 257
10.4 小结 258
第11章 综合实例1——FIFO设计 259
11.1 FIFO的基本原理 259
11.2 FIFO的空/满检测 260
11.3 Gray码 265
11.4 异步FIFO代码设计 267
11.5 异步FIFO代码仿真验证 274
11.6 异步FIFO代码综合 282
11.7 异步FIFO设计实现 288
11.8 小结 296
第12章 综合实例2——SPI总线设计 297
12.1 SPI总线概述 297
12.2 SPI总线源代码设计 301
12.3 SPI设计综合 311
12.4 SPI设计的FPGA实现 312
12.5 小结 316
第13章 综合实例3——NAND Flash控制器设计 317
13.1 NAND Flash简介 317
13.2 NAND Flash的结构和基本操作 318
13.3 NAND Flash控制器结构 324
13.4 ECC模块设计 326
13.5 生成双端口RAM 331
13.6 NAND Flash控制器代码设计 335
13.7 NAND Flash控制器代码仿真 343
13.8 NAND Flash控制器代码综合 347
13.9 NAND Flash控制器代码实现 351
13.10 小结 360
第14章 综合实例4——CRC校验器设计 361
14.1 CRC校验原理 361
14.2 CRC校验器的结构 363
14.3 CRC校验器源代码设计 365
14.4 CRC校验器代码综合及仿真验证 369
14.5 CRC校验器的FPGA实现 371
14.6 小结 374
附录 IC和FPGA专业术语中/英文对照 375