时间:2025-04-07 来源:FPGA_UCY 关于我们 0
本发明专利技术提出一种云原生的硬件逻辑仿真FPGA加速方法和系统,包括:基于松耦合FPGA集群构建硬件逻辑仿真加速平台,将每个FPGA节点划分为用于承载加速平台提供功能的静态逻辑区和多个具有相同逻辑资源规模用于承载待仿真目标逻辑电路的动态逻辑区;配套的定制化工具可获取当前加速平台每个租户的待仿真硬件设计,并插入仿真控制电路;配套工具可生成可部署于若干动态逻辑区的FPGA配置文件;运行于FPGA节点内紧耦合集成处理器上的仿真软件,控制FPGA节点上的硬件设计的运行,每个FPGA节点动态逻辑区产生仿真数据,将FPGA节点电路内部的状态数据作为仿真结果回传给租户;同时通过各FPGA节点静态逻辑区与其他FPGA节点的进行仿真数据交互,以便支持大规模逻辑电路仿真运行。行。行。
全部详细技术资料下载
【技术实现步骤摘要】
一种云原生的硬件逻辑仿真FPGA加速方法及系统
[0001]本专利技术涉及芯片设计、仿真和调试
,并特别涉及一种云原生的硬件逻辑仿真FPGA加速方法及系统。
技术介绍
[0002]各类处理器芯片正面临逻辑设计规模不断增长和上市时间(time
‑
to
‑
)一再压缩的挑战。在处理器芯片设计调试阶段,需要使用软件仿真器对处理器芯片硬件逻辑设计进行仿真调试。软件逻辑仿真虽然可提供处理器设计全部逻辑信号的可观测性,但仿真速度偏慢。特别是随着应用场景不断更新变化,单处理核心及完整处理器芯片设计规模大幅增长,导致处理器芯片设计复杂度提升,加剧了处理器设计逻辑功能验证与调试的难度。
[0003]另一种对处理器逻辑设计进行验证调试的方法是使用硬件可编程器件FPGA对处理器设计进行硬件原型验证。在原型验证过程中,需要将处理器硬件设计经过FPGA工具转换为可编程的配置文件;经编程配置后即可将被测处理器运行在FPGA上。由于运行在真实的硬件环境中,FPGA原型验证可提高处理器设计功能正确性验证的速度。但由于FPGA芯片内部的逻辑资源往往极为有限,不能完整记录被测设计的全部逻辑信号状态,无法提供像软件仿真器一样提供友好的调试环境。
[0004]为兼顾逻辑仿真的性能和信号可观测性,基于FPGA加速的逻辑仿真是一种可行的解决方案。FPGA加速的逻辑仿真是在被测处理器设计中插入特定的仿真控制电路,从而利用真实硬件获得比软件仿真器更好的仿真性能,并通过定制软件工具实现被测设计全部逻辑信号的周期精确、比特精确观测。然而,目前专用的逻辑仿真FPGA加速平台及配套工具(如基于FPGA构建的 ZeBu、等)往往费用高昂且使用过程繁复,芯片设计团队需划分造成极高的使用门槛,降低芯片设计敏捷度。
[0005]另一方面,随着数据中心内FPGA器件的部署规模不断增长,将FPGA作为一类可共享使用的公有云计算资源,供租户按需租用并部署定制的硬件加速器设计已成为重要趋势。亚马逊AWS于2016年首次推出可租用的FPGA计算实例;国内阿里云、腾讯云、华为云等互联网头部企业也纷纷跟进,推出FPGA公有云基础设施及租用服务。与本地FPGA开发方式不同,用户因无法物理连接云FPGA板卡,造成传统FPGA硬件逻辑调试手段无法使用,亟需提供一种云原生的FPGA硬件逻辑调试方法。
[0006]现有基于FPGA加速的专用逻辑仿真平台,虽然可提供1
‑
10MHz的寄存器传输级(RTL)代码或网表的逻辑仿真速率,但仍存在如下问题:
[0007]1)现有FPGA仿真加速与原型验证平台中,大规模FPGA芯片或板卡采用紧耦合互连方式,即通过时分复用方法使用FPGA芯片的普通I/O引脚进行pin
‑
to
‑
pin数据传输。但随着被测设计的规模不断增长,紧耦合平台受固定拓扑结构的限制,无法灵活的进行资源扩展,从而限制了可支持仿真加速或原型验证的被测设计规模。特别是随着设计规模不断增长,有限规模的仿真加速平台也无法满足验证需求,导致验证质量降低。
[0008]2)现有FPGA仿真加速平台与工具需要投入高昂的购置成本,造成芯片设计团队无法购置足够量的仿真加速算力以满足团队需求。一方面,有限的仿真加速资源会造成芯片设计团队无法对目标设计开展大规模验证,降低验证效率。
[0009]现有FPGA云硬件调试方法面临的问题:
[0010]1)虽然FPGA云已得到规模化商用,但云上FPGA硬件逻辑调试方法仍依赖于传统的r(ELA)方式,并通过基于网络或PCIe接口的虚拟调试接口(如等)为用户提供调试控制。但该方式与传统FPGA调试方法类似,受FPGA芯片内部较为有限的逻辑资源容量限制,不能完整记录被测设计的全部逻辑信号状态。同时,ELA对逻辑信号的状态监控需由专用的逻辑触发条件控制,不能提供周期精确的硬件逻辑运行状态监控。
[0011]2)现有云FPGA计算资源往往以独占方式提供给租户使用,未来可能会出现多租户共享使用FPGA的模式。然而,现有云FPGA调试机制需要租户独占使用ELA及相关的FPGA片上调试资源与接口,无法支持多租户硬件逻辑调试需要。
技术实现思路
[0012]具体来说,本专利技术提出一种云原生的硬件逻辑仿真FPGA加速方法,其中包括:
[0013]步骤1、基于松耦合FPGA集群构建硬件逻辑仿真加速平台,该加速平台包括数据中心顶层交换机和多个松耦合FPGA集群机架,每台松耦合FPGA集群机架包括一台交换机和与该交换机相连的多个FPGA节点,每台交换机均与该数据中心顶层交换机相连;
[0014]步骤2、将每个该FPGA节点划分为用于承载加速平台提供功能的静态逻辑区和多个具有相同逻辑资源规模用于承载用户逻辑的动态逻辑区,获取当前该加速平台每个租户的待仿真硬件设计,并插入仿真控制电路,对插入控制电路的硬件设计进行FPGA逻辑综合、布局布线操作,生成FPGA节点的配置文件,以对FPGA节点的该动态逻辑区进行配置;
[0015]步骤3、运行于FPGA节点内集成处理器上的仿真软件,控制FPGA节点上的硬件设计的运行,每个该FPGA节点动态逻辑区产生仿真数据,并通过其静态逻辑区与其他FPGA节点的进行仿真数据交互,最终通过用户操作接口,将FPGA节点电路内部的状态数据作为仿真结果回传给租户。
[0016]所述的云原生的硬件逻辑仿真FPGA加速方法,其中该步骤2插入仿真控制电路时,识别待仿真逻辑内部的每一个时钟驱动的寄存器和存储器,并按识别顺序依次插入扫描链逻辑,并记录各寄存器和存储器在扫描链中的位置;按照FPGA的逻辑综合与布局布线方式,生成可部署在云FPGA上的配置文件;在仿真加速运行阶段,当仿真加速控制软件在暂停仿真电路后,将通过可寻址访问的控制寄存器,依次从扫描链中读出各寄存器和存储器状态值,并根据已获取的各寄存器和存储器在扫描链中的位置信息,确定各寄存器和存储器状态值。
[0017]所述的云原生的硬件逻辑仿真FPGA加速方法,其中该步骤2插入仿真控制电路时,识别待仿真逻辑内部的每一个时钟驱动寄存器,生成所有寄存器电路的网表名称列表;按已获取的寄存器网表名称,生成一个对所有寄存器标记的约束文件,确保已标记寄存器名称在FPGA逻辑综合阶段,不会被修改;按照FPGA的逻辑综合与布局布线方式,生成可部署在云FPGA上的配置文件;在生成的过程中,同步生成一个
文件,用于标记各寄存器和存储器在FPGA芯片上的位置信息;在仿真加速运行阶段,当仿真加速控制软件在暂停仿真电路后,通过使用功能,读出当前FPGA内部各寄存器和存储器的状态,并结合该文件,恢复用户逻辑设计中各
【技术保护点】
【技术特征摘要】
1.一种云原生的硬件逻辑仿真FPGA加速方法,其特征在于,包括:步骤1、基于松耦合FPGA集群构建硬件逻辑仿真加速平台,该加速平台包括数据中心顶层交换机和多个松耦合FPGA集群机架,每台松耦合FPGA集群机架包括一台交换机和与该交换机相连的多个FPGA节点,每台交换机均与该数据中心顶层交换机相连;步骤2、将每个该FPGA节点划分为用于承载加速平台提供功能的静态逻辑区和多个具有相同逻辑资源规模用于承载用户逻辑的动态逻辑区,为配合上述FPGA逻辑区域划分方法,通过定制化工具链,获取当前该加速平台每个租户的待仿真硬件设计,并插入仿真控制电路,对插入控制电路的硬件设计进行FPGA逻辑综合、布局布线操作,生成FPGA节点的配置文件,以对FPGA节点的该动态逻辑区进行配置;步骤3、运行于FPGA节点内紧耦合集成处理器上的仿真软件,控制FPGA节点上的硬件设计的运行,每个该FPGA节点动态逻辑区产生仿真数据,并通过其静态逻辑区与其他FPGA节点的进行仿真数据交互,实现大规模逻辑电路仿真,最终将FPGA节点内相关电路内部的状态数据作为仿真结果回传给租户。2.如权利要求1所述的云原生的硬件逻辑仿真FPGA加速方法,其特征在于,该步骤2插入仿真控制电路时,识别待仿真逻辑内部的每一个时钟驱动的寄存器和存储器,并按识别顺序依次插入扫描链逻辑,并记录各寄存器和存储器在扫描链中的位置;按照FPGA的逻辑综合与布局布线方式,生成可部署在云FPGA上的配置文件;在仿真加速运行阶段,当仿真加速控制软件在暂停仿真电路后,将通过可寻址访问的控制寄存器,依次从扫描链中读出各寄存器和存储器状态值,并根据已获取的各寄存器和存储器在扫描链中的位置信息,确定各寄存器和存储器状态值。
3.如权利要求1所述的云原生的硬件逻辑仿真FPGA加速方法,其特征在于,该步骤2插入仿真控制电路时,识别待仿真逻辑内部的每一个时钟驱动寄存器,生成所有寄存器电路的网表名称列表;按已获取的寄存器网表名称,生成一个对所有寄存器标记的约束文件,确保已标记寄存器名称在FPGA逻辑综合阶段,不会被修改;按照FPGA的逻辑综合与布局布线方式,生成可部署在云FPGA上的配置文件;在生成的过程中,同步生成一个文件,用于标记各寄存器和存储器在FPGA芯片上的位置信息;在仿真加速运行阶段,当仿真加速控制软件在暂停仿真电路后,通过使用功能,读出当前FPGA内部各寄存器和存储器的状态,并结合该文件,恢复用户逻辑设计中各寄存器和存储器的确定输出值。4.如权利要求1所述的云原生的硬件逻辑仿真FPGA加速方法,其特征在于,该步骤3中该仿真信号在FPGA节点间进行交互的方式,包括一个位于静态区的硬件通信协议栈,为松耦合FPGA集群跨芯片通信提供可靠性保障,以支持更大规模的逻辑电路仿真加速;该协议栈用于接收端FPGA在收到数据分片后,将产生ACK应答,通知发送端FPGA已接收的分片编号,表明小于等于当前分片编号的数据包都已收到;发送端FPGA在收到应答前,需要维护所有已发送的数据分片窗口;如在规定时间内收到应答,即可以将对应的数据包释放;否则重新发送分片窗口内的所有数据分片。5.一种云原生的硬件逻辑仿真FPGA加速系统,其特征在于,包括:加速平台构建模块,用于基于松耦合FPGA集群构建硬件逻辑仿真加速平台,该加速平台...
【专利技术属性】
技术研发人员:常轶松,陈欲晓,张科,陈明宇,包云岗,
申请(专利权)人:中国科学院计算技术研究所,
类型:发明
国别省市:
全部详细技术资料下载 我是这个专利的主人