第1章 FPGA开发简介 1
1.1可编程逻辑器件基础 1
可编程逻辑器件概述 1
可编程逻辑器件的发展历史 2
PLD开发工具 2
1.2 FPGA芯片结构 3
FPGA工作原理与简介 3
FPGA芯片结构 4
软核、硬核以及固核的概念 8
1.3基于FPGA的开发流程 9
FPGA设计方法概论 9
典型FPGA开发流程 10
基于FPGA的SOC设计方法 13
1.4 Xilinx公司主流可编程逻辑器件简介 13
Xilinx FPGA芯片介绍 14
Xilinx PROM芯片介绍 21
1.5本章小结 23
第2章 Verilog HDL语言基础 24
2.1 Verilog HDL语言简介 24
Verilog HDL语言的历史 25
Verilog HDL的主要能力 25
Verilog HDL和VHDL的区别 26
Verilog HDL设计方法 26
2.2 Verilog HDL基本程序结构 27
2.3 Verilog HDL语言的数据类型和运算符 28
标志符 29
数据类型 29
模块端口 31
常量集合 31
运算符和表达式 32
2.4 Verilog HDL语言的描述语句 37
结构描述形式 37
数据流描述形式 38
行为描述形式 38
混合设计模式 46
2.5 Verilog代码书写规范 46
信号命名规则 46
模块命名规则 47
代码格式规范 48
模块调用规范 50
2.6 Verilog常用程序示例 50
Verilog基本模块 50
基本时序处理模块 56
常用数字处理算法的Verilog实现 62
2.7本章小结 83
第3章 基于Xilinx芯片的HDL语言高级进阶 84
3.1面向硬件电路的设计思维 84
面向硬件的程序设计思维 84
“面积”和“速度”的转换原则 89
同步电路的设计原则 90
模块划分的设计原则 93
3.2优秀的HDL代码风格 94
代码风格的含义 94
通用代码风格的介绍 95
专用代码风格的简要说明 103
3.3 Verilog建模与调试技巧 108
双向端口的使用和仿真 108
阻塞赋值与非阻塞赋值 111
输入值不确定的组合逻辑电路 113
数学运算中的扩位与截位操作 113
利用块RAM来实现数据延迟 115
测试向量的生成 118
3.4 Xilinx公司原语的使用方法 119
计算组件 119
时钟组件 121
配置和检测组件 126
吉比特收发器组件 128
I/O端口组件 128
处理器组件 134
RAM/ROM组件 134
寄存器和锁存器 139
移位寄存器组件 140
Slice/CLB组件 141
3.5本章小结 143
第4章 ISE开发环境使用指南 144
4.1 ISE套件的介绍与安装 144
ISE简要介绍 144
ISE功能简介 144
ISE软件的安装 145
ISE软件的基本操作 148
4.2基于ISE的代码输入 153
新建工程 153
代码输入 154
代码模板的使用 155
Xilinx IP Core的使用 157
4.3基于ISE的开发流程 164
基于Xilinx XST的综合 164
基于ISE的仿真 169
基于ISE的实现 174
基于ISE的芯片编程 180
功耗分析以及XPower的使用 183
4.4约束文件的编写 193
约束文件的基本操作 193
UCF文件的语法说明 195
管脚和区域约束语法 196
管脚和区域约束编辑器PACE 198
4.5 ISE与第三方软件 204
Synplify Pro软件的使用 204
ModelSim软件的使用 212
Synplify Pro、ModelSim和ISE的联合开发流程 216
ISE与MATLAB的联合使用 217
4.6 Xilinx FPGA芯片底层单元的使用 219
Xilinx全局时钟网络的使用 220
DCM模块的使用 221
Xilinx内嵌块存储器的使用 227
硬核乘加器的使用 232
4.7本章小结 240
第5章 FPGA配置电路及软件操作 241
5.1 FPGA配置电路综述 241
Xilinx FPGA配置电路综述 241
Xilinx FPGA常用的配置管脚 243
Xilinx FPGA配置电路分类 243
5.2 JTAG电路的原理与设计 245
JTAG电路的工作原理 245
Xilinx JTAG下载线 248
5.3 FPGA的常用配置电路 250
主串模式——最常用的FPGA配置模式 251
SPI串行Flash配置模式 257
从串配置模式 262
字节宽度外部接口并行配置模式 265
JTAG配置模式 270
System ACE配置方案 273
5.4 iMPACT软件使用 277
iMPACT综述与基本操作 278
使用iMPACT创建配置文件 280
使用iMPACT配置芯片 289
FPGA配置失败的常见问题 289
5.5从配置PROM中读取用户数据 290
从PROM中引导数据简介 290
硬件电路设计方法 291
软件操作流程 293
5.6本章小结 294
第6章 在线逻辑分析仪ChipScope的使用 295
6.1 ChipScope介绍 295
ChipScope Pro简介 295
ChipScope Pro软件的安装 297
ChipScope Pro的使用流程 298
6.2 ChipScope Core Generator使用说明 299
ChipScope Pro核的基本介绍 299
ChipScope核的生成流程 301
6.3 ChipScope Core Inserter使用说明 305
Core Inserter的用户界面 305
Core Inserter的基本操作 306
6.4 ChipScope Pro Analyzer使用说明 311
ChipScope分析仪的用户界面 311
ChipScope Analyzer的基本操作 312
6.5在ISE中直接调用ChipScope的应用实例 314
在工程中添加ChipScope Pro文件 315
在ChipScope Pro中完成下载和观察 315
6.6本章小结 316
第7章 基于FPGA的数字信号处理技术 317
7.1数字信号概述 317
数字信号的产生 317
采样定理 318
数字系统的主要性能指标 319
7.2离散傅里叶变换基础 319
离散傅里叶变换 319
频域应用 320
FFT/IFFT IP Core的使用 322
7.3 XtremeDSP模块功能介绍 325
7.4乘累加结构的FIR滤波器 326
单乘法器MAC FIR滤波器 326
对称MAC FIR滤波器 330
MAC FIR滤波器IP Core的使用 334
7.5半并行/并行FIR滤波器 338
并行FIR滤波器 338
半并行FIR滤波器 339
FIR Compiler IP Core的使用 340
7.6多通道FIR滤波器 344
滤波器组的基本概念 344
多通道FIR滤波器的基本原理 345
多通道FIR滤波器组的FPGA实现 346
7.7本章小结 349
第8章 基于System Generator的DSP系统开发技术 350
8.1 System Generator的简介与安装 350
System Generator简介 350
System Generator的主要特征 351
System Generator软件的安装和配置 352
8.2 System Generator入门基础 354
System Generator开发流程简介 354
Simulink基础 356
AccelDSP软件工具 358
8.3基于System Generator的DSP系统设计 359
System Generator快速入门 359
System Generator中的信号类型 368
自动代码生成 369
编译MATLAB设计生成FPGA代码 370
子系统的建立和使用 373
8.4基于System Generator的硬件协仿真 380
硬件协仿真平台的介绍与平台安装 380
硬件协仿真的基本操作 381
共享存储器的操作 385
8.5 System Generator的高级应用 387
导入外部的HDL程序模块 387
设计在线调试 392
系统中的多时钟设计 394
软、硬件联合开发 397
FPGA设计的高级技巧 399
设计资源评估 403
8.6开发实例:基于FIR滤波器的协仿真实例 403
8.7本章小结 407
第9章 基于FPGA的可编程嵌入式开发技术 408
9.1可编程嵌入式系统(EDK)介绍 408
基于FPGA的可编程嵌入式开发系统 408
Xilinx公司的解决方案 409
9.2 Xilinx嵌入式开发系统组成介绍 409
片内微处理器软核MicroBlaze 410
片内微处理器PowerPC 413
常用的IP核以及设备驱动 415
系统设计方案 424
9.3 EDK软件基本介绍 426
EDK的介绍与安装 427
EDK设计的实现流程 429
EDK的文件管理架构 431
9.4 XPS软件的基本操作 435
XPS的启动 435
利用BSB创建新工程 436
XPS的用户界面 441
XPS的目录结构与硬件平台 448
在XPS加入IP Core 450
在XPS中定制用户设备的IP 452
XPS中IP Core API函数的查阅和使用方法 468
9.5 XPS软件的高级操作 469
XPS的软件输入 469
XPS中的设计仿真 473
将EDK设计作为ISE设计的子系统 481
XPS对嵌入式操作系统的支持 485
XPS工程的实现和下载 485
在线调试工具XMD的使用 490
XPS中ChipScope的使用 496
软件平台SDK的使用 504
9.6 EDK开发实例——DDR SDRAM接口控制器 510
DDR SDRAM工作原理 510
DDR SDRAM控制器的EDK实现 510
DDR SDRAM控制器的调试 520
9.7本章小结 521
第10章 基于FPGA的高速数据连接技术 522
10.1高速数据连接功能简介 522
高速数据传输的背景 522
Xilinx公司高速连接功能的解决方案 523
10.2实现吉比特高速串行I/O的相关技术 523
吉比特高速串行I/O的特点和应用 523
吉比特串行I/O系统的组成 525
吉比特串行I/O的设计要点 528
10.3基于Rocket I/O高速串行技术 530
Rocket I/O技术简介 530
Aurora协议 531
Rocket I/O硬核模块的体系结构 532
Rocket I/O的时钟设计方案 544
Rocket I/O的开发要素 548
Rocket I/O IP Core的使用 553
10.4基于Xilinx FPGA的千兆以太网控制器的开发 555
千兆以太网技术 555
基于FPGA的千兆以太网MAC控制器实现方案 556
Xilinx千兆以太网MAC IP Core 561
10.5本章小结 565
第11章 时序分析原理以及时序分析器的使用 566
11.1时序分析的作用和原理 566
时序分析的作用 566
静态时序分析原理 567
时序分析的基础知识 568
11.2 Xilinx FPGA中的时钟资源 573
全局时钟资源 574
第二全局时钟资源 577
11.3时序约束 578
使用约束文件添加时序约束 578
使用约束编辑器添加时序约束 582
11.4 ISE时序分析器 590
时序分析器简介 591
时序分析器的文件类型 591
时序分析器的调用与用户界面 592
时序分析器的基本使用方法 599
提高时序性能的手段 602
11.5本章小结 606
缩略语 607
参考文献 610