第一篇 基础篇 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 4位串行进位加法器 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 带有Q输出的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 Ⅱ设计流程 119
6.1 SCUT-EDA开发平台 119
6.2 Quartus Ⅱ软件设计流程 120
6.2.1 基于Quartus Ⅱ的数字系统设计流程 120
6.2.2 Quartus Ⅱ软件使用介绍 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 Ⅱ调用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 语句综合 197
8.3 寄存器和锁存器可综合描述 204
8.3.1 寄存器的引入方法 205
8.3.2 避免引入不必要的寄存器 212
第9章 数字系统设计方法 219
9.1 数字系统自顶向下的设计层次 219
9.1.1 数字系统层次化结构 219
9.1.2 自顶向下设计方法 220
9.2 数字系统的一般划分结构 220
9.3 模块划分技术 221
9.4 迭代技术 227
9.4.1 空间迭代 228
9.4.2 时间迭代 229
9.4.3 二维迭代 229
第三篇 实践篇 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