逻辑综合是电子设计自动化的重要步骤,随着算力逐渐提升和新的计算范式不断涌现,传统基于全局启发式算法的逻辑综合面临新的挑战
启发式算法面临的主要问题是得到一个次优解,随着算力的提升,逻辑优化越来越追求精确解而不满足于次优解
这里主要针对精确综合的算法、编码等方面介绍了在布尔逻辑网络的面积优化和深度优化方面的精确综合的应用
目录
一、精确逻辑综合
逻辑优化以逻辑表达为基础,在逻辑功能一致的前提下优化逻辑表达的逻辑深度、开关活动性、文字数(literals)或节点个数等,分别对应具体工艺下的性能(Performance)、功耗(Power)和面积(Area),即PPA优化。
传统逻辑优化算法从其数学基础分类主要分为代数法和布尔法
代数法又称为多项式代数法,基于普通代数发展而来
布尔法则充分利用布尔代数区别于普通代数的特性,增强了对布尔空间的搜索能力
从算法寻优能力分类又可分为启发式算法和最优算法
启发式算法用可接受的成本计算出一个次优解
最优算法则不惜成本找到问题的最优解。
超大规模数字集成电路在逻辑优化中因受制于规模约束,常采用全局启发式,局部最优算法的模式。在逻辑综合中,基于最优算法寻找最优逻辑表达式的过程被称为精确逻辑综合(exact synthesis),最优综合和精确综合常互换使用。
最优逻辑表达式指的是布尔逻辑函数的逻辑表达用到的节点数最少或者逻辑深度最小等。随着算力的提升,逻辑优化越来越追求精确解而不满足于次优解。
精确综合采用的最优算法常通过约束求解器完成决策,常用的求解器包括定理证明器、整数线性规划求解器、布尔可满足性(Boolean Satisfiability, SAT)求解器、可满足性模理论(Satisfiability Modulo Theory, SMT)求解器等。精确综合得到的结果可用于大规模数字电路的局部优化以及新兴计算范式的设计,提升了综合优化的结果质量(Quality of Result)。因SAT求解器及其算法的发展,近年来基于SAT编码及求解的精确综合受到广泛关注,对专用集成电路(ASIC)和现场可编程门阵列(FPGA),以及新兴计算范式如存算一体系统、近似计算、随机计算等带来新的优化机会。