论文部分内容阅读
提高源代码的质量是加快SoC/ASIC芯片设计进度、提高其质量的重要手段。而RTL综合器进行的综合工作与HDL源代码间的设计迭代,也是影响芯片设计进度重要环节。高质量的RTL代码可以得到更优的综合结果,减少在电路综合与HDL代码编写之间的设计迭代,从而缩短电路设计时间并提高设计效率。为了提高源代码的研发质量、尽早发现芯片设计阶段存在的缺陷,缩短电路设计迭代过程、提高电路设计效率,从而加速SoC/ASIC的设计过程,本文认为可以从以下两个方面入手:其一,开发出具有更好时序的HDL代码,为综合和最终布线完成后遗留较少的时序偏差问题,减少在门级需要解决的时序问题;其二,需要一种好的方法来优化门级电路,使得在可以的情况下尽可能不追溯到HDL代码以减少设计工作的迭代。本文分别为以上两种方案的设计与实现进行了研究,提出了基于HDL代码的数字电路静态时序分析和数字电路并行拓扑排序优化(PAITS)算法。本文的主要成果有:1.针对开发出具有更好时序的代码这一问题,提出了基于HDL代码的数字电路静态时序分析。HDL代码的数字电路静态时序分析进行在集成电路设计的编译仿真之后、逻辑综合之前,是通过根据代码预判电路结构、对门延时建模,从而达到分析电路时序情况的目的。本文使用树型结构分别对HDL代码中的纯组合逻辑语句和会综合出寄存器的语句进行时序路径建模,将电路中的每条时序路径建立为有输入和输出的顶点,指向顶点的边表示输入信号,从顶点出发的边为被赋值变量或电路输出,顶点的权值为路径的延时。然后通过对HDL代码中的语句进行延时建模,即可对电路中的各个路径给出了延时的预估。由此可以分析得到电路的关键路径及其延时,从而分析电路是否满足目标时序要求。实验结果显示,静态时序分析得到的电路关键路径,皆包含在本算法分析后找到的电路关键路径中,本方法预估的电路延时与STA分析结果的相对误差在30%内。2.针对当数字电路的时序难以满足优化目标时要进行设计迭代的问题,依据电路并行工作的特性,改进产生线性序列的拓扑排序算法,提出了并行全入度拓扑排序(PAITS),而后根据PAITS提出数字电路PAITS优化算法。该优化算法首先使用分析有向图的思想分析电路结构,对电路的有向图进行PAITS,得到电路中插入寄存器可选位置的详细信息,再根据排序得到的信息和优化目标,直接选择最佳位置,通过重写网表插入流水线、优化电路,无需设计迭代。且与有效重定时判定经典算法FEAS的时间复杂度O(|V|?|E|)相比,PAITS拥有较低的时间复杂度O(f?|V|+|E|),其中f为电路扇出约束。实验结果表明,插入同样级数的寄存器时,使用本算法优化的电路与重定时优化的电路相比电路面积较之少了20-40%。