本书根据电子信息类课程理论教学和实践教学要求,以提高数字系统设计能力为目的,系统完整地阐述EDA技术、VHDL/Verilog HDL、可编程逻辑器件和相关数字系统设计技术。本书共7章,包括EDA技术概述、Quartus II的使用方法、VHDL、Verilog HDL、常用其他EDA软件、可编程逻辑器件和EDA技术的应用。另外,附录还介绍了DE2开发板的使用方法,供读者学习或参考。本书可作为高等院校工科电子信息类、自动化类等专业“EDA技术”课程的教材,也可供相关专业的技术人员参考。
覃琴,桂林电子科技大学教授,主要从事电子信息学院和计算机与信息安全学院的相关教学与科研工作。长期专注于信息与通信工程、计算机科学与技术等领域的研究,涉及深度学习、遥感图像处理、数据挖掘和网络通信等方向。
第1章 EDA技术概述1
1.1 EDA技术及其发展1
1.2 EDA设计流程2
1.2.1 设计准备2
1.2.2 设计输入2
1.2.3 设计处理3
1.2.4 设计校验4
1.2.5 器件编程4
1.2.6 器件测试4
1.3 硬件描述语言4
1.3.1 VHDL5
1.3.2 Verilog HDL5
1.3.3 System Verilog6
1.3.4 AHDL6
1.4 可编程逻辑器件6
1.5 EDA软件的组成模块7
1.5.1 设计输入编辑器7
1.5.2 仿真器7
1.5.3 HDL综合器8
1.5.4 适配器(布局布线器)8
1.5.5 下载器(编程器)8
思考题和习题18
第2章 Quartus II的使用方法9
2.1 Quartus II的主界面9
2.2 Quartus II的原理图输入法10
2.2.1 编辑输入图形设计文件11
2.2.2 编译设计文件14
2.2.3 仿真设计文件15
2.2.4 编程下载设计文件23
2.3 Quartus II宏功能模块的使用
方法25
2.3.1 设计原理25
2.3.2 编辑输入顶层设计文件26
2.3.3 仿真顶层设计文件32
2.3.4 图形文件的转换33
2.4 嵌入式逻辑分析仪的使用方法34
2.4.1 打开SignalTap II编辑窗口35
2.4.2 调入节点信号36
2.4.3 参数设置36
2.4.4 文件存盘37
2.4.5 编译与下载37
2.4.6 运行分析37
2.5 嵌入式锁相环的设计方法37
2.5.1 嵌入式锁相环的设计37
2.5.2 嵌入式锁相环的仿真40
2.5.3 使用嵌入式逻辑分析仪观察嵌入式锁相环的设计结果41
2.6 设计优化42
2.6.1 面积与速度的优化42
2.6.2 时序约束与选项设置42
2.6.3 Fitter设置42
2.7 Quartus II的RTL阅读器43
思考题和习题244
第3章 VHDL45
3.1 VHDL设计实体的基本结构45
3.1.1 库、程序包46
3.1.2 实体46
3.1.3 结构体47
3.1.4 配置47
3.1.5 基本逻辑器件的VHDL描述47
3.2 VHDL语言要素51
3.2.1 VHDL的文字规则51
3.2.2 VHDL的数据对象52
3.2.3 VHDL的数据类型54
3.2.4 VHDL的预定义数据类型54
3.2.5 IEEE预定义的标准逻辑位和向量56
3.2.6 用户自定义数据类型56
3.2.7 VHDL的操作符56
3.2.8 VHDL的属性59
3.3 顺序语句60
3.3.1 赋值语句60
3.3.2 流程控制语句61
3.3.3 WAIT语句66
3.3.4 ASSERT(断言)语句67
3.3.5 NULL(空操作)语句67
3.4 并行语句68
3.4.1 进程语句68
3.4.2 块语句70
3.4.3 并行信号赋值语句70
3.4.4 子程序和并行过程调用语句72
3.4.5 元件例化语句74
3.4.6 生成语句76
3.5 VHDL的库和程序包78
3.5.1 VHDL库78
3.5.2 VHDL程序包79
3.6 VHDL设计流程80
3.6.1 编辑VHDL源程序80
3.6.2 实现8位计数显示译码电路的顶层设计文件82
3.6.3 编译顶层设计文件83
3.6.4 仿真顶层设计文件83
3.6.5 编程下载顶层设计文件83
3.7 VHDL仿真83
3.7.1 VHDL仿真支持语句84
3.7.2 VHDL测试平台软件的设计86
思考题和习题389
第4章 Verilog HDL92
4.1 Verilog HDL设计模块的基本结构92
4.1.1 模块端口定义92
4.1.2 模块内容93
4.2 Verilog HDL的词法95
4.2.1 空白符和注释95
4.2.2 常数95
4.2.3 字符串96
4.2.4 关键字96
4.2.5 标识符96
4.2.6 操作符96
4.2.7 Verilog HDL数据对象99
4.3 Verilog HDL的语句101
4.3.1 赋值语句101
4.3.2 条件语句103
4.3.3 循环语句105
4.3.4 结构声明语句106
4.3.5 语句的顺序执行与并行执行109
4.4 不同抽象级别的Verilog HDL模型111
4.4.1 Verilog HDL的门级描述111
4.4.2 Verilog HDL的行为描述112
4.4.3 用模块例化实现电路系统设计113
4.5 Verilog HDL设计流程116
4.5.1 编辑Verilog HDL源程序116
4.5.2 实现BCD码加法器电路的顶层设计文件117
4.5.3 编译顶层设计文件118
4.5.4 仿真顶层设计文件118
4.5.5 编程下载顶层设计文件119
4.6 Verilog HDL仿真119
4.6.1 Verilog HDL仿真支持语句119
4.6.2 Verilog HDL测试平台软件的设计122
思考题和习题4124
第5章 常用其他EDA软件126
5.1 ModelSim126
5.1.1 ModelSim的图形用户交互方式126
5.1.2 ModelSim的命令方式133
5.1.3 ModelSim的批处理方式134
5.1.4 ModelSim与Quartus II的接口135
5.1.5 在Quartus II中使用ModelSim仿真136
5.2 Qsys142
5.2.1 Qsys的硬件开发142
5.2.2 Qsys的编译与下载145
5.3 Nios II148
5.3.1 Nios II的硬件开发148
5.3.2 生成Nios II硬件系统149
5.3.3 Nios II软件调试150
5.3.4 Nios II的常用元件与编程154
5.3.5 基于Nios II的Qsys应用162
思考题和习题5173
第6章 可编程逻辑器件174
6.1 PLD的基本原理174
6.1.1 PLD的分类174
6.1.2 阵列型PLD176
6.1.3 现场可编程门阵列型FPGA179
6.1.4 基于查找表(LUT)结构的PLD181
6.2 PLD的设计技术183
6.2.1 PLD的设计方法183
6.2.2 在系统可编程技术184
6.2.3 边界扫描技术186
6.3 PLD的编程与配置187
6.3.1 CPLD的ISP方式编程187
6.3.2 使用PC的并口配置FPGA188
6.4 Altera公司的PLD系列产品简介189
6.4.1 高端高性能系列189
6.4.2 中端性能系列191
6.4.3 低成本低功耗系列192
思考题和习题6192
第7章 EDA技术的应用194
7.1 组合逻辑电路设计应用194
7.1.1 运算电路设计194
7.1.2 编码器设计195
7.1.3 译码器设计197
7.1.4 数据选择器设计198
7.1.5 数据比较器设计200
7.1.6 ROM设计201
7.2 时序逻辑电路设计应用203
7.2.1 触发器设计204
7.2.2 锁存器设计205
7.2.3 移位寄存器设计207
7.2.4 计数器设计208
7.2.5 RAM设计210
7.3 数字系统设计212
7.3.1 计时器设计212
7.3.2 万年历设计216
7.3.3 8位十进制频率计设计220
7.3.4 数字电压表设计226
思考题和习题7230
附录A DE2开发板使用方法232
A.1 DE2开发板的结构232
A.2 DE2开发板的实验模式与目标芯片的引脚连接232
A.3 DE2开发板实验的操作步骤237
A.3.1 编辑237
A.3.2 编译240
A.3.3 仿真240
A.3.4 引脚锁定240
A.3.5 编程下载241
A.3.6 硬件验证241
A.4 DE2开发板的控制嵌板242
A.4.1 打开控制嵌板242
A.4.2 设备检测242
参考文献243