CN111814680A - 一种基于fpga的多路axi总线的控制方法 - Google Patents
一种基于fpga的多路axi总线的控制方法 Download PDFInfo
- Publication number
- CN111814680A CN111814680A CN202010653912.4A CN202010653912A CN111814680A CN 111814680 A CN111814680 A CN 111814680A CN 202010653912 A CN202010653912 A CN 202010653912A CN 111814680 A CN111814680 A CN 111814680A
- Authority
- CN
- China
- Prior art keywords
- data
- axi
- axi bus
- network
- ddr
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/955—Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/07—Target detection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- General Engineering & Computer Science (AREA)
- Small-Scale Networks (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种基于FPGA的多路AXI总线的控制方法,整个架构采用4根AXI总线和DDR产生数据交互,第一根AXI总线部署目标检测算法,主要包括图片数据,卷积计算模块和量化模块;第二根AXI总线主要用来传输对应的权重数据,2D网络最终的计算结果通过第一根和第二根AXI总线写回DDR,第三根AXI总线主要部署激光点云网络,3D网络的计算结果通过第三根AXI总线写回DDR,这部分结果作为2D网络的输入;第四根总线主要部署3D网络的一些前向计算,最终的结果由第四根DDR总线写回DDR内存,并且这部分数据作为3D网络的输入。本发明不需要过多花费资源和损失算法精度的情况下,降低了整个FPGA的时延并且提高了帧率,满足了相应的场景实际需求。
Description
技术领域
本发明涉及一种控制方法,具体是一种基于FPGA的多路AXI总线的控制方法。
背景技术
FPGA即现场可编程门阵列,是一种半定制电路。作为专用集成电路中的一种,由PAL,GAL,CPLD传统逻辑电路和门阵列演变而来。FPGA采用了逻辑单元阵列LCA导概念,将逻辑单元、RAM、乘法器等硬件资源通过合理组织实现乘法器、寄存器、地址产生器等相应的硬件电路。
随着算法更新的不断迭代,算法流程越来越越复杂,处理精度越来越高,在某些应用场景下,单一的算法网络已经不足以满足要求,这就需要多个算法网络同时运行以达到更好的效果。而FPGA虽然有着运算能力高、功耗低的特点,但是受限于硬件资源,很难同时运行多个网络,或者运行多个网络时的时延过长,导致最终的结果不理想。传统的FPGA在一块开发板上同时运行多个算法网络时,往往采用的是通过AXI总线传输数据,但是网络与网络之间是串行的关系,往往会导致时延过长,最终的帧率过低或者精度不足。
发明内容
本发明的目的在于提供一种基于FPGA的多路AXI总线的控制方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种基于FPGA的多路AXI总线的控制方法,将逻辑模块化,整个架构采用4根AXI总线和DDR产生数据交互,第一根AXI总线部署目标检测算法,即2D网络,包括图片数据、卷积计算模块和量化模块;
第二根AXI总线用来传输对应的权重数据,2D网络最终的计算结果通过第一根和第二根AXI总线写回DDR,完成整个数据的交互;
第三根AXI总线部署激光点云网络,即3D网络,3D网络的计算结果通过第三根AXI总线写回DDR,结果作为2D网络的输入;
第四根总线部署3D网络的前向计算,最终的结果由第四根DDR总线写回DDR内存,并且数据作为3D网络的输入;
具体方法如下:
首先arm将4帧图片数据放入由参数设置的DDR地址,并且把4次运行指令参数传入到第四根AXI总线上的出入栈模块,第4根线开始启动并进行相应的计算,模块输出由第四根AXI总线写回DDR,并且地址偏移4个buff,每当完成一个buff的数据产生一个中断信号通知第三根AXI总线启动3D计算模块,并且第四根AXI总线去读取第2个buff地址上的数据,继续自己的前向计算过程,第三根AXI总线从相应的地址读取前向计算好的数据,待全部计算完成写回DDR,产生一个中断信号通知第一和第二根AXI总线的2D模块启动,并且自己读取前向计算好后的第2个buff的数据进行3D网络的运算,当2D网络完成计算后,通过第一根和第二根AXI总线将数据写回相应的DDR地址,产生中断信号通知arm继续向FPGA传输运行指令参数和将原始数据放入相应的buff地址,此时四根AXI总线都在同时工作,当前向计算运行地帧率数据时,3D计算在运行第2帧率数据,而2D在计算第1帧数据,四根AXI总线以三级流水的方式并行计算。
作为本发明进一步的方案:每根所述AXI总线的输入端均设置一个出入栈模块,用来存储arm端通过写寄存器传输来的运行指令参数,每当有一帧数据运行指令存入栈内,内部的计数器就会加1。
作为本发明再进一步的方案:每根所述AXI总线计算结束时均产生一个终止信号,表明所在的AXI总线运行结束,且将出入栈模块内存储的运行指令参数的计数器减1,当每根AXI总线的栈内模块运行指令参水参数完全为0时,表明所有的数据都运行完毕,整个程序结束。
作为本发明再进一步的方案:所述控制方法将预先设定好的参数转换为二进制文件并输入进程序,需要偏移地址buffer的数量自行设置。
作为本发明再进一步的方案:所述控制方法通过外部的参数控制,将AXI总线读取和写回预先设定好的DDR内存地址。
与现有技术相比,本发明的有益效果是:
本发明通过控制多路AXI总线并行工作,一条AXI总线对应一个网络,为其传输数据访问DDR内存。不同的网络通过各自的AXI总线进行数据访问,互不影响各自的计算过程,以多级流水的方式并行计算,不需要互相等待。这样的设计在不需要过多花费资源和损失算法精度的情况下,降低了整个FPGA的时延并且提高了帧率,满足了相应的场景实际需求。
附图说明
图1为FPGA和GPU以及ASIC的对比示意图。
图2为网络整体架构示意图。
图3为地址偏移控制参数示意图。
图4为多路AXI总线整体运行顺序示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1~4,本发明实施例中,一种基于FPGA的多路AXI总线的控制方法,将所有的逻辑模块化,整体架构如图2所示,首先整个架构采用4根AXI总线和DDR产生数据交互,第一根AXI总线部署目标检测算法(2D网络),主要包括图片数据(FeatureMap),卷积计算模块和量化模块;第二根AXI总线主要用来传输对应的权重数据,2D网络最终的计算结果通过第一根和第二根AXI总线写回DDR,完成整个数据的交互。第三根AXI总线主要部署激光点云网络(3D网络),3D网络的计算结果通过第三根AXI总线写回DDR,这部分结果作为2D网络的输入。第四根总线主要部署3D网络的一些前向计算,最终的结果由第四根DDR总线写回DDR内存,并且这部分数据作为3D网络的输入。
为了能让四根总线同时运行,本发明在每根AXI总线的输入端设置了一个出入栈模块,主要用来存储arm端通过写寄存器传输来的运行指令参数,每当有一帧数据运行指令存入栈内,内部的计数器就会加1。除此以外,每根线计算结束时都会产生一个终止信号,表明所在的AXI总线运行结束,并且会将出入栈模块内存储的运行指令参数的计数器减1,当每根AXI总线的栈内模块运行指令参水参数完全为0时,表明所有的数据都运行完毕,整个程序结束。
本发明的控制方法还可以通过外部的参数控制,可以将AXI总线读取和写回预先设定好的DDR内存地址,也就是AXI总线的地址偏移,地址偏移量设置如图3所示,这个控制方法将预先设定好的参数转换为二进制文件并输入进程序,具体需要偏移多少个地址buffer可以根据实际情况进行设置,简单方便,不需要额外修改整个FPGA程序,提高了效率。
本发明的控制方法实际应用在上述的2D网络和3D网络的效果如图4所示,其中方框内的数字表示每帧的原始数据,首先arm将4帧图片数据放入由参数设置的DDR地址,并且把4次运行指令参数传入到第四根AXI总线上的出入栈模块,此时第4根线开始启动并进行相应的计算,模块输出由第四根AXI总线写回DDR,并且地址偏移4个buff,每当完成一个buff的数据产生一个中断信号通知第三根AXI总线启动3D计算模块,并且第四根AXI总线去读取第2个buff地址上的数据,继续自己的前向计算过程。第三根AXI总线从相应的地址读取前向计算好的数据,待全部计算完成写回DDR,产生一个中断信号通知第一和第二根AXI总线的2D模块启动,并且自己读取前向计算好后的第2个buff的数据进行3D网络的运算。当2D网络完成计算后,通过第一根和第二根AXI总线将数据写回相应的DDR地址,产生中断信号通知arm继续向FPGA传输运行指令参数和将原始数据放入相应的buff地址。
此时四根AXI总线都在同时工作,当前向计算运行地帧率数据时,3D计算在运行第2帧率数据,而2D在计算第1帧数据,四根AXI总线以三级流水的方式并行计算。本发明所述的多路AXI总线的控制方法在不增加资源的情况下,使不同的网络并行计算,降低了整个计算过程的时延并且提高了帧率。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (5)
1.一种基于FPGA的多路AXI总线的控制方法,其特征在于,将逻辑模块化,整个架构采用4根AXI总线和DDR产生数据交互,第一根AXI总线部署目标检测算法,即2D网络,包括图片数据、卷积计算模块和量化模块;
第二根AXI总线用来传输对应的权重数据,2D网络最终的计算结果通过第一根和第二根AXI总线写回DDR,完成整个数据的交互;
第三根AXI总线部署激光点云网络,即3D网络,3D网络的计算结果通过第三根AXI总线写回DDR,结果作为2D网络的输入;
第四根总线部署3D网络的前向计算,最终的结果由第四根DDR总线写回DDR内存,并且数据作为3D网络的输入;
具体方法如下:
首先arm将4帧图片数据放入由参数设置的DDR地址,并且把4次运行指令参数传入到第四根AXI总线上的出入栈模块,第4根线开始启动并进行相应的计算,模块输出由第四根AXI总线写回DDR,并且地址偏移4个buff,每当完成一个buff的数据产生一个中断信号通知第三根AXI总线启动3D计算模块,并且第四根AXI总线去读取第2个buff地址上的数据,继续自己的前向计算过程,第三根AXI总线从相应的地址读取前向计算好的数据,待全部计算完成写回DDR,产生一个中断信号通知第一和第二根AXI总线的2D模块启动,并且自己读取前向计算好后的第2个buff的数据进行3D网络的运算,当2D网络完成计算后,通过第一根和第二根AXI总线将数据写回相应的DDR地址,产生中断信号通知arm继续向FPGA传输运行指令参数和将原始数据放入相应的buff地址,此时四根AXI总线都在同时工作,当前向计算运行地帧率数据时,3D计算在运行第2帧率数据,而2D在计算第1帧数据,四根AXI总线以三级流水的方式并行计算。
2.根据权利要求1所述的一种基于FPGA的多路AXI总线的控制方法,其特征在于,每根所述AXI总线的输入端均设置一个出入栈模块,存储arm端通过写寄存器传输来的运行指令参数,每当有一帧数据运行指令存入栈内,内部的计数器就会加1。
3.根据权利要求1所述的一种基于FPGA的多路AXI总线的控制方法,其特征在于,每根所述AXI总线计算结束时均产生一个终止信号,表明所在的AXI总线运行结束,且将出入栈模块内存储的运行指令参数的计数器减1,当每根AXI总线的栈内模块运行指令参水参数完全为0时,表明所有的数据都运行完毕,整个程序结束。
4.根据权利要求1所述的一种基于FPGA的多路AXI总线的控制方法,其特征在于,所述控制方法将预先设定好的参数转换为二进制文件并输入进程序,需要偏移地址buffer的数量自行设置。
5.根据权利要求1所述的一种基于FPGA的多路AXI总线的控制方法,其特征在于,所述控制方法通过外部的参数控制,将AXI总线读取和写回预先设定好的DDR内存地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010653912.4A CN111814680B (zh) | 2020-07-08 | 2020-07-08 | 一种基于fpga的多路axi总线的控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010653912.4A CN111814680B (zh) | 2020-07-08 | 2020-07-08 | 一种基于fpga的多路axi总线的控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111814680A true CN111814680A (zh) | 2020-10-23 |
CN111814680B CN111814680B (zh) | 2023-09-26 |
Family
ID=72841972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010653912.4A Active CN111814680B (zh) | 2020-07-08 | 2020-07-08 | 一种基于fpga的多路axi总线的控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111814680B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104915322A (zh) * | 2015-06-09 | 2015-09-16 | 中国人民解放军国防科学技术大学 | 一种卷积神经网络硬件加速方法及其axi总线ip核 |
CN105468547A (zh) * | 2015-11-18 | 2016-04-06 | 哈尔滨工业大学 | 一种基于axi总线的便捷可配置帧数据存取控制系统 |
US20170302438A1 (en) * | 2016-04-15 | 2017-10-19 | The Florida International University Board Of Trustees | Advanced bus architecture for aes-encrypted high-performance internet-of-things (iot) embedded systems |
US20170357570A1 (en) * | 2016-06-10 | 2017-12-14 | Arm Limited | Storing Arrays of Data in Data Processing Systems |
EP3346425A1 (en) * | 2017-01-04 | 2018-07-11 | STMicroelectronics Srl | Hardware accelerator engine and method |
CN109300081A (zh) * | 2018-09-19 | 2019-02-01 | 中国船舶重工集团公司第七0九研究所 | 一种基于fpga的图形并发传输系统及方法 |
CN110765906A (zh) * | 2019-10-12 | 2020-02-07 | 上海雪湖科技有限公司 | 一种基于关键点的行人检测算法 |
-
2020
- 2020-07-08 CN CN202010653912.4A patent/CN111814680B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104915322A (zh) * | 2015-06-09 | 2015-09-16 | 中国人民解放军国防科学技术大学 | 一种卷积神经网络硬件加速方法及其axi总线ip核 |
CN105468547A (zh) * | 2015-11-18 | 2016-04-06 | 哈尔滨工业大学 | 一种基于axi总线的便捷可配置帧数据存取控制系统 |
US20170302438A1 (en) * | 2016-04-15 | 2017-10-19 | The Florida International University Board Of Trustees | Advanced bus architecture for aes-encrypted high-performance internet-of-things (iot) embedded systems |
US20170357570A1 (en) * | 2016-06-10 | 2017-12-14 | Arm Limited | Storing Arrays of Data in Data Processing Systems |
EP3346425A1 (en) * | 2017-01-04 | 2018-07-11 | STMicroelectronics Srl | Hardware accelerator engine and method |
CN109300081A (zh) * | 2018-09-19 | 2019-02-01 | 中国船舶重工集团公司第七0九研究所 | 一种基于fpga的图形并发传输系统及方法 |
CN110765906A (zh) * | 2019-10-12 | 2020-02-07 | 上海雪湖科技有限公司 | 一种基于关键点的行人检测算法 |
Also Published As
Publication number | Publication date |
---|---|
CN111814680B (zh) | 2023-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109086867B (zh) | 一种基于fpga的卷积神经网络加速系统 | |
CN111176727B (zh) | 计算装置以及计算方法 | |
CN108647773B (zh) | 一种可重构卷积神经网络的硬件互连系统 | |
CN109522052B (zh) | 一种计算装置及板卡 | |
CN100449522C (zh) | 基于多fpga的矩阵乘法并行计算系统 | |
CN103218348B (zh) | 快速傅里叶变换处理方法和系统 | |
CN112633490B (zh) | 执行神经网络模型的数据处理装置、方法及相关产品 | |
CN102508803A (zh) | 一种矩阵转置存储控制器 | |
CN111832718A (zh) | 芯片架构 | |
CN112686379B (zh) | 集成电路装置、电子设备、板卡和计算方法 | |
CN103714044A (zh) | 一种基于片上网络的高效率矩阵转置簇以及转置方法 | |
CN114092338B (zh) | 图像缩放快速计算方法 | |
JPH0514936B2 (zh) | ||
CN111079934A (zh) | 应用于环域上误差学习加密算法的数论变换单元和方法 | |
CN111124995A (zh) | 通过人工智能处理器处理一维复数数组的方法和设备 | |
CN114881217A (zh) | 一种基于fpga的通用型卷积神经网络加速器及其系统 | |
CN113626080B (zh) | 数据处理装置以及相关产品 | |
CN110413561A (zh) | 数据加速处理系统 | |
CN111814680A (zh) | 一种基于fpga的多路axi总线的控制方法 | |
CN108960203B (zh) | 一种基于fpga异构计算的车辆检测方法 | |
CN209784995U (zh) | 大数据运算加速系统和芯片 | |
CN112162942B (zh) | 一种多模态图像处理硬件加速系统 | |
WO2021082723A1 (zh) | 运算装置 | |
CN111382856B (zh) | 数据处理装置、方法、芯片及电子设备 | |
CN111382852B (zh) | 数据处理装置、方法、芯片及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |