CN113065299B - 一种基于fpga云的图像处理硬件逻辑hdl模块的线上验证方法 - Google Patents

一种基于fpga云的图像处理硬件逻辑hdl模块的线上验证方法 Download PDF

Info

Publication number
CN113065299B
CN113065299B CN202110202122.9A CN202110202122A CN113065299B CN 113065299 B CN113065299 B CN 113065299B CN 202110202122 A CN202110202122 A CN 202110202122A CN 113065299 B CN113065299 B CN 113065299B
Authority
CN
China
Prior art keywords
interface
image data
user
fpga
logic
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
CN202110202122.9A
Other languages
English (en)
Other versions
CN113065299A (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.)
Hangzhou Dianzi University
Original Assignee
Hangzhou Dianzi University
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 Hangzhou Dianzi University filed Critical Hangzhou Dianzi University
Priority to CN202110202122.9A priority Critical patent/CN113065299B/zh
Publication of CN113065299A publication Critical patent/CN113065299A/zh
Application granted granted Critical
Publication of CN113065299B publication Critical patent/CN113065299B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • 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/347Physical level, e.g. placement or routing
    • 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明公开了基于FPGA云的图像处理硬件逻辑HDL模块的线上验证方法,使得开发人员能够在无需关注底层硬件具体实现方式下,专注于开发和验证所需算法。本发明针对现有FPGA项目开发难度大、周期长的特点,利用在远程服务器平台下外挂FPGA的方式提出了一套图像处理线上验证方法。这种方法能够帮助用户快速搭建自己的图像算法验证平台,通过实现外界与FPGA之间的通信接口和数据转换协议,并且利用统一的协议来封装接口的方式来降低用户开发的难度和缩短开发的时间。这样只需要明确对外的接口时序,而不必让开发人员了解底层硬件的实现方式,从而大大加快了开发速度。

Description

一种基于FPGA云的图像处理硬件逻辑HDL模块的线上验证 方法
技术领域
本发明属于线上验证技术领域,涉及一种基于FPGA云的图像处理硬件逻辑HDL模块的线上验证方法。
背景技术
目前,在FPGA上进行算法项目开发面临着周期长、成本高、难度大的特点。FPGA的开发人员不仅需要了解底层硬件的实现方式,熟悉相关接口的传输协议,还需要设计和开发相对应的算法以满足项目的需求。因此接口开发人员和算法开发人员在大型项目研发中常常都是必须,但由此增加的研发成本和研发周期是巨大的。本发明为解决上述问题提出了一种基于FPGA云的图像处理硬件逻辑HDL模块的线上验证方法,通过实现底层硬件通信接口,并封装为统一的逻辑接口给用户,从而帮助普通用户快速搭建算法验证平台,使用户能够专注于算法的设计而无需关注底层硬件的具体实现方式。
发明内容
本发明针对现有技术的不足,提供一种基于FPGA云的图像处理硬件逻辑HDL模块的线上验证方法。该方法利用在远程服务器下外挂FPGA的方式实现,本发明的技术方案为一种基于FPGA云的图像处理硬件逻辑HDL模块的线上验证方法,包括以下步骤:
S1,用户在远程客户端通过SSH(Secure Shell,安全外壳协议)的方式连接至云端,使用SFTP(Secret File Transfer Protocol,安全文件传输协议)将测试用图像文件与待测试图像处理硬件逻辑HDL设计文件提交至FPGA云服务器;
S2,向用户提供已实现的接口逻辑网表文件;
S3,通过脚本建立工程、编译代码,综合生成可下载的比特流文件;
S4,用户编译驱动方法,服务器主机向FPGA传输待测图像数据;待测图像数据发送完后,发送写数据完成信号,等待FPGA处理完成;服务器主机收到FPGA处理完成信号后,启动读数据;读数据完成后,将图像数据重新写回图片,并使用SFTP从服务器上下载图片到本地主机查看。
优选地,所述向用户提供已实现的接口逻辑网表文件,其中已实现的接口逻辑网表文件对应的逻辑接口模块包括图像数据传输模块和图像数据存储模块,图像数据存储模块包含写图像数据控制模块和读图像数据控制模块,分别控制存储单元的读写。
优选地,所述图像数据存储模块采用片外存储单元,包括DDR3和/或DDR4。
优选地,所述图像数据传输模块包括面向外部接口的PCIe接口和面向用户逻辑模块的用户逻辑接口,其中PCIe接口利用AXI4/Avalon进行访问,用户逻辑接口采用数据包传输协议,包括xx_sop代表数据包起始信号,xx_eop代表数据包结束信号,xx_vld代表数据有效信号和xx_data代表图像数据。
优选地,所述通过脚本建立工程、编译代码,综合生成可下载的比特流文件,包括以下步骤:
S31,将用户的顶层模块usr_top通过局部综合的方式生成用户逻辑网表文件;
S32,将用户逻辑网表文件和已实现的接口逻辑网表文件进行验证,验证自定义用户逻辑接口信号是否匹配提前实现的接口逻辑模块内的信号;
S33,将用户逻辑网表文件和已实现的接口逻辑网表文件进行联合布局、布线生成比特流文件,再使用布局和布线工具生成可下载的比特流文件。
优选地,所述脚本包括:
脚本1:compile.sh将会首先调用EDA工具用于后续的综合、实现,接着读入creat_usr_project.tcl、run_usr_synth.tcl和generate_bit.tcl三个脚本;
脚本2:creat_usr_project.tcl该脚本将会导入用户的逻辑代码和ip,并建立用户工程usr_prj;
脚本3:run_usr_synth.tcl该脚本将编译和综合用户工程的代码,并生成用户逻辑网表文件;
脚本4:generate_bit.tcl首先该脚本会分别导入用户逻辑网表文件和已实现的接口逻辑网表文件,然后导入设计要求的约束文件;其中的约束文件包含物理约束和时序约束。
优选地,所述S4中驱动方法包括以下步骤:
S41,读入图片,并提取图像数据存至内存;
S42,打开PCIe设备配置接口描述符,通过单次读写回传数据检测PCIe是否正常工作;
S43,通过PCIe配置接口发送配置参数,配置参数包括图像宽度col和图像高度row;
S44,打开PCIe设备数据发送接口描述符,调用函数host_to_fpga()发送图像数据;图像数据发送完成后调用配置接口写数据函数write_axi_lite(),发送图像数据写完成信号;
S45,等待FPGA处理完成,并且每隔1s调用配置接口读数据函数read_axi_lite()判断FPGA是否处理完成;当读到FPGA处理完成信号后,打开PCIe设备数据接收接口描述符,调用函数fpga_to_host()读取处理后的图像数据;
S46,将接收到的图像数据写回图片,并下载到本地主机。
本发明的有益效果如下:
在基于FPGA的算法开发和验证中,采用底层接口逻辑和算法逻辑分开实现的方法有利于降低开发难度、缩短研发周期,也有利于普通用户快速构建自己的验证平台。同时,底层接口逻辑已经实现了PC到FPGA的数据传输,并且提供给用户统一的逻辑接口。这能够让用户更专注于算法的开发和验证,而无需关心底层硬件的具体实现方式。
附图说明
图1为本发明实施例的基于FPGA云的图像处理硬件逻辑HDL模块的线上验证方法的步骤流程图;
图2为本发明实施例的基于FPGA云的图像处理硬件逻辑HDL模块的线上验证方法的系统结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
相反,本发明涵盖任何由权利要求定义的在本发明的精髓和范围上做的替代、修改、等效方法以及方案。进一步,为了使公众对本发明有更好的了解,在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。
参见图1,为本发明实施例的本发明的技术方案为基于FPGA云的图像处理硬件逻辑HDL模块的线上验证方法的步骤流程图,结合图2的结构图,包括以下步骤:
S1:用户在远程客户端通过SSH的方式连接至云端,使用SFTP将测试用图像文件与待测试图像处理硬件逻辑HDL设计文件提交至FPGA云服务器。
S2:向用户提供已实现的接口逻辑网表文件,其中已实现的逻辑接口模块包括图像数据传输模块和图像数据存储模块。图像数据存储模块包含写图像数据控制模块21和读图像数据控制模块22,分别控制存储单元10的读写。图像数据存储模块使用片外存储单元,如DDR3、DDR4。图像数据传输模块包含面向外部接口的PCIe接口和面向用户逻辑模块的用户逻辑接口33。PCIe接口(包括配置接口32和数据接口31)利用AXI4/Avalon进行访问,用户逻辑接口33采用数据包传输协议,包括如下信号:xx_sop代表数据包起始信号,xx_eop代表数据包结束信号,xx_vld代表数据有效信号,xx_data代表图像数据。
S3:通过脚本建立工程、编译代码,综合生成可下载的比特流文件。首先,需要将用户的顶层模块usr_top通过局部综合的方式生成用户逻辑网表文件。然后,将用户逻辑网表文件和已实现的接口逻辑网表文件进行验证,验证用户逻辑接口33的接口信号是否匹配提前实现的接口逻辑模块34内的信号。最后,将用户逻辑网表文件和接口逻辑网表文件进行联合布局、布线生成比特流文件。其中用到的脚本主要包括如下四种:
脚本1:compile.sh将会首先调用EDA工具用于后续的综合、实现,接着读入creat_usr_project.tcl、run_usr_synth.tcl和generate_bit.tcl三个脚本。
脚本2:creat_usr_project.tcl该脚本将会导入用户的逻辑代码和ip,并建立用户工程usr_prj。
脚本3:run_usr_synth.tcl该脚本将编译和综合用户工程的代码,并生成用户逻辑网表文件。
脚本4:generate_bit.tcl首先该脚本会分别导入用户逻辑网表文件和已实现的接口逻辑网表文件,然后导入设计要求的约束文件。其中的约束文件包含物理约束和时序约束。最后使用布局和布线工具生成可下载的比特流文件。
S4:用户编译驱动方法,服务器主机向FPGA传输待测图像数据。待测图像数据发送完后,发送写数据完成信号,等待FPGA处理完成。服务器主机收到FPGA处理完成信号后,启动读数据。读数据完成后,将图像数据重新写回图片,并使用SFTP从服务器上下载图片到本地主机查看。
驱动方法主要包括以下步骤:
(1)读入图片,并提取图像数据存至内存。
(2)打开PCIe设备配置接口32描述符,通过单次读写回传数据检测PCIe是否正常工作。
(3)通过PCIe配置接口32发送配置参数,配置参数主要包括:图像宽度col、图像高度row,通过命令解析模块41向逻辑接口模块发送;
(4)打开PCIe设备数据发送接口(即数据接口31)描述符,调用函数host_to_fpga()发送图像数据;图像数据发送完成后调用配置接口32写数据函数write_axi_lite(),发送图像数据写完成信号。
(5)等待FPGA处理完成,并且每隔1s调用配置接口32读数据函数read_axi_lite()判断FPGA是否处理完成。当读到FPGA处理完成信号后,打开PCIe设备数据接收接口(即数据接口31)描述符,调用函数fpga_to_host()读取处理后的图像数据。
(6)将接收到的图像数据写回图片,并下载到本地主机。
所述参数配置、命令发送和接收的实现方式为:
使用PCIe的配置接口32,接口时序为AXI4/Avlon类型。主机Host将PCIe BAR地址空间映射到FPGA的配置寄存器,在主机侧读写相应的虚拟地址可以访问FPGA内部寄存器,从而实现主机和FPGA的参数配置、命令发送和接收。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (4)

1.一种基于FPGA云的图像处理硬件逻辑HDL模块的线上验证方法,其特征在于,包括以下步骤:
S1,用户在远程客户端通过安全外壳协议SSH的方式连接至云端,使用安全文件传输协议SFTP将测试用图像文件与待测试图像处理硬件逻辑HDL设计文件提交至FPGA云服务器;
S2,向用户提供已实现的接口逻辑网表文件;
S3,通过脚本建立工程、编译代码,综合生成可下载的比特流文件;
S4,用户编译驱动方法,服务器主机向FPGA传输待测图像数据;待测图像数据发送完后,发送写数据完成信号,等待FPGA处理完成;服务器主机收到FPGA处理完成信号后,启动读数据;读数据完成后,将图像数据重新写回图片,并使用SFTP从服务器上下载图片到本地主机查看;
所述通过脚本建立工程、编译代码,综合生成可下载的比特流文件,包括以下步骤:
S31,将用户的顶层模块usr_top通过局部综合的方式生成用户逻辑网表文件;
S32,将用户逻辑网表文件和已实现的接口逻辑网表文件进行验证,验证自定义用户逻辑接口信号是否匹配提前实现的接口逻辑模块内的信号;
S33,将用户逻辑网表文件和已实现的接口逻辑网表文件进行联合布局、布线生成比特流文件,再使用布局和布线工具生成可下载的比特流文件;
所述脚本包括:
脚本1:compile.sh将会首先调用EDA工具用于后续的综合、实现,接着读入creat_usr_project.tcl、run_usr_synth.tcl和generate_bit.tcl三个脚本;
脚本2:creat_usr_project.tcl该脚本将会导入用户的逻辑代码和ip,并建立用户工程usr_prj;
脚本3:run_usr_synth.tcl该脚本将编译和综合用户工程的代码,并生成用户逻辑网表文件;
脚本4:generate_bit.tcl首先该脚本会分别导入用户逻辑网表文件和已实现的接口逻辑网表文件,然后导入设计要求的约束文件;其中的约束文件包含物理约束和时序约束;
所述S4中驱动方法包括以下步骤:
S41,读入图片,并提取图像数据存至内存;
S42,打开PCIe设备配置接口描述符,通过单次读写回传数据检测PCIe是否正常工作;
S43,通过PCIe配置接口发送配置参数,配置参数包括图像宽度col和图像高度row;
S44,打开PCIe设备数据发送接口描述符,调用函数host_to_fpga()发送图像数据;图像数据发送完成后调用配置接口写数据函数write_axi_lite(),发送图像数据写完成信号;
S45,等待FPGA处理完成,并且每隔1s调用配置接口读数据函数read_axi_lite()判断FPGA是否处理完成;当读到FPGA处理完成信号后,打开PCIe设备数据接收接口描述符,调用函数fpga_to_host()读取处理后的图像数据;
S46,将接收到的图像数据写回图片,并下载到本地主机。
2.根据权利要求1所述的方法,其特征在于,所述向用户提供已实现的接口逻辑网表文件,其中已实现的接口逻辑网表文件对应的逻辑接口模块包括图像数据传输模块和图像数据存储模块,图像数据存储模块包含写图像数据控制模块和读图像数据控制模块,分别控制存储单元的读写。
3.根据权利要求2所述的方法,其特征在于,所述图像数据存储模块采用片外存储单元,包括DDR3和/或DDR4。
4.根据权利要求2所述的方法,其特征在于,所述图像数据传输模块包括面向外部接口的PCIe接口和面向用户逻辑模块的用户逻辑接口,其中PCIe接口利用AXI4/Avalon进行访问,用户逻辑接口采用数据包传输协议,包括xx_sop代表数据包起始信号,xx_eop代表数据包结束信号,xx_vld代表数据有效信号和xx_data代表图像数据。
CN202110202122.9A 2021-02-23 2021-02-23 一种基于fpga云的图像处理硬件逻辑hdl模块的线上验证方法 Active CN113065299B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110202122.9A CN113065299B (zh) 2021-02-23 2021-02-23 一种基于fpga云的图像处理硬件逻辑hdl模块的线上验证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110202122.9A CN113065299B (zh) 2021-02-23 2021-02-23 一种基于fpga云的图像处理硬件逻辑hdl模块的线上验证方法

Publications (2)

Publication Number Publication Date
CN113065299A CN113065299A (zh) 2021-07-02
CN113065299B true CN113065299B (zh) 2024-01-09

Family

ID=76558884

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110202122.9A Active CN113065299B (zh) 2021-02-23 2021-02-23 一种基于fpga云的图像处理硬件逻辑hdl模块的线上验证方法

Country Status (1)

Country Link
CN (1) CN113065299B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114760290B (zh) * 2022-05-07 2024-04-12 北京字跳网络技术有限公司 一种应用开发方法、装置、电子设备及存储介质
CN117852485A (zh) * 2024-03-01 2024-04-09 芯能量集成电路(上海)有限公司 一种fpga布局布线方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012007955A1 (en) * 2010-07-12 2012-01-19 Prashant Nilkund Method of implementing iec 61131-3 control specification through verilog hdl description for modeling, simulation and synthesis of control logic configuration for integrated circuit implementation
CN109656672A (zh) * 2017-10-11 2019-04-19 阿里巴巴集团控股有限公司 一种文件加载方法及系统
CN110059395A (zh) * 2019-04-12 2019-07-26 云南师范大学 一种红外成像自动聚焦fpga系统的可视化调试方法
CN111324558A (zh) * 2020-02-05 2020-06-23 苏州浪潮智能科技有限公司 数据处理方法、装置、分布式数据流编程框架及相关组件
CN111431749A (zh) * 2020-03-27 2020-07-17 重庆海云捷迅科技有限公司 一种fpga云服务器管理平台及其使用方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012007955A1 (en) * 2010-07-12 2012-01-19 Prashant Nilkund Method of implementing iec 61131-3 control specification through verilog hdl description for modeling, simulation and synthesis of control logic configuration for integrated circuit implementation
CN109656672A (zh) * 2017-10-11 2019-04-19 阿里巴巴集团控股有限公司 一种文件加载方法及系统
CN110059395A (zh) * 2019-04-12 2019-07-26 云南师范大学 一种红外成像自动聚焦fpga系统的可视化调试方法
CN111324558A (zh) * 2020-02-05 2020-06-23 苏州浪潮智能科技有限公司 数据处理方法、装置、分布式数据流编程框架及相关组件
CN111431749A (zh) * 2020-03-27 2020-07-17 重庆海云捷迅科技有限公司 一种fpga云服务器管理平台及其使用方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
基于FPGA的双边滤波算法;黄继业等;实验室研究与探索;全文 *
复杂数字逻辑系统的可重构组件式建模与验证;周雯;知网;全文 *
跨域公有云新兴服务的性能与费用测量平台设计与实现;王秀秀;知网;全文 *
面向工业互联网的立体停车库智能监控系统的研究与设计;杨磊;知网;全文 *

Also Published As

Publication number Publication date
CN113065299A (zh) 2021-07-02

Similar Documents

Publication Publication Date Title
CN113065299B (zh) 一种基于fpga云的图像处理硬件逻辑hdl模块的线上验证方法
US20210081258A1 (en) Synthesis Path For Transforming Concurrent Programs Into Hardware Deployable on FPGA-Based Cloud Infrastructures
US6769622B1 (en) System and method for simulating universal serial bus smart card device connected to USB host
CN106371954B (zh) 基于10位从机地址的i2c总线验证的方法及系统
CN108268414B (zh) 基于spi模式的sd卡驱动器及其控制方法
US20160092118A1 (en) Memory write management in a computer system
US8239708B2 (en) System on chip (SoC) device verification system using memory interface
CN109977702A (zh) 一种基于ds2432芯片的fpga设备加密认证系统和方法
CN111858104B (zh) 多端适配的表单生成方法、装置、设备和介质
CN102147831A (zh) 逻辑验证方法和装置
CN113282439B (zh) eMMC测试方法、装置、可读存储介质及电子设备
Humbel et al. A Model-Checked I 2 C Specification
CN113515395A (zh) 一种基于多云管理平台的应用接入方法及装置
CN116132186B (zh) 一种安全算法模块的验证方法、装置、电子设备以及存储介质
US8291270B2 (en) Request processing device, request processing system, and access testing method
WO2014000299A1 (zh) 串口重定向处理方法、设备和系统
US6810438B1 (en) Method for enabling value-added feature on hardware devices using a confidential mechanism to access hardware registers in a batch manner
US20020137501A1 (en) Systems and methods for wireless memory programming
TWI231441B (en) Automated integration method of hardware/software interface for SIP development
CN108897702A (zh) 一种验证内存可用性的方法和系统
TWI724638B (zh) 在自動櫃員機中使用載具驗證身分以開戶之系統及方法
CN114428702A (zh) 含有通用接口模块的信息物理测试系统
CN109445686B (zh) 一种存储磁盘以及存取数据的方法
CN103914329B (zh) 编译程序的方法和装置
US7702764B1 (en) System and method for testing network protocols

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