图书简介:
第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  设计输入	8
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的原理与结构	25
2.4.1  宏单元结构	25
2.4.2  典型CPLD的结构	26
2.5  FPGA的原理与结构	29
2.5.1  查找表结构	29
2.5.2  典型FPGA的结构	32
2.5.3  Cyclone IV器件结构	35
2.6  FPGA/CPLD的编程元件	38
2.7  边界扫描测试技术	42
2.8  FPGA/CPLD的编程与配置	43
2.8.1  在系统可编程	43
2.8.2  FPGA器件的配置	45
2.8.3  Cyclone IV器件的编程	45
2.9  FPGA/CPLD器件概述	48
2.10  FPGA/CPLD的发展趋势	52
习题2	53
第3章  Quartus Prime使用指南	54
3.1  Quartus Prime原理图设计	55
3.1.1  半加器原理图设计输入	55
3.1.2  1位全加器设计输入	59
3.1.3  1位全加器的编译	61
3.1.4  1位全加器的仿真	63
3.1.5  1位全加器的下载	67
3.2  基于IP核的设计	70
3.2.1  模24方向可控计数器	71
3.2.2  4×4无符号数乘法器	78
3.3  SignalTap II的使用方法	84
3.4  Quartus Prime的优化设置与时序分析	89
习题3	93
实验与设计	95
3-1  8位带符号乘法器	95
3-2  补码转换幅度码电路	98
第4章  Verilog设计初步	100
4.1  Verilog的历史	100
4.2  Verilog模块的结构	101
4.3  Verilog基本组合电路设计	105
4.3.1  用Verilog设计基本组合电路	105
4.3.2  用Verilog设计加法器	105
4.4  Verilog基本时序电路设计	108
4.4.1  用Verilog设计触发器	108
4.4.2  用Verilog设计计数器	109
习题4	111
实验与设计	111
4-1  Synplify Pro综合器的使用方法	111
4-2  Synplify综合器的使用方法	115
第5章  Verilog语言要素	117
5.1  概述	117
5.2  常量	118
5.2.1  整数(Integer)	118
5.2.2  实数(Real)	120
5.2.3  字符串(Strings)	120
5.3  数据类型	121
5.3.1  net型	122
5.3.2  variable型	123
5.4  参数	124
5.4.1  参数parameter	124
5.4.2  Verilog-2001中的参数声明	125
5.4.3  参数的传递	126
5.4.4  localparam	126
5.5  向量	127
5.6  运算符	129
习题5	133
实验与设计	134
5-1  用altpll锁相环宏模块实现倍频和分频	134
5-2  消抖动电路	139
第6章  Verilog语句语法	141
6.1  过程语句	141
6.1.1  always过程语句	142
6.1.2  initial过程语句	145
6.2  块语句	146
6.2.1  串行块begin-end	146
6.2.2  并行块fork-join	147
6.3  赋值语句	148
6.3.1  持续赋值与过程赋值	148
6.3.2  阻塞赋值与非阻塞赋值	149
6.4  条件语句	151
6.4.1  if-else语句	151
6.4.2  case语句	152
6.5  循环语句	157
6.5.1  for语句	157
6.5.2  repeat、while、forever语句	158
6.6  编译指示语句	160
6.7  任务与函数	161
6.7.1  任务(task)	162
6.7.2  函数(function)	163
6.8  顺序执行与并发执行	167
6.9  Verilog-2001语言标准	168
6.9.1  Verilog-2001改进和增强的语法结构	168
6.9.2  属性及PLI接口	177
习题6	179
实验与设计	180
6-1  FIFO缓存器设计	180
第7章  Verilog设计的层次与风格	184
7.1  Verilog设计的层次	184
7.2  门级结构描述	184
7.2.1  Verilog门元件	185
7.2.2  门级结构描述	187
7.3  行为描述	188
7.4  数据流描述	189
7.5  不同描述风格的设计	190
7.5.1  半加器设计	190
7.5.2  1位全加器设计	191
7.5.3  加法器的级连	193
7.6  多层次结构电路的设计	194
7.6.1  模块例化	194
7.6.2  用parameter进行参数传递	196
7.6.3  用defparam进行参数重载	198
7.7  基本组合电路设计	198
7.7.1  门电路	198
7.7.2  编译码器	199
7.8  基本时序电路设计	201
7.8.1  触发器	201
7.8.2  锁存器与寄存器	202
7.8.3  计数器与串并转换器	203
7.8.4  简易微处理器	204
7.9  三态逻辑设计	206
习题7	208
实验与设计	208
7-1  数字表决器	208
第8章  Verilog有限状态机设计	212
8.1  有限状态机	212
8.2  有限状态机的Verilog描述	214
8.2.1  用三个always块描述	215
8.2.2  用两个过程描述	216
8.2.3  单过程描述方式	218
8.3  状态编码	219
8.3.1  常用的编码方式	219
8.3.2  状态编码的定义	221
8.3.3  用属性指定状态编码方式	224
8.4  有限状态机设计要点	225
8.4.1  复位和起始状态的选择	225
8.4.2  多余状态的处理	228
习题8	229
实验与设计	229
8-1  流水灯控制器	229
8-2  汽车尾灯控制器	231
第9章  Verilog驱动常用I/O外设	234
9.1  4×4矩阵键盘	234
9.2  标准PS/2键盘	236
9.3  字符液晶	243
9.4  汉字图形点阵液晶	248
9.5  VGA显示器	254
9.5.1  VGA显示原理与时序	254
9.5.2  VGA彩条信号发生器	258
9.5.3  VGA图像显示与控制	260
9.6  乐曲演奏电路	266
习题9	271
实验与设计	273
9-1  实用多功能数字钟	273
第10章  Verilog设计进阶	282
10.1  设计的可综合性	282
10.2  流水线设计技术	285
10.3  资源共享	288
10.4  阻塞赋值与非阻塞赋值	290
10.5  加法器设计	294
10.5.1  行波进位加法器	294
10.5.2  超前进位加法器	295
10.5.3  数据流描述的加法器	299
10.5.4  流水线加法器	300
10.6  乘法器设计	300
10.6.1  并行乘法器	300
10.6.2  移位相加乘法器	302
10.6.3  布斯乘法器	305
10.6.4  查找表乘法器	307
10.7  奇数分频与小数分频	308
10.7.1  奇数分频	308
10.7.2  半整数分频与小数分频	309
习题10	311
实验与设计	312
10-1  小数分频	312
10-2  如何在FPGA设计中消除毛刺	314
第11章  Verilog Test Bench仿真	317
11.1  系统任务与系统函数	317
11.2  用户自定义元件	321
11.2.1  组合电路UDP元件	322
11.2.2  时序逻辑UDP元件	323
11.3  延时模型的表示	325
11.3.1  时间标尺定义`timescale	325
11.3.2  延时的表示与延时说明块	326
11.4  Test Bench测试平台	327
11.5  组合和时序电路的仿真	330
11.5.1  组合电路的仿真	330
11.5.2  时序电路的仿真	332
习题11	333
实验与设计	333
11-1  用ModelSim SE仿真8位二进制加法器	333
11-2  用ModelSim SE仿真乘累加器	340
第12章  Verilog设计实例	343
12.1  m序列产生器	343
12.1.1  m序列的原理与性质	343
12.1.2  m序列产生器设计	345
12.2  Gold码	347
12.2.1  Gold码的原理与性质	348
12.2.2  Gold码产生器设计	349
12.3  CRC校验码	350
12.4  数字过零检测与等精度频率测量	352
12.4.1  数字过零检测	352
12.4.2  等精度频率测量	354
12.4.3  数字频率测量系统顶层设计及仿真	355
12.5  QPSK调制器	360
12.5.1  QPSK调制原理	360
12.5.2  QPSK调制器的设计实现	361
12.5.3  QPSK调制器的仿真	369
12.6  小型神经网络	370
12.6.1  人工神经网络	370
12.6.2  设计实现与仿真	371
12.7   数字AGC	374
12.7.1  数字AGC技术的原理	375
12.7.2  数字AGC的实现与仿真	376
习题12	383
实验与设计	383
12-1  异步串行接口(UART)	383
附录A  Verilog HDL(IEEE Std 1364-1995)关键字	389
附录B  Verilog HDL(IEEE Std 1364-2001)关键字	390
附录C  DE2-115介绍	391
附录D  有关术语与缩略语	393
参考文献	398
                                        展开
                                    第7版前言
本书在前一版的基础上主要做了如下修订:
(1)鉴于Verilog-2001标准越来越重要,本书对Verilog-2001标准做了更为深入的阐述,一些例程也按照Verilog-2001标准做了修改。
(2)将设计工具升级为Quartus Prime 17.0。从Quartus II 10.0开始,Quartus II软件取消了自带的波形仿真工具,转而采用专业第三方仿真工具ModelSim进行仿真;自版本13.1之后,Quartus II只支持64位操作系统(Windows 7,8,10);从Quartus II 15.1开始,Quartus II开发工具改称Quartus Prime;2017年5月,Intel发布了Quartus Prime 17.0版本。Quartus Prime 17.0相比之前的版本,支持的器件更多,自带的IP模块也更丰富,编译速度更快,支持System Verilog-2005和VHDL-2008。设计者应积极适应EDA设计工具的变化,并尽可能采用新版本的设计工具。
(3)将目标实验板从DE2、DE2-70升级为DE2-115,更新和改进了部分设计案例,并基于DE2-115实验板做了下载和验证。
(4)更新了有关ModelSim仿真的内容。本书介绍了两个版本的ModelSim的使用方法,一个是Intel的OEM版本ModelSim-Intel,同时在第11章详细介绍了用ModelSim SE进行功能和时序仿真的过程,ModelSim SE的功能更全面一些。
(5)更新了部分有关FPGA器件结构的内容,使之尽量反映FPGA器件的新发展。
由于FPGA芯片和EDA软件的不断更新换代,同时因编著者时间和精力所限,本书虽经不断改版和修正,仍不免有诸多疏漏和遗憾,一些案例也有继续发挥和改进的空间,同时一些新的例程限于篇幅未能在书中得到反映。基于本教材的慕课(MOOC)教学资源已在华信教育资源网推出。本书与作者的另一拙作《数字系统设计与VHDL》(第2版)互为补充,前者以Verilog语言开发为主,后者则以VHDL语言的设计为重点。
感谢友晶科技的彭显恩经理和尹作娟女士、鑫合欣的王婷女士在本书写作过程中给予的大力支持;感谢美国威斯康星大学麦迪逊分校的Yu Hen Hu教授在作者访学期间在学术上和教学上给予作者的无私帮助与支持;感谢本书责任编辑窦昊先生与作者多年的鼎力合作;参加本书编写的还有周顺、曹阳、朱莉莉、张瑾玫、徐子崑、胡雨尧、綦晓东、臧广文、刘鑫裕、朱森、陈晨等,在此一并表示感谢。
本书疏漏与错误之处,希望读者和同行给予批评指正。
E-mail:wjm_ice@163.com
编著者           
2018年10月
                                        展开