数字后端知识点扫盲——CTS(下)

今天要讲的是,如何调用工具执行CTS,时钟树综合过程中工具的行为以及如何debug常见的问题,首先还是回忆一下CTS的基本流程。

在ICC/ICC2中,工具CTS中的基本行为和命令的对应关系如下:

简言之,工具在CTS时的基本行为是:读取clock的定义以及在何种scenario/view下进行时钟树综合 —> FIix clock Line DRV —>优化每个clock内部的skew/latency —>balance 已经定义的clock group的latency —> 对clock上的nets进行绕线。

请大家牢记上面的流程,因为在debug CTS的时候可能会用到上述流程,那么,一般在CTS后经常出现的问题是什么呢?下面我们将分别谈谈。

有些clock line 没有被时钟树综合

检查是否所有的clock line都被综合的常用方法是查看clock line上的DRV。如果某些sink或者clock逻辑上的cell有非常大的max_transition violation,那么很有可能有它们根本就没有被时钟树综合。因为上面我们讲过,工具在CTS过程中的第一步就是fix clock line的DRV。对于出现这种情况的原因,可能是CTS的SDC定义有遗漏,也有可能是设置了错误的clock exception或dont_touch,还有可能是工具因为某些cell的库有问题而没有被正确识别。不管是什么原因,解决的办法就是找出design中CTS是在哪里停下的,并对照自己的SDC和各种设置,同时注意log中的CTS信息,一般都能找到一些线索。

有些clock在CTS后latency 特别长

此种情况的原因一般有两个:自己的latency本身就很长或者由于clock之间的balance导致插入了过多的balance cell。区别这两种情况的方法是,工具在CTS阶段插入的不同用途的cell都有不同的命名规则。比如对于ICC2来说,修DRV的cell名字就是cts_inv或者cts_buf之类的;balance clock内的latency的就是cts_dlydt;balance clock之间的cell名字就带ICDB。所有的命名规则可以参考下图。通过这些命名规则,我们可以很方便地得知是什么原因导致clock的latency过长。对于clock内部来说,我们需要分析clock的sink是否有分布在太远的地方、工具的CTS路径是否合理,有没有迂回、线上delay是否过大、有没有cell/net没有被综合等;对于clock之间,我们需要找到是哪一个或几个clock导致整个group的latency变长,分辨的主要方法就是通过下面的命名规则。

Latency不够短

在CTS中我们永远希望latency能够一短再短,但是有的时候明明距离不远却很难做短。造成这种现象的原因可能有以下几种:CTS中使用的cell不合理,使用了过多太小或驱动能力太弱的cell;CTS的routing rule设置不合理,导致线上delay较大或者cross talk比较严重;target skew/target transition设置太严,导致工具为了获得更小的skew或者transition而插入了过多的cell导致clock级数增加。不管是什么原因,分析的根本方法都在于对照clock源头和sink分布,预估CTS的级数和delay,如果有较大出入都需要引起注意。

以上就是常见的一些CTS的问题以及基本的解决思路。在实际中其实还有很多问题,但是限于篇幅,我们不在这里一一讨论。如果大家有什么问题可以加入后端设计讨论群一起讨论。

至此,CTS系列的三篇文章就都完成了。虽然感觉有不少内容,但是仍然感觉有太多的东西还没有涉及,可能限于本人经验有很多东西也没有讲的很深,毕竟CTS是一个非常耗费心力也是非常容易出问题的一个步骤。如果大家有其他想要了解的内容欢迎留言或者加群讨论。

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PCIE(Peripheral Component Interconnect Express)是一种计算机扩展总线标准,用于连接外部设备与计算机主板之间的数据传输。PCIe连接的设备可以是显卡、声卡、网卡等。 Flow control(流量控制)是PCIE中的一种基础机制,用于在设备之间传输数据时确保数据的可靠传输。 PCIE的flow control可以分为两种方式:Credit-based Flow Control(基于信用控制)和Acknowledgment/Negative Acknowledgment Flow Control(确认/否定确认控制)。 基于信用控制是PCIE中最常用的流量控制机制。发送方设备在发送数据之前会向接收方设备发送一个信用(credit)值,表示发送方设备可以发送的最大数据量。接收方设备在接收到数据后会发回一个更新的信用值给发送方设备,发送方设备根据接收到的信用值确定下一次可以发送的数据量。通过这种方式,可以有效控制不同速度的设备之间的数据传输,避免数据丢失或信道阻塞。 确认/否定确认控制是PCIE中的一种备用方式,当发送方设备发送数据后,接收方设备会发回一个确认或否定确认信号给发送方设备,以告知是否成功接收数据。如果发送方设备收到否定确认信号,则会重新发送数据,确保数据的可靠性。 总结来说,PCIE中的flow control机制是为了确保数据的可靠传输而设计的。基于信用控制和确认/否定确认控制是两种常用的流量控制方式,可以根据不同的需求选择适合的方式来控制数据的传输。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值