一种基于递归分治法的全局信号路由方法与流程

文档序号:36410418发布日期:2023-12-18 22:17阅读:41来源:国知局
一种基于递归分治法的全局信号路由方法与流程

本发明属于电路设计,具体涉及一种基于递归分治法的全局信号路由方法。


背景技术:

1、随着用户设计电路规模的不断增大,验证电路设计需要多颗fpga协同工作,对于超大规模的设计,有些需要上百颗大容量fpga验证。fpga之间通过线缆以一定的连接关系进行连接,原型验证系统的组网连接信息包括fpga之间是否存在线缆(物理介质)以及线缆的数量。

2、用户设计进行fpga级的分割,是指将用户设计分割为指定数量的子部分并分别下载到fpga中。在现有技术中,分割到fpga级已经逐渐不能满足验证系统的精细化操作和高性能需求,进而逐渐流行的技术是进一步将fpga中的用户设计分割到slr(super logicregion,超级逻辑区域)单元中。fpga内部常常由几颗slr单元组成,slr也称为die。

3、也就是说,用户设计先进行fpga级别的分割,再分别对每个fpga内部的用户设计部分进行更加细节的die级分割。与该分割流程相适应的信号路由过程(即路径选择过程),也是分两级进行的,即先进行fpga级的系统路由,再针对每对fpga之间进行die级局部路由。路由过程即路径选择,依赖于组网的连接关系,因为组网连接关系决定了哪些fpga之间(更细节到哪些die之间)存在线缆可以传递信号。分两级进行路由的缺陷是不能够进行全局die级路由,而导致die和fpga之间的布线资源的使用增加,同时由于路由路径变长,导致信号的延时增加,从而影响验证系统的时序性能,导致系统频率的降低。


技术实现思路

1、为了解决现有技术中存在的上述问题,本发明提供了一种基于递归分治法的全局信号路由方法。本发明要解决的技术问题通过以下技术方案实现:

2、本发明提供了一种基于递归分治法的全局信号路由方法,包括:

3、s1:对用户设计进行超图建模并设置die级别的初始路由代价,以构建信号die级别的路由组网模型;

4、s2:获取每个信号的负载节点所处die的位置,并按照信号负载节点所占用die的数量对所有信号进行排序;

5、s3:依据节点在所述路由组网模型中的跳转距离,对当前信号的所有节点进行递归分组,直至每个分组内的节点数小于或等于两个;

6、s4:对分组后每组内的节点按照路径代价最小原则进行路径选择,确定组内节点之间的路由路径;

7、s5:依据递归分组的逆方向,对分组后各组按照路径代价最小原则逐层确定组间的路由路径,进而获得当前信号的路由路径;

8、s6:根据所确定的当前信号的路由路径,对所述die级别的路由代价进行更新;

9、s7:按照信号负载节点所占用die的数量从大到小的顺序依次对所有信号进行路径选择。

10、在本发明的一个实施例中,所述s1包括:

11、s1.1:解析用户设计,将用户设计中的电路逻辑单元进行划分并分割至不同fpga的不同die上;

12、s1.2:设置同一fpga中相邻die之间的初始路由代价以及位于不同fpga之间具有连接关系的die之间的初始路由代价,从而形成die级别的路由组网模型,所述路由组网模型包括信号的驱动节点和负载节点的位置信息以及die之间的代价信息。

13、在本发明的一个实施例中,所述s2包括:

14、s2.1:获取设计电路中每个信号的负载节点数量并确定每个负载节点所处die的位置,并统计每个信号的负载节点所占用的die的数量;

15、s2.2:按照每个信号的负载节点所占用的die的数量从大到小的顺序对所有信号进行排序。

16、在本发明的一个实施例中,所述s3包括:

17、对同一信号位于同一die上的节点进行节点合并;

18、将当前信号的节点进行递归分组,每次分成两组,对分组后的各组继续分为两组,直至每个组内的节点数量小于或等于2个,分组方式为:

19、依据节点在所述路由组网模型中的跳转距离,计算每个节点与其他节点的跳转距离,根据所述跳转距离进行分组,使得分组后各组内节点之间跳转距离两两之和最小,满足:

20、

21、其中,n1表示当前次分组后第一组的节点个数,n2表示当前次分组后第二个组的节点个数,shortest_distance表示两个节点之间的最短距离,nodei表示节点i,nodej表示节点j。

22、在本发明的一个实施例中,所述s4包括:

23、对分组后每组内的节点,对于当前组内节点数量是1的组不处理;对于当前组内节点数量是2的组,在所述路由组网模型中选取路径代价总和最小的路径将组内两个节点连接起来,作为当前组内的路径选择结果。

24、在本发明的一个实施例中,在步骤s5中,对于待进行路径选择的组a和组b,首先分别获取组a和组b的途径点,所述途径点包括组内信号所在的die以及进行组内路由选择后途径的die;寻找组a中每个途径点到达组b的任意一个途径点的路径代价,取路径代价值最小的途径点和对应的路径作为组a和组b之间的路由路径。

25、在本发明的一个实施例中,在步骤s6中,同一fpga中相邻die之间的路由代价的更新公式为:

26、若sll_used<sll_thr

27、

28、若sll_used>=sll_thr

29、

30、其中,sll_thr表示设置的sll阈值百分比,sll_used表示同一fpga中相邻die之间sll的实际使用量,num_sll表示同一fpga中相邻die之间sll的数量,lengh_sll表示同一fpga中相邻die之间sll的长度,cost_sll表示同一fpga中相邻die之间的路由代价,k为大于1的可调参数。

31、在本发明的一个实施例中,在步骤s6中,位于不同fpga之间具有连接关系的die之间路由代价的更新公式为:

32、

33、其中,lengh_wire表示当前fpga之间的线缆长度,num_wire表示当前fpga之间线缆的数量,wire_used表示当前fpga之间目前已经使用的线缆数量,a、b、c为大于1的可调参数。

34、在本发明的一个实施例中,所述s7包括:

35、在获得当前信号的路由路径之后,根据当前信号的路由路径,更新所述路由组网模型中的参数:同一fpga中相邻die之间sll的实际使用量sll_used以及当前fpga之间目前已经使用的线缆数量wire_used;进而分别更新同一fpga中相邻die之间的路由代价以及位于不同fpga之间具有连接关系的die之间的路由代价。

36、与现有技术相比,本发明的有益效果有:

37、1、本发明提出一种基于递归分治法的全局信号路由方法,早期安排负载节点占用不同die数量多的信号首先进行路径选择,并对同一个信号中被分割到同一个die中的负载节点进行节点合并的预处理,依据跳跃距离,对任意信号的驱动节点和负载节点递归分组。把小组内节点之间的连线路径先确定,然后逆着递归拆解的方向,将各个小组之间的路由路径进行确定,最终完成该信号所有节点之间的路径选择。路径选择的方法步骤清晰,易于实现。

38、2、现有技术大多选用先拆分信号再路由的方式以提升速度,但是拆分信号会引入更大的代价;而在现有技术在进行多点之间选代价最小的路由路径的时候,运行速度又变得非常慢,因为这是一个更复杂的问题,本发明使用递归分治的方法,巧妙、灵活地化解问题,使大问题变小问题,统一各个小问题处理方法和各个问题的解拼接方法,高效简易,因而在进行多点之间选代价最小的路由路径的时候,处理速度得到了极大的提升,同时又保持了较低的代价。

39、以下将结合附图及实施例对本发明做进一步详细说明。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1