想成为数字IC时钟树综合(clock tree synthesis)专家,建议好好看看这个

想成为数字IC时钟树综合(clock tree synthesis)专家,建议好好看看这个!

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

时钟的定义

时钟是同步工作系统的同步节拍。它是用来指挥保障 SOC 中各种功能模块,比如 CPU,GPU,DRAM 控制器,GPIO 等的正常工作。那么何为同步工作系统或者同步电路?概括起来就是不同源一定异步,同源可以不是同步(同源大部分是同步)。

史上最全的数字 IC 后端设计实现培训教程(整理版)

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

时钟源

无论你是从事数字 IC 前端或者是从事 IC 后端工作,你都需要搞清楚,芯片中的时钟是如何获取以及如何供应给各个功能模块。

  • 外部直接输入时钟信号

这种情况比较少见。由于 SOC 系统中不同功能模块工作的频率不一样,因此从外部直接拉时钟信号进芯片,不具备可行性。对于某些特别简单的 ASIC 芯片,可能有机会用到这种方案。

  • 外部晶振 + 内部时钟发生器

这种方案是从外部晶振引入 IO,与内部时钟发生器产生一个 24MHz 时钟信号,然后供给各种功能模块。

  • 外部晶振 + 内部时钟发生器 + 内部 PLL 产生高频时钟 + 内部分频器得到各种频率的时钟

这种时钟获取方式是目前 SOC 芯片设计实现中普遍采用的时钟产生方案。这个方案的整体思路是先从晶振,时钟发生器产生一个 24MHz,再经过 PLL 产生倍频时钟(高频时钟),最后再经过分频电路产生各种频点的时钟供给各个功能模块。说到这里,吾爱 IC 社区小编留一个思考题给大家。为何不直接从外部晶振产生高频时钟,供给 SOC 使用呢?

SOC 系统中时钟系统结构

无论是多大规模的 SOC 芯片,其时钟系统结构都与下图所示类似。在低功耗设计实现中,还需要考虑采用 clock gating 技术,即通过 ICG 来控制时钟信号是否传输到对应功能模块。图中的 DIV 为分频器,它可以是整数分频器,也可以是小数分频器。

浅谈数字 IC 低功耗设计的若干种低功耗设计方案

如果碰到 PLL 倍频出来的时钟频率经过整数分频器后无法获得某个模块的工作频率,则需要采用小数分频器。小数分频器的前端设计相比整数分频要复杂点,但是从数字 IC 后端实现的角度看,没有什么大区别(数字 IC 设计面试经常会问到小数分频器的实现方法)。

  • PLL 数量

从本案例时钟结构图中,得知该 SOC 芯片采用了四个 PLL,分别是 APLL,MPLL,EPLL 和 VPLL。由于 PLL 的面积还比较大,我们在芯片中当然是使用的越少越好,毕竟面积就是白花花的银子。那么,为了节省芯片成本,在时钟结构规划阶段就需要先对整个芯片中的各大功能模块的时钟频率需求进行统计,设计分频器,最后计算出 PLL 的数量。

  • PLL 位置

在数字后端实现中,PLL 的摆放位置直接决定了时钟树的长度—clock tree latency。PLL 位置的摆放需要先理解各路时钟的复用关系,PLL 倍频后的时钟都要供给哪些功能模块以及这些功能模块的位置等。我们都知道衡量时钟树质量的两大指标是clock tree latency 和 clock skew。如果 PLL 位置不合理,很有可能会把整个芯片的时钟树拖得很长。

时钟树综合(clock tree synthesis)基础篇

数字后端设计实现之时钟树综合实践篇

如果时钟树长度太长,有哪些弊端呢?这个问题的答案,小编已经在公众号和知识星球上分享过很多次了,如果你还不是很懂,可以再翻翻以前的文章或者知识星球问答。

一网打尽时钟树综合 Clock Skew

  • 时钟树约束文件编写

很多数字 IC 后端工程师都觉得做时钟树综合只要设置好参数,就可以让工具自己 build clock tree。如果你是这么认为的,有两种可能性。一种是你们的时钟设计很简单,可能就一两个时钟。另外一种是你们的设计 timing 要求很松,你们压根就没关心过时钟的长度。

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

一般情况下,中等规模及以上的 SOC 芯片的时钟树综合,都是需要编写时钟树约束文件。因为时钟太多了之后,工具处理起来比较费劲,特别是当一堆时钟进行 mux 操作后,工具经常还会把 tree 做的很长。工具之所以做起来费劲,之所以做不好 tree,主要原因还是时钟结构相对复杂,其复杂程度已经超出它的能力范围了。

如果我们能够对时钟结构进行拆分,把时钟结构很清晰地告诉工具,那么它还是能够做的非常漂亮的。当然这个前提是你要理清楚整个芯片的时钟结构。

画时钟结构图和写时钟约束文件都是数字 IC 后端工程师必备的一项工作技能,当然也是一项非常核心技能。如果这项技能能够很好的掌握,那么整个数字 IC 后端设计实现,还有比这更难的吗?

当你拿到一个 design,你应该要能画出像上图所示的时钟结构图。有了这个图之后,写个时钟约束文件,那是水到渠成的事情。

这里结合本文的案例,简单解析下如何写时钟约束文件。

首先,可以把整个芯片的时钟路径分为三部分。第一部分是晶振—-> PLL,第二部分是 PLL—-> CLOCK GEN,第三部分是分频器输出——-> 各个功能模块。

其次,搞清楚 CLOCK Gen 模块是用来产生各种分频时钟信号的,它本身并不会直接与其他逻辑进行一个交互。因此,该模块内的寄存器都和别人是异步的。如果把 CLOCK GEN 内部的寄存器和各功能模块的寄存器进行同步,会有什么后果呢?另外各个 PLL 出来的时钟一定是异步的。

最后,再整理下各个时钟路径的终点和 clock exception,比如 floating pin,exclude pin,non-stop pin,断开一些不需要穿过 mux 的时钟等等。

如何成为时钟树综合专家?原来你也可以!

好了,关于数字 soc 时钟系统结构以及时钟树综合约束编写的相关内容就分享到这里。如果你对文章内容有任何疑问,欢迎前往小编的知识星球,进行提问。更多关于时钟树综合的干货(主要内容会分享到知识星球上),后续会不断更新,敬请期待!

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

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

  • ICC/ICC2 lab 的编写

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

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

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

  • 时钟树结构分析

  • 低功耗设计实现

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

吾爱 IC 社区知识星球星主为公众号” 吾爱 IC 社区” 号主,从事数字 ic 后端设计实现工作近八年,拥有55nm,40nm,28nm,22nm,14nm等先进工艺节点成功流片经验,成功tapeout 过三十多颗芯片

这里是一个数字 IC 设计实现高度垂直细分领域的知识社群,聚集了无数数字 ic 前端设计,后端实现,模拟 layout 工程师们。

在这里大家可以多建立连接,多交流,多拓展人脉圈,甚至可以组织线下活动。在这里你可以就数字 ic 后端设计实现领域的相关问题进行提问,也可以就职业发展规划问题进行咨询,也可以把困扰你的问题拿出来一起讨论交流。对于提问的问题尽量做到有问必答,如遇到不懂的,也会通过查阅资料或者请教专家来解答问题。在这里鼓励大家积极发表主题,提问,从而促进整个知识社群的良性循环。每个月小编会针对活跃用户进行打赏。

最重要的是在这里,能够借助这个知识社群,短期内实现年薪百万的梦想!不管你信不信,反正已经进来的朋友肯定是相信的!相遇是一种缘分,相识更是一种难能可贵的情分!如若有缘你我一定会相遇相识!知识星球二维码如下,可以扫描或者长按识别二维码进入。目前已经有277 位星球成员,感谢这277 位童鞋的支持!欢迎各位渴望进步,期望高薪的铁杆粉丝加入!终极目标是打造实现本知识星球全员年薪百万的宏伟目标

欢迎关注 “吾爱 IC 社区

微信号:ic-backend2018

https://mp.weixin.qq.com/s/j0j85jGtHT0I5Z2u-X2vUw

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值