[套装书]FPGA Verilog开发实战指南:基于Intel Cyclone IV(基础篇)+FPGA应用开发和仿真(2册)

作者
刘火良 杨森 张硕 王贞炎
丛书名
电子与嵌入式系统设计丛书
出版社
机械工业出版社
ISBN
9782102221153
简要
简介
内容简介书籍计算机书籍 ---------------------------FPGA Verilog开发实战指南:基于Intel Cyclone IV(基础篇)--------------------------- 本书包括32个章节,按照先易后难的顺序进行讲解,分为硬件说明篇、软件安装篇、基础入门篇和学习强化篇四大板块。从基础的硬件介绍、软件安装到基本电路开发,手把手教学。考虑到大多数学习者为FPGA初学者,所以本书把操作中的每个步骤都尽可能详细的介绍和描述,并附上大量的截图以供学习者实操参考。 ---------------------------FPGA应用开发和仿真--------------------------- 从现代FPGA设计相关的数字电路基础和Verilog硬件描述语言开始,结合笔者多年的教学和实践经验,本书详细讲述了VerilogHDL及其仿真,业内常用IO规范和各种总线,数字逻辑在数字信号处理、数字通信和控制方向的典型功能单元,FPGA的常规结构,静态时序分析等。
目录



---------------------------FPGA Verilog开发实战指南:基于Intel Cyclone IV(基础篇)---------------------------


前言
硬件说明篇
第1章 初识FPGA 2
1.1 FPGA是什么 2
1.1.1 名词解释 2
1.1.2 FPGA发展历程 2
1.2 FPGA的技术优势 7
1.3 FPGA的应用方向 9
第2章 硬件开发平台详解 15
2.1 开发板简介 15
2.2 国内外FPGA产业现状 19
2.3 选择Cyclone IV的理由 20
2.4 Cyclone系列FPGA芯片的命名方法 23
2.5 FPGA内部硬件结构简介 24
2.6 FPGA内部硬件结构与代码的关系 33
2.6.1 I/O的映射 34
2.6.2 组合逻辑映射 43
2.6.3 时序逻辑映射 45
2.6.4 指定PLL的映射位置 56
软件安装篇
第3章 Quartus软件和USB-Blaster驱动安装 66
3.1 Quartus II_13.0软件的安装 66
3.2 添加器件库 72
3.3 USB-Blaster驱动器的安装 76
第4章 ModelSim软件安装 80
第5章 Visio和Notepad++软件安装 87
5.1 Visio软件的安装 87
5.2 Notepad++软件的安装 93
第6章 实现Quartus和ModelSim、Notepad++软件关联 99
6.1 Quartus II_13.0和ModelSim_10.5se软件的关联 99
6.2 Quartus II_13.0和Notepad++软件的关联 101
基础入门篇
第7章 初识Verilog HDL 106
7.1 为什么选择用Verilog HDL开发FPGA 106
7.1.1 Verilog HDL和VHDL的比较 106
7.1.2 Verilog HDL和C语言的比较 107
7.2 Verilog HDL语言的基础语法 107
7.2.1 标识符 107
7.2.2 逻辑值 108
7.2.3 常量 108
7.2.4 变量 109
7.2.5 参数 109
7.2.6 赋值语句 110
7.2.7 注释 110
7.2.8 关系运算符 111
7.2.9 归约运算符、按位运算符和逻辑运算符 111
7.2.10 移位运算符 112
7.2.11 条件运算符 112
7.2.12 优先级 112
7.2.13 位拼接运算符 113
7.2.14 if-else与case 113
7.2.15 inout双向端口 115
7.2.16 Verilog语言中的系统任务和系统函数 116
7.3 章末总结 123
第8章 点亮LED灯 124
8.1 正确的设计流程 124
8.2 工程文件夹的管理 124
8.3 一个完整的设计过程 126
8.3.1 功能简介 126
8.3.2 硬件资源 126
8.3.3 新建一个Visio文件及其配置 127
8.3.4 模块和端口信号划分 130
8.3.5 波形设计 131
8.3.6 新建工程 133
8.3.7 RTL代码的编写 140
8.3.8 代码的分析和综合 143
8.3.9 查看RTL视图 144
8.3.10 Testbench的原理 145
8.3.11 Testbench代码的编写 147
8.3.12 仿真设置 151
8.3.13 设置NativeLink 153
8.3.14 打开ModelSim观察波形 155
8.3.15 仿真波形分析 162
8.3.16 引脚约束 162
8.3.17 全编译 165
8.3.18 通过JTAG将网表下载到开发板 168
8.3.19 未使用引脚的默认设置 172
8.3.20 程序的固化 174
8.4 章末总结 185
第9章 简单组合逻辑 186
9.1 理论学习 186
9.1.1 多路选择器 186
9.1.2 译码器 186
9.1.3 半加器 187
9.2 实战演练—多路选择器 187
9.2.1 实验目标 187
9.2.2 硬件资源 187
9.2.3 程序设计 188
9.3 实战演练—译码器 198
9.3.1 实验目标 198
9.3.2 程序设计 198
9.4 实战演练—半加器 205
9.4.1 实验目标 205
9.4.2 硬件资源 205
9.4.3 程序设计 206
9.5 章末总结 211
第10章 层次化设计 213
10.1 理论学习 213
10.2 实战演练 215
10.2.1 实验目标 215
10.2.2 硬件资源 215
10.2.3 程序设计 215
10.3 章末总结 225
第11章 避免Latch的产生 226
11.1 Latch是什么 226
11.2 Latch的危害 226
11.3 几种产生Latch的情况 226
11.4 章末总结 232
第12章 时序逻辑的开始——寄存器 234
12.1 理论学习 234
12.2 实战演练 234
12.2.1 实验目标 234
12.2.2 硬件资源 235
12.2.3 程序设计 236
12.3 章末总结 243
第13章 阻塞赋值与非阻塞赋值 245
13.1 理论学习 245
13.2 阻塞赋值 246
13.3 非阻塞赋值 248
13.4 章末总结 251
第14章 计数器 252
14.1 理论学习 252
14.2 实战演练 252
14.2.1 实验目标 252
14.2.2 硬件资源 252
14.2.3 程序设计 253
14.3 章末总结 262
第15章 分频器 263
15.1 理论学习 263
15.2 实战演练一 263
15.2.1 实验目标 263
15.2.2 硬件资源 264
15.2.3 程序设计 264
15.3 实战演练二 270
15.3.1 实验目标 270
15.3.2 硬件资源 271
15.3.3 程序设计 271
15.4 章末总结 278
第16章 按键消抖模块的设计与验证 279
16.1 理论学习 279
16.1.1 硬件消抖 280
16.1.2 软件消抖 281
16.2 实战演练 281
16.2.1 实验目标 281
16.2.2 程序设计 281
16.3 章末总结 288
第17章 流水灯 289
17.1 理论学习 289
17.2 实战演练 289
17.2.1 实验目标 289
17.2.2 硬件资源 289
17.2.3 程序设计 290
17.3 章末总结 294
第18章 状态机 295
18.1 理论学习 295
18.2 实战演练一 297
18.2.1 实验目标 297
18.2.2 程序设计 297
18.3 实战演练二 308
18.3.1 实验目标 309
18.3.2 程序设计 309
18.4 章末总结 316
第19章 数码管的动态显示 318
19.1 理论学习 318
19.1.1 数码管简介 318
19.1.2 八段数码管 318
19.1.3 74HC595简介 321
19.1.4 数码管动态显示简介 323
19.2 实战演练 324
19.2.1 实验目标 324
19.2.2 硬件资源 324
19.2.3 程序设计 325
19.3 章末总结 353
第20章 快速开发的法宝——IP核 354
20.1 理论学习 354
20.2 实战演练 358
20.2.1 IP核之PLL 359
20.2.2 IP核之ROM 376
20.2.3 IP核之RAM 406
20.2.4 IP核之FIFO 439
20.3 章末总结 463
学习强化篇
第21章 串口RS-232 466
21.1 理论学习 466
21.1.1 串口简介 466
21.1.2 RS-232信号线 467
21.1.3 RS-232通信协议简介 469
21.2 实战演练 470
21.2.1 实验目标 470
21.2.2 硬件资源 470
21.2.3 程序设计 472
21.3 章末总结 504
第22章 使用SignalTap II嵌入式逻辑分析仪在线调试 506
22.1 逻辑分析仪简介 506
22.2 SignalTap II的用法 508
第23章 简易频率计的设计与验证 528
23.1 理论学习 528
23.2 实战演练 529
23.2.1 实验目标 529
23.2.2 硬件资源 529
23.2.3 程序设计 530
23.3 章末总结 544
第24章 简易DDS信号发生器的设计与验证 545
24.1 理论学习 545
24.2 实战演练 548
24.2.1 实验目标 548
24.2.2 硬件资源 548
24.2.3 程序设计 551
24.3 章末总结 574
第25章 简易电压表的设计与验证 575
25.1 理论学习 575
25.2 实战演练 576
25.2.1 实验目标 576
25.2.2 硬件资源 577
25.2.3 程序设计 579
25.3 章末总结 591
第26章 VGA显示器驱动设计与验证 592
26.1 理论学习 592
26.1.1 VGA简介 592
26.1.2 VGA接口及引脚定义 593
26.1.3 VGA显示原理 595
26.1.4 VGA时序标准 596参数 598
26.2 实战演练 600
26.2.1 实验目标 600
26.2.2 硬件资源 600
26.2.3 程序设计 601
26.3 章末总结 623
第27章 HDMI显示器驱动设计与验证 624
27.1 理论学习 624
27.1.1 HDMI简介 624
27.1.2 HDMI接口及引脚定义 625
27.1.3 HDMI显示原理 628
27.2 实战演练 631
27.2.1 实验目标 631
27.2.2 硬件资源 631
27.2.3 程序设计 632
27.3 章末总结 655
第28章 TFT-LCD液晶屏驱动设计与验证 656
28.1 理论学习 656
28.1.1 TFT-LCD简介 656
28.1.2 RGB接口TFT-LCD时序 658
28.1.3 RGB接口TFT-LCD分辨率 660
28.2 实战演练 660
28.2.1 实验目标 660
28.2.2 硬件资源 661
28.2.3 程序设计 662
28.3 章末总结 683
第29章 FIFO求和实验 684
29.1 理论学习 684
29.2 实战演练 685
29.2.1 实验目标 685
29.2.2 程序设计 685
29.3 章末总结 701
第30章 基于Sobel算法的边缘检测设计与实现 702
30.1 理论学习 702
30.1.1 边缘检测 702
30.1.2 Sobel算法简介 702
30.2 实战演练 703
30.2.1 Sobel算法实现 703
30.2.2 实验目标 703
30.2.3 硬件资源 704
30.2.4 程序设计 704
30.3 章末总结 730
第31章 基于SPI协议的Flash驱动控制 731
31.1 理论学习 731
31.1.1 SPI物理层 731
31.1.2 SPI协议层 733
31.2 实战演练 735
31.2.1 SPI-Flash全擦除实验 736
31.2.2 SPI-Flash页写实验 755
31.2.3 SPI_Flash读数据实验 771
31.3 章末总结 793
第32章 基于I2C协议的EEPROM驱动控制 794
32.1 理论学习 794
32.1.1 I2C物理层 794
32.1.2 I2C协议层 795
32.2 实战演练 802
32.2.1 实验目标 802
32.2.2 硬件资源 802
32.2.3 程序设计 803
32.3 章末总结 844
后记 845



---------------------------FPGA应用开发和仿真---------------------------


前言
第1章 数字电路基础1
1.1 模拟电路与数字电路1
1.2 二进制相关知识3
1.2.1 二进制和其他进制3
1.2.2 进制间的相互转换4
1.2.3 二进制的四则运算5
1.3 二进制在电路中的表达6
1.3.1 有限字长和补码6
1.3.2 负数、有符号数和无符号数6
1.4 门电路和基本逻辑运算10
1.4.1 非门、与门和或门11
1.4.2 与非门和或非门12
1.4.3 异或门和同或门12
1.4.4 三种表达形式的转换13
1.4.5 基本门的电路实现14
1.4.6 三态输出和漏极开路输出15
1.4.7 波形图17
1.4.8 门电路的一些非典型应用18
1.5 逻辑代数22
1.5.1 基本定律22
1.5.2 表达式的代数化简法23
1.5.3 卡诺图化简法23
1.6 基本组合逻辑24
1.6.1 编码器和译码器24
1.6.2 未定义的输入状态26
1.6.3 数据选择器27
1.6.4 延迟和竞争冒险27
1.6.5 加法器28
1.6.6 乘法器31
1.6.7 数值比较器32
1.7 锁存器32
1.7.1 SR锁存器32
1.7.2 D锁存器33
1.8 触发器34
1.8.1 D触发器、时钟和使能34
1.8.2 D触发器的异步和同步复位36
1.8.3 D触发器的建立时间、保持时间和传输延迟37
1.8.4 其他触发器38
1.9 时序逻辑40
1.9.1 移位寄存器和串-并互换40
1.9.2 延迟链42
1.9.3 分频器43
1.9.4 计数器44
1.9.5 同步时序逻辑46
1.9.6 累加器48
1.10 存储器49
1.10.1 存储器容量和类型49
1.10.2 SRAM50
1.10.3 双端口SRAM54
1.10.4 同步SRAM54
1.11 小数55
1.11.1 定点小数及其范围和误差55
1.11.2 定点小数的运算56
1.11.3 浮点小数58
第2章 Verilog HDL和SystemVerilog60
2.1 硬件描述语言简介60
2.2 设计方法和流程62
2.3 标识符和关键字63
2.4 值、数和字面量63
2.4.1 整型常数64
2.4.2 浮点常数65
2.4.3 时间常数和字符串常数65
2.5 线网66
2.6 变量67
2.7 参数和常量68
2.8 类型和位宽转换70
2.9 操作符和表达式71
2.9.1 位选取操作符74
2.9.2 位拼接和流运算符74
2.9.3 按位逻辑运算符76
2.9.4 缩减运算符76
2.9.5 移位77
2.9.6 自增赋值和自减赋值77
2.9.7 条件判断相关运算符78
2.9.8 条件运算符79
2.9.9 let语句79
2.10 结构和联合80
2.11 数组82
2.12 赋值、过程和块83
2.12.1 赋值的延迟84
2.12.2 赋值的强度85
2.12.3 流程控制语句86
2.12.4 always过程88
2.12.5 阻塞和非阻塞赋值91
2.13 模块93
2.14 接口97
2.15 生成块100
2.16 任务和函数101
2.17 包102
2.18 系统任务和函数103
2.18.1 显示相关104
2.18.2 文件相关105
2.18.3 存储器相关106
2.18.4 仿真相关107
2.18.5 错误和信息107
2.18.6 类型转换和数学函数107
2.19 编译指令108
第3章 ModelSim和仿真111
3.1 仿真和测试的相关概念111
3.2 测试代码编写112
3.2.1 时钟的产生112
3.2.2 复位的产生114
3.2.3 一般输入的产生115
3.3 ModelSim软件仿真流程118
3.3.1 主界面简介118
3.3.2 创建工程119
3.3.3 向工程中添加文件121
3.3.4 开始仿真122
3.3.5 带有信号和波形的例子124
3.4 波形和格式127
第4章 Verilog基本应用130
4.1 代码风格130
4.2 常用组合逻辑单元的描述132
4.2.1 编码器和译码器132
4.2.2 数据选择器133
4.3 常用时序逻辑单元的描述133
4.3.1 移位寄存器133
4.3.2 延迟链134
4.3.3 计数器134
4.3.4 累加器136
4.4 时钟域和使能137
4.5 跨时钟域问题138
4.5.1 域外慢速跳沿138
4.5.2 域间状态传递140
4.5.3 域间事件传递142
4.5.4 域间数据传递144
4.6 存储器及其初始化144
4.6.1 各种模式的存储器描述145
4.6.2 存储器的初始化148
4.7 用存储器实现延迟链151
4.8 单时钟FIFO152
4.9 双时钟FIFO156
4.10 用户按键和数码LED157
4.10.1 用户按键处理157
4.10.2 数码LED159
4.11 PWM和死区161
4.11.1 单端PWM161
4.11.2 差分PWM162
4.11.3 死区165
4.12 正交增量编码器接口166
4.13 有限状态机170
4.13.1 秒表例子171
4.13.2 数字示波器触发采样例子175
第5章 IO规范与外部总线182
5.1 单端信号和地182
5.2 传输线与端接184
5.3 差分信号185
5.4 高速串行接口188
5.5 UART189
5.5.1 UART规范介绍189
5.5.2 发送器的设计190
5.5.3 接收器的设计193
5.5.4 UART收发仿真195
5.6 SPI197
5.6.1 SPI规范介绍197
5.6.2 通用SPI主机设计199
5.6.3 通用SPI从机设计202
5.6.4 通用SPI主从机仿真205
5.7 I2C207
5.7.1 I2C规范介绍207
5.7.2 通用I2C主机设计211
5.7.3 通用I2C从机设计219
5.7.4 通用I2C主从机仿真224
5.8 I2S227
5.8.1 I2S接口介绍227
5.8.2 I2S收发器设计和仿真229
第6章 片上系统的内部互连232
6.1 简单存储器映射接口232
6.1.1 从接口233
6.1.2 与主机互连238
6.1.3 主接口与仿真241
6.2 流水线与流式数据245
6.3 等待、延迟和握手248
6.3.1 等待和延迟248
6.3.2 握手248
6.4 AXI4-Lite接口250
6.4.1 AXI4-Lite接口介绍250
6.4.2 从机范例252
6.4.3 主机范例255
6.4.4 主从机仿真256
6.5 AXI4接口257
6.6 AXI4-Stream接口263
6.6.1 AXI4-Stream接口介绍263
6.6.2 范例和仿真263
第7章 数字信号处理应用268
7.1 基础知识简介268
7.1.1 信号、系统和传输函数268
7.1.2 基本元件的传输函数270
7.1.3 采样率和采样定律270
7.1.4 离散量化信号的信噪比272
7.2 数值计算273
7.2.1 乘法273
7.2.2 除法275
7.2.3 平方根277
7.2.4 定点小数279
7.3 数字频率合成281
7.3.1 DDS282
7.3.2 坐标旋转机285
7.4 FIR滤波器290
7.5 IIR滤波器293
7.6 采样率变换297
7.6.1 升采样297
7.6.2 降采样298
7.6.3 插零和抽取器299
7.6.4 CIC滤波器300
7.6.5 采样率变换范例304
7.7 快速傅里叶变换308
7.7.1 多周期实现311
7.7.2 流水线实现319
7.8 PID控制器324
第8章 数字通信应用329
8.1 线性反馈移位寄存器329
8.2 循环冗余校验331
8.3 基带编解码333
8.4 基带通道的范例和仿真336
8.5 混频和相干解调339
8.6 AM和ASK340
8.6.1 调制340
8.6.2 解调341
8.6.3 调制解调仿真344
8.7 PM和PSK346
8.7.1 调制346
8.7.2 解调348
8.7.3 调制解调仿真349
8.8 FM和FSK351
8.8.1 调制351
8.8.2 解调353
8.8.3 调制解调仿真354
8.9 QPSK和QAM356
8.9.1 QAM调制357
8.9.2 QAM解调360
8.9.3 位同步和判决361
8.9.4 调制解调仿真363
8.10 载波同步和数字锁相环366
8.10.1 数字锁相环恢复载波367
8.10.2 QAM载波恢复仿真369
附录A SystemVerilog关键字373
附录B 全书模块依赖关系377

推荐

车牌查询
桂ICP备20004708号-3