静态时序分析Static Timing Analysis3——特殊路径(多周期、半周期、伪路径)的时序检查

文章目录

  • 前言
  • 一、多周期路径
    • 1、建立时间检查
    • 2、保持时间检查
  • 二、半周期路径
    • 1、建立时间检查
    • 2、保持时间检查
  • 三、伪路径


前言

2023.4.12


一、多周期路径

对于建立时间,要设置为N(向后移);对于保持时间,要设置为N-1(向前移)。

create_clock -name CLKM -period 10 [get_ports CLKM]

set_multicycle_path 3 -setup -from [get_pins UFF0/Q] -to [get_pins UFF1/D]
set_multicycle_path 2 -hold -from [get_pins UFF0/Q] -to [get_pins UFF1/D]  //把建立时间检查点向前移两个周期

静态时序分析Static Timing Analysis3——特殊路径(多周期、半周期、伪路径)的时序检查_第1张图片

静态时序分析Static Timing Analysis3——特殊路径(多周期、半周期、伪路径)的时序检查_第2张图片

1、建立时间检查

静态时序分析Static Timing Analysis3——特殊路径(多周期、半周期、伪路径)的时序检查_第3张图片
静态时序分析Static Timing Analysis3——特殊路径(多周期、半周期、伪路径)的时序检查_第4张图片

2、保持时间检查

本来默认的保持时间检查边沿是建立时间检查的前一个周期,在这里第三个周期检查建立时间,理论上第二个周期检查,但是这样对于保持时间的时序要求太严格了,也不符合我们实际的需求,需要保持这么多个周期,因此把保持时间检查节点向前移了两个周期。

静态时序分析Static Timing Analysis3——特殊路径(多周期、半周期、伪路径)的时序检查_第5张图片

所以时钟边沿从0开始了

静态时序分析Static Timing Analysis3——特殊路径(多周期、半周期、伪路径)的时序检查_第6张图片

二、半周期路径

前者下降沿发送数据,后者上升沿采集数据,留给中间组合逻辑的时间就只剩下半个周期。

在半周期路径中,保持时间很容易满足,而建立时间要求比较严格。(hold很难修改违例)
静态时序分析Static Timing Analysis3——特殊路径(多周期、半周期、伪路径)的时序检查_第7张图片

1、建立时间检查

静态时序分析Static Timing Analysis3——特殊路径(多周期、半周期、伪路径)的时序检查_第8张图片

静态时序分析Static Timing Analysis3——特殊路径(多周期、半周期、伪路径)的时序检查_第9张图片

2、保持时间检查

保持时间检查周期默认就在检查时间的前一个时钟周期,因此在下图中的0时刻。
静态时序分析Static Timing Analysis3——特殊路径(多周期、半周期、伪路径)的时序检查_第10张图片

静态时序分析Static Timing Analysis3——特殊路径(多周期、半周期、伪路径)的时序检查_第11张图片

静态时序分析Static Timing Analysis3——特殊路径(多周期、半周期、伪路径)的时序检查_第12张图片

三、伪路径

  • 伪路径,STA不会去分析,一方面提高分析的准确性,另一方面,提高软件PT运行的速度。
  • 跨时钟域信号涉及的路径都不用STA,所以跨时钟域的路径都需要设置伪路径。
  • 设置过多的伪路径,可能会使得仿真速度变慢。
  • 尽量少使用through这种方式,推荐使用第一种,分别指定两个时钟域,更加准确
set_false_path -from [get_clocks SCAN_CLK] -to [get_clocks CORE_CLK]

set_false_path -through [get_pins UMUX0/S] //通过这个pin的路径都不分析

set_false_path -through [get_pins SAD_CORE/RSTN]

set_false_path -to [get_ports TEST_REG*]  //以这个pin结尾的都是伪路径
 
set_false_path -through UINV/Z -through UAND0/Z  //按顺序依次通过上述pin的是伪路径

你可能感兴趣的:(静态时序分析,学习,静态时序分析)