第一部分 基础篇 1
第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
第二部分 软件操作篇 60
第3章 MAX+plusⅡ使用指南 60
3.1 MAX+plusⅡ的基本操作 60
3.1.1 MAX+plusⅡ简介 60
3.1.2 MAX+plusⅡ的安装 61
3.1.3 MAX+plusⅡ的常用菜单 63
3.1.4 MAX+plusⅡ帮助文档 68
3.2 MAX+plusⅡ的设计输入 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.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Ⅱ使用指南 111
4.1 QuartusⅡ软件简介 111
4.1.1 QuartusⅡ概述 111
4.1.2 QuartusⅡ用户界面 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Ⅱ仿真器 147
4.6.1 创建仿真波形文件 147
4.6.2 仿真器参数设置 154
4.6.3 启动仿真 156
4.7 器件编程 158
习题 161
第三部分 设计应用篇 162
第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