项目后期踩到这些坑,原来可以这么简单处理!(数字后端实现救火篇)

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

最近一直在帮同事解决各种问题。由于临近项目后期,所以很多问题的解决方法并不能只是告诉他们调整 flow,重新跑 flow。有几个问题也是比较常见的问题,大家或多或少可能都遇到过。今天小编挑选几个主题,做一个简单的分享,也算做个简要的归纳,希望对大家能够有所启发。

Power off 模块输出端未设置 dont_touch

大家都知道,对于一个可以 powerdown 的模块,其输出是不可控的。所以需要在其输出端添加 Isolation cell,将其 clamp 为 0 或者 1,保持一个稳定的状态。

在数字后端实现时,需要将 Isolation cell 的输入端与 powerdown 模块的输出直连,确保中间没有 buffer。为了实现这个目的,可以通过将 Isolation cell 的输入端设置为 dont_touch。

另外,还需要将这类 Isolation cell 摆放在 port 门口。目的是确保 powerdown 模块的输出端与 Isolation 输入端的距离足够近,没有 transition 问题。具体实现方法可以通过magnet placement 来实现。

这些低功耗设计实现经验,你真的懂了吗?

那如果碰到比较粗心或者经验不足的数字后端工程师,他们在实现时并没有注意或者遗漏这些问题,导致在 powerdown 模块的输出端加了 buffer(输出端的 port 有上千个),而且此时已经是项目后期,没有足够时间重新跑 flow。那么应该如何解决呢?

解决方法其实很简单,完全不需要重新跑 flow,甚至都不需要去挪 isolation cell 的位置。只需要做一个简单的 ECO即可。将 power down 模块的输出的 net 断开,和 Isolation cell 的 input pin 连接起来,再把 Buffer 连接到 Isolation cell 后面即可。

时钟树重要技能

小编也是很好奇,为何很多三四年甚至工作年限更长的数字后端工程师,对于复杂时钟结构的时钟树综合仍然摸不着头脑?真的有那么难吗?显然没有。

数字后端工程师必须掌握的时钟树综合的技能

理清时钟树结构,并画出时钟结构图。这点小编在公众号分享时钟树综合相关分享时,每次都要提到,可是真正会的人可能并不多。

编写长时钟树的 constraint。有了时钟结构图后,我们就可以写 cts constraint,这个 constraint 是用来引导告诉工具如何长时钟树,即告诉工具某个 clock 的 root 点在哪里,sinks 是哪些,哪些 clock 是要做同步的,哪些 clock 是需要做 inter-balance 的,各个 mode 下时钟如何长 tree 等。

这个 constraint 真心不难写 。不外乎就是 create_clock create_generated_clock set_clock_group 以及设置一些 exception。这些命令估计没有一个人不会的。只要你理清了时钟结构,还是很容易可以写好的。下图为一个复杂时钟结构电路中最简单的一个分支,大家看看应该如何写 constraint?

其实理清时钟树结构,编写 cts constraint 这项工作,完全可以说这个是数字后端工程师最核心的一项技能,没有之一。而且也是数字后端实现整个环节中最具技术含量的一项工作。对于一个复杂时钟结构的设计,如果你能够很清楚地写出 cts constraint,长出很 “漂亮” 的 clock tree,那么整个数字后端实现还有其他的难点吗?

深度解析 Create_clock 与 Create_generated_clock 的区别

为什么时钟树上要用 clock inverter(min pulse width check)

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

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

Route 后没 short,hold fixing 后存在 short

有的数字后端工程师做事情就是不够认真。比如拿 route 后的数据进行了一轮 hold fixing 后,发现没有 short,以为就万事大吉了,不再做后续的 hold fixing 了(评估阶段)。等最后拿到 final netlist,进行 final run 后发现 hold fixing 会引入大量的 short。主要原因有以下几点:

  • 前期 hold fixing 评估所用的 corner 不全

前期评估 hold 所用的 corner 比较少,所以 hold 数量偏少。后期将所有 corner 都考虑进去后,发现 hold buffer 太多,从而导致 route 出现 short。

  • Local clock skew 偏大,导致 hold violation 较大。

Clock skew 比较大,说明 tree 长的不平。虽然 setup 可能是 meet 的,但是两个 clock tree latency 差距比较大的寄存器进行 hold check 时,很容易出现较大的 hold violation。所以在局部区域需要插入特别多的 hold buffer,这样就容易出现 short。

一网打尽时钟树综合 Clock Skew

  • Local cell density 太高,出现局部区域 density 为 100% 的情况

这种情况其实还是蛮常见的。虽然局部区域 cell density 已经达 97-100%,但是 route 和 timing 都是 OK 的。所以,很多初级后端工程师误以为这不是潜在的地雷。其实这是非常危险的,如果碰到这种情况,不做特别处理,后期 hold fixing 和解 route 问题都是非常棘手和痛苦的一件事。

所以,小编一直反复强调每个 stage 都需要查看 congestion map,cell density map 和 pin density map。这绝对不是为了好玩哦。

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

动态 IR Drop 偏大

  • 在高翻转模块中预先插入 decap cell

通常情况高翻转模块,也是 design 中 timing 比较紧的地方。在该区域预先插 decap cell 可能会导致 timing 变差。因此,插 decap cell 的方式就显得尤为重要。主要围绕两个原则,一个是 timing 所受的影响较小,在可接受范围之内,第二是 decap cell 要足够多,足以改善 IR Drop issue。

  • 减少 power switch cell 的电阻

特别是对于需要做 power domain 的模块,更容易出现 IR Drop 问题。由于 Power switch 本身电阻较大,Global VDD 到 Power switch 就存在一定的压降,这个压降比例值往往能占到 1.5%。所以,如果能够定制一款低电阻值的 power switch cell,岂不是一种很好的解决方法。

  • 利用高层金属来画 power

高层金属比较宽,比较厚,所以电阻值相对较小。所以通常都是用高层厚金属来打 power。

  • 加密 power mesh

对于项目后期发现的动态 IR Drop 问题,可以从 Redhawk 结果中分析找出压降比较大的点,然后在该区域局部加密 power 的密度。

IR Drop 分析之 Redhawk 分析流程

小编知识星球简介:

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

  • ICC/ICC2 lab 的编写

  • 基于 ARM CPU 的后端实现流程(已经发布)

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

  • 基于 ARM 四核 CPU 数字后端 Hierarchical Flow 实现教程(准备中)

  • 时钟树结构分析(规划中)

  • 低功耗设计实现(规划中)

  • 定期在星球布置作业题(星球已经支持布置作业功能)

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

反正它是一个缩减版的论坛,增强了大家的互动性。更为重要的是,微信有知识星球的小程序入口。星球二维码如下,可以扫描或者长按识别二维码进入。目前已经有十五 **** 星球成员,感谢这四十五位童鞋的支持!欢迎各位铁杆粉丝加入!终极目标是打造实现本知识星球全员年薪百万的宏伟目标。 (星球的门槛将会越来越高,有需求的朋友趁早上车)****

相关文章推荐

想要彻底掌握 placement 各种技巧,这个一定可以如你所愿!

IC 自媒体访谈:吾爱 IC 社区

教你轻松玩转天线效应 (Process Antenna Effect)

深度揭秘异步复位同步释放原理

数字后端面试问答 No.19-21(每日三问)

这些低功耗设计实现经验,你真的懂了吗?

Lockup latch 的用法,看这个就够了!

深度解析 Create_clock 与 Create_generated_clock 的区别

盘点数字后端设计实现用到的各种文件

clock jitter 是否对 hold time 有影响?(文末有福利)

为什么时钟树上要用 clock inverter(min pulse width check)

LVS 就是这么简单!(数字后端物理验证篇)

揭秘为何 net delay 是负值(数字后端实现时序篇)

PBA(Path Base Analysis)想说爱你不容易(静态时序分析基础篇)

一网打尽时钟树综合 Clock Skew

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

【惊呆了!】你居然还在用 flatten 方式进行 timing signoff

数字后端面试问答 No.16-18

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

数字后端面试问答 No.13-15(每日三问)

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

数字后端面试问答 No.10-12(每日三问)

数字后端面试问题 No.7-9(每日三问)

听说 Latch 可以高效修 hold 违例(Timing borrowing 及其应用)

15 天零基础入门到精通 python - 最全的视频教程

数字后端面试问答 No.4-6(每日三问)

IR Drop 分析之 Redhawk 分析流程

CRPR 能补偿 crosstalk 吗?

原来电路最高工作频率是这么算出来的(STA 基础篇)

数字后端面试问答 No.1-3(每日三问)

秒杀数字后端实现中 clock gating 使能端 setup violation 问题

教你轻松调 DCT 和 ICC 之间 Timing 与 Congestion 的一致性

数字芯片设计实现中修复 setup 违例的方法汇总

数字 IC 设计中 ECO 的那些事,其实并不是事!

Scan chain reordering 怎么用你知道吗?

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

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

数字后端实现 place 过程进阶

Final netlist release 前,你应该做好哪些工作?

基于 Physical Aware 的动态功耗优化实现方案

深入浅出讲透 set_multicycle_path,从此彻底掌握它

【大师必备】最全的数字 IC 设计经典书籍电子版下载

你与数字后端大神的差距在这里,快来瞧瞧!

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

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

【福利】数字 IC 后端各种 Userguide 下载

好了,今天的码字就到这里了,原创不容易,喜欢的可以帮忙转发和赞赏,你的转发和赞赏是我不断更新文章的动力。小编在此先谢过!与此同时,吾爱 IC 社区(52-ic.com)也正式上线了。吾爱 IC 社区(52-ic.com)是一个专业交流和分享数字 IC 设计与实现技术与经验的 IC 社区。如果大家在学习和工作中有碰到技术问题,欢迎在微信公众号给小编留言或者添加以下几种联系方式进行提问交流。

https://mp.weixin.qq.com/s/5OeIp2zXJdcbzpZ_T38eTA

项目后期踩到这些坑,原来可以这么简单处理(数字后端实现救火篇)相关推荐

  1. 记:css绘制小猪佩奇的项目及踩过的坑

    下面是我项目的代码和预览链接,觉得项目好看又实用的小伙伴,随手给个star, 您的star是我最大的动力!!! 项目源码 预览链接 移动端实现效果的展示,点击download下载观看 这一项目的主题的 ...

  2. vue-admin项目启动踩过的坑

    小编是一个后端码农,人手不够拉过来做vue.真是坑,大神不要嘲笑- 1.我们使用的vue-admin的项目. 2.准备安装node和nmp: 有两种方法: - 使用node安装包安装: 下载地址: h ...

  3. 配置目标跟踪开源项目traj_gen_vis踩过的坑

    项目地址 https://github.com/icsl-Jeon/traj_gen_vis 安装依赖需注意的问题 traj_gen (with qpoases) 需安装ros分支的代码(这个作者并没 ...

  4. altium中错误报告类型_Python 官方团队在打包项目中踩过的坑

    花下猫语:这是 packaging 系列的第三篇译文,该系列是全网关于此话题的最详尽(水平也很高)的一个系列.原作者是 Python 官方打包团队成员,是 virtualenv 和 tox 项目的维护 ...

  5. 运维专家:我在大数据项目中踩过的那些坑

    一.主要讨论人员 提问:陈超,七牛云技术总监 回答:朱冠胤,百度资深大数据专家,连续两次百度最高奖得主. 二.引言 "坐而论道"是一个轮流问答的玩法.本文是大数据主题周中,几位国内 ...

  6. AWS Device Farm介绍及Appium踩过的坑

    本文记录了在AWS Device Farm上进行Appium TestNG进行手机应用UI自动化测试的流程及遇到的问题,及具体的解决方法.同时记录了使得测试脚本更稳定的一些代码写法. Device F ...

  7. java项目经理也就那么回事_网易PM | 我们之前在需求评审环节踩过的坑...

    原本觉得需求评审也就那么回事儿,大家应该都差不多这么做的,没啥好说的.不过前不久有一位同学问起来我们是怎么做需求评审的,然后发现有一些团队的做法可能还不大一样,他们也还踩着我们之前踩过的坑,他们还在探 ...

  8. 瑞吉外卖项目笔记+踩坑1——基础功能

     导航: [黑马Java笔记+踩坑汇总]JavaSE+JavaWeb+SSM+SpringBoot+瑞吉外卖+SpringCloud/SpringCloudAlibaba+黑马旅游+谷粒商城 目录 1 ...

  9. phpcmsV9-本地项目上线 - 踩坑篇

    phpcmsV9-本地项目上线 - 踩坑篇 使用phpcmsV9框架架构的项目,在本地上传到进行服务器部署的时候,多多少少会遇到一些问题. 这里就常见问题进行简单罗列,以及简单解答. 1. wamp集 ...

最新文章

  1. 构造函数,析构函数,对象连的简单应用
  2. 一次违反常规的Java大厂面试经历,你还看不懂吗?
  3. Android 系统(253)---O版本,用耳机按键控制FM的修改方法
  4. java系列:命令行启动mysql
  5. gettype php,gettype
  6. xshell文件传输乱码_xshell5 显示中文乱码解决方法,远程连接Linux CentOS
  7. 世嘉MD游戏开发进阶篇【二】:C语言实现有限状态机
  8. 计算机的组装与维修的知识点总结,计算机组装与维修教学总结
  9. linux定时任务文件修改,linux 定时任务
  10. php搬家问题,PHPWIND 搬家教程 一看就会
  11. 【总结】计算机网络原理
  12. 为什么买入不了创业版_为什么说不能买创业板?
  13. 什么是透视?什么是一点透视?
  14. nuxt项目当中出现The client-side rendered virtual DOM tree is not matching server-rendered content
  15. “云上贵州”大赛完整诠释大数据三大业态
  16. 软件开发项目计划编制过程(转)
  17. 人工客服为什么总是接不通?
  18. 51单片机多路独立按键开关程序
  19. LSTM做预测遇到的错误总结
  20. 【深度学习实战03】——YOLO tensorflow运行及源码解析

热门文章

  1. hibernate操作Oracle出现违反唯一约束条件
  2. 智能电表MCU需求,及电表芯片厂商排名
  3. 桂电计算机网络试卷d卷答案,计算机网络期末考试试卷及答案模板.doc
  4. 暨大计算机考研要求高不高,暨南大学考研难吗?一般要什么水平才可以进入?...
  5. 如何将iPad投屏到Android安卓平板
  6. 郑州-杰瑞鼠 / 滚动滤波算法
  7. 猿创征文|数据开发也能双轮驱动?
  8. 关于密码和商用密码应用
  9. 极客大学算法训练营_训练营与大学
  10. python程序设计从基础到开发夏敏捷_《Python程序设计——从基础到开发》 夏敏捷 杨关 张慧档 张慎武 宋宝卫 【正版电子纸书阅读_PDF下载】- 书问...