一种基于有向无环图的拓扑展开获取电源网络排版的方法与流程
- 国知局
- 2024-11-06 14:26:30
本发明涉及电源网络仿真领域,具体涉及一种基于有向无环图的拓扑展开获取电源网络排版的方法。
背景技术:
1、在电源网络仿真的复杂领域中,电源网络模型的精确设置始终是确保仿真结果有效性的关键环节。此类模型作为物理系统的高度抽象,专注于电气连接的逻辑拓扑,排除了如pcb材料特性、铜箔布局及通孔结构等物理实现细节,从而专注于电气性能的分析与优化。
2、尽管现有技术,如中国专利cn103500237a所展示,已显著推进了配电网自动成图的进程,通过逻辑布局分析、模型分割剥离及综合多种布局算法(包括力导向、混合、动态交互及改进的网格布线算法),实现了配电网模型的自动优化与清晰呈现。然而,在面对大型服务器板等高度集成的应用场景时,其供电电路的极端复杂性与高密度布局需求,对现有技术提出了严峻挑战。
3、具体而言,大型服务器板上的电源网络设计往往错综复杂,传统方法下,若电源模型及其线路布局未经精心规划与优化,极易导致线路间相互交错,形成视觉上的“迷宫”,极大地增加了工程人员理解与分析的难度。此外,这种布局混乱也阻碍了工程人员对线路功率分配与压降性能的直观评估,进而影响整体设计的可靠性与效率。
技术实现思路
1、本发明的目的在于,提供一种从具有完整拓扑结构的电源电路中稳定的获取最大限度避开相交的排版,从而可以直观的显示出电路的走向。
2、为了实现上述目的,本发明提供了一种基于有向无环图的拓扑展开获取电源网络排版的方法,包括:
3、步骤1,分离不连通分量:依据连通性,分离电源电路中的不连通分量以形成多个独立的有向无环图,并确定每个独立的有向无环图的起点和终点;其中,起点为电源电路中的源端,终点为电源电路中的载端;
4、步骤2,在每个源端之前增加虚拟节点,并增加虚拟节点的出度到源端,形成具有单一起点的有向无环图;
5、步骤3,确定节点序号,根据节点序号重排节点出度;
6、步骤4,对有向无环图进行拓扑排序,得到拓扑排序列表;
7、步骤5,从拓扑排序中获得排版:遍历拓扑排序列表,根据节点间的兄弟、父子和平行关系,生成电源网络排版。
8、在一个实施例中,所述步骤3中,确定节点序号为:
9、以虚拟节点为起点,通过各个节点到载端的连通性确定节点序号。
10、在一个实施例中,所述步骤3中,确定节点序号包括如下步骤:
11、步骤31,选择起始路线:将节点入度均为1的线路,并且线路中所有节点均未被标记的线路作为起始线路,所述节点入度均为1的线路为线路中的每个节点都只有一条边指向它;
12、步骤32,处理起始路线:对起始线路上的节点进行标记,并给起始路线上的载端标定序号,所有连接到该载端的未标定序号端点的序号都标定为和该载端一样的序号;
13、步骤33,寻找并处理新链路:
14、从载端向源端访问起始路线上的节点,寻找存在出度的节点,以找出的存在出度的节点为起点,重复步骤31、步骤32的过程;
15、步骤34,重复步骤33不断发现并处理新的链路,直到有向无环图中的所有节点都被访问并标记了序号。
16、在一个实施例中,所述步骤31选择起始路线中:如果有多条节点入度均为1的线路,那么在这多条节点入度均为1的线中取所有节点出度总和最小的线。
17、在一个实施例中,如果在这多条节点入度均为1的线中取所有节点出度总和最小的线后,仍然具有多条线路,则在这些线路中任取一条。
18、在一个实施例中,所述步骤5包括:
19、步骤51,创建端点数据结构,所述端点数据结构包含:组件名称、行/列信息;
20、其中,端点为包含行/列信息的节点,端点名称即为节点名称,所述组件名称为放置于pcb上的外部器件的名称,每个组件生成一个节点,所述行/列信息用于定位每个端点在电源网络排版上的位置信息;
21、步骤52,创建端点集数据结构,所述端点集数据结构包含:端点列表、子端点集所含组件最大行数、端点集最大行数、端点集最小行数;
22、其中,每个端点集内包含多个端点,所述端点列表用于存放处于该端点集内的所有端点,所述端点集最大行数和端点集最小行数为该端点集所含端点的最大和最小行信息,子端点集与一个端点集具有父子关系,子端点集所含组件最大行数为子端点集中端点的最大行数;
23、步骤53,创建节点位置矩阵和端点集列表,所述节点位置矩阵用于记录节点位置,如果一个位置没有节点,则节点位置矩阵为空,所述端点集列表用于记录端点之间的顺序;
24、其中,所述节点位置为节点在电源网络排版上的位置;
25、步骤54,创建公共变量row和col,row和col分别代表当前所在行和列,将公共变量row和col均初始化为0;
26、步骤55,遍历步骤4中获取的拓扑排序列表,按顺序获取节点,并按拓扑排序处理每个节点;
27、步骤56,重复步骤55,直到拓扑排序列表中的所有节点都被使用;
28、步骤57,完成所有端点的行/列信息,以在节点位置矩阵中找到所有节点的对应位置。
29、在一个实施例中,所述步骤55中按拓扑排序处理每个节点,包括如下步骤:
30、步骤551,如果端点集列表为空,则:
31、创建新的端点,并将节点存入新的端点中,并对存入新的端点中的节点赋值行列为当前行列row,col;
32、创建新的端点集,将新的端点存入该新的端点集中;
33、记录端点集,将端点集加入到新的端点集列表中;
34、步骤552,如果端点集列表不为空,则进入步骤5521:
35、步骤5521,判断尾部端点集中的节点是否为当前节点的前驱节点;
36、如果尾部端点集中的节点是前驱节点,则进入步骤55211:
37、步骤55211,创建新的端点集,并创建新的端点,将节点存入新端点中,将新端点存入新端点集中,并对端点集的行列进行赋值;
38、记录端点集,将端点集加入到新的端点集列表中;
39、如果尾部端点集中的节点不是前驱节点,则进入步骤55212:
40、步骤55212,判断尾部端点集中的节点是否为平行节点;
41、如果是平行节点,则:创建新端点,在新端点中存入该平行节点,新端点的列数赋值col,行数赋值row+1,更新row,将该节点存入节点位置矩阵,新端点存入尾部端点集中,所述尾部端点集为端点集列表的最后一个元素,端点集列表遵循先入后出的栈原则;
42、如果不是平行节点,则:端点集列表推出尾部元素,端点集更新为新的端点集列表尾部元素,针对更新后的尾部端点集中的节点重新执行步骤55212判断是否为平行节点。
43、在一个实施例中,步骤55211中,对端点集的行列进行赋值,包括:
44、如果上一个端点集的子端点所含组件最大行数存在,则端点集的行赋值为上一个端点集的子端点所含组件最大行数加1,并将端点内的节点存入节点位置矩阵;
45、如果上一个端点集不存在子端点,行赋值为上一个端点集的端点最小行数,并将端点内的节点存入节点位置矩阵。
46、本发明提出的一种基于有向无环图拓扑展开获取电源网络排版的方法,相较于传统技术,展现出了以下几方面的显著有益效果:
47、1、高实用性与稳定性:与依赖遗传算法通过节点传递数值来确定位置的方法不同,本发明的方法无需设置和调整任何“种子”参数。在传统遗传算法中,这些“种子”作为遍历和回溯过程中的数值标记,其选择和调整不仅复杂且在不同案例中缺乏通用性,往往需要多次试验。而本发明直接基于dag的拓扑结构进行排序展开,有效避免了这一繁琐过程,确保了方法的实用性和稳定性,在不同应用场景下均能稳定输出高质量的电源网络排版。
48、2、广泛的适用性与复用性:本发明摒弃了依赖模型物理特性的排版方式,转而以图的拓扑结构为核心。这一转变使得该方法不再受限于具体模型的物理属性(如pcb材料、尺寸、形状等),从而能够跨越不同领域和场景,灵活应用于任何具有相似拓扑结构的电源网络排版任务中。这一特性极大地提升了方法的复用性和通用性。
49、3、优化的布局效果:针对大型服务器板上复杂的供电电路设计,本发明提出的排序方法通过精细的拓扑分析和排序展开,能够最大限度地减少线路交叉现象。相比未经过拓扑优化调整的传统方法,本发明显著提升了电源网络的布局清晰度和美观度,为工程人员提供了更加直观、易于评估的电路布局方案。同时,这种优化的布局也有助于提升电路的电气性能,如降低压降、提高功率传输效率等。
本文地址:https://www.jishuxx.com/zhuanli/20241106/322107.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表