本书根据电子信息类课程教学和实验要求,以提高学生的实践动手能力和工程设计能力为目的,对EDA技术和VHDL设计的相关知识进行系统和完整的介绍。全书共10章,主要内容包括:EDA技术概述、可编程逻辑器件基础、典型FPGA/CPLD的结构与配置、原理图与宏功能模块设计、VHDL设计输入方式、VHDL结构与要素、VHDL基本语句与基本设计、VHDL设计进阶、数字接口实例及分析、通信算法实例及分析等。
第1章 EDA技术概述 1
1.1 EDA技术及其发展历程 1
1.2 EDA技术的特征和优势 3
1.2.1 EDA技术的基本特征 4
1.2.2 EDA技术的优势 6
1.3 EDA设计的目标和流程 7
1.3.1 EDA技术的实现目标 8
1.3.2 EDA设计流程 8
1.3.3 数字集成电路的设计 9
1.3.4 模拟集成电路的设计 10
1.4 EDA技术与ASIC设计 11
1.4.1 ASIC的特点与分类 11
1.4.2 ASIC的设计方法 12
1.4.3 SoC设计 15
1.5 硬件描述语言 18
1.5.1 VHDL 18
1.5.2 Verilog HDL 19
1.5.3 AHDL 19
1.5.4 Verilog HDL和VHDL的比较 20
1.6 EDA设计工具 20
1.6.1 EDA设计工具分类 21
1.6.2 EDA公司与工具介绍 22 [1]
习题1 25
第2章 可编程逻辑器件基础 26
2.1 概述 26
2.1.1 可编程逻辑器件发展历程 26
2.1.2 可编程逻辑器件分类 27
2.1.3 可编程逻辑器件的优势 30
2.1.4 可编程逻辑器件的发展趋势 30
2.2 PLD器件的基本结构 32
2.2.1 基本结构 32
2.2.2 电路符号 33
2.2.3 PROM 34
2.2.4 PLA 35
2.2.5 PAL 36
2.2.6 GAL 37
2.3 CPLD/FPGA的结构特点 39
2.3.1 Lattice公司的CPLD/FPGA 39
2.3.2 Xilinx公司的CPLD/FPGA 41
2.3.3 Altera和Actel公司的CPLD/FPGA 44
2.3.4 CPLD和FPGA的异同 45
2.4 可编程逻辑器件的基本资源 45
2.4.1 功能单元 46
2.4.2 输入-输出焊盘 46
2.4.3 布线资源 47
2.4.4 片内RAM 49 [1]
2.5 可编程逻辑器件的编程工艺 50
2.5.1 熔丝型开关 50
2.5.2 反熔丝型开关 51
2.5.3 浮栅编程器件 51
2.5.4 基于SRAM的编程器件 54
2.6 可编程逻辑器件的设计与开发 54
2.6.1 CPLD/FPGA设计流程 54
2.6.2 CPLD/FPGA开发工具 57
2.6.3 CPLD/FPGA的应用选择 59
2.7 可编程逻辑器件的测试技术 61
2.7.1 边界扫描测试原理 62
2.7.2 IEEE 1149.1标准 62
2.7.3 边界扫描策略及相关工具 66 [1]
习题2 66
第3章 典型FPGA/CPLD的结构与配置 68
3.1 Stratix高端FPGA系列 68
3.1.1 Stratix器件 68
3.1.2 Stratix II器件 71
3.2 Cyclone低成本FPGA系列 74
3.2.1 Cyclone器件 74
3.2.2 Cyclone II器件 78
3.3 典型CPLD器件 84
3.3.1 MAX II器件 84
3.3.2 MAX 7000器件 85
3.4 FPGA/CPLD的配置 87
3.4.1 CPLD器件的配置 88
3.4.2 FPGA器件的配置 89
习题3 93
第4章 原理图与宏功能模块设计 94
4.1 Quartus II原理图设计 94
4.1.1 半加器原理图输入 94
4.1.2 半加器编译 97
4.1.3 半加器仿真 99
4.1.4 全加器设计与仿真 101
4.2 Quartus II的优化设置 102
4.2.1 Settings设置 102
4.2.2 分析与综合设置 104
4.2.3 优化布局布线 104
4.2.4 使用设计助手检查设计可靠性 110
4.3 Quartus II的时序分析 112 [1]
4.3.1 时序设置与分析 112
4.3.2 时序逼近 115
4.4 宏功能模块设计 117
4.4.1 Megafunctions库 117
4.4.2 Maxplus2库 126
4.4.3 Primitives库 127
习题4 129
第5章 VHDL设计输入方式 132
5.1 Quartus II的VHDL输入设计 132
5.1.1 创建工程文件 133
5.1.2 编译 134
5.1.3 仿真 136
5.2 Synplify Pro的VHDL输入设计 137
5.2.1 用Synplify Pro综合的过程 139
5.2.2 Synplify Pro与Quartus II的接口 142
5.3 Synplify的VHDL输入设计 143
习题5 146
第6章 VHDL结构与要素 147 [1]
6.1 实体 147
6.1.1 类属参数说明 148
6.1.2 端口说明 149
6.1.3 实体描述举例 150
6.2 结构体 151
6.2.1 结构体的命名 151
6.2.2 结构体信号定义语句 152
6.2.3 结构体功能描述语句 152
6.2.4 结构体描述方法 152
6.3 VHDL库 154
6.3.1 库的种类 154
6.3.2 库的用法 155
6.4 VHDL程序包 157
6.4.1 程序包组成和格式 157
6.4.2 VHDL标准程序包 158
6.5 配置 159
6.5.1 默认配置 159
6.5.2 结构体的配置 161
6.6 VHDL文字规则 163
6.6.1 标志符 163
6.6.2 数字 164
6.6.3 字符串 164
6.7 VHDL数据类型 165
6.7.1 预定义数据类型 165
6.7.2 自定义数据类型 167
6.7.3 用户自定义的子类型 169
6.7.4 数据类型的转换 169
6.8 VHDL操作符 171 [1]
6.8.1 逻辑操作符 171
6.8.2 关系操作符 171
6.8.3 算术操作符 172
6.8.4 并置操作符 173
6.8.5 操作符重载 173
6.9 数据对象 174
6.9.1 常量 174
6.9.2 变量 175
6.9.3 信号 176
6.9.4 文件 176
习题6 177
第7章 VHDL基本语句与基本设计 178
7.1 顺序语句 178
7.1.1 赋值语句 178
7.1.2 IF语句 178
7.1.3 CASE语句 181
7.1.4 LOOP语句 182
7.1.5 NEXT语句 184
7.1.6 EXIT语句 184
7.1.7 WAIT语句 185
7.1.8 子程序调用语句 186
7.2 并行语句 188
7.2.1 并行信号赋值语句 188
7.2.2 进程语句 191
7.2.3 并行过程调用语句 192
7.2.4 元器件例化语句 193
7.2.5 生成语句 195
7.3 VHDL组合逻辑电路设计 198
7.4 VHDL时序逻辑电路设计 204
7.4.1 触发器 204
7.4.2 寄存器 206
7.4.3 计数器 207 [1]
7.4.4 分频器 208
习题7 211
第8章 VHDL设计进阶 212
8.1 VHDL行为描述方式 212
8.2 VHDL结构化描述方式 214
8.3 VHDL RTL描述方式 217
8.4 有限状态机(FSM)设计 218 [1]
8.4.1 Moore和Mealy状态机的选择 218
8.4.2 有限状态机的描述方式 220
8.4.3 有限状态机的同步和复位 228
8.4.4 改进的Moore型有限状态机 234
8.4.5 小结 239
习题8 240
第9章 数字接口实例及分析 242
9.1 ST-BUS总线接口设计 242
9.1.1 ST-BUS总线时序关系 242
9.1.2 ST-BUS总线接口实例 244
9.2 数字复接分接接口技术及设计 248
9.2.1 数字复接分接接口技术原理 249
9.2.2 同步数字复接分接接口设计实例 250
9.3 I2C接口设计 256 [1]
9.3.1 I2C总线工作原理 257
9.3.2 I2C总线接口设计实例 259
9.4 GMSK基带调制接口设计 265
9.4.1 GMSK调制基本原理 265
9.4.2 GMSK调制实现的基本方法 267
9.4.3 GMSK基带调制接口的实现代码 268
习题9 286
第10章 通信算法实例及分析 287
10.1 伪随机序列的产生、检测设计 287
10.1.1 m序列的产生 287
10.1.2 m序列的性质 288
10.1.3 m序列发生器的VHDL设计 288
10.1.4 m序列检测电路的VHDL设计 290
10.2 比特同步设计 294
10.2.1 锁相功能的自同步法原理 294
10.2.2 锁相比特同步的EDA实现方法 296
10.3 基带差分编码设计 305
10.3.1 PSK调制和差分编码原理 305
10.3.2 PSK差分编码设计 308
10.4 FIR滤波器设计 314
10.4.1 FIR滤波器简介 314
10.4.2 使用MATLAB设计FIR滤波器 316
10.4.3 FIR滤波器的FPGA普通设计 317 [1]
10.4.4 FIR滤波器的并行FPGA优化设计 319
习题10 326
参考文献 327