一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种用于多FPGA仿真验证平台的电路划分方法与流程

2022-06-08 14:03:50 来源:中国专利 TAG:

一种用于多fpga仿真验证平台的电路划分方法
技术领域
1.本发明属于集成电路微电子领域,特别是涉及一种用于多fpga仿真验证平台的电路划分方法。


背景技术:

2.由于晶体管尺寸的缩小和设计过程的改进,现代数字系统的计算能力在过去几年中得到了极大的提高。但是这样增加了设计的复杂性,导致了验证芯片的成本也越来越高。如果设计出来的最终产品不能达到要求,前期投入的资金就会打水漂,因此芯片验证就变得非常重要了。
3.相比于用仿真器或者加速器来进行仿真,fpga(field-programmable gate array,即现场可编程门阵列)更为接近真实的芯片,可以配合开发者进行底层软件的开发。然而,由于fpga和专用集成电路(asic)之间存在巨大的面积、性能和功率差距。因此,一个复杂的soc(系统级芯片)设计不能在单个fpga上原型化,为了克服这个限制,需要多fpga平台来承载一个完整的soc设计。所以要对一个大规模的芯片设计进行划分,使其能够在多fpga仿真验证平台上进行仿真验证。由于对芯片划分会导致仿真的时延增加,从而导致主频下降,所以找到一个优秀的划分策略是非常重要的。
4.现有的划分方法大概可以分为几种,将vlsi(超大规模集成电路,very large scale integration)电路设计建模为图或者超图,节点为可以用来表示电路的单元,边表示各个单元之间的连线。然而,这种建模方式所面临的是拥有上百亿门的门级网表,对这样超大规模的电路进行划分的时候,划分的时间通常比较慢。另一种是根据rtl级(电阻晶体管逻辑电路)电路进行建模的方法,节点是单个instance或者module,边为instance之间的通信信息。这种方法能够大大降低图模型的规模,减少划分的时间,但是划分质量可能不如利用网表建模的方法。
5.另外,上述几种方法只是考虑如何将vlsi电路进行划分,而未考虑划分之后的放置工作。因为对电路进行划分的目的是为了进行并行加速验证,在进行验证的时候不希望划分的结果影响最终仿真验证的主频。所以在进行划分的时候应该将多fpga仿真验证平台的信息考虑进去,通过不断地迭代来获取最优的电路划分策略。


技术实现要素:

6.针对以上技术问题,本发明提供一种用于多fpga仿真验证平台的电路划分方法。
7.本发明解决其技术问题采用的技术方案是:一种用于多fpga仿真验证平台的电路划分方法,方法包括以下步骤:步骤s100:获取电路中的verilog项目源码;步骤s200:对verilog项目源码进行解析,获取每个模块的资源信息以及模块之间的连线信息;步骤s300:根据每个模块的资源信息以及模块之间的连线信息进行建模,建模为
由节点和边组成的无向图模型;步骤s400:以边的位宽为权重进行最小切原则对无向图模型进行划分得到划分后的无向图模型;步骤s500:根据划分后的无向图模型对多fpga仿真验证平台进行全局资源配置,将划分后的无向图模型映射到多fpga仿真验证平台的对应fpga上;步骤s600:对映射后的fpga仿真验证平台进行测试得到主频结果,检测到映射后的fpga仿真验证平台满足预设的约束条件以及主频结果满足预设的任务需求后,完成电路划分。
8.优选地,步骤s200中模块的资源信息包括该模块要用到的实际硬件资源,连线信息包括模块之间通信的信号的位宽信息和信号的类型信息。
9.优选地,步骤s300中的节点为预设数量的资源组成的向量,节点包括多个模块,其中,预设划分的fpga块内的资源能满足预设数量的资源;边包括多个信号,且每个信号都有对应的属性向量,属性向量包括所在的组、位宽以及信号类型,其中信号类型包括紧耦合信号和松耦合信号。
10.优选地,划分后的无向图模型包括多个块以及切边集合,每个块中包括多个节点,块与块之间通过切边连接,每一个块对应一个fpga。
11.优选地,多fpga仿真验证平台包括与块的数量对应的fpga,fpga为多种资源组成的向量,作为多fpga仿真验证平台的节点,fpga之间为全连接,fpga之间的物理连线为边,包括带宽信息以及信号类型,其中,带宽信息中的最大带宽为引脚数量和tdm比率的乘积。
12.优选地,步骤s500中根据划分后的无向图模型对多fpga仿真验证平台进行全局资源配置包括:根据划分后得到的多个块以及切边集合对多fpga仿真验证平台配置搭载多fpga仿真验证平台的板的内部gth端口数量以及每个gth的信带宽,以及配置每个fpga的端口之间的通信带宽,其中,gth端口用于传输松耦合信号,fpga的端口用于传输紧耦合信号。
13.优选地,预设的约束条件包括节点约束和边带宽约束,节点约束包括每一fpga提供的资源能够容纳对应块所需的资源量,边带宽约束包括划分后的无向图模型的切边总位宽不大于fpga边能提供的最大带宽。
14.优选地,步骤s600还包括:检测到映射后的fpga仿真验证平台不满足预设的约束条件或主频结果不满足预设的任务需求时,返回步骤s400。
15.上述一种用于多fpga仿真验证平台的电路划分方法,实现了通过考虑用户设计和多fpga仿真验证平台的资源信息,通过无向图模型建模、对无向图模型划分、将划分后的无向图模型映射至多fpga仿真验证平台,最后进行验证,最终找到适合该用户设计和多fpga仿真验证平台的划分映射策略。
附图说明
16.图1为本发明的一种用于多fpga仿真验证平台的电路划分方法流程图;图2为本发明一实施例一种用于多fpga仿真验证平台的电路划分方法流程示意图。
具体实施方式
17.为了使本技术领域的人员更好地理解本发明的技术方案,下面结合附图对本发明作进一步的详细说明。
18.鉴于如今的用户设计规模越来越大,对超大规模的图进行划分的时候也会考虑如何降低图的规模,然后再进行划分。本发明提出了一种考虑用户设计和多fpga仿真验证平台的迭代划分方法,通过评估最后仿真验证的结果来优化划分策略。
19.在一个实施例中,如图1所示,一种用于多fpga仿真验证平台的电路划分方法,方法包括以下步骤:步骤s100:获取电路中的verilog项目源码。
20.具体地,源码中包括module(模块)和fpga的端口信息。
21.步骤s200:对verilog项目源码进行解析,获取每个模块的资源信息以及模块之间的连线信息。
22.具体地,为了用多fpga仿真验证平台对用户设计的vlsi电路进行仿真验证,需要先对用户设计进行建模。建模的依据是verilog源码,通过代码解析工具对源码进行解析,获取每个module的资源信息,以及module之间的连线信息。
23.在一个实施例中,步骤s200中模块的资源信息包括该模块要用到的实际硬件资源,连线信息包括模块之间通信的信号的位宽信息和信号的类型信息。
24.具体地,实际硬件资源包括lut等资源,用于综合源码所需要的实际硬件资源。
25.步骤s300:根据每个模块的资源信息以及模块之间的连线信息进行建模,建模为由节点和边组成的无向图模型。
26.在一个实施例中,步骤s300中的节点为预设数量的资源组成的向量,节点包括多个模块,其中,预设划分的fpga块内的资源能满足预设数量的资源;边包括多个信号,且每个信号都有对应的属性向量,属性向量包括所在的组、位宽以及信号类型,其中信号类型包括紧耦合信号和松耦合信号。
27.具体地,节点对应附图2中的节点rlm0-节点rlm3,每个节点中的小圆点对应为模块,节点rlm是由多个module组成的,提前指定某些module为一个节点rlm。因为节点rlm是由多个module组成的,因此节点rlm的资源信息等于其内部多个module资源之和;由于module之间有各种关联信息,当多个module指定为一个rlm时,rlm与其他rlm连线信息由其内部的module连线信息组成。预设数量为根据实际情况进行限定,在本实施例中,预设数量为10。
28.在一个实施例中,划分后的无向图模型包括多个块以及切边集合,每个块中包括多个节点,块与块之间通过切边连接,每一个块对应一个fpga。
29.在一个实施例中,多fpga仿真验证平台包括与块的数量对应的fpga,fpga为多种资源组成的向量,作为多fpga仿真验证平台的节点,fpga之间为全连接,fpga之间的物理连线为边,包括带宽信息以及信号类型,其中,带宽信息中的最大带宽为引脚数量和tdm比率的乘积。
30.步骤s400:以边的位宽为权重进行最小切原则对无向图模型进行划分得到划分后的无向图模型。
31.步骤s500:根据划分后的无向图模型对多fpga仿真验证平台进行全局资源配置,
将划分后的无向图模型映射到多fpga仿真验证平台的对应fpga上。
32.具体地,划分多个rlm节点组成一个块,映射就是将划分后的无向图模型中的块和fpga进行一一对应,表示这个块会由指定的fpga进行综合。由于划分后的无向图模型比根据网表建模的模型的规模小得多,可以考虑将划分后的无向图模型直接映射到多fpga仿真验证平台上。由于rlm节点是可单独综合的,所以不需要考虑划分后分区无法综合的情况。
33.在一个实施例中,步骤s500中根据划分后的无向图模型对多fpga仿真验证平台进行全局资源配置包括:根据划分后得到的多个块以及切边集合对多fpga仿真验证平台配置搭载多fpga仿真验证平台的板的内部gth端口数量以及每个gth端口的信带宽,以及配置每个fpga的端口之间的通信带宽,其中,gth端口用于传输松耦合信号,fpga的端口用于传输紧耦合信号。
34.具体地,用户设计无向图模型建立完成时,可以根据无向图模型的rlm节点需要的资源配置fpga仿真验证平台中每个fpga的资源,保证fpga能够综合多个rlm组成的块所要用到的资源。
35.根据建模成的无向图模型对多fpga仿真验证平台进行全局资源配置,包括每个搭载多fpga仿真验证平台的板的内部gth端口数量以及每个gth端口的通信带宽需求。在进行完网络配置后,对每个fpga的端口之间的通信带宽进行配置,使其能够满足用户设计的需求。
36.单块板包括多块fpga,gth端口是用于传输松耦合信号,gth端口的端口数量是由用户设计设置的,fpga的端口是用于传输紧耦合信号,在用户设计的切分会产生切边,在板内部的fpga之间需要利用这些端口来传输信号,所以根据这些切边来确定fpga的端口。
37.步骤s600:对映射后的fpga仿真验证平台进行测试得到主频结果,检测到映射后的fpga仿真验证平台满足预设的约束条件以及主频结果满足预设的任务需求后,完成电路划分。
38.具体地,映射完成后,评估整个用户设计布置到多fpga仿真验证平台上之后的映射结果,进行测试,是否满足预设的约束条件,以及观察fpga反正验证平台的主频,若满足预设的约束条件以及主频结果满足用户指定的要求,完成电路划分,整体流程示意图如图2所示。
39.进一步地,主频评估方法包括:1、获取块的信息和硬件仿真平台信息;2、根据块的信息和硬件仿真平台信息将各块放置到对应fpga上,块与块之间的信号通过对应fpga之间的物理连线进行传输;3、获取传输的信号的数量以及物理连线的数量,判断传输的信号的数量是否大于物理连线的数量,若是,则为块之间的组内信号进行tdm(时分复用技术,time-division multiplexing)分配,以使每个信号能通过所有物理连线传输;4、计算得到各fpga之间每个端口对的tdm比率,根据各个端口对的tdm比率、根据fpga平台的参数、信号到达的预设拍数计算得出各fpga对之间端口对之间的时延,取硬件仿真平台中所有fpga对中端口对时延的最大值作为本次评估的时延;5、根据时延和预设的时延-主频对应关系得到主频评估结果。
40.步骤3中的为块之间的组内信号进行tdm分配,包括:各块之内的信号会被分成多个组,每个组内包括多个拥有相同属性的信号,各fpga之间有多个端口对,每个端口对里包含多条物理连线,将块内的组内信号分配到对应端口对上进行路由从而完成tdm分配。
41.步骤4中根据各个端口对的tdm比率、根据fpga平台的参数、信号到达的预设拍数计算得出各fpga对之间端口对之间的时延,具体为:其中,为fpgai和fpgaj之间的时延,表示选择的时分复用,表示fpga上的布局布线、信息编解码产生的时延以及信号收发产生的固定时延,为进行完tdm分配之后每个端口对上的tdm比率,为信号到达的预设拍数。
42.在一个实施例中,预设的约束条件包括节点约束和边带宽约束,节点约束包括每一fpga提供的资源能够容纳对应块所需的资源量,边带宽约束包括划分后的无向图模型的切边总位宽不大于fpga边能提供的最大带宽。
43.在一个实施例中,步骤s600还包括:检测到映射后的fpga仿真验证平台不满足预设的约束条件或主频结果不满足预设的任务需求时,返回步骤s400。
44.具体地,映射后的fpga仿真验证平台不满足预设的约束条件或主频结果不满足预设的任务需求时,返回步骤s400,对无向图模型进行重新划分,然后产生新的块,将每个块重新放置到fpga上进行综合,再测试fpga的主频,直至最终满足任务需求。
45.上述一种用于多fpga仿真验证平台的电路划分方法,解决rtl级电路划分策略以及划分之后放置的性能评估问题,根据划分产生的结果指导接下来的划分工作,实现了通过考虑用户设计和验证平台的资源信息,通过迭代的方法,不断优化映射策略,最终找到适合该用户设计和验证平台的映射策略,找到最优的划分策略。
46.以上对本发明所提供的一种用于多fpga仿真验证平台的电路划分方法进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献