百度云服务器FPGA标准开发环境的逻辑开发与编译示例

百度云服务器FPGA标准开发环境的逻辑开发与编译示例,第1张

 

镜像是云服务器实例运行环境的模板,包括 *** 作系统和预装软件等配置。百度云为每个FPGA实例默认提供了专属公共镜像,用户可以按需选择适合的镜像类型。

 

概述


基于百度云自研的FPGA加速卡,提供了一套FPGA标准开发环境。您可以使用百度云提供的镜像工具包,在FPGA上开发与调试自己的业务功能,或者将已有的功能模块移植到FPGA加速卡上。

百度自研FPGA加速卡使用Xilinx 20nm KU115 FPGA。FPGA板卡带有4通道DDR4,每个通道72bit,带ECC,容量2GB,速率2400Mhz。FPGA通过PCIE 3.0x8和CPU相连。板卡的结构框图如下所示:

百度云服务器FPGA标准开发环境的逻辑开发与编译示例,百度云服务器FPGA标准开发环境介绍,第2张

 

基于上面的FPGA板卡,百度还提供的FPGA标准开发环境,其系统结构如下图:

百度云服务器FPGA标准开发环境的逻辑开发与编译示例,百度云FPGA标准开发环境,第3张

 

FPGA标准开发环境具有极大的灵活性:

您可以自行研发FPGA中动态部分的逻辑,包括KU115芯片的绝大部分资源,以及4个DDR4通道,让FPGA电路完成定制化的功能,

百度云提供驱动和应用参考设计,您只需修改软件侧的驱动和应用程序,调用FPGA完成特定的功能。

直接使用百度提供的工具包更换FPGA中动态部分的逻辑。

FPGA标准开发环境提供虚拟jtag工具,您可以使用vivado工具对FPGA进行调试。

FPGA 标准开发环境 *** 作包括两部分:

FPGA软件驱动开发

以运行支持PE进行简单浮点向量加功能的示例程序为例:
1. 编译驱动,提供编译示例程序。
2. 运行示例程序。

FPGA逻辑开发

使用工具包开发和调试用户逻辑:
1. 使用Baidu_HW_design_toolkit编译实现您的动态逻辑。
2. 使用bin_pr_tools更换您的动态逻辑。
3. 使用Vivado对您的动态逻辑进行调试。

FPGA软件驱动开发

编译驱动


修改driver/Makefile中的KERNELDIR变量,使之指向当前内核的编译目录,一般为/lib/modules/$(uname -r)/build目录或/usr/src/kernels/$(uname -r)。

百度云服务器FPGA标准开发环境的逻辑开发与编译示例,百度云服务器FPGA标准开发环境介绍,第4张

 

执行make,如果编译成功,当前目录下会生成xdma_xvc.ko驱动文件,如下图所示:

百度云服务器FPGA标准开发环境的逻辑开发与编译示例,百度云服务器FPGA标准开发环境介绍,第5张

 

执行insmod xdma_xvc.ko,装载上一步生成的驱动文件,在/dev目录下会出现如下设备文件/dev/xil_xvc/cfg_ioc0。

百度云服务器FPGA标准开发环境的逻辑开发与编译示例,百度云服务器FPGA标准开发环境介绍,第6张

 

编译示例程序


进入sample目录,执行make。如果编译成功,当前目录下生成sample、sample_user_irq等可执行文件,参见下图:

百度云服务器FPGA标准开发环境的逻辑开发与编译示例,百度云服务器FPGA标准开发环境介绍,第7张

 

运行示例程序


执行./sample,输出如下结果,PE正确地执行了浮点向量加功能。sample使用轮询寄存器方式检查命令结果是否完成。

执行./sample_user_irq,输出如下结果,PE正确地执行了浮点向量加功能。sample_user_irq使用中断方式检查命令结果是否完成。

关键代码示例

百度云服务器FPGA标准开发环境的逻辑开发与编译示例,百度云服务器FPGA标准开发环境介绍,第8张


百度云服务器FPGA标准开发环境的逻辑开发与编译示例,百度云服务器FPGA标准开发环境介绍,第9张


百度云服务器FPGA标准开发环境的逻辑开发与编译示例,百度云服务器FPGA标准开发环境介绍,第10张


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2599017.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-09
下一篇 2022-08-09

发表评论

登录后才能评论

评论列表(0条)

保存