一种用于集成电路SINK管脚优化的方法和系统与流程

文档序号:34818302发布日期:2023-07-19 21:04阅读:54来源:国知局
一种用于集成电路SINK管脚优化的方法和系统与流程

本技术涉及集成电路,具体涉及一种用于集成电路sink管脚优化的方法和系统。


背景技术:

1、为了提高电子设备的性能,缩小体积,降低成本,将电源、晶体管、电子元器件、线路等都集成在一小块2d、3d的集成电路封装上。为了实现更多的功能,超大规模集成电路往往设计有几层到上百层结构,每层结构极其复杂,集成数千万甚至数亿的晶体管,具有多尺度结构,从厘米级到目前最新的纳米级,这些数以亿计的元器件在集成电路封装上形成了数以万计的电源与信号网络,以实现多路信号、多个功能同时并发工作。由于数以万计的电源与信号网络同时工作,需要多个相同或不同电压的电源供电系统(或电压调节模块,vrm)同时给整个集成电路封装系统供电。

2、在这样的供电方式下,集成电路的电源系统设计显得尤为重要,电源系统的设计不合理,可能导致集成电路部分网络的供电不足,或者是部分网络的电压降太大,这些都将导致集成电路无法正常工作。因此,非常有必要通过后期的仿真与诊断,首先检测设计的集成电路版图的多电源供电系统是否合格,对于有设计缺陷的集成电路版图,通过仿真的手段诊断出设计缺陷的位置,并采用系统的方法对设计的集成电路版图的多电源供电系统进行优化。

3、导致集成电路的多电源供电系统设计不合格的一个重要原因在于设计的sink管脚分布不合理,因此在对集成电路的多电源供电系统进行优化过程中,非常有必要对sink管脚分布进行优化:首先,通过仿真定位出分布不合理的管脚,进而采用逐步迭代的方法对其管脚位置进行优化,然而如何对sink管脚分布不合理进行优化和优化到什么样的程度均无成熟的仿真方法及判定标准,存在仿真精度较低、建模困难以及无明确判定标准的问题。


技术实现思路

1、(一)申请目的

2、有鉴于此,本技术的目的在于一种用于集成电路sink管脚优化的方法和系统,用于解决如何对sink分布不合理的管脚进行优化的技术问题。

3、(二)技术方案

4、本技术公开一种用于集成电路sink管脚优化的方法,包括如下步骤:

5、s1、采用递归法建立sink管脚的包络凸多边形,并搜索位于所述包络凸多边形之内的网格单元顶点;

6、s2、收集位于包络凸多边形内的网格单元顶点,将位于包络凸多边形之内的网格单元顶点作为电路节点进行保留,作为保留电路节点,设置其编号为1,2,…,n,其中n为位于包络凸多边形之内的网格单元顶点数;

7、s3、若n<=k*pinsink,基于所述位于包络凸多边形之内的网格单元顶点向外扩展网格单元顶点,直到满足n>=k*pinsink,其中k为预定义的大于1的系数,pinsink为sink管脚数;

8、s4、基于vrm各管脚是等电位,将vrm各管脚对应的电路节点设置为超节点,设置其编号为n+1,将剩余网格单元顶点单元重新编号,依次为n+2,…,n+m,其中n+m为所有网格节点的总数;

9、s5、采用直流分析方法建立有限元方程组,形成有限元稀疏矩阵,反复利用三角形-星形变换消除非电路节点,保留编号为1~n+1的电路节点,形成电路节点的电导矩阵,将节点n+1作为参考节点,节点1~n对应的电路节点的导纳矩阵的对角元即为节点1~n到参考节点的电导,其倒数为节点1~n到参考节点的电阻;

10、s6、基于优先原始管脚对应的电路节点的原则,筛选到参考节点的电阻的差异小于预先设定的阈值且到参考节点之间的距离大于预先设定阈值的电路节点作为优化的sink管脚与覆铜版图接触的新的位置点。

11、在一种可能的实施方式中,采用递归法建立sink管脚的包络凸多边形,并搜索位于所述包络凸多边形之内的网格单元顶点包括:

12、s11、设置sink所有管脚的状态为未处理;选择四个不在同一直线上的管脚,基于每个管脚的坐标值分别记管脚1为x坐标最大且y坐标不为最大的管脚、管脚2为剩下3个y坐标最大且x坐标不为最小的管脚、管脚3为剩下的x坐标最小且y坐标不为最小的管脚、管脚4为剩下的管脚,更改四个管脚的状态为已处理;依次连接管脚1,2,3,4形成多边形,设多边形的中心为o,其中心坐标为其顶点坐标的平均值;

13、s12、将其他状态为未处理的任一管脚p,与多边形的中心o连成线段,更改该管脚p的状态为已处理;

14、s13、判断线段是否与多边形的任一边相交,如果不与多边形的任一边相交,转入步骤s12,否则,设相交的边为,转入步骤s14;

15、s14、将管脚p插入到相交的边,形成新的边和,并形成新的多边形,采用下式更新多边形的中心o的坐标:式中:为更新多边形的中心o的横坐标,为更新多边形的中心o的纵坐标,为插入管脚p后多边形的顶点数,为管脚p的横坐标,为管脚p的纵坐标,为插入管脚p之前多边形中心o的横坐标,为插入管脚p之前多边形中心o的纵坐标;s15、设置步骤s14更新的多边形的中心o的坐标为old,转入步骤s14,直到所有管脚的状态均为已处理,此时获得的多边形即为sink管脚的所述包络凸多边形。

16、在一种可能的实施方式中,所述基于所述位于包络凸多边形之内的网格单元顶点向外扩展网格单元顶点,直到满足n>=k*pinsink包括:

17、s31、收集所有有且仅有2个顶点为保留电路节点的单元,形成前线单元队列{front};

18、s32、取出队列的第一个单元并将其从队列中移除,将其没有设置为保留电路节点的顶点设置为保留电路节点,设置n=n+1;

19、s33、如果n>=k*pinsink,结束,否则转入s34;

20、s34、依据新设置为保留电路节点的顶点将包含该顶点且满足有且仅有2个顶点为保留电路节点的单元加入到队列{front}的最后,转入s32。

21、在一种可能的实施方式中,所述收集位于包络凸多边形内的网格单元顶点包括:对网格单元的每一个顶点v,与多边形e的中心o连成线段,判断线段是否与多边形e的任一边相交,如果不与多边形e的任一边相交,顶点v在多边形e之内,否则在多边形e之外。

22、在一种可能的实施方式种,所述在优先原始管脚对应的电路节点的前提下,筛选电路节点到参考节点的电阻的差异小于预先设定的阈值,且之间的距离大于预先设定阈值的电路节点作为优化的sink管脚与覆铜版图接触的新的位置点包括:

23、s61、设置所有电路节点的状态为未处理;

24、s62、设置初始筛选的电路节点为原始管脚对应的电路节点,计算筛选的电路节点到参考节点的电阻的平均值;

25、s63、计算筛选的电路节点到参考节点的电阻与电阻平均值的差值,找出电阻差值最大的电路节点;

26、s64、如果所有电路节点都已处理,现有筛选的电路节点对应的位置即为优化后的sink管脚的位置,结束;否则,如果还存在未处理的电路节点,任取一个未处理的电路节点q,修改其处理状态为已处理,判断其距离与任一筛选的电路节点的距离是否小于预先设定的距离阈值,如果是,转入下一个未处理的电路节点,重复执行步骤s64,否则,转入步骤s65;

27、s65、计算该电路节点到参考节点的电阻与电阻平均值的差值,比较这个差值与步骤s63中的最大差值,如果大于最大差值,转入步骤s64,否则,转入步骤s66;

28、s66、将该电路节点设置为被筛选的电路节点,同时去除电阻差值最大的电路节点,更新筛选的电路节点到参考节点的电阻的平均值:式中,为更新筛选的电路节点到参考节点的电阻的平均值,为筛选的sink管脚数量,为电路节点到参考节点的电阻,为更新前筛选的电路节点到参考节点的电阻的平均值。

29、作为本技术的第二方面,还公开了一种用于集成电路sink管脚优化的系统,包括网格单元顶点搜索模块、网格单元顶点收集模块、优化判断模块、电路节点编号模块、参考节点电阻计算模块和sink管脚位置优化确定模块;其中,网格单元顶点搜索模块用于采用递归法建立sink管脚的包络凸多边形,并搜索位于所述包络凸多边形之内的网格单元顶点;网格单元顶点收集模块用于收集位于包络凸多边形内的网格单元顶点,将位于包络凸多边形之内的网格单元顶点作为电路节点进行保留,作为保留电路节点,设置其编号为1,2,…,n,其中n为位于包络凸多边形之内的网格单元顶点数;优化判断模块用于若n<=k*pinsink,基于所述位于包络凸多边形之内的网格单元顶点向外扩展网格单元顶点,直到满足n>=k*pinsink,其中k为预定义的大于1的系数,pinsink为sink管脚数;电路节点编号模块用于基于vrm各管脚是等电位,将vrm各管脚对应的电路节点设置为超节点,设置其编号为n+1,将剩余网格单元顶点单元重新编号,依次为n+2,…,n+m,其中n+m为所有网格节点的总数;参考节点电阻计算模块用于采用直流分析方法建立有限元方程组,形成有限元稀疏矩阵,反复利用三角形-星形变换消除非电路节点,保留编号为1~n+1的电路节点,形成电路节点的电导矩阵,将节点n+1作为参考节点,节点1~n对应的电路节点的导纳矩阵的对角元即为节点1~n到参考节点的电导,其倒数为节点1~n到参考节点的电阻;sink管脚位置优化确定模块用于基于优先原始管脚对应的电路节点的原则,筛选到参考节点的电阻的差异小于预先设定的阈值且到参考节点之间的距离大于预先设定阈值的电路节点作为优化的sink管脚与覆铜版图接触的新的位置点。

30、在一种可能的实施方式中,网格单元顶点搜索模块包括:第一单元、第二单元、第三单元、第四单元和第五单元;其中,第一单元用于设置sink所有管脚的状态为未处理;选择四个不在同一直线上的管脚,基于每个管脚的坐标值分别记管脚1为x坐标最大且y坐标不为最大的管脚、管脚2为剩下3个y坐标最大且x坐标不为最小的管脚、管脚3为剩下的x坐标最小且y坐标不为最小的管脚、管脚4为剩下的管脚,更改四个管脚的状态为已处理;依次连接管脚1,2,3,4形成多边形,设多边形的中心为o,其中心坐标为其顶点坐标的平均值;第二单元用于将其他状态为未处理的任一管脚p,与多边形的中心o连成线段,更改该管脚p的状态为已处理;第三单元用于判断线段是否与多边形的任一边相交,如果不与多边形的任一边相交,转入第二单元执行步骤,否则,设相交的边为,转入第四单元执行步骤;第四单元用于将管脚p插入到相交的边,形成新的边和,并形成新的多边形,采用下式更新多边形的中心o的坐标:式中:为更新多边形的中心o的横坐标,为更新多边形的中心o的纵坐标,为插入管脚p后多边形的顶点数,为管脚p的横坐标,为管脚p的纵坐标,为插入管脚p之前多边形中心o的横坐标,为插入管脚p之前多边形中心o的纵坐标;

31、第五单元用于转入第四单元执行步直到所有管脚的状态均为已处理,此时获得的多边形即为sink管脚的所述包络凸多边形。

32、在一种可能的实施方式中,所述基于所述位于包络凸多边形之内的网格单元顶点向外扩展网格单元顶点,直到满足n>=k*pinsink包括执行以下步骤:

33、s31、收集所有有且仅有2个顶点为保留电路节点的单元,形成前线单元队列{front};

34、s32、取出队列的第一个单元并将其从队列中移除,将其没有设置为保留电路节点的顶点设置为保留电路节点,设置n=n+1;

35、s33、如果n>=k*pinsink,结束,否则转入s34;

36、s34、依据新设置为保留电路节点的顶点将包含该顶点且满足有且仅有2个顶点为保留电路节点的单元加入到队列{front}的最后,转入s32。

37、在一种可能的实施方式中,所述收集位于包络凸多边形内的网格单元顶点包括:对网格单元的每一个顶点v,与多边形e的中心o连成线段,判断线段是否与多边形e的任一边相交,如果不与多边形e的任一边相交,顶点v在多边形e之内,否则在多边形e之外。

38、在一种可能的实施方式中,sink管脚位置优化确定模块执行的步骤包括:

39、s61、设置所有电路节点的状态为未处理;

40、s62、设置初始筛选的电路节点为原始管脚对应的电路节点,计算筛选的电路节点到参考节点的电阻的平均值;

41、s63、计算筛选的电路节点到参考节点的电阻与电阻平均值的差值,找出电阻差值最大的电路节点;

42、s64、如果所有电路节点都已处理,现有筛选的电路节点对应的位置即为优化后的sink管脚的位置,结束;否则,如果还存在未处理的电路节点,任取一个未处理的电路节点q,修改其处理状态为已处理,判断其距离与任一筛选的电路节点的距离是否小于预先设定的距离阈值,如果是,转入下一个未处理的电路节点,重复执行步骤s64,否则,转入步骤s65;

43、s65、计算该电路节点到参考节点的电阻与电阻平均值的差值,比较这个差值与步骤s63中的最大差值,如果大于最大差值,转入步骤s64,否则,转入步骤s66;

44、s66、将该电路节点设置为被筛选的电路节点,同时去除电阻差值最大的电路节点,更新筛选的电路节点到参考节点的电阻的平均值:式中,为更新筛选的电路节点到参考节点的电阻的平均值,为筛选的sink管脚数量,为电路节点到参考节点的电阻,为更新前筛选的电路节点到参考节点的电阻的平均值。

45、(三)有益效果

46、本技术通过采用直流分析方法建立有限元方程组,形成有限元稀疏矩阵;其次,将网格中的vrm管脚相关的点、sink管脚包含的区域的网格顶点作为电路节点进行保留,反复利用三角形-星形变换消除非电路节点,形成电路节点的电导矩阵;计算所有sink管脚包含的区域的电路节点与vrm之间的直流电阻,筛选差异小于预先设定的阈值,且之间的距离大于预先设定阈值的电路节点作为优化的sink管脚与覆铜版图接触的新的位置点,调整sink管脚与覆铜版图接触的位置,使得sink各管脚与vrm之间的直流电阻的差异不超过预先设定的阈值达到优化sink管脚位置的效果。

47、本技术的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本技术的实践中得到教导。本技术的目标和其他优点可以通过下面的说明书来实现和获得。

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