CN113128151B - 利用多裸片结构fpga布局结果的网表分割方法 - Google Patents
利用多裸片结构fpga布局结果的网表分割方法 Download PDFInfo
- Publication number
- CN113128151B CN113128151B CN202110429194.7A CN202110429194A CN113128151B CN 113128151 B CN113128151 B CN 113128151B CN 202110429194 A CN202110429194 A CN 202110429194A CN 113128151 B CN113128151 B CN 113128151B
- Authority
- CN
- China
- Prior art keywords
- fpga
- die
- layout
- connection
- time sequence
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
- G06F30/347—Physical level, e.g. placement or routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种利用多裸片FPGA布局结果的网表分割方法,涉及FPGA技术领域,该方法从布局角度出发,用差异性时序模型来模拟裸片内部和裸片间的时序代价差异,然后基于差异性时序模型以整个用户输入网表和全芯片结构来看待子网表划分的时序代价函数,然后根据时序驱动布局结果对用户输入网表分割,该方法利用布局算法来解决网表分割时的各个子网表的逻辑资源数量约束及子网表指定分配到哪个裸片的问题,以增加布局约束条件的方式来处理约束分割网表间连接关系数量限制的问题,从而可以快速有效的满足时序设计和资源约束。
Description
技术领域
本发明涉及FPGA技术领域,尤其是一种利用多裸片结构FPGA布局结果的网表分割方法。
背景技术
FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)是一种硬件可编程的逻辑器件,除了应用于移动通信、数据中心等领域,还广泛应用于集成电路设计中的原型验证,能够有效验证电路功能的正确性,同时加快电路设计速度。
随着集成电路规模的不断增大及复杂功能的实现,对FPGA的可编程逻辑单元布局位置的数量的需求不断提高,为了避免芯片面积增大所带来的加工难度的增大和生产良率的降低,目前会利用硅堆叠互连技术(SSI)或其他方式来实现多个FPGA裸片的互连设计,从而构成多裸片FPGA,利用多个FPGA裸片上的逻辑单元布局位置共同实现所需的电路结构。
但这又给多裸片FPGA的布局布线带来了挑战,因此如何将复杂的电路合理排布到多个芯片上以获得较优的性能是多裸片FPGA设计流程中的一个关键问题。在对多裸片FPGA进行布局布线之前,首先需要将多裸片FPGA对应的用户网表分割成多个相连的子网表,每个子网表分别对应一个FPGA裸片,然后根据每个子网表对对应的FPGA裸片进行布局布线。因此对用户网表的分割方式会直接影响多裸片FPGA的布局布线过程,也会影响多裸片FPGA的最终性能。目前在分割用户网表时,通常只会考虑与FPGA裸片所包含的逻辑单元布局位置数量之间的匹配度,也即仅需保证对应的FPGA裸片可以满足子网表的逻辑单元布局位置需求即可,但这种做法往往使得多裸片FPGA的性能难以保证。
发明内容
本发明人针对上述问题及技术需求,提出了一种利用多裸片结构FPGA布局结果的网表分割方法,本发明的技术方案如下:
一种利用多裸片FPGA布局结果的网表分割方法,该方法包括:
根据多裸片FPGA的硬件架构建立得到多裸片FPGA的全芯片结构的差异性时序模型,差异性时序模型包括多裸片FPGA内部的所有逻辑单元布局位置及其之间的连接线以及各条连接线的时序延时值,连接线的长度越长和/或跨越FPGA裸片的数量越多、时序延时值越大;
基于差异性时序模型对用户输入网表在多裸片FPGA的全芯片结构上进行时序驱动布局得到时序驱动布局结果,时序驱动布局结果指示用户输入网表中各个实例模块所在的逻辑单元布局位置;
根据时序驱动布局结果对用户输入网表分割得到各个FPGA裸片各自对应的子网表,每个FPGA裸片对应的子网表包括逻辑单元布局位置位于相应FPGA裸片内的各个实例模块及实例模块之间的网表线网,分割得到的各个子网表之间存在连接关系;
其中,每个FPGA裸片上的逻辑资源数量满足分割得到的对应的子网表的逻辑资源需求,FPGA裸片上的输入信号连接点引出端满足对应的子网表的输入信号数量,FPGA裸片上的输出信号连接点引出端满足对应的子网表的输出信号数量,与多裸片FPGA的IO管脚所连接的FPGA裸片满足对应的子网表的IO口需求。
其进一步的技术方案为,每条连接线的时序延时值包括线基准延时和附加延时,线基准延时与连接线的线长相关且线长越长、线基准延时越大,附加延时与连接线跨越的FPGA裸片的数量相关且跨越的FPGA裸片的数量越多、附加延时越大。
其进一步的技术方案为,跨越不同FPGA裸片的连接线的附加延时的数量级远大于线基准延时的数量级。
其进一步的技术方案为,连接线的附加延时随着其跨越的FPGA裸片的数量的增加而等量增加或增量增加。
其进一步的技术方案为,在对用户输入网表在多裸片FPGA的全芯片结构上进行时序驱动布局的过程中,根据多裸片FPGA在每次布局下的时序代价函数值调整多裸片FPGA的布局直至得到时序驱动布局结果;
时序代价函数值基于多裸片FPGA内所有路径的时序延时值和/或部分预定路径的时序延时值构建,每条路径的时序延时值为路径中各条连接线的时序延时值的总和。
其进一步的技术方案为,基于差异性时序模型对用户输入网表在多裸片FPGA的全芯片结构上进行时序驱动布局,包括:
根据用户输入网表将多裸片FPGA上的IO口排布在指定位置;
对于用户输入网表中的任意一组信号连接关系,在多裸片FPGA的全芯片结构上选定逻辑单元布局位置作为连接点构成一组对应信号连接关系的连接点;
为形成的连接线的时序延时值不满足对应的信号连接关系的时序余量需求的一对连接点添加对应的虚拟加力点,虚拟加力点对一对连接点有相向牵引作用;
按照用户输入网表利用力导向布局算法模型基于多裸片FPGA的全芯片结构上虚拟加力点对相应连接点的牵引作用和指定位置的IO口的牵引作用对多裸片FPGA的全芯片结构进行布局。
其进一步的技术方案为,当第一FPGA裸片和第二FPGA裸片相邻时,在为第一FPGA裸片上的第一连接点和第二FPGA裸片上的第二连接点所形成的一对连接点添加对应的虚拟加力点时:
在第一FPGA裸片上距离第一连接点最近的连接点引出端处添加对第二连接点有牵引作用的虚拟加力点,或者,在第二FPGA裸片上距离第二连接点最近的连接点引出端处添加对第一连接点有牵引作用的虚拟加力点。
其进一步的技术方案为,当第一FPGA裸片和第二FPGA裸片之间间隔至少一个其他FPGA裸片,在为第一FPGA裸片上的第一连接点和第二FPGA裸片上的第二连接点所形成的一对连接点添加对应的虚拟加力点时:
在第一FPGA裸片与第二FPGA裸片之间的任意一个FPGA裸片上距离第一连接点最近的连接点引出端处添加第一虚拟加力点,在同一个FPGA裸片上距离第一虚拟加力点最近的连接点引出端处添加第二虚拟加力点,第一虚拟加力点对第一连接点具有牵引作用、第二虚拟加力点对第二连接点具有牵引作用。
其进一步的技术方案为,进行时序驱动布局得到时序驱动布局结果,包括:
对用户输入网表在多裸片FPGA的全芯片结构上进行时序驱动布局得到初始布局状态;
将初始布局状态各个未被指定合法位置的逻辑单元布局位置摆放至对应的合法位置处,并根据各个FPGA裸片间的连接通道数量以及初始布局状态中FPGA裸片间的信号连接关系的数量调整初始布局状态中的实例模块的逻辑单元布局位置,完成对初始布局状态的布局合法化得到时序驱动布局结果;
其中,合法位置是多裸片FPGA上已被指定给一个可布单元的逻辑单元布局位置。
其进一步的技术方案为,根据各个FPGA裸片间的连接通道数量以及初始布局状态中FPGA裸片间的信号连接关系的数量调整初始布局状态中的实例模块的逻辑单元布局位置,包括:
当两个FPGA裸片间的信号连接关系的数量大于两个FPGA裸片间的连接通道数量时,根据对应的时序余量从小到大的顺序依次调整各组信号连接关系对应的逻辑单元布局位置直至两个FPGA裸片间的信号连接关系的数量小于等于两个FPGA裸片间的连接通道数量。
本发明的有益技术效果是:
本申请公开了一种利用多裸片FPGA布局结果的网表分割方法,该方法从布局角度设计,分割之前以整个用户输入网表和全芯片结构来看待子网表划分的时序代价函数,用差异化的延时模型来模拟裸片内部和裸片间的连接关系,将物理的裸片间差异代价函数化,从而把多裸片网表模型转化为布局时序优化的模型,利用布局算法来解决网表分割时的各个子网表的逻辑资源数量约束及子网表指定分配到哪个裸片的问题,以增加布局约束条件的方式来处理约束分割网表间连接关系数量限制的问题,从而可以快速有效的满足时序设计和资源约束。
附图说明
图1是本申请的网表分割方法的方法流程图。
图2是一个实施例中建立得到的差异性时序模型的结构示意图。
图3是基于图2所示的结构为连接点添加的虚拟加力点的示意图。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步说明。
本申请公开了一种利用多裸片FPGA布局结果的网表分割方法,请参考图1所示的流程图,该方法包括如下步骤:
步骤S1,根据多裸片FPGA的硬件架构建立得到所述多裸片FPGA的全芯片结构的差异性时序模型。
多裸片FPGA中包括多个FPGA裸片,这多个FPGA裸片可以呈一维排布,也可以按照二维堆叠方式排布,也即在水平面上沿着横、纵两个方向排布。每个FPGA裸片内部包括多个逻辑单元布局位置,同一个FPGA裸片中的不同逻辑单元布局位置可以通过FPGA裸片内部连接线存在物理连接关系。同时,两个FPGA裸片之间也具有一定的物理连接关系,具体表现在:硅连接层覆盖所有的FPGA裸片且内部布设有跨裸片连线,两个FPGA裸片中的连接点引出端通过硅连接层内部的跨裸片连线相连,而每个FPGA裸片中的连接点引出端连接在相应FPGA裸片内部信号通路中,也即连接点引出端与FPGA裸片内部的逻辑单元布局位置之间相连。因此逻辑单元布局位置a-连接点引出端a-跨裸片连线-连接点引出端b-逻辑单元布局位置b形成一条物理传输路径,其中逻辑单元布局位置a和连接点引出端a在一块FPGA裸片上,连接点引出端b和逻辑单元布局位置b在另一块FPGA裸片上。
因此在多裸片FPGA内部,有些逻辑单元布局位置之间的连接线位于FPGA裸片内部、有些逻辑单元布局位置之间的连接线跨越多个FPGA裸片而且跨越的裸片数量可能不同,而物理连接关系的不同会导致连接线的时序延时值存在较大差异,且连接线的长度越长和/或跨越FPGA裸片的数量越多、时序延时值越大。因此本申请将多裸片FPGA看做一个整体时,根据多裸片FPGA内部的所有逻辑单元布局位置及相互之间的连接线的物理连接关系以及由物理连接关系所确定的连接线的时序延时值建立得到多裸片FPGA的全芯片结构的差异性时序模型,差异性时序模型包括多裸片FPGA内部的所有逻辑单元布局位置及相互之间的连接线以及每根连接线对应的时序延时值。比如图2示例性的示出了一个实例中,多裸片FPGA内部11个逻辑单元布局位置之间的连接关系,每两个逻辑单元布局位置之间的连接线上的数字表示连接线的时序延时值,单位为ps,图上省略未标注。本申请将连接线经过的裸片间隔的数量作为连接线跨越FPGA裸片的数量,裸片间隔是相邻两个FPGA裸片之间的间隔,比如图2中,逻辑单元布局位置A与逻辑单元布局位置B之间的连接线跨越一个FPGA裸片,而逻辑单元布局位置J与逻辑单元布局位置K之间的连接线跨越两个FPGA裸片。
在一个可选实施例中,也可以分别两步建模得到差异性时序模型,首先软件建模得到多裸片FPGA的全芯片结构的物理连接模型,物理连接模型包括多裸片FPGA内部的所有逻辑单元布局位置及相互之间的连接线,既包括同一个FPGA裸片内的逻辑单元布局位置及其之间的物理连接关系、此时逻辑单元布局位置之间的连接线在同一个FPGA裸片内,也包括不同FPGA裸片内的逻辑单元布局位置及其之间的物理连接关系、此时逻辑单元布局位置之间的连接线跨越一个或多个FPGA裸片。然后按照连接线的长度越长和/或跨越FPGA裸片的数量越多、时序延时值越大的原则,根据每根连接线的物理连接关系为连接线标记相应的时序延时值,进一步由物理连接模型得到差异性时序模型。
在确定各条连接线的时序延时值时,在一个可选的实施例中,每条连接线的时序延时值包括线基准延时和附加延时。其中,线基准延时与连接线的线长相关且线长越长、线基准延时越大。而附加延时与连接线跨越的FPGA裸片的数量相关且跨越的FPGA裸片的数量越多、附加延时越大。根据线长和跨越的FPGA裸片的数量分别确定线基准延时和附加延时后,相加得到连接线的时序延时值。如图2所示,每条连接线上标注的时序延时值由两部分组成,表示为“线基准延时+附加延时”,比如逻辑单元布局位置A和逻辑单元布局位置B之间的时序延时值表示为“150+1000”,表示线基准延时为150ps、附加延时为1000ps。
考虑到跨FPGA裸片所带来的时延影响是大于线长带来的时延影响的,主要表现在线长较短的跨FPGA裸片的连接线的时序延时值,有可能会大于线长较长但在同一个FPGA裸片内的连接线的时序延时值。比如图2中,逻辑单元布局位置D和逻辑单元布局位置E之间的线长大于逻辑单元布局位置D和逻辑单元布局位置C之间的线长,但由于C与D在不同的FPGA裸片上、而D与E在同一个FPGA裸片上,因此实际C与D之间的连接线的时序延时值会大于D与K之间的时序延时值。为了体现这一点,基于上述实施例在另一个可选实施例中,跨越不同FPGA裸片的连接线的附加延时的数量级远大于线基准延时的数量级,远大于表示两者的差值达到预设要求、或者两者之间的倍数达到预设要求,比如图2所示,连接线的附加延时的数量级为千ps,而线基准延时的数量级为百ps,两者之间约为10倍关系。由此得到D与E之间的时序延时值为300ps,而D与C之间的时序延时值为1200ps。而在同一个FPGA裸片内部、不跨越FPGA裸片的连接线的附加延时则通常配置为0ps。由此将跨FPGA裸片的连接线的时序延时值调整为一个较大的值、而将同一个FPGA裸片内的连接线的时序延时值调整为一个较小的值,很好的模拟了跨FPGA裸片对时序延时值的高权重影响。
在上述实施例中,连接线的线基准延时与线长正相关,连接线的线基准延时随着线长的增加而等量增加或增量增加,通常配置为等量增加、也即线基准延时与线长呈线性相关。连接线的附加延时与跨越的FPGA裸片的数量正相关,连接线的附加延时随着其跨越的FPGA裸片的数量的增加而等量增加或增量增加。其中,等量增加也即附加延时与跨越的FPGA裸片的数量呈线性相关,比如跨越零个FPGA也即在同一个FPGA内部的连接线的附加延时为0ps,跨越一个FPGA裸片的连接线的附加延时为1000ps,跨越两个FPGA裸片的连接线的附加延时为2000ps。增量增加是指附加延时随着跨越的FPGA裸片的数量增长的更快,比如跨越零个FPGA也即在同一个FPGA内部的连接线的附加延时为0ps,跨越一个FPGA裸片的连接线的附加延时为1000ps,跨越两个FPGA裸片的连接线的附加延时为3000ps,跨越两个FPGA裸片的连接线的附加延时为7000ps。再比如指数级增长也是一种增量增加的方式,增量增加的方式可以更好的模拟跨FPGA裸片对时序延时值的高权重影响。比如图2以附加延时随着跨越的FPGA裸片的数量的增加而增量增加的情况为例,A与B之间、F与G之间、C与D之间的连接线分别跨越一个FPGA裸片,则这三条连接线的附加延时均为1000ps,而J和K之间的连接线跨越两个FPGA裸片、附加延时为3000ps。
步骤S2,基于差异性时序模型对用户输入网表在多裸片FPGA的全芯片结构上进行时序驱动布局得到时序驱动布局结果。
用户输入网表是针对整个多裸片FPGA的,其总的逻辑资源需求超过其中任意一个FPGA裸片上的逻辑资源数量,但小于等于所有FPGA裸片的逻辑资源数量的总和。用户输入网表包括若干个实例模块以及不同实例模块之间的网表线网,常见的实例模块有GTP、查照表、寄存器、PCIE、EMAC、CMT、BRAM、DSP、IOB等。本申请对全局的用户输入网表在全芯片结构上进行布局,需要利用多裸片FPGA来实现用户输入网表的功能,主要包括如下几个方面:需要利用多裸片FPGA内的逻辑资源实现用户输入网表中的实例模块,以及,需要利用多裸片FPGA内的物理传输路径实现用户输入网表中的信号连接关系,需要利用多裸片FPGA中各个FPGA裸片连接的管脚实现用户输入网表的IO口。
布局需要在既定的优化目标下将用户输入网表中的实例模块排布到对应的逻辑单元布局位置处,本申请将时序特征作为优化目标、对用户输入网表在全芯片上进行时序驱动布局,从而可以在全芯片布局阶段有效提高电路时序性能。
时序驱动布局可以采用现有的各种布局算法实现,本申请的一个实施例利用力导向布局算法模型实现,包括如下步骤:
(1)根据用户输入网表将多裸片FPGA上的IO口排布在指定位置、固定所有IO口的位置。固定IO口位置的方法包括但不限于如下几种:利用IO EDITOR软件工具人为将多裸片FPGA上的至少一个IO口排布在指定的FPGA裸片上的指定位置。或者,按任意序排列将多裸片FPGA上的至少一个IO口排布在指定的FPGA裸片上的指定位置。或者,按照IO自动排布算法将多裸片FPGA上的至少一个IO口排布在指定的FPGA裸片上的指定位置。
(2)在固定好所有IO口位置后,对于用户输入网表中的任意一组信号连接关系,在多裸片FPGA的全芯片结构上选定逻辑单元布局位置作为连接点构成一组对应信号连接关系的连接点。
如上所述,在已经设计好的一款多裸片FPGA中,同一个FPGA裸片内的不同逻辑单元布局位置之间、不同FPGA裸片的不同逻辑单元布局位置之间形成有物理传输路径。而用户输入网表中的不同实例模块之间也是存在信号连接关系的,因此选取连接点的过程也即选定物理传输路径来实现信号连接关系,做法是:对于用户输入网表中的任意一组信号连接关系,在多裸片FPGA上选定逻辑单元布局位置作为两个连接点构成一组对应该信号连接关系的连接点,这一组连接点之间形成的物理传输路径即用于形成该信号连接关系。
(3)在为一组信号连接关系选定对应的连接点后,基于步骤S1构建的差异性时序模型中不同连接线的时序延时值可以确定对应形成的信号连接关系的时序余量,时序延时值越大、时序余量越小。若连接线的时序延时值越大、则会导致无法满足对应的信号连接关系的时序余量需求,此时认为这两个实例模块应该移动到物理距离更近的逻辑单元布局位置处,则为形成的连接线的时序延时值不满足对应的信号连接关系的时序余量需求的一对连接点添加对应的虚拟加力点,虚拟加力点对两个连接点有相向牵引作用,从而给两个连接点增加了一个相互靠近的力,在布局求解的过程中,将两个连接点拉到位置更近的逻辑单元布局位置处,使得这两个连接点之间的时序延时值更小、时序余量更大。
(4)按照用户输入网表利用力导向布局算法模型基于多裸片FPGA的全芯片结构上虚拟加力点对相应连接点的牵引作用和指定位置的IO口的牵引作用对多裸片FPGA的全芯片结构进行布局。
本实施例基于力导向布局算法模型对全芯片进行布局时,做法为:将用户输入网表中的实例模块看作节点,将节点之间的信号连接关系建立成点到点的边的关系,根据用户输入网表构建力导向布局算法模型。在IO口的牵引作用下求解力导向布局算法模型得到力平衡状态下的各个节点的逻辑单元布局位置。在虚拟加力点对相应的连接点的牵引作用下力平衡状态被打破,重新求解力导向布局算法力模型得到各个节点的逻辑单元布局位置得到一次布局结果。
在时序驱动布局过程中需要将时序特征作为优化目标,因此根据多裸片FPGA在每次布局下的时序代价函数值调整多裸片FPGA的布局直至得到时序驱动布局结果。其中,时序代价函数值基于多裸片FPGA内所有路径的时序延时值和/或部分预定路径的时序延时值构建,每条路径的时序延时值为路径中各条连接线的时序延时值的总和。
在上述实施例中,在一对连接点添加对应的虚拟加力点时,由于同一个FPGA裸片内的连接线的时序延时值通常较小,因此往往是针对跨FPGA裸片的连接线两端的一对连接点的情况,添加虚拟加力点的方法包括但不限于如下几种:
(a)当第一FPGA裸片和第二FPGA裸片相邻时,在为第一FPGA裸片上的第一连接点和第二FPGA裸片上的第二连接点所形成的一对连接点添加对应的虚拟加力点时:
在第一FPGA裸片上距离第一连接点最近的连接点引出端处添加对第二连接点有牵引作用的虚拟加力点,或者,在第二FPGA裸片上距离第二连接点最近的连接点引出端处添加对第一连接点有牵引作用的虚拟加力点。从而有将两个连接点牵引到同一个FPGA裸片上的趋势。
比如请参考图3,对于FPGA裸片1上的I和FPGA裸片2上的H所形成的一对连接点,可以在FPGA裸片1上与I最近的连接点引出端处添加虚拟加力点I’,虚拟加力点I’对H有向着FPGA裸片1靠近的牵引力。或者也可以在FPGA裸片2上与H最近的连接点引出端处添加虚拟加力点,图上未示出。
(b)当第一FPGA裸片和第二FPGA裸片之间间隔至少一个其他FPGA裸片,在为第一FPGA裸片上的第一连接点和第二FPGA裸片上的第二连接点所形成的一对连接点添加对应的虚拟加力点时:
在第一FPGA裸片与第二FPGA裸片之间的任意一个FPGA裸片上距离第一连接点最近的连接点引出端处添加第一虚拟加力点,在同一个FPGA裸片上距离第一虚拟加力点最近的连接点引出端处添加第二虚拟加力点,第一虚拟加力点对第一连接点具有牵引作用、第二虚拟加力点对第二连接点具有牵引作用。从而有将两个连接点牵引到同一个FPGA裸片上的趋势。
比如在图3中,对于FPGA裸片1上的J和FPGA裸片3上的K所形成的一对连接点,可以在FPGA裸片1和FPGA裸片3之间的FPGA裸片2上距离J最近的连接点引出端处添加第一虚拟加力点J’、在FPGA裸片2上距离K最近的连接点引出端处添加第二虚拟加力点K’。
在上述实施例中,时序驱动布局往往并不能得到最终的时序驱动布局结果,而是得到初始布局状态,初始布局状态中会有很大程度的布局不合法的现象,比如实例模块的逻辑单元布局位置的重叠。因此在得到初始布局状态后,需要对初始布局状态进行合法化,包括:将初始布局状态各个未被指定合法位置的逻辑单元布局位置摆放至对应的合法位置处,合法位置是多裸片FPGA上已被指定给一个可布单元的逻辑单元布局位置。并根据各个FPGA裸片间的连接通道数量以及初始布局状态中FPGA裸片间的信号连接关系的数量调整初始布局状态中的实例模块的逻辑单元布局位置,使得FPGA裸片间互联线数量少于FPGA裸片间的连接通道数量,从而完成对初始布局状态的布局合法化得到时序驱动布局结果。
在根据各个FPGA裸片间的连接通道数量调整初始布局状态中的实例模块的逻辑单元布局位置时,在一个实施例中按照以下方法调整:当两个FPGA裸片间的信号连接关系的数量大于两个FPGA裸片间的连接通道数量时,根据对应的时序余量从小到大的顺序依次调整各组信号连接关系对应的逻辑单元布局位置直至两个FPGA裸片间的信号连接关系的数量小于等于两个FPGA裸片间的连接通道数量。
步骤S3,根据时序驱动布局结果对用户输入网表分割得到各个FPGA裸片各自对应的子网表,每个FPGA裸片对应的子网表包括逻辑单元布局位置位于相应FPGA裸片内的各个实例模块及实例模块之间的网表线网。由于按照时序驱动布局结果来分割子网表,因此每个FPGA裸片都能满足对应的子网表的资源需求,表现在每个FPGA裸片上的逻辑资源数量满足分割得到的对应的子网表的逻辑资源需求,FPGA裸片上的输入信号连接点引出端满足对应的子网表的输入信号数量,FPGA裸片上的输出信号连接点引出端满足对应的子网表的输出信号数量,与多裸片FPGA的IO管脚所连接的FPGA裸片满足对应的子网表的IO口需求。而且分割得到的各个子网表之间会存在连接关系,由于在时序驱动布局时对单裸片内部和跨裸片的时序延时值进行差异化标记统一考虑,因此各个子网表整体上有较优的电路时序性能。
在分割得到各个子网表后,后续还可以基于各个子网表在相应的FPGA裸片上重新进行二次布局,在一个实施例中,同样可以利用力导向布局算法模型进行布局,主要包括如下几个步骤:(1)根据每个FPGA裸片对应的子网表将FPGA裸片上的IO口排布在指定位置、固定所有IO口的位置。(2)在固定好所有IO口位置后,根据各个子网表之间的连接关系在相应的FPGA裸片上选取连接通道的位置,按照距离远近的规则进行跨裸片链接线位置分配,并且在连接线位置添加虚拟加力点,为子网表在对应的FPGA裸片上二次布局优化做准备。(3)在完成各个FPGA裸片的IO口、连接点和虚拟加力点的配置后,对于每个FPGA裸片,按照FPGA裸片对应的子网表利用力导向布局算法模型基于FPGA裸片上虚拟加力点对相应连接点的牵引作用和指定位置的IO口的牵引作用对该FPGA裸片进行布局。
以上所述的仅是本申请的优选实施方式,本发明不限于以上实施例。可以理解,本领域技术人员在不脱离本发明的精神和构思的前提下直接导出或联想到的其他改进和变化,均应认为包含在本发明的保护范围之内。
Claims (8)
1.一种利用多裸片FPGA布局结果的网表分割方法,其特征在于,所述方法包括:
根据多裸片FPGA的硬件架构建立得到所述多裸片FPGA的全芯片结构的差异性时序模型,所述差异性时序模型包括所述多裸片FPGA内部的所有逻辑单元布局位置及其之间的连接线以及各条连接线的时序延时值,连接线的长度越长和/或跨越FPGA裸片的数量越多、时序延时值越大;
基于所述差异性时序模型对用户输入网表在所述多裸片FPGA的全芯片结构上进行时序驱动布局得到时序驱动布局结果,所述时序驱动布局结果指示所述用户输入网表中各个实例模块所在的逻辑单元布局位置;包括:根据所述用户输入网表将所述多裸片FPGA上的IO口排布在指定位置,对于所述用户输入网表中的任意一组信号连接关系,在所述多裸片FPGA的全芯片结构上选定逻辑单元布局位置作为连接点构成一组对应所述信号连接关系的连接点;为形成的连接线的时序延时值不满足对应的信号连接关系的时序余量需求的一对连接点添加对应的虚拟加力点,所述虚拟加力点对一对连接点有相向牵引作用;按照所述用户输入网表利用力导向布局算法模型基于所述多裸片FPGA的全芯片结构上虚拟加力点对相应连接点的牵引作用和指定位置的IO口的牵引作用对所述多裸片FPGA的全芯片结构进行布局得到初始布局状态;将所述初始布局状态各个未被指定合法位置的逻辑单元布局位置摆放至对应的合法位置处,并根据各个FPGA裸片间的连接通道数量以及所述初始布局状态中FPGA裸片间的信号连接关系的数量调整所述初始布局状态中的实例模块的逻辑单元布局位置,完成对所述初始布局状态的布局合法化得到所述时序驱动布局结果;其中,所述合法位置是所述多裸片FPGA上已被指定给一个可布单元的逻辑单元布局位置;
根据所述时序驱动布局结果对所述用户输入网表分割得到各个FPGA裸片各自对应的子网表,每个FPGA裸片对应的子网表包括逻辑单元布局位置位于相应FPGA裸片内的各个实例模块及实例模块之间的网表线网,分割得到的各个子网表之间存在连接关系;
其中,每个FPGA裸片上的逻辑资源数量满足分割得到的对应的子网表的逻辑资源需求,所述FPGA裸片上的输入信号连接点引出端满足对应的子网表的输入信号数量,所述FPGA裸片上的输出信号连接点引出端满足对应的子网表的输出信号数量,与所述多裸片FPGA的IO管脚所连接的FPGA裸片满足对应的子网表的IO口需求。
2.根据权利要求1所述的方法,其特征在于,
每条连接线的时序延时值包括线基准延时和附加延时,所述线基准延时与所述连接线的线长相关且线长越长、线基准延时越大,所述附加延时与所述连接线跨越的FPGA裸片的数量相关且跨越的FPGA裸片的数量越多、附加延时越大。
3.根据权利要求2所述的方法,其特征在于,
跨越不同FPGA裸片的连接线的附加延时的数量级远大于线基准延时的数量级。
4.根据权利要求2所述的方法,其特征在于,
连接线的附加延时随着其跨越的FPGA裸片的数量的增加而等量增加或增量增加。
5.根据权利要求1-4任一所述的方法,其特征在于,
在对用户输入网表在所述多裸片FPGA的全芯片结构上进行时序驱动布局的过程中,根据所述多裸片FPGA在每次布局下的时序代价函数值调整所述多裸片FPGA的布局直至得到所述时序驱动布局结果;
所述时序代价函数值基于所述多裸片FPGA内所有路径的时序延时值和/或部分预定路径的时序延时值构建,每条路径的时序延时值为所述路径中各条连接线的时序延时值的总和。
6.根据权利要求1所述的方法,其特征在于,当第一FPGA裸片和第二FPGA裸片相邻时,在为第一FPGA裸片上的第一连接点和第二FPGA裸片上的第二连接点所形成的一对连接点添加对应的虚拟加力点时:
在所述第一FPGA裸片上距离所述第一连接点最近的连接点引出端处添加对所述第二连接点有牵引作用的虚拟加力点,或者,在所述第二FPGA裸片上距离所述第二连接点最近的连接点引出端处添加对所述第一连接点有牵引作用的虚拟加力点。
7.根据权利要求1所述的方法,其特征在于,当第一FPGA裸片和第二FPGA裸片之间间隔至少一个其他FPGA裸片,在为第一FPGA裸片上的第一连接点和第二FPGA裸片上的第二连接点所形成的一对连接点添加对应的虚拟加力点时:
在所述第一FPGA裸片与所述第二FPGA裸片之间的任意一个FPGA裸片上距离所述第一连接点最近的连接点引出端处添加第一虚拟加力点,在同一个FPGA裸片上距离所述第一虚拟加力点最近的连接点引出端处添加第二虚拟加力点,所述第一虚拟加力点对所述第一连接点具有牵引作用、所述第二虚拟加力点对所述第二连接点具有牵引作用。
8.根据权利要求1所述的方法,其特征在于,所述根据各个FPGA裸片间的连接通道数量以及所述初始布局状态中FPGA裸片间的信号连接关系的数量调整所述初始布局状态中的实例模块的逻辑单元布局位置,包括:
当两个FPGA裸片间的信号连接关系的数量大于所述两个FPGA裸片间的连接通道数量时,根据对应的时序余量从小到大的顺序依次调整各组信号连接关系对应的逻辑单元布局位置直至两个FPGA裸片间的信号连接关系的数量小于等于所述两个FPGA裸片间的连接通道数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110429194.7A CN113128151B (zh) | 2021-04-21 | 2021-04-21 | 利用多裸片结构fpga布局结果的网表分割方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110429194.7A CN113128151B (zh) | 2021-04-21 | 2021-04-21 | 利用多裸片结构fpga布局结果的网表分割方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113128151A CN113128151A (zh) | 2021-07-16 |
CN113128151B true CN113128151B (zh) | 2022-02-18 |
Family
ID=76778623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110429194.7A Active CN113128151B (zh) | 2021-04-21 | 2021-04-21 | 利用多裸片结构fpga布局结果的网表分割方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113128151B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW567528B (en) * | 2001-10-22 | 2003-12-21 | Silicon Perspective Corp | Method for generating a partitioned IC layout |
CN102768506A (zh) * | 2012-07-18 | 2012-11-07 | 复旦大学 | 带时序约束的fpga时序驱动布局方法 |
CN108287932A (zh) * | 2017-01-10 | 2018-07-17 | 上海复旦微电子集团股份有限公司 | 一种基于解析方法的总体fpga自动化布局方法 |
US10534878B1 (en) * | 2017-10-25 | 2020-01-14 | Avatar Integrated Systems, Inc. | Circuit place and route optimization based on path-based timing analysis |
CN111753482A (zh) * | 2020-06-30 | 2020-10-09 | 无锡中微亿芯有限公司 | 一种io自动分配的多裸片结构fpga的布局方法 |
CN111753486A (zh) * | 2020-06-30 | 2020-10-09 | 无锡中微亿芯有限公司 | 一种多裸片结构fpga的新型布局方法 |
CN111931441A (zh) * | 2020-07-14 | 2020-11-13 | 深圳市紫光同创电子有限公司 | Fpga快速进位链时序模型的建立方法、装置以及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104699867B (zh) * | 2013-12-04 | 2018-03-30 | 京微雅格(北京)科技有限公司 | Fpga芯片的局部布局的优化方法 |
-
2021
- 2021-04-21 CN CN202110429194.7A patent/CN113128151B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW567528B (en) * | 2001-10-22 | 2003-12-21 | Silicon Perspective Corp | Method for generating a partitioned IC layout |
CN102768506A (zh) * | 2012-07-18 | 2012-11-07 | 复旦大学 | 带时序约束的fpga时序驱动布局方法 |
CN108287932A (zh) * | 2017-01-10 | 2018-07-17 | 上海复旦微电子集团股份有限公司 | 一种基于解析方法的总体fpga自动化布局方法 |
US10534878B1 (en) * | 2017-10-25 | 2020-01-14 | Avatar Integrated Systems, Inc. | Circuit place and route optimization based on path-based timing analysis |
CN111753482A (zh) * | 2020-06-30 | 2020-10-09 | 无锡中微亿芯有限公司 | 一种io自动分配的多裸片结构fpga的布局方法 |
CN111753486A (zh) * | 2020-06-30 | 2020-10-09 | 无锡中微亿芯有限公司 | 一种多裸片结构fpga的新型布局方法 |
CN111931441A (zh) * | 2020-07-14 | 2020-11-13 | 深圳市紫光同创电子有限公司 | Fpga快速进位链时序模型的建立方法、装置以及介质 |
Non-Patent Citations (4)
Title |
---|
ABC optimized neural network model for image deblurring with its FPGA implementation;Slami Saadi 等;《Microprocessors and Microsystems》;20130228;第37卷(第1期);第52-64页 * |
FPGA布局算法研究和优化;王新晨;《中国优秀硕士学位论文全文数据库 信息科技辑》;20170315(第03期);第I135-1158页 * |
基于时序路径的FPGA时序分析技术研究;周珊 等;《微电子学与计算机》;20160105;第33卷(第1期);第76-80页 * |
时序驱动的FPGA布局算法研究;黄攀;《中国优秀硕士学位论文全文数据库 信息科技辑》;20190515(第05期);第I135-320页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113128151A (zh) | 2021-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11625522B2 (en) | Method and apparatus for generating three-dimensional integrated circuit design | |
US6496965B1 (en) | Automated design of parallel drive standard cells | |
US9652576B2 (en) | Detailed placement with search and repair | |
US5930499A (en) | Method for mixed placement of structured and non-structured circuit elements | |
CN104376138B (zh) | 集成电路芯片的时序确定方法和装置 | |
US7111268B1 (en) | Post-layout optimization in integrated circuit design | |
CN111753482B (zh) | 一种io自动分配的多裸片结构fpga的布局方法 | |
US8316337B2 (en) | Method and system for optimally placing and assigning interfaces in a cross-fabric design environment | |
US7134112B1 (en) | Incremental routing in integrated circuit design | |
US6643832B1 (en) | Virtual tree-based netlist model and method of delay estimation for an integrated circuit design | |
US8479134B2 (en) | Method and system for specifying system level constraints in a cross-fabric design environment | |
CN114626323A (zh) | 集成电路的时序收敛方法、装置、服务器及可读存储介质 | |
CN111753484B (zh) | 一种基于电路性能的多裸片结构fpga的布局方法 | |
CN113128151B (zh) | 利用多裸片结构fpga布局结果的网表分割方法 | |
CN111753486B (zh) | 一种多裸片结构fpga的布局方法 | |
US6941532B2 (en) | Clock skew verification methodology for grid-based design | |
EP1276060A2 (en) | Method of designing a timing budget | |
US8595668B1 (en) | Circuits and methods for efficient clock and data delay configuration for faster timing closure | |
US6931610B1 (en) | Method for rapid estimation of wire delays and capacitances based on placement of cells | |
JP2014035667A (ja) | Lsi設計方法およびlsi設計装置 | |
US20070204245A1 (en) | Method for accelerating the RC extraction in integrated circuit designs | |
CN116542209B (zh) | 一种soc芯片的布局优化方法及装置 | |
US20030074175A1 (en) | Simulation by parts method for grid-based clock distribution design | |
CN111753483B (zh) | 一种多裸片结构fpga的布局方法 | |
US8819607B1 (en) | Method and apparatus to minimize clock tree skew in ICs |
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 |