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

数字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.kler.cn/a/452909.html

相关文章:

  • AI无人直播详解
  • 【ANGULAR网站开发】初始环境搭建
  • spring专题笔记(六):bean的自动装配(自动化注入)-根据名字进行自动装配、根据类型进行自动装配。代码演示,通俗易懂。
  • 【C++】19___set / multiset 容器
  • 【LuaFramework】服务器模块相关知识
  • Unity3D Huatuo技术原理剖析详解
  • 【数据科学导论】第一二章·大数据与数据表示与存储
  • 如何不让场景UI受后处理影响
  • k-Means聚类算法 HNUST【数据分析技术】(2025)
  • 宝塔面板跨服务器数据同步教程:双机备份零停机
  • centos7 下使用 Docker Compose
  • Git工作流的最佳实践
  • flask后端开发(1):第一个Flask项目
  • stm32制作CAN适配器5--WinUsb上位机编写
  • SpringBoot 整合Web开放
  • 推动开源数据生态:SeaTunnel ByConity技术沙龙精彩回顾
  • Qt 的信号槽机制详解:之信号槽引发的 Segmentation Fault 问题拆析(上)
  • Linux高级--2.4.1 网络概念(分层、TCP)
  • webpakc介绍
  • 一个从oracle使用spool导出数据到kadb的脚本
  • 基于Springcloud的智能社区服务系统
  • 浅谈Java注解之ResponseBody
  • CentOS7-yum服务器的搭建
  • Pytorch详解 train() 和 eval() 模式会影响Layer Norm吗?(中英双语)
  • 无人机之惯性导航概述!
  • 【ES6复习笔记】Map(14)