《数字电路EDA设计与应用》以数字电路的EDA设计为主线,结合丰富的实例,按照由浅入深的学习规律,逐步引入EDA技术和工具,图文并茂,重点突出。全书分为三部分。第一部分是基础篇,介绍EDA技术和硬件描述语言。第二部分是软件操作篇,主要介绍MAX+plus II和Quartus II软件工具的使用。第三部分是设计应用篇,通过大量典型的应用实例,使读者掌握数字系统EDA设计的方法和技巧。每章后面附有习题,为方便教师教学,《数字电路EDA设计与应用》配有多媒体电子教案。
《数字电路EDA设计与应用》可作为电子信息、电气、通信、自动控制、自动化和计算机类专业的EDA技术教材,也可作为上述学科或相关学科工程技术人员的参考书,还可作为电子产品制作、科技创新实践、EDA课程设计和毕业设计等实践活动的指导书。
《数字电路EDA设计与应用》编者根据多年的教学经验,从实际应用的角度出发编写此书。在编写过程中,着重以培养能力为目标,在实例选排上注重循序渐进。由浅入深。全书分为三部分。共7章。第一部分是基础篇。介绍EDA技术和硬件描述语言。第二部分是软件操作篇。主要介绍MAX+plus II和Quartus II软件工具的使用。第三部分是设计应用篇,通过大量典型的应用实例。使读者掌握数字系统EDAi没计的方法和技巧。每章后面附有习题,为方便教师教学,《数字电路EDA设计与应用》配有多媒体电子教案。《数字电路EDA设计与应用》可作为电子信息、电气、通信、自动控制、自动化和计算机类专业的EDA技术教材。也可作为上述学科或相关学科工程技术人员的参考书;还可作为电子产品制作、科技创新实践、EDA课程设计和毕业设计等实践活动的指导书。
近年来,EDA技术发展非常迅速,已经成为推动电子工业发展的主要动力。EDA技术的发展和推广应用、对高校电子技术课程教学思想、教学方法和教学目标产生了深远影响。许多高校相继将EDA技术作为电子技术教学改革的主要方向,在电子、通信、信息、电气等相关专业开设EDA课程、介绍EDA技术。特别是在数字逻辑电路、大规模可编程器件、硬件描述语言等课程中都加入了EDA设计环节。因此,数字电路的研究和实现方法随之发生变化,从而促使数字电路的实验方法和实验手段也不断更新、完善和开拓。
借助。EDA软件来进行数字逻辑电路的设计、模拟和调试,这种实验方法可以减少实验器材的重复投入,避免对实验器材的实际损耗,降低实验成本,提高实验效率。它适合于数字电路课程初学者做验证性实验,更适合于数字逻辑设计者,充分发挥自主性,自行设计逻辑电路。这有助于学生更快更好地掌握课堂上讲述的基本概念、原理,有利于增强学生的知识创新能力。
本书是编者根据多年的教学经验,从实际应用的角度出发编写而成。在编写过程中,着重以培养能力为目标,实例选排上注重循序渐进,由浅入深。全书分为三部分,共7章,知识结构安排如下。
第一部分是基础篇。第1章主要介绍EDA技术的内涵、发展及其设计流程。第2章详细讲解硬件描述语言VHDL程序设计,包括VHDL语法、基本结构以及常用语句,使读者对VHDL程序的编写有深入的认识。
第一部分 基础篇
第1章 EDA技术概述1
1.1 EDA技术及其发展1
1.1.1 EDA技术的涵义1
1.1.2 EDA技术的发展史2
1.2 传统设计方法与EDA方法的区别3
1.3 EDA工程的设计流程4
1.3.1 设计输入5
1.3.2 逻辑综合和优化6
1.3.3 适配6
1.3.4 仿真6
1.3.5 目标器件的编程/下载6
习题7
第2章 硬件描述语言8
2.1 VHDL简介8
2.2 VHDL语法基?10
2.2.1 文法规则10
2.2.2 数据对象11
2.2.3 数据类型14
2.2.4 运算操作符20
2.3 VHDL程序的基本结构26
2.3.1 实体27
2.3.2 结构体28
2.3.3 进程语句29
2.3.4 子程序33
2.3.5 库和程序包35
2.4 VHDL顺序语句38
2.4.1 进程中的赋值语句38
2.4.2 IF语句41
2.4.3 CASE语句45
2.4.4 LOOP语句46
2.4.5 NEXT语句48
2.4.6 EXIT语句49
2.4.7 RETURN语句50
2.4.8 NULL语句50
2.5 VHDL并行语句51
2.5.1 并行信号赋值语句51
2.5.2 条件信号赋值语句52
2.5.3 选择信号赋值语句53
2.5.4 ASSERT语句54
2.5.5 COMPONENT语句55
2.5.6 元件例化语句56
2.5.7 GENERATE语句57
习题58
第二部分 软件操作篇
第3章 MAX + plus II使用指南60
3.1 MAX + plus II的基本操作60
3.1.1 MAX + plus II简介60
3.1.2 MAX + plus II的安装61
3.1.3 MAX + plus II的常用菜单63
3.1.4 MAX + plus II帮助文档68
3.2 MAX + plus II的设计输入69
3.2.1 原理图设计输入70
3.2.2 文本设计输入80
3.2.3 波形设计输入81
3.2.4 层次化设计输入87
3.3 项目的编译89
3.3.1 编译前的设置90
3.3.2 运行编译器92
3.3.3 程序编译中的常见错误94
3.4 仿真和定时分析96
3.4.1 仿真96
3.4.2 定时分析99
3.5 管脚的重新分配101
3.5.1 方法一102
3.5.2 方法二104
3.6 器件的编程下载105
3.6.1 编程器的设置105
3.6.2 编程硬件驱动程序安装106
习题110
第4章 Quartus II使用指南111
4.1 Quartus II软件简介111
4.1.1 Quartus II概述111
4.1.2 Quartus II用户界面112
4.2 建立工程113
4.2.1 创建工程113
4.2.2 工程管理116
4.2.3 转换MAX+plusⅡ工程118
4.3 设计输入119
4.3.1 使用文本编辑器输入120
4.3.2 使用模块编辑器输入122
4.3.3 使用宏功能模块输入133
4.3.4 使用自定义符号输入138
4.4 器件与引脚分配140
4.4.1 设置目标器件140
4.4.2 引脚分配141
4.5 项目编译143
4.5.1 全编译与分步编译143
4.5.2 查看适配结果146
4.6 使用Quartus II仿真器147
4.6.1 创建仿真波形文件147
4.6.2 仿真器参数设置154
4.6.3 启动仿真156
4.7 器件编程158
习题161
第三部分 设计应用篇
第5章 常用数字电路的设计162
5.1 组合逻辑电路设计162
5.1.1 运算电路设计162
5.1.2 编码器设计168
5.1.3 译码器设计170
5.1.4 数据选择器设计171
5.2 时序逻辑电路设计172
5.2.1 时钟的描述172
5.2.2 复位的描述173
5.2.3 触发器设计173
5.2.4 锁存器设计176
5.2.5 移位寄存器设计176
5.2.6 计数器设计178
5.2.7 分频器设计179
5.3 存储器的设计180
5.3.1 只读存储器180
5.3.2 随机读写存储器188
5.3.3 先进先出存储器的设计190
5.4 常用接口电路设计192
5.4.1 发光二极管显示电路193
5.4.2 LED数码管显示电路194
5.4.3 蜂鸣器电路197
习题200
第6章 数字系统的设计202
6.1 花样彩灯控制器的设计202
6.1.1 设计要求202
6.1.2 设计模块203
6.1.3 程序实现203
6.1.4 仿真分析205
6.2 交通灯控制器的设计206
6.2.1 设计要求206
6.2.2 设计模块206
6.2.3 程序实现207
6.3 序列检测器的设计210
6.3.1 设计原理210
6.3.2 设计模块210
6.3.3 程序实现211
6.3.4 仿真分析211
6.4 花样计数器的设计212
6.4.1 设计要求212
6.4.2 设计模块212
6.4.3 程序实现212
6.4.4 仿真分析214
6.5 电子抢答器的设计215
6.5.1 设计要求215
6.5.2 设计模块215
6.5.3 程序实现215
6.5.4 仿真分析218
6.6 数字秒表的设计218
6.6.1 设计要求218
6.6.2 设计模块218
6.6.3 程序实现219
6.6.4 仿真分析222
6.7 汽车尾灯控制器的设计222
6.7.1 设计原理222
6.7.2 设计要求223
6.7.3 设计模块223
6.7.4 程序实现223
6.7.5 仿真分析224
6.8 电子密码锁的设计225
6.8.1 设计要求225
6.8.2 设计模块226
6.8.3 程序实现226
6.8.4 仿真分析228
6.9 音乐电子琴的设计228
6.9.1 设计要求228
6.9.2 设计原理229
6.9.3 设计模块230
6.9.4 程序实现231
6.10 数字时钟的设计239
6.10.1 设计要求239
6.10.2 设计模块239
6.10.3 程序实现242
6.11 数字频率计的设计248
6.11.1 设计要求248
6.11.2 设计原理249
6.11.3 设计模块249
6.11.4 程序实现250
6.11.5 仿真分析252
6.12 出租车计费器的设计253
6.12.1 设计要求253
6.12.2 设计模块253
6.12.3 程序实现256
6.12.4 仿真分析261
习题262
第7章 如虎添翼——DSP Builder设计263
7.1 DSP Builder简介263
7.2 DSP Builder安装264
7.2.1 软件要求264
7.2.2 DSP Builder软件安装265
7.2.3 授权文件的安装266
7.3 DSP Builder设计流程267
7.4 幅度调制器设计268
7.4.1 建立Simulink设计模型269
7.4.2 Simulink模型仿真278
7.4.3 Simulink模型编译279
习题282
参考文献284
1.20世纪70年代的计算机辅助设计阶段
20世纪70年代为EDA技术发展初期。早期的电子系统硬件设计采用的是分立元件,随着集成电路的出现和应用,硬件设计进入到发展的初级阶段。初级阶段的硬件设计大量选用中小规模标准集成电路,人们将这些器件焊接在电路板上,做成初级电子系统,对电子系统的调试是在组装好的PCB(Printed Circuit Board)板上进行的。由于设计师对图形符号使用数量有限,传统的手工布图方法无法满足产品复杂性的要求,更不能满足工作效率的要求。可编程逻辑技术及其器件问世,计算机作为一种工具在科研领域得到广泛应用。而在后期,CAD的概念已见雏形,这一阶段人们开始利用计算机、二维图形编辑与分析的CAD工具,完成布图布线等高度重复性的繁杂工作。
2.20世纪80年代的计算机辅助工程设计阶段
20世纪80年代,集成电路进入了CMOS(互补场效应管)时代,复杂可编程逻辑器件进入商业应用,相应的辅助设计软件投入使用。而在20世纪80年代末,出现了现场可编程门阵列(FPGA);CAE和CAD技术的应用更为广泛,它们在PCB设计方面的原理图输入、自动布局布线及PCB分析,以及逻辑设计、仿真、综合和简化等方面担任了重要的角色。特别是各种硬件描述语言的出现、应用和标准化方面的重大进步,为电子设计自动化必须解决的电路建模、标准文档及仿真测试奠定了基础。
3.20世纪90年代电子系统设计自动化阶段
为了满足千差万别的系统用户提出的设计要求,最好的办法是由用户自己设计芯片,让他们把想设计的电路直接设计在自己的专用芯片上。微电子技术的发展,特别是可编程逻辑器件的发展,使得微电子厂家可以为用户提供各种规模的可编程逻辑器件,使设计者通过设计芯片实现电子系统功能。.EDA工具的发展,又为设计师提供了全线EDA工具。
这个阶段发展起来的EDA工具,目的是在设计前期将设计师从事的许多高层次设计由工具来完成,如可以将用户要求转换为设计技术规范,有效地处理可用的设计资源与理想的设计目标之间的矛盾,按具体的硬件、软件和算法分解设计等。由于电子技术和EDA工具的发展,设计师可以在不太长的时间内使用:EDA工具,通过一些简单标准化的设计过程,利用微电子厂家提供的设计库来完成数万门专用集成电路(ASIC)和集成系统的设计与验证。