一种芯片缓冲器的插入方法
【技术领域】
[0001] 本发明涉及集成电路技术领域,尤其涉及一种芯片缓冲器的插入方法。
【背景技术】
[0002] 芯片上的gate是M0S管(Metal Oxide Semiconductor)上的控制用的门。通常,芯 片上会分布有多个门,门与门之间具有一定距离,当需要在两个门之间放置缓冲器 (buffer),但是,两个门之间没有足够的位置时,只能将缓冲器移动到其他能够容纳该缓冲 器的区域。如图1所示,假设需要在gate7和gate8之间插入一个缓冲器,但是,gate7和gate8 之间没有足够大的位置放置缓冲器,缓冲器只能被移动到gate2和gate3之间进行放置。然 而,在移动缓冲器的过程中,将会增加线长,当线长过大时,会增加芯片上的互联延时。
[0003] 综上所述,按照现有技术中的上述缓冲器插入方法,不仅芯片上可插入的缓冲器 的数量有限,而且,在移动缓冲器的过程中容易造成缓冲区的总线长过大,从而增大芯片上 的互联延时,降低缓冲器插入的效率。
【发明内容】
[0004] 本发明通过提供一种芯片缓冲器的插入方法,解决了现有技术在芯片上可插入的 缓冲器的数量有限,且缓冲器移动过程中线长过大所造成的芯片互联延时过长的技术问 题。
[0005] 本发明实施例提供了一种芯片缓冲器的插入方法,所述方法包括:
[0006] 单元化所述芯片,以在所述芯片上形成若干均等的单元格;
[0007] 分别确定位于所述芯片上的所有门中每个门的可移动范围;
[0008] 基于所述每个门的可移动范围,在满足每个所述单元格至多被一个所述门或一个 缓冲器覆盖的条件下,确定可插入在所述芯片内的所述缓冲器的数量。
[0009] 可选的,确定每个门的可移动范围,具体为:
[0010] 根据每个门在所述芯片上的初始位置,以及所述芯片的高度和宽度,确定每个门 在所述芯片的垂直方向和水平方向上的可移动范围。
[0011] 可选的,所述芯片上的所述门或所述缓冲器逐行分布。
[0012] 可选的,一个所述门至少覆盖一个所述单元格,一个所述缓冲器至少覆盖一个所 述单元格。
[0013] 可选的,当一个所述单元格或一组所述单元格被所述门覆盖时,一个所述单元格 的顶点或一组所述单元格的顶点与所述门的顶点重合;
[0014] 当一个所述单元格或一组所述单元格被所述缓冲器覆盖时,一个所述单元格的顶 点或一组所述单元格的顶点与所述缓冲器的顶点重合。
[0015] 可选的,所述基于所述每个门的可移动范围,在满足每个所述单元格至多被一个 所述门或一个缓冲器覆盖的条件下,确定可插入在所述芯片内的所述缓冲器的数量,具体 包括:
[0017]
[0016] 根据整数线性规划,构建如下方程组:
[0018]
[0019] 其中,用于表示门是否被放置在顶点坐标为(i,j)的单元格内,用于表示 缓冲器是否被放置在顶点坐标为(i,j)的单元格内,当门被放置在顶点坐标为(i,j)的单元 格内,则为1,否则为〇,当缓冲器被放置在顶点坐标为(i,j)的单元格内,则为 1,否则为〇,Ρ为所述芯片上的任一单元格的顶点;
[0020] 求解所述方程组,从而确定可插入在所述芯片内的所述缓冲器的数量。
[0021] 本发明实施例中的一个或多个技术方案,至少具有如下技术效果或优点:
[0022] 本发明通过将芯片单元化,在确定出芯片上的每个门的可移动范围之后,根据每 个门的可移动范围可以确定出可插入在芯片内的缓冲器的数量,从而,不仅优化了芯片的 布局,提高了芯片上可插入缓冲器的缓冲区的数量,还降低了芯片的互联延时。
【附图说明】
[0023] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据 提供的附图获得其他的附图。
[0024] 图1为现有技术中缓冲器插入方法的示意图;
[0025] 图2为本发明实施例中一种芯片缓冲器的插入方法的流程图;
[0026] 图3为本发明实施例中一个【具体实施方式】的示意图。
【具体实施方式】
[0027] 为解决现有技术在芯片上可插入的缓冲器的数量有限,且缓冲器移动过程中线长 过大所造成的芯片互联延时过长的技术问题,本发明提供一种芯片缓冲器的插入方法。
[0028] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0029] 本发明实施例提供一种芯片缓冲器的插入方法,如图2所示,所述方法包括:
[0030] 步骤101:单元化芯片,以在芯片上形成若干均等的单元格。
[0031] 在具体实施过程中,首先将芯片按照事先定义好的一个单元的大小进行单元化, 即,将芯片分为若干单元格,各个单元格的大小相同。一个门至少覆盖一个单元格,同样,一 个缓冲器至少覆盖一个单元格。具体的,一个门可以覆盖一个单元格,一个门也可以覆盖 多个单元格,当一个门覆盖多个单元格时,多个单元格即成为一组单元格。同样,一个缓冲 器可以覆盖一个单元格,一个缓冲器也可以覆盖多个单元格,当一个缓冲器覆盖多个单元 格时,多个单元格即成为一组单元格。其中,可以以每个单元格或每组单元格的左下角作为 该一个单元格或该一组单元格的顶点,例如,对于一个单元格而言,该单元格的左下角作为 该单元格的顶点,对于一组单元格而言,该组单元格中最左边的一个单元格的左下角作为 该组单元格的顶点。
[0032] 进一步,当一个单元格或一组单元格被门覆盖时,一个单元格的顶点或一组单元 格的顶点与门的顶点重合,同样,当一个单元格或一组单元格被缓冲器覆盖时,一个单元格 的顶点或一组单元格的顶点与缓冲器的顶点重合。例如,当门覆盖在一个单元格上,则,门 的顶点与该单元格的左下角重合,当门覆盖在一组单元格上,则,门的顶点与该组单元格中 最左边的单元格的左下角重合,缓冲器具有同样的覆盖规则,此处不再赘述。
[0033] 在执行完步骤101之后,本申请执行步骤102:分别确定位于芯片上的所有门中每 个门的可移动范围。
[0034] 在具体实施过程中,根据每个门在芯片上的初始位置,以及芯片的高度和宽度,给 定每个门在芯片的垂直方向和水平方向上的可移动范围,即,每个门在芯片的X方向和y方 向上的可移