目前,EDA技术已成为电子信息类学生一门重要的专业基础课程,并在教学、科研,以及大学生电子设计竞赛等活动中,起着越来越重要的作用,成为电子信息类本科生及研究生必须掌握的基础知识与基本技能。随着EDA技术的应用日益广泛,对EDA课程教学的要求也不断提高,必须对教学内容进行优化和更新,以与EDA技术的发展相适应。正是基于以上考虑,修订了本书的内容。
全书共12章,第1章对EDA技术作了综述;第2章介绍FPGA/CPLD器件的结构与编程配置;第3章介绍Quartus Ⅱ集成开发工具;第4章是基于宏功能模块的设计。在第5、6、7章中,系统介绍了Verilog的语法、语句、任务与函数等内容。第8、9章列举了常用数字电路的设计与实现;第10章讨论了设计优化的问题;第11章是有关电路仿真的内容;第12章是算法和较复杂数字逻辑系统的设计举例。在附录A、B中就Verilog-2001、2002标准对Verilog语言所做的扩展和增强做了较为全面的介绍。该书可供各大专院校作为教材使用,也可供从事相关工作的人员作为参考用书使用。
本书系统介绍了数字系统设计相关的知识,主要内容包括:EDA技术、FPGA/CPLD器件、Verilog硬件描述语言等。本书以Quartus Ⅱ、Synplify Pro/Synplify软件为平台,以Verilog*1995和Verilog-2001为语言标准,以可综合的设计为重点,以大量经过验证的数字设计实例为依据,系统阐述了数字系统设计的方法与技术,对设计优化做了探讨。
本书的特点是:着眼于实用,紧密联系教学实际,实例丰富。全书深入浅出,概念清晰,语言流畅。可作为电子、通信、信息、测控、电路与系统等专业高年级本科生和研究生的教学用书,也可供从事电路设计和系统开发的工程技术人员阅读参考。
第1章 EDA技术与数字系统设计
1.1 EDA技术及其发展
1.2 数字系统设计技术
1.2.1 Top-down设计
1.2.2 Bottom-up设计
1.2.3 IP复用技术与SoC
1.3 数字系统设计的流程
1.3.1 输入
1.3.2 综合
1.3.3 适配
1.3.4 仿真
1.3.5 编程
1.4 常用的EDA软件工具
1.5 EDA技术的发展趋势
习题
第2章 FPGA/CPLD器件
2.1 PLD的分类
2.1.1 按集成度分类
2.1.2 按编程特点分类
2.1.3 按结构特点分类
2.2 PLD的基本原理与结构
2.2.1 PLD器件的基本结构
2.2.2 PLD电路的表示方法
2.3 低密度PLD的原理与结构
2.4 CPLD的原理与结构
2.4.1 宏单元结构
2.4.2 典型CPLD的结构
2.5 FPGA的原理与结构
2.5.1 查找表结构
2.5.2 典型FPGA的结构
2.5.3 FPGA结构的发展
2.6 FPGA/CPLD的编程元件
2.6.1 熔丝型开关
2.6.2 反熔丝
2.6.3 浮栅编程元件
2.6.4 SRAM编程元件
2.7 边界扫描测试技术
2.8 FPGA/CPLD的编程与配置
2.8.1 在系统编程
2.8.2 CPLD器件的编程
2.8.3 FPGA器件的配置
2.9 FPGA/CPLD器件概述
2.10 PLD的发展趋势
习题
第3章 Quartus Ⅱ集成开发工具
3.1 Quartus Ⅱ原理图设计
3.1.1 半加器原理图输入
3.1.2 半加器设计与仿真
3.1.3 全加器设计与仿真
3.2 Quartus Ⅱ的优化设置
3.2.1 Settings设置
3.2.2 分析与综合设置
3.2.3 优化布局布线
3.3.4 设计可靠性检查
3.3 Quartus Ⅱ的时序分析
3.3.1 时序设置与分析
3.3.2 时序逼近
习题
第4章 基于宏功能模块的设计
4.1 乘法器模块
4.2 除法器模块
4.3 计数器模块
4.4 常数模块
4.5 锁相环模块
4.6 存储器模块
4.7 其他模块
习题
第5章 Verilog HDL设计初步
5.1 Verilog HDL简介
5.2 Verilog HDL设计举例
5.3 Verilog HDL模块的结构
5.4 Synplify pro/Synplify综合器
习题
第6章 Verilog HDL语法与要素
6.1 Verilog HDL语言要素
6.2 常量
6.3 数据类型
6.3.1 net型
6.3.2 variable型
6.4 参数
6.5 向量
6.6 运算符
习题
第7章 Verilog HDL行为语句
7.1 过程语句
7.1.1 always过程语句
7.1.2 initial过程语句
7.2 块语句
7.2.1 串行块begin-end
7.2.2 并行块fork-loin
7.3 赋值语句
7.3.1 持续赋值与过程赋值
7.3.2 阻塞赋值与非阻塞赋值
7.4 条件语句
7.4.1 if-else语句
7.4.2 case语句
7.5 循环语句
7.5.1 for语句
7.5.2 repeat、while、for语句
7.6 编译指示语句
7.7 任务与函数
7.7.1 任务(task)
7.7.2 函数(function)
7.8 顺序执行与并发执行
习题
第8章 数字设计的层次与风格
8.1 数字设计的层次
8.2 结构描述
8.2.1 Verilog HDL内置门元件
8.2.2 门级结构描述
8.3 行为描述
8.4 数据流描述
8.5 不同描述风格的设计
8.6 基本组合电路设计
8.6.1 门电路
8.6.2 编译码器
8.6.3 数据选择器
8.6.4 其他组合电路
8.7 基本时序电路设计
8.7.1 触发器
8.7.2 锁存器与寄存器
8.7.3 计数器与串并转换器
8.7.4 简易微处理器
习题
第9章 Verilog HDL设计进阶
9.1 加法器设计
9.1.1 级连加法器
9.1.2 并行加法器
9.1.3 超前进位加法器
9.1.4 流水线加法器
9.2 乘法器设计
9.2.1 并行乘法器
9.2.2 移位相加乘法器
9.2.3 加法树乘法器
9.2.4 查找表乘法器
9.3 乘累加器(MAC)
9.4 奇数分频与小数分频
9.4.1 奇数分频
9.4.2 半整数分频与小数分频
9.5 数字跑表
9.6 数字频率计
9.7 交通灯控制器
9.8 乐曲演奏电路
9.9 实用多功能数字钟
习题
第10章 数字设计的优化
10.1 设计的可综合性
10.2 流水线设计技术
10.3 资源共享
10.4 有限状态机(FSM)设计
10.4.1 基于状态机的设计
10.4.2 基于状态机的设计要点
10.5 多层次结构电路的设计
10.6 进程
10.7 阻塞赋值与非阻塞赋值
10.8 FPGA设计中毛刺的消除
习题
第11 章数字电路的仿真
11.1 系统任务与系统函数
11.2 用户自定义元件(UDP)
11.3 延时模型的表示
11.4 数字电路的仿真
11.4.1 测试平台(Test Bench)
11.4.2 组合电路的仿真
11.4.3 时序电路的仿真
习题
第12章 数字设计实例
12.1 基于FPGA实现点阵式液晶显示控制
12.1.1 GDMl2864的结构及指令
12.1.2 显示数据提取与设计源代码
12.2 基于CPLD实现字符液晶显示控制
12.2.1 字符液晶HS162结构及指令
12.2.2 状态机设计及源代码
12.3 VGA彩条信号发生器
12.3.1 VGA显示原理
12.3.2 源码及仿真
12.4 VGA图像显示控制器设计
12.5 异步串行接口(UART)设计
12.5.1 UART工作原理
12.5.2 源码及仿真
12.6 直接数字频率合成器(DDS)
12.6.1 DDS原理与顶层设计
12.6.2 分模块设计
12.6.3 使用嵌入式逻辑分析仪进行在线测试
12.7 等精度频率计
12.8 FIR数字滤波器
12.9 CRC校验码
习题
附录A Verilog-2001语法结构
附录B Verilog-2002语法结构
附录C Verilog HDL(IEEE Std 1364-1995)关键字
附录D Verilog HDL(IEEE Std 1364-2001)关键字
附录E Quartus Ⅱ支持的Verilog HDL结构
附录F Synplify Pro/Synplify可综合的Verilog结构
附录G 有关术语与缩略语