时钟树综合(Clock Tree Synthesis)之前应该做好哪些工作?

本文介绍了在进行时钟树综合之前需要完成的重要工作,包括正确的时钟定义、标准单元的合法摆放、适度的拥挤度、满足时序要求、处理高扇出网络、友好的floorplan布局以及逻辑分布合理性。强调了理解设计、时钟结构分析和编写约束文件的重要性,并提醒注意时钟源、时钟树异常、mux处理以及时钟平衡等问题。
摘要由CSDN通过智能技术生成

时钟树综合(Clock Tree Synthesis)之前应该做好哪些工作?

文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点。点击进去后出现任何损失与社区无关。

本周小编继续跟大家聊聊时钟树相关的主题,聊聊在做时钟树综合前我们应该做好哪些基础性工作。对于很多还仅仅停留在跑 flow,一切只靠工具的工程师,希望今天的分享对你们有所启发,有所帮助。因为小编时常面过一些小伙伴们,他们都表示仅仅停留在跑 flow 的技术水准(小编真是替你们着急)。如果你的技术仍然处于这个高度,是否应该引起重视?

2019 年数字 IC 后端校招笔试题目(附数字后端培训视频教程)

时钟树基础性工作

  • 时钟定义正确

在时钟树综合阶段,一般我们讲时钟定义是指为了长时钟树而定义的 clock,而非传统意义的 func 时钟定义。小编已经跟大家普及过很多次这方面的知识,对于时钟结构比较复杂的设计,希望通过 EDA Tool 来帮我们长好时钟树,简直就是天荒夜谈,不太现实的。

Clock source 应该是通过 create_clock 或者 create_generated_clock 来声明的。Generated clock 定义的点必须能 trace 到 source 上。

深度解析 Create_clock 与 Create_generated_clock 的区别

  • 标准单元已经正常摆放好

使用 check_legality –verbose 来检查所有标准单元是否 legal 的。如果对一个存在 illegal 的模块进行时钟树综合,其 QoR 会比较差,而且会加倍整个 runtime。

  • Congestion 适度

如果一个模块 placement 做完之后 congestion map 特别差,存在特别大的 overflow,那么基于这样的 database 继续做时钟树综合意义不是很大。一方面是 QoR 会比较差,另外一方面是 cts 后 congestion 会更差,模块本身一定是绕不通的。

数字后端实现时 congestion 比较严重,你 hold 得住吗?

  • Timing 可接受

Placement 后时序要差不多符合设计要求。如果 placement 后 wns 是 500ps 左右,那继续 tune cts 也是没太大意义。因为本身 placement 没做好,即标准单元的摆放位置并不是很合理。此时应该返回 place 阶段,进一步 fine tune timing。

  • DRV(Max transition Max capacitance) 可接受

  • Power &Ground net 已经 prerouted

  • 高扇出的 net,比如 scan 使能端,已经解过 fanout(时钟树综合后存在特别大的 max transition 问题)

  • floorplan 是否对时钟树友好

比如细长条 memory 之间的 channel,未进行特殊处理。这种情况,如果 reg 被摆放进去,很有可能导致比较大的 clock skew 或者拖长 clock tree。

【机密】从此没有难做的 floorplan(数字后端设计实现 floorplan 篇)

如何评价数字后端设计中 floorplan 的好坏?

  • Placement 后逻辑分布合理

比如某个 ICG 所带的寄存器分布在天南地北,试问这样的 placement 能否做好时钟树?关于如何将 icg 所带的 sink 聚集在 icg 附近的脚本,请移步知识星球查看下载。

时钟结构分析

小编一直强调做时钟树综合前需要分析时钟树结构,不是说着玩的,实在是因为它太重要了。想要做好时钟树,仅仅需要做好三点。第一,了解设计。第二,时钟结构清晰。第三,编写时钟树综合约束文件。

对于设计的理解,需要同前端工程师多沟通。

分析时钟结构后,最好画出时钟结构图,并搞清楚以下几个问题。这些问题都搞清楚后,写一个引导工具长 tree 的时钟约束文件是水到渠成的事情,只能说 so easy。

合理的时钟结构能够加速 Timing 收敛(时钟树综合中级篇)

  • 时钟的 root

  • Clock 的 sink 和 clock tree exception

  • 时钟路径上是否存在 mux 切换电路,各路时钟应该如何长 tree?如何写 cts constraint 来让工具自己长好 tree?

留个思考题。假如 CK1 为 func clk,CK2 为 scan clock,对于下面的电路,时钟树会怎么长?假如 CK1 为时钟,CK2 为 data,做时钟树前要作何处理?

  • 各个时钟 clock(含某些 data 需要做 balance 的)之间是否有需要做 clock inter-balance?

最后,小编用一句话来总结下时钟树综合工作的主要要点。时钟(它们)从哪里来,它们要去哪里,它们之间有何联系?

小编知识星球简介(如果你渴望进步,期望高薪,喜欢交流,欢迎加入 ****)

在这里,目前已经规划并正着手做的事情:

  • ICC/ICC2 lab 的编写

  • 基于 ARM CPU 的后端实现流程

  • 利用 ICC 中 CCD(Concurrent Clock Data)实现高性能模块的设计实现

  • 基于 ARM 四核 CPU 数字后端 Hierarchical Flow 实现教程

  • 时钟树结构分析

  • 低功耗设计实现

  • 定期将项目中碰到的问题以案例的形式做技术分享

在这里,各位可以就公众号推文的内容或者实际项目中遇到的难题提问,小编会在 24 小时内给予解答(也可以发表你对数字后端设计实现中某个知识点的看法,项目中遇到的难点,困惑或者职业发展规划等)。

反正它是一个缩减版的论坛,增强了大家的互动性。更为重要的是,微信有知识星球的小程序入口。星球二维码如下,可以扫描或者长按识别二维码进入。目前已经有139星球成员,感谢这 139 位童鞋的支持!欢迎各位渴望进步,期望高薪的铁杆粉丝加入!终极目标是打造实现本知识星球全员年薪百万的宏伟目标。(星球的门票即将调整到 228 元 / 年,有需求的朋友趁早上车,**目前价格已经提高至 208 元 / 年,折算每天需要六毛钱 **)

点击下方 “阅读全文” 了解更多

https://mp.weixin.qq.com/s/gHrkhtoMjea8PJpZ2NnaeA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值