第一章 绪论
本章节解决了如下问题:
什么是静态时序分析(static timing analysis)?
噪声(noise)与串扰(crosstalk)会带来什么影响 ?
如何使用静态时序分析?
在整个设计流程中的哪个阶段会应用静态时序分析?
1.1纳米设计
对于深亚微米或者纳米级别的工艺技术,互连线间的耦合效应会带来噪声与串扰,而这两者都会限制设计的运行速度。
1.2什么是静态时序分析?
STA是用来验证数字设计时序的技术之一,另外一种验证时序的方法是时序仿真,时序仿真可以同时验证功能和时序。
STA并不依赖于施加在输入端口上的激励。相比之下,时序仿真则可以被视作动态地执行对设计的分析,具体过程描述如下:施加一组激励,观察在这组激励下电路行为是否符合要求,然后换一组激励再重复以上过程,以此类推。
时序检查是指建立时间与保持时间检查:
建立时间检查是用来保证数据可以在给定时钟周期内到达触发器;
保持时间检查是用来保证数据在被触发器采样后还能保持一定时间,即保证触发器不要漏采数据。这些时序检查的目的都是为了保证触发器可以发送并且采样到正确的数据。
STA更重要的意义在于:整个设计只需要被分析一次,就可以对所有情况下设计中的全部路径进行所需的时序检查。因此,STA 是能够被用来验证设计时序的一种完全且详尽的方法。
1.3 为何使用静态时序分析
时序仿真则只能验证到被当前激励执行到的那部分时序路径。基于时序仿真的验证完备性取决于施加激励的完备性。STA则提供了一种更快更简单的方法去分析并检查设计中的全部时序路径。
基于逻辑仿真的验证是无法处理由串扰、噪声以及片上变化(on-chip variations)所带来的的影响的;噪声会限制设计所能运行的最高频率,并且也可能导致功能错误,因此一个设计必须保证有足够的鲁棒性,即这个设计可以在原有额定性能的基础上抵御一定的噪声。
1.4 设计流程
![]() |
如上图所示
STA会在实现的各个阶段里被使用到
一旦将RTL级的设计综合到门级,就可以使用STA来验证设计的时序。STA也可以在执行 逻辑优化之前运行,其目标是确定最差或关键的时序路径。可以在逻辑优化后重新运行STA,以查看是否还有剩余的时序违例路径需要优化,或者确定关键路径。
在物理设计的一开始,时钟树被认为是理想的,即它们具有零延迟。
在物理实现中,逻辑单元通过金属互连走线连接。金属走线的寄生RC(电阻和电容)会影响通过这些走线的信号路径延迟。在典型的纳米级设计中,大部分延迟和功耗都是由互连线带来的寄生因素所导致的。信号走线之间的耦合会导致噪声,并且设计验证必须考虑到噪声对性能的影响。
在逻辑设计阶段,由于没有与布局有关的物理信息,可以采用线负载模型(wireload model)来估算互连线的长度, 线负载模型会基于逻辑单元的扇出提供一个估计的RC值。
在完成走线的布线之前,设计实现工具会使用布线距离的估算值来获得该路线的寄生RC值。 该阶段称为全局布线(global route)阶段,以将其与最终布线(final route)阶段区分开来。
在物理设计的全局布线阶段,简化的布线用于估计布线长度,而对布线的估计用于确定计算走线延迟所需的电阻和电容值。
在实际精细的布线完成后,才可以提取实际的RC值,并且可以分析耦合效应带来的影响。但是,物理设计工具仍可以使用近似值来帮助缩短计算RC值的运行时间。
在逻辑级(未进行物理设计的门级),STA可采用以下模型:
- 理想的互连线或者基于线负载模型的互连线
- 带有延迟和抖动估计值的理想时钟
在物理设计阶段,除了上述模型,STA还可采用以下模型:
- 具有近似估计值的全局布线的互连线、具有近似寄生参数提取值的实际布线的互连线、具有可以签收(signoff)精度寄 生参数提取值的实际布线的互连线
2. 实际的时钟树
3. 包括串扰的影响或者不包括串扰的影响
总结一下,可以根据以下条件在门级网表上执行静态时序分析:
1.互连线的建模方式:理想互连线,线负载模型,具有近似RC值的全局布线以及具有精确RC值的实际布线。
2.时钟的建模方式:理想时钟(零延迟)或是传播时钟(实际延迟)。
3.是否考虑信号之间的耦合效应以及是否分析串扰噪声。
FPGA设计
STA的基本流程在FPGA中仍然有效,即使FPGA中的布线受限于通道,提取寄生参数和执行STA的机制也与CMOS数字设计流程相同。 例如,可以在假设互连为理想状态的情况下执行STA,或使用线负载模型,在时钟树为理想状态或真实状态的情况下执行 STA,或者对寄生参数情况采用全局布线或真实布线来执行STA。
异步设计
STA的原理也适用于异步设计,但在异步设计中会更加关注从一个信号到另一个信号的时序,而不是进行有可能不存在的建立时间与保持时间检查。 因此,异步设计中的时序检查一般是点到点时序检查或偏斜检查。 用于分析由耦合效应引起的毛刺的噪声分 析适用于任何设计,包括同步设计与异步设计。同样,考虑到耦合响应对时序带来影响的噪声分析,对于异步设计也同样有效。
1.5静态时序分析的局限性
(1)复位顺序:无法检查所有触发器在异步或同步复位后是否都复位为所需的逻辑值,是因为某些声明(例如信号的初始值)没有被综合,仅在仿真过程中被验证。
(2)未知态X的处理:STA技术仅处理逻辑0和逻辑1(或高电平/低电平)的逻辑域,或者是上升沿和下降沿的逻辑域。
(3)PLL设置:PLL的配置可能未被正确加载或设置。
(4)跨异步时钟域:STA不检查是否使用了正确的时钟同步器,需要其他工具来确保在任何跨异步时钟域的地方都有正确的时 钟同步器。
(5)IO接口时序:可能仅根据STA约束无法规定IO接口要求。
(6)模拟模块和数字模块之间的接口:STA不处理模拟模块
(7)跨时钟周期的功能行为:STA无法建模或仿真跨时钟周期变化的功能行为。
(8)FIFO指针不同步:当两个预期要同步的有限状态机实际上不同步时,STA无法检测到该问题。
(9)时钟同步逻辑:STA无法检测到时钟生成逻辑与时钟定义不匹配的问题。
(10)伪路径(false path):静态时序分析会验证通过逻辑路径的时序是否满足所有约束,如果通过逻辑路径的时序不符合要求的规范,则标记违例。在许多情况下,即使逻辑可能永远无法传播通过该路径,STA也会将该逻辑路径标记为时序违例路径。 当系统应用程序从不使用此类路径时,或者在时序违例路径的敏感列表中使用了互斥的条件时,可能会发生这种情况。这种时序路径被称为伪路径,因为这种时序路径实际上不会被执行。当在设计中指定了正确的时序约束(包括伪路径和多周期路径约束)时,STA结果的质量会更好。在大多数情况下,设计人员可以利用设计的固有知识并指定约束条件,以便在STA期间消除伪路径。