描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121402340丛书名: 英特尔FPGA中国创新中心系列丛书
本书内容共6章,主要介绍FPGA设计与优化方法,以及使用FPGA解决实际问题的具体过程。其中,硬件设计方法包括FPGA高阶设计方法,以及基于FPGA的SOPC和SoC设计方法;软件设计方法包括基于FPGA的HLS、OpenCL、OpenVINO高阶设计方法。 本书可作为相关开发人员进行FPGA设计、应用与优化的参考用书。
本书内容共6章,主要介绍FPGA设计与优化方法,以及使用FPGA解决实际问题的具体过程。其中,硬件设计方法包括FPGA高阶设计方法,以及基于FPGA的SOPC和SoC设计方法;软件设计方法包括基于FPGA的HLS、OpenCL、OpenVINO高阶设计方法。 本书内容共6章,主要介绍FPGA设计与优化方法,以及使用FPGA解决实际问题的具体过程。其中,硬件设计方法包括FPGA高阶设计方法,以及基于FPGA的SOPC和SoC设计方法;软件设计方法包括基于FPGA的HLS、OpenCL、OpenVINO高阶设计方法。 本书可作为相关开发人员进行FPGA设计、应用与优化的参考用书。
第1章 FPGA高阶设计方法 001
1.1 可编程逻辑设计原则 001
1.1.1 面积与速度互换原则 001
1.1.2 数字电路硬件原则 005
1.1.3 系统设计原则 006
1.1.4 同步设计原则 008
1.2 可编程逻辑常用设计思想和技巧 009
1.2.1 乒乓操作 009
1.2.2 串并转换 009
1.2.3 流水操作 009
1.2.4 异步时钟域的数据同步 010
1.2.5 英特尔推荐的Coding Style 011
1.3 英特尔FPGA器件的高级特性与应用 015
1.3.1 时钟管理 015
1.3.2 片内存储器 021
1.3.3 数字信号处理 024
1.3.4 片外存储器 028
1.3.5 高速差分接口 031
1.3.6 高速串行收发器 031
1.4 时序约束与时序分析 032
1.4.1 时序约束和分析基础 032
1.4.2 高级时序分析 037
1.5 区域约束 041
1.5.1 Logic Lock设计方法简介 041
1.5.2 Logic Lock区域 042
1.6 命令行与Tcl脚本 047
1.6.1 命令行 047
1.6.2 Tcl基础知识 049
1.6.3 创建和执行Tcl脚本 052
1.6.4 Tcl脚本实验 053
1.7 FPGA系统设计技术 059
1.7.1 信号完整性设计 059
1.7.2 电源完整性设计 066
1.7.3 高速I/O设计 068
1.7.4 高速I/O的PCB设计 071
第2章 基于FPGA的SOPC设计 074
2.1 SOPC开发流程 075
2.1.1 硬件开发流程 076
2.1.2 软件开发流程 076
2.2 系统集成工具Qsys 076
2.2.1 Qsys简介 076
2.2.2 Qsys系统设计流程 079
2.2.3 Qsys用户界面 079
2.2.4 用户自定义元件 085
2.3 Nios嵌入式处理器 087
2.3.1 第一代Nios嵌入式处理器 087
2.3.2 第二代Nios嵌入式处理器 087
2.3.3 可配置的软核嵌入式处理器的优势 088
2.3.4 软件设计实例 091
2.3.5 HAL系统库 106
2.4 基于FPGA的SOPC设计实验 112
2.4.1 实验一:流水灯实验 112
2.4.2 实验二:中断控制实验 145
2.4.3 实验三:定时器实验 149
第3章 基于FPGA的SoC设计 154
3.1 SoC FPGA简介 154
3.2 英特尔SoC FPGA的特点 156
3.3 Cyclone Ⅴ SoC FPGA资源组成 161
3.4 开发SoC FPGA所需的工具 168
3.4.1 Quartus Prime 168
3.4.2 SoC EDS 175
3.5 SoC FPGA中HPS与FPGA的接口 182
3.5.1 H2F_AXI_Master 183
3.5.2 F2H_AXI_Slave 183
3.5.3 H2F_LW_AXI_Master 183
3.5.4 连接AXI总线与Avalon-MM总线 183
3.5.5 MPU外设地址映射 184
3.6 SoC FPGA开发 185
3.6.1 SoC FPGA开发流程 185
3.6.2 SoC FPGA启动过程 186
3.6.3 使用GHRD 187
3.6.4 生成Preloader Image 196
3.6.5 编译生成u-boot文件 202
3.6.6 生成Root Filesystem 204
3.6.7 配置和编译Linux内核 215
3.6.8 系统镜像制作及刻录方法 221
3.6 9 DS-5程序的编写、调试及运行 230
3.7 Linux相关知识 237
3.7.1 安装Ubuntu虚拟机 237
3.7.2 下载Linux系统源码 242
3.8 常见问题 245
3.9 基于FPGA的SoC设计实验 246
3.9.1 实验一:生成Preloader源码 246
3.9.2 实验二:编译Preloader源码 249
3.9.3 实验三:编译生成u-boot文件 252
3.9.4 实验四:配置和编译Linux内核 255
第4章 基于FPGA的HLS技术与应用 260
4.1 HLS简介 260
4.2 优化的依据 260
4.3 循环优化 263
4.3.1 并行与管道 263
4.3.2 性能度量 265
4.3.3 循环依赖 268
4.3.4 明确循环的退出条件 272
4.3.5 线性操作 272
4.3.6 循环展开 273
4.3.7 嵌套循环 276
4.4 代码优化 277
4.4.1 避免指针别名 277
4.4.2 最小化内存依赖 277
4.4.3 将嵌套循环改为单层循环 278
4.5 指令优化 278
4.5.1 ivdep指令 279
4.5.2 loop_coalesce指令 280
4.5.3 ii和max_concurrency指令 281
4.6 内存优化 281
4.6.1 本地内存 281
4.6.2 内存架构 282
4.6.3 本地内存的属性 289
4.6.4 静态变量 294
4.6.5 寄存器的使用 295
4.7 接口优化 295
4.7.1 标准接口 295
4.7.2 Avalon MM Master接口 297
4.7.3 Avalon MM Slave接口 298
4.7.4 流式接口 300
4.7.5 不使用指针的标准接口 302
4.8 数据类型优化 303
4.8.1 任意精度的整数 304
4.8.2 任意精度的定点数 304
4.8.3 特殊数据类型与普通数据类型之间的转换 306
4.9 浮点运算优化 306
4.10 其他优化建议 308
4.11 基于FPGA的HLS实验 308
4.11.1 实验一:简单的乘法器 309
4.11.2 实验二:接口 318
4.11.3 实验三:循环优化 330
第5章 基于FPGA的OpenCL技术与应用 336
5.1 OpenCL简介 336
5.2 OpenCL环境搭建 337
5.3 OpenCL基本架构 339
5.3.1 平台模型 340
5.3.2 执行模型 340
5.3.3 存储模型 342
5.3.4 执行流程 342
5.4 OpenCL主机端程序设计 343
5.4.1 OpenCL平台 343
5.4.2 OpenCL设备 344
5.4.3 OpenCL上下文 347
5.4.4 OpenCL命令队列 349
5.4.5 OpenCL程序对象 351
5.4.6 OpenCL内核对象 355
5.4.7 OpenCL对象回收与错误处理 359
5.5 OpenCL设备端程序设计 362
5.5.1 基本语法和关键字 362
5.5.2 数据类型 364
5.5.3 维度和工作项 367
5.5.4 其他注意事项 369
5.6 OpenCL常用优化方法 369
5.6.1 单工作项优化 369
5.6.2 循环优化 374
5.6.3 任务并行优化 380
5.6.4 NDRange类型内核的优化 391
5.6.5 内存访问优化 398
5.7 OpenCL编程原则 414
5.7.1 避免“昂贵”的函数和方法 414
5.7.2 使用“廉价”的数据类型 415
5.8 基于FPGA的OpenCL实验 415
5.8.1 准备工作 415
5.8.2 实验一:hello 417
5.8.3 实验二:platform 420
5.8.4 实验三:device 424
5.8.5 实验四:ctxt_and_queue 437
5.8.6 实验五:program_and_kernel 442
5.8.7 实验六:sample 450
5.8.8 实验七:first 453
第6章 基于FPGA的OpenVINO人工智能应用 456
6.1 OpenVINO简介 456
6.1.1 OpenVINO工具套件堆栈 457
6.1.2 OpenVINO的优势 458
6.1.3 应用前景 458
6.2 OpenVINO的安装与验证 458
6.2.1 安装步骤 459
6.2.2 验证安装结果 461
6.3 OpenVINO中的模型优化器 463
6.3.1 模型优化器的作用 464
6.3.2 优化模型 464
6.3.3 模型优化器高级应用 473
6.3.4 模型优化器定制层 486
6.4 OpenVINO深度学习推理引擎 487
6.4.1 推理引擎简介 487
6.4.2 推理引擎的组成 488
6.4.3 推理引擎的使用方法 489
6.4.4 扩展推理引擎内核 489
6.4.5 集成推理引擎 498
6.4.6 神经网络构建器 502
6.4.7 动态批处理 505
6.4.8 形状推理 507
6.4.9 低精度8位整数推理 509
6.4.10 模型转换验证 511
众所周知,我们正在进入一个全面科技创新的时代。科技创新驱动并引领着人类社会的发展,从人工智能、自动驾驶、5G,到精准医疗、机器人等,所有这些领域的突破都离不开科技的创新,也离不开计算的创新。从CPU、GPU,到FPGA、ASIC,再到未来的神经拟态计算、量子计算等,英特尔正在全面布局未来的端到端计算创新,以充分释放数据的价值。中国拥有巨大的市场和引领全球创新的需求,其产业生态的全面性及企业创新的实力、活力和速度都令人瞩目。英特尔始终放眼长远,以丰富的生态经验和广阔的全球视野,持续推动与中国产业生态的合作共赢。以此为前提,英特尔在2018年建立了英特尔? FPGA中国创新中心,与Dell、海云捷迅等合作伙伴携手共建AI和FPGA生态,并通过组织智能大赛、产学研对接及培训认证等方式,发掘优秀团队,培养专业人才,孵化应用创新,加速智能产业在中国的发展。
该系列丛书是英特尔? FPGA中国创新中心专为AI和FPGA领域的人才培养和认证而设计编撰的系列丛书,非常高兴作为英特尔? FPGA中国创新中心总经理为丛书写序。同时也希望该系列丛书能为中国AI和FPGA相关产业的生态建设和人才培养添砖加瓦!
英特尔? FPGA中国创新中心 总经理 张 瑞
2019年秋
评论
还没有评论。