第1篇 EDA技术基础 2
第1章 概述 2
1.1 EDA技术的含义 2
1.2 EDA技术典型应用 3
1.3 EDA技术的主要内容 4
1.4 EDA技术的特点及发展趋势 5
1.5 如何学习EDA技术 6
第2章 可编程逻辑器件 8
2.1 概述 8
2.1.1 可编程逻辑器件的发展历程 8
2.1.2 简单可编程逻辑器件的基本结构 12
2.1.3 可编程逻辑器件的主要分类 12
2.2 大规模可编程逻辑器件 13
2.2.1 FPGA的结构与工作原理 13
2.2.2 CPLD的结构与工作原理 17
2.2.3 其他类型的FPGA和CPLD 19
2.2.4 Altera成熟器件及命名规则 19
2.2.5 FPGA和CPLD器件选择 22
2.2.6 Altera配置芯片简介 23
2.3 Altera新型系列器件简介 23
2.3.1 Stratix系列高端FPGA简介 23
2.3.2 Arria系列中端FPGA简介 24
2.3.3 Cyclone系列低端FPGA简介 24
2.3.4 MAX Ⅱ系列低成本CPLD简介 25
2.3.5 HardCopy ASIC系列简介 25
2.4 FPGA/CPLD器件的配置与编程 26
2.4.1 下载电缆 26
2.4.2 配置与编程模式 28
2.4.3 配置方式 30
第3章 Quartus Ⅱ设计基础 33
3.1 概述 33
3.2 Quartus Ⅱ的安装与授权 34
3.2.1 系统要求 34
3.2.2 Quartus Ⅱ的安装 34
3.2.3 Quartus Ⅱ的授权 36
3.3 Quartus Ⅱ设计流程 39
3.3.1 设计输入 40
3.3.2 设计实现 41
3.3.3 编程下载 42
3.3.4 设计验证 42
3.4 Quartus Ⅱ设计实例 43
3.4.1 输入设计与编译 43
3.4.2 仿真及时序分析 48
3.4.3 下载实现及硬件测试 53
3.4.4 可参数化宏模块的调用 60
3.4.5 Dsp Builder的应用 66
3.4.6 设计一个简单的CPU系统 75
第4章 硬件描述语言VHDL语法概要 84
4.1 概述 84
4.1.1 VHDL的特点 84
4.1.2 学习VHDL的注意事项 86
4.2 VHDL程序基本结构 87
4.2.1 库 87
4.2.2 实体 89
4.2.3 结构体 90
4.3 VHDL语言要素 91
4.3.1 文字规则 91
4.3.2 数据对象 92
4.3.3 数据类型 93
4.3.4 类型转换 95
4.3.5 运算操作符 95
4.3.6 属性 97
4.4 VHDL的基本描述语句 98
4.4.1 顺序语句 98
4.4.2 并行语句 100
4.4.3 其他语句 103
4.5 子程序、程序包和配置 104
4.5.1 子程序 104
4.5.2 程序包 106
4.5.3 配置 107
第5章 常用模块电路的VHDL设计 108
5.1 常用组合逻辑电路的设计 108
5.1.1 七段译码器 108
5.1.2 优先编码器 110
5.1.3 多路选择器 111
5.1.4 求补器 111
5.1.5 三态门及总线缓冲器 113
5.2 时序逻辑电路的设计 115
5.2.1 触发器的设计 115
5.2.2 移位寄存器的设计 117
5.2.3 计数器的设计 123
5.3 状态机的设计 129
5.3.1 摩尔状态机的设计 129
5.3.2 米里状态机的设计 132
5.4 存储器的设计 134
5.4.1 只读存储器的设计 134
5.4.2 随机存储器的设计 138
5.4.3 堆栈的设计 140
第2篇 实战训练 144
第6章 基础训练 144
6.1 一位全加器原理图输入设计 144
6.2 译码显示电路的设计 145
6.3 含异步清零和同步时钟使能的4位十进制加法计数器的设计 145
6.4 数控分频器的设计 146
6.5 用状态机实现序列检测器的设计 149
6.6 简易正弦信号发送器的设计 152
第7章 综合训练 157
7.1 键盘输入电路的设计 157
7.2 动态输出4位十进制频率计的设计 165
7.3 数字钟的设计 171
7.4 DDS信号源的设计 178
7.5 基于Dsp Builder使用IP Core的FIR滤波器的设计 182
7.6 基于NIOS Ⅱ的SD卡音乐播放器的实现 189
第8章 实战实例 197
8.1 交通灯 197
8.2 函数信号发生器 202
8.3 出租车计费器 205
8.4 4位频率计 212
8.5 万年历 213
附录 221
附录A DE2基本资料 221
附录B 基于MAX Ⅱ EPM240芯片的WZ型最小系统实验板基本资料 228
参考文献 230