掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及半导体器件技术领域,特别是涉及一种CNFET电路的布局方法及系统。

背景技术

在众多新型半导体器件中,碳纳米管场效应晶体管(CNFET)以其优异的电学性能而受到广泛关注。相比于传统的MOSFET器件,CNFET器件具有更高的载流子迁移率和更小的漏电流,因此可以实现更高的性能和更低的功耗。

然而,受CNT(Carbon Nanotube,碳纳米管)生长工艺的限制,发展大规模CNFET电路面临一些挑战,其中包括CNFET中金属性CNT存在、CNT阵列不对齐以及CNT密度变化等。其中CNT密度变化正逐渐成为影响CNFET电路性能和稳定性的主要因素。

在传统集成电路设计过程中,布局是EDA(Electronic Design Automation,半导体器件)物理设计中的重要环节之一,其作用是确定电路元件的位置和相互连接方式,以实现电路的功能需求和性能要求。传统布局方法通常是基于硅基电路设计的,而CNT密度变化使得传统布局方法难以适应碳基电路布局。因此,为了适应CNFET的特殊性质和CNT密度变化的影响,需要开发新的布局方法来解决这些问题。

传统硅基集成电路的布局技术已相当成熟,根据其算法最优化策略可大致分为两类:1.从现有初始布局结果开始,根据局部择优的原则,选择某一单元子集进行局部范围内的位置和方向调整从而形成新的布局。重复该搜索过程,直至找不到更优布局为止。例如,“对交换和最小割”算法就属于该类方法。2.基于线性规划或非线性规划,将单元模块位置作为自变量,根据一定的优化目标构建线性或非线性方程组,迭代求解并最终求得布局方案。例如,“力矢量布局算法”就属于该类方法。3.为解决电路布局规模增大导致的计算量爆炸问题,提出了诸多启发式算法,如模拟退火、遗传算法、进化算法、神经网络和蚁群算法等,这类基于随机优化的启发算法在布局中得到了非常广泛的研究,并获得了较好的布局结果。

目前,针对CNFET集成电路已有一些布局方法被提出,它们大多数更关注电路的时序良率,如何实现在保证时序良率的同时降低电路布局所需时间成为一个亟待解决的技术问题。

发明内容

本发明的目的是提供一种CNFET电路的布局方法及系统,以实现在保证时序良率的同时降低电路布局所需时间。

为实现上述目的,本发明提供了如下方案:

本发明提供一种CNFET电路的布局方法,所述方法包括如下步骤:

构建CNFET电路的段统计延迟模型;

采用时序驱动全局布局算法分散所述CNFET电路中的标准单元;

采用统计静态时序分析方式在多个标准单元中选取关键段组;

基于段统计延迟模型采用优化统计延迟的方式确定关键段组中每个关键段的关键门的最优位置,以及当前次迭代的段延迟度量值;

返回采用统计静态时序分析方式在多个标准单元中选取关键段组的步骤,进行下一次迭代,直到当前次迭代的段延迟度量值与前一次迭代的段延迟度量值的差的绝对值小于第一预设阈值。

可选的,所述段统计延迟模型为:

其中,

可选的,基于段统计延迟模型采用优化统计延迟的方式确定关键段组中每个关键段的关键门的最优位置,以及当前次迭代的段延迟度量值,具体包括:

初始化第i个关键门的相邻子区域;

基于段统计延迟模型,计算关键段内的第i个关键门分别移动到每个相邻子区域的中心时所述关键段的段延迟度量值,获得每个相邻子区域对应的段延迟度量值;

判断每个相邻子区域对应的段延迟度量值中的最小段延迟度量值是否小于最优段统计延迟值,获得判断结果;

若所述判断结果表示是,则将关键段内的第i个关键门移动到最小段延迟度量值对应的相邻子区域的中心,并将最优段统计延迟值更新为所述最小段延迟度量值,返回基于段统计延迟模型,计算关键段内的第i个关键门分别移动到每个相邻子区域的中心时所述关键段的段延迟度量值,获得每个相邻子区域对应的段延迟度量值的步骤;

若所述判断结果表示否,则减小每个相邻子区域的尺寸,并返回基于段统计延迟模型,计算关键段内的第i个关键门分别移动到每个相邻子区域的中心时所述关键段的段延迟度量值,获得每个相邻子区域对应的段延迟度量值的步骤,直到所述相邻子区域的尺寸小于第二预设阈值,输出第i个关键门当前所在的位置作为第i个关键门的最优位置;

令i的数值增加1,返回初始化第i个关键门的相邻子区域的步骤,直到输出完成关键段内所有关键门的最优位置,计算关键段内每个关键门均处于所述关键门的最优位置时的段延迟度量值作为当前次迭代的段延迟度量值。

一种CNFET电路的布局系统,所述系统包括:

段统计延迟模型构建模块,用于构建CNFET电路的段统计延迟模型;

分散模块,用于采用时序驱动全局布局算法分散所述CNFET电路中的标准单元;

关键段组选取模块,用于采用统计静态时序分析方式在多个标准单元中选取关键段组;

最优位置确定模块,用于基于段统计延迟模型采用优化统计延迟的方式确定关键段组中每个关键段的关键门的最优位置,以及当前次迭代的段延迟度量值;

返回调用模块,用于返回调用关键段组选取模块,进行下一次迭代,直到当前次迭代的段延迟度量值与前一次迭代的段延迟度量值的差的绝对值小于第一预设阈值。

可选的,所述段统计延迟模型为:

其中,

可选的,所述最优位置确定模块,具体包括:

初始化单元,用于初始化第i个关键门的相邻子区域;

段延迟度量值计算单元,用于基于段统计延迟模型,计算关键段内的第i个关键门分别移动到每个相邻子区域的中心时所述关键段的段延迟度量值,获得每个相邻子区域对应的段延迟度量值;

判断单元,用于判断每个相邻子区域对应的段延迟度量值中的最小段延迟度量值是否小于最优段统计延迟值,获得判断结果;

关键门移动单元,用于若所述判断结果表示是,则将关键段内的第i个关键门移动到最小段延迟度量值对应的相邻子区域的中心,并将最优段统计延迟值更新为所述最小段延迟度量值,返回调用段延迟度量值计算单元;

相邻子区域尺寸更新单元,用于若所述判断结果表示否,则减小每个相邻子区域的尺寸,并返回调用段延迟度量值计算单元,直到所述相邻子区域的尺寸小于第二预设阈值,输出第i个关键门当前所在的位置作为第i个关键门的最优位置;

返回单元,用于令i的数值增加1,返回调用初始化单元,直到输出完成关键段内所有关键门的最优位置,计算关键段内每个关键门均处于所述关键门的最优位置时的段延迟度量值作为当前次迭代的段延迟度量值。

一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的方法。

一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的方法。

根据本发明提供的具体实施例,本发明公开了以下技术效果:

本发明实施例提供一种CNFET电路的布局方法及系统,所述方法包括:构建CNFET电路的段统计延迟模型;采用时序驱动全局布局算法分散所述CNFET电路中的标准单元;采用统计静态时序分析方式在多个标准单元中选取关键段组;基于段统计延迟模型采用优化统计延迟的方式确定关键段组中每个关键段的关键门的最优位置,以及当前次迭代的段延迟度量值;返回采用统计静态时序分析方式在多个标准单元中选取关键段组的步骤,进行下一次迭代,直到当前次迭代的段延迟度量值与前一次迭代的段延迟度量值的差的绝对值小于第一预设阈值。本发明采用统计静态时序分析方式进行关键段组的选取,然后基于可以更准确地评估电路的延迟和更有效的优化电路时序良率的段统计延迟模型进行每个关键段的关键门的最优位置的确定,完成CNFET电路的布局,本发明实现了在保证时序良率的同时降低电路布局所需时间。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中的一种CNFET电路的布局方法的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的目的是提供一种CNFET电路的布局方法及系统,以实现在保证时序良率的同时降低电路布局所需时间。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

实施例1

本发明实施例提供一种CNFET电路的布局方法,主要分为两步。第一,建立CNFET电路的段统计延迟模型,该模型与电路时序良率呈相关关系。第二,根据第一步得到的段统计延迟模型,对CNFET电路中段(本发明具体实施时并没有针对每个段进行统计分析,而是在每次迭代时,首先进行了关键段组的选取,对关键段组中的关键段的关键门进行分析)内关键门进行位置调整,以优化电路时序良率。

如图1所示,所述方法包括如下步骤:

步骤101,构建CNFET电路的段统计延迟模型,具体包括:

步骤1:段延迟建模。在分析复杂电路的延迟时,通常先电路划分为多个层级,之后逐级进行分析和延迟建模,这样可以有效减少电路的复杂度,简化分析和计算。

步骤1.1:门延迟建模。对于CNFET电路,CNT密度变化可能会导致逻辑门中PUN(pull-up network,上拉网络)和PDN(pull-down network,下拉网络)中包含的CNT数量不同,因此需要对传统CMOS电路门延迟模型:

可以对上述公式去一个上界,CNFET电路的标准单元门延迟可以表示为:

步骤1.2:门树延迟建模。门树被定义为电路中驱动门与若干被驱动门互联所构成的树形结构,它描述了门电路中的逻辑关系和信号传输路径。驱动门和被驱动门之间的互连线用π模型表示,被建模为RC树。通过将门延迟模型应用于RC树,可以得到驱动门输出电阻造成的延迟和互连线延迟。因此该门树延迟可以被表示为:

其中,

步骤1.3:段延迟建模。段被定义为CNFET电路中某条路径的一部分。该部分包含n个门。每个门驱动段中的一个门树。于是段延迟可以被定义为段内所有门树延迟总和:

其中,

步骤2:段的统计延迟。在CNFET所覆盖的CNT数量近似遵循正态分布的情况下,CNFET电路的延迟是一个随机变量。假定电路延迟的均值和标准差为

步骤2.1:计算

其中,

步骤2.2:若对于任一段,定义:

步骤2.3:综合步骤2.1和2.2,可以得到段统计延迟模型为:

其中,

本发明实施例中在基于段统计延迟模型进行关键段的段延迟度量值时,段统计延迟模型中段对应该关键段,段中的一个门树对应一个关键门。

步骤102,采用时序驱动全局布局算法分散所述CNFET电路中的标准单元。

本发明实施例中的步骤102具体实现方式为:

首先,对输入的CNFET电路的电路网表进行一个初始的布局,以分散标准单元。然后,采用时序驱动全局布局算法Kraftwerk2,将分配标准单元所需的力分为保持力和移动力,其中,保持力用于保持标准单元的位置,移动力用于将驱使单元进行移动,当二者平衡时,标准单元被分散,它的收敛结果是每次布局迭代都会减少标准单元的重叠,直到标准单元重叠百分比小于预设的阈值。接下来,进入循环优化阶段,即步骤103-步骤105。

步骤103,采用统计静态时序分析方式在多个标准单元中选取关键段组。

步骤104,基于段统计延迟模型采用优化统计延迟的方式确定关键段组中每个关键段的关键门的最优位置,以及当前次迭代的段延迟度量值。

步骤105,返回步骤103,进行下一次迭代,直到当前次迭代的段延迟度量值与前一次迭代的段延迟度量值的差的绝对值小于第一预设阈值。

本发明步骤103-105为循环优化阶段的步骤,具体为:每一次迭代开始前,执行统计静态时序分析,提取CNFET电路中各标准单元的时序路径并对时延进行统计分析,以获取CNFET电路的最新统计时序信息,然后,根据该信息选择一关键段组,并针对该关键段组中每个关键段,进行优化统计延迟。

在迭代过程中,检查终止条件。如果当前迭代的段延迟度量值大于上一次迭代的段延迟度量值,则返回上一次迭代的布局结果,如果连续两次迭代之间的段延迟度量值差的绝对值小于预设的阈值(即第一预设阈值,该第一预设阈值为最初输入的布局方案的统计延迟的0.02倍),则返回当前迭代的布局结果。当满足终止条件时,迭代停止。

其中,统计静态时序分析的具体过程可以概括为以下几个步骤:概率建模:对电路中的参数进行概率建模,考虑其变化的统计性质。时序分析:提取和建模电路中的时序路径,并对时延进行统计分析。统计分析:基于概率模型和时序路径的统计信息,计算平均时延、最大时延、时序偏移等指标,以及时序敏感度和故障覆盖率等指标。进一步的,识别所有违反概率大于阈值的顶点,然后将这些顶点连接成段,即关键段。

对于每个关键段,本发明实施例采用了一种基于网格的方法来优化关键门的位置,以最小化统计延迟。算法分为两个阶段:第一阶段使用并行计算方法计算关键门移动到每个相邻子区域中心时的段延迟度量值;第二阶段使用贪心搜索算法找到关键门

本发明实施例中的方法可采用以下两个嵌套的算法实现:

算法1整体描述:

输入:CNFET电路的电路网表。

输出:最终布局结果。

Step1.执行初始布局。

Step2.执行时序驱动全局布局算法,直到标准单元重叠百分比小于设定的阈值。

Step3.循环优化,直到连续两次迭代的段延迟度量值之差的绝对值小于第一预设阈值。

Step3.1.统计静态时序分析。

Step3.2.利用电路统计时序信息, 选择一各关键段组。

Step3.2.1 执行算法2,对关键段组内每一个关键段的统计延迟进行优化。

Step4.返回最终布局结果。

算法2步骤如下:

输入:包含N个关键门的关键段sg。

输出:具有最优门位置以最小化段统计延迟的关键段sg。

Step1. 计算关键段sg的初始段统计延迟度量值,作为初始的最优段统计延迟值。

Step2.对于关键段sg内的每个关键门,将它周围区域分成八个相邻子区域。

Step2.1.并行计算当移动到这八个相邻子区域中心时的该关键段的段延迟度量值。

Step2.2.得到最小段延迟度量值和对应的相邻子区域。

Step2.3. 当最小段延迟度量值<最优段统计延迟值时,将关键门移动到对应的相邻子区域的中心;否则,将减小相邻子区域尺寸重新搜索。

Step2.4. 当相邻子区域尺寸小于第二预设阈值时,停止的位置调整。

Step3. 对关键段sg的优化结束,输出关键段sg的布局结果。

本发明实施例提供的方法已经在多个测试电路上进行了实验,结果都表明本发明实施例提供的方法能够显著提升CNFET电路的时序良率。以OpenCores提供的32位乘法器为例,使用三种方法(方法A是变化感知全局布局方法,方法B是路径愈合的方法,方法C是本发明实施例提出的方法)对其进行测试。为了得到更可靠的结果,每个方法都被重复运行了五次。根据实验结果,方法A的电路延迟优化效果最好,达到了34.9728%,但是平均运行时间较长,约为14.7462秒。而本发明实施例提出的方法C虽然优化效果略逊于方法A,但平均运行时间却大幅缩短,约为7.9819秒,这在大规模电路下是可以接受的。方法B的电路延迟优化效果最弱,只有1.7426%,平均运行时间为12.1978秒。为更好地比较三个算法的性能优劣,本发明实施例提供一个新的评价指标:单位时间延迟优化,它由优化百分比除以平均运行时间得到。可以发现本发明实施例提出的算法在单位时间延迟优化方面表现最好,路径愈合算法表现最差。综合而言,本发明实施例提出的方法相较于已有方法在运行时间方面表现更出色,在电路延迟优化效果上表现也不俗,具有在实际的CNFET电路设计中应用的潜力。

实施例2

本发明实施例2提供一种CNFET电路的布局系统,所述系统包括:

段统计延迟模型构建模块,用于构建CNFET电路的段统计延迟模型。

分散模块,用于采用时序驱动全局布局算法分散所述CNFET电路中的标准单元。

关键段组选取模块,用于采用统计静态时序分析方式在多个标准单元中选取关键段组。

最优位置确定模块,用于基于段统计延迟模型采用优化统计延迟的方式确定关键段组中每个关键段的关键门的最优位置,以及当前次迭代的段延迟度量值。

返回调用模块,用于返回调用关键段组选取模块,进行下一次迭代,直到当前次迭代的段延迟度量值与前一次迭代的段延迟度量值的差的绝对值小于第一预设阈值。

其中,所述段统计延迟模型为:

其中,

所述最优位置确定模块,具体包括:

初始化单元,用于初始化第i个关键门的相邻子区域。

段延迟度量值计算单元,用于基于段统计延迟模型,计算关键段内的第i个关键门分别移动到每个相邻子区域的中心时所述关键段的段延迟度量值,获得每个相邻子区域对应的段延迟度量值。

判断单元,用于判断每个相邻子区域对应的段延迟度量值中的最小段延迟度量值是否小于最优段统计延迟值,获得判断结果。

关键门移动单元,用于若所述判断结果表示是,则将关键段内的第i个关键门移动到最小段延迟度量值对应的相邻子区域的中心,并将最优段统计延迟值更新为所述最小段延迟度量值,返回调用段延迟度量值计算单元。

相邻子区域尺寸更新单元,用于若所述判断结果表示否,则减小每个相邻子区域的尺寸,并返回调用段延迟度量值计算单元,直到所述相邻子区域的尺寸小于第二预设阈值,输出第i个关键门当前所在的位置作为第i个关键门的最优位置。

返回单元,用于令i的数值增加1,返回调用初始化单元,直到输出完成关键段内所有关键门的最优位置,计算关键段内每个关键门均处于所述关键门的最优位置时的段延迟度量值作为当前次迭代的段延迟度量值。

实施例3

本发明实施例3提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的方法。

实施例4

本发明实施例4提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的方法。

基于上述实施例本发明的技术方案的有益效果为:

本发明利用段的统计时序信息进行段内门位置的优化,相较于传统的布局算法可以更准确地评估电路的延迟和更有效的优化电路时序良率,同时该算法采用循环优化的方式,进一步提升了优化效果。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

技术分类

06120116212005