一种低功耗电路设计优化方法转让专利

申请号 : CN201010214278.0

文献号 : CN102314525B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴玉平陈岚叶甜春

申请人 : 中国科学院微电子研究所

摘要 :

本发明公开了一种低功耗电路设计优化方法,属于集成电路设计自动化领域。所述方法包括:指定门级电路网表、仿真激励、单元库及器件模型信息的位置,并读入所述信息进行门级电路仿真,对门级电路进行划分,进行电路分析和仿真结果分析,依据该分析结果,根据低功耗技术对电路进行优化处理。本发明对门级电路网表设计进行优化,在电路网表中插入和/或替换部分单元以支持MTCMOS、VTCMOS、电源门控、多电压、以及动态电压和频率缩放(DVFS)、电源门控等低功耗技术,在确保芯片系统电路性能的前提下使芯片系统的功耗最低。

权利要求 :

1.一种低功耗电路设计优化方法,其特征在于,包括:

指定门级电路网表、仿真激励、单元库及器件模型信息的位置,并读入所述信息进行门级电路仿真,对门级电路进行划分,进行电路分析和仿真结果分析,依据该分析结果,根据低功耗技术对电路进行优化处理;

其中,所述门级电路仿真的步骤具体包括:通过门级电路仿真工具读入门级电路网表、仿真激励和门级电路的基本单元库信息,采用基于事件驱动的仿真算法对电路进行仿真,得到各个单元的工作时序、功耗、状态及状态转换信息;

所述对门级电路进行划分的步骤具体包括:对门级电路按功能和层次关系进行划分,将所述门级电路划分为至少一个未进行低功耗优化的模块/区域,构建未进行低功耗优化的模块/区域列表;

所述电路分析和仿真结果分析的步骤具体包括:从所述未进行低功耗优化的模块/区域列表头部取出一个模块/区域,对电路进行关键信号流路径分析以确定电路的关键路径;分析门级电路仿真结果,得出阱电压控制逻辑;并捕捉每个时钟周期上升沿到来时,为同一寄存器重复装载相同数据的情形;捕捉逻辑单元/模块一段时间内处于空闲状态的情形,并分析进入空闲状态的条件和退出空闲状态的条件;捕捉单元一段时间内处于睡眠状态的情形,并分析进入睡眠状态的条件和退出睡眠状态的条件;对该单元各个输入状态下的功耗进行比较以确定最低功耗对应的输入激励;

所述对电路进行优化处理的步骤具体包括:利用所述阱电压控制逻辑,将固定阈值MOS基本单元替换为变阈值工艺VTCMOS基本单元,并插入阱偏置电压控制模块;选用多阈值工艺MTCMOS基本单元替换固定阈值MOS基本单元,在所述关键路径上采用低阈值器件以确保关键路径的响应速度;在分析得出的非关键路径上用高阈值器件以降低非关键路径上的静态功耗;在所述寄存器相同数据反复重载区域的寄存器槽和时钟网络上插入门控电路;插入睡眠状态检测电路并增加特定向量生成机制/电路,在电路处于睡眠状态下,给电路输入置成功耗最低的输入向量。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

再次进行门级电路仿真,并将该仿真结果与原门级电路仿真结果进行比较,确保原门级电路在低功耗优化处理之后的门级电路中的对应部分的仿真结果相同,进行功耗评估后判断是否接受优化,并输出低功耗优化之后的门级电路网表信息。

3.根据权利要求2所述的方法,其特征在于,所述进行功耗评估的步骤具体包括:

确定功耗评估范围,仅在网表修改过的部分进行评估;

获取门级电路平均动态功耗、平均静态功耗、平均功耗,以及优化区域的平均功耗。

4.根据权利要求3所述的方法,其特征在于,所述判断是否接受优化的步骤具体包括:

比较优化之前模块/区域内的平均功耗和优化之后所述模块/区域内的平均功耗,如果优化之后该模块/区域内的平均功耗降低了,则接受该模块/区域内的低功耗优化结果,以新的门级网表替换原有模块/区域内的门级网表;否则保留原有模块/区域内的门级网表;

将该经过低功耗优化过的模块/区域从所述未进行低功耗优化的模块/区域列表中删除。

5.根据权利要求4所述的方法,其特征在于,所述将该经过低功耗优化处理过的模块/区域从所述未进行低功耗优化的模块/区域列表中删除的步骤之后还包括:判断是否继续进行低功耗优化,如果未进行低功耗优化的模块/区域列表非空,则对列表头部的模块/区域继续进行低功耗优化处理;如果未进行低功耗优化的模块/区域列表为空,则结束低功耗处理。

6.根据权利要求5所述的方法,其特征在于,所述输出低功耗优化之后的门级电路网表信息的方法包括:直接输出网表文件,并利用片上系统SoC集成电路设计平台的数据导入接口导入设计数据库;或利用SoC集成电路设计平台数据库的应用程序接口API将优化之后的网表直接写入数据库。

说明书 :

一种低功耗电路设计优化方法

技术领域

[0001] 本发明属于集成电路设计自动化领域,尤其属于优化集成电路功耗的技术范畴,特别涉及一种低功耗电路设计优化方法。

背景技术

[0002] 先进数字集成电路制造工艺的特征尺寸不断缩小,从90nm、65nm,过渡到45nm、32nm,并有望发展到22nm和15nm,甚至更小的特征尺寸。特征尺寸的不断缩小使得芯片系统集成度不断提高成为可能,但芯片的功耗随芯片系统的集成度提高而不断增加,从而制约了充分利用特征尺寸的缩小以提高芯片系统集成度的能力,为此需要探索低功耗优化技术降低芯片系统的功耗。
[0003] 目前应用比较普遍的低功耗技术主要有:多阈值工艺CMOS(MTCMOS)、变阈值工艺CMOS(VTCMOS)、电源门控、多电压,以及动态电压和频率缩放(DVFS)、电源门控等。这些技术可以有效地降低芯片系统的功耗,但如何在芯片系统设计中自动使用这些技术,还需要新的优化方法的支持,以确保这些技术在低功耗芯片系统设计中得到充分的应用。

发明内容

[0004] 有鉴于此,本发明的目的在于提供一种低功耗电路设计优化方法,[0005] 本发明提供了一种低功耗电路设计优化方法,包括:
[0006] 指定门级电路网表、仿真激励、单元库及器件模型信息的位置,并读入所述信息进行门级电路仿真,对门级电路进行划分,进行电路分析和仿真结果分析,依据该分析结果,根据低功耗技术对电路进行优化处理;
[0007] 其中,所述门级电路仿真的步骤具体包括:通过门级电路仿真工具读入门级电路网表、仿真激励和门级电路的基本单元库信息,采用基于事件驱动的仿真算法对电路进行仿真,得到各个单元的工作时序、功耗、状态及状态转换信息;
[0008] 所述对门级电路进行划分的步骤具体包括:对门级电路按功能和层次关系进行划分,将所述门级电路划分为至少一个未进行低功耗优化的模块/区域,构建未进行低功耗优化的模块/区域列表;
[0009] 所述电路分析和仿真结果分析的步骤具体包括:从所述未进行低功耗优化的模块/区域列表头部取出一个模块/区域,对电路进行关键信号流路径分析以确定电路的关键路径;分析门级电路仿真结果,得出阱电压控制逻辑;并捕捉每个时钟周期上升沿到来时,为同一寄存器重复装载相同数据的情形;捕捉逻辑单元/模块一段时间内处于空闲状态的情形,并分析进入空闲状态的条件和退出空闲状态的条件;捕捉单元一段时间内处于睡眠状态的情形,并分析进入睡眠状态的条件和退出睡眠状态的条件;对该单元各个输入状态下的功耗进行比较以确定最低功耗对应的输入激励;
[0010] 所述对电路进行优化处理的步骤具体包括:利用所述阱电压控制逻辑,将固定阈值MOS基本单元替换为变阈值工艺VTCMOS基本单元,并插入阱偏置电压控制模块;选用多阈值工艺MTCMOS基本单元替换固定阈值MOS基本单元,在所述关键路径上采用低阈值器件以确保关键路径的响应速度;在分析得出的非关键路径上用高阈值器件以降低非关键路径上的静态功耗;在所述寄存器相同数据反复重载区域的寄存器槽和时钟网络上插入门控电路;插入睡眠状态检测电路并增加特定向量生成机制/电路,在电路处于睡眠状态下,给电路输入置成功耗最低的输入向量。
[0011] MTCMOS、VTCMOS、电源门控、多电压,以及动态电压和频率缩放(DVFS)、电源门控等低功耗技术的运用可以有效地降低电路系统的功耗,但如何运用需要借助设计人员的经验人为地指定电路系统中具体的模块需要采用具体的低功耗技术,这需要设计人员对电路的工作过程有详细的了解,以便在具体的模块中采用合适的低功耗技术,过程比较繁杂且费时间,而且不利于充分运用低功耗技术,本发明不需要设计人员对电路工作过程有详细的了解,同时对低功耗技术进行自动尝试和比较,针对具体的电路模块最优化地选择合适的低功耗技术。

附图说明

[0012] 图1为本发明实施例提供的一种低功耗电路设计优化的方法流程图;
[0013] 图2为本发明实施例中进行电路分析和仿真结果分析的方法流程图;
[0014] 图3为本发明实施例中根据低功耗技术对电路进行优化处理的方法流程图;
[0015] 图4为本发明实施例中进行功耗评估的方法流程图。

具体实施方式

[0016] 本发明旨对门级电路网表设计进行优化,在电路网表中插入和/或替换部分单元以支持MTCMOS、VTCMOS、电源门控、多电压、以及动态电压和频率缩放(DVFS)、电源门控等低功耗技术,在确保芯片系统电路性能的前提下使芯片系统的功耗最低。
[0017] 为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
[0018] 图1为本发明实施例提供的一种低功耗电路设计优化的方法流程图,具体包括以下步骤:
[0019] 步骤101、指定门级电路网表、仿真激励、单元库、器件模型等信息的位置。具体地可以通过软件的命令行选项值指定或图形界面上的数据位置浏览器选择并指定。
[0020] 步骤102、读入门级电路网表、仿真激励、单元库、器件模型信息。
[0021] 步骤103、门级电路仿真。通过门级电路仿真工具(目前的门级电路仿真工具很多,可以采用任何一个现有的门级电路仿真工具,如VCS、ModelSim等)读入门级电路网表、仿真激励和门级电路的基本单元库信息(门级仿真的单元库信息的建立是基于器件模型信息,但门级仿真不需要底层的器件模型信息,而是直接利用库单元内的时延信息等),采用基于事件驱动的仿真算法对电路进行仿真,得到各个单元的工作时序、功耗、状态及状态转换信息。
[0022] 步骤104、电路划分。对门级电路按功能和层次关系进行划分,将电路划分为若干个未进行低功耗优化的模块/区域,构建未进行低功耗优化的模块/区域列表。具体按功能和层次关系进行划分,门级综合之前的寄存器传输级(RTL)和行为级设计本身就是层次化和功能化的描述模块,门级综合保留了这一层次化信息和功能化信息,因此无需在技术上确定功能和设计层次,划分只需要层次化的遍历设计即可。
[0023] 步骤105、从未进行低功耗优化的模块/区域列表中取出一个模块/区域,进行电路分析和仿真结果分析。该分析的流程如图2所示,包括:
[0024] 步骤1051、对电路进行关键信号流路径分析以确定电路的关键路径。具体通过人工指定关键信号或以最长路径自动分析出关键输入信号,根据信号在电路建立的有向图上的传播确定关键信号的传播路径,以此为关键信号路径。
[0025] 步骤1052、分析门级电路仿真结果,得出阱电压控制逻辑。根据仿真结果确定电路的工作状态和待机状态,并从仿真波形数据之间的相关性找出导致电路进入/退出工作状态和待机状态的条件,以此产生阱电压控制逻辑,阱电压控制逻辑控制阱偏置电压,在工作方式降低阈值电压Vth,在待机状态提高阈值电压Vth,以降低静态功耗。
[0026] 步骤1053、分析门级电路仿真结果,捕捉每个时钟周期上升沿到来时,为同一寄存器重复装载相同数据的情形。为同一寄存器重复装载相同数据对寄存器状态没有实际改变,却会增大电路的功耗,捕捉该情形以便后续增加适当的控制逻辑,在寄存器已有数据和要装入的数据一致时消除重新装载数据的动作有效地降低电路的动态功耗。
[0027] 步骤1054、分析门级电路仿真结果,捕捉逻辑单元/模块一段时间内处于空闲状态的情形,并分析进入空闲状态的条件和退出空闲状态的条件。捕捉空闲状态情形,并针对该情形增加电源门空电路,在空闲状态关闭电源,可以有效地降低电路功耗。
[0028] 步骤1055、分析门级电路仿真结果,捕捉单元一段时间内处于睡眠状态的情形,并分析进入睡眠状态的条件和退出睡眠状态的条件;对该单元各个输入状态下的功耗进行比较以确定最低功耗对应的输入激励。
[0029] 步骤105分析的主要目的在于,有针对性的尝试运用目前的各种低功耗技术。
[0030] 步骤106、依据步骤105的分析结果,根据低功耗技术对电路进行优化处理。具体处理流程如图3所示:
[0031] 步骤1061、利用分析得出的阱电压控制逻辑,将固定阈值MOS基本单元替换为变阈值工艺VTCMOS基本单元,并为此插入阱偏置电压控制模块,以便采用动态改变衬底偏置电压以改变阈值。
[0032] 工作期间,n型阱(N well)偏置电压维持在Vdd,p型阱(P well)偏置电压维持在0;当待机或者需要低频工作时,N well偏置电压维持在2Vdd,P well偏置电压维持在1Vdd,这样也可以通过高阈值达到减少漏电功耗的目的。
[0033] 步骤1062、选用多阈值工艺MTCMOS基本单元替换固定阈值MOS基本单元,在分析得出的关键路径上采用阈值较低的器件以确保关键路径的响应速度;在分析得出的非关键路径上用高阈值器件以降低非关键路径上的静态功耗。在这里,变阈值工艺VTCMOS基本单元和多阈值工艺MTCMOS基本单元是两种不同的低功耗技术,选用多阈值工艺MTCMOS基本单元替换固定阈值MOS基本单元与前面的将固定阈值MOS基本单元替换为变阈值工艺VTCMOS基本单元并不矛盾,它们分别用于优化电路不同部分。
[0034] 步骤1063、在分析得出的寄存器相同数据反复重载区域的寄存器槽和时钟网络上插入门控电路,以避免相同的值在每个时钟周期上升沿到来时都会被重复加载进后面的寄存器中,控制和消除寄存器、时钟网络和多选器产生不必要的活动,大幅度降低功耗。
[0035] 步骤1064、插入睡眠状态检测电路和增加特定向量生成机制/电路,在电路处于睡眠状态下,给电路输入置成功耗最低的输入向量,以大幅度降低这部分电路的功耗。插入的门控电路和睡眠状态检测电路等都基于现有的库单元。
[0036] 步骤107、再次进行门级电路仿真。通过步骤1061、1062、1063、1064的操作,在原有门级电路网表的基础上,一个新的门级网表已经产生,新的电路功耗如何,需要评估,为此首先需要对它进行门级电路仿真。与步骤103门级电路仿真一致:通过门级电路仿真工具读入门级电路网表、仿真激励和门级电路的基本单元库信息,采用基于事件驱动的仿真算法对电路进行仿真,得到各个单元的工作时序、功耗、状态及状态转换信息。
[0037] 步骤108、门级电路仿真结果比较。比较原门级电路仿真结果和低功耗优化之后的门级电路仿真结果,确保原门级电路在低功耗优化之后的门级电路中的对应部分的仿真结果相同,否则针对低功耗优化的替换/插入有问题。
[0038] 步骤109、进行功耗评估。图4是功耗评估的流程,包括以下步骤:
[0039] 步骤1091、确定功耗评估范围。由于通过步骤1061、1062、1063、1064的操作,在原有门级电路网表的基础上,已经产生一个新的门级网表,仅集中在网表修改过的部分进行评估。这是因为,未修改部分的功耗没有改变,且增量式的功耗评估可以有效地节约功耗评估所花费的时间开销。
[0040] 步骤1092、计算门级电路平均动态功耗。利用门级电路仿真时记录的SoC(系统级芯片)中各个门器件跳变总次数、仿真时间、跳变、以及仿真时间内1→0和0→1的跳变次数等等,并直接从工艺库中提取出精确的电容信息,通过计算得到仿真时间内的平均动态功耗。其计算公式为:
[0041] Pd=f×CL×Vdd2
[0042] 其中,Pd表示动态功耗,f由仿真时间tsim与仿真时间内1→0和0→1的跳变次数N1→0和N0→1决定:f=(N1→0+N0→1)/tsim,CL是输出节点的等效电容,Vdd是电源电压。
[0043] 步骤1093、计算门级电路平均静态功耗。根据仿真时间内门级电路静态工作的时间、门级电路的器件尺寸、电源电压、器件模型数据计算平均静态功耗。
[0044] 静态功耗的来源为电路中存在泄漏电流,而构成泄漏电流的机制主要为反偏pn结电流、亚阈值电流、其他二级效应,如栅隧穿电流、DIBL效应、热载流子效应等,静态功耗表达式为Ps=Ileak×Vdd,其中Ileak由门级电路的器件尺寸、电源电压、器件模型数据计算,实现时具体公式可参考器件模型公式。
[0045] 步骤1094、计算门级电路平均功耗。门级电路平均功耗=(门级电路平均动态功耗×其动态工作时间+门级电路平均静态漏电功耗×其静态工作时间)/(其动态工作时间+其静态工作时间)。
[0046] 步骤1095、计算优化区域的平均功耗。对优化区域内的包括新增加门级电路在内的所有门级电路平均功耗求和。
[0047] 步骤110、判断是否接受优化。比较优化之前区域内的平均功耗和优化之后区域内的平均功耗,若区域内的平均功耗降低了,则接受该区域内的低功耗优化结果,以新的门级网表替换原有区域内的门级网表;否则保留原有区域内的门级网表;同时这一经过低功耗优化处理过的模块/区域从未进行低功耗优化的模块/区域列表中删除。
[0048] 步骤111、判断是否继续进行低功耗优化,若是则转向步骤105;否则执行下一步。判断是否继续进行低功耗优化的准则是:未进行低功耗优化的模块/区域列表非空,则对列表头部的模块/区域继续进行低功耗优化处理;若未进行低功耗优化的模块/区域列表为空,则结束低功耗处理。
[0049] 步骤112、输出低功耗优化之后的门级电路网表信息。网表的输出有两个途径,一是直接输出网表文件,然后利用片上系统(SoC)集成电路设计平台的数据导入接口导入设计数据库;另一个是利用SoC集成电路设计平台数据库的应用程序接口(API)将优化之后的网表直接写入数据库。这样就可以直接利用SoC集成电路设计平台上的软件工具执行后续的物理规划、布局、布线、以及后续验证等任务。
[0050] 本发明实施例对门级电路网表设计进行优化,在电路网表中插入和/或替换部分单元以支持MTCMOS、VTCMOS、电源门控、多电压、以及动态电压和频率缩放(DVFS)、电源门控等低功耗技术,在确保芯片系统电路性能的前提下使芯片系统的功耗最低。
[0051] 总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。