Signal Integrity: Crosstalk Delay 和 Crosstalk Noise-2

2023-10-27 18:50

本文主要是介绍Signal Integrity: Crosstalk Delay 和 Crosstalk Noise-2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

接上篇

东坡ju士,公众号:东坡ju士Signal Integrity: Crosstalk Delay 和 Crosstalk Noise-1

3,Multiple-Clock Domains Victim Nets 分析原则

对于在时钟网络上的nets,PTSI会分开计算每个时钟下的delta delay,也就是说在CLK1 domain 下时有delta delay,但在CLK3的时候就没有,这样不会过悲观。

图片

对于在数据网络上的nets,PTSI会在不同的clock domain下使用相同的最差的delta delay(默认none),如下图所示,这样做的优点就是更快节省空间,缺点就是比较悲观一点,也可以使用all_clocks,这样就会跟clock nets 一样分析,消除过悲观。

pt_shell> set_app_var \ timing_enable_independent_crosstalk_in_data_network \ none | all_clocks | physically_exclusive_clocks

图片

如果使用 physically_exclusive_clocks,PTSI会把设置了physcially exclusive的两个分开计算。

图片

4,All Paths 和All Path Edges 

All Paths 和All Path Edges是 timing window overlap中的两种分析模式 set_app_var si_xtalk_delay_analysis_mode all_path &  all_path_edges

all_path mode:

all_path 模式下,PTSI 会计算三条path的最早时间(对应计算hold)和最晚时间(对应计算setup)作为timing window 的范围,显然这种分析方法是有点过悲观的。如下图所示,红色部分是Aggressor window和victim window的overlap部分,工具计算delay 的时候就按照这部分 overlap来考虑他们之间的关系的,也就是说不管计算setup 还是hold,都是按照这个overlap来计算。但实际上在计算setup 的时候,3条path late arrival edgs是没有和 Aggressor window 有overlap 的,也就是说理论上计算setup 的时候不应该计算crosstalk的影响,但实际上计算了,就会产生一部分过悲观。这部分悲观度可以用两种方法去除,一种是pba,一种是下面说的all_path_edges mode。

图片

all_path_edges mode:

对max paths进行分析时,delay 计算应该按照1,3,5,此时1,3,5与aggressor window没有overlap,工具会计算delta delay 为0。

图片

图片

对min paths进行分析时,delay 计算应该按照2,4,6,有overlap ,工具计算delta delay 时就不为0。

图片

一般都是使用较为悲观的all_path 分析模式,这样存储的数据量相对较小,计算更快,节省机器资源。一般项目后期会使用比较真实的pba或者all_path_edges mode来signoff。

5,在不同clock group之间的crosstalk分析:

clock group 常用的一般有三种:Asynchronous、Logically Exclusive和 Physically Exclusive Clocks。一般使用 set_clock_groups 来指定。

下图所示比较清楚的表示出,两个group 之间是没有timing check的,但是会考虑到crosstalk的影响,因为不确定沿啥时候到来,所以会当成无限的timing window来计算,会有点过悲观。

图片

下图所示是被设置了logically_exclusive 的两个group,他们之间不会有timing check,使用timing window 真实的overlap 来计算。另外 physical exclusive在物理上是两个不能共存的group,两者之间不会做crosstalk检查,更不会有timing check。

图片

有一种case,如下图所示,我的目标是让mux U1之前的部分做crosstalk 的分析,让mux 之后的部分不做crosstalk 分析。

如果设置logically_exclusive :​​​​​​​

pt_shell> set_clock_groups -logically_exclusive \ -group {CLK1} -group {CLK2}

这样的话,mux 后面的部分就会做crosstalk分析,如果两个CLK 不同时出现在clock net 上,就会存在过悲观。

如果设置physical_exclusive :​​​​​​​

pt_shell> set_clock_groups -physically_exclusive \ -group {CLK1} -group {CLK2}

这样的话mux U1之前的部分就不会做crosstalk 分析,如果mux 前面的path 很长,就可能有比较严重的crosstalk,不做分析的话,不够悲观,这是不想看到的。

图片

针对这种case,一般做法是设置两个分频时钟,然后把它们设置为physical_exclusive,这样就能满足需求。​​​​​​​

pt_shell> create_generated_clock -name gCLK1 \ -source [get_ports CLK1] -divide_by 1 \ -add -master_clock [get_clocks CLK1] \ [get_pins U1/z]pt_shell> create_generated_clock -name gCLK2 \ -source [get_ports CLK2] -divide_by 1 \ -add -master_clock [get_clocks CLK2] \ [get_pins U1/z]pt_shell> set_clock_groups -physically_exclusive \-group {gCLK1} -group {gCLK2}

图片

6,Composite Aggressors

PTSI在进行crosstalk分析时,有些victim nets会有很多小的 aggressors nets,它们的影响很小但数量很多,如果对每一条进行分析就会花费很长的时间和很大的机器资源,为了解决这一问题,PTSI有了composite aggressor mode (即把很多小的aggressors组合到一起形成一个复合的分析模型,用这个复合的aggressor来等价这些小aggrs带来的影响),这种mode 一般应用在 每一条victim net有很多aggressors 的design,或者对crosstalk calculations 设置high effort的时候。

下图是composite aggressor mode 的disable和enable 的示意图:

图片

默认情况下,composite aggressor mode 是disable的,enable 可以设置si_xtalk_composite_aggr_mode  statistical。可以使用si_xtalk_composite_aggr_noise_peak_ratio 来调整composite 的阈值,默认是0.01,bump voltage低于供电电压的0.01的aggressor nets 将会被复合到一起形成一个composite aggressor net,这里包含本来应该被electrical filtering的部分。

7,带有CCS Models的crosstalk 分析

在先进工艺下,libraries 中一般会包含CCS timing和Noise models,PTSI 会使用这些数据对 victim nets 的drivers 和 receivers进行门级的建模,以此得到对crosstalk 更加精准的描述。

如下图所示,由于aggressor 的影响,victim net receiver的input pin翻转波形失真,这影响到后面的receiver stage,PTSI 会根据这种影响来建模得到delta delay。

图片

PTSI 使用了一种等价波形来模拟这种影响,即根据output response 波形向前反推一个等价的波形,这个等价的波形(Equivalent waveform,蓝色)和 没有受到crosstalk影响的波形(Uncoupled waveform,绿色)之间的差值就是 delta delay,这个值是反推过来的值,对后面的计算没有太大意义,只是比较直观的反应出crosstalk 带来的影响大小。

图片

图片

8,Reports

  • report_timing 生成包含crosstalk的timing rpt

  • report_si_bottleneck 报出主要的 victim nets 或者aggressor nets

  • report_delay_calculation -crosstalk 报出指定victim net的详细crosstalk 信息

  • report_si_double_switching 报出 有double_switching的victim nets

更多文章和专题请关注微信公共号

未完待续...

有问题请指正!

这篇关于Signal Integrity: Crosstalk Delay 和 Crosstalk Noise-2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/287645

相关文章

【操作系统】信号Signal超详解|捕捉函数

🔥博客主页: 我要成为C++领域大神🎥系列专栏:【C++核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞👍收藏⭐评论✍️ 本博客致力于知识分享,与更多的人进行学习交流 ​ 如何触发信号 信号是Linux下的经典技术,一般操作系统利用信号杀死违规进程,典型进程干预手段,信号除了杀死进程外也可以挂起进程 kill -l 查看系统支持的信号

一步步学习微软InfoPath2010和SP2010--第三章节--表单设计基础:处理InfoPath布局、控件和视图(7)--添加含规则的提交按钮到Flight Delay表单

准备:打开之前创建的Flight Delay表单。也可以下载Flight Delay Post exercise 2.xsn.右击模板文件,选择设计。         本练习,添加按钮控件到表单,按钮包含规则提交表单到一个邮件数据连接。 1. 在选项组控件下方或右边按下Enter几次。注意光标必须在控件外边。 2. 插入按钮控件 3. 在开始选项卡,点击居中 4. 控件工具选项卡,在标

一步步学习微软InfoPath2010和SP2010--第三章节--表单设计基础:处理InfoPath布局、控件和视图(6)--添加控件到Flight Delay表单

准备:打开之前创建的Flight Delay表单。也可以下载Flight Delay Post exercise 1.xsn.右击模板文件,选择设计。         本练习,继续创建Flight Delay表单。添加控件提供需要的功能。你需要捕获的数据包括在下边: 需要的数据 使用的控件 日期 日期选取器 航班号 文本框 航班延迟原因 下拉列表框 Fo

ESP8266 Arduino 不使用Delay让Led闪烁

因为Arduino Delay 函数会阻塞线程,使用millis 方法实现Led闪烁。 当然也可以使用Timer 来达到同样的效果。 //非阻塞//LED灯闪烁unsigned long previousMillis = 0;const long interval = 1000; //灯闪烁的时间间隔#define D5 14void setup(){pinMode(LE

INTEGRITY CHECK ERROR错误

问题描述 启动myeclipse2018的时候报INTEGRITY CHECK ERROR错误,如下图所示 解决方案 将报错jar包剪切到桌面,重启Myeclipse,然后再将拷贝出的jar包复制回去。

【c++】6.延时函数sleep()、usleep()、delay()和计算程序运行时间的函数clock()

延时函数delay(),sleep(),usleep() 推荐使用以下延迟: #include <unistd.h> // 在gcc编译器中,使用的头文件因gcc版本的不同而不同sleep(10); //程序挂起10s usleep(100); //程序挂起100us 可以参考:Linux的sleep()和usleep()的使用和区别: https://blog.csdn.net

Time-Delay Neural Network(TDNN)-下

前言 本篇博客对TDNN网络结构的特性进行梳理,使读者了解设计所考虑的问题,关于其结构请参考博客Time-Delay Neural Network(TDNN)-上。博客基于对论文 Phoneme Recognition Using Time-Delay Neural Network 的阅读和理解,如有谬误,还望指出,不胜感激。 正文 语音识别的小伙伴都知道,语音识别通常要把一段不等场的语音切

Time-Delay Neural Network(TDNN)-上

前言 本篇博客仅对TDNN的网络结构进行简单梳理,使读者对TDNN的网络结构有一个清晰直观的印象。博客基于对论文 Phoneme Recognition Using Time-Delay Neural Network 的阅读和理解,如有谬误,还望指出,不胜感激。 正文 TDNN与1989年就已提出(在我出生之前), 用于音素识别。以下部分将以论文中的结构做简单说明,网络结构如下图: 这是一

STM32定时器篇——Systick定时器的使用(实现delay延时函数)

一、Systick定时器的简介:         Systick定时器就是系统滴答定时器,一个24 位的倒计数定时器对于CM3,CM4内核芯片,都有Systick定时器。当Systick计到0时,将从RELOAD 寄存器中自动重装载定时初值。只要不把它在SysTick 控制及状态寄存器中的使能位清除,就永不停息,即使在睡眠模式下也能工作。l常用来做延时,或者实时系统的心跳时钟。这样可以节省MCU

【论文笔记】Proofs-of-delay and randomness beacons in Ethereum-2017IEEE SB Workshop

论文作者:Benedikt B¨unzy, Steven Goldfeder,Joseph Bonneauy  Princeton University,  Stanford University 论文源代码:https://github.com/bbuenz/VerifiableBeacon 作者个人网站:https://crypto.stanford.edu/~buenz/publicat