数字IC后端实现之Setup Violation修复案例(Data&Clock Tree ECO修复手段)

今天给大家分享一个训练营项目远程协助案例。内容涉及一条timing path的data path和clock path优化以及如何根据时序timing来做clock tree的ECO。

数字IC设计实现之分段长clock tree典型案例(clock tree synthesis)

Q:老师,请问我这边跑完dmsa还有一些setup violation ,我看了对应path的hold slack还有120ps,工具没有继续修了,这部分如何手动修复呢?

在这里插入图片描述

在这里插入图片描述

从上面pt dmsa做完的报告看setup存在一些20ps左右的timing violation。学员认为这样的timing path有hold margin,工具正常应该要帮我们修掉才对。

https://alidocs.dingtalk.com/api/doc/transit?spaceId=5094368790&dentryId=66312813210&corpId=dingcd9df953ab4a15574ac5d6980864d335

我们知道PT DMSA默认只会帮我们修data path。所以当前有setup violation,那唯一它能做的就是把data path的delay变小。而想把delay变小,只有以下几个手段:

1)cell驱动变大(upsize)

2)cell换成低阈值电压的cell (比如RVT换成LVT甚至ULVT)

下面看看这条timing path完整的时序报告。从报

### CTS概述 时钟树综合(Clock Tree Synthesis, CTS)数字集成电路设计中的重要环节之一。这一过程旨在创建一个平衡的时钟分配网络,使得所有寄存器能够接收到相位一致且延迟最小化的时钟信号[^2]。 ### CTS的主要目标 - **减少Skew**:确保各个触发器之间的时钟到达时间尽可能相同。 - **降低Jitter**:减小时钟周期内的抖动量,提高系统的稳定性。 - **优化功耗**:通过合理的布线规划来节省电力消耗。 - **满足Setup/Hold Time要求**:防止由于过大的传播延时而导致的数据竞争现象发生[^3]。 ### 工具行为解析 在执行CTS操作期间,自动化工具会自动识别并处理芯片内部所有的同步元件(如FFs),构建起由缓冲区/反相器组成的分支结构——即所谓的“时钟树”。此过程中涉及到的关键活动包括但不限于: - 计算理想的插入延迟值; - 插入必要的缓冲节点以均衡路径长度; - 调整现有资源布局以便更好地支持新加入的组件; - 对生成的结果进行全面评估和正直至符合预设规格为止。 ### 常见问题及其对策 #### 1. Setup Violation (建立违例) 当数据从发送方传输到接收方所需的时间超过了规定限度,则会发生setup violation。对于此类情况,可以通过增加额外的管道级数或是调整关键路径上的逻辑门尺寸来进行缓解;另外,在某些情况下适当放宽全局时序约束也可能有所帮助。 #### 2. Hold Violation (保持违例) hold violation指的是当前状态尚未稳定前就发生了新的边沿跳变事件。针对这个问题,通常建议采取如下措施: - 减少相邻两级之间存在的组合逻辑数量; - 应用多版本技术(Multi-Versioning),即将同一份输入分发给多个不同延迟特性的实例再汇总输出; - 或者考虑重新安排局部区域内的物理位置关系从而缩短互连线程距离。 #### 3. Clock Skew Issues (时钟偏斜问题) 为了有效控制clock skew的影响范围,应当遵循以下原则: - 尽可能采用中心辐射型拓扑而非菊花链式连接方法布置各级子网; - 利用专门设计用于补偿不对称效应的特殊器件作为中介桥梁; - 定期审查整个架构是否存在潜在瓶颈点,并及时加以改进。 ```bash # 运行静态时序分析命令检查是否有违反项 sta_report_timing -max_paths 50 -slack_lesser_than 0.1 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值