一种用于电路近似计算的自动化节点删除方法与流程

文档序号:14043607阅读:157来源:国知局

本发明属于集成电路技术领域,具体的说涉及一种用于电路近似计算的自动化节点删除方法。



背景技术:

在过去几十年中,工艺线宽一直是集成电路发展中的关键技术。然而,随着线宽缩小难以继续,摩尔定律逐渐开始失效,加上工艺、电压、温度(pvt)的变化以及阈值的缩小,使得电路的性能、功耗的进一步提高受到极大的限制。同时,线宽减小使得功率密度增大,集成电路的散热也变得困难。为了解决这个问题,近似计算技术被广泛的应用在各种集成电路设计中,从硬件设计到算法、软件层面的不同抽象层,成为克服电路性能障碍和尺寸缩放所遇到的物理和经济限制的一种解决方案。

移动设备、物联网设备的计算能力在近些年中呈指数级增长,但是电池技术并没有遵循相同的演进速度。物联网设备不仅需要在没有用户干预的情况下运行数年,而且还将产生巨大的数据量,这些数据必须在极度耗电且需要复杂冷却系统的数据中心中处理。为了解决这些数据处理过程中遇到的问题,即数据计算过程,在包括数字信号处理、图像处理、神经网络计算等消耗大量算力的计算领域,传统的近似计算采用不精确逻辑替代精确逻辑的方法,设计具有更小功耗、更优性能的计算单元,用于取代精确的计算单元,即删除某些电路节点,减少电路的单元数量和计算复杂度,以牺牲电路计算精度为代价,从而达到降低功耗、提高速度的目的。

然而,在实际应用中,采用不精确计算单元取得的效果并不理想。随着近似单元在被计算数据中由低权重位向高权重位取代精确单元,误差呈现出指数级的增长,且对性能的改善并不显著。同时,传统的近似计算方法需要单独设计近似单元来适应当前的整体计算电路,实际是人工选择了需要删除的电路节点,极大的增加了人工设计的时间和复杂度。另外,在传统设计中,整体电路的误差和功耗、速度难以建立关系,因而不能有效的指导删除最优的节点以达到最优的电路改善。



技术实现要素:

本发明所要解决的,就是针对上述传统近似计算方法中需要人工进行单元设计,无法同时兼顾误差和电路延迟、功耗,没有指标引导节点删除过程的问题,提供一种能够实现高精度、低误差的自动化节点删除方法,采用自动循环迭代的方法,自行评估电路中删除各节点的优先程度,减少了人工设计时间,提高了节点删除对电路性能的改善效果。

本发明的技术方案为:

一种用于电路近似计算的自动化节点删除方法,包括如下步骤:

步骤一:对需要近似计算的电路进行综合操作得到电路网表;

步骤二:获取电路网表中的功耗和延迟信息,通过仿真得到电路输出误差;

步骤三:判断步骤二得到的电路输出误差是否达到阈值,若达到,转到步骤八;若未达到,继续下一步;

步骤四:分别对电路网表中每一个节点进行逐一删除,得到删除每一个节点时的电路的功耗变化值、延迟变化值和输出误差变化值;

步骤五:计算每一个节点在删除该节点时的功耗变化值和延迟变化值与输出误差变化值的比值,并将所述比值标记在对应的节点上,根据所述比值按顺序排序电路网表中的节点;

步骤六:删除所述比值最高的节点,同时删除电路网表中仅用于产生所述被删除的节点的附属节点;

步骤七:将删除节点后的电路网表进行综合,产生新的电路网表,返回步骤二:

步骤八:输出电路网表。

具体的,所述步骤二的具体做法为:

通过调用综合工具,获得表示电路网表的文本格式文件和电路网表在综合过程中产生的对功耗和延迟的估计;

通过调用时序分析工具,获得更加精确的电路延迟估计;

通过采用施加输入激励的方式,获得电路中各节点的翻转率信息和与之对应的更加精确的电路功耗信息;

通过随机仿真,获得整体电路的误差分布,由此计算出电路的输出误差。

具体的,所述步骤六中删除节点的同时改用逻辑0或1替代被删除的节点,当该节点在被删除前为逻辑0的概率大时,被删除后用逻辑0替代;该节点在被删除前为逻辑1的概率大时,被删除后用逻辑1替代。

具体的,所述步骤五中按所述比值从高到低的顺序排序电路网表中的节点。

本发明的有益效果为:本发明具有闭环仿真而无需人工干预、误差连续易于控制、直接联系误差与电路功耗和延迟来获得最优的近似计算效果等特点;与现有技术相比,指导了近似计算电路的近似方法和节点删除方法,提高了近似计算电路的设计效率,实现了电路中高精度、低误差的自动化节点删除算法;本发明可以与各种电路指标和误差计算方法相适应,扩大了本发明的适用范围。

附图说明

图1为本发明提供的一种用于电路近似计算的自动化节点删除方法的流程图;

图2为实施例中应用本发明提供的自动化节点删除方法实现近似计算的结构图;

图3为实施例中应用本发明提供的自动化节点删除方法的结构的流程示意图;

图4为实施例中的数据分析模块对功耗变化估计的示意图;

图5为实施例中的数据分析模块对延迟变化估计的示意图。

具体实施方式

下面结合附图和具体实施例详细描述本发明。

本发明提供了一种用于电路近似计算的自动化节点删除方法,在通过较短时间的迭代和仿真后,通过采用具有最优能量-延迟积和误差比值的单元排序方法实现最优的近似计算。

如图2所示为实施例中应用本发明提供的自动化节点删除方法实现近似计算的结构图,包括信息采集模块、数据分析模块、节点删除模块和综合与仿真模块,信息采集模块用于采集综合与仿真模块中产生的电路数据信息,并传递给数据分析模块;数据分析模块用于对信息采集模块中收集到的信息进行分析处理和排序,生成关于电路节点的删除列表,并传递给节点删除模块;节点删除模块根据数据分析模块给出的删除列表,删除指定的电路节点及其附属节点,产生节点删除后的电路网表,并传递给综合与仿真模块;综合与仿真模块用于对节点删除后的电路门级网表进行自动化综合操作,产生新的电路网表,并进行仿真得到相应的电路信息,其具体流程如图3所示。

信息采集模块通过读取电路综合工具和仿真工具的内存信息和报告,获取来自综合与仿真模块仿真得到的电路信息和电路网表,对其进行数据的筛选处理,得到需要的电路单元延迟、功耗信息和电路节点信号翻转率、整体电路的输出误差等,并输出到数据分析模块中。本实施例中的具体方法为:通过调用综合工具,获得表示电路网表的文本格式文件和电路网表在综合过程中产生的对功耗和延迟的估计;通过调用时序分析工具,获得更加精确的电路延迟估计;通过采用施加输入激励的方式,获得电路中各节点的翻转率信息和与之对应的更加精确的电路功耗信息;通过随机仿真,获得整体电路的误差分布,由此计算出电路的输出误差;如果整体电路输出误差已经达到阈值,则停止节点删除并输出电路网表。

数据分析模块通过信息采集模块得到的整体电路的电路信息和电路网表,将其抽象为有向图,其中器件单元用连线表示,节点用点表示,由单元的输入方向向输出方向连通。根据在信息采集模块中得到的电路单元延迟、功耗信息和电路节点信号翻转率、整体电路的输出误差,对每一个节点进行计算和排序。本实施例中进行节点排序的具体方法为:通过对电路网表文本文件中的节点进行逐一尝试删除,确定删除每一个节点时导致整体电路功耗、延迟减小的估计值,确定删除每一个节点时导致输出误差的变化值,其中功耗和延迟估计分别如图4和图5所示,图4中虚线标记的单元和连线将被删除,图5中可能的新的延迟路径以虚线标出;计算删除每一个节点所带来的电路性能参数包括功耗、延迟等的减小值与输出误差变化值的比值,标记在每一个节点上,并从高到低依次排序。

节点删除模块接收来自数据分析模块对节点的排序结果,根据排序结果得到需要删除的节点及其附属节点,在电路网表中标出这些节点和单元信息,并进行修改和删除操作,将网表进行精简,并输出网表到综合与仿真模块。本实施例中删除节点的具体方法为:选择比值最高的节点作为将被删除的节点,同时找到仅用于产生该节点的单元和连线;在电路网表文本文件中对这些节点、单元和连线进行删除,同时改用逻辑0或1取代被删除的节点,选择逻辑0或逻辑1取决于该节点处出现0或1的概率大小,选择概率较大的作为新的电压取值(这里逻辑0和1代表低电压和高电压),并产生删除节点后的电路网表。

综合与仿真模块接收来自节点删除模块产生的电路网表,用于对节点删除后的电路门级网表进行自动化综合操作。通过调用自动化综合工具和仿真工具,对电路重新进行自动化的优化,并产生优化后的新电路的网表和电路报告,供信息采集模块调取。本实施例的具体方法为:通过调用综合工具,对节点删除后的电路网表进行自动化的综合操作,将上一次综合时整体电路的功耗和延迟信息作为约束条件,控制新产生的电路网表具有更优的性能结果,产生关于新产生的电路网表的单元各项延迟信息、功耗信息和连接关系等,并将新的电路网表输出到信息采集模块;

本实施例的工作原理为:

对于一个计算单元而言,删除其中的某些节点,并用恒定的高电平或低电平来代替,显然会导致计算结果的误差。但是,删除节点会降低电路的翻转率,同时删除某些产生该节点逻辑的单元,从而导致电路功耗下降。如果该节点位于电路的关键路径上,也可以预见到延迟的下降。因此我们可以说,人为产生的误差是导致电路性能提升的原因,即

(p,d)=f(error)

其中p代表功耗,d代表延时,如果我们采用edp(即p2×d)作为电路性能的衡量标准,那么有

edp=f(error)

因此,如果删除节点导致增加同样的误差,则减少的edp越大的方案越优。即删除的节点应该具有如下的特征:edp的减少量与误差的增量之比尽可能的大。值得说明的是,对于节点排序的参考,任何的衡量标准都是可以接受的,只是在数字电路中,采用p×d和edp=p平方×d是比较常用的参数,本发明采用电路的功耗和延迟作为参考,其他衡量标准也可以在本发明提出的方法中使用。

为此,本节点删除算法以此作为标准,采用以下步骤进行自动化删除节点以完成电路近似:

(1)利用综合与仿真模块对将要删除节点的逻辑电路进行综合,获得电路网表并传送到信息采集模块;

(2)信息采集模块读取电路网表中的功耗、延迟信息,进行仿真,得到精确的功耗和整体电路输出误差;

(3)判断近似电路的误差是否已经达到阈值,如果是,跳转到第(8)步;如果否,将信息采集模块读取的信息传送至数据分析模块并继续下一步;其中阈值可以从外部输入,根据需要自行指定;

(4)数据分析模块选择电路网表文本文件中接下来的节点;如果还没有被选择过,选择第一个节点;如果所有节点都被选择过了,跳转到第(6)步;

(5)确定删除该节点以后可能导致的电路功耗变化,包括仅用于产生该节点的单元和连线上所消耗的总功耗;确定删除该节点以后可能导致的电路延迟变化;估计删除该节点后可能导致的电路输出误差变化;返回第(4)步;

(6)计算每个节点edp变化量与误差变化量的比值,并进行排序,将传送至节点删除模块;

(7)节点删除模块选择比值最大的节点进行删除,并删除仅用于产生该节点逻辑值的单元和连线;返回第(1)步;

(8)输出最终的电路网表。

将本实施例的方法应用于32位加法器中进行近似处理,与传统的近似单元组成的加法器和目前最好的权重-翻转率排序法相比时,以传统的近似单元组成的加法器分别占据32位加法器的低8位、16位、24位的误差作为阈值时,本方法能够降低最多53.25%和31.15%的edp。

本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1