一种基于FPGA云平台的硬仿验证流程实现的方法技术

技术编号:37389092 阅读:14 留言:0更新日期:2023-04-27 07:27
本发明专利技术公开了一种基于FPGA云平台的硬仿验证流程实现的方法,客户端获取用户设计的源码文件,编译综合源码文件,生成实例树和资源占用情况;指定全局实例,将用户设计的实例拆分成小的实例模块;根据拆分的实例模块,生成不同模块之间的信号流图;用户在遵循一定的原则下通过客户端操作将拆分的实例模块划分到不同的FPGA内;通过客户端指定不同FPGA之间信号的属性,配置连接端口,插入探针;生成FPGA子工程top文件,并编译生成子工程位流,进行加密后发送指云平台服务器;在客户端配置触发条件,云平台部署运行仿真程序,调试查看波形数据并发送至客户端显示。满足大型芯片设计的硬件仿真的验证需求,且保护了用户的知识产权。且保护了用户的知识产权。且保护了用户的知识产权。

【技术实现步骤摘要】
一种基于FPGA云平台的硬仿验证流程实现的方法


[0001]本专利技术属于电子设计自动化
,特别是涉及一种基于FPGA云平台的硬仿验证流程实现的方法。

技术介绍

[0002]随着芯片的设计规模越来越大,单FPGA因其资源限制,无法满足大规模芯片设计的验证需求,加之FPGA价格昂贵,使得基于FPGA的硬件仿真云平台(以下简称云平台)应运而生,云平台既能为大型芯片设计的验证提供服务,也能为小规模的芯片设计提供验证服务。云平台管理多FPGA,多FPGA之间通过其特殊的链接保证多个FPGA之间能协同工作。
[0003]因为芯片的设计涉及到知识产权及软件的保护,用户不可能将芯片设计的源码上传到服务器,因此只能在客户自己环境生成多FPGA子工程,通过加密上传位流文件到云平台完成芯片验证工作。本方法就是阐述如何在这种使用场景下完成大规模芯片设计硬仿验证的流程。

技术实现思路

[0004]针对以上技术问题,本专利技术提供一种基于FPGA云平台的硬仿验证流程实现的方法。
[0005]本专利技术解决其技术问题采用的技术方案是:
[0006]一种基于FPGA云平台的硬仿验证流程实现的方法,方法包括以下步骤:
[0007]S100:客户端获取用户设计的源码文件,对源码文件进行编译综合,生成实例树,并获取实例树中各节点的资源占用情况;
[0008]S200:接收用户根据实例树和实例树中各节点的资源占用情况输入的全局实例指定指令和划分指令,根据全局实例指定指令指定全局实例,根据划分指令将实例树拆分成多个实例模块;
[0009]S300:根据全局实例和拆分的多个实例模块生成不同模块之间的信号流图;
[0010]S400:获取不同的FPGA的资源占用情况,接收用户根据不同模块之间的信号流图、实例树中各节点的资源占用情况、不同的FPGA的资源占用情况以及预设的信号传输需求输入的配置指令,根据配置指令将拆分的多个实例模块配置到不同的FPGA内并指定不同FPGA之间的信号的属性,根据不同FPGA之间的信号的属性配置连接端口并插入探针,得到中间文件;
[0011]S500:根据中间文件生成FPGA子工程top文件,并编译FPGA子工程top文件生成子工程位流,并将子工程位流进行加密后发送指云平台服务器;
[0012]S600:接收用户配置的波形数据读取触发条件并发送至云平台服务器,云平台服务器部署运行仿真程序,当满足波形数据读取触发条件时,调试查看波形数据并返回至客户端显示。
[0013]优选地,S300包括:
[0014]S310:获取多个实例模块的信号,并通过预设的编译综合工具编译综合成网表;
[0015]S320:根据网表确定实例模块之间所有信号的连接关系,生成不同模块之间的信号流图。
[0016]优选地,配置指令包括FPGA配置指令和信号属性配置指令,S400包括:
[0017]S410:获取不同的FPGA的资源占用情况,接收用户根据不同模块之间的信号流图、实例树中各节点的资源占用情况和不同的FPGA的资源占用情况输入的FPGA配置指令,根据FPGA配置指令将拆分的多个实例模块配置到不同的FPGA内;
[0018]S420:接收用户根据预设的信号传输需求输入的信号属性配置指令,根据信号属性配置指令指定不同FPGA之间的信号的属性,根据不同FPGA之间的信号的属性配置连接端口并插入探针,得到中间文件。
[0019]优选地,S410中FPGA的资源占用要大于配置到当前FPGA中的所有实例模块的资源总占用。
[0020]优选地,S420中信号的属性包括data信号,valid信号和release信号。
[0021]优选地,S600之后还包括:
[0022]若波形数据未达到预期要求,则分析对应的波形数据,根据分析结果修改源代码,并返回S100,直至波形数据达到预期要求。
[0023]上述一种基于FPGA云平台的硬仿验证流程实现的方法,可以满足大型芯片设计的硬件仿真的验证需求,将大型设计拆分成小的模块部署到不同的FPGA上,采用云平台可以满足多用户需求,对不同的用户提供服务,采样用户本地生成位流方案,很好的保护了用户的知识产权。
附图说明
[0024]图1为本专利技术一实施例中一种基于FPGA云平台的硬仿验证流程实现的方法流程图;
[0025]图2为本专利技术另一实施例中一种基于FPGA云平台的硬仿验证流程实现的方法流程图;
[0026]图3为本专利技术一实施例中的划分后的实例树的示意图。
具体实施方式
[0027]为了使本
的人员更好地理解本专利技术的技术方案,下面结合附图对本专利技术作进一步的详细说明。
[0028]在一个实施例中,如图1和2所示,一种基于FPGA云平台的硬仿验证流程实现的方法,方法包括以下步骤:
[0029]S100:客户端获取用户设计的源码文件,对源码文件进行编译综合,生成实例树,并获取实例树中各节点的资源占用情况。
[0030]具体地,用户设计的源码文件是指用硬件描述语言编写的源码,例如verilog编写的.v文件,用于完成芯片的功能设计。
[0031]S200:接收用户根据实例树和实例树中各节点的资源占用情况输入的全局实例指定指令和划分指令,根据全局实例指定指令指定全局实例,根据划分指令将实例树拆分成
多个实例模块。
[0032]S300:根据全局实例和拆分的多个实例模块生成不同模块之间的信号流图。
[0033]在一个实施例中,S300包括:
[0034]S310:获取多个实例模块的信号,并通过预设的编译综合工具编译综合成网表;
[0035]S320:根据网表确定实例模块之间所有信号的连接关系,生成不同模块之间的信号流图。
[0036]具体地,实例模块之间所有信号的连接关系包括信号的输入和输出,预设的编译综合工具为verific软件。
[0037]S400:获取不同的FPGA的资源占用情况,接收用户根据不同模块之间的信号流图、实例树中各节点的资源占用情况、不同的FPGA的资源占用情况以及预设的信号传输需求输入的配置指令,根据配置指令将拆分的多个实例模块配置到不同的FPGA内并指定不同FPGA之间的信号的属性,根据不同FPGA之间的信号的属性配置连接端口并插入探针,得到中间文件。
[0038]在一个实施例中,配置指令包括FPGA配置指令和信号属性配置指令,S400包括:
[0039]S410:获取不同的FPGA的资源占用情况,接收用户根据不同模块之间的信号流图、实例树中各节点的资源占用情况和不同的FPGA的资源占用情况输入的FPGA配置指令,根据FPGA配置指令将拆分的多个实例模块配置到不同的FPGA内;
[0040]S420:客户端接收用户根据预设的信号传输需求输入的信号属性配置指令,根据信号属性配置指令指定不同FPGA之间的信号的属性,根据不同FPG本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于FPGA云平台的硬仿验证流程实现的方法,其特征在于,所述方法包括以下步骤:S100:客户端获取用户设计的源码文件,对所述源码文件进行编译综合,生成实例树,并获取所述实例树中各节点的资源占用情况;S200:接收用户根据所述实例树和所述实例树中各节点的资源占用情况输入的全局实例指定指令和划分指令,根据所述全局实例指定指令指定全局实例,根据所述划分指令将所述实例树拆分成多个实例模块;S300:根据全局实例和拆分的多个实例模块生成不同模块之间的信号流图;S400:获取不同的FPGA的资源占用情况,接收用户根据所述不同模块之间的信号流图、所述实例树中各节点的资源占用情况、所述不同的FPGA的资源占用情况以及预设的信号传输需求输入的配置指令,根据所述配置指令将拆分的多个实例模块配置到不同的FPGA内并指定不同FPGA之间的信号的属性,根据所述不同FPGA之间的信号的属性配置连接端口并插入探针,得到中间文件;S500:根据所述中间文件生成FPGA子工程top文件,并编译所述FPGA子工程top文件生成子工程位流,并将所述子工程位流进行加密后发送指所述云平台服务器;S600:接收用户配置的波形数据读取触发条件并发送至所述云平台服务器,所述云平台服务器部署运行仿真程序,当满足所述波形数据读取触发条件时,调试查看波形数据并返回至所述客户端显示。2.根据权利要求1所...

【专利技术属性】
技术研发人员:赵仕俊周国庆
申请(专利权)人:湖南泛联新安信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1