发表于2024-11-22
数字系统设计与Verilog HDL(第6版) pdf epub mobi txt 电子书 下载
本书根据EDA课程教学要求,以提高数字设计能力为目的,系统阐述FPGA数字系统开发的相关知识,主要内容包括EDA技术概述、FPGA/CPLD器件、Verilog硬件描述语言等。全书以Quartus Prime、Synplify Pro软件为平台,以Verilog―1995和Verilog―2001语言标准为依据,以可综合的设计为重点,通过大量经过验证的数字设计实例,阐述数字系统设计的方法与技术,由浅入深地介绍Verilog工程开发的知识与技能。本书的特点是:着眼于实用,紧密联系教学实际,实例丰富。全书深入浅出,概念清晰,语言流畅。
王金明,南京解放军理工大学通信学院教授,长期从事数字系数设计、电子电路设计方面课程的教学与科研工作。
第1章 EDA技术概述 1
1.1 EDA技术及其发展 1
1.2 Top-down设计与IP核复用 4
1.2.1 Top-down设计 4
1.2.2 Bottom-up设计 5
1.2.3 IP复用技术与SoC 5
1.3 数字设计的流程 7
1.3.1 设计输入 7
1.3.2 综合 9
1.3.3 布局布线 9
1.3.4 仿真 10
1.3.5 编程配置 10
1.4 常用的EDA软件工具 10
1.5 EDA技术的发展趋势 14
习题1 15
第2章 FPGA/CPLD器件 16
2.1 PLD器件概述 16
2.1.1 PLD器件的发展历程 16
2.1.2 PLD器件的分类 17
2.2 PLD的基本原理与结构 19
2.2.1 PLD器件的基本结构 19
2.2.2 PLD电路的表示方法 20
2.3 低密度PLD的原理与结构 21
2.4 CPLD的原理与结构 26
2.4.1 宏单元结构 26
2.4.2 典型CPLD的结构 27
2.5 FPGA的原理与结构 30
2.5.1 查找表结构 30
2.5.2 典型FPGA的结构 32
2.5.3 Cyclone IV器件结构 35
2.6 FPGA/CPLD的编程元件 38
2.7 边界扫描测试技术 42
2.8 FPGA/CPLD的编程与配置 44
2.8.1 在系统可编程 44
2.8.2 FPGA器件的配置 45
2.8.3 Cyclone IV器件的编程 46
2.9 FPGA/CPLD器件概述 49
2.10 FPGA/CPLD的发展趋势 52
习题2 53
第3章 Quartus Prime使用指南 54
3.1 Quartus Prime原理图设计 55
3.1.1 半加器原理图设计输入 55
3.1.2 1位全加器设计输入 60
3.1.3 1位全加器的编译 61
3.1.4 1位全加器的仿真 63
3.1.5 1位全加器的下载 67
3.2 基于IP核的设计 71
3.2.1 模24方向可控计数器 71
3.2.2 4×4无符号数乘法器 78
3.3 SignalTap II的使用方法 84
3.4 Quartus Prime的优化设置与时序分析 88
习题3 93
实验与设计 95
3-1 简易数字钟 95
3-2 m序列发生器 97
3-3 8位带符号乘法器 97
3-4 用常量模块实现补码转换幅度码电路 101
第4章 Verilog设计初步 102
4.1 Verilog简介 102
4.2 Verilog模块的结构 103
4.3 Verilog基本组合电路设计 107
4.3.1 用Verilog设计基本组合电路 107
4.3.2 用Verilog设计加法器 107
4.4 Verilog基本时序电路设计 110
4.4.1 用Verilog设计触发器 110
4.4.2 用Verilog设计计数器 111
习题4 113
实验与设计 113
4-1 Synplify Pro综合器的使用方法 113
4-2 Synplify综合器的使用方法 117
第5章 Verilog语法与要素 119
5.1 Verilog语言要素 119
5.2 常量 120
5.2.1 整数(Integer) 120
5.2.2 实数(Real) 122
5.2.3 字符串(Strings) 122
5.3 数据类型 123
5.3.1 net型 123
5.3.2 variable型 124
5.4 参数 126
5.5 向量 128
5.6 运算符 130
习题5 134
实验与设计 135
5-1 用altpll锁相环宏模块实现倍频和分频 135
第6章 Verilog行为语句 140
6.1 过程语句 140
6.1.1 always过程语句 141
6.1.2 initial过程语句 144
6.2 块语句 145
6.2.1 串行块begin-end 145
6.2.2 并行块fork-join 146
6.3 赋值语句 147
6.3.1 持续赋值与过程赋值 147
6.3.2 阻塞赋值与非阻塞赋值 148
6.4 条件语句 149
6.4.1 if-else语句 150
6.4.2 case语句 151
6.5 循环语句 155
6.5.1 for语句 156
6.5.2 repeat、while、forever语句 157
6.6 编译指示语句 159
6.7 任务与函数 160
6.7.1 任务(task) 160
6.7.2 函数(function) 162
6.8 顺序执行与并发执行 166
习题6 167
实验与设计 167
6-1 4×4矩阵键盘检测电路 167
第7章 Verilog设计的层次与风格 170
7.1 Verilog设计的层次 170
7.2 门级结构描述 170
7.2.1 Verilog HDL内置门元件 171
7.2.2 门级结构描述 173
7.3 行为描述 174
7.4 数据流描述 175
7.5 不同描述风格的设计 176
7.5.1 半加器设计 176
7.5.2 1位全加器设计 177
7.5.3 4位加法器设计 179
7.6 多层次结构电路的设计 179
7.7 基本组合电路设计 182
7.7.1 门电路 182
7.7.2 编译码器 182
7.7.3 其他组合电路 184
7.8 基本时序电路设计 185
7.8.1 触发器 185
7.8.2 锁存器与寄存器 185
7.8.3 计数器与串并转换器 187
7.8.4 简易微处理器 188
7.9 三态逻辑设计 190
习题7 192
实验与设计 192
7-1 数字表决器 192
7-2 FIFO缓存器设计 195
第8章 Verilog有限状态机设计 199
8.1 有限状态机 199
8.2 有限状态机的Verilog描述 201
8.2.1 用三个过程描述 202
8.2.2 用两个过程描述 203
8.2.3 单过程描述方式 205
8.3 状 态 编 码 207
8.3.1 常用的编码方式 207
8.3.2 状态编码的定义 211
8.4 有限状态机设计要点 213
8.4.1 复位和起始状态的选择 213
8.4.2 多余状态的处理 213
习题8 215
实验与设计 215
8-1 流水灯控制器 215
8-2 汽车尾灯控制器 217
8-3 状态机A/D采样控制电路 218
8-4 用状态机实现字符液晶显示控制 219
第9章 Verilog设计进阶 226
9.1 加法器设计 226
9.1.1 级连加法器 226
9.1.2 数据流描述的加法器 227
9.1.3 超前进位加法器 228
9.1.4 流水线加法器 229
9.2 乘法器设计 230
9.2.1 并行乘法器 230
9.2.2 移位相加乘法器 232
9.2.3 布斯乘法器 234
9.2.4 查找表乘法器 237
9.3 奇数分频与小数分频 237
9.3.1 奇数分频 237
9.3.2 半整数分频与小数分频 239
9.4 VGA图像的显示与控制 241
9.4.1 VGA图像显示原理与时序 241
9.4.2 VGA图像显示与控制的实现 244
9.5 点阵式液晶显示控制 250
9.6 乐曲演奏电路 255
习题9 260
实验与设计 262
9-1 数字跑表 262
9-2 实用多功能数字钟 269
第10章 Verilog设计的优化 278
10.1 设计的可综合性 278
10.2 流水线设计技术 280
10.3 资源共享 284
10.4 过程 286
10.5 阻塞赋值与非阻塞赋值 288
习题10 292
实验与设计 292
10-1 小数分频 292
10-2 如何在FPGA设计中消除毛刺 294
10-3 消抖动电路 297
第11章 Verilog Test Bench与仿真 298
11.1 系统任务与系统函数 298
11.2 用户自定义元件 302
11.2.1 组合电路UDP元件 303
11.2.2 时序逻辑UDP元件 304
11.3 延时模型的表示 306
11.3.1 时间标尺定义`timescale 306
11.3.2 延时的表示与延时说明块 307
11.4 Test Bench测试平台 308
11.5 组合和时序电路的仿真 310
11.5.1 组合电路的仿真 310
11.5.2 时序电路的仿真 312
习题11 313
实验与设计 314
11-1 用ModelSim SE仿真8位二进制加法器 314
11-2 用ModelSim SE仿真乘累加器 322
第12章 Verilog语言的发展 324
12.1 Verilog―2001语法结构 324
12.1.1 语法结构的扩展与增强 324
12.1.2 设计管理 330
12.1.3 系统任务和系统函数的扩展 332
12.1.4 VCD文件的扩展 335
12.2 Verilog―2002语法结构 336
12.2.1 硬件单元建模 337
12.2.2 属性 340
12.2.3 编程语言接口 344
习题12 345
第13章 通信与信号处理设计实例 346
13.1 m序列发生器 346
13.1.1 m序列的原理与性质 346
13.1.2 m序列产生器设计 348
13.2 Gold码 350
13.2.1 Gold码的原理与性质 350
13.2.2 Gold码产生器设计 351
13.3 CRC校验码 353
13.4 FSK解调 355
13.5 数字过零检测与等精度频率测量 358
13.5.1 数字过零检测法 358
13.5.2 等精度频率测量 359
13.6 QPSK调制器的FPGA实现 362
13.7 FIR数字滤波器 365
习题13 369
实验与设计 369
13-1 信号音产生器 369
13-2 异步串行接口(UART) 376
附录A Verilog HDL(IEEE Std 1364―1995)关键字 382
附录B Verilog HDL(IEEE Std 1364―2001)关键字 383
附录C DE2―115介绍 384
附录D 有关术语与缩略语 386
参考文献 391
第6版前言
本书在第5版的基础上主要做了如下修订:
(1)将设计工具从Quartus II 9.0升级为Quartus Prime 16.0。从Quartus II 10.0开始,Quartus II软件取消了自带的波形仿真工具,转而采用专业第三方仿真工具ModelSim进行仿真;Quartus II 13.1之后Quartus II只支持64位操作系统(Windows 7,8,10);从Quartus II 15.1开始Quartus II开发工具改称Quartus Prime;2016年5月Altera发布了Quartus Prime 16.0版本。Quartus Prime 16.0相比Quartus II 9.0,支持的器件更新,自带的免费IP更多,编译速度更快,支持System Verilog—2005和VHDL—2008,作为设计者我们应该积极地适应EDA设计工具的这种变化,并尽可能采用新版本。
(2)将实验板从DE2、DE2—70升级为DE2—115。从Quartus II 13.1版本开始,Quartus II软件已不再支持Cyclone I和Cyclone II器件(Cyclone I和Cyclone II业已停产),所以基于Cyclone II器件的DE2和DE2—70实验板,用Quartus II 13.1版本后的Quartus II已不能下载。DE2—115实验板基于Cyclone IV FPGA器件(EP4CE115F29),器件新,资源更丰富,同时,在外设和使用习惯等方面与DE2—70基本保持一致,所以本书将针对的实验板改为DE2—115。
(3)更新了有关ModelSim仿真的内容。本书介绍了两个版本的ModelSim的使用方法,一个是Altera的OEM版本ModelSim-Altera;同时在第11章中详细介绍了ModelSim SE进行功能和时序仿真的过程,ModelSim SE的功能更强更全面一些。
(4)更新了部分有关FPGA器件结构的内容,使之尽量反映FPGA器件的发展。
(5)更新和修正了设计案例,将设计案例基于DE2—115实验板重新做了修改和验证。
由于FPGA芯片和EDA软件的不断更新换代,同时因作者时间和精力所限,本书虽经不断改版和修正,仍不免有诸多疏漏和遗憾,一些案例也有继续发挥和改进的空间,同时一些新的例程限于篇幅未能在书中得到反映。基于本教材的慕课(MOOC)教学资源建设正在实施中,建成后将会在华信教育网推出。本书与作者的另一拙作《数字系统设计与VHDL》(即将修订改版)互为补充,前者以Verilog语言开发为主,后者则以VHDL语言的设计为重点。
感谢友晶科技的彭显恩经理和尹作娟女士,鑫合欣的王婷女士在本书写作过程中给予作者的大力支持;感谢美国威斯康星大学麦迪逊分校的Yu Hen Hu教授在作者访学期间在学术上和教学上给予作者的无私帮助与支持;感谢本书责任编辑窦昊先生与作者多年的鼎力合作。
本书疏漏与错误之处,希望读者和同行给予批评指正。
编著者
2016年8月于解放军理工大学
不错的一本书
评分不错的一本书
评分不错的一本书
评分不错的一本书
评分不错的一本书
评分不错的一本书
评分不错的一本书
评分不错的一本书
评分不错的一本书
数字系统设计与Verilog HDL(第6版) pdf epub mobi txt 电子书 下载