数字IC后端培训教程之数字IC后端项目典型问题解析

今天给大家分享下最近几个典型的数字后端项目案例,希望对大家的学习和工作有所帮助。

数字IC后端培训教程之数字后端项目典型项目案例解析

Q1:星主,有啥办法可以看到refinePlace或者ecoPlace都动到了那些inst吗,log里只会有mean和max move,是不是只能写脚本抓全部inst,看看前后inst位置有没有变化?

工具本身不支持报告所有被挪动的instance。但一般做timing eco阶段我们要密切关注log中报告的instance挪动的数量。这个数量要尽量小,否则对于高性能设计很容易出现timing恶化的情况。

顺带分享下高性能设计在做Timing ECO或Function ECO时的一个策略——做之前先把原先的所有instance都fixed住,这样可以确保后续refinePlace或ecoPlace过程不会动到其他不该动的instance。


set all_cells [get_cells -hier -filter "@is_hierarchical == false " -physical ]
set fixed_cells [filter_coll $all_cells "@is_fixed == true"]
set_attr $all_cells is_fixed true -q
source  $timing_eco_script
place_eco_cells  -eco_changed_cells -legalize_only -legalize_mode

refinePlace和ecoPlace使用区别和联系
Q2:老师好,我t28项目routeopt一直优化不下去,我重新做了三次,routeopt连续优化了五次,第一次优化需要4个小时,wns从-2.0ns多变成-0.6ns,之后再优化一直在在0.6左右,wns最好的一次在400多ps,您可以看看是什么原因吗 ?

在这里插入图片描述
单纯从上面的timing summary报告,我们发现WNS最大的是在reg2reg group path上,而且WNS高达-674ps!

而且我们看到当前设计的Density也才62.5%。这说明当前violation并非面积不够导致的。

接下来我们具体来看看这条674ps timing violation的具体路径以及layout上这条path是如何走的。

在这里插入图片描述
史上最全的数字IC后端设计实现培训教程(整理版)

把这条timing path高亮在layout上后如下图所示:

在这里插入图片描述

从这里很直观看到绕线后存在比较严重的routing detour!

从上面那条timing path的具体路径也可以看到存在一大堆的buffer和inverter。下图所示框出来的部分全部都是普通inverter(从逻辑设计角度,这些inverter都是不需要的)!

在这里插入图片描述

这里也可以用咱们直播课讲的快速获取timing path逻辑深度和普通buffer,inverter的脚本来快速获取到buffer和inverter的级数。

在这里插入图片描述

从上面获取的结果得知,这条timing path上存在30颗buffer,inverter! 所以这条timing path是极度不合理的。

那为了定位哪个阶段开始timing变成了,我们需要打开postCTS后的时序summary。

从下面这个postCTS的timing summary报告看到postCTS做完timing是一片大好!所以问题就出现在绕线阶段。

在这里插入图片描述

在这里插入图片描述

Q3:拿到一个新工艺,PR物理实现阶段要使用的ENDCAP Cell,Tap Cell,Antenna Cell,长clock tree使用的clock inverter cell应该如何确定?这些cell名字要从哪里获取到?还有我们训练营项目中设置的那些dont use cell 列表又是从哪里获取的呢?

在这里插入图片描述

Q4:请问如下所示的Metal Short应该如何修复?

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

Q5: 在做T12nm A55 chipfinish后发现存在好几个VDD_CORE的open问题,而且看起来是出现在power off domain中带secondary pg pin的tap cell VPP pin上,请问应该如何修复?另外做Calibre LVS检查也报告了有个io port和VSS short问题,高亮如下图所示,请问这个是什么问题呢,应该如何进行修复?

在这里插入图片描述

在这里插入图片描述

从高亮的图形及位置很明显是报在tap cell的VPP pin上。而且这个学员发现这个M1 VPP Pin已经通过via1,m2,via2和m3连通了,所以该学员认为这个不能算open。
我们说判断一个pg pin(逻辑连接到VDD_CORE)是否open,核心是看它和最高层的VDD_CORE是否有实际的物理连接通路。所以,在咱们T12nm A55项目中这个M3还需要连接到M9的VDD_CORE!

下图所示为其他tap cell VPP Pin连接正常的截图。从这张图可以看到连接Tap Cell VPP pin的M3会通过via3过渡到M4,然后在拉到power switch cell上的Global VDD_CORE mesh上(M1到M9的物理通路就建立起来了)。

在这里插入图片描述

关于pd_dwn_ack串链信号跟VSS Short问题,小编通过选中这个io port,发现它的逻辑net是VSS,这就说明这根信号目前是连接到1’b0!但对于需要连接到1’b0的信号,都必须通过Tie Low cell再到VSS。
这类串链信号如果设计中的确要用到,则需要连接到power switch cell上的Nsleep信号上。

在这里插入图片描述

所以这里大概率就是该学员在PR Flow中没有做addTieHiLo这个步骤。而且对于设计中包含多个power domain的设计,还需要分别对每个power domain来添加tie cell。
setTieHiLoMode -prefix Tie -maxFanout 8 -maxDistance 20 -cell “TIEHBWP16P90CPD TIELBWP16P90CPD”

##addTieHiLo

addTieHiLo -powerDomain PD_PSO
addTieHiLo -powerDomain PD_AW_ON

Q6: 星主,用的是innovus请教个两个问题①我的模块是细长的模块,模块高度达到8000um,我想 极限做短时钟latency 有没有什么方案?②我看了cts skewgroup报告,比如skewgroup报告里 某个时钟显示的最大latency 700ps,但我打开cts timingreport 报告里面,从port端口到该时钟 某个reg的latency达到了900ps,和skewgroup里不一致,这个是什么原因?
细长的模块通常有DDR,显示相关控制芯片。这种形状通常会有明显的timing和congestion问题。
想得到timing和drc上一个比较好的结果,我们就需要从以下几方面入手:
1)clock tree长度做到最短。clock tree上主干时钟的clock cell都需要手工引导工具做摆放。这种做法类似咱们社区复杂时钟clock gen项目使用的manually place clock cell方法来做短clock tree长度。
2)设计中的各个module摆放也需要按照data flow人工干预,比如通过添加region等方式。

clock tree latency不一致主要有两个原因:
skew group report里面的clock tree latency是不包含ocv derating的
PR flow中使用useful skew也会导致工具会调整clock tree长度来优化timing

Q7: 匿名用户 提问:星主,想请问通常会对icg 的enable close pin 设定负的insertion delay去减少icg 的setup time 问题,还是对于icg带的sink 端设insertion delay 才是正确的?

对ICG的clock pin设置insertion delay,但需要注意这样设置后,clock tree只能长到ICG 时钟pin,从ICG输出到后面寄存器Clock pin这段会漏clock tree。所以需要在ICG输出定义时钟,并把ICG和后面带的寄存器摆放在一起。

clock skew特别大,都是什么原因引起的?

Q8: 为何checkPlace结果会有5个cell orientation的错误?

在这里插入图片描述

这个很明显是这几个cell的VSS PG Pin和VDD Power Rail重合了!需要把这几个cell沿着X轴做一个镜像!这个问题后续checkConnectivity和Calibre LVS也会报short错误。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/89344.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/89344.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络(数据库1)

常用数据库: 1.关系型数据库: 将复杂的数据结构简化为二维表格形式 大型:0racle、DB2 中型:MySq1、sQLServer 小型:Sqlite 2.非关系型数据库以键值对存储,且结构不固定。//JSON Redis MongoDB数据存储:变量、数组、链表 内存 &…

6.删除-demo

在连接数据库的基础上deleteResult, err : db.Exec("DELETE FROM user0 WHERE id ?", 1)package main//删除-demoimport ("database/sql""fmt"_ "github.com/go-sql-driver/mysql""log" )func main() {db, err : sql.Open…

人机协作系列(四)AI编程的下一个范式革命——看Factory AI如何重构软件工程?

最近这段时间,我发现一个很有意思的现象:那些曾经对 AI 编程工具持怀疑态度的技术领袖们,态度正在集体转变。就像 Flask 的作者 Armin Ronacher,他之前还说 “不敢授权 AI”,现在却坦言 “愿意将工程主导权交给编程代理…

在javaScript里删除节点以及添加节点

1.在javaScript里删除节点在学习中我们只学到了一种删除DOM节点的方法那就是通过元素的父元素来删除该元素,但后面我查阅资料发现删除节点还有其他方法。1.使用 removeChild() 方法(最常用)我们需要获得元素的父元素,如果不知道可…

贪心算法题解——跳跃游戏【LeetCode】

55. 跳跃游戏 一、算法逻辑(逐步思路) 问题描述: 给定一个非负整数数组 nums,其中 nums[i] 表示从位置 i 最多可以跳跃的步数。 从起点 0 出发,判断是否能够到达最后一个位置。 解题思路: 设一个变量 mx…

复现永恒之蓝

一.打开msf找到永恒之蓝的漏洞直接运行这个漏洞二.查询这个漏洞模块需要配置的参数配置攻击主机的ip三.没有做免杀的话,记得关闭防火墙四.直接运行这里已经显示拿下目标主机五.测试给目标主机添加一个文档六.查看目标主机有没有刚才编写的文档

游戏行业中的恶梦:不断升级的DDoS攻击

近年来,游戏行业快速发展,成为全球娱乐市场的重要组成部分。然而,伴随着这一行业的繁荣,网络安全问题也随之而来。游戏公司面临着一种特殊的威胁:分布式拒绝服务(DDoS)攻击。这种攻击不仅对公司…

2025年自动化工程、物联网与计算机应用国际会议(AEITCA 2025)

2025年自动化工程、物联网与计算机应用国际会议(AEITCA 2025) 2025 International Conference on Automation Engineering, Internet of Things, and Computer Applications一、大会信息会议简称:AEITCA 2025 大会地点:中国西安 审…

Gartner《JavaScript: Top Use Cases, Frameworks and Architecture Constraints》学习心得

《JavaScript: Top Use Cases, Frameworks and Architecture Constraints》是一份面向企业技术决策者、软件架构师与高级工程师的系统性研究笔记。全文以“何时用 JavaScript、如何用好 JavaScript”为主线,从语言特性、运行时差异、适用场景、主流框架、架构约束、生态现状、…

比较vue和react框架

目录 一、基础语法 1.1、模板 vs JSX 1.2、指令 1.2.1、v-for vs Array.map 1.2.2、v-if vs 三元运算符或者&& 1.2.3、v-bind vs 直接在JSX里写{变量} 1.2.4、v-show vs style和className 1.2.5、v-html vs dangerouslySetInnerHTML 1.3、数据绑定 1.4、数据…

插板式系统的“生命线“:EtherCAT分布式供电该如何实现?

在ZIO系列插板式模组系统中,EtherCAT分布式供电如同设备的血液循环网络,其供电稳定性直接决定系统可靠性。本文将从电流计算到电源扩展,为您讲解EtherCAT分布式供电该如何实现。ZIO系列插板式模组的电源介绍ZIO系列插板式I/O模块 是ZLG开发的…

Qwen2-VL:提升视觉语言模型对任意分辨率世界的感知能力

温馨提示: 本篇文章已同步至"AI专题精讲" Qwen2-VL:提升视觉语言模型对任意分辨率世界的感知能力 摘要 我们提出了 Qwen2-VL 系列,这是对先前 Qwen-VL 模型的重大升级,重新定义了视觉处理中传统的预设分辨率方法。Qwe…

C++类模版与友元

全局函数类内实现-直接在类内声明友元即可全局函数类外实现-需要提前让编译器知道全局函数的存在#include <iostream> using namespace std;//通过全局函数来打印Person的信息template<class T1,class T2> class Person{//全局函数&#xff0c;类内实现friend void…

Linux Java环境配置

1.进入java官网&#xff0c;点击Java archive Java Downloads | Oracle 中国https://www.oracle.com/cn/java/technologies/downloads/ 2.然后下滑选择你要安装的java版本&#xff0c;这里我选择的是java8 3.依据系统架构选择版本安装&#xff0c;x86&#xff0c;x64&#xf…

flutter app内跳转到其他安卓 app的方法

flutter 内的关键代码导包&#xff1a;url_launcher: ^6.3.1跳转逻辑&#xff1a;onPressed: () async {await launchUrl(Uri.parse(demoname://));},安卓内的关键代码<intent-filter><action android:name"android.intent.action.VIEW" /><category …

医疗资质OCR智能审核:让合规管理更高效、更精准

在医疗行业&#xff0c;资质证件的审核是确保机构合规运营的关键环节。从医疗机构执业许可证到医师资格证&#xff0c;从药品经营许可证到医疗器械注册证&#xff0c;传统人工审核方式效率低下且容易出错。现在&#xff0c;医疗资质OCR智能审核解决方案正在重塑行业标准&#x…

利用 Spring 的 `@Scheduled` 注解结合简单的状态跟踪实现空闲检测方案

一种基于定时任务和简单状态跟踪的方法: 实现思路 记录用户的最后活动时间:每当用户进行某些操作(如点击、请求等),更新其最后活动的时间戳。 使用定时任务检查用户是否空闲:设置一个后台任务,定期检查每个用户的最后活动时间,判断是否超过了设定的空闲时间阈值。 执行…

如何在 Ubuntu 上安装 Microsoft Edge 浏览器?

Microsoft Edge 是 Microsoft 在2015年开发的跨平台浏览器&#xff0c;最初是建立在他们自己的浏览器引擎和 Chakra JavaScript 引擎之上的&#xff0c;此浏览器可防止恶意网站和下载文件。 本文将帮助您在 Ubuntu 系统上安装 Microsoft Edge 浏览器。 1: 下载 Edge Browser …

16路串口光纤通信FPGA项目实现指南 - 第二部分(下)

16路串口光纤通信FPGA项目实现指南 - 第二部分&#xff08;下&#xff09; 五、核心控制逻辑实现&#xff08;接收部分&#xff09; 5.4 数据接收控制逻辑 // 接收数据寄存逻辑 reg rs422_rx_valid; // 接收数据有效信号 reg [15:0] rs422_rx_data; // 接收数据寄存器…

前后端分离项目的完整部署(Jenkins自动化部署)

人工部署方式&#xff0c;参考文章&#xff1a; 前后端分离项目的完整部署&#xff08;人工部署&#xff09;-CSDN博客 目标 在Windows操作系统上&#xff0c;使用Jenkins完成源代码的自动拉取、编译、打包、发布工作。 项目背景 前端使用vue&#xff0c;程序打包后为dist目…