第1章 EDA概述 1
1.1 EDA工程简介 1
1.2 EDA技术的发展历程和未来展望 2
1.2.1 计算机辅助设计阶段 3
1.2.2 计算机辅助工程设计阶段 3
1.2.3 现代电子系统设计自动化阶段 3
1.2.4 EDA技术的未来展望 4
1.3 EDA技术的应用 4
1.3.1 PCB设计 5
1.3.2 ASIC设计 6
1.3.3 CPLD/FPGA设计 8
1.4 EDA工程的设计流程 8
1.4.1 设计输入 9
1.4.2 逻辑综合和优化 10
1.4.3 布局布线和适配 11
1.4.4 工程设计的仿真 11
1.4.5 目标器件的编程和下载 11
1.4.6 硬件电路的后仿真验证和测试 12
1.5 EDA集成开发工具 12
1.5.1 Quartus Ⅱ 12
1.5.2 ISE+ModelSim 13
1.5.3 ispLEVER 14
1.5.4 其他开发工具 15
1.6 EDA技术的学习重点和学习方法 15
1.6.1 EDA技术的学习重点 15
1.6.2 EDA技术的学习方法 16
1.7 本章小结 16
1.8 思考和练习 16
1.8.1 填空 16
1.8.2 选择 17
1.8.3 问答 17
第2章 可编程逻辑器件 18
2.1 可编程逻辑器件概述 18
2.1.1 可编程逻辑器件的发展 18
2.1.2 可编程逻辑器件的分类 20
2.2 PLD内部结构的表示方法 22
2.3 CPLD的基本结构和工作原理 23
2.3.1 CPLD的基本结构 24
2.3.2 Lattice公司的CPLD 24
2.3.3 Altera公司的CPLD 28
2.4 FPGA的结构和工作原理 33
2.4.1 FPGA的基本结构 33
2.4.2 Altera公司的FPGA 35
2.4.3 Xilinx公司的FPGA 38
2.5 FPGA的配置方式 40
2.5.1 主动串行配置 41
2.5.2 主动并行配置 41
2.5.3 菊花链配置 42
2.6 CPLD/FPGA的应用选型 42
2.6.1 器件逻辑资源的选择 42
2.6.2 芯片速度的选择 43
2.6.3 器件功耗的选择 43
2.6.4 器件封装的选择 43
2.6.5 CPLD/FPGA的选择 43
2.7 本章小结 44
2.8 思考和练习 44
2.8.1 填空 44
2.8.2 选择 44
2.8.3 问答 45
第3章 VHDL硬件描述语言 46
3.1 硬件描述语言概述 46
3.1.1 硬件描述语言(HDL) 46
3.1.2 HDL的种类 47
3.1.3 VHDL语言的特点 51
3.1.4 VHDL和Verilog的比较 52
3.1.5 VHDL的硬件环境 53
3.2 VHDL程序的基本结构 53
3.2.1 VHDL的设计风格 54
3.2.2 VHDL设计简述 56
3.2.3 VHDL的实体说明 60
3.2.4 VHDL的结构体 62
3.3 VHDL的基本词法 65
3.3.1 标识符 65
3.3.2 对象 66
3.3.3 数据类型 69
3.3.4 类型转换 73
3.3.5 运算操作符 74
3.4 VHDL的基本语句 78
3.4.1 赋值语句 79
3.4.2 IF语句 80
3.4.3 CASE语句 82
3.4.4 LOOP语句 83
3.4.5 PROCESS语句 84
3.4.6 COMPONENT语句 86
3.4.7 PORT MAP端口映射语句 88
3.5 VHDL的描述风格 89
3.5.1 行为级描述 89
3.5.2 数据流描述 91
3.5.3 门级描述 92
3.5.4 混合描述 94
3.6 本章小结 94
3.7 思考和练习 95
3.7.1 填空 95
3.7.2 选择 95
3.7.3 实验 97
第4章 Quartus Ⅱ操作指南 102
4.1 Quartus Ⅱ基本设计流程 102
4.1.1 创建工程 102
4.1.2 编译工程 107
4.1.3 时序仿真 108
4.1.4 Viewer工具 113
4.1.5 引脚锁定和下载 115
4.2 嵌入式逻辑分析仪SignalTap Ⅱ 116
4.2.1 SignalTap Ⅱ的启动 117
4.2.2 调入待测信号 117
4.2.3 SignalTap Ⅱ的参数设置 117
4.2.4 SignalTap Ⅱ文件的保存和编译下载 118
4.2.5 SignalTap Ⅱ的采样分析 118
4.3 LPM_ROM宏模块的使用 119
4.3.1 LPM_ROM宏模块的工作原理 119
4.3.2 初始化数据文件 119
4.3.3 定制LPM_ROM元件 120
4.3.4 顶层文件的仿真测试 124
4.4 本章小结 126
4.5 思考和练习 126
4.5.1 填空 126
4.5.2 选择 126
4.5.3 实验 127
第5章 VHDL基本逻辑电路设计 129
5.1 组合逻辑电路设计 129
5.1.1 基本门电路的设计 129
5.1.2 三态门及总线缓冲器的设计 131
5.1.3 优先编码器的设计 134
5.1.4 译码器的设计 138
5.1.5 运算器的设计 141
5.1.6 多路选择器的设计 143
5.2 时序逻辑电路设计 145
5.2.1 触发器的设计 145
5.2.2 寄存器的设计 149
5.2.3 计数器的设计 152
5.3 存储器设计 154
5.3.1 只读存储器的设计 154
5.3.2 静态数据存储器的设计 156
5.3.3 先进先出堆栈的设计 157
5.4 状态机设计 161
5.4.1 状态机概述 161
5.4.2 Moore状态机的设计 162
5.4.3 Mealy状态机的设计 165
5.4.4 容错状态机的设计 167
5.5 本章小结 168
5.6 思考和练习 168
5.6.1 填空 168
5.6.2 选择 169
5.6.3 实验 170
第6章 VHDL语句进阶 174
6.1 并行语句 174
6.1.1 块语句 174
6.1.2 生成语句 177
6.1.3 报告语句 180
6.1.4 并行断言语句 182
6.1.5 过程调用语句 183
6.2 顺序语句 184
6.2.1 WAIT语句 185
6.2.2 NEXT语句 186
6.2.3 EXIT语句 187
6.2.4 NULL语句 188
6.2.5 RETURN语句 188
6.3 本章小结 189
6.4 思考和练习 190
6.4.1 填空 190
6.4.2 选择 190
6.4.3 实验 191
第7章 VHDL的属性描述和仿真延时 193
7.1 预定义属性 193
7.2 数值类属性函数 194
7.2.1 数值类型属性函数 194
7.2.2 数值数组属性函数 195
7.2.3 数值块属性函数 196
7.3 函数属性 197
7.3.1 函数类型属性 197
7.3.2 函数数组属性 199
7.3.3 函数信号属性 200
7.4 信号属性 202
7.4.1 带DELAYED(time)属性的信号 202
7.4.2 带STABLE(time)属性的信号 203
7.4.3 带QUIET(time)属性的信号 203
7.4.4 带TRANSACTION属性的信号 204
7.5 数据类型的属性函数 205
7.6 数据区间的属性函数 205
7.7 VHDL的设计仿真 207
7.7.1 仿真的概念 207
7.7.2 仿真延迟 207
7.7.3 仿真周期 209
7.8 时间数字转化器的设计 210
7.8.1 时间数字转化器的应用 210
7.8.2 TDC的工作原理 211
7.8.3 TDC的分类 212
7.8.4 延时链结构TDC在FPGA上的实现 215
7.9 本章小结 220
7.10 思考和练习 220
7.10.1 填空 220
7.10.2 选择 221
7.10.3 实验 221
第8章 VHDL层次化程序设计 223
8.1 层次化程序设计方法 223
8.2 库和程序包 224
8.2.1 库 224
8.2.2 程序包 225
8.2.3 常用的程序包 226
8.3 文件输入/输出程序包 230
8.3.1 TEXTIO程序包语法 230
8.3.2 TEXTIO程序包的过程函数 231
8.3.3 TEXTIO程序包的调用 232
8.4 元件的配置 233
8.4.1 默认连接和默认配置 233
8.4.2 元件配置 236
8.5 子程序 238
8.6 重载 239
8.6.1 函数重载 239
8.6.2 运算符重载 240
8.6.3 别名 241
8.7 本章小结 242
8.8 思考和练习 242
8.8.1 填空 242
8.8.2 选择 243
8.8.3 实验 243
第9章 VHDL的数字系统设计 245
9.1 数字系统概述 245
9.2 数字系统的设计方法和设计流程 246
9.3 数字系统设计实例 248
9.3.1 七段数码管驱动电路的设计 248
9.3.2 键盘接口的设计 253
9.3.3 DAC接口的设计 258
9.3.4 ADC接口的设计 264
9.3.5 八音盒的设计 272
9.3.6 UART接口的设计 278
9.4 本章小结 286
9.5 实验练习 287
第10章 VHDL在通信和DSP系统中的应用 290
10.1 通信与DSP系统概述 290
10.2 通信与DSP系统设计实例 291
10.2.1 ASK调制解调器的设计 291
10.2.2 快速加法器的设计 298
10.2.3 快速乘法器的设计 302
10.2.4 CORDIC极坐标转换器的设计 310
10.2.5 FIR数字滤波器的设计 314
10.2.6 IIR数字滤波器的设计 319
10.3 本章小结 321
10.4 实验练习 322