一种基于全局优化算法的电路自动剪枝方法技术

技术编号:35487274 阅读:23 留言:0更新日期:2022-11-05 16:41
本发明专利技术提供了一种基于全局优化算法的近似电路自动剪枝方法,通过分解原有电路结构,借助全局优化算法获得电路的自动剪枝结果。本发明专利技术将删除的最小单元改为基础的与或非逻辑,提高删除的精度。同时将分解后的与或非逻辑转为C语言模型,使得整体迭代脱离综合工具和仿真工具,利用C语言代替仿真,节省大量的时间。最后加入全局优化算法,在删除节点的选择上不再寻找每次迭代的最优解,而是从整体考虑,寻找出合适的节点集合进行删除,使得总体的删除节点的效果最优。在16个8bit加法的近似处理,在100的mse限制下获得了最高18.47%的面积削减和38.91%的功耗削减。减和38.91%的功耗削减。减和38.91%的功耗削减。

【技术实现步骤摘要】
一种基于全局优化算法的电路自动剪枝方法


[0001]本专利技术属于集成电路领域,涉及一种基于全局优化算法的电路自动剪枝方法。

技术介绍

[0002]随着工艺线宽的缩小,芯片集成度随之提高,集成电路单位面积的性能也不断加强,因此电路的功耗问题越来越严重,逐渐引起人们的重视,人们开始关注如何获得性能更优的设计,这就使功耗成为芯片设计的重要指标。在解决功耗问题时,人们不再局限于利用降低电压来降低功耗的VOS(voltage overscaling)功耗下降方案,逐步开始研究更多的功耗降低方向,因此近似计算逐渐成为热门的研究话题。近似计算,顾名思义,就是通过不精确的计算来代替精确的计算,从而降低电路复杂度,同时电路面积和功耗也随之降低。在集成电路的实际应用中,包括了众多具有可容错性的应用场景,这些场景并不需要完全精确或高精度的计算结果。例如在许多图像处理应用中,由于系统固有的量化误差,这个应用场景就会具有一定的容错性,可以容忍输出的数据的误差,这也就使得近似计算成为一种高效的功耗优化方案。
[0003]目前的近似计算设计方法大部分都是通过设计者自身经验手动设计,通过经验来估计电路的误差,然后对电路进行一定的修改。因此针对不同的电路设计,需要根据电路的特性,设计新的近似方案。由于这种方法极度依赖自身的经验,因此通常需要大量的时间来进行尝试,最终才能获得一个性能

误差有良好平衡的近似方案。另一方面,通过这种方法针对电路规模较大的电路进行近似设计时,由于电路太大,对电路进行修改可能产生较大的误差,所以会出现找不到切入点的情况。
[0004]因此,自动剪枝成为了一种新的选择,其不针对应用场景,在自动剪枝体系下,所有的组合逻辑电路都可以适用。其主要是针对组合逻辑所共有的特性来剪枝,通过一些误差指标的限定,实现所需应用的近似设计,针对不同的设计只需要进行迭代删除,不需要额外的设计时间。自动剪枝通过评估组合逻辑所共有的特性,从电路中获得足够的信息,然后通过信息计算电路中节点的误差函数值,排序后找到当前最优删除节点,按顺序迭代删除。但是这种自动剪枝方法每次迭代都寻找当前的最优删除节点,最终会陷入局部最优,无法找到全局最优,同时删除的最小单元为综合后电路的复合门,删除的精度不够高。并且每一次迭代均需使用综合工具和仿真工具,耗费大量的时间。

技术实现思路

[0005]针对上述自动剪枝的问题,本专利技术将删除的最小单元改为基础的与或非逻辑,提高删除的精度。同时将分解后的与或非逻辑转为C语言模型,使得整体迭代脱离综合工具和仿真工具,利用C语言代替仿真,节省大量的时间。最后加入全局优化算法,在删除节点的选择上不再寻找每次迭代的最优解,而是从整体考虑,寻找出合适的节点集合进行删除,使得总体的删除节点的效果最优。
[0006]本专利技术采用的技术方案如下:
[0007]本专利技术提出的一种基于全局优化算法的近似电路自动剪枝方法,包括如下步骤:
[0008]步骤一、基于目标电路的verilog代码,综合处理电路verilog文件,获得综合后的网表文件。
[0009]步骤二、借助库的verilog文件,利用python分解步骤一获得的网表文件,将复合门全部转为2输入简单逻辑门,同时记录复合门的分解情况。
[0010]步骤三、将步骤二中的逻辑门转为图的连线,使逻辑门的输入输出连线转为图的节点,将电路转换为有向无环图(DAG)。并设置所有连线的线权值,图节点的权值为所有下一级节点的权值乘以对应连线的权值,因此根据输出的权值反向遍历,获得整幅图的权值。
[0011]步骤四、根据步骤三获得的有向无环图反向遍历每一个图节点,转换节点唯一相关逻辑门为对应的C语言逻辑表达式。按顺序记录后反序,获得一个新列表。按照新列表的顺序执行逻辑表达式,就可以通过C语言的顺序执行逻辑来模拟原有的并行执行逻辑的组合逻辑电路。以此实现随机激励仿真,并记录节点信息、误差信息。
[0012]步骤五、通过全局优化算法,对全局优化算法的初始值进行设置,设置个体数以及删除节点数。将局部最优节点集合,总体删除节点集合,旧删除节点集合设为空集,将总体最优方向和总体错误方向设为空。
[0013]步骤六、使用旧删除节点集合保存总体删除节点集合。
[0014]步骤七、根据步骤四中C语言仿真获得的节点信息,结合步骤三获得的节点权值信息,计算每个节点的两个删减函数值,然后根据总体错误方向的节点,降低错误方向节点的优先级。按照删除函数值的排序顺序,取得删减节点集合。然后将删减集合映射到C语言仿真结构中,通过C语言仿真,获得此删除节点集合的误差信息。若误差过大,将重新迭代获得删除节点集合。循环迭代,直到获得所有个体的删除节点集合。
[0015]步骤八、根据步骤七获得的删除节点集合,根据全局优化算法,找到群体最优集合。通过随机交叉,更新所有个体的删除节点集合。
[0016]步骤九、将更新后的删除节点集合映射到C语言仿真模型中,仿真获得误差和节点信息,若误差异常增大,舍弃当前个体的此次迭代结果,使用旧删除节点集合覆盖总体删除节点集合。
[0017]步骤十、所有个体判断误差是否超过限制,若均超过则进行步骤十一,否则重复步骤六开始新一轮迭代。
[0018]步骤十一、根据步骤九确定的删除节点集合对电路进行删减,获得删减后的电路结构。
[0019]步骤十二、根据步骤二获得的复合门组合信息,根提逻辑门的例化名提取步骤十一的删减电路逻辑。若能搜索到,则填加到综合的输入中,综合后即可得到原有复合门的近似电路,最后组合所有的近似复合门,完成整体电路的近似。
[0020]具体的,步骤三中的节点权值表示删除该节点对输出结果的影响程度,权值越大,则删除之后产生的输出误差可能越大。
[0021]具体的,针对步骤四,由于图节点为逻辑门的连线,连线同时起到前级逻辑门输出和后级逻辑门输入的功能。同时根据verilog的语法规定,为了不产生多驱动,连线作为输出时,只能由一个逻辑门驱动,因此可以找到唯一相关的逻辑表达式。
[0022]具体的,步骤五中的全局优化算法的使用粒子群算法的思想,通过设置个体数和
单次删减节点数,进行优化算法迭代,每一次迭代需要根据个体数量多次获得删除节点,每个个体的删除节点的计算均独立。
[0023]具体的,步骤七中的每一个节点有两个删除可能,可能置为0或者置为1,因此针对两种删减方式每个节点有两个对应删除函数值。
[0024]具体的,步骤七中的映射原理为若此节点需置0,则不获取此节点的原有逻辑表达式,改为直接置0。置1的映射方式同理。
[0025]具体的,步骤七中由于整体的删除节点选择模型存在权值估计,误差函数值估计等估计模型产生的误差,因此可能存在删除节点后,误差过大的情况。因此,步骤七中设计了重新迭代回退获取新的删除节点的方法。
[0026]具体的,针对步骤八,根据粒子群算法思想,每一个个体将逐渐向群体最优逼近,在此处的体现即为每一个删除集合更新本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于全局优化的电路自动剪枝方法,其特征在于,包括如下步骤:步骤一、获取目标电路的verilog代码,通过综合处理后获得综合后的网表文件;步骤二、通过分解网表文件中的复合门,将复合门全部转为2输入的逻辑门,从而获得仅由2输入逻辑门组成的电路逻辑,同时记录复合门的分解数据;步骤三、将电路逻辑中逻辑门转为图的连线,并设置连线的线权值为0.5,使逻辑门的输入输出连线转为图的节点,将电路逻辑中的电路转换为有向无环图;图节点的权值W为所有下一级节点的权值乘以对应连线的线权值,根据输出的权值反向遍历,获得整幅图的权值;权值W用于表示删除该节点对输出结果的影响程度,权值越大,则删除之后产生的输出误差越大;步骤四、根据步骤三获得的有向无环图反向遍历每一个图节点,利用C语言转换节点作为输出时的逻辑门为C语言逻辑表达式,按顺序记录逻辑表达式,获得表达式列表,然后反序此列表,获得一个新列表定义为Logic_list,按照Logic_list的顺序,通过C语言的顺序执行逻辑表达式来模拟并行执行逻辑的组合逻辑电路,从而实现随机激励仿真,并记录仿真时所有节点为0和为1的次数,分别定义为T0和T1;步骤五、通过全局优化算法,设置个体数N和单次删减节点数M,设置N个个体的初始集合,包括局部最优节点集合RAW_DELi,总体删除节点集合DELi,旧节点集合OLD_DELi,i=1~N,三个集合初始均为空集;同时设置MSEi用于描述DELi的误差水平,初始值为0,定义GLOBAL_DEL为群体最优方向,WRONG_DEL作为错误方向;步骤六、令OLD_DELi=DELi,保存旧的删除节点集合;步骤七、根据步骤四C语言仿真获得的节点信息T0,T1,结合步骤三获得的节点权值信息W,利用如下公式计算每个节点的删减函数值:TR0=W
×
T0TR1=W
×
T1func0=TR0
×
TR1+TR02+TR0
×
msefunc1=TR0
×
...

【专利技术属性】
技术研发人员:贺雅娟蔡卢麟庄炎铭朱飞宇候博文张波
申请(专利权)人:电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1