店铺公告
为保障消费者合理购买需求及公平交易机会,避免因非生活消费目的的购买货囤积商品,抬价转售等违法行为发生,店铺有权对异常订单不发货且不进行赔付。异常订单:包括但不限于相同用户ID批量下单,同一用户(指不同用户ID,存在相同/临近/虚构收货地址,或相同联系号码,收件人,同账户付款人等情形的)批量下单(一次性大于5本),以及其他非消费目的的交易订单。
温馨提示:请务必当着快递员面开箱验货,如发现破损,请立即拍照拒收,如验货有问题请及时联系在线客服处理,(如开箱验货时发现破损,所产生运费由我司承担,一经签收即为货物完好,如果您未开箱验货,一切损失就需要由买家承担,所以请买家一定要仔细验货)。
关于退货运费:对于下单后且物流已发货货品在途的状态下,原则上均不接受退货申请,如顾客原因退货需要承担来回运费,如因产品质量问题(非破损问题)可在签收后,联系在线客服。
内容介绍
本书主要从技术基础、开发方法和人工智能应用三个方面介绍FPGA的开发方法,围绕FPGA的基础知识,Verilog硬件描述语言,FPGA在Quartus中的开发流程,FPGA的SOPC、HLS、OpenCL设计方法,FPGA在人工智能领域的应用等方面进行阐述,使开发人员能理解FPGA的核心知识,掌握FPGA的开发方法和开发工具。本书包含FPGA技术基础篇、FPGA开发方法篇和人工智能应用篇三大板块,共计11章,以FPGA基础知识为切入点,通过对开发方法和设计思路的讲解,帮助读者快速掌握FPGA开发技术及FPGA在人工智能上的应用。本书可作为FPGA和其他开发人员进行FPGA设计和应用的参考用书。
目录
**部分 FPGA技术基础篇
第1章 FPGA的特点及其历史 002
1.1 无处不在的FPGA 002
1.2 创造性地解释FPGA 003
1.2.1 珠串法 004
1.2.2 乐高积木法 004
1.3 FPGA的可定制性 005
1.4 早期的逻辑功能实现 006
1.4.1 数字设计与TTL逻辑 007
1.4.2 从TTL到可编程逻辑 008
1.5 可简单编程逻辑器件(PAL) 009
1.5.1 可编程阵列逻辑优势 009
1.5.2 PAL编程技术 010
1.6 可编程逻辑器件(PLD) 011
1.7 复杂可编程逻辑器件(CPLD) 012
1.7.1 普通CPLD逻辑块的特点 012
1.7.2 CPLD的一般优势 013
1.7.3 非易失FPGA 014
1.8 现场可编程逻辑门阵列(FPGA) 015
第2章 FPGA架构 017
2.1 FPGA全芯片架构 017
2.2 FPGA逻辑阵列模块 018
2.2.1 查找表(LUT) 019
2.2.2 可编程寄存器 019
2.2.3 LABs和LE:更进一步的观察 022
2.2.4 自适应逻辑模块(ALM) 023
2.3 FPGA嵌入式存储 024
2.3.1 存储资源的利用 024
2.3.2 M9K资源介绍 025
2.4 时钟网络 027
2.4.1 FPGA时钟架构 027
2.4.2 PLL(锁相环) 028
2.5 DSP模块 028
2.6 FPGA布线 029
2.7 FPGA编程资源 030
2.8 FPGA I/O元件 031
2.8.1 典型的I/O元件逻辑 031
2.8.2 高速收发器 032
2.9 英特尔FPGA SoC 033
第3章 Verilog HDL 035
3.1 Verilog HDL概述 035
3.1.1 Verilog HDL的介绍 035
3.1.2 Verilog HDL的发展历史 036
3.1.3 Verilog HDL的相关术语 037
3.1.4 Verilog HDL的开发流程 038
3.2 Verilog HDL基础知识 040
3.2.1 程序结构 040
3.2.2 程序实例 041
3.2.3 数据类型 041
3.2.4 模块例化 043
3.2.5 运算符 044
3.3 Verilog HDL的基本语法 048
3.3.1 if-else语句 048
3.3.2 case语句 049
3.3.3 for循环 050
3.3.4 Verilog HDL常用关键字汇总 050
3.4 Verilog HDL高级知识点 051
3.4.1 阻塞与非阻塞的区别 051
3.4.2 assign语句和always语句的区别 054
3.4.3 锁存器与寄存器的区别 054
3.4.4 状态机 055
3.5 Verilog HDL开发实例篇 059
3.5.1 汉明码编码器 059
3.5.2 数码管译码器 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.2 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.2 Quartus Prime开发流程 091
4.2.1 典型的FPGA开发流程 091
4.2.2 创建Quartus Prime工程 094
4.2.3 设计输入 100
4.2.4 编译 106
4.2.5 分配管脚 111
4.2.6 仿真 112
4.2.7 器件配置 113
4.3 实验指导 116
4.3.1 流水灯实验 116
4.3.2 按键实验 128
4.3.3 PLL实验 136
第二部分 PGA开发方法篇
第5章 FPGA设计工具 145
5.1 编译报告 145
5.1.1 源文件读取报告 147
5.1.2 资源使用报告 147
5.1.3 动态综合报告 149
5.2 网表查看工具 149
5.2.1 RTL Viewer 149
5.2.2 Technology Map Viewer 150
5.2.3 State Machine Viewer 152
5.3 物理约束 153
5.3.1 物理约束设计 153
5.3.2 Assignment Editor 154
5.3.3 QSF文件设置 156
5.4 时序分析工具 158
5.4.1 TimeQuest Timing Analyzer的GUI图形交互界面 158
5.4.2 任务窗格(Tasks) 159
5.4.3 创建时序数据库(Netlist Setup) 159
5.4.4 常用的约束报告 160
5.4.5 报告窗格(Report Pane) 161
5.4.6 时序异常(Exceptions) 162
5.4.7 关于SDC的*后说明 164
5.5 功耗分析工具 164
5.5.1 功耗和热考虑因素 164
5.5.2 功耗分析工具比较 165
5.5.3 EPE电子表格 165
5.5.4 Power Analyzer 166
5.6 片上调试工具 167
5.6.1 Quartus Prime软件中的片上调试工具 167
5.6.2 Signal Probe Pin(信号探针) 168
5.6.3 SignalTap Ⅱ嵌入式逻辑分析仪 170
第6章 基于英特尔FPGA的SOPC开发 175
6.1 SOPC技术简介 175
6.2 IP核与Nios处理器 176
6.2.1 基于IP硬核的SOPC 176
6.2.2 基于IP软核的SOPC 177
6.3 构建SOPC系统 178
6.3.1 Platform Designer 178
6.3.2 SOPC设计工具 180
6.4 SOPC开发实战 181
6.4.1 SOPC系统设计 181
6.4.2 SOPC硬件设计 182
6.4.3 SOPC软件设计 199
第7章 基于英特尔FPGA的HLS开发 203
7.1 HLS的基本概念 203
7.2 HLS的基本开发流程 204
7.2.1 HLS的安装 204
7.2.2 核心算法代码 205
7.2.3 功能验证 205
7.2.4 生成硬件代码 206
7.2.5 模块代码优化 208
7.2.6 HLS的Modelsim仿真 211
7.2.7 集成HLS代码到FPGA系统 211
7.2.8 HDL实例化 212
7.2.9 添加IP路径到Qsys系统 213
7.3 HLS的多种接口及其使用场景 215
7.3.1 标准接口 215
7.3.2 隐式的Avalon MM Master接口 217
7.3.3 显式的Avalon MM Master接口 219
7.3.4 Avalon MM Slave接口 220
7.3.5 Avalon Streaming接口 224
7.4 HLS简单的优化技巧 226
第8章 基于英特尔FPGA的OpenCL异构技术 227
8.1 OpenCL基本概念 227
8.1.1 异构计算简介 227
8.1.2 OpenCL基础知识 228
8.1.3 OpenCL语言简介 231
8.2 基于英特尔FPGA的OpenCL开发环境 234
8.2.1 英特尔FPGA的OpenCL解决方案 234
8.2.2 系统要求 236
8.2.3 环境安装 237
8.2.4 设置环境变量 237
8.2.5 初始化并检测OpenCL环境 238
8.3 主机端Host程序设计 239
8.3.1 建立Platform环境 239
8.3.2 创建Program与Kernel 242
8.3.3 Host与Kernel的交互 243
8.3.4 OpenCL的内核执行 246
8.3.5 Host端程序示例 247
8.4 设备端Kernel程序设计流程 248
8.4.1 Kernel编译 248
8.4.2 功能验证(-march=emulator,x86平台仿真) 253
8.4.3 静态分析(-rtl,分析HTML报告) 253
8.4.4 动态分析(-profile) 255
第三部分 人工智能应用篇
第9章 人工智能简介 259
9.1 FPGA在人工智能领域的独特优势 259
9.1.1 确定性低延迟 260
9.1.2 灵活可配置 260
9.1.3 针对卷积神经网络的特殊优化 261
9.2 人工智能的概念 261
9.3 人工智能的发展史 262
9.3.1 早期的兴起与低潮 262
9.3.2 人工智能的诞生 263
9.3.3 人工智能的“冬天” 263
9.3.4 交叉学科的兴起 263
9.3.5 云计算与大数据时代的来临 264
9.4 人工智能的应用 264
9.4.1 智能决策 264
9.4.2 *优路径规划 264
9.4.3 智能计算系统 265
9.5 人工智能的限制 265
9.6 人工智能的分类 265
9.6.1 弱人工智能 266
9.6.2 强人工智能 266
9.6.3 超人工智能 266
9.7 人工智能的发展及其基础 267
9.7.1 矩阵论 267
9.7.2 应用统计 268
9.7.3 回归分析与方差分析 268
9.7.4 数值分析 268
第10章 深度学习 269
10.1 深度学习的优势 269
10.2 深度学习的概念 271
10.3 神经网络的基本构成 272
10.3.1 神经元的基本原理 273
10.3.2 全连接神经网络 274
10.3.3 卷积神经网络 275
10.3.4 常见的卷积神经网络 277
10.4 常见的深度学习数据集 279
10.5 深度学习的应用挑战 280
第11章 基于英特尔FPGA进行深度学习推理 282
11.1 视频监控 282
11.2 视觉系统架构 283
11.2.1 物理特征的捕捉 283
11.2.2 预处理 283
11.2.3 高级处理 284
11.3 计算机视觉的常见任务 285
11.3.1 图形图像分割 286
11.3.2 对象检测 286
11.3.3 对象分类 287
11.3.4 面部识别 287
11.3.5 其他任务 288
11.4 计算机视觉的基础 289
11.4.1 深度学习框架 290
11.4.2 OpenCL 291
11.4.3 OpenCV 292
11.4.4 OpenVINO 292
11.5 使用OpenVINO工具在英特尔FPGA上部署深度学习推理应用 293
11.5.1 OpenVINO工具 293
11.5.2 端到端机器学习 295
11.5.3 OpenVINO安装 295
11.5.4 模型优化器 297
11.5.5 推理引擎 302
后记 313
作者介绍
张瑞先生现任英特尔FPGA中国创新中心总经理,总体负责英特尔中国区芯片对外合作战略以及自动驾驶和FPGA等领域的生态建设。同时兼任(中国)汽车电子产业联盟副理事长和副秘书长的职务,致力于推动包括5G、机器视觉、传感器融合和自主决策等多项关键自动驾驶相关技术在中国的落地和合作。张瑞先生拥有多年****半导体公司的从业经历。在加入英特尔之前,曾在瑞萨电子和飞思卡尔半导体(现恩智浦半导体)担任多个关键技术和管理职务。
关联推荐
可作为FPGA和其他开发人员进行FPGA设计和应用的参考用书。