第一章 数字系统设计与FPGA 1
1.1 数字系统设计自动化技术的发展历程 1
1.2 数字系统的设计流程 2
1.3 基于FPGA的数字系统设计 5
1.3.1 可编程逻辑器件的发展历史 5
1.3.2 基于FPGA的数字系统设计流程 6
第二章 现场可编程门阵列FPGA 9
2.1 FPGA的结构和工作原理 9
2.2 Xilinx产品概述 12
2.2.1 Spartan系列 12
2.2.2 Virtex系列 13
2.3 FPGA的配置 15
2.4 实验平台的选择 17
第三章 Xilinx ISE开发套件 19
3.1 ISE 10.1开发流程 19
3.1.1 设计输入 20
3.1.2 仿真 26
3.1.3 添加约束 28
3.1.4 综合 38
3.1.5 实现 43
3.1.6 iMPACT编程与配置 46
3.2 ISE高级组件 54
3.2.1 在线逻辑分析仪(ChipScope Pro) 54
3.2.2 平面布局规划器(PlanAhead) 55
3.2.3 时序分析器(Timing Analyzer) 56
3.2.4 布局规划器(Floorplanner) 61
3.2.5 功耗分析工具(XPower) 62
【设计实践】 65
3-1 ChipScope Pro的逻辑分析实验 65
第四章 基本数字电路的VHDL设计 75
4.1 组合逻辑电路的VHDL设计 75
4.1.1 加法器 75
4.1.2 多路选择器 79
4.1.3 编码器与译码器 82
【设计实践】 85
4-1 快速加法器的设计 85
4-2 4×4乘法器的设计 87
4-3 ChipScope Pro的VIO实验 89
4.2 时序电路的VHDL设计 93
4.2.1 基础时序元件 95
4.2.2 计数器的VHDL设计 100
4.2.3 堆栈与FIFO 103
4.2.4 多边沿触发问题 107
【设计实践】 110
4-4 奇数与半整数分频器设计 110
4-5 DCM模块设计实例 112
4.3 有限状态机的VHDL设计 120
4.3.1 VHDL状态机的一般形式 120
4.3.2 有限状态机的一般设计方法 127
4.3.3 有限状态机的VHDL描述 129
【设计实践】 135
4-6 交通灯控制器 135
4-7 乒乓游戏设计 138
第五章 FPGA开发设计方法 142
5.1 FPGA系统设计的基本原则 142
5.1.1 面积与速度的平衡互换原则 142
5.1.2 硬件可实现原则 143
5.2 FPGA中的同步设计 144
5.3 FPGA中的时钟设计 145
5.3.1 全局时钟 145
5.3.2 门控制时钟 146
5.3.3 多级逻辑时钟 149
5.3.4 行波时钟 150
5.3.5 多时钟系统 151
5.4 FPGA系统设计的常用技巧 153
5.4.1 乒乓操作 153
5.4.2 串并/并串转换 155
5.4.3 流水线设计 155
【设计实践】 158
5-1 32位流水线加法器的设计 158
第六章 综合设计实例 161
6.1 数码管扫描显示电路 161
6.2 八位除法器的设计 166
6.3 Virtex-Ⅱ Pro的SVGA显示控制器设计 171
第七章 数字系统综合实验 182
7.1 数字时钟设计 182
7.2 直接数字频率合成技术(DDS)的设计与实现 186
7.3 音乐播放器实验 191
7.4 基于FPGA的FIR数字滤波器的设计 202
7.5 数字下变频器(DDC)的设计 207
第八章 CPU设计 211
附录一 Vivado设计套件 232
附录1.1 单一的、共享的、可扩展的数据模型 232
附录1.2 标准化XDC约束文件——SDC 233
附录1.3 多维度解析布局器 234
附录1.4 IP封装器、集成器和目录 235
附录1.5 Vivado HLS把ESL带入主流 237
附录1.6 其他特性 238
附录二 XUP Virtex-Ⅱ Pro开发系统的使用 240
附录2.1 Virtex-Ⅱ Pro FPGA主芯片介绍 241
附录2.2 电源供电模块 241
附录2.3 时钟电路 242
附录2.4 SVGA视频模块 243
附录2.5 AC97音频解码模块 244
附录2.6 RS232串行接口模块 245
附录2.7 PS2接口模块 246
附录2.8 开关、按键和LED指示灯 247
附录2.9 下载配置模块 247
附录2.10 高速和低速的扩展连接器 248
附录三 通用型开发板底板普及板V11.0.1的使用 251
参考文献 253