CN113033087B - 一种基于fpga用于光神经网络的高速数据传输方法 - Google Patents

一种基于fpga用于光神经网络的高速数据传输方法 Download PDF

Info

Publication number
CN113033087B
CN113033087B CN202110286886.0A CN202110286886A CN113033087B CN 113033087 B CN113033087 B CN 113033087B CN 202110286886 A CN202110286886 A CN 202110286886A CN 113033087 B CN113033087 B CN 113033087B
Authority
CN
China
Prior art keywords
data
dac
adc
neural network
input
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
CN202110286886.0A
Other languages
English (en)
Other versions
CN113033087A (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.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
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 University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN202110286886.0A priority Critical patent/CN113033087B/zh
Publication of CN113033087A publication Critical patent/CN113033087A/zh
Application granted granted Critical
Publication of CN113033087B publication Critical patent/CN113033087B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/343Logical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/0001Selecting arrangements for multiplex systems using optical switching
    • H04Q11/0062Network aspects
    • H04Q11/0071Provisions for the electrical-optical layer interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S10/00Systems supporting electrical power generation, transmission or distribution
    • Y04S10/50Systems or methods supporting the power network operation or management, involving a certain degree of interaction with the load-side end user applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Geometry (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Image Processing (AREA)

Abstract

本发明属于FPGA技术领域,具体涉及一种基于FPGA用于光神经网络的高速数据传输方法。本发明的方法,用于解决难以通过提高FPGA时钟频率来提高数模转换接口带宽的问题。为了使基于FPGA构建的数模转换接口带宽匹配高速DAC和ADC的带宽,以达到GSPS级别的采样率,本发明采取提高数模转换接口位宽的方式来满足光神经网络对于高带宽数模转换接口的需求,即采取增加DAC和ADC每个周期采样点个数的方式。

Description

一种基于FPGA用于光神经网络的高速数据传输方法
技术领域
本发明属于FPGA技术领域,具体涉及一种基于FPGA用于光神经网络的高速数据传输方法。
背景技术
人工卷积神经网络是当前人工智能学习领域最为重要的模型,被广泛应用在图像分类、识别等场景中,并且有很高的准确度。人工卷积神经网络是众所周知的计算密集型网络,而卷积操作占总操作数的90%以上,其中涉及到大量密集矩阵相乘等大规模运算,导致计算过程消耗大量存储和计算资源。因此,传统的通用处理器难以为卷积神经网络提供足够的算力,运算效率很低,不适合作为卷积神经网络的计算平台。
近年来光学计算由于其速度快、并行性和功耗低的特点,被逐渐运用在神经网络的加速技术中,光电神经网络应运而生。光电神经网络的核心是马赫曾德尔干涉仪(MZI),工作原理是DAC接收数字输入信号,将其转换为模拟电压,并使用该电压来驱动光调制器。从光源发出的相干光经过调制器调制后进入MZI计算阵列。进入MZI的光分为两部分,每半部分的相位调整不同。将具有不同相位的信号组合会导致相长或相消干涉,使得通过MZI的光的强度发生改变,这一过程等效于矩阵乘法运算。从MZI计算阵列输出的光到达光电二极管,光电二极管的信号通过ADC馈送,以便与其余数字电路相接。
由于该网络光学部分只能实现卷积的功能,因此神经网络的剩余部分需要经光电转换后的电信号在电神经网络中传播实现。在光神经网络中,矩阵运算在光速下进行,因此,整个光电神经网络的计算速度瓶颈主要在于数模转换接口的速度上,不仅需要高速的DAC和ADC支撑,并且需要足够带宽的数字信号数据流进行匹配。
FPGA是一种可以根据不同需求不同逻辑进行硬件电路编程的半定制电路开发平台,具有现场可编程、硬件资源丰富、开发周期短等特点,既解决了定制电路灵活性的不足,又克服了原有可编程器件门电路数有限的缺点。目前以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA上进行测试,是现代IC设计验证的技术主流。
目前用于实现高速信号电路设计的主流硬件平台不是单一的FPGA,而是集成了CPU与FPGA的异构SoC(System-on-Chip,片上系统),该系统主要由两部分组成,一部分是PS(Processing System)端,由ARM处理器、DDR(Double Data Rate Synchronous DynamicRandom Access Memory,双倍速率同步动态随机存储器)和外设等构成的软件端,另一部分是PL(Programmable Logic)端,即FPGA可编程硬件逻辑端。该片上异构系统充分利用了ARM灵活强大的控制能力和FPGA强大的计算能力,为利用高速DAC和ADC进行数据传输的光电神经网络的实际应用提供了非常好的辅助平台。
发明内容
由于光计算的采样频率在几GHz甚至十几GHz,而FPGA的时钟频率最高也不到1GHz,因此本发明提出了一种基于FPGA用于光神经网络的高速数据传输方法,用于解决难以通过提高FPGA时钟频率来提高数模转换接口带宽的问题。
本发明的技术方案为:
一种基于FPGA用于光神经网络的高速数据传输方法,其特征在于,包括以下步骤:
S1、对每次输入的原始数据,在帧头进行特征标记,使ADC采样后根据特征标记进行有效数据判断;
S2、对步骤S1获得的数据进行末尾补0,使得相邻输入到DAC中的数据隔离;
S3、对补0后获得的数据进行位宽拓展,位宽拓展是以DAC和ADC的采样率匹配光神经网络的高速数据传输为目的;
S4、将位宽拓展后的数据输入DAC,经DAC转换后进行光神经网络卷积计算;
S5、ADC对光神经网络卷积计算结果进行采样,输出ADC的转换结果,并通过特征标记判断是否为有效数据。
进一步的,所述步骤S1的具体方法为:
假设输入的原始数据为宽度和高度都是28个像素点的数字图片,即一张输入图片有784个有效像素点,在每一张输入图片的第1个像素点前插入4个像素点的帧头特征数据作为ADC采样后的有效输出数据判别。
进一步的,所述步骤S2的具体方法为:
假设DAC具有4个通道,每个通道的输入数据位宽为256bit,进行末尾补0的方法为,在每1张图片788个像素点之后补充27×4=108个数值为0的像素点数据,即每1张图片一共896个像素点数据作为输入数据。
进一步的,所述步骤S3的具体方法为:
对896个点的数据均进行位宽拓展,从8bit拓展成16bit,其中原始的8bit数据放在16bit的高8bit位。
进一步的,所述步骤S4的具体方法为:
通过DMA传输,将896个16bit的数据从DDR存储器传输到FPAG可编程硬件逻辑端,之后通过DAC进行数模转换,经DAC转换后进行光神经网络卷积计算。
本发明的有益效果为,使基于FPGA构建的数模转换接口带宽匹配高速DAC和ADC的带宽,以达到GSPS级别的采样率。
附图说明
图1为本发明提出的一种基于FPGA用于光神经网络的高速数据传输方法系统框架图;
图2为本发明提出的一种基于FPGA用于光神经网络的高速数据传输方法的系统PS侧控制及数据预处理流程图;
图3为本发明提出的一种基于FPGA用于光神经网络的高速数据传输方法的系统PL侧DMA控制及数据转换模块原理图;
图4为本发明提出的一种基于FPGA用于光神经网络的高速数据传输方法的系统PL侧DAC输入数据缓存处理模块原理图;
图5为本发明提出的一种基于FPGA用于光神经网络的高速数据传输方法的系统PL侧ADC输出数据缓存处理模块原理图;
图6为本发明提出的一种基于FPGA用于光神经网络的高速数据传输方法的系统PL侧ADC数据缓存处理模块中的ADC采样数据处理模块原理图;
图7为本发明提出的一种基于FPGA用于光神经网络的高速数据传输方法的数据处理流程示意图。
具体实施方式
下面结合附图和实施例对本发明进行详细的描述。
本发明的主要方式是采取提高数模转换接口位宽的方式来满足光神经网络对于高带宽数模转换接口的需求,即采取增加DAC和ADC每个周期采样点个数的方式。
实施例
本实施例中选取的DAC和ADC器件为集成在Xilinx公司的ZCU111开发板上的配套器件,DAC的精度为14bit,ADC的精度为12bit。在满足输入是2的N次幂的条件下,选择DAC的最低输入数据位宽为16bit,其中取高14bit数据作为DAC有效输入数据;ADC同理,选择位宽为16bit作为接收ADC采样输出数据的位宽,其中取高12bit数据作为ADC有效输出数据。假设每个周期DAC或ADC的采样点个数为N,则对于单个通道的DAC或ADC来说,输入或输出数据位宽为16N bit。理想情况下,N的取值越大,则每个周期DAC或ADC的采样点个数越多,相同频率下数模转换接口的带宽越大。在本实施例中,对于DAC,N=16,即FPGA传输给单个通道DAC的输入数据位宽为256bit。对于ADC,N=8,即FPGA接受单个通道ADC的输出数据位宽为128bit。在本实施例中,DAC时钟频率为245.76MHz,ADC时钟频率为491.52MHz,DAC和ADC的采样率均为3.93216GSPS,足够作为光神经网络的高速数模转换数据传输接口。
图1为本发明提出的一种基于FPGA用于光神经网络的高速数据传输方法系统框架图;从整个系统的灵活性和实时演示性考虑,系统的起始输入可选择以上位机的形式实现,通过以太网口或是PCIe(Peripheral Component Interconnect express,一种高速串行计算机扩展总线标准)的连接方式将输入数据高速传输到SoC的PS侧DDR存储器中;或是直接放在SoC片上系统的PS端实现,将输入数据存储在SD卡中,再初始化到DDR存储器中,以便随时改变系统的输入数据。在整个SoC片上系统中,PS侧的ARM处理器作为整个系统的主控模块,主要用于调度DMA(Direct Memory Access,直接存储器访问)实现PS端DDR存储器和PL端缓存之间大量数据的高速传输。由于PS侧端ARM处理器是32位的,出于开发便利性考虑,本实施例中选择DMA的数据位宽为32bit,如果需要DMA达到更高数据带宽要求,则可以提高DMA的数据位宽,最大可达到1024bit,相应的则需要在PS端配置操作系统以开发驱动。其次,ARM处理器还参与DAC输入数据流和ADC输出数据流的控制。图1中加粗箭头为数据流信号,细箭头为控制信号。DAC的输出信号作为光神经网络的输入信号,光神经网络的输出信号作为ADC的输入信号。
虽然光计算过程耗时短且延迟时间固定,但是延迟时间难以确定,尤其是在高频条件下,ADC启动后一直在采样,存在无法确定从何时开始的数据是经过卷积计算后的第一个点的输出数据的问题。由于神经网络每次的输入通常是相同数据量的数据对象,因此可对每次输入的数据对象按数据点为单位进行处理。本实施例中,网络的输入是宽度和高度都是28个像素点的手写数字图片,即一张输入图片有784个有效像素点,针对上述问题,对输入数据添加数据协议,在每一张输入图片的第1个像素点前插入4个像素点的帧头特征数据作为ADC采样后的有效输出数据判别,添加帧头特征数据后,一张输入图片有788个有效像素点数据。若输入数据量更改,则可根据本发明所提供方法,对设计进行相应修改。由于ADC采样输出数据避免不了有误差,因此帧头特征数据需要事先确定经过卷积计算后的对应理想值,并确定一定的阈值范围以便后续从ADC采样点中进行帧头判别。每个像素点数据位宽为8bit,因为DAC的精度为14bit,ADC的精度为12bit,所以需要对输入数据进行位宽拓展至16bit,为了让DAC输出摆幅明显,选择将8bit有效像素点数据放在16bit的高8bit位。
在本实施例中,一共有4个通道的DAC,每个通道的DAC输入数据位宽为256bit,每次输入包含了16个16bit数据(有效数据量为16个8bit数据),由于788÷4÷16=12余20,20÷4=5,意味着每个通道有12个周期16个像素点的数据输入,第13个周期中只有前5个数据是有效像素点数据。由于每张输入图片不是连续输入,并且DAC的输入前级是异步FIFO,异步FIFO的最后一次输出会一直保持直至有新的有效数据输出,若输出不为0则会向DAC不断输入最后一个周期的像素点输入值,对DAC输出造成干扰。因此对每个通道DAC输入补27个数值为0的像素点,那么每个通道的DAC均有14个周期16个点完全有效的数据输入,且每1张图片与下1张图片之间DAC的输出为0,即是在每1张图片788个像素点之后补充27×4=108个数值为0的像素点数据,每1张图片一共896个像素点数据作为输入数据。
图2为本发明提出的一种基于FPGA用于光神经网络的高速数据传输方法系统PS侧控制及数据预处理流程图;首先进行系统初始化和数据输入到PS侧DDR。然后在第1个像素点数据之前插入4个帧头特征数据,以上一共788个点的数据为有效像素点数据,再在第788个有效像素点数据之后插入108个数值为0的数据。接着对以上896个点的数据均进行位宽拓展,从8bit拓展成16bit,其中原始的8bit数据放在16bit的高8bit位。上述流程完成之后启动DMA传输,把896个16bit的数据从PS端DDR存储器中搬运至PL端缓存。当PS端读取DMA控制模块的BUSY信号为低电平时,表示最后1个数据已经传输到PL端缓存中,此时启动DAC使能,开始将PL端数据缓存发送给DAC进行数模转换功能。再启动ADC使能信号,进行ADC采样数据处理并启动DMA从PS端到PL端的数据传输,当PS端读取DMA控制模块的DONE信号为高电平时,表示PS端DDR中已存放了ADC采样的788个有效像素点数据。至此完成了本发明所构建系统的从输入到输出的一次完整处理。
图3为本发明提出的一种基于FPGA用于光神经网络的高速数据传输方法系统PL侧DMA控制及数据转换模块原理图;该模块主要包含了1个DMA控制模块和2个位宽转换模块。由于本实施例中采用的光学卷积神经网络为4个2×2的卷积核,横向和纵向的步长均为2,一张28×28的图片经过卷积计算后的输出数据仍然是28×28规模大小,即每个周期需要同时从输入图片中取4个像素点数据输入到卷积核中进行卷积计算,卷积计算后4个输出数据同时输出,因此使用4个通道的DAC和ADC进行相应的数模转换,意味着1个时钟周期有4个16bit数据输入到DAC或是从ADC输出。M_AXIS_MM2S_DATA信号中MM2S(Memory Mapped toStream,内存向数据流映射)表示从PS端DDR传输到PL端缓存的数据,S_AXIS_S2MM_DATA信号中S2MM(Stream to Memory Mapped,数据流向内存映射)表示从PL端缓存的数据传输到PS端DDR的数据。由于DMA的数据位宽是32bit,因此用2个DMA数据位宽转换模块,1个将每2个时钟周期从PS端DDR传输过来的32bit数据合并成1个64bit数据,再传输给DAC数据处理模块,另1个将1个从ADC数据处理模块输出的64bit数据拆分2个时钟周期的32bit数据传输至PS侧DDR。M_AXIS_MM2S_LAST信号表示本次数据流的最后一个数据,当仍有数据正从PS端传输数据到PL端时,该信号保持为低电平,DMA控制模块的输出信号BUSY信号变为高电平,此时PS端不会发出DAC读数据的使能信号。当ADC最后一个数据从PL端缓存读出时,DMA使能信号的输出信号DONE信号变为高电平,表示PS端DDR中已存放了ADC采样的788个有效像素点数据,可将卷积计算后的采样数据进行后续操作。
图4为本实施例中在SoC片上系统PL侧搭建的DAC输入数据处理模块图,该模块主要包含了1个DAC输入使能控制模块、4个数据位宽转换模块和4个数据缓存模块,各模块功能细节及工作流程描述如下:每个周期从DMA数据位宽转换模块传输过来的64bit数据平均分成4个16bit数据,即4个像素点数据,分别输入到4个位宽转换模块中。每个位宽转换模块将16个周期的16bit输入转换成1个周期的256bit输出,再分别输入到256bit位宽数据缓存模块中。数据缓存模块由异步FIFO(First Input First Output,数据先入先出)构成,异步FIFO的输入时钟为PL端系统时钟,输出时钟为DAC时钟,4个数据缓存模块的后端分别与4个通道的DAC输入相连。待DMA完成1张输入图片所有896个像素点数据从PS端搬运至PL端并存放在4个异步FIFO中后(每个异步FIFO一共存放896÷4=224个有效数据),PS端以AXI-Lite总线写寄存器的方式启动DAC输入使能控制模块,模块的输出信号作为每个数据缓存模块中异步FIFO的m端ready信号,该信号在每个异步FIFO将197个有效数据读出传输至每个通道的DAC之前一直保持高电平有效,当每个异步FIFO的m端last信号输出高有效后,ready信号输出为低电平表示无效,至此1张输入图片数据已分别传输到4个通道的DAC输入。
图5为本实施例中在SoC片上系统PL侧搭建的ADC输出数据处理模块图,该模块主要包含了ADC采样数据处理模块、ADC采样数据读取模块和数据缓存模块,其中ADC采样数据处理模块的详细结构由图6所示,各模块功能细节及工作流程描述如下:首先通过PS端以AXI-Lite总线写寄存器的方式将ADC采样配置信息传输至帧头判别模块,配置信息包含了用户自定义用于判别帧头的上下阈值、用户自定义ADC采样数据长度以及ADC使能输出信号。本实施例中每个通道ADC的位宽为128bit,即每个周期8个采样点,每个采样点16bit。当ADC使能输出信号高有效时,4个通道的ADC采样信号输出分别进入4个帧头判别模块中,假设ADC的当前采样周期中包含帧头特征数据,则有三个进程同时开始进行:1.由于不能保证帧头出现在第一个采样点,即出现在128bit的[15:0],因此每次对当前采样周期的8个采样点同时进行帧头特征数据判别,数值落在用于判别帧头帧尾的上下阈值范围中的即是帧头特征数据,并且由此生成帧头offset数据,数值等于帧头采样点的序号值,例如本次采样周期中第3个采样点被判别是帧头特征数据,则offset=2(0~7);2.开始将ADC采样信号输出数据传输至双口RAM中进行缓存,双口RAM输入a端数据位宽为128bit,输出b端位宽为16bit,b端地址位宽比a端多3bit,即双口RAM同时承担数据位宽转换的作用,b端将采样数据每个周期按16bit顺序输出。双口RAM的b端地址需要加上offset值,以此保证每次从b端读出的采样点数据为输入图像的有效像素点值,而不包括帧头特征数据前的无效数据;3.帧头判别模块内的计数器开始计数,计数直到每个通道一共197个像素点数据缓存进双口RAM中后,ADC采样数据读取模块开始读数,该模块内计数器开始计数,计数值作为双口RAM的b端地址初始值(未加offset),每个周期从每个通道的双口RAM的b端读出1个16bit有效像素点数据,并按顺序合并成1个64bit数据,经过数据缓存模块(由FIFO构成)缓存后传输给DMA数据位宽转换模块,最后传输回系统PS端。当4个双口RAM中最后一个ADC采样输出数据被读出后,4个ADC采样数据处理模块输出一个高电平信号,合并成一个last[3:0]信号,此时last=4’hF,停止读取数据,DONE信号由低电平变为高电平,DMA停止从PL端传输数据到PS端,至此完成了一次整个处理流程。
图7为本发明提出的一种基于FPGA用于光神经网络的高速数据传输方法的数据处理流程示意图。如图所示,白色空心圆圈表示一次原始数据输入的784个像素点,黑色实心圆圈表示4个帧头特征数据,以上为788个有效像素点数据,中间为0的白色圆圈表示有效像素点数据末尾插入的108个全0数据;白色空心三角形数据和黑色实心三角形分别表示经过光神经网络卷积计算后的784个原始像素点数据和4个帧头特征数据。数据处理流程如下:一次原始数据输入的784个像素点数据经过插入4个帧头特征数据、末尾插入108个全0数据和8bit位宽拓展至16bit后从SoC系统的PS端传输到PL端DAC输入数据缓存中,图中展示了1个DAC输入数据缓存的异步FIFO,以同样方式缓存数据的异步FIFO一共有4个,分别对应1个DAC通道。数据经过DAC输出、光神经网络卷积计算和ADC采样后存放在ADC输出数据缓存中,图中展示了1个ADC输出数据缓存的异步FIFO,其中X1为帧头特征数据前的无效数据个数,X2为本次8个采样点中最后1个有效像素点数据在788中的序号,X2=4×(7-X1),由于不能确定该点数据是帧头特征数据还是原始像素点数据,故用黑白对半的三角形表示,以同样方式缓存数据的异步FIFO一共有4个,分别对应1个ADC通道。最后,数据从数据缓存传输回系统PS端,并按顺序进行排列。

Claims (1)

1.一种基于FPGA用于光神经网络的高速数据传输方法,其特征在于,包括以下步骤:
S1、对每次输入的原始数据,在帧头进行特征标记,使ADC采样后根据特征标记进行有效数据判断;具体方法为:
定义输入的原始数据为宽度和高度都是28个像素点的数字图片,即一张输入图片有784个有效像素点,在每一张输入图片的第1个像素点前插入4个像素点的帧头特征数据作为ADC采样后的有效输出数据判别;
S2、对步骤S1获得的数据进行末尾补0,使得相邻输入到DAC中的数据隔离;具体方法为:
定义DAC具有4个通道,每个通道的输入数据位宽为256bit,进行末尾补0的方法为,在每1张图片788个像素点之后补充27×4=108个数值为0的像素点数据,即每1张图片一共896个像素点数据作为输入数据;
S3、对补0后获得的数据进行位宽拓展,位宽拓展是以DAC和ADC的采样率匹配光神经网络的高速数据传输为目的;具体方法为:
对896个点的数据均进行位宽拓展,从8bit拓展成16bit,其中原始的8bit数据放在16bit的高8bit位;
S4、将位宽拓展后的数据输入DAC,经DAC转换后进行光神经网络卷积计算;具体方法为:
通过DMA传输,将896个16bit的数据从PS端DDR存储器传输到FPAG可编程硬件逻辑端,当PS端读取DMA控制模块的BUSY信号为低电平时,表示最后1个数据已经传输到FPAG可编程硬件逻辑端缓存中,此时启动DAC使能,开始将数据缓存发送给DAC进行数模转换功能,启动ADC使能信号,进行ADC采样数据处理并启动DMA从PS端到FPAG可编程硬件逻辑端的数据传输,当PS端读取DMA控制模块的DONE信号为高电平时,表示PS端DDR中已存放了ADC采样的788个有效像素点数据,之后通过DAC进行数模转换,经DAC转换后进行光神经网络卷积计算;
S5、ADC对光神经网络卷积计算结果进行采样,输出ADC的转换结果,并通过特征标记判断是否为有效数据。
CN202110286886.0A 2021-03-17 2021-03-17 一种基于fpga用于光神经网络的高速数据传输方法 Active CN113033087B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110286886.0A CN113033087B (zh) 2021-03-17 2021-03-17 一种基于fpga用于光神经网络的高速数据传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110286886.0A CN113033087B (zh) 2021-03-17 2021-03-17 一种基于fpga用于光神经网络的高速数据传输方法

Publications (2)

Publication Number Publication Date
CN113033087A CN113033087A (zh) 2021-06-25
CN113033087B true CN113033087B (zh) 2022-06-07

Family

ID=76471368

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110286886.0A Active CN113033087B (zh) 2021-03-17 2021-03-17 一种基于fpga用于光神经网络的高速数据传输方法

Country Status (1)

Country Link
CN (1) CN113033087B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023240540A1 (zh) * 2022-06-16 2023-12-21 深圳华大基因科技有限公司 光计算方法和系统、控制器和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103617140A (zh) * 2013-11-25 2014-03-05 北京航空航天大学 一种神经电信号压缩感知处理验证系统及其构建方法
CN106411918A (zh) * 2016-10-24 2017-02-15 中国电子科技集团公司第二十八研究所 一种基于fpga的多路hdlc‑uart转换系统及方法
CN106647435A (zh) * 2016-09-20 2017-05-10 华南理工大学 多通道数据采样方法、系统和装置
CN108667483A (zh) * 2018-05-22 2018-10-16 电子科技大学 一种用于宽带信号的收发装置
CN109272110A (zh) * 2018-10-31 2019-01-25 上海交通大学 基于光子神经网络芯片的光电融合智能信号处理系统
CN111178518A (zh) * 2019-12-24 2020-05-19 杭州电子科技大学 一种基于fpga的软硬件协同的加速方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI735886B (zh) * 2018-06-05 2021-08-11 美商光子智能股份有限公司 計算系統

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103617140A (zh) * 2013-11-25 2014-03-05 北京航空航天大学 一种神经电信号压缩感知处理验证系统及其构建方法
CN106647435A (zh) * 2016-09-20 2017-05-10 华南理工大学 多通道数据采样方法、系统和装置
CN106411918A (zh) * 2016-10-24 2017-02-15 中国电子科技集团公司第二十八研究所 一种基于fpga的多路hdlc‑uart转换系统及方法
CN108667483A (zh) * 2018-05-22 2018-10-16 电子科技大学 一种用于宽带信号的收发装置
CN109272110A (zh) * 2018-10-31 2019-01-25 上海交通大学 基于光子神经网络芯片的光电融合智能信号处理系统
CN111178518A (zh) * 2019-12-24 2020-05-19 杭州电子科技大学 一种基于fpga的软硬件协同的加速方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Design of a Portable Intrinsically Safe Multichannel Acquisition System for High-Resolution Real-Time Processing HD-sEMG;Umberto Barone等;《IEEE Transactions on Biomedical Engineering》;20130312;第60卷(第8期);第2242-2252页 *
基于FPGA的U-Net网络硬件加速系统的实现;梅亚军等;《电子与封装》;20200617;第20卷(第06期);第1-6页 *
重离子治癌加速器高速实时数据传输系统研制;毛文宇等;《原子能科学技术》;20121220;第46卷(第12期);第1502-1507页 *

Also Published As

Publication number Publication date
CN113033087A (zh) 2021-06-25

Similar Documents

Publication Publication Date Title
CN105208275B (zh) 一种支持流数据片内实时处理的系统
CN102694997A (zh) 一种基于FPGA和Camera Link协议接口的通用数据采集传输板设计
CN104239271A (zh) 一种采用fpga和dsp实现的仿真图像播放器
CN113033087B (zh) 一种基于fpga用于光神经网络的高速数据传输方法
CN110334044A (zh) 一种mipi dphy发送电路及设备
CN105355229A (zh) 异步电路系统对同步随机存储器的写入电路和读取电路
CN201878182U (zh) 一种基于fpga的总线型通信系统
CN113190291A (zh) 一种基于片上网络数据采集的可配置协议转换系统及方法
CN103970692B (zh) RapidIO串行数据处理方法
CN106055512A (zh) 一种mipi接口raw10数据重组编码与读出结构及方法
CN114723023A (zh) 数据通信方法及系统、脉冲神经网络运算系统
CN114359662B (zh) 一种基于异构fpga和融合多分辨率的卷积神经网络的实现方法
CN109873998B (zh) 基于多层次引导滤波的红外视频增强系统
CN111770342B (zh) 一种视频无级缩放方法
CN113961505A (zh) 一种高性能硬件加速和算法验证系统及方法
CN106294225A (zh) 一种数据读取方法、对端设备及控制器
CN112543025A (zh) 基于矩阵化的高速串行ad采样及数据处理系统及方法
CN116318601A (zh) 用于高速信令互连的帧对齐恢复
CN218648885U (zh) 一种高速长线列cmos探测器成像电路
CN203054828U (zh) 数据处理装置
CN104331385A (zh) 一种串行外围接口的高速半硬件实现方法
CN102163967B (zh) 一种对脉冲数据进行采样的方法
CN202495946U (zh) 一种基于物联网管理控制的fpga的总线型通信系统
CN114205510B (zh) 一种图像采集组件并行数据采集方法和系统
Chen et al. Real-time buffering, parallel processing and high-speed transmission system for multi-channel video images based on ADER

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