STA学习记录5-时序路径组和外部属性建模

1 时序路径组

如下图所示,设计中的时序路径可以视为路径的集合,每个子路径都有一个起点和一个终点

图片

在STA中,时序路径是根据有效的起点和有效的终点划分的

有效起点包括:输入端口或同步器件(触发器和存储器)的时钟引脚

有效终点包括:输出端口或者同步器件的数据输入端

时序路径包括四类:

  1. 从输入端到输出端

  2. 从输入端到同步器件的数据输入端

  3. 从一个同步器件的时钟引脚到另一个同步器件的数据输入端

  4. 从一个同步器件的时钟引脚到输出端

举个例子进行说明

图片

按序号对应:

  1. 输入端口A到输出端口Z
  2. 输入端口A到UFFA/D
  3. UFFA/CK到UFFB/D
  4. UFFB/CK到输出端口Z

可以根据不同的时钟对时序路径进行分组,而组合逻辑可以认为是默认路径组

就上面的例子而言:

  • CLKA组是输入端口A到UFFA/D
  • CLKB组是UFFA/CK到UFFB/D
  • 默认路径组是输入端口A到输出端口Z 和UFFB/CK到输出端口Z

静态时序分析和报告通常在每个时序路径组单独进行

2 外部属性建模

在之前的内容中,介绍了create_clockset_input_delayset_output_delay,这些已经足以约束设计中执行时序分析的所有路径,但是无法获取IO引脚上准确的时序,因此还需要一些属性的加入才能准确的对环境进行建模

读入输入端口,需要指定slew,可以用一下方式:

  • set_drive
  • set_driving_cell
  • set_input_transition

对于输出,需要指定输出引脚的负载电容,

  • set_load

先对这些内容进行接口

2.1 驱动强度建模

set_driveset_driving_cell用来建模外部单元在输入端口的驱动强度,如果没有这些约束,则认为驱动强度是无限的

默认情况下,输入引脚的过渡时间是0,即默认情况下驱动强度是无限的

如下图所示,set_drive明确指定了DUA输入引脚上的驱动电阻值,电阻值越小,驱动强度越大

图片

set_drive的约束情况如下

#指定咋在input UCLK处的电阻是100
set_drive 100 UCLK

#上升驱动强度和下降驱动强度不同
set_drive -rise 3 [all_inputs]
set_drive -fall 2 [all_inputs]

指定驱动强度还可用来计算RC互连情况下从输入端口到第一个单元的延迟值,计算方式为:延迟值 = (驱动强度 * 线网负载) + 连线延迟

set_driving_cell提供了一种更方便、更准确的方式来描述端口的驱动能力

可以用set_driving_cell来指定一个cell驱动的输入端口

指定方式如下:

#INPB由slow库中的INV3驱动
set_driving_cell -lib_cell INV3 \
-library slow [get_ports INPB]

#所有的inputs都是由tech3g库中的INV2驱动
set_driving_cell -lib_cell INV2 \
-library tech13g [all_inputs]

#testmode[3]由tech90gwc库中的BUFFD4驱动
set_driving_cell -lib_cell BUFFD4 \
-library tech90gwc [get_ports {testmode[3]}]

同样set_driving_cell也可以用来指定互连时从输入端口到第一个单元的延迟值

需要注意,在使用set_driving_cell进行约束时,由于输入端看上电容性负载的存在,会导致驱动单元有一个增量延迟,而这个增量延迟会被当做输入上的附加延迟被括在内

上述方法的一种替代方式是set_input_transitionset_input_transition提供了一种在输入端口表示过渡时间的便捷方式,并且可以指定参考时钟,比如下面这个例子

图片

set_input_transiton 0.85 [get_ports INPC]

set_input_transiton 0.6 [all_inputs]

set_input_transiton 0.25 [get_ports SD_DIN*]

在指定set_input_transiton是,也可以指定-max-min

2.2 电容性负载

set_load可以在输出端口设置电容性负载,用来模拟输出端口驱动外部负载的能力

默认情况下电容性负载为0,也可以将负载显示指定为电容值或某个单元的输入引脚电容

比如下面这个例子

图片

#OUTX端口有一个pF的负载
set_load 5 [get_ports OUTX]

set_laod 25 [all_outputs]
 
 set_load -pin_laod 0.007 [gets_ports {shift_write[31]}]

可以使用-wire_load选项指定与端口连接的连线的线载电容

如果既没有-pin_load,也没有-wire_load,那么默认是-pin_load

指定输出上的负载很重要,因为该值会影响驱动输出单元的延迟

set_load约束也可以用于指定内部连线上的负载,比如下面这个例子

#线载电容为 25PF
set_load 0.25 [get_nets UCNT5/NET6]
### PT串扰噪声的概念 在数字设计领域,串扰(Crosstalk)是指由于互连线路之间的寄生电容电感引起的信号干扰现象。这种干扰会影响目标网络的延迟特性以及信号完整性[^1]。具体来说,串扰可以分为两种主要效应:**Crosstalk Delay (Delta Delay)** **Crosstalk Noise Effects**。 #### Crosstalk Delay (Delta Delay) Crosstalk Delay 是指相邻信号线上的活动会对目标信号路径造成额外的时间延迟变化。例如,在某些情况下,邻近信号的变化可能会加速或减慢目标信号的传播时间,从而导致所谓的 slowdown 或 speedup 效应。 #### Crosstalk Noise Effects 除了延迟的影响外,串扰还会引起噪声注入到受害网络中。这些噪声脉冲可能由多个干扰源叠加而成,并且会在特定条件下显著增加电路的功能错误风险[^3]。 --- ### RC 提取的重要性 为了精确评估上述问题,必须先完成互连线模型中的电阻(R)与电容(C)参数提取工作。特别是对于紧密排列的金属层之间存在的耦合电容部分,其数值直接影响最终所形成的耦合噪声电压水平[^2]。因此,准确建模并量化这些寄生效应对后续分析至关重要。 --- ### 解决方案概述 针对PT工具下的串扰及时序噪声优化策略可以从以下几个方面入手: #### 1. 工艺改进措施 采用更先进的制造工艺来降低导体间不必要的电磁交互作用强度;比如缩小最小特征尺寸的同时改善绝缘材料性能等手段都可以有效减少潜在的crosstalk隐患。 #### 2. 设计调整建议 - **Spacing Adjustment**: 增加关键敏感节点与其他非相关走线间的物理间距以减弱相互影响程度。 - **Shielding Techniques**: 利用专门的地平面或者电源轨作为屏蔽屏障隔绝外部干扰源带来的不良后果。 #### 3. 静态时序分析(STA)增强功能应用 PrimeTime SI(Pt-Si)提供了强大的内置机制用于检测因cross-talk引发的各种违规情况,并支持多种缓解技术实施指导。它能够自动识别哪些地方存在较高可能性发生冲突事件,并给出相应的修正提示。 以下是利用 PrimeTime 进行 STA 的 Python 脚本示例: ```python # Example of running static timing analysis using Pt commands via Tcl interface embedded within a python script. import subprocess def run_pt_command(command_string): result = subprocess.run(['pt_shell', '-f'], input=command_string, text=True, capture_output=True) return result.stdout commands_to_run = """ read_liberty -lib lib_file.lib read_verilog design.v link_design top_module report_timing_summary """ output_results = run_pt_command(commands_to_run) print(output_results) ``` 此脚本展示了如何调用 Pt Shell 执行一系列命令来进行基本的设计读入链接操作以及报告整体定时概况的过程。 --- ### 总结 通过对串扰及其产生的延迟噪声效果的理解,结合实际工程经验采取适当预防控制办法,可以在很大程度上提高集成电路产品的可靠性稳定性表现。以上提到的技术途径只是众多可行选项的一部分而已。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值