罗风 · 7月1日

综合 | SDC 的读入与检查

继续综合这一趴,顺着流程往下,今天码SDC 的读入与检查,前序回顾《综合 | 概述及 library 检查》《综合 | LEF\, QRC\, DEF》《综合 | 设计读入与检查》,SDC 是数字实现的『准则』,所有的优化都以SDC 为目标。

1.jpg

SDC 通常由Designer 来完成,写SDC 需要对设计十分了解,是个精细活,因为SDC 是『行为准则』,所以对SDC 精准度的要求特别高,优秀的SDC 应该具备『不漏、不多、不过、不冗余』的特性。正规做法,都需要用单独的工具去验证SDC 的完备性跟精准度, 世面上有许多工具都可以做这事儿,除了检查SDC 基本的语法语意之外,更重要的是去检查设置的合理性、CDC 和RDC.  这部分内容今天不展开。

常用的SDC 命令按照目标可以分为:Unit, System interface, Design rule, Timing constraint, Timing exceptions, Logic assignments. 具体命令参见下表.

Typecommand
Unitset\_unit
System interfaceset\_drive
set\_driving\_cell
set\_input\_transition
set\_load
Design ruleset\_max\_capacitance
set\_max\_fanout
set\_max\_transition
set\_min\_capacitance
Timing constraintcreate\_clock
create\_generated\_clock
group\_path
set\_clock\_gating\_check
set\_clock\_groups
set\_clock\_latency
set\_clock\_sense
set\_clock\_transition
set\_clock\_uncertainty
set\_data\_check
set\_disable\_timing

set\_input\_delay
set\_output\_delay
Timing exceptionsset\_false\_path
set\_max\_delay
set\_min\_delay
set\_multicycle\_path
Logic assignmentsset\_case\_analysis

此处不展开写每个命令怎么定义,可以去翻SDC 的文档,或翻其他自媒体写的SDC 文章查阅。从油管上抓了一些示例,贴到这里,有兴趣的可以一看。

2.jpg

3.jpg

4.jpg

5.jpg

666.jpg

7.jpg

7_revised.png

8.jpg

999.jpg

101010.jpg

11.jpg

121212.jpg

13.jpg

14.jpg

15.jpg

16.jpg
17.jpg

综合工程师,要对每一条SDC 的设置方式跟设置目的都十分清晰:

  • unit 是可选的,如果没有设置unit 大部分工具会从读入的第一个libary 中抽取对应的unit.
  • Driving cell 通常会选一个不大不小的buffer 比如X4 的buffer. load 如果有经验值就用经验值,如果没有可参考不大不小buffer 的输入pin Cap.
  • Design rule 按照代工厂给的signoff 要求设置即可。
  • Timing Constraint 是关键部分,要清楚每个clock 定义对应的电路结构,要清楚所有clock 之间的关系, 要能根据clock 的定义大致抽出clock 结构,要明确uncertainty 需要覆盖哪些因素,要能根据当前flow 调整对应的过约策略,要明确设计中有哪些combinational 的cell 需要做gating check, 要明确哪些逻辑需要做data check, 要明确哪些timing arc 需要disable 掉,要明确input delay 跟output delay 设成多少才『恰当』。
  • Timing exception 跟设计本身息息相关,如果设计中有exception 一定要跟designer 反复确认,要勇于质疑。其中,multicycle 尤其要特别注意,在电路中一定要有对应的『计数逻辑』才可以设,设了setup 的multicycle 要知道如何设置hold 的multicycle.
  • set\_case\_analysis 通常用于工作模式的选择,要明确每种模式下能disable 掉和不能disable 掉的逻辑。

SDC 可简单可复杂,通常CPU, GPU 的SDC 都较简单,高速接口的SDC 都较复杂,不论什么样的设计,拿到设计跟SDC 之后尽量先做SDC 检查,在SDC 干净之前的任何综合都只能算『青春期的呻吟』——没用!

除了专门的SDC 检查工具,综合工具都有检查SDC 的命令,这一步一定要做,要把报出来的所有信息都过一下,有任何疑问找desinger 确认!

18.jpg

作者:陌上风骑驴
原文链接:https://mp.weixin.qq.com/s/xDGosZlBpx1GR0jxkN-zOw
微信公众号:
陌上风.jpg

相关文章推荐

更多IC设计技术干货请关注IC设计技术专栏。
2 阅读 453
推荐阅读
0 条评论
关注数
2448
内容数
621
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
Arm中国学堂公众号
关注Arm中国学堂
实时获取免费 Arm 教学资源信息
Arm中国招聘公众号
关注Arm中国招聘
实时获取 Arm 中国职位信息