掌桥专利:专业的专利平台
掌桥专利
首页

网表的分割方法、电路的仿真方法

文献发布时间:2023-06-19 19:30:30


网表的分割方法、电路的仿真方法

技术领域

本发明涉及电路仿真的技术领域,尤其涉及一种基于整数线性规划的网表分割方法。

背景技术

基于纯软件的大规模集成电路的系统仿真验证效率非常低,将大大增加芯片研发周期,尤其对14纳米以下先进制程的大规模集成电路芯片而言,是不可忍受的。因此业界推崇利用基于多FPGA系统的硬件仿真加速技术来加快芯片的系统仿真验证。

在多FPGA系统的硬件仿真加速器中将芯片设计分割到多个FPGA中的效果将直接影响硬件仿真加速器中芯片设计的运行主频,从而影响芯片仿真的效率。

常用的分割方法多为单一针对门级网表或RTL级网表转化超图后进行分割,无法针对多层级网表形成通用的分割方法,因此如何将设计网表快速高效且效果较好的分割到多个FPGA的通用方法成为了一个亟待解决的问题。

发明内容

为了解决现有技术中网表分割方法未能兼容门级或RTL级网表的技术问题,本发明提出了网表的分割方法、电路的仿真方法。

本发明提出的网表的分割方法,包括:

获取网表中所有的最小逻辑单元以及最小逻辑单元的连线关系,并将每一个最小逻辑单元作为一个节点;

基于硬件信息文件得到所有验证设备、验证设备的容量以及各验证设备之间的互联关系;

将每一个节点与每一个验证设备的关系作为变量,并根据验证设备的限制对所有变量进行条件约束;

基于最小逻辑单元的连线关系以及每一个节点与每一个验证设备的关系得到每一条连线与每一个验证设备的关系;

根据每一条连线与每一个验证设备的关系以及验证设备之间的互联关系构建目标分割函数;

基于所有变量的条件约束通过求解器对目标分割函数进行求解;

当求解器有解时,得到的求解器的输出为网表的分割结果。

进一步,所述最小逻辑单元的连线关系采用连线节点关系矩阵表示,所述连线节点关系矩阵当中的每一行或者每一列连线表示节点顺次连接所形成的无分支连线。

进一步,所述各验证设备之间的互联关系采用设备互联矩阵表示,所述设备互联矩阵的每一个元素代表该元素所在行对应的验证设备与所在列对应的验证设备之间的互联信号线的数量。

进一步,所述每一个节点与每一个验证设备的关系采用节点设备关系矩阵表示,所述节点设备关系矩阵的每一个元素均为变量,所述变量的取值为0或1。

进一步,所述条件约束包括:每一个节点对应的每一行或每一列的所有变量之和为1;每一个验证设备对应的每一列或每一行的所有变量之和小于等于该验证设备的资源约束。

进一步,当所述最小逻辑单元的连线关系采用连线节点关系矩阵表示,所述每一个节点与每一个验证设备的关系采用节点设备关系矩阵表示时,通过将连线节点关系矩阵与节点设备关系矩阵相乘,得到的连线设备关系矩阵来表示每一条连线与每一个验证设备的关系。

进一步,所述目标分割函数为:

所述Cut表示网表跨验证设备的等效连线数量(即实际连线数量与设备连线容量的比值),d表示验证设备的序号,n表示连线序号,y

本发明提出的电路的仿真方法,包括:

采用上述技术方案所述的网表的分割方法将电路的网表进行分割;

将分割后的网表进行并行仿真处理。

本发明不仅可以兼容门级或者是RTL级设计的网表,同时本发明还考虑了网表逻辑资源以及逻辑互联情况来进行分割,同时还考虑了实际FPGA阵列结构来进行网表的分割布局,因而本发明可以实现效率较高的通用的网表分割方法。本发明可以直接针对门级或RTL级网表进行分割,减少编译流程,并且本发明将分割问题转化为整数线性规划问题,可适配多种第三方求解器进行求解。由于本发明在约束中可考虑FPGA阵列结构,可以得到更适配物理硬件的分割结果。

附图说明

下面结合实施例和附图对本发明进行详细说明,其中:

图1是本发明的一实施例的整体流程图。

具体实施方式

为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

由此,本说明书中所指出的一个特征将用于说明本发明的一个实施方式的其中一个特征,而不是暗示本发明的每个实施方式必须具有所说明的特征。此外,应当注意的是本说明书描述了许多特征。尽管某些特征可以组合在一起以示出可能的系统设计,但是这些特征也可用于其他的未明确说明的组合。由此,除非另有说明,所说明的组合并非旨在限制。

如图1所示,本发明提出的网表的分割方法,主要包括以下步骤。

获取网表中所有的最小逻辑单元以及最小逻辑单元的连线关系,并将每一个最小逻辑单元作为一个节点。通过读取网表输入文件,根据网表的最小逻辑单元构建节点,例如运算逻辑单元operator(门级)或者是基本逻辑单元primitive(寄存器级)等均作为一个节点。同时根据网表中最小逻辑单元的互联关系构建连线(net),以及硬件信息文件(Boardfile文件)。每一条连线均是由各个最小逻辑单元基于信号的传递顺次连接起来的无分支的连线,每一条连线上至少有两个节点。

基于硬件信息文件得到所有验证设备、验证设备的容量以及各验证设备之间的互联关系;验证设备指的就是FPGA,硬件仿真加速器进行并行仿真时根据网表要涉及多个FPGA进行并行仿真,FPGA之间可能具有连接关系,可能不具有连接关系,这里所指的两个FPGA之间具有连接关系指的是FPGA之间可以相互连通的物理的信号线。例如FPGA1和FPGA2之间具有相互连通的物理的信号线有600根,FPGA2和FPGA3不具有连接关系的物理信号线数量为0。

将每一个节点与每一个验证设备的关系作为变量,并根据验证设备的限制对所有变量进行条件约束;当某一个节点被放置在某一个验证设备中时,则该节点与该验证设备的关系的变量取值为1,当某一个节点不被放置在一个验证设备中时,则该节点与该验证设备的关系的变量取值为0。具体将哪一个节点放到哪一个FPGA中就是本发明要求解的内容,因而每一个节点与每一个验证设备的关系均是一个变量。

基于最小逻辑单元的连线关系以及每一个节点与每一个验证设备的关系得到每一条连线与每一个验证设备的关系。通过最小逻辑单元的连线关系,即每一条连线上具有哪些节点是清楚的,然后结合节点与验证设备的关系的变量,可以得到具有对应变量的连线与设备关系。

根据每一条连线与每一个验证设备的关系以及验证设备之间的互联关系构建目标分割函数。该步骤所构建的目标分割函数包含了对应变量,该变量指的是节点与验证设备的关系的变量。

基于所有变量的条件约束通过求解器对目标分割函数进行求解;

当求解器有解时,得到的求解器的输出为网表的分割结果。求解可以得到节点与验证设备的关系的变量的具体取值,即每一个节点所在验证设备的位置信息。

当求解器无解时,则说明无法满足对应的分割要求,报错退出。

本发明通过上述技术方案,直接针对门级或寄存器级(RTL级)网表进行分割,减少了编译流程,同时在约束中可考虑FPGA阵列结构,得到更适配物理硬件的分割结果。

在一个实施例中,本发明的最小逻辑单元的连线关系采用连线节点关系矩阵表示,连线节点关系矩阵当中的每一行或者每一列连线表示节点顺次连接所形成的无分支连线。例如每当连线节点关系矩阵当中的每一行表示一条连线,那么每一列代表一个节点,一条连线对应的每一列的元素就是对应列的节点是否在该连线上的取值,例如当前列对应的节点位于该连线上,则该连线对应的行以及该节点对应的列的元素的取值就是1,反之就是0。

在一个实施例中,各验证设备之间的互联关系采用设备互联矩阵表示,设备互联矩阵的每一个元素代表该元素所在行对应的验证设备与所在列对应的验证设备之间的互联信号线的数量。例如FPGA1和FPGA2之间的连线数量为600,则FPGA1代表的行与FPGA2代表的列对应的元素的取值就是600,同样的,FPGA1代表的列与FPGA2代表的行对应的元素的取值也是600。

在一个实施例中,每一个节点与每一个验证设备的关系采用节点设备关系矩阵表示,节点设备关系矩阵的每一个元素均为变量,变量的取值为0或1。

由于节点放置到验证设备中需要满足验证设备的实际情况,那么在一个实施例中,条件约束可以包括:节点设备关系矩阵中每一个节点对应的每一行或每一列的所有变量之和为1,即一个节点只能被放置到一个FPGA中。节点设备关系矩阵中每一个验证设备对应的每一列或每一行的所有变量之和小于等于该验证设备的资源约束。

当最小逻辑单元的连线关系采用连线节点关系矩阵表示,每一个节点与每一个验证设备的关系采用节点设备关系矩阵表示时,通过将连线节点关系矩阵与节点设备关系矩阵相乘,就可以得到的连线设备关系矩阵来表示每一条连线与每一个验证设备的关系。

在上述技术方案中,目标分割函数具体可以将连线设备关系矩阵中每一行或每一列的验证设备对应的元素相加得到该验证设备的跨设备的连线数量,将设备互联矩阵中每一行或每一列的验证设备对应的元素相加得到该验证设备的互联信号线的数量,将每一个验证设备的跨设备的连线数量除以该验证设备的互联信号线的数量得到每一个验证设备的等效分割线数量,求解所有验证设备的最少等效分割线数量。

目标分割函数可以采用如下公式进行表示:

Cut表示网表跨验证设备的等效连线数量(即实际连线数量与设备连线容量的比值),d表示验证设备的序号,n表示连线序号,y

下面给以矩阵实现为例,来对本发明的一个具体实施例进行详细说明。

在对门级或网表级DUT设计进行全自动分割时,先读取综合后的门级网表级设计,并将网表中的最小逻辑单元作为分割单元进行计数,以统计网表资源情况。

构建节点设备关系矩阵,即下表的Node*Device矩阵,x_0_0等均代表一个变量。

表1节点设备关系矩阵

增加放置约束,表示每个Node仅能放在一个Device中。

增加资源约束,表示每一列中的节点Node的各种资源之和必须不超过该验证设备Device可容纳的资源。R_Nx表示Node x的资源Resource。R_Dx表示验证设备Device x的资源Resource。

根据连线Net的互联信息,建立连线节点关系矩阵,即Net*Node矩阵,表示每条连线net所包含的节点nodes。

表2连线节点关系矩阵

将Net*Node矩阵与Node*Device矩阵相乘可以得到Net*Device的矩阵,即连线设备关系矩阵。此连线设备关系矩阵可表示每一条连线Net在验证设备Device中的映射,也即每一条Net的在Device中的分割结果。

表3连线设备关系矩阵

根据boardfile(硬件信息文件)构建Device*Device矩阵,即设备互联关系矩阵,用来表示验证设备Device之间的互联关系情况。如下表所示,每行都代表了Device X到Device Y的互联容量。

表4设备互联关系矩阵

根据Net*Device矩阵以及Device*Device矩阵可以将Device间的互联情况作为目标函数进行考虑。以mincut为目标,目标函数可表示为:

其中先将Net*Device矩阵中每一列的元素相加得到当前Device的Cut,将Device互联矩阵的列相加得到当前Device的互联容量,相除后进行累加即可得到目标Cut。

基于上述步骤,得到了所需的ILP求解器的条件约束,以及目标函数。可以使用ILP(Integer Linear Programming整数线性规划)求解器进行求解。

当求解器有解是即可输出分割结果,每个x值即为每个Node所在Device的位置信息。若无解则进行报错无解并退出。

本发明还保护电路的仿真方法,该电路的仿真方法采用了上述技术方案的网表的分割方法将电路的网表进行分割,之后将分割后的网表进行并行仿真处理。

本发明的上述网表的分割方法可以针对网表直接进行分割,并且本发明的分割方法通过条件约束可基于FPGA阵列结构进行约束,同时该分割方法还可兼容门级网表以及RTL级设计。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种组合电路门级网表转化为AIGER格式文件的方法
  • 基于网表分割和多线程并行的硬件描述语言仿真加速方法
  • 基于网表分割和多线程并行的硬件描述语言仿真加速方法
技术分类

06120115936082