当前位置: 首页 > news >正文

数字IC后端设计实现十大精华主题分享

今天小编给大家分享下吾爱IC社区星球上周十大后端精华主题。

Q1:星主,请教个问题,长tree的时候发现这个scan的tree 的skew差不多400p,我高亮了整个tree的schematic,我在想是不是我在这一系列mux前边打断,设置ignore pin,后边create_clock那是不是就可以做平这个tree?

复杂时钟结构设计trace

数字IC后端实现时钟树综合系列教程 | Clock Tree,Clock Skew Group之间的区别和联系

你如果不做任何处理,所有的sink点都会做平的,即clock skew不会这么大。只不过clock tree长度会比较长而已。你这个case需要分析几个mux的另外一个输入时钟是什么?能否mux输入端设置ignore,取决于mux前后的寄存器是否有时序交互。如果没有,是可以这么做。否则就不行。

像下面这两个典型时钟结构,我们就需要对选择器的各个输入端做处理。比如第二张图所示的无毛刺时钟切换电路,该电路最后一级的输入端和输出端需要分别定义sink type和create_clock,否则整体clock tree会做得很长!

在这里插入图片描述

Q2:星主你好,我想请教一下create_clock 和create_gerated_clock 的sink 是否要做平问题。我看网上一些说法:create_clock 和create_gerated_clock 的sink 因为同属于一颗clock tree,会默认做平,电路图如下:

create_clock和create_generated_clock

我觉得是不会做平,理由如下:

  1. create_clock 和create_gerated_clock 的spec 会产生不同clock tree,这是属于不同clock tree了,并且还产生不同的skew group。

2)我在innovus gui和命令确认了 DFF1和DFF2的clock skew 是远远大于我设置cts_target_skew的(如果是做平,理论DFF1和DFF2的skew 应该与我cts_target_skew差异不大)。并且确认了cts spec 没有mopdify_ccopt_skew_group -add_ignore_pins 命令把我DFF1/CK, DFF2/CK给ignore 掉。星主,请问一下,我想法是对的吗?

如果是在分频寄存器输出定义generated clock,效果如下图所示。FF1和FF2肯定会比较balance的。因为FF2这路多出一颗寄存器CK-Q的delay,所以FF1这路clock path上工具会插不少clock inverter的。

在这里插入图片描述

如果是在分频器输出create_clock,那么效果图如下图所示。FF1和FF2都在各自的clock tree上,skew一定比较大。FF1只会和分频寄存器做balance。

在这里插入图片描述

innovus时钟结构报告

Innovus clock tree structure报告

你的时钟结构图我帮你画出来了(clock mux的B端 你也可以进一步完善)。正常是要做clock balance的。这个需要将clock spec文件中这两颗寄存器相关信息截图看下,确认工具是否有对这两个点做了一些特殊处理。

另外我建议你单独做下ccopt_design -cts 然后再分析下。做tree之前记得把这个设置设上。正常后端实现流程不要把CTS和postCTS两个阶段合并一起做!

set_ccopt_property extract_clock_generator_skew_groups false

在这里插入图片描述

Q3:星主你好,想总结一下 timing report中 incr 延时后的特殊符号的意义。我了解到 * 代表工具抽的sdf延时,请问空白或其他特殊符号(如 # )代表了哪些意思,感谢!

在这里插入图片描述

一张图搞定这个问题。PT时序signoff看到的report中只能是真实RC反标&,其他任何符号都是错的。只要是咱们社区IC训练营学员的,这个肯定非常熟悉,每次时序signoff分析pt时序报告都会讲到这个。

PrimeTime RC反标符号具体含义

数字IC后端笔试面试题库 | 经典时序计算题

Q4:Memory是否可以摆放在core区域和timing path合理性问题

  1. 图中所示的timing path是否合理?为什么?如何做优化?

2)Memory是否可以摆放在core区域中间?把memory摆放在core区域的利弊分别是什么?

timing path时序路径合理性案例分析

Q5:星主,最近做的项目遇到了IR问题 有个违例点在buffer v10上,这个bufferv10驱动的是长线 200多um 领导的让在长线中间插个buffer 后面也解掉了,请问这是什么原理?

线短了单个buf负载变小,对应电流会变小,新加的buf在不同位置,原先位置的iavg会变小,所以对ir drop确实有点收益。

包括把cell驱动变小或换成阈值电压更高的cell,其实也是可以改善ir drop的。

数字IC设计后端实现前期预防IR Drop的方法汇总

Q6: TSMC28nm 1P8M Powerplan设计规划问题

在这里插入图片描述

Q7: 星主,问一个有趣的事情,同一个db,同样的命令,为啥nworst 1我这里报只有一个slack,同事那儿就变成三个了?

在这里插入图片描述

你们当前active的analysis view数量不一致哦,这个还是非常明确的。不能view下slack是不太一样的。

最后发现是有个同学在flow中将如下变量设置成true了,改成false就一模一样了。

set_global timing_report_group_based_mode true

Q8:星主,想问一下,设计存在mem2cgate的path,invs有啥命令让icg靠近mem摆放吗,或者这类path如何优化timing呢?

一般memory相关的ICG我们都是建议手工摆放好位置,fixed住。优化到ICG enable的timing path,我们主要有以下几种方法。

1)placement阶段设置更大的clock gating check

2)使用early clock flow,在placement阶段提前看到ICG和寄存器memory之间的天然skew

3)综合阶段和PR阶段控制fanout(可以改善timing)

  1. power aware的clock gating cell placement

在这里插入图片描述

甚至我们如果想精细化调timing和clock tree,我们还需要manual place这些ICG clock gating cell和相应的寄存器。

Q9: 星主,请教个问题,harden做lvs check结果如下图,extract open是我给harden打的text,分别为m5的VDDI,m7的VDD,我去掉text我lvs会fail,不去掉的话我这儿显示open,在top(hell)上也能显示出来open,所以我这儿的open究竟算不算真错?另外我给top出gds前还需要打text吗?

Calibre LVS gds抽取警告问题

模块内部M5没有连成一个整体导致的。顶层在模块盖上高层的pg后就没问题了。你给top出gds不需要打text的,因为你出模块lef给顶层了,顶层可以看得到你模块内部高层PG的。

Calibre GDS抽取报告解读

Q10: Calibre插dummy后对时序和IR Drop的影响?

Calibre dummy insertion对timing的影响

http://www.lryc.cn/news/511051.html

相关文章:

  • 高质量配音如何影响游戏的受欢迎度
  • QWidget应用封装为qt插件,供其他qt应用调用
  • UE(虚幻)学习(四) 第一个C++类来控制小球移动来理解蓝图和脚本如何工作
  • 使用FreeNAS软件部署ISCSI的SAN架构存储(IP-SAN)练习题
  • Sql Sqserver 相关知识总结
  • 面试题整理17----K8s中request和limit资源限制是如何实现的
  • Spring Boot @Conditional注解
  • jpeg文件学习
  • c++基于过程
  • FOC软件 STM32CubeMX 使用
  • leetcode hot 100 全排列
  • 使用qrcode.vue生成当前网页的二维码(H5)
  • 0055. shell命令--useradd
  • blender中合并的模型,在threejs中显示多个mesh;blender多材质烘培成一个材质
  • vue 本地自测iframe通讯
  • C++:单例模式
  • SOME/IP 协议详解——信息格式
  • C# GDI+数码管数字控件
  • 在交叉编译中,常见的ELF(elf)到底是什么意思?
  • Unity开发AR之Vuforia-MultiTarget笔记
  • 深入解析 Oracle 的聚合函数 ROLLUP
  • Wend看源码-Java-集合学习(List)
  • 【软件】教务系统成绩提交工具使用步骤
  • IPsec协议,网络安全的秘密
  • 浅谈下Spring MVC的执行流程
  • khadas edge2安装ubuntu22.04与ubuntu20.04 docker镜像
  • GitLab 服务变更提醒:中国大陆、澳门和香港用户停止提供服务(GitLab 服务停止)
  • 主成分分析是线性降维方法
  • Webpack在Vue CLI中的应用
  • 继承超详细介绍