《SoCFPGA嵌入式设计和开发教程梅雪松小梅哥SoCFPGA开发工程技术自学教程教材书籍》[67M]百度网盘|pdf下载|亲测有效
《SoCFPGA嵌入式设计和开发教程梅雪松小梅哥SoCFPGA开发工程技术自学教程教材书籍》[67M]百度网盘|pdf下载|亲测有效

SoCFPGA嵌入式设计和开发教程梅雪松小梅哥SoCFPGA开发工程技术自学教程教材书籍 pdf下载

出版社 南京中译图书专营店
出版年 2025
页数 390页
装帧 精装
评分 9.4(豆瓣)
8.99¥ 10.99¥

内容简介

本篇主要提供SoCFPGA嵌入式设计和开发教程梅雪松小梅哥SoCFPGA开发工程技术自学教程教材书籍电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com

基本信息

书名:北航 SoC FPGA 嵌入式设计和开发教程

定价:69元

作者:梅雪松,宋士权,陈云

出版社:北京航空航天大学出版社

出版日期:2019-03-01

ISBN:9787512422391

字数:

页码:

版次:

装帧:平装

开本:16开

商品重量:

内容提要


本书以Intel Cyclone v SoC FPGA系列器件为例,介绍了SoC FPGA 器件的架构特点、常用电路设计以及软硬件开发流程和开发技巧。内容编排按照开发一个基于SoC FPGA 的应用系统所需掌握的基本的知识路线展开,从基本的Linux系统操作到分析一个基础的应用系统框架,然后基于该应用系统框架,详细讲解应用系统的构建、BSP文件的生成、启动引导文件的更新、Ubuntu虚拟机安装配置、Linux内核配置与编译。接着介绍如何在嵌入式Linux系统环境下,使用虚拟地址映射的方式编写相应的应用程序来实现该应用系统中各个功能IP的编程控制和调试。后以两个实际的例子展示如何通过HPS和FPGA的片上通信桥实现软硬件联合开发的过程,括FPGA侧逻辑开发, IP总线封装,Linux驱动程序的编写编译,Linux应用程序的编写与运行等。

本书既可作为工程类应用、电子信息类专业本科生以及相关专业专科生的嵌入式系统基础类课程的教材,也可作为SoC FPGA自学人员以及从事SoC FPGA开发的工程技术人员的培训教材和参考用书。


作者介绍


梅雪松,网名'小梅哥',拥有多年电子设计经验,擅长知识的总结和传播,有《小梅哥和你一起深入学习FPGA》、《小梅哥FPGA学习笔记》两个系列网络博文;并推出了手把手式视频教程《FPGA设计思想与验证方法视频教程》,该教程在各大视频点击平台备受好评,网友称其为学习FPGA基础与提高教学视频的S选。同时,开设FPGA实地培训班,进行网络和实地FPGA培训,并多次进入高校进行SoC FPGA开发技术的培训。培训课程以其系统的知识讲解和生动的实例分析,得到了学员的一致肯定。


目录


章 SoC FPGA软硬件系统开发概述 … 1

1.1 Intel SoC FPGA系列 1

1.1.1 Cyclone Ⅴ SoC FPGA … 2

1.1.2 Arria Ⅴ SoC FPGA 2

1.1.3 Arria 10 SoC FPGA 2

1.1.4 Stratix 10 SoC FPGA 3

1.1.5 SoC FPGA应用领域与前景 3

1.2 Intel Cyclone Ⅴ SoC FPGA介绍 … 4

1.2.1 什么是SoC FPGA … 4

1.2.2 SOPC … 4

1.2.3 SoC FPGA与SOPC之间的差异 5

1.2.4 SoC FPGA架构的优势 … 6

1.3 Cyclone Ⅴ SoC FPGA器件硬件设计概述 9

1.3.1 FPGA I/O和时钟 … 10

1.3.2 SoC FPGA JTAG电路设计 … 12

1.4 AC501-SoC开发板介绍 13

1.4.1 布局及组件 … 13

1.4.2 轻触按键 14

1.4.3 用户LED 15

1.4.4 时钟输入 16

1.4.5 GPIO接口 … 17

1.4.6 DDR3SDRAM 18

1.4.7 通用显示扩展接口… 19

1.4.8 USB转 UART 21

1.4.9 以太网收发器 21

1.5 本章小结 23

第2章 SoC FPGA开发板的使用 … 24

2.1 安装SoC FPGA开发工具 24

2.2 SoC FPGA的配置数据烧写与固化 24

2.2.1 SoC FPGA启动配置方式介绍 24

2.2.2 sof文件的烧写方式 26

2.2.3 Jic文件的生成和烧写 … 28

2.3 在SoC FPGA上运行Linux操作系统 … 32

2.3.1 SoC FPGA中的 HPS启动流程介绍 32

2.3.2 HPS启动方式介绍 33

2.3.3 制作启动镜像SD卡 34

2.3.4 准备硬件板卡 35

2.3.5 开机测试 39

2.4 开发板Linux系统常用操作 … 40

2.4.1 查看目录 40

2.4.2 设置和修改用户密码 40

2.4.3 查看和编辑文件 … 41

2.4.4 设置IP地址 … 43

2.4.5 挂载SD卡的FAT32分区 45

2.4.6 挂载 U盘 46

2.4.7 文件操作 47

2.4.8 目录操作 48

2.4.9 停止某个进程 49

2.4.10 重启和关机 … 50

2.5 本章小结 50

第3章 SoC FPGA开发概述 … 51

3.1 SoC FPGA开发流程 … 51

3.1.1 硬件开发 51

3.1.2 软件开发 53

3.2 AC501-SoC FPGA开发板的黄金参考设计说明 53

3.2.1 GHRD … 53

3.2.2 打开和查看GHRD 54

3.2.3 组件参数配置详解… 57

3.3 本章小结 62

第4章 手把手修改GHRD系统 63

4.1 修改GHRD工程 … 63

4.1.1 打开GHRD工程 … 63

4.1.2 添加UART IP 64

4.1.3 关于 HPS与FPGA数据交互… 64

4.1.4 连接UART IP信号端口 65

4.1.5 分配组件基地址 … 67

4.1.6 生成 Qsys系统的 HDL文件 … 68

4.1.7 添加uart_1的端口到 Quartus工程中 69

4.1.8 分配FPGA引脚 … 71

4.1.9 生成配置数据二进制文件 72

4.2 制作Preloader Image … 72

4.2.1 打开SoC EDS工具 73

4.2.2 生成bsp文件 74

4.2.3 编译Preloader和 U-Boot 77

4.2.4 更新Preloader和 U-Boot 79

4.2.5 Win 10下更新失败问题… 80

4.2.6 使用新的 U-Boot启动SoC … 81

4.3 制作设备树 … 82

4.3.1 设备树制作流程 … 82

4.3.2 准备所需文件 82

4.3.3 生成.dts文件 83

4.3.4 生成.dtb文件 84

4.4 运行修改后的工程 85

4.5 本章小结 87

第5章 使用DS-5编写和调试SoC的Linux应用程序 88

5.1 启动DS-5 …88

5.2 创建C工程 … 91

5.3 编译工程 94

5.4 建立SSH远程连接 95

5.4.1 创建远程连接 95

5.4.2 复制文件到目标板 101

5.4.3 运行应用程序 102

5.5 远程调试 … 103

5.5.1 GDB设置 … 103

5.5.2 GDB连接和调试 … 106

5.6 使用 WinSCP实现多系统传输文件 108

5.6.1 为什么要使用 WinSCP 108

5.6.2 安装 WinSCP 109

5.6.3 建立远程主机连接 109

5.6.4 新建远程连接 112

5.6.5 调用PuTTY终端 112

5.7 本章小结 … 113

第6章 基于虚拟地址映射的Linux硬件编程 114

6.1 什么是虚拟地址映射 … 114

6.2 虚拟地址映射的实现 … 115

6.3 基于虚拟地址映射的PIO编程应用 117

6.3.1 PIO外设的虚拟地址映射 117

6.3.2 在DS-5中建立PIO应用工程 118

6.3.3 添加和含 HPS库文件 119

6.3.4 添加FPGA侧外设硬件信息… 121

6.3.5 PIO IP核介绍 124

6.3.6 PIO核寄存器映射 125

6.3.7 PIO IP核应用实例 128

6.3.8 合理的程序退出机制 … 131

6.3.9 关于按键消抖 133

6.4 基于虚拟地址映射的 UART编程应用… 134

6.4.1 UART核介绍 134

6.4.2 UART寄存器映射 134

6.4.3 UART IP核应用实例 … 136

6.4.4 UART IP核板级调试 … 144

6.4.5 小 结 145

6.5 基于虚拟地址映射的I2C编程应用 145

6.5.1 OpenCores I2C IP简介… 146

6.5.2 OpenCores I2C IP寄存器映射 146

6.5.3 I2C IP核应用实例 149

6.5.4 小 结 161

6.6 本章小结 … 161

第7章 基于Linux应用程序的HPS配置

FPGA … 162

7.1 制作 Quartus工程 163

7.2 生成rbf格式配置数据 163

7.3 编译Linux配置FPGA应用程序… 165

7.4 在系统重配置FPGA实验 … 166

7.5 本章小结 … 168

第8章 编译嵌入式Linux系统内核 169

8.1 安装 VMware … 170

8.2 安装 Ubuntu系统 171

8.2.1 使用现成的 Ubuntu系统镜像 171

8.2.2 安装全新的 Ubuntu系统 175

8.3 下载Linux系统源码 … 182

8.4 设置交叉编译环境 185

8.5 配置和编译内核 … 189

8.5.1 快速配置内核 189

8.5.2 保存内核配置文件 195

8.5.3 编译内核 195

8.5.4 使用内核启动开发板 … 197

8.6 本章小结 … 199

第9章 Linux设备树的原理与应用实例 200

9.1 什么是设备树 200

9.2 设备树基本格式 … 201

9.3 设备树加载设备驱动原理 … 206

9.4 编写I2C控制器设备节点 … 208

9.5 加载 OC_I2C驱动 211

9.6 使用RTC … 212

9.7 使用EEPROM … 216

9.8 编写SPI控制器设备节点 … 217

9.9 本章小结 … 219

0章 基于Linux标准文件I/O 的设备读/写 … 220

10.1 什么是文件I/O 220

10.2 基于文件I/O操作的一般方法 … 220

10.2.1 文件描述符 220

10.2.2 打开设备(open)… 221

10.2.3 向设备写入数据(write) 221

10.2.4 读取设备数据(read)… 222

10.2.5 杂项操作(ioctl)… 222

10.2.6 关闭设备(close)… 223

10.2.7 其他操作 … 223

10.3 使用文件I/O实现I2C编程 223

10.4 本章小结 … 226

1章 FPGA与HPS高速数据交互应用 … 227

11.1 FPGA与 HPS通信介绍 … 227

11.1.1 H2F_LW_AXI_Master桥 … 229

11.1.2 H2F_AXI_Master桥 … 229

11.1.3 F2H_AXI_Slave桥 230

11.2 AXI与 Avalon-MM 总线的互联… 230

11.3 Avalon-MM 总线 230

11.4 Avalon-MM Slave接口 232

11.5 基本Avalon-MM Slave IP设计框架 … 234

11.5.1 端口定义 … 234

11.5.2 寄存器和线网定义 235

11.5.3 Avalon总线对寄存器的读/写 235

11.5.4 用户逻辑使用寄存器 … 236

11.6 PWM 控制器设计 237

11.6.1 PWM IP核端口设计 … 238

11.6.2 PWM IP核寄存器定义 239

11.6.3 读/写PWM 寄存器 … 239

11.6.4 Platform Designer中封装PWM IP 241

11.7 Avalon-MM Master接口 … 255

11.7.1 常见的通用Avalon-MM Master主机 … 256

11.7.2 DMA Controller 256

11.7.3 Scatter-Gather DMA Controller … 256

11.7.4 Modular Scatter-Gather DMA 258

11.7.5 Avalon-MM Master模板 … 260

11.8 高速数据采集系统 … 263

11.8.1 安装Avalon-MM Master模板 263

11.8.2 完善 Qsys系统 … 265

11.8.3 修改 Quartus中的 Qsys例化 269

11.8.4 测试逻辑设计 … 271

11.9 本章小结 … 275

2章 Linux驱动编写与编译 … 276

12.1 基本字符型设备驱动… 276

12.1.1 字符型设备驱动框架 … 277

12.1.2 PWM 控制器驱动的完整源码 286

12.1.3 驱动编译 Makefile 291

12.1.4 Ubuntu下编译设备驱动 292

12.1.5 字符型设备驱动验证 … 293

12.2 基于DMA的字符型设备驱动 … 297

12.2.1 Avalon-MM Master Write驱动 … 298

12.2.2 Avalon-MM Master Write测试 … 304

12.3 本章小结 … 311

附录A 外设地址映射 312

附录B HPS GPIO映射 … 314


编辑推荐


随着半导体工艺的提升,芯片厂商将更多的功能集成到单一的半导体芯片之中,芯片集成度的提高,随之带来的是应用设计复杂度的提高。Intel在其FPGA 芯片上集成了ARM Cortex处理器,从而形成一颗基于FPGA 的SoC芯片,这是一个典型的可配置的单芯片系统。

目前一颗主流的FPGA 芯片,除了逻辑单元外,还集成了嵌入式存储器块、锁相环、DSP块,甚至高速收发器电路,并将ARM Core集成到FPGA 芯片上,在带来功能高度集成的同时,再一次增加了应用设计的复杂度。

目前,基于SoC FPGA 嵌入式系统设计的参考书和教材还很少,而小梅哥的这本书从基本的概念讲起,由浅入深,再配合大量的截图,一步一步地介绍了整个设计的流程。该书内容涵盖了基于SoC FPGA 的硬件系统搭建、Linux操作系统的配置,以及软件的设计与调试方法等,手把手地将一个初学者带进SoC FPGA 嵌入式系统的设计入门,常值得推荐。

希望作者在本书的基础上,再接再厉,不断地写出更好的参考书,也希望广大读者对本书给予大力支持!

Intel FPGA 大学计划经理 袁亚东


^_^:cf788fedff47edcb7fe4b95895afa47d