CN116976404A - 基于卷积神经网络硬件加速器的fpga多通道设计系统及装置 - Google Patents
基于卷积神经网络硬件加速器的fpga多通道设计系统及装置 Download PDFInfo
- Publication number
- CN116976404A CN116976404A CN202310777073.0A CN202310777073A CN116976404A CN 116976404 A CN116976404 A CN 116976404A CN 202310777073 A CN202310777073 A CN 202310777073A CN 116976404 A CN116976404 A CN 116976404A
- Authority
- CN
- China
- Prior art keywords
- channel
- verification
- module
- neural network
- convolutional neural
- 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.)
- Pending
Links
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 58
- 238000013461 design Methods 0.000 title claims abstract description 57
- 238000012795 verification Methods 0.000 claims abstract description 173
- 238000004364 calculation method Methods 0.000 claims abstract description 15
- 238000012360 testing method Methods 0.000 claims description 45
- 230000015654 memory Effects 0.000 claims description 41
- 238000000034 method Methods 0.000 claims description 15
- 238000004891 communication Methods 0.000 claims description 8
- 238000010200 validation analysis Methods 0.000 claims 1
- 238000012545 processing Methods 0.000 abstract description 23
- 230000005540 biological transmission Effects 0.000 abstract description 8
- 238000004088 simulation Methods 0.000 abstract description 6
- 238000011161 development Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本申请公开了一种基于卷积神经网络硬件加速器的FPGA多通道设计系统及装置。通过应用本申请设计的利用双通道验证环境的FPGA设计系统,可以自动在第一个通道配置结束后的数据计算阶段内切换通道配置,数据处理与寄存器配置并行操作FPGA验证请求。具体为一方面可以根据系统中用于表征其当前处理能力的组件启动数量来选择对各个验证请求的处理方式。另一方面也实现了卷积神经网络的仿真在硬件上的实现,进而能够对芯片进行软硬件的协同验证,增加了验证的覆盖率。本申请通过乒乓形式的寄存器配置实现了数据传输与寄存器配置并行运作,提高了卷积神经网络硬件加速器的计算效率。
Description
技术领域
本申请中涉及数据处理技术,尤其是一种基于卷积神经网络硬件加速器的FPGA多通道设计系统及装置。
背景技术
相关技术中,卷积神经网络作为深度学习技术中极具代表性的网络结构之一,主要应用于机器视觉、语音识别和自然语言处理等方面。另一方面,随着FPGA芯片的工艺技术的发展,其速度、容量和密度都大大增加,功耗和成本在不断降低,这使得基于FPGA的原型验证得到广泛的应用。
其中,相关技术中利用卷积神经网络对FPGA进行设计的方式通常存在有数据吞吐量低,寄存器配置时数据需要等待,工作效率低。并且验证灵活性低、可复用性差的问题。而面对卷积神经网络日益多样化的需求,如何设计一种基于卷积神经网络功能自动实现FPGA验证的技术方案,成为了本领域技术人员需要解决的问题。
发明内容
本申请实施例提供一种基于卷积神经网络硬件加速器的FPGA多通道设计系统及装置。用以解决相关技术中存在的,没有能够基于卷积神经网络功能自动实现FPGA多通道数据传输与寄存器配置并行的技术方案的问题。
其中,根据本申请实施例的一个方面,提供的一种基于卷积神经网络的FPGA多通道设计并行多通道设计系统,其中:
在确定与上位机连接成功后,从所述上位机处获取至少一个用于对FPGA芯片通道进行测试的验证请求;
基于所述多通道设计系统中当前启动的组件数量,将所述验证请求发送到目标通道验证环境中,所述目标通道验证环境为单通道验证环境或多通道验证环境的其中一种;
在目标通道的数据运算中对其它通道寄存器并行配置,并利用所述目标通道验证环境中的卷积神经网络DUT模块,对所述请求进行测试并验证。
可选地,在基于本申请上述系统的另一个实施例中,所述目标通道验证环境还包括JTAG_Ctrl模块与mem_ctrl模块,其中:
所述JTAG_Ctrl模块,用于将所述多通道设计系统与所述上位机进行连接;以及,将JTAG协议的所述验证请求转换为Lint协议的验证请求后,将所述Lint协议的验证请求发送给所述mem_ctrl模块;
所述mem_ctrl模块,用于根据所述Lint协议的验证请求,从与所述验证请求相对应的存储器中读取数据。
可选地,在基于本申请上述系统的另一个实施例中,所述目标通道验证环境还包括Lint2APB模块,其中:
所述Lint2APB模块,用于将所述Lint协议的验证请求转换为APB协议的验证请求。
可选地,在基于本申请上述系统的另一个实施例中,所述目标通道验证环境还包括memory模块,其中:
所述memory模块,用于预先存储各个验证请求对应的业务数据,其中所述业务数据包括图像数据,卷积核数据以及计算数据。
可选地,在基于本申请上述系统的另一个实施例中,所述多通道验证环境还包括仲裁模块,其中:
所述仲裁模块,用于从多通道中选取出在预设时间段内未进行过握手连接的至少一个候选通道;以及,
所述仲裁模块,用于从所述至少一个候选通道中,随机选取出目标候选通道,并利用所述目标候选通道,对所述验证请求进行测试并验证。
可选地,在基于本申请上述系统的另一个实施例中,在所述利用所述目标候选通道,对所述验证请求进行测试并验证之后,还包括:
将所述目标候选通道进行通信屏蔽,直至检测到所有验证请求均已处理完毕。
其中,根据本申请实施例的又一个方面,提供的一种基于卷积神经网络的FPGA多通道设计系统装置,其中:
连接模块,被配置为在确定与上位机连接成功后,从所述上位机处获取至少一个用于对FPGA芯片通道进行测试的验证请求;
发送模块,被配置为基于所述多通道设计系统中当前启动的组件数量,将所述验证请求发送到目标通道验证环境中,所述目标通道验证环境为单通道验证环境或多通道验证环境的其中一种;
测试模块,被配置为在目标通道的数据运算中对其它通道寄存器并行配置,并利用所述目标通道验证环境中的卷积神经网络DUT模块,对所述请求进行测试并验证。
根据本申请实施例的又一个方面,提供的一种电子设备,包括:
存储器,用于存储可执行指令;以及
显示器,用于与所述存储器以执行所述可执行指令从而完成上述任一所述基于卷积神经网络硬件加速器的FPGA多通道设计系统的操作。
根据本申请实施例的还一个方面,提供的一种计算机可读存储介质,用于存储计算机可读取的指令,所述指令被执行时执行上述任一所述基于卷积神经网络硬件加速器的FPGA多通道设计系统的操作。
本申请中,在确定与上位机连接成功后,从上位机处获取至少一个用于对FPGA芯片通道进行测试的验证请求;基于多通道设计系统中当前启动的组件数量,将请求发送到目标通道环境中,目标通道验证环境为单通道验证环境或多通道验证环境的其中一种;在目标通道的数据运算中对其它通道寄存器并行配置,并利用目标通道验证环境中的卷积神经网络DUT模块,对请求进行测试并验证。
通过应用本申请设计的利用双通道验证环境的FPGA设计系统,可以自动在第一个通道配置结束后的数据计算阶段内切换通道配置,数据处理与寄存器配置并行操作FPGA验证请求。具体为一方面可以根据系统中用于表征其当前处理能力的组件启动数量来选择对各个验证请求的处理方式。另一方面也实现了卷积神经网络的仿真在硬件上的实现,进而能够对芯片进行软硬件的协同验证,增加了验证的覆盖率。本申请通过乒乓形式的寄存器配置实现了数据传输与寄存器配置并行运作,提高了卷积神经网络硬件加速器的计算效率。
下面通过附图和实施例,对本申请的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本申请的实施例,并且连同描述一起用于解释本申请的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本申请,其中:
图1示出了本申请一实施例所提供的一种基于卷积神经网络硬件加速器的FPGA多通道设计系统的执行流程图;
图2示出了本申请一实施例所提供的多通道设计系统的模型架构图;
图3示出了本申请一实施例所提供的一种利用单通道验证环境对验证请求进行测试的流程示意图;
图4示出了本申请一实施例所提供的一种利用多通道验证环境对验证请求进行测试的流程示意图;
图5示出了本申请一实施例所提供的一种电子设备的结构示意图;
图6示出了本申请一实施例所提供的一种存储介质的示意图。
具体实施方式
现在将参照附图来详细描述本申请的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本申请的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,不作为对本申请及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、系统和设备可能不作详细讨论,但在适当情况下,所述技术、系统和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
另外,本申请各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
需要说明的是,本申请实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应的随之改变。
下面结合图1-图3来描述根据本申请示例性实施方式的用于进行基于卷积神经网络用于硬件加速的FPGA多通道设计系统。需要注意的是,下述应用场景仅是为了便于理解本申请的精神和原理而示出,本申请的实施方式在此方面不受任何限制。相反,本申请的实施方式可以应用于适用的任何场景。
本申请还提出一种基于卷积神经网络用于硬件加速的FPGA多通道设计系统、装置、电子设备及介质。
图1示意性地示出了根据本申请实施方式的一种基于卷积神经网络用于硬件加速的FPGA多通道设计系统的流程示意图。如图1所示,该系统的执行流程包括:
S101,在确定与上位机连接成功后,从上位机处获取至少一个用于对FPGA芯片通道进行测试的验证请求。
其中,FPGA(Field Programmable Gate Array)是在PAL(可编程阵列逻辑)、GAL(通用阵列逻辑)等可编程器件的基础上进一步发展的产物。其是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点
一种方式中,卷积神经网络作为深度学习技术中极具代表性的网络结构之一,主要应用于机器视觉、语音识别和自然语言处理等方面。随着算法复杂度的提高,需要大量的计算资源进行训练,验证卷积神经网络功能的正确性显得尤为重要。
另一种方式中,相关技术中一方面随着SoC设计规模的与日俱增,其功能日趋复杂,芯片验证的准确性、完备性和稳定性成为芯片研发的重点。另一方面随着FPGA工艺和技术的发展,其速度、容量和密度都大大增加,功耗和成本在不断降低,这使得基于FPGA的原型验证得到广泛的应用。
需要说明的是,相关技术中基于FPGA的原型验证可以比软件仿真速度高出4~6个数量级,而且还可以提高流片成功率,并为软件开发提供了硬件平台,加速了软件的开发速度。
一种方式中,面对复杂IP以及大规模的SoC,需要应用FPGA原型验证将RTL移植到现场可编程门阵列来验证ASIC的功能,并可以在后续样片做回归测试时进行驱动和应用开发,建立高效的验证平台,缩短验证周期,保证设计的完备性和准确性。
进一步的,相关技术中对于卷积神经网络功能的验证灵活性低、可复用性差,带来人力资源、时间资源的大量浪费,卷积神经网络验证的充分性和效率难以得到保证。
因此,面对卷积神经网络日益多样化的需求,底层架构设计变动后,为了缩短ASIC的开发周期、加快研发进程和确保功能正确性,有必要搭建一个支持灵活配置的FPGA验证平台实现完备的卷积神经网络的功能型验证。
针对上述问题,本申请提出一种基于卷积神经网络硬件加速器的FPGA多通道设计系统。其方案为,设计一种利用双通道验证环境的FPGA多通道设计系统,可以自动处理每个FPGA验证请求。具体为一方面可以根据系统中用于表征其当前处理能力的组件启动数量来选择对各个验证请求的处理方式。另一方面也实现了卷积神经网络的仿真在硬件上的实现,进而能够对芯片进行软硬件的协同验证,增加了验证的覆盖率。
一种方式中,如图2所示,本申请实施例提出的FPGA多通道设计系统中至少包含有JTAG(Joint Test Action Group)、存储模块及存储控制模块、桥接模块、仲裁模块和卷积神经网络加速模块等组成。
作为示例的,本申请可以搭建FPGA测试平台,进而利用JTAG协议使得上位机向验证平台传输数据,再通过移植RTL代码到FPGA来实现其测试验证的功能,从而完成板级验证。
S102,基于多通道设计系统中当前启动的组件数量,将验证请求发送到目标通道验证环境中,目标通道验证环境为单通道验证环境或多通道验证环境的其中一种。
一种方式中,本申请在搭建FPGA测试平台的过程中,可以部署有一个卷积神经网络的单通道验证环境,以及一个卷积神经网络的多通道验证环境。作为示例,本申请可以根据当前多通道设计系统中部署或者已启动的组件数量,来选择是由单通道验证环境进行测试任务还是由多通道验证环境进行测试任务。
可以理解的,如果当前多通道设计系统中部署或者已启动的组件数量为一个,则选择由单通道验证环境进行测试任务。反之则可以选择由多通道验证环境进行测试任务。
一种方式中,在单通道或多通道验证环境中,需要将Lint协议转换为APB协议来配置寄存器。并且在多通道验证环境中,面对多个通道的读数据请求,本申请可以通过仲裁模块来实现按照轮询优先级来选择下一需要进行业务处理的通道。
其中,本申请的单通道验证环境中,由JTAG_Ctrl模块、mem_ctrl模块、memory模块、Lint2APB模块以及卷积神经网络的DUT五个模块所组成。
另外,本申请的多通道验证环境中,由JTAG_Ctrl模块、mem_ctrl模块、memory模块、Lint2APB模块、arbiter模块以及卷积神经网络的DUT六个模块组成。可以理解的,相比单通道需要处理多个图层的数据分配问题,本申请实施例可以用arbiter仲裁模块的仲裁功能来选择下一需要进行业务处理的通道,以使由该仲裁得到的通道从存储器中读取或写入数据。
S103,在目标通道的数据运算中对其它通道寄存器并行配置,并利用目标通道验证环境中的卷积神经网络DUT模块,对验证请求进行测试并验证。
一种方式中,本申请中利用单通道验证环境对验证请求进行测试的流程如图3所示,首先利用JTAG_Ctrl模块将上位机与多通道设计系统进行连接,并将验证请求的JTAG协议的数据转为Lint协议的数据后,传输给mem_ctrl模块。
其中作为示例的,为适应不同总线位宽IP的调试工作,JTAG_Ctrl模块支持32bit数据的传输。
另外,mem_ctrl模块可以通过寻址确定从哪个存储器中读写数据以及从apbinterface传输数据;
再者,本申请中的Lint2APB模块是将Lint协议的验证请求转换为APB协议。可以理解的,由于Lint协议与APB协议均不支持突发传输,所以不需要额外的存储器,直接通过桥接的方式,将寄存器的配置数据灌入DUT。
一种方式中,在Lint2APB桥接器的读写时序中,APB信号的跳变只与时钟上升沿有关,并且每次传输至少需要两个周期,所以从Lint接口发出读写请求到APB接收到数据至少需要三个时钟周期。
作为示例的,Lint和APB总线位宽都是32bit,所以从激励输入到最后转换成APB接口的数据,不需要额外的memory来存储数据。
需要说明的是,本申请实施例的多通道设计系统的业务数据、地址及寄存器配置信息可以来源于预设的测试用例。例如,rd_channel_mem用于存储需要处理的图像数据;kenel_chennl_mem用于存储卷积核数据;wr_channel_mem用于存储计算之后的数据,这些memory本质上就是同步FIFO,用先进先出的数据交互方式完成数据的传递以及不同数据接口间数据匹配。
另外一种方式中,本申请中利用多通道验证环境对验证请求进行测试的流程如图4所示,首先利用JTAG_Ctrl模块将上位机与多通道设计系统进行连接,并将验证请求的JTAG协议的数据转为Lint协议的数据后,传输给mem_ctrl模块。
其中,本申请实施例中的仲裁模块采用轮询调度以及屏蔽通路的方式实现轮询仲裁机制。具体的,仲裁模块可以采用优先级不变的模式,当某一路请求信号握手完成后,控制把该已经进行过测试验证的通路信号屏蔽掉,只允许其它尚未完成握手连接的通道参与仲裁,直至等到所有的通道都处理完再把屏蔽打开。
一种方式中,本申请在多通道设计系统搭建完毕后,首先建立上位机、调试工具以及FPGA多通道设计系统之间的连接,在所有设备通电后,为减少测试繁琐的步骤,提高板级验证的效率,运行脚本预处理的数据文件,这些数据的来源是随机测试用例和定向功能点的测试用例。
本申请中,在确定与上位机连接成功后,从上位机处获取至少一个用于对FPGA芯片进行测试的验证请求;基于多通道设计系统中当前启动的组件数量,将验证请求发送到目标通道验证环境中,目标通道验证环境为单通道验证环境或多通道验证环境的其中一种;利用目标通道验证环境中的卷积神经网络DUT模块,对验证请求进行测试。
通过应用本申请设计的利用双通道验证环境的FPGA设计系统,可以自动在第一个通道配置结束后的数据计算阶段内切换通道配置,数据处理与寄存器配置并行操作FPGA验证请求。具体为一方面可以根据系统中用于表征其当前处理能力的组件启动数量来选择对各个验证请求的处理方式。另一方面也实现了卷积神经网络的仿真在硬件上的实现,进而能够对芯片进行软硬件的协同验证,增加了验证的覆盖率。本申请通过乒乓形式的寄存器配置实现了数据传输与寄存器配置并行运作,提高了卷积神经网络硬件加速器的计算效率。
可选地,在基于本申请上述系统的另一个实施例中,所述目标通道验证环境还包括JTAG_Ctrl模块与mem_ctrl模块,其中:
所述JTAG_Ctrl模块,用于将所述多通道设计系统与所述上位机进行连接;以及,将JTAG协议的所述验证请求转换为Lint协议的验证请求后,将所述Lint协议的验证请求发送给所述mem_ctrl模块;
所述mem_ctrl模块,用于根据所述Lint协议的验证请求,从与所述验证请求相对应的存储器中读取数据。
可选地,在基于本申请上述系统的另一个实施例中,所述目标通道验证环境还包括Lint2APB模块,其中:
所述Lint2APB模块,用于将所述Lint协议的验证请求转换为APB协议的验证请求。
可选地,在基于本申请上述系统的另一个实施例中,所述目标通道验证环境还包括memory模块,其中:
所述memory模块,用于预先存储各个验证请求对应的业务数据,其中所述业务数据包括图像数据,卷积核数据以及计算数据。
可选地,在基于本申请上述系统的另一个实施例中,所述多通道验证环境还包括仲裁模块,其中:
所述仲裁模块,用于从多通道中选取出在预设时间段内未进行过握手连接的至少一个候选通道;以及,
所述仲裁模块,用于从所述至少一个候选通道中,随机选取出目标候选通道,并利用所述目标候选通道,对所述验证请求进行测试并验证。
可选地,在基于本申请上述系统的另一个实施例中,在所述利用所述目标候选通道,对所述验证请求进行测试并验证之后,还包括:
将所述目标候选通道进行通信屏蔽,直至检测到所有验证请求均已处理完毕。
一种方式中,本申请实施例可以在上位机与FPGA多通道设计系统连接完成后,经过脚本处理的文件主要包含以下的测试步骤:
步骤1、上位机往地址0x800_2ff0写入数据1置高JTAG_en信号,此时三块mem只能通过JTAG进行读写操作;
步骤2、输入命令Data.Set EMD:address%LE%Long dat将数据写入rd_channel_mem以及kenel_channel_mem中;
步骤3、上位机往地址0x800_2ff0写入数据0置低JTAG_en信号,此时三块mem只能通过ih_hwpe_top模块进行读写数据;
步骤4、上位机将ih_hwpe_top需要的配置数据写入;
步骤5、上位机往地址0x800_2ff0写入数据1置高JTAG_en信号,此时可以通过JTAG来对wr_channel_mem的数据进行读取。至此单次测试结束,接下来分析测试结果。
通过应用本申请设计的利用双通道验证环境的FPGA设计系统,可以自动在第一个通道配置结束后的数据计算阶段内切换通道配置,数据处理与寄存器配置并行操作FPGA验证请求。具体为一方面可以根据系统中用于表征其当前处理能力的组件启动数量来选择对各个验证请求的处理方式。另一方面也实现了卷积神经网络的仿真在硬件上的实现,进而能够对芯片进行软硬件的协同验证,增加了验证的覆盖率。本申请通过乒乓形式的寄存器配置实现了数据传输与寄存器配置并行运作,提高了卷积神经网络硬件加速器的计算效率。
可选的,在本申请的另外一种实施方式中,如图5所示,本申请还提供一种基于卷积神经网络硬件加速器的FPGA多通道设计装置。其中包括:
连接模块201,被配置为在确定与上位机连接成功后,从所述上位机处获取至少一个用于对FPGA芯片通道进行测试的验证请求;
发送模块202,被配置为基于所述多通道设计系统中当前启动的组件数量,将所述验证请求发送到目标通道验证环境中,所述目标通道验证环境为单通道验证环境或多通道验证环境的其中一种;
测试模块203,被配置为在目标通道的数据运算中对其它通道寄存器并行配置,并利用所述目标通道验证环境中的卷积神经网络DUT模块,对所述请求进行测试并验证。
通过应用本申请设计的利用双通道验证环境的FPGA设计系统,可以自动在第一个通道配置结束后的数据计算阶段内切换通道配置,数据处理与寄存器配置并行操作FPGA验证请求。具体为一方面可以根据系统中用于表征其当前处理能力的组件启动数量来选择对各个验证请求的处理方式。另一方面也实现了卷积神经网络的仿真在硬件上的实现,进而能够对芯片进行软硬件的协同验证,增加了验证的覆盖率。本申请通过乒乓形式的寄存器配置实现了数据传输与寄存器配置并行运作,提高了卷积神经网络硬件加速器的计算效率。
在本申请的另外一种实施方式中,目标通道验证环境还包括JTAG_Ctrl模块与mem_ctrl模块,其中:
所述JTAG_Ctrl模块,用于将所述多通道设计系统与所述上位机进行连接;以及,将JTAG协议的所述验证请求转换为Lint协议的验证请求后,将所述Lint协议的验证请求发送给所述mem_ctrl模块;
所述mem_ctrl模块,用于根据所述Lint协议的验证请求,从与所述验证请求相对应的存储器中读取数据。
在本申请的另外一种实施方式中,所述目标通道验证环境还包括Lint2APB模块,其中:
所述Lint2APB模块,用于将所述Lint协议的验证请求转换为APB协议的验证请求。
在本申请的另外一种实施方式中,所述目标通道验证环境还包括memory模块,其中:
所述memory模块,用于预先存储各个验证请求对应的业务数据,其中所述业务数据包括图像数据,卷积核数据以及计算数据。
在本申请的另外一种实施方式中,所述仲裁模块,用于从多通道中选取出在预设时间段内未进行过握手连接的至少一个候选通道;以及,
所述仲裁模块,用于从所述至少一个候选通道中,随机选取出目标候选通道,并利用所述目标候选通道,对所述验证请求进行测试并验证。
在本申请的另外一种实施方式中,将所述目标候选通道进行通信屏蔽,直至检测到所有验证请求均已处理完毕。
本申请实施方式还提供一种电子设备,以执行上述基于卷积神经网络硬件加速器的FPGA多通道设计系统。请参考图6,其示出了本申请的一些实施方式所提供的一种电子设备的示意图。如图6所示,电子设备3包括:处理器300,存储器301,总线302和通信接口303,所述处理器300、通信接口303和存储器301通过总线302连接;所述存储器301中存储有可在所述处理器300上运行的计算机程序,所述处理器300运行所述计算机程序时执行本申请前述任一实施方式所提供的基于卷积神经网络硬件加速器的FPGA多通道设计系统。
其中,存储器301可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口303(可以是有线或者无线)实现该装置网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
总线302可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器301用于存储程序,所述处理器300在接收到执行指令后,执行所述程序,前述本申请实施例任一实施方式揭示的所述数据识别的系统可以应用于处理器300中,或者由处理器300实现。
处理器300可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述系统的各步骤可以通过处理器300中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器300可以是通用处理器,包括处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
一种方式中,处理器300还可以为图形处理器(graphics processing unit,GPU)。其可以实现或者执行本申请实施例中的公开的各系统、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的系统的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器301,处理器300读取存储器301中的信息,结合其硬件完成上述系统的步骤。
本申请实施例提供的电子设备与本申请实施例提供的基于卷积神经网络硬件加速器的FPGA多通道设计系统出于相同的发明构思,具有与其采用、运行或实现的系统相同的有益效果。
本申请实施方式还提供一种与前述实施方式所提供的基于卷积神经网络硬件加速器的FPGA多通道设计系统对应的计算机可读存储介质,请参考图6,其示出的计算机可读存储介质为光盘40,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的基于卷积神经网络硬件加速器的FPGA多通道设计系统。
需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
本申请的上述实施例提供的计算机可读存储介质与本申请实施例提供的数据识别的系统出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的系统相同的有益效果。
需要说明的是:
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本申请并帮助理解各个发明方面中的一个或多个,在上面对本申请的示例性实施例的描述中,每个权利要求本身都作为本申请的单独实施例。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本申请的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种基于卷积神经网络硬件加速器的FPGA多通道设计系统,其特征包括:
在确定与上位机连接成功后,从所述上位机处获取至少一个用于对FPGA芯片通道进行测试的验证请求;
基于所述多通道设计系统中当前启动的组件数量,将所述请求发送到目标通道环境中,所述目标通道验证环境为单通道验证环境或多通道验证环境的其中一种;
在目标通道的数据运算中对其它通道寄存器并行配置,并利用所述目标通道验证环境中的卷积神经网络DUT模块,对所述请求进行测试并验证。
2.如权利要求1所述的系统,其特征在于,所述目标通道验证环境还包括JTAG_Ctrl模块与mem_ctrl模块,其中:
所述JTAG_Ctrl模块,用于将所述多通道设计系统与所述上位机进行连接;以及,将JTAG协议的所述验证请求转换为Lint协议的验证请求后,将所述Lint协议的验证请求发送给所述mem_ctrl模块;
所述mem_ctrl模块,用于根据所述Lint协议的验证请求,从与所述验证请求相对应的存储器中读取数据。
3.如权利要求2所述的系统,其特征在于,所述目标通道验证环境还包括Lint2APB模块,其中:
所述Lint2APB模块,用于将所述Lint协议的验证请求转换为APB协议的验证请求。
4.如权利要求2或3所述的系统,其特征在于,所述目标通道验证环境还包括memory模块,其中:
所述memory模块,用于预先存储各个验证请求对应的业务数据,其中所述业务数据包括图像数据,卷积核数据以及计算数据。
5.如权利要求1所述的系统,其特征在于,所述多通道验证环境还包括仲裁模块,其中:
所述仲裁模块,用于从多通道中选取出在预设时间段内未进行过握手连接的至少一个候选通道;以及,
所述仲裁模块,用于从所述至少一个候选通道中,随机选取出目标候选通道,并利用所述目标候选通道,对所述验证请求进行测试并验证。
6.如权利要求5所述的系统,其特征在于,在所述利用所述目标候选通道,对所述验证请求进行测试并验证之后,还包括:
将所述目标候选通道进行通信屏蔽,直至检测到所有验证请求均已处理完毕。
7.一种基于卷积神经网络硬件加速器的FPGA设计装置,其特征包括:
连接模块,被配置为在确定与上位机连接成功后,从所述上位机处获取至少一个用于对FPGA芯片通道进行测试的验证请求;
发送模块,被配置为基于所述多通道设计系统中当前启动的组件数量,将所述验证请求发送到目标通道验证环境中,所述目标通道验证环境为单通道验证环境或多通道验证环境的其中一种;
测试模块,被配置为在目标通道的数据运算中对其它通道寄存器并行配置,并利用所述目标通道验证环境中的卷积神经网络DUT模块,对所述请求进行测试并验证。
8.一种电子设备,其特征在于,包括:
存储器,用于存储可执行指令;以及,
处理器,用于与所述存储器执行所述可执行指令从而完成权利要求1-6中任一所述基于卷积神经网络硬件加速器的FPGA多通道设计系统的操作。
9.一种计算机可读存储介质,用于存储计算机可读取的指令,其特征在于,所述指令被执行时执行权利要求1-6中任一所述基于卷积神经网络硬件加速器的FPGA多通道设计系统的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310777073.0A CN116976404A (zh) | 2023-06-28 | 2023-06-28 | 基于卷积神经网络硬件加速器的fpga多通道设计系统及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310777073.0A CN116976404A (zh) | 2023-06-28 | 2023-06-28 | 基于卷积神经网络硬件加速器的fpga多通道设计系统及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116976404A true CN116976404A (zh) | 2023-10-31 |
Family
ID=88474026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310777073.0A Pending CN116976404A (zh) | 2023-06-28 | 2023-06-28 | 基于卷积神经网络硬件加速器的fpga多通道设计系统及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116976404A (zh) |
-
2023
- 2023-06-28 CN CN202310777073.0A patent/CN116976404A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2022537620A (ja) | 人工知能チップ検証 | |
US20180300431A1 (en) | Universal verification methodology (uvm) register abstraction layer (ral) traffic predictor | |
US11514225B2 (en) | Verification platform for system on chip and verification method thereof | |
US20100318344A1 (en) | System and Method Implementing A Simulation Acceleration Capture Buffer | |
CN107480327A (zh) | 一种仿真验证方法、装置和电子设备 | |
US8724483B2 (en) | Loopback configuration for bi-directional interfaces | |
CN117112447B (zh) | 一种数据传输方法、装置、电子设备及可读存储介质 | |
CN110569162B (zh) | 一种通信领域中fpga的自动测试方法及装置 | |
CN111176926A (zh) | 一种基于双口sram的ip核仿真系统及仿真方法 | |
CN112434478B (zh) | 仿真逻辑系统设计的虚拟接口的方法及相关设备 | |
CN113326670A (zh) | 原型验证系统、方法、处理单元、及设备 | |
US7290174B1 (en) | Methods and apparatus for generating test instruction sequences | |
CN113496108B (zh) | 一种应用于仿真的cpu模型 | |
CN116976404A (zh) | 基于卷积神经网络硬件加速器的fpga多通道设计系统及装置 | |
CN114398214A (zh) | 性能验证方法、装置、存储介质及计算机设备 | |
US7024347B2 (en) | Transaction conflict testing method and apparatus | |
KR102325612B1 (ko) | 시뮬레이터를 구현하는 방법, 장치, 기기 및 매체 | |
CN113760751A (zh) | 生成测试用例的方法、电子设备及存储介质 | |
CN114443375A (zh) | 测试方法及装置、电子装置及计算机可读存储介质 | |
CN116861829B (zh) | 用于定位逻辑系统设计中错误的方法、电子设备 | |
CN112904187A (zh) | 一种扫描链构建方法、装置、设备及存储介质 | |
CN114169287B (zh) | 生成验证环境的连接示意图的方法、电子设备及存储介质 | |
CN114444423B (zh) | 基于验证平台的数据处理方法、系统及电子设备 | |
CN116151187B (zh) | 处理触发条件的方法、装置和存储介质 | |
CN112183016B (zh) | 快速建立pinpair等长约束的方法、装置、设备和存储介质 |
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 |