芯片布线方法与流程

文档序号:14950940发布日期:2018-07-17 22:32阅读:1184来源:国知局

本发明涉及集成电路设计技术领域,特别涉及一种芯片布线方法。



背景技术:

在集成电路物理设计中,布线资源的充分利用可以减小芯片的面积,从而大大降低芯片的成本,提高此产品在市场的竞争力。目前,各种布局布线工具发展的越来越完备,不但提高了芯片设计速度,在布线资源的利用率上也有很大的提高。但布局布线工具通常是以全局芯片为考虑,难免有些小点考虑不周,在实际的布局布线过程中就会出现一些局部拥塞,例如,靠近宏单元(block)的引脚(pin)的区域和靠近block边角的区域等。此时就需要人为的手动干预来解决以上问题,造成芯片的布线效率低且易出现拥塞。



技术实现要素:

本发明实施例的目的在于提供一种芯片布线方法,以解决芯片的布线效率低且易出现拥塞的问题。

为了达到上述目的,本发明的实施例提供了一种芯片布线方法,包括:

通过对芯片进行布局布线获得芯片上布线拥塞的拥塞区域;

获取拥塞区域中的多个标准单元;

根据拥塞区域在芯片上的位置,对多个标准单元的位置进行调整。

其中,根据拥塞区域在芯片上的位置,对多个标准单元的位置进行调整的步骤,包括:

根据拥塞区域在芯片上的位置,确定各标准单元的坐标;

根据各标准单元的坐标,对各标准单元的位置进行调整。

其中,根据拥塞区域在芯片上的位置,确定各标准单元的坐标的步骤,包括:

若拥塞区域位于芯片上靠近第一block的多个引脚的位置,则获取第一block的多个引脚的横坐标,并获取第一block靠近拥塞区域的边界的纵坐标;

将获得的多个横坐标依次作为多个标准单元的横坐标;其中,多个横坐标与多个标准单元一一对应;

以第一block靠近拥塞区域的边界的纵坐标为起点,按照第一预定步长朝远离第一block的方向移位,得到多个标准单元的纵坐标;其中,按照多个标准单元的横坐标从左至右的顺序,将每次移位后的纵坐标作为一标准单元的纵坐标。

其中,在按照多个标准单元的横坐标从左至右的顺序,将每次移位后的纵坐标作为一标准单元的纵坐标的步骤之后,方法还包括:

获取芯片上能用于纵向走线的金属层数,以及多个引脚中每相邻两个引脚之间的间距;

若拥塞区域位于第一block的下方,则通过公式yn=y0-n/(l1*k)*h1调整标准单元的纵坐标;其中yn表示第n个标准单元调整后的纵坐标,多个标准单元按照横坐标从左至右的顺序排序,y0表示第一block靠近拥塞区域的边界的纵坐标,l1表示芯片上能用于纵向走线的金属层数,k表示多个引脚中每相邻两个引脚之间的间距与金属线的节距的比值,h1表示第一预定步长;

若拥塞区域位于第一block的上方,则通过公式yn=y0+n/(l1*k)*h1调整标准单元的纵坐标。

其中,根据拥塞区域在芯片上的位置,确定各标准单元的坐标的步骤,包括:

若拥塞区域位于芯片上靠近第二block的边角的位置,则获取第二block的边角的角点坐标;

以角点坐标的横坐标为起点,按照第二预定步长朝远离第二block的方向移位,得到多个标准单元的横坐标;其中将每次移位后的横坐标作为一标准单元的横坐标;

以角点坐标的纵坐标为起点,按照第三预定步长朝远离第二block的方向移位,得到多个标准单元的纵坐标;其中按照多个标准单元的横坐标从右至左的顺序,将每次移位后的纵坐标作为一标准单元的纵坐标。

其中,在按照多个标准单元的横坐标从右至左的顺序,将每次移位后的纵坐标作为一标准单元的纵坐标的步骤之后,方法还包括:

获取第二block靠近拥塞区域的第一边界与拥塞区域靠近第二block的第二边界的第一距离,以及第二block靠近拥塞区域的第三边界与拥塞区域靠近第二block的第四边界的第二距离;

若拥塞区域位于第二block的边角的下方,则通过公式xn=x0-n*h2*l2/l3调整标准单元的横坐标;其中,xn表示第n个标准单元调整后的横坐标,多个标准单元按照横坐标从右至左的顺序排序,x0表示角点坐标的横坐标,h2表示第三预定步长,l2表示第一距离,l3表示第二距离;

若拥塞区域位于第二block的边角的上方,则通过公式xn=x0+n*h2*l2/l3调整标准单元的横坐标。

其中,通过对芯片进行布局布线获得芯片上布线拥塞的拥塞区域的步骤,包括:

通过布局布线工具对芯片进行布局布线获得芯片上布线拥塞的拥塞区域。

本发明的上述方案至少包括以下有益效果:

在本发明的实施例中,通过对芯片进行布局布线获得芯片上布线拥塞的拥塞区域,并获取该拥塞区域中的多个标准单元,最终根据拥塞区域在芯片上的位置,对多个标准单元的位置进行调整,解决了芯片的布线效率低且易出现拥塞的问题,达到了在消除布线拥塞的同时,提升芯片的布线效率的效果。

附图说明

图1为本发明具体实施例中芯片布线方法的流程图;

图2为本发明具体实施例中图1中步骤103的具体实现方式的流程图;

图3为本发明具体实施例中block的阵列摆放示意图;

图4为本发明具体实施例中靠近block的多个引脚的位置的标准单元的摆放示意图;

图5为本发明具体实施例中梯形结构的变化示意图之一;

图6为本发明具体实施例中靠近block的边角的位置的标准单元的摆放示意图之一;

图7为本发明具体实施例中靠近block的边角的位置的标准单元的摆放示意图之二;

图8为本发明具体实施例中梯形结构的变化示意图之二。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

如图1所示,本发明的具体实施例提供了一种芯片布线方法,包括:

步骤101,通过对芯片进行布局布线获得芯片上布线拥塞的拥塞区域。

其中,在本发明的具体实施例中,上述步骤101的具体实现方式可以为:通过布局布线工具对芯片进行布局布线获得芯片上布线拥塞的拥塞区域。即,在本发明的具体实施例中,可利用现有的布局布线工具对芯片进行自动布局布线,并通过该布局布线工具报出芯片上布线拥塞的拥塞区域,以便后续对拥塞区域内的标准单元进行调整,消除布线拥塞。

步骤102,获取拥塞区域中的多个标准单元。

其中,在本发明的具体实施例中,可通过布局布线工具的一些操作命令,获取到拥塞区域中的多个标准单元,以便后续对这多个标准单元进行调整,消除布线拥塞。

步骤103,根据拥塞区域在芯片上的位置,对多个标准单元的位置进行调整。

其中,在本发明的具体实施例中,如图2所示,上述步骤103的具体实现方式包括如下步骤:

步骤201,根据拥塞区域在芯片上的位置,确定各标准单元的坐标。

步骤202,根据各标准单元的坐标,对各标准单元的位置进行调整。

其中,在本发明的具体实施例中,如图3所示,大量的block呈矩结构摆放,其引脚分布很密集,且引脚方向在纵向沿线上,最终与其连接的外部引脚方向在横向沿线上。以图3中左上角的block为例,其与外部pin脚的连线先向下走再往右走(如图3中的箭头所示),布局布线工具通常对block的pin脚出来的第一级标准单元的摆放很杂乱,导致布线比较杂乱,很容易出现拥塞。其中图3中block内的a1、a2、a3、a4、a5、a6、a7、a8、a9、b1、b2、b3、b4、b5、b6、b7、b8以及b9分别表示block的一个引脚,图3中block外的a表示a1、a2、a3、a4、a5、a6、a7、a8以及a9与外部pin脚的连接点,图3中block外的b表示b1、b2、b3、b4、b5、b6、b7、b8以及b9与外部pin脚的连接点。此外,如果信号线先沿横向走,再纵向走,即九十度走线,布局布线工具会使金属线紧挨着block的边角分布,导致在block的边角很容易行程拥塞。

可见,上述拥塞区域可位于芯片上靠近block的多个引脚的位置,也可位于芯片上靠近block的边角的位置。且在本发明的具体实施例中,通过根据拥塞区域在芯片上的位置,确定出各标准单元的坐标,便能根据各标准单元的坐标,对各标准单元的位置进行调整,从而在消除布线拥塞的情况下,提升芯片的布线效率。

其中,在本发明的具体实施例中,当拥塞区域位于芯片上靠近block的多个引脚的位置时,上述步骤201的具体实现方式包括如下步骤:

步骤一,若拥塞区域位于芯片上靠近第一block的多个引脚的位置,则获取第一block的多个引脚的横坐标,并获取第一block靠近拥塞区域的边界的纵坐标。

其中,在本发明的具体实施例中,可通过布局布线工具获取第一block的多个引脚的横坐标,以及第一block靠近拥塞区域的边界的纵坐标。其中,第一block靠近拥塞区域的边界可以为第一block的下边界或者上边界等。

步骤二,将获得的多个横坐标依次作为多个标准单元的横坐标;其中,多个横坐标与多个标准单元一一对应。

其中,在本发明的具体实施例中,假设上述第一block的多个引脚的横坐标从左至右依次为x1、x2…xn,则多个标准单元的横坐标从左至右依次为x1、x2…xn。其中此处的n表示标准单元的个数,且这多个标准单元按照从左至右的顺序排序,x1表示第一个标准单元的横坐标,以此类推,xn表示第n个标准单元的横坐标。

步骤三,以第一block靠近拥塞区域的边界的纵坐标为起点,按照第一预定步长朝远离第一block的方向移位,得到多个标准单元的纵坐标;其中,按照多个标准单元的横坐标从左至右的顺序,将每次移位后的纵坐标作为一标准单元的纵坐标。

其中,在本发明的具体实施例中,通过以第一block靠近拥塞区域的边界的纵坐标为起点,在纵坐标轴上按照第一预定步长朝远离第一block的方向移位,得到多个标准单元的纵坐标,且其中按照多个标准单元的横坐标从左至右的顺序,将每次移位后的纵坐标作为一标准单元的纵坐标。

其中,在本发明的具体实施例中,假设第一block靠近拥塞区域的边界的纵坐标为y0,第一预定步长为h1,那么多个标准单元的纵坐标依次为y0-h1、y0-2*h1…y0-n*h1,从而多个标准单元的坐标依次为(x1,y0-h1)、(x2,y0-2*h1)…(xn,y0-n*h1)。

其中,以图3中左上角的block为例,在通过上述步骤一至步骤三确定出多个标准单元的坐标后,按照确定出的坐标将多个标准单元摆放于设计版面中时,多个标准单元的摆放如图4所示,其中多个标准单元(即图4中除block以外的小矩形框)呈梯形分布,从而使得block的各引脚的布线(即图4中将block的引脚连接至外部引脚的连线)非常规律整体。

其中,在本发明的具体实施例中,在执行完上述步骤三之后(即在按照多个标准单元的横坐标从左至右的顺序,将每次移位后的纵坐标作为一标准单元的纵坐标的步骤之后),上述方法还包括如下步骤:获取芯片上能用于纵向走线的金属层数,以及多个引脚中每相邻两个引脚之间的间距;若拥塞区域位于第一block的下方,则通过公式yn=y0-n/(l1*k)*h1调整标准单元的纵坐标;其中yn表示第n个标准单元调整后的纵坐标,多个标准单元按照横坐标从左至右的顺序排序,y0表示第一block靠近拥塞区域的边界的纵坐标,l1表示芯片上能用于纵向走线的金属层数,k表示多个引脚中每相邻两个引脚之间的间距与金属线的节距的比值,h1表示第一预定步长;而若拥塞区域位于第一block的上方,则通过公式yn=y0+n/(l1*k)*h1调整标准单元的纵坐标。

其中,在本发明的具体实施例中,第一block的多个引脚中每相邻两个引脚之间的间距均相同,而若不相同时,则取多个间距的平均值作为第一block的多个引脚中每相邻两个引脚之间的间距。

且在本发明的具体实施例中,当拥塞区域位于第一block(如图3中左上角的block)的下方时,通过公式yn=y0-n/(l1*k)*h1对各标准单元的纵坐标进行调整,调整后第一个标准单元的坐标为(x1,y0-h1),调整后第l1*k个标准单元的坐标为调整后第n个标准单元的坐标为(xn,y0-n/(l1*k)*h1),使各标准单元摆放的梯形结构的变化如图5所示,达到在充分利用空间的情况下,消除布线拥塞,大大降低芯片的成本的效果。类似的,当拥塞区域位于第一block的上方时,通过公式yn=y0+n/(l1*k)*h1调整标准单元的纵坐标,便可达到在充分利用空间的情况下,消除布线拥塞,大大降低芯片的成本的效果。

其中,在本发明的具体实施例中,当拥塞区域位于芯片上靠近block的边角(包括内拐角等)的位置时,上述步骤201的具体实现方式包括如下步骤:

第一步,若拥塞区域位于芯片上靠近第二block的边角的位置,则获取第二block的边角的角点坐标。

其中,在本发明的具体实施例中,可通过布局布线工具获取第二block的边角的角点坐标。

第二步,以角点坐标的横坐标为起点,按照第二预定步长朝远离第二block的方向移位,得到多个标准单元的横坐标;其中将每次移位后的横坐标作为一标准单元的横坐标。

其中,在本发明的具体实施例中,通过以角点坐标的横坐标为起点,在横坐标轴上按照第二预定步长朝远离第二block的方向移位,便能得到多个标准单元的横坐标。其中,在本发明的具体实施例中,假设角点坐标的横坐标为x0,第二预定步长为dx,那么从右至左,多个标准单元的横坐标依次为x0-dx、x0-2*dx…x0-n*dx,其中,n表示标准单元的数量。

第三步,以角点坐标的纵坐标为起点,按照第三预定步长朝远离第二block的方向移位,得到多个标准单元的纵坐标;其中按照多个标准单元的横坐标从右至左的顺序,将每次移位后的纵坐标作为一标准单元的纵坐标。

其中,在本发明的具体实施例中,通过以角点坐标的纵坐标为起点,在纵坐标轴上按照第三预定步长朝远离第二block的方向移位,便能得到多个标准单元的纵坐标。其中,在本发明的具体实施例中,假设角点坐标的纵坐标为y0,第三预定步长h2,那么按照多个标准单元的横坐标从右至左的顺序,多个标准单元的纵坐标依次为y0-h2、y0-2*h2…y0-n*h2,从而多个标准单元的坐标依次为(x0-dx,y0-h2)、(x0-2*dx,y0-2*h2)…(x0-n*dx,y0-n*h2)。

其中,以对芯片上靠近某个block的边角的拥塞区域的多个标准单元的调整为例,通过上述第一步至第三步确定出多个标准单元的坐标后,按照确定出的坐标将多个标准单元摆放于设计版面中时,多个标准单元的摆放如图6所示。另以对芯片上靠近某个block的内拐角的拥塞区域的多个标准单元的调整为例,通过上述第一步至第三步确定出多个标准单元的坐标后,按照确定出的坐标将多个标准单元摆放于设计版面中时,多个标准单元的摆放如图7所示。可见,调整后的多个标准单元呈梯形分布,通过标注单元所处位置的引导,使金属走线非常规律整体。

其中,在本发明的具体实施例中,在执行完上述第三步之后(即在按照多个标准单元的横坐标从右至左的顺序,将每次移位后的纵坐标作为一标准单元的纵坐标的步骤之后),上述方法还包括如下步骤:获取第二block靠近拥塞区域的第一边界与拥塞区域靠近第二block的第二边界的第一距离,以及第二block靠近拥塞区域的第三边界与拥塞区域靠近第二block的第四边界的第二距离;若拥塞区域位于第二block的边角的下方,则通过公式xn=x0-n*h2*l2/l3调整标准单元的横坐标;其中,xn表示第n个标准单元调整后的横坐标,多个标准单元按照横坐标从右至左的顺序排序,x0表示角点坐标的横坐标,h2表示第三预定步长,l2表示第一距离,l3表示第二距离;若拥塞区域位于第二block的边角的上方,则通过公式xn=x0+n*h2*l2/l3调整标准单元的横坐标。

其中,在本发明的具体实施例中,由于拥塞区域位于芯片上靠近block的边角的位置,因此该拥塞区域应有两个边界分别靠近block的两个边界。为便于理解,以拥塞区域位于第二block的边角的下方为例,解释上述第一边界、第二边界、第三边界以及第四边界,具体的,上述第二边界为拥塞区域的上边界,上述第一边界为第二block上靠近拥塞区域的上边界的边界,上述第四边界为拥塞区域的右边界,上述第三边界为第二block上靠近拥塞区域的右边界的边界。

且在发明的具体实施例中,当拥塞区域位于第二block的边角的下方时,则通过公式xn=x0-n*h2*l2/l3调整标准单元的横坐标,调整后多个标准单元的横坐标依次为x0-h2*l2/l3、x0-2*h2*l2/l3…x0-n*h2*l2/l3,即调整后多个标准单元的坐标依次为(x0-h2*l2/l3,y0-h2)、(x0-2*h2*l2/l3,y0-2*h2)…(x0-n*h2*l2/l3,y0-n*h2),使各标准单元摆放的提醒结构的变化如图8所示,达到了在充分利用空间的情况下,消除布线拥塞,大大降低芯片的成本的效果。类似的,当拥塞区域位于第二block的边角的上方时,通过公式xn=x0+n*h2*l2/l3调整标准单元的横坐标,便可达到在充分利用空间的情况下,消除布线拥塞,大大降低芯片的成本的效果。

由此可见,在本发明的具体实施例中,通过对芯片进行布局布线获得芯片上布线拥塞的拥塞区域,并获取该拥塞区域中的多个标准单元,最终根据拥塞区域在芯片上的位置,对多个标准单元的位置进行调整,解决了芯片的布线效率低且易出现拥塞的问题,达到了在消除布线拥塞的同时,提升芯片的布线效率的效果。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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