第1章 概述 1
1.1 EDA技术及其重要性 1
1.1.1 EDA技术的实例引入 1
1.1.2 EDA技术的概念 3
1.1.3 EDA技术的重要性 4
1.2 EDA技术的知识体系 4
1.2.1 可编程逻辑器件 5
1.2.2 硬件描述语言 5
1.2.3 EDA工具软件 6
1.3 EDA技术的特点和发展趋势 7
1.3.1 EDA技术的主要特点 7
1.3.2 EDA技术的发展趋势 9
1.4 专用集成电路 11
1.4.1 ASIC的概念和分类 11
1.4.2 可编程ASIC技术展望 11
本章小结 12
思考题与习题 12
第2章 可编程逻辑器件 13
2.1 概述 13
2.1.1 可编程逻辑器件的发展历程 13
2.1.2 可编程逻辑器件的分类 13
2.1.3 PLD的基本结构 15
2.1.4 PLD逻辑符号的画法和约定 16
2.2 简单PLD 16
2.2.1 PAL 16
2.2.2 GAL 20
2.3 CPLD和FPGA 24
2.3.1 CPLD的基本结构 24
23.2 FPGA的基本结构 25
2.3.3 Altera公司器件介绍 27
2.4 在系统可编程逻辑器件 29
2.4.1 在系统可编程技术的特点 29
2.4.2 ispLSI的结构及系列器件介绍 29
2.4.3 ispGDS介绍 38
2.5 FPGA和CPLD的应用选择 40
2.5.1 FPGA和CPLD的性能比较 40
2.5.2 FPGA和CPLD的选用依据 41
本章小结 44
思考题与习题 45
第3章 EDA工具软件与设计入门 46
3.1 EDA设计流程 46
3.1.1 设计输入 46
3.1.2 设计实现 48
3.1.3 设计仿真 49
3.1.4 编程或配置 49
3.2 CPLD和FPGA的编程与配置方法 50
3.2.1 CPLD的ISP方式编程 50
3.2.2 使用PC并行口配置FPGA 51
3.2.3 用专用配置器件配置FPGA 52
3.2.4 使用单片机配置FPGA 53
3.3 常用EDA工具软件 55
3.3.1 MAX+plusⅡ概述 56
3.3.2 Lattice公司设计软件概述 57
3.3.3 QuartusⅡ概述 58
3.4 QuartusⅡ软件的图形用户界面 58
3.5 QuartusⅡ的原理图输入设计示例 61
3.5.1 1位全加器的设计 62
3.5.2 1位全加器的层次化设计方法 71
3.5.3 总结与补充说明 73
本章小结 75
思考题与习题 76
第4章 VHDL硬件描述语言 77
4.1 VHDL概述 77
4.1.1 VHDL的优点 77
4.1.2 VHDL与Verilog、ABEL语言的比较 78
4.1.3 学习VHDL的注意事项 79
4.2 VHDL程序结构 80
4.2.1 简单VHDL程序举例 81
4.2.2 实体 82
4.2.3 结构体 85
4.2.4 库 89
4.2.5 程序包 92
4.2.6 配置 95
4.3 VHDL语言要素 97
4.3.1 文字规则 97
4.3.2 数据对象 100
4.3.3 数据类型 103
4.3.4 类型转换 107
4.3.5 操作符 109
4.4 VHDL顺序语句 112
4.4.1 IF语句 113
4.4.2 CASE语句 116
4.4.3 LOOP语句 118
4.4.4 NEXT语句 121
4.4.5 EXIT语句 122
4.4.6 WAIT语句 123
4.4.7 RETURN语句 124
4.4.8 NULL语句 125
4.5 VHDL并行语句 125
4.5.1 进程语句 126
4.5.2 并行信号赋值语句 127
4.5.3 块语句 130
4.5.4 元件例化语句 132
4.5.5 生成语句 134
4.6 子程序及子程序调用语句 135
4.6.1 子程序的定义 135
4.6.2 子程序的调用 137
4.6.3 子程序的重载 140
4.7 其他语句 143
4.7.1 断言语句 143
4.7.2 报告语句 143
4.7.3 属性语句 144
本章小结 147
思考题与习题 148
第5章 常用VHDL设计实例 152
5.1 组合逻辑电路设计 152
5.1.1 门电路的设计 152
5.1.2 常用组合电路的设计 154
5.2 时序逻辑电路设计 159
5.2.1 触发器设计 160
5.2.2 移位寄存器设计 162
5.2.3 计数器设计 164
5.3 状态机设计 166
5.3.1 摩尔型状态机的设计 167
5.3.2 米里型状态机的设计 171
5.4 存储器设计 173
5.4.1 只读存储器 173
5.4.2 静态随机存储器 174
5.4.3 先入后出堆栈 175
5.5 特色实用电路设计 176
5.5.1 计数器型防抖动电路设计 176
5.5.2 积分分频器电路设计 177
本章小结 178
思考题与习题 179
第6章 QuartusⅡ软件使用进阶 180
6.1 QuartusⅡ的VHDL文本输入设计流程 180
6.1.1 建立工作库文件夹和编辑设计文本 181
6.1.2 创建工程 181
6.1.3 编译前设置 184
6.1.4 全程编译 184
6.1.5 时序仿真 186
6.1.6 RTL电路图观察器 189
6.1.7 引脚锁定 190
6.1.8 配置文件下载 192
6.2 应用宏功能的原理图设计 194
6.2.1 计数器设计 194
6.2.2 频率计主体电路设计 197
6.2.3 时序控制电路的设计 197
6.2.4 顶层电路设计 198
6.2.5 引脚锁定和下载 200
6.3 参数化模块库LPM的应用 200
6.3.1 ROM的使用 200
6.3.2 RAM的使用 206
6.3.3 LPM的原理图调用方法 209
6.3.4 LPM的VHDL文本方式调用 212
6.4 层次电路设计 221
6.4.1 顶层文件设计 222
6.4.2 创建各模块的下层设计文件 223
6.4.3 设计项目的编译仿真 225
6.4.4 层次显示 225
6.5 嵌入式逻辑分析仪 226
本章小结 230
思考题与习题 230
第7章 EDA技术综合应用设计实例 232
7.1 数字钟 232
7.1.1 数字钟的设计要求 232
7.1.2 数字钟的顶层结构 232
7.1.3 数字钟各模块的VHDL源程序设计 234
7.2 智力竞赛抢答器 240
7.2.1 抢答器的功能描述 240
7.2.2 抢答器的设计 241
7.3 交通灯控制器 244
7.3.1 交通灯控制器功能要求 244
7.3.2 交通灯控制器的设计 245
7.3.3 仿真波形 247
7.3.4 下载验证 247
7.4 8路彩灯控制器 248
7.4.1 8路彩灯控制器的功能要求 248
7.4.2 8路彩灯控制器的设计 248
7.4.3 下载验证 252
7.5 简易数字频率计 252
7.5.1 设计任务 252
7.5.2 数字频率计的设计 252
本章小结 256
思考题与习题 256
第8章 EDA实验开发系统与实验 258
8.1 GW48系列实验开发系统使用说明 258
8.1.1 GW48系统使用注意事项 258
8.1.2 GW48系统主板结构与使用方法 258
8.1.3 实验电路结构图 264
8.1.4 GW48-CK/GK/PK系统结构图信号与芯片引脚对照表 273
8.2 EDA实验 278
8.2.1 实验1——用原理图输入法设计4位全加器 278
8.2.2 实验2——计数译码显示电路设计 280
8.2.3 实验3——计数器的设计 283
8.2.4 实验4——简易彩灯控制器 285
8.2.5 实验5——用原理图输入法设计2位十进制计数译码器 287
8.2.6 实验6——用原理图输入法设计2位十进制频率计 287
8.2.7 实验7——序列检测器设计 289
8.2.8 实验8——用LPM设计8位数控分频器和4位乘法器 291
8.2.9 实验9——脉宽可调的方波信号发生器设计 292
8.2.10 实验10——“梁祝”乐曲演奏电路 295
参考文献 304