本书凝聚了编者十多年的教学科研经验,分为基础篇与进阶篇,同时兼顾基础理论与工程实践。基础篇共6章,第1章介绍了数字系统概论与EDA技术的发展趋势;第2章结合例程系统性介绍VHDL硬件描述语言;第3、4章介绍了基于VHDL的组合逻辑电路、基本时序电路建模方法;第5章介绍了基于ASM图的同步时序电路设计方法;第6章介绍了编者自主开发的EDA实验平台与基于可编程芯片的数字系统设计流程。进阶篇共3章,深入介绍了仿真、综合、数字系统设计方法。书中*后展示了2个工程实例的设计方法。
本书内容全面,层次递进,系统性强,结合寄存器传输级描述对语法及模块电路进行详细讲解,可以帮助于初学者的快速入门,同时配合编者自主开发的EDA实验平台,可以对书中所有例程进行验证。
该课程已于2010年获批为国家精品课程,2014年获批为国家精品资源共享课。该教材对应的课程“数字系统设计”建有面向全社会开放的课程网站。该课程有全程视频录像,与教材同步。本书涵盖EDA数字系统设计整个流程的系统性理论介绍,突出设计方法。本书分为基础篇、进阶篇、实践篇三个部分。由浅入深,引导学生掌握数字系统自顶向下的设计方法。
徐向民,华南理工大学 电子与信息学院,常务副院长,教授。教育部电子信息类教学指导委员会委员、广东省本科高校工程训练指导委员会主任、全国电子学会电路与系统专业委员会委员、中国电子教育学会高等教育分会理事、广东省图象图形学会理事、全国大学生电子设计竞赛广东省组委会秘书长。
**篇 基础篇(1)
第1章 数字系统设计与EDA技术(3)
1.1 数字系统概念(3)
1.2 电子设计发展历史(4)
1.3 EDA技术介绍(5)
1.3.1 基本特征(5)
1.3.2 主要内容(6)
1.3.3 EDA设计流程(8)
1.4 IP核(9)
1.4.1 软IP(9)
1.4.2 固IP(9)
1.4.3 硬IP(9)
1.5 EDA应用与发展趋势(9)
第2章 VHDL语言基础(11)
2.1 硬件描述语言的特点(11)
2.2 VHDL程序基本结构(11)
2.3 VHDL程序主要构件(13)
2.3.1 库(13)
2.3.2 实体(14)
2.3.3 结构体(15)
2.4 VHDL数据对象(16)
2.4.1 常量(16)
2.4.2 变量(17)
2.4.3 信号(17)
2.4.4 信号与变量的比较(18)
2.5 VHDL数据类型(19)
2.5.1 标准数据类型(19)
2.5.2 用户自定义数据类型(20)
2.5.3 数据类型转换(21)
2.6 运算符(21)
2.6.1 算术运算符(21)
2.6.2 逻辑运算符(22)
2.6.3 关系运算符(22)
2.6.4 其他运算符(22)
2.6.5 运算优先级(22)
2.7 VHDL基本语句(23)
2.7.1 并行语句(23)
2.7.2 顺序语句(30)
2.7.3 属性描述语句(35)
2.8 测试基准(41)
2.9 VHDL程序的其他构件(41)
2.9.1 块(41)
2.9.2 函数(43)
2.9.3 过程(44)
2.9.4 程序包(45)
2.10 结构体的描述方法(47)
第3章 组合逻辑电路建模(49)
3.1 组合逻辑电路的特点与组成(49)
3.2 基本逻辑门电路的设计(49)
3.3 译码器(51)
3.4 编码器(52)
3.5 加法器的设计(53)
3.5.1 半加器与全加器(53)
3.5.2 四位串行进位加法器(55)
3.5.3 并行进位加法器(56)
3.6 其他组合逻辑模块(58)
3.6.1 选择器(58)
3.6.2 求补器(60)
3.6.3 三态门(61)
3.6.4 缓冲器(61)
3.6.5 比较器(63)
3.6.6 只读存储器(64)
3.6.7 随机存储器(65)
第4章 基本时序逻辑电路建模(67)
4.1 锁存器(67)
4.1.1 RS锁存器(67)
4.1.2 D锁存器(69)
4.2 触发器(70)
4.2.1 D触发器(70)
4.2.2 带有 输出的D触发器(72)
4.2.3 JK触发器(75)
4.2.4 T触发器(77)
4.3 多位寄存器(78)
4.4 串进并出型移位寄存器(79)
4.5 计数器(80)
4.6 无符号数乘法器(83)
第5章 同步时序电路设计(86)
5.1 时序电路的特点与组成(86)
5.2 设计实例——3位计数器(88)
5.3 时序电路描述方法(89)
5.3.1 ASM图的组成(90)
5.3.2 自动售邮票机(92)
5.3.3 状态分配与编码(92)
5.3.4 状态*少化(94)
5.4 ASM图的硬件实现(95)
5.4.1 计数器法(95)
5.4.2 多路选择器(96)
5.4.3 定序法(98)
5.4.4 微程序法(99)
5.5 有限状态机的VHDL实现(100)
5.5.1 符号化状态机(101)
5.5.2 单进程状态机(104)
5.5.3 双进程状态机(107)
5.5.4 三进程状态机(110)
5.6 设计实例1——序列检测器(113)
5.7 设计实例2——A/D采样控制器(115)
第6章 开发平台与Quartus II设计流程(119)
6.1 SCUT-EDA开发平台(119)
6.2 Quartus II软件设计流程(120)
6.2.1 基于Quartus II的数字系统设计流程(120)
6.2.2 Quartus II软件使用介绍(121)
第二篇 进阶篇(139)
第7章 仿真(141)
7.1 仿真(模拟)概述(141)
7.1.1 仿真简介(141)
7.1.2 仿真的级别(141)
7.2 仿真系统的构成(142)
7.3 逻辑仿真模型(142)
7.3.1 电路模型(142)
7.3.2 元件模型(143)
7.3.3 信号模型(143)
7.3.4 延迟模型(145)
7.4 逻辑仿真过程(146)
7.5 简单Testbench设计(147)
7.5.1 VHDL仿真概述(147)
7.5.2 Testbench程序基本结构(148)
7.5.3 激励信号的产生(148)
7.5.4 Testbench设计实例(156)
7.6 高级Testbench介绍(161)
7.6.1 高级Testbench概述(161)
7.6.2 文件I/O的读写(162)
7.6.3 VCD数据库文件(166)
7.6.4 断言语句(167)
7.7 Modelsim软件的使用(171)
7.7.1 Modelsim软件简介(171)
7.7.2 从Quartus II调用Modelsim软件进行仿真(171)
第8章 综合与优化(184)
8.1 综合概述(184)
8.1.1 综合的层次(184)
8.1.2 高层次综合(184)
8.1.3 逻辑综合(186)
8.1.4 可编程器件综合(190)
8.2 VHDL的可综合性(191)
8.2.1 VHDL可综合类型(192)
8.2.2 VHDL对象可综合性(193)
8.2.3 运算符(196)
8.2.4 语句(198)
8.3 设计优化问题的处理(204)
8.3.1 寄存器的引入方法(204)
8.3.2 避免引入不必要的寄存器(212)
第9章 数字系统设计方法(218)
9.1 数字系统自顶向下的设计层次(218)
9.1.1 数字系统层次化结构(218)
9.1.2 自顶向下设计方法(219)
9.2 数字系统的一般划分结构(219)
9.3 模块划分技术(220)
9.4 迭代技术(226)
9.4.1 空间迭代(227)
9.4.2 时间迭代(228)
9.4.3 二维迭代(228)
第三篇 实践篇(233)
第10章 综合实例(235)
10.1 出租车计费实验(235)
10.1.1 设计要求(235)
10.1.2 设计分析与设计思路(235)
10.1.3 系统的设计与实现(237)
10.1.4 波形仿真与分析(243)
10.1.5 思考题(245)
10.2 矩阵乘法(245)
10.2.1 设计要求(245)
10.2.2 设计分析与设计思路(246)
10.2.3 系统的设计与实现(248)
10.2.4 波形仿真与分析(252)
参考文献(254)