
本书从EDA技术的应用角度出发,简明而系统地介绍了EDA技术的相关内容。包括EDA技术的概念及特点,EDA技术的物质载体--可编程逻辑器件,EDA技术的设计语言--硬件描述语言VHDL, EDA技术的开发设计流程和工具软件MAX+ plusII及QuartusII。此外,第5章给出了大量常用VHDL设计实例,第8章详细阐述了几个典型的EDA技术综合应用设计实例,并在第9章编写了多个实验项目。
全书在取材和编排上,力求理论联系实际,由浅入深,循序渐进。每章后面附有小结和习题,便于读者学习和教学使用。
本书可作为高职高专电子信息、通信、自动化、计算机等相关专业的教材及社会相关技术的培训教材,也可作为相关学科工程技术人员的参考书,还可作为电子产品制作、科技创新实践、EDA课程设计和毕业设计等实践活动的参考书。
EDA(电子设计自动化)技术是近年迅速发展起来的计算机软件、硬件和微电子交叉的现代电子设计学科,是现代电子工程领域的一门新技术。它是以可编程逻辑器件(PLD)为物质基础、以计算机为工作平台、以EDA工具软件为开发环境、以硬件描述语言(HDL)作为电子系统功能描述的主要方式、以电子系统设计为应用方向的电子产品自动化设计过程。
在当今这个以数字化和网络化为特征的信息技术革命大潮中,电子技术获得了飞速发展,现代电子产品几乎渗透到社会的各个领域。现代电子产品的性能也在进一步提高,产品更新换代的节奏也越来越快。不仅如此,现代电子产品正在以前所未有的革新速度,向着功能多样化、体积小型化、功耗最低化的方向迅速发展。所有这些,都离不开EDA技术的有力支持,因此有专家指出,现代电子设计技术的发展主要体现在EDA工程领域。EDA是电子产品开发研制的动力源和加速器,是现代电子设计的核心。因此,在大中专院校的电子、通信、控制、计算机等各类学科的教学中引入EDA技术的内容,以适应现代电子技术的飞速发展是很有必要的。
本书是作者在多年从事EDA教学的基础上,充分吸收读者对已出版使用的《EDA应用技术》的反馈意见,综合EDA技术的特点和发展现状编写而成。在内容的安排和取舍上,既考虑了EDA技术本身的系统性和完整性,又考虑了EDA技术的实用性和教学可操作性,尽量做到理论与实践有机结合。全书内容按照可编程逻辑器件-EDA开发流程与工具软件-VHDL语言-常用VHDL设计实例-MAX+plusII软件及应用-QuartusII软件及应用-EDA技术综合应用设计实例-EDA实验开发系统及实验的顺序编写。无论是器件的介绍、硬件描述语言(HDL)的讲解,还是EDA工具软件的使用,都以目前市场上应用广泛的主流内容来展开,力求重点突出,避免面面俱到、纷杂而不深入。此外,由于EDA是一门实践性很强的技术,不能仅仅停留在理论学习上,故本书特别注重对读者应用能力的培养。通过第4、5、8章大量的设计实例,可以帮助读者较好地掌握用VHDL(超高速集成电路硬件描述语言)进行电子系统设计的方法,而第3章第4节、第6章和第7章的内容不仅可以作为EDA工具软件的学习指导,也可以作为初学者的实验项目,加上第9章的多项实验,读者完全可以经过这些实际操作,很好地掌握EDA的开发设计方法和MAX+plusII的使用技能。
本书由河南工业大学焦素敏担任主编,并编写第1~8章,第9章由王学梅编写。张德贤教授对本书做了认真审阅,并提出了一些宝贵意见。编写中,参考了许多学者和专家的著作及研究成果,在此谨向他们表示诚挚谢意。
由于作者水平有限,书中难免存在不足之处,敬请读者批评指正。作者E-mail: jiaosumin@163.com.
编 者2009年4月
第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 硬件描述语言6
1.2.3 EDA工具软件7
1.3 EDA技术的特点和发展趋势7
1.3.1 EDA技术的主要特点7
1.3.2 EDA技术的发展趋势10
1.4 专用集成电路11
1.4.1 ASIC的概念和分类11
1.4.2 可编程ASIC技术展望12
本章小结12
思考题与习题13
第2章 可编程逻辑器件14
2.1 概述14
2.1.1 可编程逻辑器件的发展历程14
2.1.2 可编程逻辑器件的分类14
2.1.3 PLD的基本结构16
2.1.4 PLD逻辑符号的画法和约定17
2.2 简单PLD17
2.2.1 PAL18
2.2.2 GAL22
2.3 CPLD和FPGA25
2.3.1 CPLD的基本结构26
2.3.2 FPGA的基本结构 27
2.3.3 Altera公司器件介绍29
2.4 在系统可编程逻辑器件30
2.4.1 在系统可编程技术的特点30
2.4.2 ispLSI的结构及系列器件介绍31
2.4.3 ispGDS介绍40
2.5 FPGA和CPLD的应用选择42
2.5.1 FPGA和CPLD的性能比较42
2.5.2 FPGA和CPLD的选用依据42
本章小结45
思考题与习题46EDA技术基础目 录
第3章 EDA工具软件与设计入门47
3.1 EDA设计流程47
3.1.1 设计输入47
3.1.2 设计实现49
3.1.3 设计仿真50
3.1.4 编程或配置50
3.2 CPLD和FPGA的编程与配置方法51
3.2.1 CPLD的ISP方式编程52
3.2.2 使用PC并行口配置FPGA53
3.2.3 用专用配置器件配置FPGA53
3.2.4 使用单片机配置FPGA55
3.3 常用EDA工具软件56
3.3.1 MAX+plusII概述57
3.3.2 Lattice公司设计软件概述58
3.4 MAX+plusII的原理图输入设计示例59
3.4.1 一位全加器的设计59
3.4.2 2位十进制计数译码电路的设计68
3.4.3 总结与补充说明71
本章小结75
思考题与习题75
第4章 VHDL硬件描述语言76
4.1 VHDL概述76
4.1.1 VHDL的优点76
4.1.2 VHDL与Verilog、ABEL语言的比较77
4.1.3 学习VHDL的注意事项 78
4.2 VHDL程序结构79
4.2.1 简单VHDL程序举例80
4.2.2 实体81
4.2.3 结构体84
4.2.4 库88
4.2.5 程序包91
4.2.6 配置94
4.3 VHDL语言要素96
4.3.1 文字规则96
4.3.2 数据对象99
4.3.3 数据类型102
4.3.4 类型转换106
4.3.5 操作符108
4.4 VHDL顺序语句 112
4.4.1 IF语句112
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语句123
4.4.8 NULL语句124
4.5 VHDL并行语句125
4.5.1 进程语句125
4.5.2 并行信号赋值语句127
4.5.3 块语句129
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 状态机设计167
5.3.1 摩尔型状态机的设计167
5.3.2 米里型状态机的设计172
5.4 存储器设计174
5.4.1 只读存储器174
5.4.2 静态随机存储器175
5.4.3 先入后出堆栈176
5.5 特色实用电路设计176
5.5.1 计数器型防抖动电路设计176
5.5.2 积分分频器电路设计177
本章小结179
思考题与习题180
第6章 MAX+plusII使用进阶181
6.1 MAX+plusII的VHDL设计向导181
6.1.1 创建源程序cnt4.vhd181
6.1.2 创建源程序decl7s.vhd185
6.1.3 完成顶层文件设计186
6.1.4 顶层工程文件的处理188
6.1.5 设计项目的其他信息和资源配置191
6.2 LPM的调用方法194
6.2.1 LPM的原理图调用方法195
6.2.2 LPM的VHDL文本方式调用199
6.3 波形输入设计方法208
6.4 用MAX+plusII优化设计210
6.4.1 全局逻辑综合选项210
6.4.2 局部逻辑综合选项211
6.4.3 探针的使用213
6.4.4 打包214
6.5 其他设置215
6.5.1 编程文件转换215
6.5.2 MAX+plusII的安装216
本章小结217
思考题与习题218
第7章 QuartusII软件及应用219
7.1 QuartusII软件的图形用户界面219
7.1.1 工程导航区220
7.1.2 状态区220
7.1.3 信息区221
7.1.4 工作区221
7.1.5 快捷命令工具栏222
7.2 QuartusII软件的图形编辑输入法222
7.2.1 创建工程设计项目222
7.2.2 编辑设计原理图224
7.2.3 设计编译226
7.2.4 设计仿真228
7.2.5 引脚锁定与编程下载230
7.3 QuartusII软件的文本编辑输入法232
7.3.1 编辑设计文件232
7.3.2 创建工程232
7.3.3 编译234
7.3.4 仿真236
7.3.5 引脚锁定与下载237
7.4 层次电路设计238
7.4.1 顶层文件设计238
7.4.2 创建各模块的下层设计文件241
7.4.3 设计项目的编译仿真243
7.4.4 层次显示243
本章小结243
思考题与习题244
第8章 EDA技术综合应用设计实例245
8.1 数字钟245
8.1.1 数字钟的设计要求245
8.1.2 数字钟的顶层结构245
8.1.3 数字钟各模块的VHDL源程序设计247
8.2 智力竞赛抢答器253
8.2.1 抢答器的功能描述253
8.2.2 抢答器的设计254
8.3 交通灯控制器257
8.3.1 交通灯控制器功能要求257
8.3.2 交通灯控制器的设计258
8.3.3 仿真波形260
8.3.4 下载验证260
8.4 8路彩灯控制器261
8.4.1 8路彩灯控制器的功能要求261
8.4.2 8路彩灯控制器的设计261
8.4.3 下载验证265
8.5 简易数字频率计265
8.5.1 设计任务265
8.5.2 数字频率计的设计266
本章小结269
思考题与习题269
第9章 EDA实验开发系统与实验272
9.1 GW48系列实验开发系统使用说明272
9.1.1 GW48系统使用注意事项272
9.1.2 GW48系统主板结构与使用方法272
9.1.3 实验电路结构图278
9.1.4 GW48-CK/GK/PK系统结构图信号与芯片引脚对照表287
9.2 EDA实验292
9.2.1 实验1--用原理图输入法设计4位全加器292
9.2.2 实验2--计数译码显示电路设计294
9.2.3 实验3--计数器的设计297
9.2.4 实验4--简易彩灯控制器299
9.2.5 实验5--用原理图输入法设计4位十进制计数译码器301
9.2.6 实验6--用原理图输入法设计2位十进制频率计301
9.2.7 实验7--序列检测器设计303
9.2.8 实验8--用LPM 设计8位数控分频器和4位乘法器305
9.2.9 实验9--脉宽可调的方波信号发生器设计305
9.2.10 实验10--“梁祝”乐曲演奏电路309
参考文献318