描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121384998
长销近20年、20余万册的教材《数字系统设计与Verilog HDL》的Vivado版本,内容全面更新。
本书根据EDA课程教学要求,以提高数字系统设计能力为目标,系统阐述FPGA数字开发的相关知识,主要内容包括EDA技术概述、FPGA/CPLD器件结构、Verilog硬件描述语言及设计案例等。全书以Vivado、ModelSim软件为工具,以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设计 4
1.2.3 IP复用技术与SoC 5
1.3 数字设计的流程 6
1.3.1 设计输入 7
1.3.2 综合 7
1.3.3 布局布线 8
1.3.4 仿真 8
1.3.5 编程配置 9
1.4 常用的EDA工具软件 9
1.5 EDA技术的发展趋势 12
习题1 13
第2章 FPGA/CPLD器件 14
2.1 PLD器件概述 14
2.1.1 PLD器件的发展历程 14
2.1.2 PLD器件的分类 15
2.2 PLD的基本原理与结构 17
2.2.1 PLD器件的基本结构 17
2.2.2 PLD电路的表示方法 18
2.3 低密度PLD的原理与结构 19
2.4 CPLD的原理与结构 23
2.4.1 宏单元结构 23
2.4.2 CPLD的结构 24
2.5 FPGA的原理与结构 26
2.5.1 查找表结构 26
2.5.2 FPGA的结构 29
2.6 FPGA/CPLD的编程元件 34
2.7 边界扫描测试技术 37
2.8 FPGA/CPLD的编程与配置 39
2.8.1 在系统可编程 39
2.8.2 Artix-7器件的配置 40
2.9 Xilinx的FPGA器件 42
2.10 FPGA/CPLD的发展趋势 43
习题2 44
第3章 Vivado使用指南 45
3.1 Vivado流水灯设计 45
3.1.1 流水灯设计输入 45
3.1.2 行为仿真 52
3.1.3 综合与引脚的约束 55
3.1.4 生成比特流文件并下载 58
3.1.5 将配置数据烧写至Flash中 59
3.2 IP核的创建和封装 62
3.3 基于IP集成的计数器设计 70
3.4 Vivado的综合策略与优化设置 79
习题3 85
第4章 Verilog设计初步 86
4.1 Verilog的历史 86
4.2 Verilog模块的结构 87
4.3 Verilog基本组合电路设计 90
4.3.1 用Verilog设计表决电路 90
4.3.2 用Verilog设计加法器 91
4.4 Verilog基本时序电路设计 93
4.4.1 用Verilog设计触发器 93
4.4.2 用Verilog设计计数器 94
习题4 96
第5章 Verilog语言要素 97
5.1 概述 97
5.2 常量 98
5.2.1 整数(Integer) 98
5.2.2 实数(Real) 100
5.2.3 字符串(String) 100
5.3 数据类型 101
5.3.1 net型 102
5.3.2 variable型 103
5.4 参数 104
5.4.1 参数parameter 104
5.4.2 Verilog-2001中的参数声明 105
5.4.3 参数的传递 106
5.4.4 localparam 106
5.5 向量 107
5.6 运算符 109
习题5 113
第6章 Verilog语句语法 115
6.1 过程语句 115
6.1.1 always过程语句 116
6.1.2 initial过程语句 119
6.2 块语句 120
6.2.1 串行块begin-end 120
6.2.2 并行块fork-join 121
6.3 赋值语句 122
6.3.1 持续赋值与过程赋值 122
6.3.2 阻塞赋值与非阻塞赋值 123
6.4 条件语句 125
6.4.1 if-else语句 125
6.4.2 case语句 126
6.5 循环语句 130
6.5.1 for语句 131
6.5.2 repeat、while、forever语句 132
6.6 编译指示语句 133
6.7 任务与函数 135
6.7.1 任务(task) 135
6.7.2 函数(function) 137
6.8 顺序执行与并发执行 140
6.9 Verilog-2001语言标准 142
6.9.1 Verilog-2001改进和增强的语法结构 142
6.9.2 属性及PLI接口 150
习题6 153
第7章 Verilog设计的层次与风格 154
7.1 Verilog设计的层次 154
7.2 门级结构描述 154
7.2.1 Verilog门元件 155
7.2.2 门级结构描述 157
7.3 行为描述 158
7.4 数据流描述 159
7.5 不同描述风格的设计 160
7.5.1 半加器设计 160
7.5.2 1位全加器设计 161
7.5.3 加法器的级联 163
7.6 多层次结构电路的设计 164
7.6.1 模块例化 164
7.6.2 用parameter进行参数传递 165
7.6.3 用defparam进行参数重载 166
7.7 基本组合电路设计 167
7.8 基本时序电路设计 171
7.9 三态逻辑设计 174
习题7 176
第8章 Verilog有限状态机设计 177
8.1 有限状态机 177
8.2 有限状态机的Verilog描述 179
8.2.1 用三个always块描述 180
8.2.2 用两个过程描述 181
8.2.3 单过程描述方式 182
8.3 状态编码 183
8.3.1 常用的编码方式 183
8.3.2 状态编码的定义 185
8.4 有限状态机设计要点 188
8.4.1 复位和起始状态的选择 188
8.4.2 多余状态的处理 191
8.5 有限状态机应用实例 192
8.5.1 用有限状态机控制彩灯 192
8.5.2 用有限状态机控制A/D采样 194
习题8 195
第9章 Verilog驱动常用I/O外设 197
9.1 4×4矩阵键盘 197
9.2 数码管 200
9.3 标准PS/2键盘 202
9.4 字符液晶 210
9.5 汉字图形点阵液晶 218
9.6 VGA显示器 224
9.6.1 VGA显示原理与时序 224
9.6.2 VGA彩条信号发生器 226
9.6.3 VGA图像显示与控制 232
9.7 乐曲演奏电路 239
习题9 247
第10章 Verilog设计进阶 249
10.1 设计的可综合性 249
10.2 流水线设计技术 252
10.3 资源共享 255
10.4 阻塞赋值与非阻塞赋值 257
10.5 加法器设计 261
10.5.1 行波进位加法器 261
10.5.2 超前进位加法器 262
10.5.3 流水线加法器 266
10.6 乘法器设计 266
10.6.1 并行乘法器 267
10.6.2 布斯乘法器 267
10.6.3 查找表乘法器 270
10.7 奇数分频与小数分频 271
10.7.1 奇数分频 271
10.7.2 半整数分频 272
10.7.3 小数分频 273
习题10 277
第11章 Verilog Test Bench仿真 278
11.1 系统任务与系统函数 278
11.2 用户自定义元件 282
11.2.1 组合电路UDP元件 283
11.2.2 时序逻辑UDP元件 284
11.3 延时模型的表示 286
11.3.1 时间标尺定义`timescale 286
11.3.2 延时的表示与延时说明块 287
11.4 Test Bench测试平台 288
11.5 组合和时序电路的仿真 291
11.5.1 组合电路的仿真 291
11.5.2 时序电路的仿真 293
11.6 ModelSim SE仿真实例 294
11.6.1 图形界面进行功能仿真 295
11.6.2 命令行方式进行功能仿真 298
11.6.3 时序仿真 300
习题11 303
第12章 Verilog设计实例 304
12.1 脉宽调制与步进电机驱动 304
12.1.1 PWM信号 304
12.1.2 用PWM驱动蜂鸣器 305
12.1.3 用PWM驱动步进电机 310
12.2 超声波测距 314
12.3 整数开方运算 319
12.4 频率测量 324
12.5 Cordic算法及其实现 330
12.5.1 Cordic算法原理 330
12.5.2 Cordic算法的实现 333
12.6 用XADC实现模数转换 340
12.6.1 7系列FPGA片内集成ADC概述 340
12.6.2 XADC的使用 342
习题12 354
附录A EGO1开发板 355
附录B Verilog HDL(IEEE Std 1364-1995)关键字 356
附录C Verilog HDL(IEEE Std 1364-2001)关键字 357
参考文献 358
前 言
EDA技术已成为电子信息类专业学生一门重要的专业基础课程,并且在教学、科研及大学生电子设计竞赛等活动中起着重要的作用,成为电子信息类本科生和研究生必须掌握的专业知识与基本技能。随着教改的深入,对EDA课程教学的要求也不断提高,必须对教学内容不断更新和优化,与时俱进,以与EDA技术的快速发展相适应。
开放式、自主式学习已成为EDA教学的主流,而“口袋实验板”适应了教学的需要,受到越来越多学生的欢迎。FPGA“口袋实验板”便携易用,资源丰富,学生可随时随地进行设计与验证,非常有利于学生自主学习能力和创新实践能力的培养。
本书选取EGO1“口袋实验板”作为目标开发板,以Vivado工具作为主要设计平台,以Xilinx的FPGA芯片作为目标器件,以Verilog作为设计语言,结合大量精选设计案例,系统介绍EDA开发的方法与技能。本书的定位是作为EDA技术、FPGA开发或数字系统设计方面的教材。在编写的过程中,遵循了重视基础、面向应用的原则,力图在有限的篇幅内,将EDA技术与FPGA设计相关的知识简明扼要、深入浅出地进行阐述,贴近教学、科研实践。
全书共12章。第1章对EDA技术做了综述;第2章介绍FPGA/CPLD器件的结构与配置;第3章介绍Vivado集成开发工具的使用方法;第4、5、6章系统介绍Verilog的语法、语句;第7章讨论了Verilog设计的层次与风格;第8章是有关有限状态机的内容;第9章列举了Verilog控制常用IO外设的案例;第10章讨论设计优化的问题;第11章是Verilog仿真的内容,并介绍了用ModelSim SE进行功能、时序仿真的过程;第12章是较为复杂数字逻辑系统的设计举例;此外在附录中对EGO1开发板做了介绍。
由于FPGA芯片和EDA软件的不断更新换代,同时因编著者时间和精力所限,本书不免有诸多疏漏和遗憾。基于本教材的慕课(MOOC)教学资源已在华信教育资源网推出。本书与作者的拙作《数字系统设计与Verilog HDL》(第7版)、《数字系统设计与VHDL》(第2版)互为补充,分别针对不同的语言和不同的开发软件。
感谢依元素科技有限公司工程师团队及夏良波经理的大力支持和帮助,感谢美国威斯康星大学麦迪逊分校的Yu Hen Hu教授在作者访学期间在学术上和教学上给予的无私帮助与支持;感谢本书编辑窦昊先生与作者多年的鼎力合作;参加本书编写的还有朱莉莉、鞠照兵、鞠海鹏、王婧菡、李智、李梅、肖巧玲、张健富、王德福、刘健等,在此一并表示诚挚的感谢。
本书疏漏与错误之处,希望读者和同行给予批评指正。
E-mail:[email protected]
作者
2020年2月
评论
还没有评论。