本发明设计一种优化鱼骨型时钟树金属走线的设计方法。
背景技术:
由于时钟结构的复杂化,工具在自动生长时钟树时,为了平衡时钟树,使时钟信号从同一时钟源出发,到各个寄存器的时钟端延时一致,通常会在较短路径上加缓冲器,同时将短路径绕远,从而短路径与较长路径的时钟延时平衡到一致。随着工艺进步,特征尺寸的不断缩小,互联线延迟已经成为时序路径上的主要延时单位,因此这种绕远金属线和插入平衡单元缓冲器的方式无形中增加了绕线距离,使得时钟信号传播的延时大大增加,造成消耗的功耗增加。优化鱼骨型时钟树绕线,使负载分布均匀,各负载与驱动枝干的金属走线长度基本一致,减少时钟偏差,从而减少缓冲器的加入,降低功耗。
传统鱼骨型时钟树金属走线时,由于是工具自动摆放逻辑单元,有的逻辑单元分布不均,导致有些部分金属走线过密,有的逻辑单元距离驱动的枝干太远,金属走线时会绕远来避免物理违例。绕远的金属线会增加时钟延迟,造成很大的时钟偏差。此外,平行绕远的长线,会导致噪声,串扰的增加。优化鱼骨型时钟树绕线,使负载的连线轨迹固定,避免负载绕远,从而减少时钟偏差,提高时钟质量。
鱼骨型时钟树的优点是由多个驱动单元驱动主干,再由主干连接并驱动枝干,负载直接与枝干相连,从而达到时钟树各分支的时钟延迟近乎一致,从而相除时钟偏差对时序的影响。如果当时钟树金属走线时不进行处理,与鱼骨树主干临近的负载会直接与主干进行金属线连接。这与设计初衷相悖,且会导致主干负载过大,造成很大的时钟转换时间延迟,从而影响时钟质量,因此需要避免负载与主干有金属连线的情况。
技术实现要素:
本发明要解决的问题是提供一种优化鱼骨型时钟树金属走线,从而减少时钟偏差,提高时钟质量,降低时钟功耗的设计方法。
本发明是这样实现的:
优化鱼骨型时钟树金属走线的设计方法,包括如下步骤:①在摆放芯片中的逻辑单元前,将整体模块划分为边长为30微米的正方形,规定每个正方形里,逻辑单元摆放的密度,使逻辑单元均匀分布;②取出相邻鱼骨树枝干的纵坐标,计算出相邻鱼骨树枝干的间距,记为a,在每个相邻枝干的中心点,创建横走线堵塞物;③以鱼骨树主干为起点,以a为间隔,分别向左、向右创建纵向走线堵塞物;④抓取鱼骨型时钟树的驱动与其负载相连的线名,优先对这些连线进行金属走线,走线完成后删除走线阻塞物,再进行全局布线。
本发明的优点在于:鱼骨型时钟树的负载均匀分布在枝干附近,通过金属走线阻塞物形成的长方形方框,使负载与最近的枝干进行金属线连接,让同一枝干上的时钟延时长短相近,不同枝干的时钟延时长短也相近,进而生成的时钟树,时钟偏差小,时钟的质量好。因为不用进行时钟树的延时平衡,从而减少缓冲单元的插入,减少绕线长度,从而减低芯片整体功耗。
附图说明
下面参照附图结合实施例对本发明做进一步描述。
图1是现有技术的鱼骨型时钟树的负载在实际芯片版图中的分布示意图。
图3是本发明的鱼骨型时钟树的负载在实际芯片版图中的分布示意图。
图2是现有技术的鱼骨型时钟树在实际芯片版图中的走线位置示意图。
图4是本发明的鱼骨型时钟树在实际芯片版图中的走线位置示意图。
具体实施方式
在芯片后端设计过程中,工具自动布局布线,通常会有逻辑单元放置位置不合理,局部堆积等现象,如果逻辑单元的管脚很多,即物理连线多,那么很有可能在一片区域造成金属走线阻塞,从而引起设计规则的违例,导致芯片失效。图1和图2对比,相同面积区域放置相同多的逻辑单元,明显可见,图2相比图1逻辑单元放置更为均匀合理。
传统芯片设计在放置逻辑单元阶段,会对芯片整体区域,进行逻辑单元密度的约束,但由于有的逻辑单元相互之间有许多联系,工具会根据时序进行优化,为满足时序要求,尽可能的将有联系的逻辑单元放置到一起。如图1,工具会将部分逻辑单元放置很紧密,其他的相互之间联系很少的就会放置松散。
如图2中,在放置逻辑单元前,取出芯片版图的长和高,计长为a,高计为b。以芯片左下角为坐标原点,将芯片整体划分为相同的30*30微米的正方格。计坐标原点方格的左下角坐标为{a1b1},右上角坐标为{a2b2},其中a1=0,b1=0,a2=30,b2=30。
芯片x轴方向可以被分为a/30份,y轴方向可以被分为b/30份。对变量y循环,设变量y为1,当y小于等于b/30时,y加1,在y循环中嵌入x内循环,设变量x为1,对x变量循环,当x小于等于a/30时,x加1,设每个方格的坐标点左下角坐标为{a1*(x-1)b1*(y-1),右下角坐标为{a2*(x-1)b2*(y-1)}。从而依次取出方格的坐标。
如图2中,对取出的每个方格坐标,约束其中逻辑单位的放置密度。在放置逻辑单元时,工具就会根据每个小方格里的密度要求,放置逻辑单元,这样就有效避免的逻辑单元放置不均匀的问题。
随着工艺进步,特征尺寸的不断缩小,互联线延迟已经成为时序路径上的主要延时单位。图3,是模拟实际的鱼骨树时钟树逻辑单元放置和金属走线的示意图。从图中可见,逻辑单元放置分布不均匀,金属走线长短差距很大。图中金属走线a,b,c,d与金属走线e,f,g长度差距很大,因此造成了这两个时钟分支上的时钟偏差很大。
如图4所示,本发明的优化鱼骨型时钟树金属走线的设计方法,包括:
根据图2中描述的方法,在摆放芯片中的逻辑单元前,将模块整体划分为30um*30um的方格,取出每个方格的坐标,规定每个方格里,逻辑单元摆放的密度,使逻辑单元均匀分布。图3与图4对比,相同面积下放置相同数量的逻辑单元,在图4中,鱼骨树的枝干附近逻辑单元摆放更均匀。
取出最下方鱼骨树枝干的左下角坐标,计为{x1y1},取出最上方鱼骨树枝干的右上角坐标,计为{x2y2},计算出鱼骨树枝干的长为x2-x1,计为a,计算出鱼骨树的高为y2-y1,计为b。相邻鱼骨树枝干的间距,记为a。
设变量c的初始值为y1,对y轴循环,当c小于等于b时,取出横向阻塞物的左下角坐标为{x1c a/2},横向阻塞物右上角坐标为{x2c a/2 0.01},且对c重新赋值为(c a)。由此推算即第一个横向绕线阻塞物的左下角坐标为{x1y1 a/2},计第一个横向绕线阻塞物的右上角坐标为{x2y1 a/2 0.01}。根据所取的左上角和右下角坐标点,依次在相邻鱼骨数枝干的中间位置,创建横向绕线阻塞物。
取出鱼骨树主干分别与底下和顶上相接的枝干处的坐标,左下角坐标为{x3y1},右上角坐标为{x4y2}。
由主干向左取纵向绕线阻塞物的坐标点。设变量的d的初始值为x3,当d大于等于x1时循环取值,取出纵向阻塞物的左下角坐标为{dy1},纵向阻塞物的右上角坐标为{d 0.01y2},且对d重新赋值为(d-a)。根据所取的坐标点,从鱼骨树主干往左,创建间隔为a的纵向金属走线阻塞物。
由主干向右取纵向绕线阻塞物的坐标点。设变量的e的初始值为x4,当e小于等于x2时循环取值,取出纵向阻塞物的左下角坐标为{ey1},纵向阻塞物的右上角坐标为{e-0.01y2},且对e重新赋值为(e a)。根据所取的坐标点,从鱼骨树主干往右,创建间隔为a的纵向金属走线阻塞物。
抓取鱼骨型时钟树的驱动与其负载相连的线名,优先对这些连线进行金属走线。对特定金属走线完成后,删除金属线阻塞物,再进行全局布线。
如图4所示,时钟负载均匀放置,鱼骨树枝干与其负载的金属走线被横向和纵向的金属走线阻塞,圈定在矩形框里。金属走线只有与无金属绕线阻塞的枝干相连,负载就近与枝干相连,各金属走线的长度基本一致,各时钟分支间时钟偏差较小,从而减少了不同支路间的时钟偏差,进而减少增加缓冲单元来平衡时钟树,减少功耗,节约面积。
以上所述仅为本发明的最佳实用例子,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改,等同替换以及改进等,都应该包含在本发明的保护范围之内。
1.优化鱼骨型时钟树金属走线的设计方法,其特征在于:包括如下步骤:
在摆放芯片中的逻辑单元前,将整体模块划分为边长为30微米的正方形,规定每个正方形里,逻辑单元摆放的密度,使逻辑单元均匀分布。
2.如权利要求1所述的优化鱼骨型时钟树金属走线的设计方法,其特征在于:还包括:
取出相邻鱼骨树枝干的纵坐标,计算出相邻鱼骨树枝干的间距,记为a,在每个相邻枝干的中心点,创建横走线堵塞物。
3.如权利要求1所述的优化鱼骨型时钟树金属走线的设计方法,其特征在于:还包括:
以鱼骨树主干为起点,以a为间隔,分别向左、向右创建纵向走线堵塞物。
4.如权利要求1所述的优化鱼骨型时钟树金属走线的设计方法,其特征在于:还包括:抓取鱼骨型时钟树的驱动与其负载相连的线名,优先对这些连线进行金属走线,走线完成后删除走线阻塞物,再进行全局布线。
技术总结