第1章 EDA技术概述\t1
1.1 EDA技术及其发展\t1
1.2 Top-down设计与IP核复用\t4
1.2.1 Top-down设计\t4
1.2.2 Bottom-up设计\t5
1.2.3 IP复用技术与SoC\t5
1.3 数字设计的流程\t7
1.3.1 设计输入\t8
1.3.2 综合\t9
1.3.3 布局布线\t9
1.3.4 仿真\t10
1.3.5 编程配置\t10
1.4 常用的EDA软件工具\t10
1.5 EDA技术的发展趋势\t14
习题1\t15
第2章 FPGA/CPLD器件\t16
2.1 PLD器件概述\t16
2.1.1 PLD器件的发展历程\t16
2.1.2 PLD器件的分类\t17
2.2 PLD的基本原理与结构\t19
2.2.1 PLD器件的基本结构\t19
2.2.2 PLD电路的表示方法\t20
2.3 低密度PLD的原理与结构\t21
2.4 CPLD的原理与结构\t25
2.4.1 宏单元结构\t25
2.4.2 典型CPLD的结构\t26
2.5 FPGA的原理与结构\t29
2.5.1 查找表结构\t29
2.5.2 典型FPGA的结构\t32
2.5.3 Altera的Cyclone IV器件结构\t35
2.6 FPGA/CPLD的编程元件\t38
2.7 边界扫描测试技术\t42
2.8 FPGA/CPLD的编程与配置\t43
2.8.1 在系统可编程\t43
2.8.2 FPGA器件的配置\t45
2.8.3 Cyclone IV器件的编程\t46
2.9 FPGA/CPLD器件概述\t48
2.10 FPGA/CPLD的发展趋势\t52
习题2\t52
第3章 Quartus Prime使用指南\t54
3.1 Quartus Prime原理图设计\t55
3.1.1 半加器原理图设计输入\t55
3.1.2 1位全加器设计输入\t60
3.1.3 1位全加器的编译\t61
3.1.4 1位全加器的仿真\t63
3.1.5 1位全加器的下载\t68
3.2 基于IP核的设计\t71
3.2.1 用LPM_COUNTER设计模24方向可控计数器\t72
3.2.2 用LPM_ROM模块实现4×4无符号数乘法器\t79
3.3 SignalTap II的使用方法\t86
3.4 Quartus Prime的优化设置与时序分析\t91
习题3\t95
实验与设计\t97
3-1 8位带符号乘法器\t97
3-2 用常量模块实现补码转换为幅度码的电路\t101
第4章 VHDL设计初步\t103
4.1 VHDL简介\t103
4.2 VHDL组合电路设计\t104
4.2.1 用VHDL设计基本组合电路\t104
4.2.2 用VHDL设计加法器\t106
4.3 VHDL时序电路设计\t108
4.3.1 用VHDL设计D触发器\t108
4.3.2 用VHDL设计计数器\t111
习题4\t114
实验与设计\t115
4-1 Synplify Pro综合器的使用方法\t115
第5章 VHDL结构与要素\t120
5.1 实体\t120
5.1.1 类属参数说明\t120
5.1.2 端口说明\t122
5.2 结构体\t122
5.3 VHDL库和程序包\t123
5.3.1 库\t124
5.3.2 程序包\t126
5.4 配置\t128
5.5 子程序\t131
5.5.1 过程\t132
5.5.2 函数\t134
5.6 VHDL文字规则\t136
5.6.1 标识符\t136
5.6.2 数字\t137
5.6.3 字符串\t137
5.7 数据对象\t138
5.7.1 常量\t138
5.7.2 变量\t139
5.7.3 信号\t139
5.7.4 文件\t140
5.8 VHDL数据类型\t141
5.8.1 预定义数据类型\t142
5.8.2 用户自定义数据类型\t145
5.8.3 数据类型的转换\t148
5.9 VHDL运算符\t150
5.9.1 逻辑运算符\t150
5.9.2 关系运算符\t151
5.9.3 算术运算符\t152
5.9.4 并置运算符\t153
5.9.5 运算符重载\t153
习题5\t154
实验与设计\t155
5-1 用altpll锁相环IP核实现倍频和分频\t155
第6章 VHDL基本语句\t161
6.1 顺序语句\t161
6.1.1 赋值语句\t161
6.1.2 IF语句\t161
6.1.3 CASE语句\t167
6.1.4 LOOP语句\t170
6.1.5 NEXT与EXIT语句\t172
6.1.6 WAIT语句\t173
6.1.7 子程序调用语句\t175
6.1.8 断言语句\t175
6.1.9 REPORT语句\t176
6.1.10 NULL语句\t177
6.2 并行语句\t178
6.2.1 并行信号赋值语句\t178
6.2.2 进程语句\t183
6.2.3 块语句\t186
6.2.4 元件例化语句\t187
6.2.5 生成语句\t189
6.2.6 并行过程调用语句\t192
6.3 属性说明与定义语句\t193
6.3.1 数据类型属性\t193
6.3.2 数组属性\t194
6.3.3 信号属性\t195
习题6\t196
实验与设计\t196
6-1 4×4矩阵键盘检测电路\t196
6-2 FIFO缓存器设计\t199
第7章 VHDL设计进阶\t204
7.1 行为描述\t204
7.2 数据流描述\t205
7.3 结构描述\t206
7.3.1 用结构描述设计1位全加器\t206
7.3.2 用结构描述设计4位加法器\t208
7.3.3 用结构描述设计8位加法器\t209
7.4 三态逻辑设计\t211
7.5 分频器设计\t213
7.5.1 占空比为50%的奇数分频\t213
7.5.2 半整数分频\t215
7.5.3 数控分频器\t217
7.6 音乐演奏电路\t218
7.6.1 音乐演奏实现的方法\t218
7.6.2 实现与下载\t220
习题7\t223
实验与设计\t224
7-1 数字表决器\t224
7-2 数字跑表\t227
第8章 VHDL有限状态机设计\t233
8.1 有限状态机\t233
8.1.1 有限状态机的描述\t233
8.1.2 枚举数据类型\t236
8.2 有限状态机的描述方式\t237
8.2.1 三进程表述方式\t238
8.2.2 双进程表述方式\t239
8.2.3 单进程表述方式\t241
8.3 状态编码\t244
8.3.1 常用的编码方式\t244
8.3.2 用ATTRIBUTE指定编码方式\t245
8.3.3 用常量进行编码\t247
8.4 有限状态机设计要点\t249
8.4.1 起始状态的选择和复位\t249
8.4.2 多余状态的处理\t251
习题8\t252
实验与设计\t253
8-1 流水灯控制器\t253
8-2 状态机A/D采样控制电路\t255
第9章 VHDL数字设计与优化\t258
9.1 流水线设计技术\t258
9.2 资源共享\t261
9.3 VGA图像的显示与控制\t265
9.3.1 VGA图像显示原理与时序\t265
9.3.2 VGA图像显示与控制的实现\t269
9.4 数字过零检测和等精度频率测量\t276
9.4.1 数字过零检测\t276
9.4.2 等精度频率测量\t278
9.4.3 数字测量系统\t280
习题9\t282
实验与设计\t284
9-1 字符液晶显示控制器设计\t284
第10章 VHDL的Test Bench仿真\t291
10.1 VHDL仿真概述\t291
10.2 VHDL测试平台\t292
10.2.1 用VHDL描述仿真激励信号\t292
10.2.2 用TEXTIO进行仿真\t296
10.3 ModelSim SE仿真实例\t299
10.3.1 图形界面仿真方式\t302
10.3.2 命令行仿真方式\t305
10.3.3 ModelSim SE时序仿真\t307
习题10\t309
实验与设计\t309
10-1 用ModelSim SE仿真奇偶检测电路\t309
第11章 VHDL设计实例\t312
11.1 m序列产生器\t312
11.1.1 m序列的原理与性质\t312
11.1.2 用原理图设计产生m序列\t314
11.1.3 用VHDL设计m序列\t315
11.2 Gold码\t317
11.2.1 Gold码的原理与性质\t317
11.2.2 用原理图设计产生Gold码\t318
11.2.3 用VHDL设计实现Gold码\t319
11.3 卷积码\t320
11.3.1 卷积码原理\t320
11.3.2 卷积码实现\t320
11.4 QPSK数字调制产生\t323
11.4.1 调制原理\t323
11.4.2 QPSK调制信号产生的设计实现\t324
11.5 小型神经网络\t333
11.6 数字AGC\t337
11.6.1 数字AGC技术的原理和设计思想\t337
11.6.2 数字AGC的VHDL实现\t338
11.6.3 数字AGC的仿真\t345
习题11\t347
实验与设计\t347
11-1 异步串行接口(UART)\t347
附录A VHDL关键字\t356
附录B DE2-115介绍\t357