FPGA的人工智能之路:基于Intel FPGA开发的入门到实践
定 价:98 元
丛书名:英特尔FPGA中国创新中心系列丛书
- 作者:张瑞编著
- 出版时间:2020/12/1
- ISBN:9787121402401
- 出 版 社:电子工业出版社
- 中图法分类:TP332.1
- 页码:12,312页
- 纸张:胶版纸
- 版次:1
- 开本:24开
本书主要从技术基础、开发方法和人工智能应用三个方面介绍FPGA的开发工具与开发技巧,围绕FPGA的基础知识,Verilog硬件描述语言,FPGA在Quartus 中的开发流程,FPGA的SOPC、HLS、OpenCL设计方法,FPGA在人工智能领域的应用等方面进行阐述,使开发人员能理解FPGA的核心知识,掌握FPGA的开发方法和开发工具。全书包含FPGA技术基础篇、FPGA开发方法篇和人工智能应用篇三大板块,共计11章,以FPGA基础知识为切入点,通过对开发方法和设计思路的讲解,帮助读者快速掌握FPGA开发技术及FPGA在人工智能上的应用。
张瑞先生现任英特尔FPGA中国创新中心总经理,总体负责英特尔中国区芯片对外合作战略以及自动驾驶和FPGA等领域的生态建设。同时兼任(中国)汽车电子产业联盟副理事长和副秘书长的职务,致力于推动包括5G、机器视觉、传感器融合和自主决策等多项关键自动驾驶相关技术在中国的落地和合作。张瑞先生拥有多年****半导体公司的从业经历。在加入英特尔之前,曾在瑞萨电子和飞思卡尔半导体(现恩智浦半导体)担任多个关键技术和管理职务。
□□部分 FPGA技术基础篇
□□章 FPGA的特点及其历史00□
1.1 无处不在的FPGA00□
1.□ 创造性地解释FPGA003
1.□.1 珠串法004
1.□.□ 乐高积木法004
1.3 FPGA的可定制性005
1.4 早期的逻辑功能实现006
1.4.1 数字设计与TTL逻辑007
1.4.□ 从TTL到可编程逻辑008
1.5 可简单编程逻辑器件(PAL)009
1.5.1 可编程阵列逻辑优势009
1.5.□ PAL编程技术010
1.6 可编程逻辑器件(PLD)011
1.7 复杂可编程逻辑器件(CPLD)01□
1.7.1 普通CPLD逻辑块的特点01□
1.7.□ CPLD的一般优势013
1.7.3 非易失FPGA014
1.8 现场可编程逻辑门阵列(FPGA)015
第□章 FPGA架构017
□.1 FPGA全芯片架构017
□.□ FPGA逻辑阵列模块018
□.□.1 查找表(LUT)019
□.□.□ 可编程寄存器019
□.□.3 LABs和LE:更进一步的观察0□□
□.□.4 自适应逻辑模块(ALM)0□3
□.3 FPGA嵌入式存储0□4
□.3.1 存储资源的利用0□4
□.3.□ M9K资源介绍0□5
□.4 时钟网络0□7
□.4.1 FPGA时钟架构0□7
□.4.□ PLL(锁相环)0□8
□.5 DSP模块0□8
□.6 FPGA布线0□9
□.7 FPGA编程资源030
□.8 FPGA I/O元件031
□.8.1 典型的I/O元件逻辑031
□.8.□ 高速收发器03□
□.9 英特尔FPGA SoC033
第3章 Verilog HDL035
3.1 Verilog HDL概述035
3.1.1 Verilog HDL的介绍035
3.1.□ Verilog HDL的发展历史036
3.1.3 Verilog HDL的相关术语037
3.1.4 Verilog HDL的开发流程038
3.□ Verilog HDL基础知识040
3.□.1 程序结构040
3.□.□ 程序实例041
3.□.3 数据类型041
3.□.4 模块例化043
3.□.5 运算符044
3.3 Verilog HDL的基本语法048
3.3.1 if-else语句048
3.3.□ case语句049
3.3.3 for循环050
3.3.4 Verilog HDL常用关键字汇总050
3.4 Verilog HDL高级知识点051
3.4.1 阻塞与非阻塞的区别051
3.4.□ assign语句和always语句的区别054
3.4.3 锁存器与寄存器的区别054
3.4.4 状态机055
3.5 Verilog HDL开发实例篇059
3.5.1 汉明码编码器059
3.5.□ 数码管译码器063
3.5.3 双向移位寄存器066
3.5.4 冒泡排序069
第4章 Quartus Prime基本开发流程081
4.1 Quartus Prime软件介绍081
4.1.1 英特尔FPGA软件与硬件简介081
4.1.□ Quartus Prime标准版设计软件简介083
4.1.3 Quartus Prime主窗口界面085
4.1.4 Quartus Prime默认操作环境085
4.1.5 Quartus Prime主工具栏086
4.1.6 Quartus Prime内置帮助系统087
4.1.7 Quartus Prime可分离的窗口088
4.1.8 Quartus Prime任务窗口088
4.1.9 Quartus Prime自定义任务流程090
4.□ Quartus Prime开发流程091
4.□.1 典型的FPGA开发流程091
4.□.□ 创建Quartus Prime工程094
4.□.3 设计输入100
4.□.4 编译106
4.□.5 分配管脚111
4.□.6 仿真11□
4.□.7 器件配置113
4.3 实验指导116
4.3.1 流水灯实验116
4.3.□ 按键实验1□8
4.3.3 PLL实验136
第二部分 PGA开发方法篇
第5章 FPGA设计工具145
5.1 编译报告145
5.1.1 源文件读取报告147
5.1.□ 资源使用报告147
5.1.3 动态综合报告149
5.□ 网表查看工具149
5.□.1 RTL Viewer149
5.□.□ Technology Map Viewer150
5.□.3 State Machine Viewer15□
5.3 物理约束153
5.3.1 物理约束设计153
5.3.□ Assignment Editor154
5.3.3 QSF文件设置156
5.4 时序分析工具158
5.4.1 TimeQuest Timing Analyzer的GUI图形交互界面158
5.4.□ 任务窗格(Tasks)159
5.4.3 创建时序数据库(Netlist Setup)159
5.4.4 常用的约束报告160
5.4.5 报告窗格(Report Pane)161
5.4.6 时序异常(Exceptions)16□
5.4.7 关于SDC的□后说明164
5.5 功耗分析工具164
5.5.1 功耗和热考虑因素164
5.5.□ 功耗分析工具比较165
5.5.3 EPE电子表格165
5.5.4 Power Analyzer166
5.6 片上调试工具167
5.6.1 Quartus Prime软件中的片上调试工具167
5.6.□ Signal Probe Pin(信号探针)168
5.6.3 SignalTap Ⅱ嵌入式逻辑分析仪170
第6章 基于英特尔FPGA的SOPC开发175
6.1 SOPC技术简介175
6.□ IP核与Nios处理器176
6.□.1 基于IP硬核的SOPC176
6.□.□ 基于IP软核的SOPC177
6.3 构建SOPC系统178
6.3.1 Platform Designer178
6.3.□ SOPC设计工具180
6.4 SOPC开发实战181
6.4.1 SOPC系统设计181
6.4.□ SOPC硬件设计18□
6.4.3 SOPC软件设计199
第7章 基于英特尔FPGA的HLS开发□03
7.1 HLS的基本概念□03
7.□ HLS的基本开发流程□04
7.□.1 HLS的安装□04
7.□.□ 核心算法代码□05
7.□.3 功能验证□05
7.□.4 生成硬件代码□06
7.□.5 模块代码优化□08
7.□.6 HLS的Modelsim仿真□11
7.□.7 集成HLS代码到FPGA系统□11
7.□.8 HDL实例化□1□
7.□.9 添加IP路径到Qsys系统□13
7.3 HLS的多种接口及其使用场景□15
7.3.1 标准接口□15
7.3.□ 隐式的Avalon MM Master接口□17
7.3.3 显式的Avalon MM Master接口□19
7.3.4 Avalon MM Slave接口□□0
7.3.5 Avalon Streaming接口□□4
7.4 HLS简单的优化技巧□□6
第8章 基于英特尔FPGA的OpenCL异构技术□□7
8.1 OpenCL基本概念□□7
8.1.1 异构计算简介□□7
8.1.□ OpenCL基础知识□□8
8.1.3 OpenCL语言简介□31
8.□ 基于英特尔FPGA的OpenCL开发环境□34
8.□.1 英特尔FPGA的OpenCL解决方案□34
8.□.□ 系统要求□36
8.□.3 环境安装□37
8.□.4 设置环境变量□37
8.□.5 初始化并检测OpenCL环境□38
8.3 主机端Host程序设计□39
8.3.1 建立Platform环境□39
8.3.□ 创建Program与Kernel□4□
8.3.3 Host与Kernel的交互□43
8.3.4 OpenCL的内核执行□46
8.3.5 Host端程序示例□47
8.4 设备端Kernel程序设计流程□48
8.4.1 Kernel编译□48
8.4.□ 功能验证(-march=emulator,x86平台仿真)□53
8.4.3 静态分析(-rtl,分析HTML报告)□53
8.4.4 动态分析(-profile)□55
第三部分 人工智能应用篇
第9章 人工智能简介□59
9.1 FPGA在人工智能领域的独特优势□59
9.1.1 确定性低延迟□60
9.1.□ 灵活可配置□60
9.1.3 针对卷积神经网络的特殊优化□61
9.□ 人工智能的概念□61
9.3 人工智能的发展史□6□
9.3.1 早期的兴起与低潮□6□
9.3.□ 人工智能的诞生□63
9.3.3 人工智能的“冬天”□63
9.3.4 交叉学科的兴起□63
9.3.5 云计算与大数据时代的来临□64
9.4 人工智能的应用□64
9.4.1 智能决策□64
9.4.□ □优路径规划□64
9.4.3 智能计算系统□65
9.5 人工智能的限制□65
9.6 人工智能的分类□65
9.6.1 弱人工智能□66
9.6.□ 强人工智能□66
9.6.3 超人工智能□66
9.7 人工智能的发展及其基础□67
9.7.1 矩阵论□67
9.7.□ 应用统计□68
9.7.3 回归分析与方差分析□68
9.7.4 数值分析□68
□□0章 深度学习□69
10.1 深度学□□优势□69
10.□ 深度学□□概念□71
10.3 神经网络的基本构成□7□
10.3.1 神经元的基本原理□73
10.3.□ 全连接神经网络□74
10.3.3 卷积神经网络□75
10.3.4 常见的卷积神经网络□77
10.4 常见的深度学习数据集□79
10.5 深度学□□应用挑战□80
□□1章 基于英特尔FPGA进行深度学习推理□8□
11.1 □□监控□8□
11.□ 视觉系统架构□83
11.□.1 物理特征的捕捉□83
11.□.□ 预处理□83
11.□.3 高级处理□84
11.3 计算机视觉的常见任务□85
11.3.1 图形图像分割□86
11.3.□ 对象检测□86
11.3.3 对象分类□87
11.3.4 面部识别□87
11.3.5 其他任务□88
11.4 计算机视觉的基础□89
11.4.1 深度学习框架□90
11.4.□ OpenCL□91
11.4.3 OpenCV□9□
11.4.4 OpenVINO□9□
11.5 使用OpenVINO工具在英特尔FPGA上部署深度学习推理应用□93
11.5.1 OpenVINO工具□93
11.5.□ 端到端机器学习□95
11.5.3 OpenVINO安装□95
11.5.4 模型优化器□97
11.5.5 推理引擎30□
后记313