一种芯片控制标准单元放置优化拥塞的方法与流程

未命名 10-09 阅读:137 评论:0


1.本发明涉及芯片技术领域,尤其涉及一种芯片控制标准单元放置优化拥塞的方法。


背景技术:

2.集成电路中芯片设计流程包括前端设计阶段和后端物理实现阶段,前端设计阶段包括逻辑设计与综合等,后端物理实现阶段包括布局与布线等。芯片设计中的拥塞一般在后端物理实现阶段时暴露和发现,能否解决拥塞是芯片物理实现的重要指标之一。
3.在芯片物理实现时,会有某一个或某几个子模块的标准单元的连线太多产生绕线资源紧张的问题,在受到其它不相关的连线影响时,尤其是不相关的来回穿梭的连线,极易造成多连线的子模块出现连线无法走通的情况。由于标准单元是由工具进行自动放置的,有的标准单元分布不均匀,导致金属走线过密;有的不同子模块间的逻辑混合到一块放置,导致来回穿梭的连线,浪费了不必要的走线资源,造成局部的走线拥塞。
4.通常情况下,需要扩大芯片的面积,通过增加走线轨道的方式来解决拥塞问题,这种方式增加了芯片的成本,加大了时序收敛的困难程度,有可能还会影响到芯片的性能,降低了芯片的市场竞争力。因此,本技术提出了一种芯片控制标准单元放置优化拥塞的方法。


技术实现要素:

5.本发明的目的在于提供一种芯片控制标准单元放置优化拥塞的方法,以解决目前的芯片内部走线拥塞的问题。
6.为实现上述目的,本发明提供如下技术方案:
7.一种芯片控制标准单元放置优化拥塞的方法,包括以下步骤:
8.获取芯片的布局结果以及预走线结果以获取产生拥塞的区域;
9.获取拥塞区域相关的子模块以及所述子模块的特征以获取控制子模块的信息,其中,所述控制子模块为因产生拥塞所需要调整的子模块;
10.基于控制子模块的标准单元的分布信息以及标准单元的总面积生成控制子模块的放置区域、放置区域的创建位置以及放置区域面积;
11.创建控制子模块内标准单元的放置区域,约束放置区域内标准单元的放置密度以形成新的布局方案;
12.重新对芯片的门级网表进行布局以及预走线步骤。
13.优选的,获取拥控制子模块的信息的方法包括以下步骤:
14.提取拥塞区域中所包含的标准单元总数量、拥塞区域内各子模块的标准单元数量以及标准单元管脚数量;
15.统计子模块内标准单元数量占标准单元总数的比例以及子模块内标准单元管脚数量占总标准单元管脚数的比例超过阈值的子模块,记为控制子模块;
16.获取控制子模块的分布信息以及标准单元的总面积。
17.优选的,生成控制子模块的放置区域、放置区域的创建位置以及放置区域面积的方法包括以下步骤:
18.以所述控制子模块中面积占控制子模块标准单元总面积超过70%比例的标准单元所在位置作为放置位置;
19.把所述放置位置作为所述控制子模块放置区域的创建位置;
20.获取放置位置的区域面积。
21.优选的,所述放置区域为正方形、非正方形或非规则形状的长方形。
22.优选的,所述放置区域位于布局结果的空白处。
23.优选的,基于放置阻塞来约束放置密度。
24.优选的,所述放置区域面积基于如下公式获取:
25.放置区域面积=该区域放置的子模块的总面积/标准单元放置的密度。
26.优选的,还包括以下步骤:
27.当预走线的结果内仍存在阻塞区域时,再次对布局结果进行优化。
28.综上所述,本发明与现有技术相比具有以下有益效果:
29.本发明实施例公开的芯片控制标准单元放置优化拥塞的方法能快速解决子模块的拥塞问题,避免后期实际走线时发生违反设计规则的情况,发生拥塞的子模块的标准单元放置距离更近,减少连线长度,降低连线的延时,更有利于时序的收敛。
附图说明
30.图1为本发明实施例公开的芯片控制标准单元放置优化拥塞的方法的流程示意图。
31.图2为本发明实施例公开的芯片控制标准单元放置优化拥塞的方法其中一个子程序的流程示意图。
32.图3为是现有技术中某芯片标准单元的预走线在实际芯片版图中的拥塞情况的示意图;
33.图4是图3公开的芯片标准单元的放置在实际芯片版图中的分布示意图;
34.图5是图3公开的芯片阻塞区域包含的子模块以及子模块的特征数据表格;
35.图6是图3公开的芯片优化后的标准单元在实际芯片版图中的分布示意图;
36.图7是图3公开的芯片优化后标准单元的预走线在实际版图中的拥塞情况示意图。
具体实施方式
37.下面将结合本发明实施例中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
38.为了便于理解本发明,下面对本发明出现的部分名词进行解释。
39.门级网表:在电路设计中,网表是用于描述电路元件相互之间连接关系的,一般来说是一个遵循某种比较简单的标记语法的文本文件。门级指的是网表描述的电路综合级别。顾名思义,门级网表中,描述的电路元件基本是门或与此同级别的元件。
40.标准单元:标准单元是一组提供布尔逻辑功能(例如,and、or、xor、xnor、反相器)或存储功能(触发器或锁存器)的晶体管和互连结构。标准单元包括反相器、与门、寄存器、选择器、全加器等多种基本单元,每一个标准单元对应着多个不同尺寸(w/l)、不同驱动能力的单元电路,而且不同驱动强度电路都是基本尺寸或最小尺寸的整数倍。
41.实施例1
42.如图1所示,本发明的一个实施例提供的一种芯片控制标准单元放置优化拥塞的方法,所述方法包括以下步骤:
43.步骤s100:获取芯片的布局结果以及预走线结果以获取产生拥塞的区域;
44.具体的,在本实施例中,通过布局工具获取芯片的门级网表,通过布局工具对门级网表进行布局的物理实现工作,在布局结束后,在布局工具中可以获取预走线结果,即拥塞图,其中,所述拥塞图用不同颜色来表示走线拥塞的严重程度,红色代表拥塞最严重,橙色、黄色、绿色、青色、蓝色、紫色代表的拥塞严重程度依次减弱。通过预走线结果可以得到如图2所示的芯片拥塞区域的示意图,图2所示的示意图为拥塞图灰度状态下显示结果,通过该示意图可以观察出产生拥塞的区域;
45.步骤s200、获取拥塞区域相关的子模块以及所述子模块的特征以获取控制子模块的信息,其中,所述控制子模块为因产生拥塞所需要调整的子模块;
46.具体的,在本步骤中,通过图2可以确定拥塞区域内的标准单元属于哪个哪些子模块,然后通过图2统计具有拥塞区域标准单元总数量、各子模块内属于拥塞区域的标准单元的数量和标准单元管脚的数量,统计子模块内属于拥塞区域的标准单元占拥塞区域标准单元总数量的比例,以及子模块内标准单元管脚占拥塞区域内总标准单元管脚的比例,当某一子模块内两种比例超过阈值时,确定该子模块为控制子模块,即子模块内属于拥塞区域的标准单元占拥塞区域标准单元总数量的比例超过第一阈值或者子模块内标准单元管脚占拥塞区域内总标准单元管脚的比例超过第二阈值时,确定该子模块为控制子模块;
47.在布局工具中,选中所述控制子模块所包含的标准单元并高亮,可以得到控制子模块内标准单元的分布情况,即控制子模块内标准单元的分布位置,以及通过布局工具中的脚本计算得到控制子模块包含的标准单元的总面积;
48.具体的,在本步骤中,如图2所示,获取拥控制子模块的信息的方法包括以下步骤:
49.步骤s210、提取拥塞区域中所包含的标准单元总数量、拥塞区域内各子模块的标准单元数量以及标准单元管脚数量,记标准单元数量占标准单元总数量的比例超过第一阈值或标准单元管脚数量占准单元管脚总数量超过第二阈值的子模块为控制子模块;
50.具体的,在本步骤中,通过布局工具提取拥塞区域中所包含的标准单元的数量以及标准单元的数量,并通过布局工具确定各标准单元属于哪个子模块,统计各子模块内属于拥塞区域内的标准单元的数量以及标准单元管脚数量;
51.步骤s220、统计子模块内标准单元数量占标准单元总数的比例以及子模块内标准单元管脚数量占总标准单元管脚数的比例超过阈值的子模块,记为控制子模块;
52.具体的,在本实施例中,计算各子模块内位于拥塞区域的标准单元的数量与拥塞区域的标准单元的总数量的比例,记为第一比例;各子模块内位于拥塞区域的标准单元管脚的数量与拥塞区域的标准单元管脚的总数量的比例,记为第二比例;定义第一比例超过第一阈值或第二比例超过第二阈值的子模块为控制子模块;
53.步骤s230、获取控制子模块的分布信息以及标准单元的总面积;
54.具体的,在本实施例中,通过布局工具提取控制子模块中标准单元的分布位置,作为控制子模块的分布信息,通过布局工具计算控制子模块中标准单元的总面积。
55.步骤s300、基于控制子模块的标准单元的分布信息以及标准单元的总面积生成控制子模块的放置区域、放置区域的创建位置以及放置区域面积;
56.在本步骤中,根据步骤s200中获取的所述控制子模块的分布信息获取所述控制子模块的放置区域、放置区域的创建位置以及放置区域面积;
57.具体的,根据控制子模块标准单元的分布情况,以所述控制子模块中面积占控制子模块标准单元总面积超过70%比例的标准单元所在位置作为放置位置,把所述放置位置作为所述控制子模块放置区域的创建位置;确定放置位置的区域面积;
58.步骤s400、创建控制子模块内标准单元的放置区域,约束放置区域内标准单元的放置密度以形成新的布局方案;
59.在本实施例中,根据所获取的控制子模块的放置位置、放置位置的创建位置以及放置位置的区域面积创建控制子模块内标准单元的放置区域,用于重新放置控制子模块内的标准单元,约束放置区域内标准单元的放置密度;
60.具体的,步骤s300中得到了控制子模块内标准单元的创建位置,该创建位置即为放置区域,通过布局工具在芯片的空白区域创建与放置位置棉结相同的区域,作为控制子模块内放置区域,约束放置区域内标准单元的放置密度,在布局工具中,利用放置阻塞来约束放置密度;确定放置区域后,获取放置区域的面积;
61.在本实施例中,所述放置区域面积由该区域内放置的子模块的总面积和标准单元放置的密度决定,通过公式:放置区域面积=该区域放置的子模块的总面积/标准单元放置的密度。
62.优选的,标准单元放置密度由本领域技术人员基于物理实现的经验得到,即标准单元放置密度是基于工作人员的经验设置,其中,标准单元放置密度的设置需要满足当前芯片的设计要求。
63.优选的,在本实施例中,所述放置区域为正方形、非正方形或非规则形状的长方形。
64.步骤s500、重新对芯片的门级网表进行布局以及预走线步骤,并获取预走线的结果。
65.具体的,将新的布局方案更新至门级网表后,对更新后的门级网表进行重新布局以及预走线,并获取预走线的结果,若拥塞区域的面积满足要求,即小于预设的阈值,若拥塞的区域大于阈值,则按照步骤100至步骤500重新优化。
66.实施例2
67.在本实施例中,针对具体案例对实施例1所述的芯片控制标准单元放置优化拥塞的方法进行具体分析:
68.步骤s100:获取芯片的布局结果以及预走线结果以获取产生拥塞的区域;
69.具体的,在本步骤中,在布局工具中对门级网表进行布局等物理实现工作,在布局结束后,可看到如图3所示的芯片拥塞区域的示意图。
70.步骤s200、获取拥塞区域相关的子模块以及所述子模块的特征以获取控制子模块
的信息,其中,所述控制子模块为因产生拥塞所需要调整的子模块
71.根据拥塞区域位置,确定所述拥塞区域中包含的标准单元属于哪些子模块,如图5所示,把拥塞区域中所包含的标准单元总数量、属于不同子模块的标准单元数量以及不同子模块的标准单元管脚数量打印出来;
72.根据图5的统计结果,确定子模块data19和data20的标准单元数量以及标准单元管脚数量在拥塞区域中超过阈值,可以确定将子模块data19和data20作为标准单元放置的控制子模块;
73.步骤s300、基于控制子模块的标准单元的分布信息以及标准单元的总面积生成控制子模块的放置区域、放置区域的创建位置以及放置区域面积;
74.如图4所示,获取子模块data19和data20的标准单元的分布,根据分布图,所述子模块data19和data20所有的标准单元大部分都分布在左侧区域,确定子模块data19的标准单元的放置区域的创建位置以及子模块data20的标准单元的放置区域的创建位置,分别位于子模块data19标准单元左侧分布区域的左下角位置和子模块data20的标准单元左侧分布区域的左下角位置;
75.此处通过脚本计算可获取子模块data19的面积为s1以及子模块data20的面积为s2;
76.获取子模块data19的标准单元分布版图中左侧部分最下方标准单元的位置坐标(x1,y1),其中,坐标为该区域内某角的坐标,作为子模块data19的标准单元放置区域的左下角坐标,以及子模块data19的标准单元分布版图中左侧部分最上方标准单元的位置坐标(x2,y2);获取子模块data20的标准单元分布版图中左侧部分最下方标准单元的位置坐标(x3,y3),作为子模块data20的标准单元放置区域的左下角坐标,以及子模块data20的标准单元分布版图中左侧部分最上方标准单元的位置坐标(x4,y4);
77.需要说明的是,本步骤是基于工程师的经验设置。
78.步骤s400、创建控制子模块内标准单元的放置区域,约束放置区域内标准单元的放置密度以形成新的布局方案;
79.根据步骤s300结果,创建放置所述子模块标准单元的放置区域,如图6所示,包括放置区域位置,放置区域面积以及放置区域形状,创建放置所述子模块data19的标准单元的放置区域101和子模块data20的标准单元的放置区域102;
80.所述放置区域101和102根据当前设计的要求,约束所述放置区域标准单元放置密度为50%;
81.所述放置区域101只允许放置子模块data19的标准单元;
82.所述放置区域102只允许放置子模块data20的标准单元;
83.所述放置区域为正方形、非正方形或非规则形状的长方形,此处根据子模块标准单元实际版图分布,放置区域101与放置区域102均为非正方形;
84.所述放置区域101的高度为h1=y2-y1,长度为a1=s1/50%/h1;
85.所述放置区域102的高度为h2=y4-y3,长度为a2=s2/50%/h2;
86.在坐标(x1,y1)处创建长为a1,高为h1的101区域,在坐标(x3,y3)处创建长为a2,高为h2的102区域。
87.步骤s500、重新对芯片的门级网表进行布局以及预走线步骤;
88.利用布局工具重新进行芯片标准单元的放置以及预走线,可看到子模块data19的标准单元和子模块data20的标准单元均严格按照约束分布。
89.如图7所示,可以看到控制标准单元放置后的拥塞结果,在版图上不再存在拥塞问题。
90.综上所述,本发明实施例公开的芯片控制标准单元放置优化拥塞的方法能快速解决子模块的拥塞问题,避免后期实际走线时发生违反设计规则的情况,发生拥塞的子模块的标准单元放置距离更近,减少连线长度,降低连线的延时,更有利于时序的收敛。
91.在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
92.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
93.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
94.在本发明实施例的一个典型的配置中,电子设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
95.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash-ram)。内存是计算机可读介质的示例。
96.可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。
97.电子设备的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory-media),如调制的数据信号和载波。
98.本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

技术特征:
1.一种芯片控制标准单元放置优化拥塞的方法,其特征在于,所述方法包括以下步骤:获取芯片的布局结果以及预走线结果以获取产生拥塞的区域;获取拥塞区域相关的子模块以及所述子模块的特征以获取控制子模块的信息,其中,所述控制子模块为因产生拥塞所需要调整的子模块;基于控制子模块的标准单元的分布信息以及标准单元的总面积生成控制子模块的放置区域、放置区域的创建位置以及放置区域面积;创建控制子模块内标准单元的放置区域,约束放置区域内标准单元的放置密度以形成新的布局方案;重新对芯片的门级网表进行布局以及预走线步骤。2.根据权利要求1所述的芯片控制标准单元放置优化拥塞的方法,其特征在于,获取拥控制子模块的信息的方法包括以下步骤:提取拥塞区域中所包含的标准单元总数量、拥塞区域内各子模块的标准单元数量以及标准单元管脚数量;统计子模块内标准单元数量占标准单元总数的比例以及子模块内标准单元管脚数量占总标准单元管脚数的比例超过阈值的子模块,记为控制子模块;获取控制子模块的分布信息以及标准单元的总面积。3.根据权利要求2所述的芯片控制标准单元放置优化拥塞的方法,其特征在于,生成控制子模块的放置区域、放置区域的创建位置以及放置区域面积的方法包括以下步骤:以所述控制子模块中面积占控制子模块标准单元总面积超过70%比例的标准单元所在位置作为放置位置;把所述放置位置作为所述控制子模块放置区域的创建位置;获取放置位置的区域面积。4.根据权利要求2所述的芯片控制标准单元放置优化拥塞的方法,其特征在于,所述放置区域为正方形、非正方形或非规则形状的长方形。5.根据权利要求3所述的芯片控制标准单元放置优化拥塞的方法,其特征在于,所述放置区域位于布局结果的空白处。6.根据权利要求1所述的芯片控制标准单元放置优化拥塞的方法,其特征在于,基于放置阻塞来约束放置密度。7.根据权利要求3所述的芯片控制标准单元放置优化拥塞的方法,其特征在于,所述放置区域面积基于如下公式获取:放置区域面积=该区域放置的子模块的总面积/标准单元放置的密度。8.根据权利要求1-7任意一项所所述的芯片控制标准单元放置优化拥塞的方法,其特征在于,还包括以下步骤:当预走线的结果内仍存在阻塞区域时,再次对布局结果进行优化。

技术总结
本发明涉及芯片技术领域,具体提供了一种芯片控制标准单元放置优化拥塞的方法,所述方法包括:获取芯片的布局结果以及预走线结果以获取产生拥塞的区域;获取拥塞区域相关的子模块以及所述子模块的特征以获取控制子模块的信息,其中,所述控制子模块为因产生拥塞所需要调整的子模块;基于控制子模块的标准单元的分布信息以及标准单元的总面积生成控制子模块的放置区域、放置区域的创建位置以及放置区域面积;创建控制子模块内标准单元的放置区域,约束放置区域内标准单元的放置密度以形成新的布局方案;重新对芯片的门级网表进行布局以及预走线步骤;本发明能快速解决子模块的拥塞问题,避免后期实际走线时发生违反设计规则的情况。的情况。的情况。


技术研发人员:程晓
受保护的技术使用者:上海亿家芯集成电路设计有限公司
技术研发日:2023.05.24
技术公布日:2023/10/7
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐