图书简介:
目 录
第1章 EDA技术概述 1
1.1 EDA技术及其发展 1
1.2 Top-down设计与IP核复用 3
1.2.1 Top-down设计 4
1.2.2 Bottom-up设计 5
1.2.3 IP复用技术与SoC 5
1.3 EDA设计的流程 6
1.3.1 设计输入 7
1.3.2 综合 8
1.3.3 布局布线 8
1.3.4 仿真 9
1.3.5 编程配置 9
1.4 常用的EDA工具软件 9
1.5 EDA技术的发展趋势 13
习题1 14
第2章 FPGA/CPLD器件概述 15
2.1 PLD器件 15
2.1.1 PLD器件的发展历程 15
2.1.2 PLD器件的分类 15
2.2 PLD的基本原理与结构 18
2.2.1 PLD器件的基本结构 18
2.2.2 PLD电路的表示方法 18
2.3 低密度PLD的原理与结构 20
2.4 CPLD的原理与结构 24
2.4.1 宏单元结构 24
2.4.2 典型CPLD的结构 25
2.5 FPGA的原理与结构 28
2.5.1 查找表结构 28
2.5.2 典型FPGA的结构 30
2.5.3 Altera的Cyclone IV器件结构 33
2.6 FPGA/CPLD的编程元件 36
2.7 边界扫描测试技术 40
2.8 FPGA/CPLD的编程与配置 41
2.8.1 在系统可编程 41
2.8.2 FPGA器件的配置 43
2.8.3 Cyclone IV器件的编程 43
2.9 FPGA/CPLD器件概述 46
2.10 FPGA/CPLD的发展趋势 49
习题2 50
第3章 Quartus Prime集成开发工具 51
3.1 Quartus Prime原理图设计 52
3.1.1 半加器原理图设计输入 52
3.1.2 1位全加器设计输入 57
3.1.3 1位全加器的编译 58
3.1.4 1位全加器的仿真 60
3.1.5 1位全加器的下载 64
3.2 基于IP核的设计 67
3.3 SignalTap II的使用方法 74
3.4 Quartus Prime的优化设置与时序
分析 78
习题3 82
实验与设计 84
第4章 Verilog语法与要素 92
4.1 Verilog的历史 92
4.2 Verilog模块的结构 93
4.3 Verilog语言要素 96
4.4 常量 98
4.4.1 整数 98
4.4.2 实数 99
4.4.3 字符串 100
4.5 数据类型 101
4.5.1 net型 102
4.5.2 variable型 103
4.6 参数 104
4.6.1 参数parameter 104
4.6.2 Verilog—2001中的参数声明 105
4.6.3 参数的传递 106
4.6.4 localparam 106
4.7 向量 107
4.8 运算符 109
习题4 114
实验与设计 114
第5章 Verilog语句语法 118
5.1 过程语句 118
5.1.1 always过程语句 119
5.1.2 initial过程语句 122
5.2 块语句 123
5.2.1 串行块begin-end 123
5.2.2 并行块fork-join 124
5.3 赋值语句 125
5.3.1 持续赋值与过程赋值 125
5.3.2 阻塞赋值与非阻塞赋值 126
5.4 条件语句 128
5.4.1 if-else语句 128
5.4.2 case语句 129
5.5 循环语句 134
5.5.1 for语句 134
5.5.2 repeat、while、forever语句 135
5.6 编译指示语句 137
5.7 任务与函数 139
5.7.1 任务(task) 139
5.7.2 函数(function) 141
5.8 顺序执行与并发执行 144
5.9 Verilog—2001语言标准 145
习题5 154
实验与设计 155
第6章 Verilog设计进阶 161
6.1 Verilog设计的层次 161
6.2 门级结构描述 161
6.2.1 Verilog门元件 162
6.2.2 门级结构描述 165
6.3 行为描述 165
6.4 数据流描述 166
6.5 不同描述风格的设计 168
6.5.1 半加器设计 168
6.5.2 1位全加器设计 169
6.5.3 加法器的级连 170
6.6 多层次结构电路的设计 171
6.6.1 模块例化 172
6.6.2 用parameter进行参数传递 174
6.6.3 用defparam进行参数重载 176
6.7 常用组合逻辑电路设计 176
6.7.1 门电路 176
6.7.2 编译码器 177
6.8 常用时序逻辑电路设计 179
6.8.1 触发器 179
6.8.2 锁存器与寄存器 180
6.8.3 计数器与串并转换器 182
6.8.4 简易微处理器 182
6.9 三态逻辑设计 184
习题6 186
实验与设计 186
第7章 Verilog常用外设驱动 190
7.1 4×4矩阵键盘 190
7.2 标准PS/2键盘 192
7.3 字符液晶 198
7.4 汉字图形点阵液晶 204
7.5 VGA显示器 209
7.5.1 VGA显示原理与时序 209
7.5.2 VGA彩条信号发生器 213
7.5.3 VGA图像显示与控制 215
7.6 乐曲演奏电路 221
习题7 226
实验与设计 227
第8章 有限状态机设计 236
8.1 有限状态机 236
8.2 有限状态机的Verilog描述 238
8.2.1 用三个过程描述 239
8.2.2 用两个过程描述 240
8.2.3 单过程描述 241
8.3 状态编码 242
8.3.1 常用的编码方式 242
8.3.2 状态编码的定义 244
8.3.3 用属性指定状态编码方式 248
8.4 有限状态机设计要点 248
8.4.1 复位和起始状态的选择 249
8.4.2 多余状态的处理 249
习题8 250
实验与设计 251
第9章 Verilog Test Bench仿真 254
9.1 系统任务与系统函数 254
9.2 用户自定义元件 258
9.2.1 组合电路UDP元件 259
9.2.2 时序逻辑UDP元件 260
9.3 延时模型的表示 262
9.3.1 时间标尺定义`timescale 262
9.3.2 延时的表示与延时说明块 263
9.4 Test Bench测试平台 264
9.5 组合电路和时序电路的仿真 267
9.5.1 组合电路的仿真 267
9.5.2 时序电路的仿真 269
习题9 270
实验与设计 270
第10章 Verilog设计与应用 280
10.1 数字频率测量 280
10.1.1 数字过零检测 280
10.1.2 等精度频率测量 282
10.1.3 数字频率测量系统顶层设计 283
10.1.4 仿真验证 285
10.2 可重构IIR滤波器 287
10.2.1 FPGA的动态重构 287
10.2.2 IIR滤波器的原理 288
10.2.3 可重构IIR滤波器的设计 289
10.2.4 顶层设计源代码 298
10.2.5 可重构IIR滤波器仿真 298
10.3 QPSK调制器的FPGA实现 301
10.3.1 QPSK调制原理 301
10.3.2 QPSK调制器的设计实现 302
10.3.3 QPSK调制器的仿真 311
10.4 卷积码产生器 312
10.4.1 卷积码原理 312
10.4.2 卷积码编码器实现 313
10.4.3 卷积码编码器仿真验证 315
10.5 小型神经网络 316
10.5.1 基本原理 316
10.5.2 设计实现 317
10.5.3 仿真验证 319
10.6 数字AGC 320
10.6.1 数字AGC技术的原理和设计
思想 320
10.6.2 数字AGC的实现 321
10.7 信号音发生器 328
10.7.1 线性码、A律码转换原理 328
10.7.2 信号音发生器的Verilog
实现 331
习题11 334
实验与设计 335
附录 DE2-115介绍 339
参考文献 341
展开
第2版前言
本书在第1版的基础上主要做了如下修订。
(1)鉴于Verilog—2001标准越来越重要,本书对Verilog—2001标准做了更为深入的阐述,一些例程也按照Verilog—2001标准进行了修改。
(2)将设计工具从Quartus II 9.0升级为Quartus Prime 17.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;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实验板基于Cyclone IV FPGA器件(EP4CE115F29),器件新,资源丰富,同时,在外设和使用习惯等方面与DE2-70基本保持一致,所以本书将目标实验板改为DE2-115。
(4)更新了有关ModelSim仿真的内容。本书介绍了两个版本的ModelSim,一个是Intel的OEM版本ModelSim-Intel,同时在第9章详细介绍了用ModelSim SE 进行功能仿真和时序仿真的过程,ModelSim SE的功能更强、更全面。
(5)更新了有关FPGA器件结构的内容,使之尽量反映FPGA器件的发展。
(6)更新和改进了部分设计案例,将基于DE2-115实验板的设计实例重新做了修改和验证。
由于FPGA芯片和EDA软件不断更新换代,同时因作者时间和精力有限,本书虽经改版和修正,仍不免有疏漏和遗憾,一些实例也有继续发挥和改进的空间。感谢友晶科技的彭显恩经理、鑫合欣的王婷女士在本书写作过程中给予的大力支持;感谢美国威斯康星大学麦迪逊分校的Yu Hen Hu教授于作者访学期间在学术上和教学上给予的无私帮助与支持;参与本书编写的还有李智、朱莉莉、刘健、张健富、鞠照兵、肖巧玲等,徐志军教授审阅了本书,在此一并表示感谢。
本书疏漏与错误之处,希望读者和同行给予批评指正。
作者E-mail:wjm_ice@163.com。
作 者
2018年12月于解放军陆军工程大学
展开