数据读取路径的时序优化方法
摘要: 运用“局部时钟树优化”的优化手段,在本案例中准确、有效的优化了存储器数据读取的时序路径,相比方法一主频提高了50MHz,相比方法二主频提高了20MHz。通过与其他优化手段相结合,本案例最终取得了1.39GHz的签收时序分析结果。
ARM Cortex-A9 是目前应用非常广泛的IP,各个IC设计公司正在陆续引入这种高性能的IP以提升设计性能。在各种Cortex-A9的应用中,频率和功耗是设计师首要最关心的问题。以频率为例,由于设计条件和应用条件的不同,Cortex-A9可取得的运算速度可以在600MHz到2.0GHz之间不等,这些条件包括工艺条件、架构配置条件、使用的标准单元库(Standard Cell Library)、存储器 IP类型、是否加入了存储器BIST结构、签核(SIGN OFF)条件、芯片最终的应用条件等等。
本文讨论了基于TSMC 40G 1P9M工艺,应用ARM POP库(library)和FCI存储器IP的条件下,在最差环境(worst corner)取得1.39GHz ARM Cortex-A9 的实现重点策略和方法。设计流程采用基于标准单元的PSO低功耗设计流程,设计中包含两个可被关断的电源域,插入了PSO单元、ISO信号隔离电源、门控时钟结构和DFT扫描链结构。主要研究典型的存储器数据读取路径上的时序优化的方法和改进方案。
本案例使用Cadence QRC、ETS、EPS完成签核验证,建立(Setup)时序签收条件为:时钟周期700ps、0ps时钟信号不确定性(clock uncertainty)、基于最差环境库、125 oC、操作电压0.81V、Cworst 互连线模型,6%时序降率(timing derate);保持(Hold)时序签收条件为:时钟周期700ps、50ps时钟信号不确定性、最佳环境库(best corner library)、0 oC、操作电压0.99V、Cbest 互连线模型、9%时序降率。
存储器数据读取结构的时序分析
图1是典型的ARM存储器数据读取结构,从ARM7v架构开始,ARM系列IP均采用这种典型结构。其中,RAM的时钟上放置一个反向器,为反向时钟驱动;数据从RAM读取以后会在随后的Latch中锁存,然后进入核(core)系统运算。
图1:典型的存储器数据读取结构。
从物理实现的结果分析来看,可以发现存储器数据读取是全芯片中最关键的路径,有效地提升存储器数据读取路径上的时序可以提升全芯片运行频率。
针对这种典型的路径进行时序分析,以700ps的时钟周期为激励,我们可以得出以下各级时序约束(图2)。
图2:ARM中存储器数据读取路径的时序关系。
第一级为RAM数据写入路径,时序路径起始点为RegA,终点为RAM的D端口。因为RAM被反向时钟驱动,所以时序路径的需求时间(required time)为半个时钟周期,即350ps。可以发现,RAM的数据端建立时间达到110ps左右,占需求时间近32%的比例,因为这种路径上数据通道很短,通常在1~3级以内,所以第一级的时序比较宽松,有较大余量。
第二级为RAM数据读取路径,时序路径的起始点为RAM的Q端口,终点为LAT,中间不经过任何逻辑单元。因为RAM被反向时钟驱动,所以在这一级,时序路径的需求时间仍为半个时钟周期,即350ps。同时由于RAM的数据读取时间很长,在本案例中,关键RAM的CKàQ的延时为600ps,已经超过了需求时间350ps。因此必须在时钟终点的latch上进行时序借贷(timing borrow),并在时钟数上运用有用偏差(useful skew),以解决本级时序问题。
第三 级为LatchàRegister路径,时序路径的起始点为LAT的Q端口,终点为RegB。在这一级,时序路径的需求时间为一个时钟周期,即700ps,由于信号经过的数据通道较长,同时在起始点LAT又向前一级借送了若干ps的时序,因此本级的逻辑路径需要强力优化,并在物理位置上接近彼此,以达到时序平衡的目的。
存储器数据读取结构的优化方法和结果
要取得高性能的时序结果,在设计实现阶段必须从逻辑综合和物理实现两方面同时着手进行优化。
1.传统的path_group优化方法
根据图2的分析,人们首先会采用如图3所示的优化方案。其实现的过程大致如下。
图3:ARM存储器数据读取路径中常用的传统优化方案。
在综合阶段,将RAMàLAT,LATàRegB的时序路径设置为path_group,并设置优化余量,在本例中加载150ps的设计优化余量。
在物理实现阶段,首先在RAM和LAT之间的互联线设置netWeight,促使LAT的物理位置接近RAM的数据输出端口;然后在preCTS阶段设置有用偏差,如:setUsefulSkewMode–macroOnly,在优化阶段考虑到有用偏差对RAMàLAT时序路径的优化提升功效,并在CTS阶段加以实现。
这个方法有效地提升了Cortex-A9中典型的存储器数据读取路径的优化结果,但在物理实现阶段仍有不足之处,其中之一就是由于LATàRegB的时序路径也是关键路径,在物理优化的过程中,通过netWeight 完成的LAT的物理摆放位置不能完全贴近RAM的数据输出端口,造成后继由工具产生的有用偏差的设置文件随机性较大,设计方法并不能有效、准确地控制电路的形态和结果。
2.加载设计优化余量
为了解决上述问题,我们在本案例中提出了第二种方法,如图4所示。
图4:加载设计优化余量的优化方案。
第二种方法的综合方案和第一种相同,将RAMàLAT,LATàRegB的时序路径设置path_group,并设置优化余量,在本例中加载150ps的设计优化余量。
在物理实现阶段,首先去除netWeight方法,采用脚本的方法将LAT直接放置在RAM的数据输出端口,做到精确控制物理位置;然后preCTS阶段只增加优化余量,不使用有用偏差,在CTS 阶段对每个RAM都设置50ps的有用偏差。
第二种方法能有效、准确地控制LAT的摆放位置,并对RAM 节点的有用偏差结果进行控制,达到优化的目标。在本案例中运用该方法,可以达到1.35GHz的设计目标频率。但不足之处在于:较难控制RAM 时钟节点取得50ps的有用偏差。从电路分析图中可以得出50ps的有用偏差是在RAM和LAT之间的。当前物理实现工具在控制位置较近两个节点的有用偏差时还是处理不足,在最终结果的准确度、布线布通率(routability)以及时钟 CPPR的控制方面仍有缺陷,造成最终的结果和预期仍有差距。
3.局部时钟树优化方法
针对这个问题,在本案例中运用了第三种方法,如图5所示。
图5:局部时钟树优化方法。
局部时钟树优化方法在综合阶段的策略有所改变:综合的余量+100ps加载到RegAàRAM之间,同时保留LATàRegB上的150ps优化目标,原因在于RAM和相关LAT的物理位置已经足够接近,优化结果已经做到极限,同时LAT的时序借贷也已经达到最大时序借贷的数值,方法二中的RAMàLAT设计余量对电路性能的提升已经没有意义;另外,当RAM的时钟提前50ps以后,意味着RegAàRAM的时序路径的需求时间将缩短50ps,将设计余量约束提前一级,有助于取得整体时序结果的提升。
在物理优化阶段,第一、局部时钟树优化方法与方法二相同,运用脚本将所有的LAT精确地摆放到相关RAM的Q端口周围;第二、运用脚本方式,建立驱动RAM和LAT的局部时钟树,并在CTS阶段保留这个局部时钟树。第三、在CTS之后,运用脚本,调整局部时钟树,精确实现50ps的有用偏差。
通过局部时钟树优化方法,本案例精确、有效地控制了Cortex-A9存储器数据读取时序路径,从而帮助在设计验证阶段取得1.39GHz的签收时序。
局部时钟树优化方法的技术实现细节
第一步:在物理布局阶段将LAT摆放在RAM的Q端口附近,并对RAM和其所属的LAT建立一个局部缓冲器(buffer)时钟树,在本案例中加入和10个缓冲器组成的延时链。
第二步:在CTS阶段,对预先建立的局部缓冲器时钟树的顶点设置preservePin。
第三步:从时钟树根接点(root pin)开始构建全芯片的时钟数结构,并且不使用任何有用偏差设置。
第四步:在CTS之后,计算局部缓冲器时钟树的延时大小,在本案例中发现从buffer3到buffer9的延时为50ps,运用脚本改动RAM 时钟接点的连接关系至buffer2处,由此得到50ps的RAM 有用偏差,实现设计目标。
在随后的postCTS优化过程中,RAM的50ps 有用偏差可以准确实现,并预先防止拥塞的发生。最终取得提高设计优化结果的目标。
图6:局部时钟树优化方法的实现步骤。
存储器数据读取结构的时序分析
通过分析和物理实践表明,存储器读取时序路径的快慢是Cortex-A9物理实现中可以取得的最高频率的关键。在实践中我们可以得出这样一组经验公式来预测可以取得的最高频率。
假定Memory IP的数据读取时间(CLKàQ)的延时为Taccess,则,Cortex-A9芯片可以取得最高时序将为:
Cycle(max) = 4/3 *Taccess ± 30ps
Freq(max) = 1 / (4/3 *Taccess ± 30ps)
下面的表格中可以查看到ARM提供的各种存储器 IP的各项技术指标,FCI 存储器是性能最高的一类RAM。
ARM提供的各种存储器 IP的各项技术指标。
本文小结
运用“局部时钟树优化”的优化手段,在本案例中准确、有效的优化了存储器数据读取的时序路径,相比方法一主频提高了50MHz,相比方法二主频提高了20MHz。通过与其他优化手段相结合,本案例最终取得了1.39GHz的签收时序分析结果。
暂无评论