书籍详情
数字系统设计与Verilog HDL(第6版)
作者:王金明 著
出版社:电子工业出版社
出版时间:2016-10-01
ISBN:9787121300974
定价:¥49.90
购买这本书可以去
内容简介
本书根据EDA课程教学要求,以提高数字设计能力为目的,系统阐述FPGA数字系统开发的相关知识,主要内容包括EDA技术概述、FPGA/CPLD器件、Verilog硬件描述语言等。全书以Quartus Prime、Synplify Pro软件为平台,以Verilog―1995和Verilog―2001语言标准为依据,以可综合的设计为重点,通过大量经过验证的数字设计实例,阐述数字系统设计的方法与技术,由浅入深地介绍Verilog工程开发的知识与技能。本书的特点是:着眼于实用,紧密联系教学实际,实例丰富。全书深入浅出,概念清晰,语言流畅。
作者简介
王金明,南京解放军理工大学通信学院教授,长期从事数字系数设计、电子电路设计方面课程的教学与科研工作。
目录
第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 设计输入\t7
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的原理与结构\t26
2.4.1 宏单元结构\t26
2.4.2 典型CPLD的结构\t27
2.5 FPGA的原理与结构\t30
2.5.1 查找表结构\t30
2.5.2 典型FPGA的结构\t32
2.5.3 Cyclone IV器件结构\t35
2.6 FPGA/CPLD的编程元件\t38
2.7 边界扫描测试技术\t42
2.8 FPGA/CPLD的编程与配置\t44
2.8.1 在系统可编程\t44
2.8.2 FPGA器件的配置\t45
2.8.3 Cyclone IV器件的编程\t46
2.9 FPGA/CPLD器件概述\t49
2.10 FPGA/CPLD的发展趋势\t52
习题2\t53
第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位全加器的下载\t67
3.2 基于IP核的设计\t71
3.2.1 模24方向可控计数器\t71
3.2.2 4×4无符号数乘法器\t78
3.3 SignalTap II的使用方法\t84
3.4 Quartus Prime的优化设置与时序分析\t88
习题3\t93
实验与设计\t95
3-1 简易数字钟\t95
3-2 m序列发生器\t97
3-3 8位带符号乘法器\t97
3-4 用常量模块实现补码转换幅度码电路\t101
第4章 Verilog设计初步\t102
4.1 Verilog简介\t102
4.2 Verilog模块的结构\t103
4.3 Verilog基本组合电路设计\t107
4.3.1 用Verilog设计基本组合电路\t107
4.3.2 用Verilog设计加法器\t107
4.4 Verilog基本时序电路设计\t110
4.4.1 用Verilog设计触发器\t110
4.4.2 用Verilog设计计数器\t111
习题4\t113
实验与设计\t113
4-1 Synplify Pro综合器的使用方法\t113
4-2 Synplify综合器的使用方法\t117
第5章 Verilog语法与要素\t119
5.1 Verilog语言要素\t119
5.2 常量\t120
5.2.1 整数(Integer)\t120
5.2.2 实数(Real)\t122
5.2.3 字符串(Strings)\t122
5.3 数据类型\t123
5.3.1 net型\t123
5.3.2 variable型\t124
5.4 参数\t126
5.5 向量\t128
5.6 运算符\t130
习题5\t134
实验与设计\t135
5-1 用altpll锁相环宏模块实现倍频和分频\t135
第6章 Verilog行为语句\t140
6.1 过程语句\t140
6.1.1 always过程语句\t141
6.1.2 initial过程语句\t144
6.2 块语句\t145
6.2.1 串行块begin-end\t145
6.2.2 并行块fork-join\t146
6.3 赋值语句\t147
6.3.1 持续赋值与过程赋值\t147
6.3.2 阻塞赋值与非阻塞赋值\t148
6.4 条件语句\t149
6.4.1 if-else语句\t150
6.4.2 case语句\t151
6.5 循环语句\t155
6.5.1 for语句\t156
6.5.2 repeat、while、forever语句\t157
6.6 编译指示语句\t159
6.7 任务与函数\t160
6.7.1 任务(task)\t160
6.7.2 函数(function)\t162
6.8 顺序执行与并发执行\t166
习题6\t167
实验与设计\t167
6-1 4×4矩阵键盘检测电路\t167
第7章 Verilog设计的层次与风格\t170
7.1 Verilog设计的层次\t170
7.2 门级结构描述\t170
7.2.1 Verilog HDL内置门元件\t171
7.2.2 门级结构描述\t173
7.3 行为描述\t174
7.4 数据流描述\t175
7.5 不同描述风格的设计\t176
7.5.1 半加器设计\t176
7.5.2 1位全加器设计\t177
7.5.3 4位加法器设计\t179
7.6 多层次结构电路的设计\t179
7.7 基本组合电路设计\t182
7.7.1 门电路\t182
7.7.2 编译码器\t182
7.7.3 其他组合电路\t184
7.8 基本时序电路设计\t185
7.8.1 触发器\t185
7.8.2 锁存器与寄存器\t185
7.8.3 计数器与串并转换器\t187
7.8.4 简易微处理器\t188
7.9 三态逻辑设计\t190
习题7\t192
实验与设计\t192
7-1 数字表决器\t192
7-2 FIFO缓存器设计\t195
第8章 Verilog有限状态机设计\t199
8.1 有限状态机\t199
8.2 有限状态机的Verilog描述\t201
8.2.1 用三个过程描述\t202
8.2.2 用两个过程描述\t203
8.2.3 单过程描述方式\t205
8.3 状 态 编 码\t207
8.3.1 常用的编码方式\t207
8.3.2 状态编码的定义\t211
8.4 有限状态机设计要点\t213
8.4.1 复位和起始状态的选择\t213
8.4.2 多余状态的处理\t213
习题8\t215
实验与设计\t215
8-1 流水灯控制器\t215
8-2 汽车尾灯控制器\t217
8-3 状态机A/D采样控制电路\t218
8-4 用状态机实现字符液晶显示控制\t219
第9章 Verilog设计进阶\t226
9.1 加法器设计\t226
9.1.1 级连加法器\t226
9.1.2 数据流描述的加法器\t227
9.1.3 超前进位加法器\t228
9.1.4 流水线加法器\t229
9.2 乘法器设计\t230
9.2.1 并行乘法器\t230
9.2.2 移位相加乘法器\t232
9.2.3 布斯乘法器\t234
9.2.4 查找表乘法器\t237
9.3 奇数分频与小数分频\t237
9.3.1 奇数分频\t237
9.3.2 半整数分频与小数分频\t239
9.4 VGA图像的显示与控制\t241
9.4.1 VGA图像显示原理与时序\t241
9.4.2 VGA图像显示与控制的实现\t244
9.5 点阵式液晶显示控制\t250
9.6 乐曲演奏电路\t255
习题9\t260
实验与设计\t262
9-1 数字跑表\t262
9-2 实用多功能数字钟\t269
第10章 Verilog设计的优化\t278
10.1 设计的可综合性\t278
10.2 流水线设计技术\t280
10.3 资源共享\t284
10.4 过程\t286
10.5 阻塞赋值与非阻塞赋值\t288
习题10\t292
实验与设计\t292
10-1 小数分频\t292
10-2 如何在FPGA设计中消除毛刺\t294
10-3 消抖动电路\t297
第11章 Verilog Test Bench与仿真\t298
11.1 系统任务与系统函数\t298
11.2 用户自定义元件\t302
11.2.1 组合电路UDP元件\t303
11.2.2 时序逻辑UDP元件\t304
11.3 延时模型的表示\t306
11.3.1 时间标尺定义`timescale\t306
11.3.2 延时的表示与延时说明块\t307
11.4 Test Bench测试平台\t308
11.5 组合和时序电路的仿真\t310
11.5.1 组合电路的仿真\t310
11.5.2 时序电路的仿真\t312
习题11\t313
实验与设计\t314
11-1 用ModelSim SE仿真8位二进制加法器\t314
11-2 用ModelSim SE仿真乘累加器\t322
第12章 Verilog语言的发展\t324
12.1 Verilog―2001语法结构\t324
12.1.1 语法结构的扩展与增强\t324
12.1.2 设计管理\t330
12.1.3 系统任务和系统函数的扩展\t332
12.1.4 VCD文件的扩展\t335
12.2 Verilog―2002语法结构\t336
12.2.1 硬件单元建模\t337
12.2.2 属性\t340
12.2.3 编程语言接口\t344
习题12\t345
第13章 通信与信号处理设计实例\t346
13.1 m序列发生器\t346
13.1.1 m序列的原理与性质\t346
13.1.2 m序列产生器设计\t348
13.2 Gold码\t350
13.2.1 Gold码的原理与性质\t350
13.2.2 Gold码产生器设计\t351
13.3 CRC校验码\t353
13.4 FSK解调\t355
13.5 数字过零检测与等精度频率测量\t358
13.5.1 数字过零检测法\t358
13.5.2 等精度频率测量\t359
13.6 QPSK调制器的FPGA实现\t362
13.7 FIR数字滤波器\t365
习题13\t369
实验与设计\t369
13-1 信号音产生器\t369
13-2 异步串行接口(UART)\t376
附录A Verilog HDL(IEEE Std 1364―1995)关键字\t382
附录B Verilog HDL(IEEE Std 1364―2001)关键字\t383
附录C DE2―115介绍\t384
附录D 有关术语与缩略语\t386
参考文献\t391
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 设计输入\t7
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的原理与结构\t26
2.4.1 宏单元结构\t26
2.4.2 典型CPLD的结构\t27
2.5 FPGA的原理与结构\t30
2.5.1 查找表结构\t30
2.5.2 典型FPGA的结构\t32
2.5.3 Cyclone IV器件结构\t35
2.6 FPGA/CPLD的编程元件\t38
2.7 边界扫描测试技术\t42
2.8 FPGA/CPLD的编程与配置\t44
2.8.1 在系统可编程\t44
2.8.2 FPGA器件的配置\t45
2.8.3 Cyclone IV器件的编程\t46
2.9 FPGA/CPLD器件概述\t49
2.10 FPGA/CPLD的发展趋势\t52
习题2\t53
第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位全加器的下载\t67
3.2 基于IP核的设计\t71
3.2.1 模24方向可控计数器\t71
3.2.2 4×4无符号数乘法器\t78
3.3 SignalTap II的使用方法\t84
3.4 Quartus Prime的优化设置与时序分析\t88
习题3\t93
实验与设计\t95
3-1 简易数字钟\t95
3-2 m序列发生器\t97
3-3 8位带符号乘法器\t97
3-4 用常量模块实现补码转换幅度码电路\t101
第4章 Verilog设计初步\t102
4.1 Verilog简介\t102
4.2 Verilog模块的结构\t103
4.3 Verilog基本组合电路设计\t107
4.3.1 用Verilog设计基本组合电路\t107
4.3.2 用Verilog设计加法器\t107
4.4 Verilog基本时序电路设计\t110
4.4.1 用Verilog设计触发器\t110
4.4.2 用Verilog设计计数器\t111
习题4\t113
实验与设计\t113
4-1 Synplify Pro综合器的使用方法\t113
4-2 Synplify综合器的使用方法\t117
第5章 Verilog语法与要素\t119
5.1 Verilog语言要素\t119
5.2 常量\t120
5.2.1 整数(Integer)\t120
5.2.2 实数(Real)\t122
5.2.3 字符串(Strings)\t122
5.3 数据类型\t123
5.3.1 net型\t123
5.3.2 variable型\t124
5.4 参数\t126
5.5 向量\t128
5.6 运算符\t130
习题5\t134
实验与设计\t135
5-1 用altpll锁相环宏模块实现倍频和分频\t135
第6章 Verilog行为语句\t140
6.1 过程语句\t140
6.1.1 always过程语句\t141
6.1.2 initial过程语句\t144
6.2 块语句\t145
6.2.1 串行块begin-end\t145
6.2.2 并行块fork-join\t146
6.3 赋值语句\t147
6.3.1 持续赋值与过程赋值\t147
6.3.2 阻塞赋值与非阻塞赋值\t148
6.4 条件语句\t149
6.4.1 if-else语句\t150
6.4.2 case语句\t151
6.5 循环语句\t155
6.5.1 for语句\t156
6.5.2 repeat、while、forever语句\t157
6.6 编译指示语句\t159
6.7 任务与函数\t160
6.7.1 任务(task)\t160
6.7.2 函数(function)\t162
6.8 顺序执行与并发执行\t166
习题6\t167
实验与设计\t167
6-1 4×4矩阵键盘检测电路\t167
第7章 Verilog设计的层次与风格\t170
7.1 Verilog设计的层次\t170
7.2 门级结构描述\t170
7.2.1 Verilog HDL内置门元件\t171
7.2.2 门级结构描述\t173
7.3 行为描述\t174
7.4 数据流描述\t175
7.5 不同描述风格的设计\t176
7.5.1 半加器设计\t176
7.5.2 1位全加器设计\t177
7.5.3 4位加法器设计\t179
7.6 多层次结构电路的设计\t179
7.7 基本组合电路设计\t182
7.7.1 门电路\t182
7.7.2 编译码器\t182
7.7.3 其他组合电路\t184
7.8 基本时序电路设计\t185
7.8.1 触发器\t185
7.8.2 锁存器与寄存器\t185
7.8.3 计数器与串并转换器\t187
7.8.4 简易微处理器\t188
7.9 三态逻辑设计\t190
习题7\t192
实验与设计\t192
7-1 数字表决器\t192
7-2 FIFO缓存器设计\t195
第8章 Verilog有限状态机设计\t199
8.1 有限状态机\t199
8.2 有限状态机的Verilog描述\t201
8.2.1 用三个过程描述\t202
8.2.2 用两个过程描述\t203
8.2.3 单过程描述方式\t205
8.3 状 态 编 码\t207
8.3.1 常用的编码方式\t207
8.3.2 状态编码的定义\t211
8.4 有限状态机设计要点\t213
8.4.1 复位和起始状态的选择\t213
8.4.2 多余状态的处理\t213
习题8\t215
实验与设计\t215
8-1 流水灯控制器\t215
8-2 汽车尾灯控制器\t217
8-3 状态机A/D采样控制电路\t218
8-4 用状态机实现字符液晶显示控制\t219
第9章 Verilog设计进阶\t226
9.1 加法器设计\t226
9.1.1 级连加法器\t226
9.1.2 数据流描述的加法器\t227
9.1.3 超前进位加法器\t228
9.1.4 流水线加法器\t229
9.2 乘法器设计\t230
9.2.1 并行乘法器\t230
9.2.2 移位相加乘法器\t232
9.2.3 布斯乘法器\t234
9.2.4 查找表乘法器\t237
9.3 奇数分频与小数分频\t237
9.3.1 奇数分频\t237
9.3.2 半整数分频与小数分频\t239
9.4 VGA图像的显示与控制\t241
9.4.1 VGA图像显示原理与时序\t241
9.4.2 VGA图像显示与控制的实现\t244
9.5 点阵式液晶显示控制\t250
9.6 乐曲演奏电路\t255
习题9\t260
实验与设计\t262
9-1 数字跑表\t262
9-2 实用多功能数字钟\t269
第10章 Verilog设计的优化\t278
10.1 设计的可综合性\t278
10.2 流水线设计技术\t280
10.3 资源共享\t284
10.4 过程\t286
10.5 阻塞赋值与非阻塞赋值\t288
习题10\t292
实验与设计\t292
10-1 小数分频\t292
10-2 如何在FPGA设计中消除毛刺\t294
10-3 消抖动电路\t297
第11章 Verilog Test Bench与仿真\t298
11.1 系统任务与系统函数\t298
11.2 用户自定义元件\t302
11.2.1 组合电路UDP元件\t303
11.2.2 时序逻辑UDP元件\t304
11.3 延时模型的表示\t306
11.3.1 时间标尺定义`timescale\t306
11.3.2 延时的表示与延时说明块\t307
11.4 Test Bench测试平台\t308
11.5 组合和时序电路的仿真\t310
11.5.1 组合电路的仿真\t310
11.5.2 时序电路的仿真\t312
习题11\t313
实验与设计\t314
11-1 用ModelSim SE仿真8位二进制加法器\t314
11-2 用ModelSim SE仿真乘累加器\t322
第12章 Verilog语言的发展\t324
12.1 Verilog―2001语法结构\t324
12.1.1 语法结构的扩展与增强\t324
12.1.2 设计管理\t330
12.1.3 系统任务和系统函数的扩展\t332
12.1.4 VCD文件的扩展\t335
12.2 Verilog―2002语法结构\t336
12.2.1 硬件单元建模\t337
12.2.2 属性\t340
12.2.3 编程语言接口\t344
习题12\t345
第13章 通信与信号处理设计实例\t346
13.1 m序列发生器\t346
13.1.1 m序列的原理与性质\t346
13.1.2 m序列产生器设计\t348
13.2 Gold码\t350
13.2.1 Gold码的原理与性质\t350
13.2.2 Gold码产生器设计\t351
13.3 CRC校验码\t353
13.4 FSK解调\t355
13.5 数字过零检测与等精度频率测量\t358
13.5.1 数字过零检测法\t358
13.5.2 等精度频率测量\t359
13.6 QPSK调制器的FPGA实现\t362
13.7 FIR数字滤波器\t365
习题13\t369
实验与设计\t369
13-1 信号音产生器\t369
13-2 异步串行接口(UART)\t376
附录A Verilog HDL(IEEE Std 1364―1995)关键字\t382
附录B Verilog HDL(IEEE Std 1364―2001)关键字\t383
附录C DE2―115介绍\t384
附录D 有关术语与缩略语\t386
参考文献\t391
猜您喜欢