一种异构型FPGA的布局方法与流程

文档序号:31451229发布日期:2022-09-07 13:19阅读:93来源:国知局
一种异构型FPGA的布局方法与流程
一种异构型fpga的布局方法
技术领域
1.本发明涉及fpga技术领域,尤其是一种异构型fpga的布局方法。


背景技术:

2.现场可编程逻辑门阵列(field-programmable gate array,fpga)是一种在日用家电、大型机械乃至航空航天都有广泛使用的芯片。fpga芯片的使用离不开电子设计自动化(electronic design automation,eda)工具。布局则是eda工具中重要的一环,其对eda工具本身运行速度、所处理电路的最终质量有着很大影响。近年来,fpga芯片的电路规模快速增长,使其功能更加强大,但同时也给相应的eda工具带来了挑战。
3.布局的主要作用就是在优化目标下将用户网表中的实例一一映射到fpga芯片具有实际物理坐标的布局位置上,解析型布局算法以其可以使用数学方法快速求得全局最优解的特性成为当今布局算法的主流方向之一。
4.但是解析型布局算法在布局过程中,会把需要布局的可移动的模块建立成节点、将节点之间的信号连接关系建立成点到点的边的关系,从而建立力导向布局算法模型进行迭代求解完成布局。但实际上每个模块都存在一定的大小,在异构型fpga中,不同模块的大小也不一样,因此将模块抽象成一个节点来表示的做法实际并不准确,尤其会导致力导向布局算法模型中的信号连接关系的加力不准确,从而导致布局质量较差。


技术实现要素:

5.本技术人针对常规力导向布局算法模型将每个功能模块直接抽象为一个节点而导致的加力不准确影响布局质量的问题,提出了一种异构型fpga的布局方法,本技术的技术方案如下:
6.一种异构型fpga的布局方法,该方法包括:
7.获取fpga芯片对应的用户输入网表,所述用户输入网表中包括若干个还未有合法布局位置的原始可布模块,且存在至少两个原始可布模块的模块尺寸差异超过差异阈值;
8.将所述用户输入网表转换为等效网表,所述等效网表中任意两个作用有牵引关系的功能模块的模块尺寸差异均不超过所述差异阈值,所述等效网表中仅包括等效模块,或者,所述等效网表中包括等效模块和原始可布模块;每个等效模块由所述用户输入网表中的一个或多个原始可布模块等效得到,且所述等效网表中的功能模块之间的牵引关系与所述用户输入网表中的原始可布模块之间的牵引关系相符;
9.确定所述等效网表中的各个等效模块的位置约束信息;
10.在所述等效模块的位置约束信息的约束下,基于所述等效网表中的各个功能模块的牵引作用利用力导向布局算法模型对所述fpga芯片进行求解布局,得到等效网表中的各个功能模块的合法布局位置;
11.由各个等效模块的合法布局位置得到对应的原始可布模块的合法布局位置,得到用户输入网表中所有原始可布模块的合法布局位置,完成对fpga芯片的布局。
12.其进一步的技术方案为,等效网表中包括由一个大尺寸可布模块等效拆分得到的若干个不重合且作用有与其他功能模块的牵引关系的虚拟小模块,每个虚拟小模块形成为一个等效模块,每个虚拟小模块的位置约束信息是虚拟小模块在fpga芯片上的合法布局位置,大尺寸可布模块是用户输入网表中模块尺寸超过第一预定尺寸阈值的原始可布模块。
13.其进一步的技术方案为,确定等效网表中的各个虚拟小模块及其位置约束信息的方法包括:
14.基于各个原始可布模块的之间的牵引作用利用力导向布局算法模型,按照用户输入网表对fpga芯片进行求解布局得到初始布局结果,并基于初始布局结果对待等效拆分的大尺寸可布模块进行合法化处理,确定各个大尺寸可布模块在fpga芯片上的合法布局位置;
15.按照预定拆分规则将每个大尺寸可布模块等效拆分为若干个不重合的虚拟小模块,并根据大尺寸可布模块的合法布局位置、以及各个虚拟小模块与大尺寸可布模块的相对关系得到各个虚拟小模块在fpga芯片上的合法布局位置。
16.其进一步的技术方案为,对于每个大尺寸可布模块与一个其他的功能模块之间的一组牵引关系,牵引关系作用于大尺寸可布模块等效拆分得到的、物理位置处于牵引关系在大尺寸可布模块上的加力点处的虚拟小模块上;
17.则在各个虚拟小模块固定于各自的合法布局位置的基础上,基于各个虚拟小模块的牵引作用利用力导向布局算法模型、按照等效网表对fpga芯片进行求解布局。
18.其进一步的技术方案为,等效网表中包括由多个小尺寸可布模块等效合并得到的一个虚拟大模块,虚拟大模块覆盖所有的小尺寸可布模块,虚拟大模块形成为一个等效模块,每个虚拟大模块的位置约束信息是虚拟大模块包含的多个原始可布模块的相对布局位置关系,小尺寸可布模块是用户输入网表中模块尺寸不超过第二预定尺寸阈值的原始可布模块。
19.其进一步的技术方案为,对于每个小尺寸可布模块与一个其他的功能模块之间的一组牵引关系,牵引关系作用在小尺寸可布模块合并得到的虚拟大模块上,且牵引关系在虚拟大模块上的加力点位于小尺寸可布模块在虚拟大模块内的物理位置处;
20.则在虚拟大模块内的各个小尺寸可布模块的相对布局位置关系不变的基础上,基于各个功能模块的牵引作用利用力导向布局算法模型、按照等效网表对fpga芯片进行求解布局。
21.其进一步的技术方案为,等效网表中的所有虚拟小模块的模块尺寸均相等,或者,存在至少两个虚拟小模块的模块尺寸不相等;模块尺寸不相等的两个虚拟小模块由同一个大尺寸可布模块等效拆分得到,或者由不同的两个大尺寸可布模块等效拆分得到。
22.其进一步的技术方案为,每个大尺寸可布模块拆分得到的所有等效模块的模块面积之和等于或者小于大尺寸可布模块的模块面积。
23.其进一步的技术方案为,一个大尺寸可布模块还等效拆分得到至少一个未作用任何牵引关系的空置小模块,每个空置小模块形成为一个等效模块。
24.其进一步的技术方案为,每个空置小模块与等效网表中任意一个其他的功能模块之间的模块尺寸差异均不超过差异阈值;或者与空置小模块与等效网表中至少一个其他的功能模块之间的模块尺寸差异超过差异阈值。
25.其进一步的技术方案为,合并得到一个虚拟大模块的各个小尺寸可布模块上均分别作用至少一组与其他的功能模块之间的牵引关系;或者,存在至少一个小尺寸可布模块上未作用任何牵引关系。
26.其进一步的技术方案为,该方法还包括:将用户输入网表中的若干个预定功能模块指定摆放于各自的合法布局位置处,用户输入网表的所有的功能模块中除预定功能模块之外均为原始可布模块;
27.则在预定功能模块固定于各自的合法布局位置处以及等效模块的位置约束信息的约束下,基于等效网表中的各个功能模块的牵引作用利用力导向布局算法模型对fpga芯片进行求解布局,得到等效网表中的各个功能模块的合法布局位置。
28.其进一步的技术方案为,任意一个预定功能模块与等效网表中任意一个功能模块的模块尺寸差异均不超过差异阈值。
29.本技术的有益效果为:
30.本技术提供了一种异构型fpga的布局方法,针对异构型fpga中不同模块尺寸的功能模块混合布局导致的问题,将原始可布模块等效处理为等效模块得到等效网表,按照等效网表利用模块尺寸相近的功能模块进行求解布局后还原得到原始可布模块的合法布局位置完成布局,从将不同模块尺寸的功能模块混合布局的问题转换为同等规格模块尺寸的功能模块的布局问题,从而提高功能模块之间牵引加力的准确性,继而提高布局质量。
31.在对原始可布模块进行等效处理时,可以对大尺寸可布模块进行等效拆分和/或对小尺寸可布模块进行等效合并,等效方式多样,可以满足不同场景以及不同功能模块的布局需要。
附图说明
32.图1是一个实施例的异构型fpga的布局方法的方法流程图。
33.图2是异构型fpga内部的模块尺寸不同的功能模块的排布结构示意图。
34.图3是另一个实施例的异构型fpga的布局方法的方法流程图。
35.图4是对大尺寸可布模块等效拆分得到若干个等效模块的方法流程图。
36.图5是一个实例中的大尺寸可布模块的等效拆分示意图。
37.图6是另一个实例中的大尺寸可布模块的等效拆分示意图。
38.图7是另一个实例中的大尺寸可布模块的等效拆分示意图。
39.图8是另一个实例中的大尺寸可布模块的等效拆分示意图。
40.图9是多个小尺寸可布模块等效合并得到一个等效模块的方法流程图。
41.图10是一个实例中的小尺寸可布模块的等效拆分示意图。
具体实施方式
42.下面结合附图对本技术的具体实施方式做进一步说明。
43.本技术公开了一种异构型fpga的布局方法,请参考图1所示的流程图,该方法包括如下步骤:
44.步骤100,获取fpga芯片对应的用户输入网表。
45.用户输入网表中包括若干个原始可布模块,原始可布模块是用户输入网表中还没
有合法布局位置的待布局的功能模块。用户输入网表中存在至少两个原始可布模块的模块尺寸差异超过差异阈值,由此按照用户输入网表在fpga芯片上完成设计可以得到异构型fpga。差异阈值可以自定义设置,模块尺寸差异超过差异阈值表示两个原始可布模块之间的尺寸相差较大,若按照传统方法进行布局,则会因为尺寸相差较大,而导致这两个原始可布模块之间的加力不准确。
46.在比较两个功能模块的模块尺寸时,可以根据两个功能模块的模块面积差异和/或大小规格差异来确定模块尺寸差异,其中模块面积差异反映两个功能模块的模块面积的差异情况,可以根据模块面积将绝对面积差和/或相对面积差作为模块面积差异。大小规格差异反映两个功能模块的大小规格的差异情况,可以根据两个功能模块的宽度和高度分别比较得到绝对边长差和/或相对边长差作为尺寸差异。
47.请参考2所示的一种常见的fpga芯片的内部功能模块的结构示意图,fpga芯片中包括若干种功能模块,各种功能模块的尺寸可能相同也可能不同。一般情况下,iob模块和/或clb模块的模块尺寸较小,而dsp模块、bram模块、carrychain模块、gth模块等的模块尺寸较大,比如iob模块与dsp模块之间的模块尺寸差异就可能超过差异阈值。
48.在一个实施例中,在执行步骤200之前并不对任何功能模块指定合法布局位置,则用户输入网表中的所有功能模块都是原始可布模块。在另一个实施例中,首先将用户输入网表中的若干个预定功能模块指定摆放于各自的合法布局位置处,也即在执行步骤200之前,首先对部分功能模块指定合法布局位置,请参考图3,则用户输入网表的所有的功能模块中除预定功能模块之外均为原始可布模块。
49.步骤200,将用户输入网表转换为等效网表,等效网表中任意两个作用有牵引关系的功能模块的模块尺寸差异均不超过差异阈值。等效网表中包括至少一个作用有牵引关系的等效模块,每个等效模块由用户输入网表中的一个或多个原始可布模块等效得到,且等效网表中的功能模块之间的牵引关系与用户输入网表中的原始可布模块之间的牵引关系相符,也即原始可布模块在等效处理为等效模块时,其承载的牵引关系也继承到等效模块上。
50.当原始可布模块等效得到对应的等效模块后,这些原始可布模块就以等效模块的形式存在于等效网表中了、原始可布模块本身不再保留在等效网表中。在一个实施例中,等效网表中仅包括属于等效模块的功能模块、而不包括任何属于原始可布模块的功能模块,也即用户输入网表中每个原始可布模块都处理为相应的等效模块。在另一个实施例中,等效网表中既包括等效模块,同时还包括原始可布模块,也即用户输入网表中有一部分原始可布模块处理为相应的等效模块、另一部分原始可布模块保持不变。
51.步骤300,确定等效网表中的各个等效模块的位置约束信息,位置约束信息包括功能模块在fpga芯片上的绝对位置的约束信息,和/或,包括功能模块之间的相对位置的约束信息。
52.步骤400,在等效模块的位置约束信息的约束下,基于等效网表中的各个功能模块的牵引作用利用力导向布局算法模型对fpga芯片进行求解布局,得到等效网表中的各个功能模块的合法布局位置。
53.由于等效网表中的作用有牵引关系的各个功能模块的模块尺寸差异均不超过差异阈值,也即任意两个作用有牵引关系的功能模块之间的尺寸相差较小,从而可以保证这
两个功能模块之间的加力较为准确,从而布局结果更准确。
54.在一个实施例中,若预先执行了将预定功能模块指定摆放于各自的合法布局位置处的操作,则任意一个预定功能模块与所述等效网表中任意一个功能模块的模块尺寸差异均不超过差异阈值,也即由于预先指定摆放的预定功能模块与原始可布模块之间也会存在牵引关系,因此为了保证预定功能模块与等效网表中的功能模块之间的加力准确性,同样要保证预定功能模块与等效网表中的功能模块之间的尺寸差异不能太大。另外在该步骤中进行求解布局时,需要在预定功能模块固定于各自的合法布局位置处以及等效模块的位置约束信息的约束下,基于等效网表中的各个功能模块的牵引作用利用力导向布局算法模型对fpga芯片进行求解布局,得到等效网表中的各个功能模块的合法布局位置。
55.步骤500,由各个等效模块的合法布局位置得到对应的原始可布模块的合法布局位置,也即根据等效模块与原始可布模块之间的等效关系,将等效模块还原成原始可布模块,即可得到等效前的原始可布模块的合法布局位置。若等效网表中仅包括等效模块,则还原后即可得到用户输入网表中所有原始可布模块的合法布局位置。若等效网表中除了等效模块还包括原始可布模块,则保留在等效网表中的原始可布模块通过步骤400也可以得到合法布局位置,再结合由等效模块还原得到的原始可布模块的合法布局位置,也同样可以得到用户输入网表中所有原始可布模块的合法布局位置。
56.若还有预定功能模块,则再结合预定功能模块的合法布局位置,即可得到用户输入网表中所有功能模块的合法布局位置,由此完成对fpga芯片的布局。
57.在上述步骤200中,在对原始可布模块进行等效处理为等效模块时,主要有两种情况:(1)将一个大尺寸可布模块等效拆分为若干个小尺寸的虚拟小模块。大尺寸可布模块是用户输入网表中模块尺寸超过第一预定尺寸阈值的原始可布模块,模块尺寸同样可以利用模块面积和/或模块大小规格来衡量。(2)将多个小尺寸可布模块等效合并得到的一个大尺寸的虚拟大模块。小尺寸可布模块是用户输入网表中模块尺寸不超过第二预定尺寸阈值的原始可布模块。
58.在对用户输入网表中的原始可布模块进行等效处理时,可以仅包括上述第一种情况、仅对原始可布模块进行等效拆分操作。或者仅包括上述第二种情况、仅对原始可布模块进行等效合并操作。或者既存在上述第一种情况也存在上述第二种情况,也即对一部分原始可布模块进行等效拆分操作、对另一部分原始可布模块进行等效合并操作。本技术以如下两个实施例分别对上述第一种情况和第二种情况的等效处理操作分别描述,若等效处理操作同时包括上述两种情况,则可以通过下列两个实施例结合得到。
59.一、在将用户输入网表转换为等效网表时,将大尺寸可布模块等效拆分为若干个小尺寸的虚拟小模块,该实施例包括如下步骤,请参考图4:
60.步骤410,获取fpga芯片对应的用户输入网表。
61.步骤420,基于各个原始可布模块的之间的牵引作用利用力导向布局算法模型,按照用户输入网表对fpga芯片进行求解布局得到初始布局结果。
62.该步骤对用户输入网表中的所有功能模块进行求解布局,因此当存在预定功能模块时,该步骤在预定功能模块布局在对应的合法布局位置的约束下,按照用户输入网表对fpga芯片进行求解布局得到初始布局结果。导向布局算法模型是常用的布局算法,本技术不对其具体操作赘述。
63.步骤430,基于初始布局结果对待等效拆分的大尺寸可布模块进行合法化处理,确定各个大尺寸可布模块在fpga芯片上的合法布局位置。
64.在初始布局结果中,往往会存在一部分的功能模块的布局位置存在位置重叠的现象,这些功能模块在初始布局结果中的布局位置即为不合法的,常规的布局方法需要对初始布局结果中所有原始可布模块进行全局的合法化处理,调整各个功能模块的布局位置,使得各个功能模块都有各自对应的合法布局位置。而本技术不这样操作,本技术在得到初始布局结果后,暂时不考虑其他原始可布模块,而先对后续需要等效拆分的所有大尺寸可布模块进行合法化处理,得到各个大尺寸可布模块的合法布局位置,并将各个大尺寸可布模块固定在相应的合法布局位置上。具体的合法化处理的方法可以采用常规方法实现,本技术不作赘述。
65.步骤440,按照预定拆分规则将每个大尺寸可布模块等效拆分为若干个不重合且作用有与其他功能模块的牵引关系的虚拟小模块,每个虚拟小模块形成为一个等效模块。且每个作用有牵引关系的虚拟小模块与等效网表中的其他的功能模块之间的模块尺寸差异均不超过差异阈值。
66.拆分得到的虚拟小模块在大尺寸可布模块的合法布局位置所圈定的范围内,每个虚拟小模块与大尺寸可布模块的相对关系在等效拆分的时候是已知的,也即虚拟小模块在大尺寸可布模块内的相对位置是已知的,同时每个虚拟小模块的模块尺寸也是可以确定的。比如在图5所示的拆分示意图中,在将大尺寸可布模块m按照预定拆分规则等效拆分为8个虚拟小模块时,这8个虚拟小模块与大尺寸可布模块m的相对关系都是已知的,且每个虚拟小模块的模块尺寸也是已知的。
67.大尺寸可布模块与其他的功能模块之间存在至少一组牵引关系,这里的其他的功能模块包括其他的原始可布模块以及预定功能模块中的至少一种。大尺寸可布模块可以与一个或多个其他的功能模块之间存在牵引关系,比如请参考图5,大尺寸可布模块m与5个其他的功能模块a、b、c、d、e之间存在牵引关系。
68.大尺寸可布模块与每一个其他的功能模块之间也可以存在一组或多组牵引关系。比如图5中,大尺寸可布模块m与功能模块a之间存在三组牵引关系la1、la2和la3,大尺寸可布模块m与功能模块b之间存在两组牵引关系lb1和lb2,大尺寸可布模块m与功能模块c之间存在一组牵引关系lc1,大尺寸可布模块m与功能模块d之间存在一组牵引关系ld1。大尺寸可布模块m与功能模块e之间存在一组牵引关系le1。
69.对于每个大尺寸可布模块与一个其他的功能模块之间的任意一组牵引关系,该牵引关系作用于大尺寸可布模块上的一个加力点,在完成初始布局结果后,可以确定得到大尺寸可布模块所连接的各组牵引关系以及每组牵引关系在大尺寸可布模块上的加力点。比如图5可以看出大尺寸可布模块m与其他的功能模块a、b、c、d、e之间的各组牵引关系在大尺寸可布模块m上的加力点,也即图上与大尺寸可布模块m的连接处。
70.其他的功能模块与大尺寸可布模块之间的牵引关系作用于拆分得到的虚拟小模块上。具体的,对于每个大尺寸可布模块与一个其他的功能模块之间的一组牵引关系,牵引关系作用于大尺寸可布模块等效拆分得到的、物理位置处于牵引关系在大尺寸可布模块上的加力点处的虚拟小模块上。比如图5所示的拆分示意图中,大尺寸可布模块m与功能模块d之间存在一组牵引关系ld1作用于虚拟小模块5上。
71.一个虚拟小模块作用有一组牵引关系或者多组牵引关系,当一个虚拟小模块作用有多组牵引关系时,这多组牵引关系用于连接相同或不同的其他的功能模块。比如图5中,拆分得到的虚拟小模块2上作用有两组牵引关系la2和lb1,这两组牵引关系分别用于连接两个不同的其他的功能模块a和b。
72.步骤450,根据大尺寸可布模块的合法布局位置、以及各个虚拟小模块与大尺寸可布模块的相对关系得到各个虚拟小模块在fpga芯片上的合法布局位置,确定每个虚拟小模块的位置约束信息是虚拟小模块在fpga芯片上的合法布局位置。
73.在已知大尺寸可布模块在fpga芯片上的合法布局位置的基础上,再结合虚拟小模块与大尺寸可布模块的相对关系即可确定各个虚拟小模块的合法布局位置,在该实施例中,每个虚拟小模块在fpga芯片上的合法布局位置即为该虚拟小模块的位置约束信息,是绝对位置的约束信息。
74.步骤460,在各个虚拟小模块固定于各自的合法布局位置的基础上,基于各个虚拟小模块的牵引作用利用力导向布局算法模型、按照等效网表对fpga芯片进行求解布局,得到等效网表中的各个功能模块的合法布局位置。
75.将每个虚拟小模块的合法布局位置固定,并将每个虚拟小模块抽象为一个节点、其他的功能模块也分别抽象为一个节点,然后可以按照的等效网表利用力导向布局算法模型进行求解布局,使得其他各个功能模块可以在模块尺寸同等的虚拟小模块的牵引下进行求解布局,功能模块之间的牵引关系的加力更准确,从而使得布局结果更优。
76.当存在预定功能模块时,在预定功能模块和虚拟小模块分别固定于各自的合法布局位置的基础上,按照等效网表对fpga芯片进行求解布局,得到等效网表中的各个功能模块的合法布局位置。
77.步骤470,将各个虚拟小模块还原为等效拆分前的大尺寸可布模块,得到用户输入网表中所有原始可布模块的合法布局位置,完成对fpga芯片的布局。
78.在该实施例的步骤440中,一种情况下,一个大尺寸可布模块仅等效拆分得到作用有牵引关系的虚拟小模块,比如图7所示,大尺寸可布模块m拆分得到等效模块1、2、3、4、5、6,这几个等效模块都属于作用至少一组牵引关系而记为虚拟小模块。另一种情况下,一个大尺寸可布模块不仅等效拆分得到作用有牵引关系的虚拟小模块,还拆分得到至少一个未作用任何牵引关系的空置小模块,每个空置小模块形成为一个等效模块。比如图5和6,大尺寸可布模块m拆分得到等效模块1~8,其中,等效模块1、2、3、4、5、6都作用至少一组牵引关系而属于虚拟小模块,而等效模块7、8均未作用任何牵引关系而属于空置小模块。
79.由于虚拟小模块作用有牵引关系,因此为了保证等效网表中作用有牵引关系的功能模块都尺寸相当而加力准确,因此每个虚拟小模块其与等效网表中其他的作用有牵引关系的功能模块的模块尺寸差异均不超过差异阈值。而空置小模块由于不作用牵引关系,对重新求解布局时功能模块之间的牵引关系的加力准确性实际是几乎不产生影响的,因此可选的在一个实施例中,未作用任何牵引关系的每个空置小模块与等效网表中任意一个其他的功能模块之间的模块尺寸差异均不超过差异阈值;或者与空置小模块与等效网表中至少一个其他的功能模块之间的模块尺寸差异超过差异阈值。比如可以如图5或6所示,控制小模块7和8均与虚拟小模块的模块尺寸相近,或者可以如图8所示,空置小模块7的模块尺寸较大,也即空置小模块并没有强烈的模块尺寸的约束,其模块尺寸大小几乎不会影响后续
的布局质量。
80.在图4所示的实施例中,由一个大尺寸可布模块拆分得到的每个等效模块都具有一定的模块尺寸而覆盖一定的布局区域,等效拆分得到的多个等效模块与原始的大尺寸可布模块的模块面积之间的关系有如下两种:(1)每个大尺寸可布模块拆分得到的所有等效模块的模块面积之和等于大尺寸可布模块的模块面积,比如图5所示,大尺寸可布模块m拆分得到等效模块1~8,这8个虚拟小模块各自具有一定的模块尺寸,且相互之间接邻排布,8个等效模块的模块面积之和等于大尺寸可布模块m的模块面积。(2)每个大尺寸可布模块拆分得到的所有等效模块的模块面积之和小于大尺寸可布模块的模块面积。比如图6所示,大尺寸可布模块m同样拆分得到等效模块1~8,这8个等效模块各自具有一定的模块尺寸,但相比于图5,存在两个等效模块之间间隔预定距离,使得8个等效模块的模块面积之和小于大尺寸可布模块m的模块面积。再比如图7所示,大尺寸可布模块m仅在加力点处拆分得到虚拟小模块1~6,这6个虚拟小模块互相之间也接邻,但是并未覆盖大尺寸可布模块m的全部区域,使得6个虚拟小模块的模块面积之和小于大尺寸可布模块m的模块面积。
81.对比图5-8可以看出,对一个大尺寸可布模块存在多种预定拆分规则,等效拆分得到的等效模块的数量、物理位置以及模块尺寸可以根据实际情况确定,但需要保证大尺寸可布模块的每组牵引关系的每个加力点处都有一个虚拟小模块。由此,对一个大尺寸可布模块拆分得到的各个虚拟小模块的模块尺寸均相等,如图4所示。或者,存在至少两个虚拟小模块的模块尺寸不相等,比如图5,虚拟小模块2和虚拟小模块8的模块尺寸相等,且大于其他的虚拟小模块的尺寸。
82.如上介绍了对一个大尺寸可布模块执行等效拆分操作的方法,在实际应用时,用户输入网表中执行等效拆分操作的大尺寸可布模块包括一个或多个。当包括多个大尺寸可布模块时,对各个大尺寸可布模块执行等效拆分操作所采用的预定拆分规则均相同,或者对至少两个大尺寸可布模块执行等效拆分操作所采用的预定拆分规则不同。最终在等效网表中,所有虚拟小模块的模块尺寸均相等,或者,存在至少两个虚拟小模块的模块尺寸不相等,模块尺寸不相等的两个虚拟小模块由同一个大尺寸可布模块等效拆分得到,或者由不同的两个大尺寸可布模块等效拆分得到。比如对于一个bram可以按照图5所示的预定拆分规则进行等效拆分,而对于另一个bram则按照图6所示的预定拆分规则进行等效拆分,对一个dsp则按照图7所示的预定拆分规则进行等效拆分。
83.二、在将用户输入网表转换为等效网表时,将若干个小尺寸可布模块等效合并为一个虚拟大模块,该实施例包括如下步骤,请参考图9:
84.步骤910,获取fpga芯片对应的用户输入网表。
85.步骤920,将用户输入网表中的多个小尺寸可布模块等效合并得到的一个虚拟大模块,得到的虚拟大模块覆盖所有的小尺寸可布模块,一个虚拟大模块形成为一个等效模块。在合并得到虚拟大模块时,每个小尺寸可布模块与虚拟大模块的相对关系是已知的,且合并得到的虚拟大模块的覆盖区域的范围也是可以确定的。
86.等效合并的情况可以看作是等效拆分的反面,因此类似的,虚拟大模块覆盖所有的小尺寸可布模块时,模块面积等于或大于所有小尺寸可布模块的模块面积之和。在一个实施例中,合并得到一个虚拟大模块的各个小尺寸可布模块上均分别作用至少一组与其他的功能模块之间的牵引关系;或者,存在至少一个小尺寸可布模块上未作用任何牵引关系。
如图10所示,小尺寸可布模块1~8等效合并得到虚拟大模块m,小尺寸可布模块1~6上作用有牵引关系,而小尺寸可布模块7和8未作用任何牵引关系。
87.对于每个小尺寸可布模块与一个其他的功能模块之间的一组牵引关系,该牵引关系作用在小尺寸可布模块合并得到的虚拟大模块上。具体的,该牵引关系在虚拟大模块上的加力点位于等效合并前的小尺寸可布模块在虚拟大模块内的物理位置处。
88.步骤930,确定每个虚拟大模块内包含的多个原始可布模块的相对布局位置关系作为虚拟大模块的位置约束信息。等效合并为一个虚拟大模块的多个小尺寸可布模块一般是功能相关的功能模块,这些小尺寸可布模块之间需要在布局时保持相对布局位置关系不变,且这多个小尺寸可布模块的相对布局位置关系是预先设定好的。
89.比如典型的应用是,将macro或block或ip内的多个小尺寸可布模块等效合并为一个虚拟大模块,从而实现对macro或block或ip的布局,确保约束区域内的小尺寸可布模块之间的相对布局位置关系不变、时序关系不变。
90.步骤940,在虚拟大模块内的各个小尺寸可布模块的相对布局位置关系不变的基础上,基于各个功能模块的牵引作用利用力导向布局算法模型、按照等效网表对fpga芯片进行求解布局。该步骤在求解布局时,将等效大模块作为一个整体进行求解布局,等效大模块的布局位置发生变化时,其对应的小尺寸可布模块的布局位置也相应变化,且在等效大模块的布局位置变化过程中,其对应的各个小尺寸可布模块的相对布局位置保持不变。
91.步骤950,将各个虚拟大模块还原为等效拆分前的小尺寸可布模块,得到用户输入网表中所有原始可布模块的合法布局位置,完成对fpga芯片的布局。
92.通过步骤940可以得到虚拟大模块的合法布局位置,再结合各个小尺寸可布模块与虚拟大模块的相对关系,即可确定各个小尺寸可布模块在fpga芯片上的合法布局位置。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1