商品详情
书名:FPGA进阶开发与实践
定价:108.0
ISBN:9787121402340
作者:无
版次:第1版
出版时间:2020-12
内容提要:
本书内容共6章,主要介绍FPGA设计与优化方法,以及使用FPGA解决实际问题的具体过程。其中,硬件设计方法包括FPGA高阶设计方法,以及基于FPGA的SOPC和SoC设计方法;软件设计方法包括基于FPGA的HLS、OpenCL、OpenVINO高阶设计方法。 本书内容共6章,主要介绍FPGA设计与优化方法,以及使用FPGA解决实际问题的具体过程。其中,硬件设计方法包括FPGA高阶设计方法,以及基于FPGA的SOPC和SoC设计方法;软件设计方法包括基于FPGA的HLS、OpenCL、OpenVINO高阶设计方法。 本书可作为相关开发人员进行FPGA设计、应用与优化的参考用书。
作者简介:
田亮,男,武汉科技大学硕士,重庆海云捷讯科技有限公司CTO,英特尔FPGA中国创新中心技术管理主要生态负责人。10年以上的云计算产品开发、设计和架构经验,服务过人民日报、CNTV、国家电网、武汉大学等客户,主导设计了人工智能开放创新平台和FPGA云加速平台,熟悉OpenStack、SDN、分布式存储、Docker、Kubernetes、FPGA、异构计算、人工智能等技术,致力于为客户提供“云+AI”的解决方案。
目录:
第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
定价:108.0
ISBN:9787121402340
作者:无
版次:第1版
出版时间:2020-12
内容提要:
本书内容共6章,主要介绍FPGA设计与优化方法,以及使用FPGA解决实际问题的具体过程。其中,硬件设计方法包括FPGA高阶设计方法,以及基于FPGA的SOPC和SoC设计方法;软件设计方法包括基于FPGA的HLS、OpenCL、OpenVINO高阶设计方法。 本书内容共6章,主要介绍FPGA设计与优化方法,以及使用FPGA解决实际问题的具体过程。其中,硬件设计方法包括FPGA高阶设计方法,以及基于FPGA的SOPC和SoC设计方法;软件设计方法包括基于FPGA的HLS、OpenCL、OpenVINO高阶设计方法。 本书可作为相关开发人员进行FPGA设计、应用与优化的参考用书。
作者简介:
田亮,男,武汉科技大学硕士,重庆海云捷讯科技有限公司CTO,英特尔FPGA中国创新中心技术管理主要生态负责人。10年以上的云计算产品开发、设计和架构经验,服务过人民日报、CNTV、国家电网、武汉大学等客户,主导设计了人工智能开放创新平台和FPGA云加速平台,熟悉OpenStack、SDN、分布式存储、Docker、Kubernetes、FPGA、异构计算、人工智能等技术,致力于为客户提供“云+AI”的解决方案。
目录:
第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
- 电子工业出版社有限公司
- 电子工业出版社有限公司有赞官方供货商,为客户提供一流的知识产品及服务。
- 扫描二维码,访问我们的微信店铺