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

如何写好一份SDC——流程篇

⚠️本文目的为 个人学习记录 及 知识分享。因个人能力受限,存在解读不正确的可能。若您参考本文进行产品设计或进行其他事项并造成了不良后果,本人不承担相关法律责任

文章目录

  • 定义标准
  • 第一层标准
  • 第二层标准
  • 第三层标准

定义标准


笔者认为高质量、可交付的标准 SDC 应当满足以下三个维度。这三个标准由浅入深,构成了评价 SDC 完善程度的三个等级

第一层
SDC 语法正确,时钟结构符合预期,没有漏掉约束的路径
第二层
约束真实且合理,I/O 边界约束具有真实的物理意义
第三层
模式(Mode)与场景的完整覆盖,为后端留够友好的余量


第一层标准


1、再写完初始的sdc之后,要依次经过SPYGLASS LINTSPYGLASS CONSTRAINTSSPYGLASS CDC工具检查

可以做什么:它可以检查你的 SDC 语法对不对,有没有把两个没有同步处理的时钟域漏设 set_clock_groups,基于结构和静态规则进行分析。
不可以做什么:无法分析真实的物理延迟,AND Cell的delay是多少?时钟树的Clock Skew是多少?工具都不知道,无法判断信号能否在1ns跑完这件事。
条件:当清完全部Error,保证所有Waring都是waive之后可以进入下一步。

2、再完成SPYGLASS检查后,要经过Design Compiler综合工具生成网表

可以做什么:顾名思义进行综合,load sdc、rtl、lib等文件后对电路进行compile,生成网表并在该过程中尽可能优化PPA。使用check_timing结合RTL进一步检查sdc有无未被约束的endpoint,是否缺少输入/输出延迟,有无组合逻辑环等问题,对于sdc在完整性上进行检查。
不可以做什么:无法给出真实的时序分析,DC为了速度,它的时序计算引擎是粗略的、近似的。如果SDC 里写了一个极度不合理的约束,DC 为了满足它,可能会塞入上百个 Buffer,导致面积爆炸。DC 可能会报 Timing Met,但代价是交出一个后端根本无法布线的畸形网表。
条件:check_design/check_timing没有问题,时序违例在可接受的范围内(比如时钟周期的10%),且使用Formality完成formal check后可以进入下一步。

至此第一层意图得到满足


第二层标准


再完成formal check后,经过Prime Time去执行STA

可以做什么:使用 CRPR 时钟重收敛悲观度去除、PBA 基于路径的分析等算法在不同的corner下去计算延迟。如果在 PT 里看到了巨量且荒谬的违例,往往意味着SDC 约束写错了,误导了 DC,导致 DC 综合出了垃圾网表。
在前端阶段,可以使用lib自带的线负载模型进行相对真实的时序分析。在该阶段面向第二层意图对sdc进行迭代,在时序报告中如果发现了一条很长的跨模块组合逻辑路径时序不满足,在有RTL 设计意图支撑下可以添加Exception。借助时序报告验证约束参数正确与否,去查阅厂商的 Datasheet,或者跟系统架构师对齐,根据板级走线和 PHY 的真实出pin延迟,精确设定 set_input_delay 和 set_output_delay。
不可以做什么:此时我们使用的lib提供的线负载模型(WLM),而不是后端提供SPEF文件,因此时序分析依旧不准确。
条件:check_timing是clean或者是可接受的,并且时序违例的合理的,可以交给后端进行布局布线等操作。

至此第二层意图得到满足


第三层标准


在和后端的battle中持续优化sdc的约束数值。目前笔者还没走到这一步,等有了经验再更新。


思考:
既然DC和PT都无法提供准确的时序分析,何时对特殊路径设置MCP和set_false_path呢?

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

相关文章:

  • SecGPT-14B部署教程:华为云ModelArts中适配vLLM的Ascend CANN优化方案
  • 关于CO2地下盐水层封存的Comsol复刻之旅
  • 3个革新性视角:Tomato-Novel-Downloader的内容自由解决方案
  • 开源工具权限重置指南:跨平台AI编程助手试用限制解决方案
  • 【愚公系列】《剪映+DeepSeek+即梦:短视频制作》030-调色:废片秒变氛围感大片(基础参数的调节)
  • VibeVoice Pro多语言混合输出:中英混说场景下流式语音连续性测试
  • 56. 合并区间(Merge Intervals)——C语言高质量题解
  • DMDRS二进制安装包部署搭建(DM8单机版)
  • 拒绝做“代码蝉”:研发团队如何设计“有感”的微愿景?
  • Face Analysis WebUI保姆级教程:3步完成GPU加速的人脸属性分析环境部署
  • Tantivy 与 Milvus 的深度整合:倒排索引在向量搜索中的性能优化实践
  • OpenCore Legacy Patcher:3大突破让旧Mac重获新生的系统兼容性优化指南
  • SOONet部署案例:Kubernetes集群中SOONet服务容器化与水平扩缩容实践
  • 4步解锁旧Mac潜能:OpenCore Legacy Patcher技术指南
  • FPGA工程师面试汇总(五)
  • 前缀和力扣题(leetcode)
  • 155. 最小栈(MinStack)题解
  • BAAI/bge-m3快速入门:3步搭建你的第一个语义相似度分析工具
  • OpenClaw云端体验:通过星图平台快速试用GLM-4.7-Flash镜像
  • 实测|WSL2 从零部署 OpenClaw AI 助手:安装配置与实战运行教程
  • 从电子表到服务器:聊聊32.768kHz这颗“时间之心”的封装变迁史(DT-26、SMD3225对比)
  • OBS Studio直播架构解析:多源场景管理与实时转场性能优化
  • FastReport安装避坑指南:Delphi开发者必知的5个关键步骤
  • AI 大模型绘图日常使用教程|零门槛上手,快速出图不踩坑
  • OpenLdap部署
  • 2026年GPT-5.4实战应用完全指南
  • OBS多平台直播解决方案:obs-multi-rtmp插件全攻略
  • 造相-Z-Image效果对比:BF16 vs FP16在4090上的画质与稳定性差异
  • 多无人机协同避障之自适应重构 V 型编队与分布式控制算法探索
  • 【应用】运营营销人该如何看待OpenClaw?