文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点。点击进去后出现任何损失与社区无关。
又到周末了,吾爱 IC 社区小编今天给大家分享几道非常经典的数字后端面试问题,这些题目摘选自小编知识星球上。希望今天的分享对大家的工作有所帮助。
2019 年数字 IC 后端校招笔试题目(附数字后端培训视频教程)
史上最全的数字 IC 后端设计实现培训教程(整理版)
1. 匿名用户提问:大佬,可以讲一下 CCD 吗?看资料说 CCD 可以同时优化时钟路径和 data 路径,那平时我们用的普通优化是只能对 data 路径做优化吗?看网上有人说,CCD 的效果有点像工具自己使用 useful skew 来修时序的违例,如果 CCD 的效果这么好,为什么不默认把它打开?还是它有什么缺点呢?什么阶段可以打开 CCD 来修时序上的违例呢?菜鸟一个,望大佬不吝指教。
【解析】CCD 全称为Concurrent Clock And Data。它是指工具在优化 timing 时既可以动 data,也可以动 clock。传统的 timing 优化仅仅是对 data 进行,而 clock tree 上的 cell,比如 ICG,clock inverter 都被 mark 成 clock 属性。CCD 的本质就是充分利用useful skew来达到时序,功耗,面积优化的目的(PPA 优化)。PPA 优化贯穿着整个数字 IC 后端实现全过程,希望大家能够彻底研究清楚各种优化的手段。
CCD 的效果确实能够带来 PPA 实质性得收益,这是小编这么多年试验出来的结论。既然 CCD 效果挺好的,为何工具不默认打开呢?无论是 Synopsys 或者 cadence 的工具,feature 既然存在基本上都有它的道理(存在即合理)。
因此既然工具并没有默认打开 CCD 的开关,我们就应该认真思考打开 CCD 的负面影响是什么?我们在对待一个新事物时,应该先全面了解它的工作原理,然后分析它的优劣势,最后充分利用其优点来为我们服务。
对于用 CCD 的缺点,这里简单提一下。主要从clock tree latency,setup 和 hold这三个维度来考虑。CCD 这个 option 理论上是可以应用在数字 IC 后端布局布线全过程,但是在实际项目应用中还是有很多细节值得大家去深挖。
限于篇幅,更多关于利用 CCD 优化 timing 和 CCD 应用的注意事项,请移步小编的知识星球。
2.cmc 提问:请问星主设计中有 7 个信号它们的 fanout 都是 648,现在我想把这 7x648 个 fanout 都 balance 的很好,也就是它们之间的 skew 很小。现在我是在这 7 个信号输出点上 build clock tree 然后把这些 648x7 个 fanout 当作 clock sink 点。然后设置了一些约束大概 100ps 的 target skew。但是工具做出来的效果不好特别是绕完线后 skew 会变得更差,请问有什么好的方法把 skew 做的很小呢,怎么避免绕线后 skew 变差?
【解析】这些问题其实是非常典型的数字 IC 后端面试问题。如果你才参加工作,或者刚工作一年左右,可能还不是很懂这方面的知识点。对于工作经验超过两年的工程师来说,这些问题应该是不难的。毕竟这些问题都是实际项目中经常会碰到的。
解决方法:为了让 7 路信号之间的 skew 最小,可以分别创建 7 路时钟,通过 create_clock 来实现。由于 create_clock 后的七路时钟属于异步关系,工具在 build clock tree 默认是各自长时钟树,它们之间的 skew 无法控制。因此,我们需要把这七路时钟做 clock inter-balance,从而达到 skew 最小的目的。
为了使 skew 最小,还需要将这七路信号到各自 fanout 路上的逻辑,比如 mux,nand 等组合逻辑做 magnet placement。
数字 IC 后端设计实现中 Magnet placement 详细用法
由于绕线后存在 crosstalk,skew 变大是蛮普遍的一个现象。为了避免绕线后 skew 变大现象,可以通过对这些 net 设置cts_ndr,甚至做clock shielding(必要时)。
时钟树综合 (Clock Tree Synthesis) 之前应该做好哪些工作?
数字后端设计实现之时钟树综合实践篇
3. 匿名用户提问:大佬,问一下如果 drc 没有动版图,label 什么的都打好了,icc 中 verify lvs 也过了,理论上 lvs 是不是一定能过?在这种情况,如果 lvs 过不了,报了 incorrect net,可能的原因是什么?
【解析】很多数字后端工程师反映 LVS 很难,LVS report 都看不懂,更不懂如何 debug 和 trace 到 incorrect 的点。其实对于模块级来说,LVS 是非常简单的。而对于整芯片 top 来说,可能稍微要复杂一些,毕竟涉及到 IP,IO 和子模块的处理。
在项目前期,我们往往不会每个版本都导出 gds 到 calibre 中做 LVS 检查。那么我们如何在 ICC 或者 ICC2 中来做 LVS 检查呢,而且要确保 PR 工具检查的结果一定是正确的呢?
只要满足下面两点,PR 工具检查结果一定与物理 signoff 工具 calibre 检查结果是一致的。
这步主要检查 PG 是否存在 floating,比如某些 cell 未供上电的情况。
这步主要检查 layout 中是否存在short 和 open的 net,含 pg 和 signal net。这步默认会对 output floating pin 做检查,但实际上我们是允许 output flaoting 的,因此需要关掉这个功能。在项目 signoff 阶段我们倒是需要对 input floating 进行检查。检查方法可以通过写脚本来实现(知识星球上有检查 input floating pin 的 golden 脚本)。
LVS 检查的法宝
掌握整芯片的 power tree(power domain&voltage domain)结构
Derive_pg 正确
Text 打全打对
LVS 就是这么简单!(数字后端物理验证篇)
小编知识星球简介(如果你渴望进步,期望高薪,喜欢交流,欢迎加入 ****):
在这里,目前已经规划并正着手做的事情:
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 后端设计实现领域的相关问题进行提问,也可以就职业发展规划问题进行咨询,也可以把困扰你的问题拿出来一起讨论交流。对于提问的问题尽量做到有问必答,如遇到不懂的,也会通过查阅资料或者请教专家来解答问题。在这里鼓励大家积极发表主题,提问,从而促进整个知识社群的良性循环。每个月小编会针对活跃用户进行打赏。
最重要的是在这里,能够借助这个知识社群,短期内实现年薪百万的梦想!不管你信不信,反正已经进来的朋友肯定是相信的!相遇是一种缘分,相识更是一种难能可贵的情分!如若有缘你我一定会相遇相识!知识星球二维码如下,可以扫描或者长按识别二维码进入。目前已经有245 位星球成员,感谢这245 位童鞋的支持!欢迎各位渴望进步,期望高薪的铁杆粉丝加入!终极目标是打造实现本知识星球全员年薪百万的宏伟目标。
目前星球进入快速发展期,已经拥有 245 人了。小编今天立个 flag,如果今年星球人数超过 500 人,星球内部发5000 元红包 + 微信群发 1000 元红包 + 国内旅游卡若干张。 如果今年真的能突破 500 人,那么我们这个社区一定会是数字 IC 行业最大最高端的技术交流分享社群。
到时候小编会想办法对接资源,赠送大家更多非常实用的东西,比如书籍,国内旅游卡,下午茶,健身卡等等。反正就是让大家在这里的学习交流过程中也享受到更多的福利待遇。
很多人还是不知道小编这个知识星球开通了 “分享有赏金” 功能。分享主题推荐成功都有现金奖励,可以随时提现到微信的。欢迎大家积极参与! 主要分享途径可以有以下三种方式。
分享主题到朋友圈
分享主题到微信(QQ)群
分享主题给好友
欢迎关注 “吾爱 IC 社区”
微信号:ic-backend2018
https://mp.weixin.qq.com/s/Y0lU2_dTF4YKytFOfssCNg