CN115758980A - 一种基于自动串链脚本的低功耗物理设计布局方法 - Google Patents
一种基于自动串链脚本的低功耗物理设计布局方法 Download PDFInfo
- Publication number
- CN115758980A CN115758980A CN202211474734.4A CN202211474734A CN115758980A CN 115758980 A CN115758980 A CN 115758980A CN 202211474734 A CN202211474734 A CN 202211474734A CN 115758980 A CN115758980 A CN 115758980A
- Authority
- CN
- China
- Prior art keywords
- power
- sram
- chain
- switch unit
- loc
- 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.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种基于自动串链脚本的低功耗物理设计布局方法,包括以下步骤:数据导入;UPF文件配置及导入;宏模块布局规划;设置开关单元布局脚本;设置自动串链脚本实现开关单元主链和副链的逻辑连接重构;设置电源网络规划脚本,通过电源规划脚本实现特定的电源网络结构和达到可关断电源方案的要求。本发明应用于物理设计中布局布线的FloorPlan阶段,通过在宏单元附近补链的方式,解决了FFT模块通过INNOVUS工具自动添加开关单元链时,被宏单元隔断的开关单元之间存在连线过长而造成信号transition过大的问题。
Description
技术领域
本发明涉及集成电路领域,特别涉及一种基于自动串链脚本的低功耗物理设计布局方法。
背景技术
物理设计是集成电路设计中的重要组成部分,它实现了芯片RTL级代码到GDSⅡ版图的转化,物理设计的好坏直接决定了芯片能否满足功能和性能的需求,能否满足加工投片需求,以及芯片成品率的高低。随着系统芯片的功能越来越复杂、集成度的不断提高、电路规模的不断扩大,芯片的功耗已成为日渐突出的问题。低功耗物理设计成为突破功耗过高瓶颈的解决办法之一。
在数字后端物理实现过程中,要实现电源可关断方案以达到降低静态功耗的目的,开关单元的布局规划至关重要,而在具体设计中需要控制电源轨道的开关需要添加大量的该类单元,虽然通过EDA工具可自动实现设计中的开关单元的添加,但往往添加的效果不佳,由于设计中普遍存在面积较大的宏单元,因此会产生被宏单元隔断的开关单元之间存在连线过长,造成transition过大的问题。
发明内容
为了解决上述技术问题,本发明提供一种设计周期短,优化效率高的基于自动串链脚本的低功耗物理设计布局方法。
本发明解决上述技术问题的技术方案是:一种基于自动串链脚本的低功耗物理设计布局方法,包括以下步骤:
(1)数据导入;输入文件包括:综合后的RTL网表、设计约束文件、宏单元、标准单元物理信息库和时序库;
(2)UPF文件配置及导入;
(3)宏模块布局规划;基于INNOVUS工具进行宏模块的摆放,根据宏模块类型,以同类型模块集中布局、不同类型宏模块依据数据流情况进行布局为原则;布局时在上述原则基础上规整、对称布局规划,便于后续开关单元的布局规划;
(4)设置开关单元布局脚本;对设计的core区域整体添加开关单元主链;宏模块之间的通道区域添加开关单元副链;
(5)设置自动串链脚本实现开关单元主链和副链的逻辑连接重构;
(6)设置电源网络规划脚本,通过电源规划脚本实现特定的电源网络结构和达到可关断电源方案的要求。
上述基于自动串链脚本的低功耗物理设计布局方法,所述步骤(1)中,库文件对物理设计中布局布线阶段所涉及到的各单元的面积、引脚、时序、功耗、逻辑功能信息进行了定义。
上述基于自动串链脚本的低功耗物理设计布局方法,所述步骤(2)中,UPF文件用来描述芯片设计中的低功耗意图;进行电源域的划分,电路设计时为了整体调配控制每个部分地电压,给芯片或模块划分不同的电源域,每一个电源域内的所有单元供电电压一致,每一个区域即为一个电源域;针对每一个电源域的边界上定义供电端口和供电网络,供电网络贯穿于整个电源域中提供电源,并且可穿过多个电源域达到重的效果,供电端口为两个电源域的供电电源连接点;定义电源开关,一个电源开关包括一个输入供电网络,一个可被连通或切断的输出供电网络和至少一个输入控制信号;描述电源状态表,定义芯片在工作时各个电源域的电压状态。
上述基于自动串链脚本的低功耗物理设计布局方法,所述步骤(3)中,进行宏单元的布局,将同类型宏单元分模块集中摆放,根据数据流关系将不同类型宏单元就近摆放,摆放时各宏单元遵循上下对齐、对称摆放的原则;形成模块上半部分和下半部分间距一致的通道,通道处预留为开关单元链添加的区域,上下部分中间预留为标准单元摆放区域。
上述基于自动串链脚本的低功耗物理设计布局方法,所述步骤(4)中,对设计的core区域整体添加开关单元主链的具体内容为基于INNOVUS命令行,实现开关单元链的添加:开关单元链按列进行添加,采用checkboard排布结构;指定电源域名;指定与设计的core区域的底部和左侧边界的间距;指定使用的开关单元类型;指定上下相邻两个单元跳过的row的数量;指定连接通路的终点单元;指定主链添加顺序为自上至下。
上述基于自动串链脚本的低功耗物理设计布局方法,所述步骤(4)中,宏模块间通道区域添加开关单元副链的具体过程为:采用两个循环体进行从上至下和从下至上进行添加,循环体通过TCL脚本命令foreach实现,在执行循环体前,先指定通道区域的左下角和右上角坐标为变量sram_channels;定义循环体计数变量sram_count的初始值为0;循环体的具体实现方式如下:通过TCL命令lindex对变量sram_channels的值进行索引,索引结果赋值给ch_llx、ch_lly、ch_urx、ch_ury四个坐标变量,指定添加开关单元的区域的物理位置;然后指定副链的添加方式,同样是基于INNOVUS命令行,进行添加形式的设置,设置方式与主链添加方式大致相同,区别在于奇数列时,副链添加顺序为从上至下,而处于偶数列的副链添加顺序为从下至上;副链添加完成后,首末两个开关单元的输入输出处于浮空状态,指定添加线名为EnNet_in和EnNet_out的两条物理连线,用于主链和副链的逻辑连接。
上述基于自动串链脚本的低功耗物理设计布局方法,所述步骤(4)中,主链和副链为先后独立添加,在逻辑连接关系上不具整体性,因此在步骤(5)中通过自动串链脚本对主链原有逻辑连接关系进行打断,并与副链进行重新连接;需要逻辑关系重构的区域不唯一,因此可采用for循环逐一实现每个区域逻辑关系的重构;逻辑连接关系重构时,存在两种不同的情况,处于奇数列的副链添加顺序为从上至下,而处于偶数列的副链添加顺序为从下至上,在通过脚本实现逻辑关系的重构时,采用if条件判断语句对两种情况进行判断,再执行相应的打断和重连操作。
上述基于自动串链脚本的低功耗物理设计布局方法,所述步骤(5)具体过程为:
自动串链脚本用于实现四种类型的开关单元之间原有连接关系的打断和重连;针对4种类别的开关单元做以下定义:副链的首个开关单元,变量名为sram_switch_first_cell;主链上与sram_switch_first_cell相邻的开关单元,变量名为nearcell0;主链上与nearcell0顺序相连的开关单元,变量名为near_sram_connect_cell;副链末端的开关单元,变量名为sram_switch_chain_top;采用for循环的方式依次实现每一处副链和主链之间逻辑关系的重新连接,for循环的终止判断变量设置为i,以0为初始值,当i<sram_count时,加1并执行循环体直至判断条件不满足,sram_count为宏模块之间通道的计数变量;设置脚本循环体内容:
(5-1)sram_switch_first_cell的获取:[get_attribute[get_cells–of_obejects[all_connected EnNet_in]full_name]获取与物理连线EnNet_in连接的单元名,即sram_switch_first_cell;使用dbGet命令获取单元的位置坐标变量loc_x和loc_y;
(5-2)nearcell0的获取:通过算法确定一个矩形区域{box_llx,box_lly,box_upx,box_upy};box_llx的数值为[expr(loc_x-a)*1000];box_lly的数值为[expr(loc_x-b)*1000];box_upx的数值为[expr(loc_x-c)*1000];box_upy的数值为[expr(loc_x-d)*1000];该算法的思想方法为以{loc_x,loc_y}坐标为基准点计算出一个矩形区域的坐标,loc_x和loc_y分别向上向下、向左向右偏移给定的变量a、b、c、d数值,变量a、b、c、d的数值根据当前开关单元的分布情况来具体确定,a和c为横向偏移的数值选取合适的数值即可,由于在实际布局中,上下相邻开关单元的间隔都为row高度的整数倍,b和d的数值设置为row高度的整数倍,然后通过dbGet命令获取矩形区域内的所有单元的例化名称,再通过get_cells–filter“full_name=*”命令,*为通配符,通过单元的例化名称进行匹配,筛选出相邻的主链上的开关单元,定义为变量pgcells;由于变量pgcells中单元的例化名称可能存在不唯一性,因此用lindex命令取变量pgcells中第一个元素赋值变量nearcell0,dbGet获取该元素的左下角y坐标,赋值给变量loc_y_nearcell0;
(5-3)near_sram_connect_cell的获取:通过get_attribute和all_fanout组合命令获取与nearcell0逻辑连接的单元的例化名称,标记为变量near_sram_connect_cell,同样地,dbGet获取其左下角y坐标,赋值给变量loy_y_near_sram_connect_cell;
(5-4)sram_switch_chain_top的获取:通过算法获取一个矩形区域{xx1,yy1,xx2,yy2},xx1的值为[expr(loc_x-e)*1000];yy1的值[expr(loc_y_near_sram_connet_cell-f)*1000];xx2的值为[expr(loc_x+g)*1000];yy2的值为[expr(loc_y_near_sram_connet_cell+h)*1000];通过dbGet命令获取矩形区域内单元的例化名称,再使用与(5-3)中同样的方式筛选出sram_switch_chain_top。逻辑关系重新连接时存在两种情况,采用if条件判断语句对比变量loc_y_nearcell0、loy_y_near_sram_connect_cell的大小:
a.loc_y_nearcell0<loc_y_near_sram_connect_cell
这种情况下开关单元链为偶数列,副链的排布顺序为从下至上;变量f为关键数值,根据near_sram_connect_cell和sram_switch_chain_top在图形界面中实际分布情况而定,数值定义为两种单元相隔的row的整数倍;
b.loc_y_nearcell0>loc_y_near_sram_connect_cell
这种情况下开关单元链为奇数列,副链的排布顺序为从上至下;变量h为关键数值,根据near_sram_connect_cell和sram_switch_chain_top在图形界面中实际分布情况而定,数值定义为两种单元相隔的row的整数倍;
(5-5)主链和相邻副链进行重新连接,逻辑连接遵循的原则为:上一级开关单元的HEADOUT1引脚连接下一级开关单元的HEADEN1引脚;下一级开关单元的HEADOUT2引脚连接上一级开关单元的HEADEN2引脚;
(5-6)使用INNOVUS命令detachTerm和attachTerm依据(5-5)所述原则进行逻辑关系的打断与重连。
本发明的有益效果在于:
1、本发明应用于物理设计中布局布线的FloorPlan(布图规划)阶段,通过在宏单元附近补链的方式,实现了FFT模块低功耗设计中开关单元的自动布局和逻辑连接,解决了FFT模块通过INNOVUS工具自动添加开关单元链时,被宏单元隔断的开关单元之间存在连线过长而造成信号transition(爬坡时间)过大的问题。
2、开关单元链的逻辑连接关系的重构,采用传统的INNOVUS工具通过基础命令进行这项工作需要耗费较多时间,且不具通用性,一旦FloorPlan发生改变,就需要进行重复的工作,不利于项目的开展。本发明通过自动串链脚本解决了该问题,不但减少了工作量,也避免了机械式地重复逻辑连接操作易出错的风险,同时,此种方式具有继承性,可针对不同项目的具体情况进行扩展。
附图说明
图1是本发明实施例的基本流程示意图。
图2是本发明中步骤3中宏单元布局方式的示意图。
图3是本发明中步骤4中主链添加的示意图。
图4是本发明中步骤4和步骤5中副链添加和逻辑关系重构的示意图。
具体实施方式
下面结合附图和实施例对本发明做进一步的说明。
如图1所示,一种基于自动串链脚本的低功耗物理设计布局方法,包括以下步骤:
(1)数据导入;输入文件包括:综合后的RTL(Register Transfer Level)网表、设计约束文件、宏单元、标准单元物理信息库和时序库。库文件对物理设计中布局布线阶段所涉及到的各单元的面积、引脚、时序、功耗、逻辑功能信息进行了定义。
(2)UPF(United Power Format)文件配置及导入;UPF文件用来描述芯片设计中的低功耗意图;进行电源域的划分,电路设计时为了整体调配控制每个部分地电压,给芯片或模块划分不同的电源域,每一个电源域内的所有单元供电电压一致,每一个区域即为一个电源域;针对每一个电源域的边界上定义供电端口和供电网络,供电网络贯穿于整个电源域中提供电源,并且可穿过多个电源域达到重的效果,供电端口为两个电源域的供电电源连接点;定义电源开关,一个电源开关包括一个输入供电网络,一个可被连通或切断的输出供电网络和至少一个输入控制信号;描述电源状态表,定义芯片在工作时各个电源域的电压状态。
(3)宏模块布局规划;如图2所示,根据数据交互关系将宏模块上下对齐、对称摆放,形成模块上半部分和下半部分间距一致的通道,中间空白区域为标准单元摆放区域。完成宏模块摆放后,由于开关单元为2倍row(排)的高度,常规的标准单元为1倍row的高度,因此在设计中会同时存在1倍和2倍site高度的row,需要进行fix row的操作,在添加开关单元链之前,将数据导入时自动创建的row删除,重新创建1倍和2倍高度的row。
(4)设置开关单元布局脚本;整个设计中开关单元的布局分为两个部分,其一是对设计的core(内核)区域整体添加开关单元主链,主链添加脚本基于INNOVUS中的工程命令实现开关单元在设计中覆盖大部分区域;第二是在宏模块之间的通道区域添加开关单元副链,避免开关单元覆盖不充分,而引起的transition问题和电压降过大的问题。
如图3所示,添加开关单元主链。所述步骤(4)中,对设计的core区域整体添加开关单元主链的具体内容为基于INNOVUS命令行,实现开关单元链的添加:开关单元链按列进行添加,采用checkboard(棋盘式)排布结构;指定电源域名;指定与设计的core区域的底部和左侧边界的间距;指定使用的开关单元类型;指定上下相邻两个单元跳过的的数量;指定连接通路的终点单元;指定主链添加顺序为自上至下。
如图4所示,宏模块之间的通道区域添加开关单元副链。具体脚本设置为:采用两个循环体进行从上至下和从下至上进行添加,循环体通过TCL脚本命令foreach实现,在执行循环体前,先指定通道区域的左下角和右上角坐标为变量sram_channels;定义循环体计数变量sram_count的初始值为0;循环体的具体实现方式如下:通过TCL命令lindex对变量sram_channels的值进行索引,索引结果赋值给ch_llx、ch_lly、ch_urx、ch_ury四个坐标变量,指定添加开关单元的区域的物理位置;然后指定副链的添加方式,同样是基于INNOVUS命令行,进行添加形式的设置,设置方式与主链添加方式大致相同,区别在于奇数列时,副链添加顺序为从上至下,而处于偶数列的副链添加顺序为从下至上;副链添加完成后,首末两个开关单元的输入输出处于浮空状态,指定添加线名为EnNet_in和EnNet_out的两条物理连线,用于主链和副链的逻辑连接。
(5)设置自动串链脚本实现开关单元主链和副链的逻辑连接重构。
步骤(4)中,主链和副链为先后独立添加,在逻辑连接关系上不具整体性,因此在步骤(5)中通过自动串链脚本对主链原有逻辑连接关系进行打断,并与副链进行重新连接;需要逻辑关系重构的区域不唯一,采用for循环逐一实现逻辑关系的重构;逻辑连接关系重构时,存在两种不同的情况,处于奇数列的副链添加顺序为从上至下,而处于偶数列的副链添加顺序为从下至上,在通过脚本实现逻辑关系的重构时,采用if条件判断语句对两种情况进行判断,再执行相应的打断和重连操作。
如图4所示,对比图3主链和副链实现了逻辑关系重构。逻辑连接关系重构脚本用于实现四种类型的开关单元之间原有连接关系的打断和重连;针对4种类别的开关单元做以下定义:副链的首个开关单元,变量名为sram_switch_first_cell;主链上与sram_switch_first_cell相邻的开关单元,变量名为nearcell0;主链上与nearcell0顺序相连的开关单元,变量名为near_sram_connect_cell;副链末端的开关单元,变量名为sram_switch_chain_top;采用for循环的方式依次实现每一处副链和主链之间逻辑关系的重新连接,for循环的判断条件设置为变量i,以0为初始值,当i<sram_count时,加1并执行循环体直至判断条件不满足,sram_count为宏模块之间通道的计数变量;设置脚本循环体内容:
(5-1)sram_switch_first_cell的获取:[get_attribute[get_cells–of_obejects[all_connected EnNet_in]full_name]获取与物理连线EnNet_in连接的单元名,即sram_switch_first_cell;使用dbGet命令获取单元的位置坐标变量loc_x和loc_y;
(5-2)nearcell0的获取:通过算法确定一个矩形区域{box_llx,box_lly,box_upx,box_upy};box_llx的数值为[expr(loc_x-a)*1000];box_lly的数值为[expr(loc_x-b)*1000];box_upx的数值为[expr(loc_x-c)*1000];box_upy的数值为[expr(loc_x-d)*1000];该算法的思想方法为以{loc_x,loc_y}坐标为基准点计算出一个矩形区域的坐标,loc_x和loc_y分别向上向下、向左向右偏移给定的变量a、b、c、d数值,变量a、b、c、d的数值根据当前开关单元的分布情况来具体确定,a和c为横向偏移的数值选取合适的数值即可,由于在实际布局中,上下相邻开关单元的间隔都为row(排)高度的整数倍,b和d的数值设置为row(排)高度的整数倍,然后通过dbGet命令获取矩形区域内的所有单元的例化名称,再通过get_cells–filter“full_name=*”命令(*为通配符,结合设计中开关单元的例化名使用),通过单元的例化名称进行匹配,筛选出相邻的主链上的开关单元,定义为变量pgcells;由于变量pgcells中单元的例化名称可能存在不唯一性,因此用lindex命令取变量pgcells中第一个元素赋值变量nearcell0,dbGet获取该元素的左下角y坐标,赋值给变量loc_y_nearcell0;
(5-3)near_sram_connect_cell的获取:通过get_attribute和all_fanout组合命令获取与nearcell0逻辑连接的单元的例化名称,标记为变量near_sram_connect_cell,同样地,dbGet获取其左下角y坐标,赋值给变量loy_y_near_sram_connect_cell;
(5-4)sram_switch_chain_top的获取:通过算法获取一个矩形区域{xx1,yy1,xx2,yy2},xx1的值为[expr(loc_x-e)*1000];yy1的值[expr(loc_y_near_sram_connet_cell-f)*1000];xx2的值为[expr(loc_x+g)*1000];yy2的值为[expr(loc_y_near_sram_connet_cell+h)*1000];通过dbGet命令获取矩形区域内单元的例化名称,再使用与(5-3)中同样的方式筛选出sram_switch_chain_top。逻辑关系重新连接时存在两种情况,采用if条件判断语句对比变量loc_y_nearcell0、loy_y_near_sram_connect_cell的大小:
a.loc_y_nearcell0<loc_y_near_sram_connect_cell
这种情况下开关单元链为偶数列,副链的排布顺序为从下至上;变量f为关键数值,根据near_sram_connect_cell和sram_switch_chain_top在图形界面中实际分布情况而定,数值定义为两种单元相隔的row(排)的整数倍;
b.loc_y_nearcell0>loc_y_near_sram_connect_cell
这种情况下开关单元链为奇数列,副链的排布顺序为从上至下;变量h为关键数值,根据near_sram_connect_cell和sram_switch_chain_top在图形界面中实际分布情况而定,数值定义为两种单元相隔的row(排)的整数倍;
(5-5)主链和相邻副链进行重新连接,如图3中引脚连接示意所示,逻辑连接遵循的原则为:上一级开关单元的HEADOUT1引脚连接下一级开关单元的HEADEN1引脚;下一级开关单元的HEADOUT2引脚连接上一级开关单元的HEADEN2引脚;
(5-6)使用INNOVUS命令detachTerm和attachTerm依据(5-5)所述原则进行逻辑关系的打断与重连。
(6)设置电源网络规划脚本,通过电源规划脚本实现特定的电源网络结构和达到可关断电源方案的要求。
所述步骤(6)中,设计采用11层金属的工艺M1-M11,从M11层到M6层依次进行VDD_FFT、VDD和VSS三种类型电源条的添加,其中VDD_FFT为FFT_PSD电源域下的电源条,VDD为常电电源条;M5电源条的添加分为四个部分:
(1)给宏模块区域添加VDD_FFT和VSS电源条并打上M5的routing blockage(绕线阻碍区域);
(2)在宏模块之间的通道各添加一组VDD_FFT和VSS电源条,保证通道中间的标准单元的供电;
(3)在每一列开关单元链的电源引脚VDDG上添加一条VDD电源条并从M5向M2打上电源孔;
(4)给宏模块以外的区域依次添加VDD、VDD_FFT、VSS的电源条;最后,整个core(内核)区域添加M1、M2的横向电源轨:VDD_FFT和VSS。
Claims (9)
1.一种基于自动串链脚本的低功耗物理设计布局方法,其特征在于:包括以下步骤:
(1)数据导入;输入文件包括:综合后的RTL网表、设计约束文件、宏单元、标准单元物理信息库和时序库;
(2)UPF文件配置及导入;
(3)宏模块布局规划;基于INNOVUS工具进行宏模块的摆放,根据宏模块类型,以同类型模块集中布局、不同类型宏模块依据数据流情况进行布局为原则;布局时在上述原则基础上规整、对称布局规划,便于后续开关单元的布局规划;
(4)设置开关单元布局脚本;对设计的core区域整体添加开关单元主链;宏模块之间的通道区域添加开关单元副链;
(5)设置自动串链脚本实现开关单元主链和副链的逻辑连接重构;
(6)设置电源网络规划脚本,通过电源规划脚本实现特定的电源网络结构和达到可关断电源方案的要求。
2.根据权利要求1所述的基于自动串链脚本的低功耗物理设计布局方法,其特征在于:所述步骤(1)中,库文件对物理设计中布局布线阶段所涉及到的各单元的面积、引脚、时序、功耗、逻辑功能信息进行了定义。
3.根据权利要求1所述的基于自动串链脚本的低功耗物理设计布局方法,其特征在于:所述步骤(2)中,UPF文件用来描述芯片设计中的低功耗意图;进行电源域的划分,电路设计时为了整体调配控制每个部分地电压,给芯片或模块划分不同的电源域,每一个电源域内的所有单元供电电压一致,每一个区域即为一个电源域;针对每一个电源域的边界上定义供电端口和供电网络,供电网络贯穿于整个电源域中提供电源,并且可穿过多个电源域达到重的效果,供电端口为两个电源域的供电电源连接点;定义电源开关,一个电源开关包括一个输入供电网络,一个可被连通或切断的输出供电网络和至少一个输入控制信号;描述电源状态表,定义芯片在工作时各个电源域的电压状态。
4.根据权利要求1所述的基于自动串链脚本的低功耗物理设计布局方法,其特征在于:所述步骤(3)中,进行宏单元的布局,将同类型宏单元分模块集中摆放,根据数据流关系将不同类型宏单元就近摆放,摆放时各宏单元遵循上下对齐、对称摆放的原则;形成模块上半部分和下半部分间距一致的通道,通道处预留为开关单元链添加的区域,上下部分中间预留为标准单元摆放区域。
5.根据权利要求1所述的基于自动串链脚本的低功耗物理设计布局方法,其特征在于:所述步骤(4)中,对设计的core区域整体添加开关单元主链的具体内容为基于INNOVUS命令行,实现开关单元链的添加:开关单元链按列进行添加,采用checkboard排布结构;指定电源域名;指定与设计的core区域的底部和左侧边界的间距;指定使用的开关单元类型;指定上下相邻两个单元跳过的row的数量;指定连接通路的终点单元;指定主链添加顺序为自上至下。
6.根据权利要求1所述的基于自动串链脚本的低功耗物理设计布局方法,其特征在于:所述步骤(4)中,宏模块间通道区域添加开关单元副链的具体过程为:采用两个循环体进行从上至下和从下至上进行添加,循环体通过TCL脚本命令foreach实现,在执行循环体前,先指定通道区域的左下角和右上角坐标为变量sram_channels;定义循环体计数变量sram_count的初始值为0;循环体的具体实现方式如下:通过TCL命令lindex对变量sram_channels的值进行索引,索引结果赋值给ch_llx、ch_lly、ch_urx、ch_ury四个坐标变量,指定添加开关单元的区域的物理位置;然后指定副链的添加方式,同样是基于INNOVUS命令行,进行添加形式的设置,设置方式与主链添加方式大致相同,区别在于奇数列时,副链添加顺序为从上至下,而处于偶数列的副链添加顺序为从下至上;副链添加完成后,首末两个开关单元的输入输出处于浮空状态,指定添加线名为EnNet_in和EnNet_out的两条物理连线,用于主链和副链的逻辑连接。
7.根据权利要求1所述的基于自动串链脚本的低功耗物理设计布局方法,其特征在于:所述步骤(4)中,主链和副链为先后独立添加,在逻辑连接关系上不具整体性,因此在步骤(5)中通过自动串链脚本对主链原有逻辑连接关系进行打断,并与副链进行重新连接;需要逻辑关系重构的区域不唯一,因此可采用for循环逐一实现每个区域逻辑关系的重构;逻辑连接关系重构时,存在两种不同的情况,处于奇数列的副链添加顺序为从上至下,而处于偶数列的副链添加顺序为从下至上,在通过脚本实现逻辑关系的重构时,采用if条件判断语句对两种情况进行判断,再执行相应的打断和重连操作。
8.根据权利要求7所述的基于自动串链脚本的低功耗物理设计布局方法,其特征在于:所述步骤(5)具体过程为:
自动串链脚本用于实现四种类型的开关单元之间原有连接关系的打断和重连;针对4种类别的开关单元做以下定义:副链的首个开关单元,变量名为sram_switch_first_cell;主链上与sram_switch_first_cell相邻的开关单元,变量名为nearcell0;主链上与nearcell0顺序相连的开关单元,变量名为near_sram_connect_cell;副链末端的开关单元,变量名为sram_switch_chain_top;采用for循环的方式依次实现每一处副链和主链之间逻辑关系的重新连接,for循环的终止判断变量设置为i,以0为初始值,当i<sram_count时,加1并执行循环体直至判断条件不满足,sram_count为宏模块之间通道的计数变量;设置脚本循环体内容:
(5-1)sram_switch_first_cell的获取:[get_attribute[get_cells–of_obejects[all_connected EnNet_in]full_name]获取与物理连线EnNet_in连接的单元名,即sram_switch_first_cell;使用dbGet命令获取单元的位置坐标变量loc_x和loc_y;
(5-2)nearcell0的获取:通过算法确定一个矩形区域{box_llx,box_lly,box_upx,box_upy};box_llx的数值为[expr(loc_x-a)*1000];box_lly的数值为[expr(loc_x-b)*1000];box_upx的数值为[expr(loc_x-c)*1000];box_upy的数值为[expr(loc_x-d)*1000];该算法的思想方法为以{loc_x,loc_y}坐标为基准点计算出一个矩形区域的坐标,loc_x和loc_y分别向上向下、向左向右偏移给定的变量a、b、c、d数值,变量a、b、c、d的数值根据当前开关单元的分布情况来具体确定,a和c为横向偏移的数值选取合适的数值即可,由于在实际布局中,上下相邻开关单元的间隔都为row高度的整数倍,b和d的数值设置为row高度的整数倍,然后通过dbGet命令获取矩形区域内的所有单元的例化名称,再通过get_cells–filter“full_name=*”命令,*为通配符,,通过单元的例化名称进行匹配,筛选出相邻的主链上的开关单元,定义为变量pgcells;由于变量pgcells中单元的例化名称可能存在不唯一性,因此用lindex命令取变量pgcells中第一个元素赋值变量nearcell0,dbGet获取该元素的左下角y坐标,赋值给变量loc_y_nearcell0;
(5-3)near_sram_connect_cell的获取:通过get_attribute和all_fanout组合命令获取与nearcell0逻辑连接的单元的例化名称,标记为变量near_sram_connect_cell,同样地,dbGet获取其左下角y坐标,赋值给变量loy_y_near_sram_connect_cell;
(5-4)sram_switch_chain_top的获取:通过算法获取一个矩形区域{xx1,yy1,xx2,yy2},xx1的值为[expr(loc_x-e)*1000];yy1的值[expr(loc_y_near_sram_connet_cell-f)*1000];xx2的值为[expr(loc_x+g)*1000];yy2的值为[expr(loc_y_near_sram_connet_cell+h)*1000];通过dbGet命令获取矩形区域内单元的例化名称,再使用与(5-3)中同样的方式筛选出sram_switch_chain_top。逻辑关系重新连接时存在两种情况,采用if条件判断语句对比变量loc_y_nearcell0、loy_y_near_sram_connect_cell的大小:
a.loc_y_nearcell0<loc_y_near_sram_connect_cell
这种情况下开关单元链为偶数列,副链的排布顺序为从下至上;变量f为关键数值,根据near_sram_connect_cell和sram_switch_chain_top在图形界面中实际分布情况而定,数值定义为两种单元相隔的row的整数倍;
b.loc_y_nearcell0>loc_y_near_sram_connect_cell
这种情况下开关单元链为奇数列,副链的排布顺序为从上至下;变量h为关键数值,根据near_sram_connect_cell和sram_switch_chain_top在图形界面中实际分布情况而定,数值定义为两种单元相隔的row的整数倍;
(5-5)主链和相邻副链进行重新连接,逻辑连接遵循的原则为:上一级开关单元的HEADOUT1引脚连接下一级开关单元的HEADEN1引脚;下一级开关单元的HEADOUT2引脚连接上一级开关单元的HEADEN2引脚;
(5-6)使用INNOVUS命令detachTerm和attachTerm依据(5-5)所述原则进行逻辑关系的打断与重连。
9.根据权利要求6所述的基于自动串链脚本的低功耗物理设计布局方法,其特征在于:所述步骤(6)中,设计采用11层金属的工艺M1-M11,从M11层到M6层依次进行VDD_FFT、VDD和VSS三种类型电源条的添加,其中VDD_FFT为FFT_PSD电源域下的电源条,VDD为常电电源条;M5电源条的添加分为四个部分:
(1)给宏模块区域添加VDD_FFT和VSS电源条并打上M5的绕线阻碍区域routingblockage;
(2)在宏模块之间的通道各添加一组VDD_FFT和VSS电源条,保证通道中间的标准单元的供电;
(3)在每一列开关单元链的电源引脚VDDG上添加一条VDD电源条并从M5向M2打上电源孔;
(4)给宏模块以外的core区域依次添加VDD、VDD_FFT、VSS的电源条;最后,整个core区域添加M1、M2的横向电源轨:VDD_FFT和VSS。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211474734.4A CN115758980A (zh) | 2022-11-23 | 2022-11-23 | 一种基于自动串链脚本的低功耗物理设计布局方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211474734.4A CN115758980A (zh) | 2022-11-23 | 2022-11-23 | 一种基于自动串链脚本的低功耗物理设计布局方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115758980A true CN115758980A (zh) | 2023-03-07 |
Family
ID=85336028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211474734.4A Pending CN115758980A (zh) | 2022-11-23 | 2022-11-23 | 一种基于自动串链脚本的低功耗物理设计布局方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115758980A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117436398A (zh) * | 2023-11-01 | 2024-01-23 | 上海合芯数字科技有限公司 | 躲避宏单元的电源开关单元自动插入方法、系统、终端及介质 |
-
2022
- 2022-11-23 CN CN202211474734.4A patent/CN115758980A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117436398A (zh) * | 2023-11-01 | 2024-01-23 | 上海合芯数字科技有限公司 | 躲避宏单元的电源开关单元自动插入方法、系统、终端及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR900003832B1 (ko) | 반도체 집적회로장치의 배선방법 | |
US5598347A (en) | Layout method for designing an integrated circuit device by using standard cells | |
JP4090118B2 (ja) | Lsiの製造方法及びレイアウト用プログラムを記録した記録媒体 | |
JP2001127161A (ja) | 集積回路 | |
US5388055A (en) | Semiconductor integrated circuit having polycell structure and method of designing the same | |
US6505333B1 (en) | Automatic placement and routing of semiconductor integrated circuits | |
CN115758980A (zh) | 一种基于自动串链脚本的低功耗物理设计布局方法 | |
US5012427A (en) | Semiconductor integrated circuit and method of manufacturing the same | |
US7612599B2 (en) | Semiconductor device | |
CN115659901B (zh) | 一种芯片物理设计的距离布线优化方法和装置 | |
CN111859841A (zh) | 窄通道布局下宏单元的逻辑输出预导引方法和结构 | |
JP3629250B2 (ja) | 半導体集積回路のレイアウト方法及び半導体集積回路 | |
JP3971033B2 (ja) | レイアウトデータ作成方法、レイアウトデータ作成装置、及び、記録媒体 | |
JP2008288559A (ja) | 半導体集積回路及び半導体集積回路のレイアウト方法 | |
US7007257B2 (en) | Automatic placement and routing apparatus for designing integrated circuit that controls its timing using multiple power supplies | |
JP2001306641A (ja) | 半導体集積回路の自動配置配線方法 | |
CN102103644A (zh) | 具有版本号的芯片及修改芯片版本号的方法 | |
US6938232B2 (en) | Floorplanning apparatus deciding floor plan using logic seeds associated with hierarchical blocks | |
JP3610259B2 (ja) | 回路基板の配線経路決定方法、装置及び情報記憶媒体 | |
CN116227412A (zh) | 一种插入电源门控和创建电地网格的低功耗设计方法 | |
CN212484368U (zh) | 窄通道布局下宏单元的逻辑输出预导引结构 | |
US6760896B2 (en) | Process layout of buffer modules in integrated circuits | |
JPH08129576A (ja) | 半導体装置のマスクレイアウト設計方法 | |
JP3605288B2 (ja) | 回路基板の配線経路決定方法、装置及び情報記憶媒体 | |
CN114742011A (zh) | 一种基于fpc的行优化键盘自动布线算法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |