目录

数字IC后端项目典型问题2025.03.10数字后端项目问题记录

目录

数字IC后端项目典型问题(2025.03.10数字后端项目问题记录)

小编发现今天广大学员发过来的问题都比较好,立即一顿输出分享给大家(每天都有好多种类的数字后端问题)。后续可能会经常通过这种方式来做分享。其实很多问题都是实际后端项目中经常遇到的典型问题。希望通过这种方式的分享能够帮助到更多需要帮助的人。

Q1: 在把咱们T28 1P10M metal stack换到1P7M后,发现在floorplan阶段添加endcap cell后,cell直接没有abut在一起,而且endcap cell根本就没摆放在对应的site row上?请问这是什么原因?

https://i-blog.csdnimg.cn/direct/b7ec20d34be744f0b1aa157cbfa9805c.png

主要问题是这两个metal stack中tech lef关于site大小的定义不同。而标准单元却用的是同一套标准单元库。

https://i-blog.csdnimg.cn/direct/6c54b26145f34d2495939678f378f307.png

Q2: 在跑route opt过程中,Innovus工具一直在报如下所示的警告,而且route过程跑了24小时还是一直停留在这个警告位置。请问,为何会出现这个警告,应该如何debug和解决呢?

https://i-blog.csdnimg.cn/direct/f5417b4a955b4045a06780290955f7de.png

Innovus中经常会遇到如下警告。这个警告是在工具做refinePlace阶段发现某些cell无法找到合适位置摆放。工具默认搜索范围是128*Row高度,如果在这个范围内找不到一个合适的位置进行legalize,那么就会报出这个警告。

因此,第一反应就是检查自己的globalNetConnection脚本,并打开innovus数据查看log中所在位置的cell的pg pin逻辑连接是否正确。

经过查看发现的确这些位置的标准单元的VDD PG Pin是连接到Global VDD上的,而当前cortexa7core是做成一个power domain的,它的power rail是VDD_LOCAL。因为无论如何工具都无法找到VDD的power rail,所以自然就找不到合适的位置给这类cell。

https://i-blog.csdnimg.cn/direct/ef38f697ea7348369b6c9391d02ca6f5.png

经过修改后,我们再次通过Design Browser来查看pg pin的逻辑连接,确保无误后继续做route opt即可。

https://i-blog.csdnimg.cn/direct/4653c4ebcaf745d28bed6d993ff37383.png

理论上只要globalNetConnection做的有问题,place阶段就会开始报错的。

https://i-blog.csdnimg.cn/direct/26231f87a0b946f885dbef97d2962322.png

我们经常还会在实际数字后端项目中看到如下所示的ERROR。

**ERROR: (IMPSP-2021): Could not legalize <17> instances in the design. Check warning message IMPSP-270, IMPSP-452, IMPSP-2024, IMPSP-2039, IMPSP-2040, IMPSP-2042 or IMPSP-2020 in log file for more details. Type ‘man IMPSP-2021’ for more detail.

Q3: 下图所示为一条timing path的时序报告图。很多初学者刚开始接触后端都看不太懂这个timing report。请问应该如何看懂这个时序报告并知道当前timing report上的问题呢?

https://i-blog.csdnimg.cn/direct/e70151df97384ca0a049531bdd8ade46.png

首先,我们要具备把一条timing report对应的电路图画出来的能力。当前这条timing path的电路图如下图所示。需要注意的是QA这条high fanout net在timing report中只会显示经过其中一个load pin的情况。

https://i-blog.csdnimg.cn/direct/c7d7e4737e074f7e93fea555fbd279f5.png

其次,在咱们训练营直播课一直强调看timing report的几要素。

1)这是一条setup还是hold的timing报告 (这个从path type是max和library setup time得知)

2)电路工作时钟的周期是多少?timing path的slack又是多少?

3)这条timing path的起点和终点分别是什么?起点和终点对应cell的时钟端是否接到同源时钟?

4)这条timing path的clock skew是多少?本案例的clock skew是1ns。

5)timing path上fanout,transition,cap,incr delay值是否有相比其他点明显异常的点?

顶层Top Hierarchy Flow中的IO时序优化(高端IC后端训练营即将开营啦?)

Q4: 在做T12nm ananke_core powerplan后的pg连接性检查时,由于M9的VDD_CORE是孤立的,在verifyConnectivity时会报所有的VDD_CORE是open的。所以,我们学员就想着通过横向加M10的VDD_CORE来和M9形成power mesh。但是出现了无法成功添加M10的情况,具体如下图所示。

https://i-blog.csdnimg.cn/direct/d658807c417440bdafe1a73ec3c13d54.png

https://i-blog.csdnimg.cn/direct/5656e495c255469ea135bf2f8af974f3.png

咱们T12nm在floorplan阶段就读入了upf文件,在这个文件中我们定义了每个power domain的primary power net。

https://i-blog.csdnimg.cn/direct/ca79385a8a2843afb078fd27a1041374.png

https://i-blog.csdnimg.cn/direct/fdfa924864ad4fdf8d340e39fd008b4c.png

https://i-blog.csdnimg.cn/direct/60fd5c8ef8da4c50a22d523ccd32b4a3.png

出现这个问题,我们可以通过free_power_intent,先打上M10。然后后续在跑place前再读入upf文件即可。

read_power_intent -1801 …/input/ananke_core.upfcommit_power_intent -power_domain

数字IC后端低功耗设计实现案例分享(3个power domain,2个voltage domain)

Q5: 在做route的时候有大量这种warning,但是route完后我去检查connect也是没有问题的,这种是什么原因导致的?

https://i-blog.csdnimg.cn/direct/c740f6599f1c46a89ae21ca8b57aeb2f.png

Q6: 在帮助学员远程协助debug PT Timing ECO后timing问题时,高亮的一条从memory出发到reg/D pin的timing path如下图所示,当前这条timing path的slack为-0.07ns。

https://i-blog.csdnimg.cn/direct/b0207a99acbc4baca9fa95cad3b188fc.png

Innovus中timing eco后setup margin跑哪里去了?(知识星球福利活动)

1)当前这条timing path是否合理?

2)当前不重新跑PR Flow,应该如何来修掉这条timing path的violation(提示:Clock Tree ECO方法)?

3)如果可以重新跑PR Flow,我们应该从哪些方面来提前优化这样的时序路径?