CN105677956B - 一种芯片缓冲器的插入方法 - Google Patents
一种芯片缓冲器的插入方法 Download PDFInfo
- Publication number
- CN105677956B CN105677956B CN201511032830.3A CN201511032830A CN105677956B CN 105677956 B CN105677956 B CN 105677956B CN 201511032830 A CN201511032830 A CN 201511032830A CN 105677956 B CN105677956 B CN 105677956B
- Authority
- CN
- China
- Prior art keywords
- cell
- chip
- buffer
- door
- vertex
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 239000000872 buffer Substances 0.000 title claims abstract description 78
- 238000012966 insertion method Methods 0.000 title claims abstract description 12
- 230000000903 blocking effect Effects 0.000 claims abstract description 5
- 238000000034 method Methods 0.000 claims description 14
- 239000004744 fabric Substances 0.000 claims description 2
- 210000004027 cell Anatomy 0.000 description 71
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 210000004457 myocytus nodalis Anatomy 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明涉及涉及集成电路技术领域,尤其涉及一种芯片缓冲器的插入方法,所述方法包括:单元化所述芯片,以在所述芯片上形成若干均等的单元格;分别确定位于所述芯片上的所有门中每个门的可移动范围;基于所述每个门的可移动范围,在满足每个所述单元格至多被一个所述门或一个缓冲器覆盖的条件下,确定可插入在所述芯片内的所述缓冲器的数量。本发明通过将芯片单元化,在确定出芯片上的每个门的可移动范围之后,根据每个门的可移动范围可以确定出可插入在芯片内的缓冲器的数量,从而,不仅优化了芯片的布局,提高了芯片上可插入缓冲器的缓冲区的数量,还降低了芯片的互联延时。
Description
技术领域
本发明涉及集成电路技术领域,尤其涉及一种芯片缓冲器的插入方法。
背景技术
芯片上的gate是MOS管(Metal Oxide Semiconductor)上的控制用的门。通常,芯片上会分布有多个门,门与门之间具有一定距离,当需要在两个门之间放置缓冲器(buffer),但是,两个门之间没有足够的位置时,只能将缓冲器移动到其他能够容纳该缓冲器的区域。如图1所示,假设需要在gate7和gate8之间插入一个缓冲器,但是,gate7和gate8之间没有足够大的位置放置缓冲器,缓冲器只能被移动到gate2和gate3之间进行放置。然而,在移动缓冲器的过程中,将会增加线长,当线长过大时,会增加芯片上的互联延时。
综上所述,按照现有技术中的上述缓冲器插入方法,不仅芯片上可插入的缓冲器的数量有限,而且,在移动缓冲器的过程中容易造成缓冲区的总线长过大,从而增大芯片上的互联延时,降低缓冲器插入的效率。
发明内容
本发明通过提供一种芯片缓冲器的插入方法,解决了现有技术在芯片上可插入的缓冲器的数量有限,且缓冲器移动过程中线长过大所造成的芯片互联延时过长的技术问题。
本发明实施例提供了一种芯片缓冲器的插入方法,所述方法包括:
单元化所述芯片,以在所述芯片上形成若干均等的单元格;
分别确定位于所述芯片上的所有门中每个门的可移动范围;
基于所述每个门的可移动范围,在满足每个所述单元格至多被一个所述门或一个缓冲器覆盖的条件下,确定可插入在所述芯片内的所述缓冲器的数量。
可选的,确定每个门的可移动范围,具体为:
根据每个门在所述芯片上的初始位置,以及所述芯片的高度和宽度,确定每个门在所述芯片的垂直方向和水平方向上的可移动范围。
可选的,所述芯片上的所述门或所述缓冲器逐行分布。
可选的,一个所述门至少覆盖一个所述单元格,一个所述缓冲器至少覆盖一个所述单元格。
可选的,当一个所述单元格或一组所述单元格被所述门覆盖时,一个所述单元格的顶点或一组所述单元格的顶点与所述门的顶点重合;
当一个所述单元格或一组所述单元格被所述缓冲器覆盖时,一个所述单元格的顶点或一组所述单元格的顶点与所述缓冲器的顶点重合。
可选的,所述基于所述每个门的可移动范围,在满足每个所述单元格至多被一个所述门或一个缓冲器覆盖的条件下,确定可插入在所述芯片内的所述缓冲器的数量,具体包括:
根据整数线性规划,构建如下方程组:
目标函数:
其中,γi,j用于表示门是否被放置在顶点坐标为(i,j)的单元格内,βi,j用于表示缓冲器是否被放置在顶点坐标为(i,j)的单元格内,当门被放置在顶点坐标为(i,j)的单元格内,则γi,j为1,否则γi,j为0,当缓冲器被放置在顶点坐标为(i,j)的单元格内,则βi,j为1,否则βi,j为0,P为所述芯片上的任一单元格的顶点;
求解所述方程组,从而确定可插入在所述芯片内的所述缓冲器的数量。
本发明实施例中的一个或多个技术方案,至少具有如下技术效果或优点:
本发明通过将芯片单元化,在确定出芯片上的每个门的可移动范围之后,根据每个门的可移动范围可以确定出可插入在芯片内的缓冲器的数量,从而,不仅优化了芯片的布局,提高了芯片上可插入缓冲器的缓冲区的数量,还降低了芯片的互联延时。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为现有技术中缓冲器插入方法的示意图;
图2为本发明实施例中一种芯片缓冲器的插入方法的流程图;
图3为本发明实施例中一个具体实施方式的示意图。
具体实施方式
为解决现有技术在芯片上可插入的缓冲器的数量有限,且缓冲器移动过程中线长过大所造成的芯片互联延时过长的技术问题,本发明提供一种芯片缓冲器的插入方法。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种芯片缓冲器的插入方法,如图2所示,所述方法包括:
步骤101:单元化芯片,以在芯片上形成若干均等的单元格。
在具体实施过程中,首先将芯片按照事先定义好的一个单元的大小进行单元化,即,将芯片分为若干单元格,各个单元格的大小相同。一个门至少覆盖一个单元格,同样,一个缓冲器至少覆盖一个单元格。具体的,一个门可以覆盖一个单元格,一个门也可以覆盖多个单元格,当一个门覆盖多个单元格时,多个单元格即成为一组单元格。同样,一个缓冲器可以覆盖一个单元格,一个缓冲器也可以覆盖多个单元格,当一个缓冲器覆盖多个单元格时,多个单元格即成为一组单元格。其中,可以以每个单元格或每组单元格的左下角作为该一个单元格或该一组单元格的顶点,例如,对于一个单元格而言,该单元格的左下角作为该单元格的顶点,对于一组单元格而言,该组单元格中最左边的一个单元格的左下角作为该组单元格的顶点。
进一步,当一个单元格或一组单元格被门覆盖时,一个单元格的顶点或一组单元格的顶点与门的顶点重合,同样,当一个单元格或一组单元格被缓冲器覆盖时,一个单元格的顶点或一组单元格的顶点与缓冲器的顶点重合。例如,当门覆盖在一个单元格上,则,门的顶点与该单元格的左下角重合,当门覆盖在一组单元格上,则,门的顶点与该组单元格中最左边的单元格的左下角重合,缓冲器具有同样的覆盖规则,此处不再赘述。
在执行完步骤101之后,本申请执行步骤102:分别确定位于芯片上的所有门中每个门的可移动范围。
在具体实施过程中,根据每个门在芯片上的初始位置,以及芯片的高度和宽度,给定每个门在芯片的垂直方向和水平方向上的可移动范围,即,每个门在芯片的x方向和y方向上的可移动范围。例如,如图3所示,在一具体实施例中,按照预定义好的一个单元的长度对芯片单元化之后,在一行芯片上形成6个单元格,该芯片上分布有2个门,分别为门1(gate1)和门2(gate2),gate1的初始位置位于第二单元格,gate2的初始位置位于第四单元格,gate1的顶点与第二单元格的顶点重合,gate2的顶点与第四单元格的顶点重合。给定的gate1的可移动范围为向左和向右移动1个单元格,则,gate1可以放置在第一单元格或第二单元格或第三单元格中。给定的gate2的可移动范围为向左和向右移动2个单元格,则,gate2可以放置在第二单元格或第三单元格或第四单元格或第五单元格或第六单元格中。
在执行完步骤102之后,本申请执行步骤103:基于所述每个门的可移动范围,在满足每个所述单元格至多被一个所述门或一个缓冲器覆盖的条件下,确定可插入在所述芯片内的所述缓冲器的数量。
在具体实施过程中,根据整数线性规划(ILP,Integer Linear Programming),构建如下方程组:
目标函数:
其中,γi,j用于表示门是否被放置在顶点坐标为(i,j)的单元格内,βi,j用于表示缓冲器是否被放置在顶点坐标为(i,j)的单元格内,当门被放置在顶点坐标为(i,j)的单元格内,则γi,j为1,否则γi,j为0,当缓冲器被放置在顶点坐标为(i,j)的单元格内,则βi,j为1,否则βi,j为0,P为所述芯片上的任一单元格的顶点。例如,γ1,1=1,即表明门可以被放置顶点坐标为(1,1)的第一单元格内。P为芯片上的任一单元格的顶点。通过求解上述方程组,从而确定可插入在芯片内的缓冲器的最大数量。
具体来讲,在向芯片中插入缓冲器时,一方面应满足:芯片上的所有元件逐行分布,不存在任何一个元件跨行分布。另一方面应满足:芯片上的元件之间无叠加。本申请利用整数线性规划来求解缓冲器的放置问题,即,求解芯片上可插入的缓冲器的最大值,其中,缓冲器的数量也即缓冲区的数量。
在上述方程组中,目标函数为:第一约束条件为: 所有的门,即,所有的门必然分布在芯片上。第二约束条件为:
所有的P
即,芯片上的门和缓冲器之间无叠加。具体来讲,表示所有覆盖顶点为P的单元格的βi,j的集合,即,缓冲器在移动过程中所有覆盖了顶点为P的单元格的可能位置的集合。表示所有覆盖顶点为P的单元格的γi,j的集合,即,门在移动过程中所有覆盖了顶点为P的单元格的可能位置的集合。
进一步,在求解方程组时假设缓冲器可以放在任一单元格内。例如,在上述的具体实施例中,参见图3,可列出如下方程组:
最后,通过单纯形算法(Simplex Method)可求解出该线性规划,得出结果,本例中可插入的缓冲器的最大值为4。
上述本申请实施例中的技术方案,至少具有如下的技术效果或优点:
本发明通过将芯片单元化,在确定出芯片上的每个门的可移动范围之后,根据每个门的可移动范围可以确定出可插入在芯片内的缓冲器的数量和位置,从而,不仅优化了芯片的布局,提高了芯片上可插入缓冲器的缓冲区的数量,还降低了芯片的互联延时。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (5)
1.一种芯片缓冲器的插入方法,其特征在于,所述方法包括:
单元化所述芯片,以在所述芯片上形成若干均等的单元格;
分别确定位于所述芯片上的所有门中每个门的可移动范围;
基于所述每个门的可移动范围,在满足每个所述单元格至多被一个所述门或一个缓冲器覆盖的条件下,确定可插入在所述芯片内的所述缓冲器的数量;
其中,所述基于所述每个门的可移动范围,在满足每个所述单元格至多被一个所述门或一个缓冲器覆盖的条件下,确定可插入在所述芯片内的所述缓冲器的数量,具体包括:
根据整数线性规划,构建如下方程组:
目标函数:
约束条件:
其中,γi,j用于表示门是否被放置在顶点坐标为(i,j)的单元格内,βi,j用于表示缓冲器是否被放置在顶点坐标为(i,j)的单元格内,当门被放置在顶点坐标为(i,j)的单元格内,则γi,j为1,否则γi,j为0,当缓冲器被放置在顶点坐标为(i,j)的单元格内,则βi,j为1,否则βi,j为0,P为所述芯片上的任一单元格的顶点,表示所有覆盖顶点为P的单元格的βi,j的集合,表示所有覆盖顶点为P的单元格的γi,j的集合;
求解所述方程组,从而确定可插入在所述芯片内的所述缓冲器的数量。
2.如权利要求1所述的方法,其特征在于,确定每个门的可移动范围,具体为:
根据每个门在所述芯片上的初始位置,以及所述芯片的高度和宽度,确定每个门在所述芯片的垂直方向和水平方向上的可移动范围。
3.如权利要求1所述的方法,其特征在于,所述芯片上的所述门或所述缓冲器逐行分布。
4.如权利要求1所述的方法,其特征在于,一个所述门至少覆盖一个所述单元格,一个所述缓冲器至少覆盖一个所述单元格。
5.如权利要求4所述的方法,其特征在于,当一个所述单元格或一组所述单元格被所述门覆盖时,一个所述单元格的顶点或一组所述单元格的顶点与所述门的顶点重合;
当一个所述单元格或一组所述单元格被所述缓冲器覆盖时,一个所述单元格的顶点或一组所述单元格的顶点与所述缓冲器的顶点重合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511032830.3A CN105677956B (zh) | 2015-12-31 | 2015-12-31 | 一种芯片缓冲器的插入方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511032830.3A CN105677956B (zh) | 2015-12-31 | 2015-12-31 | 一种芯片缓冲器的插入方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105677956A CN105677956A (zh) | 2016-06-15 |
CN105677956B true CN105677956B (zh) | 2019-04-02 |
Family
ID=56189984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511032830.3A Active CN105677956B (zh) | 2015-12-31 | 2015-12-31 | 一种芯片缓冲器的插入方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105677956B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1547252A (zh) * | 2003-11-28 | 2004-11-17 | 清华大学 | 集成电路布图规划与缓冲器规划集成的布局方法 |
CN1732470A (zh) * | 2002-12-17 | 2006-02-08 | 国际商业机器公司 | Asic时钟版图规划方法和结构 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000222451A (ja) * | 1999-02-02 | 2000-08-11 | Hitachi Ltd | 半導体集積回路の設計支援システム |
JP4801923B2 (ja) * | 2005-03-31 | 2011-10-26 | 株式会社東芝 | 半導体集積回路の設計手法 |
-
2015
- 2015-12-31 CN CN201511032830.3A patent/CN105677956B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1732470A (zh) * | 2002-12-17 | 2006-02-08 | 国际商业机器公司 | Asic时钟版图规划方法和结构 |
CN1547252A (zh) * | 2003-11-28 | 2004-11-17 | 清华大学 | 集成电路布图规划与缓冲器规划集成的布局方法 |
Non-Patent Citations (3)
Title |
---|
一种适用于标准单元设计的缓冲器插入及布线算法;任杰等;《微电子学》;20050630;第35卷(第3期);第286-289页 |
基于精确时延模型考虑缓冲器插入的互连线优化算法;张轶谦等;《电子学报》;20050531;第33卷(第5期);第783-787页 |
工艺变化条件下互连延时最小缓冲器插入方法;王新胜等;《北京邮电大学学报》;20140630;第37卷(第3期);第93-97、108页 |
Also Published As
Publication number | Publication date |
---|---|
CN105677956A (zh) | 2016-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8291172B2 (en) | Multi-modal data prefetcher | |
US8453094B2 (en) | Enforcement of semiconductor structure regularity for localized transistors and interconnect | |
CN103218195B (zh) | 应用程序的显示调整方法及装置 | |
Miclo et al. | Optimal epidemic suppression under an ICU constraint: An analytical solution | |
CN104011800B (zh) | 用于非易失性存储器阵列的存储器单元的循环耐久性延展 | |
US20110167388A1 (en) | Electronic device and method of browsing images thereon | |
CN109714264A (zh) | 基于缓存队列的滑动窗口限流的实现方法 | |
WO2006006084A8 (en) | Establishing command order in an out of order dma command queue | |
CN110032701A (zh) | 图像展示控制方法、装置、存储介质及电子设备 | |
CN104063125B (zh) | 一种桌面图标管理方法和装置 | |
CN103793140A (zh) | 一种应用程序图标排列方法及移动终端 | |
CN105677956B (zh) | 一种芯片缓冲器的插入方法 | |
US8566765B1 (en) | In-hierarchy circuit analysis and modification | |
CN103473013B (zh) | 一种应用界面调节的方法及移动终端 | |
CN106060564A (zh) | 帧内预测参考像素点滤波控制方法、装置及编码器 | |
CN105578264B (zh) | 基于智能电视的动画菜单的处理方法及装置 | |
CN106293958A (zh) | 用于内核间通信的信道大小调整 | |
US9817936B2 (en) | Methods for minimizing layout area of IC | |
CN107505981A (zh) | 一种控制方法及电子设备 | |
CN107820601A (zh) | 显示控制方法、显示控制系统及显示装置 | |
WO2020181579A1 (zh) | 一种基于帧内预测的编解码方法、装置及滤波器 | |
CN103778595B (zh) | 一种图像缩小处理的方法及装置 | |
CN102799576B (zh) | 在电子表格中给出不同行列操作提示的方法及装置 | |
US9286431B2 (en) | Oxide definition (OD) gradient reduced semiconductor device and method of making | |
WO2014209956A1 (en) | Method and system for dynamic management of write-miss buffer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |