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

数字IC后端项目典型问题之后端实战项目问题记录(2025.04.24)

今天给大家分享下近两天小编帮助学员解决的几个经典后端项目问题。希望能够对大家的学习和工作有所帮助。

Q1:在做a7top顶层物理验证Calibre LVS检查时提示NOT COMPARED,请问是什么原因?

Calibre LVS NOT COMPARED结果

我们在用calibre检查LVS后,其结果基本上就是以下三种情况。

1)NOT COMPARED

这种提示是LVS没有跑成功。建议检查LVS log中的ERROR,一般都是缺东西,比如缺标准单元的spice等。一旦出现这种情况,不要去分析什么LVS了,设计都缺东西,先把缺的文件都补齐了,然后再跑LVS。

本案例是子模块cortexa7core的SUBCKT缺VDD和VSS port。

在这里插入图片描述

2)CORRECT

这种情况就是layout与netlist是匹配的。除了看这个笑脸外,我们还需要仔细查看layout抽取的report。

3)INCORRECT

解决source netlist问题后,我们重新跑LVS后的结果出现INCORRECT。

在这里插入图片描述
在这里插入图片描述

首先,我们在innovus中加载Calibre LVS的short报告,这里提示存在VDD_CORE和VSS的PG Short。

在Innovus中放大short高亮位置,我们发现并没有顶层的PG Short。

这时候我们有理由怀疑子模块内部可能使用了高层的metal。

所以,我们打开a7top merge好子模块的GDS查看,经过定位发现这个位置的确有一根M9的VSS横跨在两根M8的VDD_CORE和VSS。

在这里插入图片描述
数字IC后端设计实现之Innovus自动修复Min Step DRC Violation方案

这也是为什么我们训练营项目在做子模块a7core时只能使用M2-M6进行signal routing,PG最高层只能用到M7。

在这里插入图片描述

解决掉这个PG Short后,继续跑Calibre LVS,发现存在如下所示的Incorrect Net问题。

在这里插入图片描述

看到这里基本上可以判断出power switch cell的global pg pin TVDD存在open的情况。定位到Innovus中可以清晰看到TVDD Pin open的情况。

在这里插入图片描述
手把手教你debug解决数字IC后端物理验证Calibre LVS错误

更多关于芯片顶层Calibre LVS方面的教程,可以前往钉钉后端知识库查看。

在这里插入图片描述

Q2: checkPlace检查报告出来的TechSite Violation是怎么回事?应该如何解决?

在这里插入图片描述

这个错误其实是提示当前设计中添加的ECO Filler没有摆放到它自己所属的site row上。本质原因是学员在做floorplan时没有给设计创建GDCAP cell对应的row。

在这里插入图片描述

更多关于checkPlace violation的介绍,可以查看如下所示教程。

在这里插入图片描述

Q3: 有学员在做公司自己项目CTS时发现跑不下去,报了如下所示的错误IMPCCOPT-4375。
在这里插入图片描述

第一次遇到这种错误,其实可以从提示信息上入手。

Term CLK_AVDD_SS is power /ground (这个信息非常重要)!也就是说ccopt engine发现这个port是接到电源地的,但是你又要让它做clock tree,这不是明显为难它吗?

所以我们选中一个io port,看看它的逻辑连接。trace连接关系后如下图所示,clk_1m_reg的输出直接送到这个io clock port。

在这里插入图片描述

稍微有经验的后端工程师,应该可以判断出这个寄存器必须定义generated clock,否则这里就一定会漏clock tree。

在这里插入图片描述

从逻辑关系上看,这里的确没啥毛病。这时候就剩一种可能性了——io port的属性问题了!

选中这个io port,右键查看它的属性,我们马上就可以看到这个port有Power属性!到这里我们就找到问题了。
在这里插入图片描述

只需要把模拟版图工程师提供的def文件中的这个io port的USE类型改成普通信号类型即可。更改后重新跑下CTS就可以正常做完时钟树综合。

Q4: Power Switch cell在串链以后,如果出现的max trans的问题,要怎么解决?或者说有没有做过在PD_PSO domain插always-on buf的经历?怎么做的?

下图所示为咱们社区T28nm a7core power switch cell串链后的示意图,图中白色高亮的为我们floorplan添加的power switch cell。

在这里插入图片描述

为了保证电源开关power switch cell chain(NSLEEP)信号的transition满足signoff要求,我们在串链的时候就需要保证相邻两个power switch cell的距离是最近的。

我们知道这类信号是always on 信号,当cpu power off时它还必须是on的。所以串链信号出现max transition问题,中间也不能插普通buffer或inverter,而是应该插always on buffer来解决。

AON Buffer的结构如下图所示,它包含VSS,VVDD和VDD PG Pin。

在这里插入图片描述

插always on buffer有两个实现方式:

1)手工针对存在max transition net来插我们PR 默认flow都会把aon buffer设置成dont use属性。

所以,首先我们需要把aon buffer的dont use属性去掉。然后使用传统插buffer的命令ecoAddRepeater,指定插入always on buffer cell即可。

  1. 通过低功耗upf告诉工具串链信号的power domain属性

由于串链逻辑连接在netlist中是不存在的,所以我们需要先创建所有power switch cell之间的逻辑连接。然后也是需要remove掉aon buffer的dont use属性。

这样工具在优化时序和timing drv阶段就会在有max transition点插AON Buffer。但这种做法非常依赖工具的算法,通常会引入较多always on buffer,所以很少这么做。

大部分场景还是采用第一种方案——Floorplan阶段就规划好每个power switch cell的连接顺序。

【思考题】对于下图所示的T12nm A55项目,右下角的这些memory做成一个power domain,而且memory本身自带power gating,请问我们应该如何来串memory的chain?
在这里插入图片描述

http://www.xdnf.cn/news/1568.html

相关文章:

  • C++内存管理那些事
  • 身份证实名认证接口数字时代的信任基石-node.js实名认证集成
  • Docker部署一款开源的极简服务器监控工具Ward内网穿透远程使用
  • AXP2101入门
  • 向量检索新选择:FastGPT + OceanBase,快速构建RAG
  • 【Promethus(普罗米修斯)介绍安装及使用】
  • Python----深度学习(基于深度学习Pytroch线性回归和曲线回归)
  • 【Nginx】Nginx 最新稳定版本(1.28.0)发布
  • ASP.NET MVC​ 入门指南
  • 数据结构【树和二叉树】
  • 无过拟合的记忆:分析大语言模型的训练动态
  • 2025 年“泰迪杯”数据挖掘挑战赛B题——基于穿戴装备的身体活动监测问题分析
  • 高性能服务器配置经验指南3——安装服务器可能遇到的问题及解决方法
  • 编译型语言、解释型语言与混合型语言:原理、区别与应用场景详解
  • w~视觉~合集3
  • 【go语言】window环境从源码编译go
  • 强化学习核心原理及数学框架
  • 【C++ 类和数据抽象】static 类成员
  • Ubuntu 24.04 安装流水账
  • Pgvector+R2R搭建RAG知识库
  • 审计效率升级!快速匹配Excel报表项目对应的Word附注序号
  • 文字均分的css
  • 【多源01BFS】Codeforce:Three States
  • pnpm install报错:此系统上禁止运行脚本
  • 12N60-ASEMI无人机专用功率器件12N60
  • 【mdlib】0 全面介绍 mdlib - Rust 实现的 Markdown 工具集
  • CVE-2024-23897-Jenkins 2.441之前版本存在任意文件读取漏洞
  • Pikachu靶场-File Inclusion
  • 雪花算法生成int64,在前端js的精度问题
  • 【产品经理从0到1】原型及Axure介绍