当前位置: 首页 > news >正文

update_io_latency:为什么你的IO约束会变成负数?

在数字后端CTS阶段,很多同学都困惑过——为什么做完时钟树后,Timing Report里IO Port的clock latency突然变成了负数

景芯训练营仔细的同学都发现了,在Innovus中从ccopt 后的timing report中可以看到clock delay是从负值开始算起的,这其实是Innovus的update_io_latency机制在起作用。

在Block Level设计中,CTS(时钟树综合)前后存在一个本质差异:

假设block level的sdc没有对clock设置source&network latency(默认就是0),在ccopt之前clock模式是ideal的,所有的clock latency都是按照0计算。

当cts构建时钟树完成之后,clock模式切换为propagate ,innovus会计算每个sink点的clock latency,但IO port上的clock latency信息依然没有,是ideal的,存在什么问题呢。

如下图所示,cts之后,latency(insertion delay)为3.5ns。图中两边虚线框代表block 的IO,左边为input port,右边为 output port。如果不进行update latency,对于input port,setup timing会乐观很多,对于ouput port ,setup timing会悲观很多,因为寄存器有latency,io clock latency为0。

update_io_latency的解决方案非常巧妙——在IO Port上反标一个负的Source Latency。innovus认为做完cts以后,block里面clock path有delay了,外面还是0,不能把内部path设成0,就在port处设了负值。这个值是clock path取了个平均值,做top层的人分下层的block时,top层的时钟输出到block的delay是事先设定的,相当于这个是给top层的人看的。

所以,工具对root点的pin 反标一个负的latency,在理想完全balance情况下,在timing rpt中可以看到到达内部寄存器的值为0,这样就可以确保io timing不会过于乐观和悲观。控制这个过程的property 是update_io_latency。

set_ccopt_property update_io_latency true

小结下,为什么要这样做?

  1. 维持相对关系:确保IO Port和内部Core的clock latency差值保持CTS前的状态(接近0)

  2. Top-Level一致性:Top Level看到的Block Port延迟 ≈ Block Level看到的内部FF延迟,两者时序视角对齐

  3. 避免迭代成本:提前暴露真实的IO时序问题,而非等到Top集成时才发现。

http://www.jsqmd.com/news/605667/

相关文章:

  • 低成本监控方案:OpenClaw+千问3.5-9B巡检服务器日志
  • kubernetes学习(六)pod控制器
  • Multisim仿真实战:为你的PMOS驱动电路加上‘光耦隔离’,这份保姆级教程和仿真文件请收好
  • HDLbits刷题避坑指南:Q3a FSM里那个容易忽略的计数器细节,你踩雷了吗?
  • SSM学习之使用@ResquestBody注解处理json格式的请求参数
  • RedisDesktopManager-Windows故障排除:解决常见安装与运行问题的完整清单
  • 网络小课堂
  • GitLab 13升14实战:从报错到成功,我的踩坑全记录(附详细解决方案)
  • MacBook安装OpenClaw:M系列芯片运行Kimi-VL-A3B-Thinking优化指南
  • 微信小程序/小游戏:方糖试玩SEO优化全攻略(2026实操版)
  • 终极指南:如何用Le Git Graph为GitHub添加可视化提交历史
  • 2026年CZ型钢技术全解析:工艺、选型与成本管控 - 优质品牌商家
  • OpenClaw语音交互扩展:Qwen3-32B镜像对接本地ASR服务
  • OpenClaw学术研究加速:Qwen3.5-9B文献图表数据提取全攻略
  • 西门子PLC中String与WString的数据存储机制解析
  • Laravel WebSockets 2025年技术路线图:终极发展指南
  • WindowsInternals安全策略分析:SlPolicy工具的高级用法指南
  • 如何利用 SEO 优化平台提高网站排名
  • MeArm机械臂(Arduino)
  • OpenClaw硬件要求解析:千问3.5-27B在不同配置电脑的运行表现
  • so-vits-svc的使用声音克隆
  • OpenClaw配置优化指南:提升Qwen2.5-VL-7B图文任务执行效率30%
  • 如何为LSTM时间序列预测项目编写单元测试:终极完整指南
  • 如何快速启用Go-RESTful的Gzip和Deflate压缩:终极配置指南
  • Harmony-Music设置优化:动态主题、均衡器和睡眠定时器配置
  • 别再傻傻分不清了!IM和RTC到底差在哪?从微信聊天到视频会议的技术选择
  • BC7215红外编解码芯片:协议无关的物理层信号处理方案
  • 2023终极指南:OctoSQL vs DataFusion vs q三大SQL查询引擎性能深度对比与选择攻略
  • Windows自动化安装终极指南:UnattendedWinstall与其他工具全面对比
  • OpenClaw成本优化:Kimi-VL-A3B-Thinking自部署与API调用对比