第一章 EDA概述 1
1.1 EDA技术的含义 1
1.2 EDA技术的发展历史 1
1.3 EDA技术的基本特征 2
1.4 EDA技术的主要内容 4
1.5 EDA技术的设计流程 5
1.6 EDA技术的发展趋势 8
第二章 可编程逻辑器件的基本原理 10
2.1 专用集成电路设计与可编程逻辑器件 10
2.1.1 模拟ASIC 10
2.1.2 数字ASIC 11
2.2 可编程逻辑器件分类 12
2.3 可编程逻辑器件的发展历程 14
2.4 可编程逻辑器件的基本结构 15
2.4.1 简单低密度PLD的基本结构 15
2.4.2 复杂高密度PLD的基本结构 18
2.4.3 CPLD和FPGA的异同 24
2.4.4 CPLD和FPGA的选择 25
第三章 Altera的CPLD/FPGA 27
3.1 Altera的CPLK/FPGA器件系列 27
3.2 Altera的CPLD器件 29
3.2.1 MAX7000器件 30
3.2.2 MAXⅡ器件 35
3.2.3 Cyclone器件 36
3.3 Altera的CPLD/FPGA的配置 42
3.3.1 配置方式 42
3.3.2 ByterBlasterⅡ下载电缆 45
3.3.3 配置芯片 46
3.3.4 CPLD/FPGA器件的配置 46
第四章 VHDL硬件描述语言 54
4.1 VHDL概述 54
4.1.1 VHDL的特点 54
4.1.2 VHDL和VerilogHDL的比较 54
4.2 VHDL语言基础知识 55
4.2.1 VHDL的程序结构 55
4.2.2 VHDL的语言元素 63
4.3 VHDL的基本语句 68
4.3.1 VHDL的顺序语句 68
4.3.2 VHDL的并行语句 75
4.4 VHDL的子程序 89
4.4.1 过程的定义和调用 90
4.4.2 函数的定义和调用 90
第五章 QuartusⅡ开发软件 92
5.1 QuartusⅡ简介 92
5.2 QuartusⅡ原理图输入设计方法 94
5.2.1 创建设计工程 94
5.2.2 设计输入 98
5.2.3 设计项目的编译 100
5.2.4 设计项目的仿真验证 103
5.2.5 引脚分配 106
5.2.6 器件编程 108
5.3 QuartusⅡ文本输入设计方法 110
5.3.1 设计输入 110
5.3.2 项目编译 113
5.3.3 仿真验证 117
5.4 QuartusⅡ混合输入设计方法 119
5.4.1 创建工程 119
5.4.2 译码电路模块的设计 119
5.4.3 顶层设计 120
5.4.4 仿真验证 123
5.5 QuartusⅡ调用宏功能模块的设计方法 124
5.5.1 宏功能模块概述 124
5.5.2 以图形方式调用宏功能模块进行设计 125
5.5.3 以文本方式调用宏功能模块进行设计 130
第六章 CPLD/FPGA的常用设计 132
6.1 基本数学运算模块 132
6.1.1 加法器 132
6.1.2 乘法器 139
6.1.3 减法器 142
6.1.4 除法器 143
6.2 分频器设计 145
6.2.1 偶数分频器设计 145
6.2.2 奇数分频器设计 148
6.2.3 半整数分频器的设计 151
6.3 存储模块设计 153
6.3.1 只读存储器(ROM) 153
6.3.2 随机存储器(RAM) 159
6.3.3 顺序存取存储器(SAM) 163
6.4 状态机设计 166
6.4.1 状态机的特点及VHDL描述 166
6.4.2 状态机设计举例 172
6.4.3 状态机编码 183
6.4.4 状态机设计中需要注意的问题 187
第七章 数字系统设计实例 188
7.1 数字系统设计概述 188
7.1.1 数字系统的组成 188
7.1.2 数字系统设计方法 188
7.1.3 数字系统设计的一般过程 189
7.1.4 两种数字系统设计方法的比较 190
7.2 同步信号提取电路的设计 191
7.2.1 位同步信号提取电路的设计 191
7.2.2 帧同步信号提取电路的设计 198
7.3 IIR滤波器的设计 206
7.3.1 IIR滤波器设计要求 208
7.3.2 IIR滤波器设计方案 208
7.3.3 IIR滤波器的实现 210
7.3.4 IIR滤波器的其他改进型CPLD/FPGA实现方案 213
7.4 DDS及相关设计 219
7.4.1 DDS的基本原理 220
7.4.2 DDS设计 221
7.4.3 三相多波形信号发生器设计 228
7.4.4 调制信号发生器的设计 234
7.5 曼彻斯特编解码器 235
7.5.1 曼彻斯特码编码规则 235
7.5.2 曼彻斯特编码器设计 236
7.5.3 曼彻斯特解码器设计 242
7.6 交织/解交织器的设计 246
7.6.1 交织/解交织器的原理 246
7.6.2 分组交织/解交织器的设计 247
第八章 CPLD/FPGA设计中的基本问题 259
8.1 有限字长的影响 259
8.2 时钟问题 259
8.2.1 建立时间和保持时间 260
8.2.2 全局时钟 260
8.2.3 门控时钟 260
8.2.4 多级逻辑时钟 261
8.2.5 行波时钟 262
8.2.6 多时钟系统 262
8.3 清零和置位信号 263
8.4 毛刺的产生及消除 264
8.4.1 信号毛刺的产生及判断 264
8.4.2 消除信号毛刺的方法 264
参考文献 267