第1章 绪论 1
1.1 EDA技术简介 1
1.2 可编程逻辑器件的发展概况 4
1.3 数字系统EDA设计语言 6
1.4 EDA与传统电子设计方法 9
1.4.1 传统的电子设计方法 9
1.4.2 自顶向下的电子设计方法 10
1.4.3 EDA与传统电子设计方法的比较 12
1.5 深亚微米 14
1.6 IP核 14
1.7 本章小结 14
思考与练习 15
第2章 CPLD/FPGA结构原理 16
2.1 可编程逻辑器件入门 16
2.1.1 逻辑器件含义 16
2.1.2 可编程逻辑器件PLD 20
2.1.3 可编程逻辑器件的优点 21
2.1.4 可编程逻辑器件的发展趋势 22
2.1.5 几大PLD生产厂家 24
2.2 PLD的分类 24
2.2.1 按集成度区分 24
2.2.2 按结构特点区分 24
2.2.3 按编程工艺区分 25
2.3 简单PLD结构原理 26
2.3.1 逻辑符号表示方法 26
2.3.2 PROM结构原理 27
2.3.3 PLA结构原理 28
2.3.4 PAL结构原理 30
2.3.5 GAL结构原理 32
2.4 CPLD的结构及其工作原理 35
2.5 FPGA的结构及其工作原理 40
2.5.1 查找表型FPGA逻辑结构 41
2.5.2 CycloneⅢ系列器件的结构与工作原理 44
2.5.3 FLEX/ACEX系列FPGA芯片内部结构 49
2.5.4 Spartan-Ⅱ系列FPGA内部结构 50
2.5.5 基于乘积项的可编程逻辑器件 52
2.5.6 其他结构的可编程逻辑器件 54
2.5.7 FPGA与CPLD的区别 54
2.6 本章小结 55
思考与练习 56
第3章 Altera可编程逻辑系列器件 57
3.1 概述 57
3.1.1 Altera器件性能特点 57
3.1.2 Altera器件系列 59
3.2 MAX7000系列器件 62
3.2.1 MAX7000器件性能特点 62
3.2.2 MAX7000S/E器件结构 63
3.2.3 MAX7000器件特性设定 68
3.2.4 MAX7000器件编程测试 69
3.3 FLEX10K系列器件 70
3.3.1 FLEX10K器件性能特点 70
3.3.2 FLEX10K器件结构 71
3.3.3 FLEX10K器件特性设定 82
3.3.4 FLEX10K器件配置与测试 84
3.4 APEX20K系列器件 85
3.4.1 APEX20K器件性能特点 85
3.4.2 APEX20K器件结构 87
3.4.3 APEX20K系列器件的嵌入式系统块 92
3.4.4 APEX20K器件I/O结构 96
3.4.5 APEX20K器件的配置与测试 100
3.5 Cyclone系列器件架构及简介 101
3.5.1 Cyclone器件简介 101
3.5.2 CycloneⅡ器件简介 110
3.6 Stratix系列器件 117
3.6.1 Stratix器件简介 117
3.6.2 StratixⅡ器件简介 126
3.7 Stratix GX系列器件 138
3.8 本章小结 143
思考与练习 143
第4章 VHDL硬件描述语言 144
4.1 VHDL概述 144
4.2 VHDL基本结构与要素 145
4.2.1 实体(ENTITY) 147
4.2.2 结构体(ARCHITECTURE) 148
4.2.3 程序包(PACKAGE)与库(LIBRARY) 150
4.3 VHDL数据类型和数据对象 151
4.3.1 VHDL标记 151
4.3.2 VHDL数据类型 153
4.3.3 VHDL运算符 159
4.3.4 VHDL数据对象 161
4.4 VHDL基本语句 165
4.4.1 并行信号赋值语句 165
4.4.2 条件赋值语句,WHEN-ELSE 166
4.4.3 选择信号赋值语句,WITH-SELECT 167
4.4.4 块(BLOCK)语句 167
4.4.5 IF-ELSE语句 169
4.4.6 CASE-WHEN语句 171
4.4.7 FOR-LOOP语句 172
4.4.8 NEXT语句 173
4.4.9 EXIT语句 173
4.5 VHDL高级语句 174
4.5.1 进程(PROCESS)语句 174
4.5.2 元件(COMPONENT)定义语句和元件例化(PORT MAP)语句 175
4.5.3 生成(GENERATE)语句 177
4.5.4 子程序(SUBPROGRAM) 180
4.6 本章小结 182
思考与练习 182
第5章 VHDL设计应用实例 185
5.1 组合逻辑电路的分析与设计 185
5.1.1 门电路 185
5.1.2 编码器 187
5.1.3 译码器 188
5.1.4 多路选择器 190
5.1.5 数值比较器 193
5.1.6 加法器 195
5.2 时序逻辑电路设计 196
5.2.1 时钟信号和复位信号 196
5.2.2 触发器 197
5.2.3 寄存器和移位寄存器 203
5.2.4 计数器 208
5.3 存储器设计 212
5.3.1 RAM随机存储器 213
5.3.2 ROM只读存储器 214
5.3.3 堆栈 215
5.3.4 FIFO存储器 218
5.4 状态机设计 219
5.4.1 摩尔型状态机 220
5.4.2 米里型状态机 221
5.5 本章小结 224
思考与练习 224
第6章 QuartusⅡ软件及其应用 228
6.1 QuartusⅡ功能简介 228
6.2 原理图编辑输入法 231
6.2.1 建立QuartusⅡ工程文件 233
6.2.2 建立图形设计文件 235
6.2.3 对设计文件进行编译 237
6.2.4 引脚分配 238
6.2.5 设计仿真 243
6.2.6 目标器件加载 246
6.2.7 实验现象与结果 247
6.3 文本编辑输入法 248
6.3.1 编辑设计文件 248
6.3.2 创建工程 249
6.3.3 编译 250
6.3.4 仿真 252
6.3.5 引脚锁定和下载 254
6.4 层次电路设计 254
6.4.1 顶层文件设计 255
6.4.2 创建各模块的下层设计文件 257
6.4.3 设计项目的编译仿真 258
6.4.4 层次显示 258
6.5 LPM参数化宏功能模块及应用 260
6.5.1 IP的概念及Altera的IP 260
6.5.2 Alter宏功能模块应用实例 262
6.6 本章小结 265
思考与练习 265
第7章 EDA技术综合设计应用 267
7.1 数字钟设计 267
7.1.1 设计方案的选择 267
7.1.2 数字钟的工作原理 268
7.1.3 系统设计方案 268
7.1.4 具体设计流程 268
7.1.5 模块设计与分析 270
7.1.6 顶层文件的设计 277
7.1.7 实验结果 277
7.1.8 设计总结 278
7.2 直接数字频率合成器(DDS)的设计 279
7.2.1 DDS的工作原理 279
7.2.2 DDS的VHDL实现 280
7.2.3 DDS的QuartusⅡ仿真 283
7.3 通用异步收发器UART的设计 284
7.3.1 UART的基本工作原理 284
7.3.2 UART的实现 285
7.3.3 各模块的仿真 287
7.3.4 UART的顶层RTL电路 288
7.4 等精度频率计的设计 289
7.4.1 等精度测频原理 289
7.4.2 等精度测频的实现方案 290
7.4.3 系统总体设计方案与功能仿真 291
7.4.4 测量结果及误差分析 296
7.5 本章小结 296
参考文献 297