CN111814680B - 一种基于fpga的多路axi总线的控制方法 - Google Patents

一种基于fpga的多路axi总线的控制方法 Download PDF

Info

Publication number
CN111814680B
CN111814680B CN202010653912.4A CN202010653912A CN111814680B CN 111814680 B CN111814680 B CN 111814680B CN 202010653912 A CN202010653912 A CN 202010653912A CN 111814680 B CN111814680 B CN 111814680B
Authority
CN
China
Prior art keywords
data
axi bus
axi
network
bus
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.)
Active
Application number
CN202010653912.4A
Other languages
English (en)
Other versions
CN111814680A (zh
Inventor
江超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Xuehu Technology Co ltd
Original Assignee
Shanghai Xuehu Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Xuehu Technology Co ltd filed Critical Shanghai Xuehu Technology Co ltd
Priority to CN202010653912.4A priority Critical patent/CN111814680B/zh
Publication of CN111814680A publication Critical patent/CN111814680A/zh
Application granted granted Critical
Publication of CN111814680B publication Critical patent/CN111814680B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/955Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/07Target 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)
  • Image Processing (AREA)
  • Small-Scale Networks (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的多路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网络),主要包括图片数据(Feature Map),卷积计算模块和量化模块;第二根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内存地址。
CN202010653912.4A 2020-07-08 2020-07-08 一种基于fpga的多路axi总线的控制方法 Active CN111814680B (zh)

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 CN111814680A (zh) 2020-10-23
CN111814680B true 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 (5)

* Cited by examiner, † Cited by third party
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总线的便捷可配置帧数据存取控制系统
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 上海雪湖科技有限公司 一种基于关键点的行人检测算法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
GB2551188B (en) * 2016-06-10 2020-06-03 Advanced Risc Mach Ltd Storing and Reading Arrays of Data in Data Processing Systems Comprising a Plurality of Memory Banks

Patent Citations (5)

* Cited by examiner, † Cited by third party
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总线的便捷可配置帧数据存取控制系统
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
CN111814680A (zh) 2020-10-23

Similar Documents

Publication Publication Date Title
CN109522052B (zh) 一种计算装置及板卡
CN109543832B (zh) 一种计算装置及板卡
CN110852428B (zh) 基于fpga的神经网络加速方法和加速器
CN103714044A (zh) 一种基于片上网络的高效率矩阵转置簇以及转置方法
CN111488976A (zh) 神经网络计算装置、神经网络计算方法及相关产品
CN109670581B (zh) 一种计算装置及板卡
CN111079908B (zh) 片上网络数据处理方法、存储介质、计算机设备和装置
CN111814680B (zh) 一种基于fpga的多路axi总线的控制方法
CN111079934B (zh) 应用于环域上误差学习加密算法的数论变换单元和方法
CN108647780B (zh) 面向神经网络的可重构池化操作模块结构及其实现方法
CN111767995A (zh) 运算方法、装置及相关产品
CN111488963A (zh) 神经网络计算装置和方法
CN116431562B (zh) 一种基于加速处理器的多头注意力机制融合计算分配方法
US20230128421A1 (en) Neural network accelerator
CN101950276B (zh) 一种存储器访问装置及其程序执行方法
WO2021082723A1 (zh) 运算装置
CN111368967A (zh) 一种神经网络计算装置和方法
CN111026258B (zh) 处理器及降低电源纹波的方法
CN111382856B (zh) 数据处理装置、方法、芯片及电子设备
CN111368990B (zh) 一种神经网络计算装置和方法
CN102681796B (zh) 数据多级流水算法模块中的ram分布结构
CN111382852A (zh) 数据处理装置、方法、芯片及电子设备
CN113626083B (zh) 数据处理装置以及相关产品
CN115617717B (zh) 一种基于忆阻器的协处理器设计方法
CN111382855B (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