数字IC后端先进工艺设计实现之TSMC 12nm 6Track工艺数字IC后端实现重点难点盘点

大家知道咱们社区近期TSMC 12nm ARM Cortexa-A72(1P9M 6Track Metal Stack)已经开班。这里小编要强调一点:不要认为跑了先进工艺的项目就会很有竞争力!如果你仅仅是跑个先进工艺的flow,不懂先进工艺在数字IC后端实现上的不同点,为何有这样的不同点,针对这些不同之处后端实现阶段如何考虑它们,那么你等于0经验!

在这里插入图片描述
TSMC 12NM TCD Dummy Cell添加原则及方法

PS: TSMC 12nm ARM A55低功耗设计实现后端训练营也开放预约啦!有需要的可以私信,名额限8人。

所以,小编觉得有必要列举下T12这个工艺后端实现上一些不一样的地方。大家可以针对本文所列的要点进行复盘,如果这些都搞透彻了,你就可以大胆把T12 nm的A72和A55项目写到你的简历中。初步估计这个T12工艺的A72项目会成为新一年IC秋招的标配项目。

在这里插入图片描述

1)Memory,模拟IP,子模块,IO必须摆放到Placement Grid(Fin Grid)上 (DPT Aware Floorplan )

所有各个子模块的形状,彼此之间的间距都是有严格的要求。这里面的48nm和96nm值是怎么来的?这些都要搞通透。

tsmc 12nm floorplan chip boundary尺寸要求

2)PPNN Placement and Filler Insertion

T12 6Track工艺引入了6T-Turbo的cell。为何要用这类cell?使用这类cell的优缺点分别是什么?

TSMC 12nm 6T 和6T-Turbo cell的Fin结构

使用这类6T-Turbo cell时应该如何插filler?这类6T-Turbo cell的density是否有严格的要求?

TSMC 12nm 6T Turbo插filler注意事项

3)Via Pillar(Via Stapling)

从T12nm开始powerplan就必须使用via pillar。这样打的目的以及整体powerplan结构需要搞清楚。

TSMC 12nm Double Pattern Via Pillar 或Via Stampling

4)M3 PG结构特殊处理

在12nm这个工艺中标准单元存在比较多的M2 short pin,所以在我们规划powerplan结构和PR flow过程中都需要提前考虑好这个情况。

TSMC 12nm  Via Pillar M3 Powerplan结构

5)M1&M2 Dual Power Rail

使用Dual Power Rail的目的是什么?对于T12工艺是否可以在powerplan阶段就把M1和M2之间的VIA1打上?为什么?

数字IC后端实现Dual Rail实现要点
在这里插入图片描述

6)模块级io port摆放需要摆放至高层Layer

T12这个工艺的M1-M3属于double pattern layer。在模块级摆放io port时尽量不要使用这些layer!

7)Colorless Placement (与pre-color有何区别?)

什么叫Colorless?它和pre-color有何区别?它们对数字IC后端实现流程有何影响?

CPODE.L.2这条DRC Violation的原因是什么?如何解决?

如何在placement阶段避免VT的min width,min area等DRC Violation?

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

8)VIA0 Align issue

VIA0是什么?它的作用是什么?VIA0特殊的Align要求,如何变成placement相关约束来guide工具做placement?

TSMC 12nm数字IC后端培训VIA0对齐

9)VT layer aware placement

在这里插入图片描述
TSMC 12nm cell edge定义和spacing constraint约束

10)New Routing Rule

T12这个工艺也是支持Preferred和Non-prefered两个方向来完成routing的,但是它对它们的最小线宽和最小线间距提出了更严格的要求。

在这里插入图片描述

在这里插入图片描述

11)M2 short pin延伸技术

在这里插入图片描述

12)MOPO Max Length Violation

TSMC 12NM数字IC后端设计实现MOPO Violation分析

13)Double Pattern Routing (G0 Loop Violation)

G0 Loop Violation的本质问题是什么?如何提前规避?Calibre出现G0 DRC Violation后应该如何修复?

在这里插入图片描述

14)M2_P48/M3_P48 marker layer generation

为何要有P48这一层?P48这一层应该在什么阶段添加?这层是否需要参与Tapeout?

TSMC12nm M2 P48和M3 P48 layer添加方法

15)Timing Signoff之SOCV

在这里插入图片描述

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

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

相关文章

推荐一个wordpress免费模板下载

首页大背景图,首屏2张轮播图,轮换展示,效果非常的炫酷,非常的哇噻,使用这个主题搭建的wordpress网站,超过了200个,虽然是一个老主题了,不过是经得起时间考验的,现在用起来…

[iOS]使用CocoaPods发布公开库

1.检查库名是否已被占用 选择库名时,尽量选择具有描述性并且独特的名字,这不仅可以避免命名冲突,还可以帮助用户更好地理解库的用途和功能。 在实际创建和发布 CocoaPods 库之前,确实应该检查库名是否已经被占用,以避…

clickhouse升级

参考链接: clickhouse 版本升级(rpm 安装包)_软件包 clickhouse-common-static-22.2.2.1-2.x86_64.rpm-CSDN博客

敏捷之Scrum开发

目录 一、什么是 Scrum 1.1 Scrum 的定义 二、Scrum 迭代开发过程 2.1 迭代开发过程说明 2.1.1 开发方法 2.1.1.1 增量模型 2.1.1.1.1 定义 2.1.1.1.2 模型方法说明 2.1.1.2 迭代模型 2.1.1.2.1 定义 2.1.1.2.2 模型方法说明 2.1.2 迭代过程 2.1.2.1 产品需求Produ…

万万没想到,原来这些维生素对帕金森有好处!

亲爱的读者朋友们,今天我们要聊一个特别的群体——帕金森病患者。在面对这一神经系统退行性疾病时,除了遵循医嘱进行药物治疗和康复锻炼,合理的饮食和营养补充也显得尤为重要。那么,究竟哪些维生素是他们不可或缺的呢?…

Maven 构建 Flink 应用程序的最佳实践(根除各种类冲突/类加载问题)

作为开发者,在构建 Flink 应用程序时的体验真是一言难尽,想必大家都曾遇到过各种 ClassNotFoundException、NoSuchMethodError 以及 Could not find any factory for identifier kafka/jdbc/hive/hudi that implements org.apache.flink.table.factories.DynamicTableFactory…

5-用户权限控制(前端)

1.登录成功后,调用状态管理中对应的设置菜单的方法 //调用store中的setMenu函数 this.$store.commit(setMenu,data.data.data)2.将后端返回的菜单数据存入Cookie中 //设置菜单的方法setMenu(state, val) {state.menu valCookie.set("menu", JSON.strin…

go语言实现简单登陆返回token样例

目录 1、代码实现样例: 2、postman调用,获取登陆后的token: 1、代码实现样例: package mainimport ("net/http""time""github.com/dgrijalva/jwt-go""github.com/gin-gonic/gin" )var …

【代码问题】【Pytorch】训练模型时Loss为NaN或INF

解决方法或者问题排查: 加归一化层: 我的问题是我新增的一个模块与原来的模块得到的张量相加,原张量是归一化后的,我的没有: class Module(nn.Module):def __init__(self,dim,):super().__init__()# 新增一个LayerNo…

python学习笔记B-13:序列结构之元组--元组的相关操作

元组的常用相关操作有:获取最大值、获取最小值、获取元组长度、查询是否包好某元素、获取元素索引值、获取元素数量 t (2,4,6,90,34,25,78) print("原元组:",t) print("最大值:",max(t)) print("最小值&#xff1…

matlab新手快速上手3(差分进化算法)

本文用经典差分进化框架模板,对matlab新手友好,快速上手看懂matlab代码,快速应用实践,源代码在文末给出。 差分进化算法定义: 差分进化算法(Differential Evolution,简称DE算法)是…

深入理解前端开发:从基础到实践

导语: 随着互联网技术的飞速发展,前端开发已经成为了Web开发中不可或缺的一部分。本文将带领大家深入了解前端开发的基础知识、技术栈和实践案例,帮助大家提升前端开发技能。 一、前端开发基础知识 1. HTML:网页的骨架 HTML&am…

KUKA机器人如何给IO信号或寄存器添加中文注释信息?

KUKA机器人如何给IO信号或寄存器添加中文注释信息? 如下图所示,首先,我们需要登录专家以上用户权限(默认密码KUKA), 如下图所示,点击“投入运行”—“网络配置”, 如下图所示,此时机器人的IP地址为192.168.1.10, 如下图所示,用一根网线连接机器人控制柜到笔记…

基于SpringBoot+Vue大学生兼职管理系统的设计与实现

目录 一、前言介绍 二、功能需求 三、功能结构设计 四、管理员功能实现 招聘单位管理 用户管理 论坛管理 公告信息管理 五、招聘单位功能实现 职位招聘管理 职位留言管理 简历投递管理 六、用户功能实现 在线论坛 职位招聘信息 简历投递 简历 七、部分核心代码 …

【C语言进阶】程序编译中的预处理操作

📚作者简介:爱编程的小马,正在学习C/C,Linux及MySQL.. 📚以后会将数据结构收录为一个系列,敬请期待 ● 本期内容讲解C语言中程序预处理要做的事情 目录 1.1 预处理符号 1.2 #define 1.2.1 #define定义标识…

数据结构---线性表(顺序表)附代码

目录: 数据结构相关概念 1、什么是数据结构? 2、为什么需要数据结构? 顺序表 1、顺序表的概念及结构 1.1 线性表 1.2 顺序表 2、顺序表分类 3、动态顺序表的实现 什么是数据结构?? 数据结构是由 “数据”和 …

Unity 合并子物体获得简化Mesh

合并子物体获得简化Mesh 🥙环境🥪Demo 🥙环境 PackageManager安装Editor Coroutines 导入插件👈 🥪Demo 生成参数微调:Assets/EasyColliderEditor/Scripts/VHACDSettings/VHACDSettings.asset

需要同时控制几十台服务器?ansible帮助我们轻松搞定!

需要同时控制几十台服务器?ansible帮助我们轻松搞定! 接到一个需求,需要到几十台目标服务器上执行测试任务,并汇总数据,想想看我们操作几台服务器还可以,几十台就有点效率低了,不要怕&#xff…

人工智能大模型开发之远程服务器编写代码IDE,我选Jetbrains Gateway,弃用VS Code

应用背景: 我们在大模型等抹模型训练的时候,需要Ubuntu服务器,或者Windows WSL子系统,这个时候你可能会考虑VS Code中的remote ssh插件来实现,但是VS Code的界面以及操作我不是很喜欢,但是使用Pycharm,我就觉得倍感亲切,而且最新版的2024.1版本的Jetbrains所有产品均支…

判断一个对象数组中的是否有属性为空

项目场景: 判断一个对象数组中的是否有属性为空 代码描述 hasEmptyProperty(objArray) {return Object.values(objArray).some(obj > {return Object.values(obj).some(value > value );});