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

数字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?
在这里插入图片描述

相关文章:

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

今天给大家分享下近两天小编帮助学员解决的几个经典后端项目问题。希望能够对大家的学习和工作有所帮助。 Q1:在做a7top顶层物理验证Calibre LVS检查时提示NOT COMPARED,请问是什么原因? 我们在用calibre检查LVS后,其结果基本上就是以下三种…...

关于边缘计算盒子的外部接口保护

边缘计算盒子是一种基于边缘计算和人工智能技术的智能设备,它内置了灵活可配的多样化AI算法库,所以也被称为AI算法盒子或智能边缘分析一体机,可以将数据处理和分析的能力推至离数据源最近的边缘位置,提供高效的数据处理和实时响应…...

OCP考试需要注意什么?

一、OCP考试需要准备的资料 身份证件:携带有效的身份证件(如身份证、护照等),以便在考试当天进行身份验证。确保身份证件在考试当天仍然有效,并且与报名时使用的证件一致。 准考证:打印并携带准考证&…...

git Http改用户下载

用原先别人账号,无权下更新 http方式设置自己账号 例如 git fetch --all 提示没有权限从 http://192.168.1.2/gitlab/项目路径.git下载 git remote set-url origin http://your-username192.168.1.2/gitlab/项目路径.git your-username修改成自己的git账号 需要输入一个Tok…...

postgres 导出导入(基于数据库,模式,表)

在 PostgreSQL 中,导出和导入数据库、模式(schema)或表的数据可以使用多种工具和方法。以下是常用的命令和步骤,分别介绍如何导出和导入整个数据库、特定的模式以及单个表的数据。 一、导出数据 1. 使用 pg_dump 导出整个数据库…...

把dll模块注入到游戏进程的方法_挂起进程注入

一. 概述 挂起进程注入是指在创建进程的时候把运行状态设置为挂起,然后创建一个远程线程,来注入。挂起进程注入作为远线程注入的一个补充,可以在进程创建的时候就注入,从而注入时间较早,不宜被拦截。易知挂起进程注入的局限性也就是如果进程已经启动,那么这种注入方式就…...

TypeScript 开发实战:如何安全替换字符串中的关键字

在 TypeScript 开发中,我们经常需要处理字符串替换的场景。最近我在开发一个表达式解析功能时,遇到了一个有趣的挑战:如何将用户输入的简化数学表达式(如"sin")替换为标准形式(如"Math.sin&…...

ES6 模块化 与 CommonJS 的核心概念解析

以下是关于 ES6 模块化 与 CommonJS 的核心概念解析、知识点总结及使用场景说明: 1. ES6 模块化与 CommonJS 是什么? ES6 模块化(ECMAScript Modules, ESM) 定义:ES6 标准引入的模块系统,使用 import 和 …...

【踩坑记录】stm32 jlink程序烧录不进去

最近通过Jlink给STM32烧写程序时一直报错,但是换一个其他工程就可以烧录,对比了一下jink配置,发现是速率选太高了“SW Device”,将烧录速率调整到10MHz以下就可以了...

CS144 Lab 6 实战记录:构建 IP 路由器

1 实验背景与目标 在 CS144 的 Lab 6 中,我们需要在之前实现的 NetworkInterface(Lab 5)基础上构建一个完整的 IP 路由器。路由器的主要任务是根据路由表将接收到的 IP 数据报转发到正确的网络接口,并发送给正确的下一跳&#xf…...

AI与智能能源管理:如何通过AI优化能源分配和消耗?

引言:能源管理面临的新挑战 在“双碳”目标持续推进的背景下,能源管理已经不再是简单的节电节水问题,而是关乎可持续发展和企业长期竞争力的核心议题。无论是工业园区、写字楼,还是家庭用户,能源的使用正在变得越来越复…...

【蓝桥杯】产值调整

产值调整 题目描述 偏远的小镇上,三兄弟共同经营着一家小型矿业公司“兄弟矿业”。公司旗下有三座矿山:金矿、银矿和铜矿,它们的初始产值分别用非负整数 A A A、 B B B 和 C C C 表示。这些矿山的产出是小镇经济的核心,支撑着…...

使用Next.js构建单页面React应用

最近遇到一个问题 突然要一个单页面的项目 用惯了Next.js 而 create-react-app 又不推荐且不灵活 最终找发现Nextjs也支持单页面应用 以下是使用Next.js构建单页面React应用过程 1 正常创建项目 (我选择的是Pages Router 而非 AppRoute) 2 修改配置文件 next.config.ts impor…...

Python字符串三剑客:len()、split()、join()深度解析

目录 一、len():字符串的"测谎仪" 二、split():字符串的"解剖刀" 参数解析: 实战场景: 三、join():字符串的"缝合怪" 性能优势: 实战案例: 高级技巧&…...

大模型是如何生成内容的?

大模型(如 GPT、Claude、LLaMA 等)生成内容的过程,其实就是一个 逐词预测上下文推理 的过程。我们可以把它想象成一个“超级自完成引擎”:每一步都在问自己—— “在目前上下文下,最合理的下一个词是什么?”…...

Python元组全面解析:从基础到高级应用指南

一、元组基础概念与核心特性 1.1 元组的本质定义 元组(Tuple)是Python中重要的不可变序列类型,由多个元素组成的有序集合。其核心特性表现在: 元素按插入顺序存储,支持索引访问所有元素存储在连续内存空间&#xff…...

Docker部署DeepSeek常见问题及解决方案

在使用Docker部署DeepSeek的过程中,许多开发者可能会遇到一些常见问题。本文整理了几个高频问题及其解决方案,帮助大家更顺利地完成部署。 镜像拉取失败 问题现象 执行 docker pull 命令时,提示超时或镜像不存在。 可能原因 1. 网络环境不稳定,导致连接Docker Hub失败…...

身份证实名认证接口数字时代的信任基石-node.js实名认证集成

在互联网深度渗透生活的当下,从线上购物、社交娱乐到金融理财、政务办理,每一次指尖的触碰都在虚拟世界中留下痕迹。身份证实名认证作为连接现实身份与网络身份的桥梁,正以其不可替代的作用,重塑着数字时代的信任体系。它不仅是保…...

多维时序 | LightGBM多变量时序预测(Matlab完整源码和数据,适合基础小白研究)

多维时序 | LightGBM多变量时序预测(Matlab完整源码和数据,适合基础小白研究) 目录 多维时序 | LightGBM多变量时序预测(Matlab完整源码和数据,适合基础小白研究)效果一览基本介绍程序设计参考资料 效果一览…...

强化学习(Reinforcement Learning, RL)和深度学习(Deep Learning, DL)

强化学习(Reinforcement Learning, RL)和深度学习(Deep Learning, DL)是人工智能领域两个重要的研究方向,虽然二者可以结合(如深度强化学习),但其核心思想、目标和应用场景存在本质区…...

图论---Prim堆优化(稀疏图)

题目通常会提示数据范围&#xff1a; 若 V ≤ 500&#xff0c;两种方法均可&#xff08;朴素Prim更稳&#xff09;。 若 V ≤ 1e5&#xff0c;必须用优先队列Prim vector 存图。 #include <iostream> #include <vector> #include <queue> #include <…...

【优秀三方库研读】【C++基础知识】odygrd/quill -- 折叠表达式

compute_encoded_size_and_cache_string_lengths 方法中这段代码是一个C的折叠表达式&#xff08;fold expression&#xff09;的应用&#xff0c;用于计算多个参数编码后的总大小。下面我将详细解释这段代码的每个部分&#xff0c;并说明为什么这样写。 代码如下&#xff1a; …...

优化Nginx的下载功能

缘起&#xff1a; 我购置了一台阿里云ECS&#xff0c;其EIP带宽3m/s&#xff0c;但是在其上的作为下载文件的服务器nginx提供的下载速度仅有几百KB。 分析&#xff1a; 既然没有达到带宽瓶颈&#xff0c;肯定存在优化的空间。浮现脑海的想法&#xff0c;nginx没有进行最佳配置…...

Vue3集成浏览器API实时语音识别

效果示例 用法 <!-- 浏览器语音识别 --> <BrowserSpeechRecognitionModal v-if"showModal" :isOpen"showModal" close"showModal false" confirm"handleRecognitionResult" />const showModal ref(false); const input…...

Python3 基础:函数定义与调用

Python3 基础&#xff1a;函数定义与调用 什么是函数&#xff1f;一、函数的定义二、函数的调用三、函数参数3.1位置参数3.2关键字参数3.3默认参数值3.4可变数量的参数args&#xff1a;接收任意数量的位置参数**kwargs&#xff1a;接收任意数量的关键字参数 3.5 综合使用各种参…...

Vue 2 的响应式 API 和 Vue 3 的组合式 API 的详细对比,从核心机制、使用方式、代码示例及优缺点展开

以下是 Vue 2 的响应式 API 和 Vue 3 的组合式 API 的详细对比&#xff0c;从核心机制、使用方式、代码示例及优缺点展开&#xff1a; 1. Vue 2 的响应式 API 核心机制 基于 Object.defineProperty&#xff1a; 通过劫持对象的 getter 和 setter 实现数据变化追踪。限制&…...

修改了Element UI中组件的样式,打包后样式丢失

修改了Element UI中组件的样式&#xff0c;在本地运行没有问题&#xff0c;但是打包到线上发现样式丢失&#xff08;样式全部不生效、或者有一部分生效&#xff0c;一部分不生效&#xff09;&#xff0c;问题在于css的加载顺序导致代码编译后样式被覆盖了&#xff0c; 解决办法…...

大模型工业化元年:GPT-5开启通用AI新纪元,中国技术如何破局?

过去一周&#xff0c;AI领域的焦点无疑是OpenAI发布的GPT-5预览版&#xff0c;以及全球大模型技术从实验室迈向工业化的关键转折。这场变革不仅标志着通用人工智能&#xff08;AGI&#xff09;的进一步逼近&#xff0c;更掀起了全球产业链的竞争与反思。本文将从技术突破、产业…...

离线电脑安装python包

离线电脑安装python第三方库 在联网电脑上下载Python包 使用pip安装所需的包&#xff0c;例如 pip install requests numpy导出已安装的包列表 pip freeze > requirements.txt根据requirements.txt下载包及其所有依赖项到指定目录&#xff1a; pip download -r require…...

【Unity AR开发插件】一、高效热更新:Unity AR 插件结合 HybridCLR 与 ARFoundation 的开源仓库分享

摘要 本篇博客详细介绍了我基于 HybridCLR 与 AR Foundation 的 Unity AR 开发插件&#xff0c;旨在为开发者提供高效的跨平台热更新方案。文章从背景与动机出发&#xff0c;覆盖一键安装工具、环境配置、热更新数据制作与示例程序运行等核心模块&#xff0c;并展示代码结构与使…...

深入浅出学会函数(下)

5. return语句 在函数的设计中&#xff0c;函数中经常会出现return语句&#xff0c;这里讲一下return语句使用的注意事项。 return 后面可以是一个数值&#xff0c;也可以是一个表达式&#xff0c;如果是表达式先执行表达式&#xff0c;再返回表达式的结果。return 后面也可以…...

架构-软件工程

一、软件过程模型&#xff08;核心高频考点&#xff09; 1. 瀑布模型 知识点&#xff1a;严格分阶段&#xff08;需求→设计→编码→测试→维护&#xff09;&#xff0c;前一阶段输出是后一阶段输入&#xff0c;阶段间因果紧密&#xff0c;适合需求明确且稳定的项目。缺点&am…...

Redis 及其在系统设计中的作用

什么是Redis Redis 是一个开源的内存数据结构存储系统&#xff0c;可用作数据库、缓存和消息代理。它因其快速的性能、灵活性和易用性而得到广泛应用。 Redis 数据存储类型 Redis 允许开发人员以各种数据结构&#xff08;例如字符串、位图、位域、哈希、列表、集合、有序集合…...

运维打铁:Centos 7 使用yum安装 mysql5.7

文章目录 一、安装前信息说明二、安装步骤1. 下载并安装官网 RPM 安装包2. 修改配置文件 /etc/my.cnf3. 创建 MySQL 数据相关目录并授权4. 启动 MySQL 服务 三、修改数据库访问密码1. 修改配置文件 /etc/my.cnf2. 重启 MySQL 服务3. 登录数据库并修改密码4. 恢复配置文件并重启…...

第二章:MCP服务器分类

Chapter 2: MCP服务器分类 &#x1f31f; 从上一章到本章 在第一章&#xff1a;Model Context Protocol (MCP)中&#xff0c;我们学习了如何通过MCP让LLM安全访问文件系统。现在&#xff0c;让我们想象一个更复杂的需求&#xff1a;假设你需要让LLM同时处理文件、查询数据库、…...

遨游三防|30200mAh、双露营灯三防平板,见证堆料天花板

在工业4.0与智能化转型的浪潮中&#xff0c;专业设备对性能、防护及场景适应性的要求日益严苛。遨游通讯作为国家级高新技术企业&#xff0c;依托“危、急、特”场景的深耕经验&#xff0c;推出的旗舰级产品AORO-P300三防平板&#xff0c;以30200mAh超大容量电池、双露营灯设计…...

OFDM 信道表示(3)

上节我们令得到频域相关系数与PDP是一对傅里叶变换对。这次我们令即只考虑同一个RE上随时间变化得过程。 为接收信号自相关函数&#xff0c;令即为上式 所以可得Doppler 功率谱和子相关函数一对傅里叶变换对。 上面给出多径DPL信道接受信号表示&#xff0c;其中为t时间多径时延…...

MongoDB副本集搭建与核心机制

一、节点架构解析 1.1 节点角色分工 主节点&#xff08;Primary&#xff09; 唯一写入口&#xff1a;处理所有写操作&#xff08;插入/更新/删除&#xff09; Oplog生成器&#xff1a;记录操作日志到local.oplog.rs集合 同步中枢&#xff1a;向所有从节点推送oplog变更 典型…...

深度学习-数值稳定性和模型初始化

到目前为止&#xff0c;我们实现的每个模型都是根据某个预先制定的分布来初始化模型的参数&#xff0c;有人会认为初始化方案时理所当然的&#xff0c;忽略了如何做出这些选择的细节&#xff0c;甚至有人可能会觉得&#xff0c;初始化方案的选择并不是特别重要&#xff0c;实际…...

详解Linux中的定时任务管理工具crond

在 Linux 容器环境中&#xff0c;/etc/cron.d/ 目录可能不存在&#xff0c;特别是在精简的容器镜像&#xff08;如 Alpine、BusyBox 或某些定制化的镜像&#xff09;中。这是因为容器通常追求轻量级&#xff0c;默认不包含完整的 cron 系统&#xff08;如 cronie 或 vixie-cron…...

【element plus】解决报错error:ResizeObserver loop limit exceeded的问题

当我们在使用element plus框架时&#xff0c;有时会遇到屏幕突然变暗&#xff0c;然后来一句莫名其妙的报错ResizeObserver loop limit exceeded&#xff0c;其实这是因为改变屏幕大小时el-table导致的报错 网上给出了几种解决方案&#xff0c;我试了其中两种可以实现 方案一&…...

GD32E23x flash作为静态存储的读写操作

目录 一、前言 二、GD32E23x flash扇区地址划分 三、GD32E23x 固件库下载 四、GD32E23x falsh擦写操作函数封装 五&#xff0c;引用示例 一、前言 在只有芯片没有外部存储时需要存储一些配置信息&#xff0c;使用flash进行存储是很好的选择了&#xff0c;在GD32E23x中以flash…...

空闲列表:回收和再利用

空闲列表&#xff1a;回收和再利用 手动与自动内存管理 手动管理&#xff1a;程序员需要明确地分配和释放内存。自动管理&#xff1a;例如使用垃圾收集器(GC)&#xff0c;它能够自动检测并回收未使用的对象&#xff0c;不需要程序员干预。 对于某些数据结构如B树&#xff0c;…...

功能脑网络较新的方法[和ai讨论的方向和学习资源]

文章目录 前言和回顾代码实现ai 提问大脑连通性分析方法扩展与分类指南一、现有方法的补充与分类1. 补充的其他连通性方法2. 分类框架 二、近年来的新方法&#xff08;2019年后&#xff09;1. 相位动力学扩展2. 信息论与复杂度3. 基于图论与网络科学4. 动态系统与因果推断 三、…...

【MongoDB + Spark】 技术问题汇总与解决方案笔记

场景背景 最近练手项目&#xff1a;Spark 结合 MongoDB 构建商品推荐系统的过程中&#xff0c;过程中出现多种环境配置与兼容性问题&#xff0c;主要涉及 MongoDB 连接、版本兼容性、Casbah 驱动使用问题等。汇总调试过程中遇到的常见错误及其解决方案&#xff0c;供参考复用。…...

给git配置SSH(github,gitee)

更多个人笔记&#xff1a;&#xff08;仅供参考&#xff0c;非盈利&#xff09; gitee&#xff1a; https://gitee.com/harryhack/it_note github&#xff1a; https://github.com/ZHLOVEYY/IT_note 本文基于mac&#xff0c;linux和win可以参考 个人同时配置gitee和github的ss…...

Linux基础使用-笔记

1. 文件和目录操作 查看当前目录&#xff1a;pwd 命令用于显示当前工作目录的完整路径。 pwd切换目录&#xff1a;cd 命令用于切换工作目录。 # 切换到指定目录 cd /home/user/Documents # 切换到上一级目录 cd .. # 切换到用户主目录 cd ~列出目录内容&#xff1a;ls 命令用…...

什么是Maven

Maven的概念 Maven是一个一键式的自动化的构建工具。Maven 是 Apache 软件基金会组织维护的一款自动化构建工具&#xff0c;专注服务于Java 平台的项目构建和依赖管理。Maven 这个单词的本意是&#xff1a;专家&#xff0c;内行。Maven 是目前最流行的自动化构建工具&#xff0…...

DNS主从同步及解析

DNS 域名解析原理 域名系统的层次结构 &#xff1a;DNS 采用分层树状结构&#xff0c;顶级域名&#xff08;如.com、.org、.net 等&#xff09;位于顶层&#xff0c;下面是二级域名、三级域名等。例如&#xff0c;在域名 “www.example.com” 中&#xff0c;“com” 是顶级域名…...

Git 的基本概念和使用方式

Git 是一种分布式版本控制系统,广泛用于跟踪文件的变化和协作开发项目。以下是 Git 的基本概念和使用方式: 仓库(Repository):Git 用来存储项目文件和历史记录的地方。可以是本地仓库(Local Repository)或远程仓库(Remote Repository)。 工作区(Working Directory):…...