如何从Process维度评估芯片面积

2023-11-12

如何从Process维度评估芯片面积

文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点。点击进去后出现任何损失与社区无关。

最近在小编知识星球上有不少星友问到工艺 Metal Stack 的相关问题。今天小编将从最基础的 Metal Stack 概念出发,详细解析在芯片规划前期如何去选择最佳的 Metal Stack。由于 Metal Stack 的选取影响到芯片的面积,因此小编又从 process 这个维度,进一步阐述了影响芯片面积的几大因素。

Metal Stack 介绍

Mx: First Inter-Layer Metal, 这类 metal 的最小宽度和最小间距均为 0.07um

My: Second Inter-Layer Metal, 这类 metal 的最小宽度和最小间距均为 0.14um

Three kinds of top-layter metal:

Mz™ : Top Metal pitch is 0.8um (W/S 最小值均为 0.4um)

My(2XTM): TOP Metal pitch 为 Mx pitch 的两倍(W/S 均为 0.14um)

Mr: Top Metal pitch 为 Mx pitch 的五倍(W/S 均为 0.5um)

下面所示的 metal stack 为 1P10M_5x2y2z。即共有 10 层 Metal,其中 6 层为一倍最小宽度(含 Metal1),4 层为 top metal。关于 metal stack 的介绍一般都在 foundary 提供的 design manual 中有详细的介绍。对于久经沙场的广大工程师来说,看到这个 metal stack,一眼应该就能看出这个是 TSMC 的工艺。

值得注意的是还有一层 AL 层是不包含在 10M 中的,这层是专门用来做RDL 走线的。对于不同的封装方式,这层的厚度要求是不一样的。一般情况 wire bond 的封装形式,AL 层要选用薄点的(flip chip 则相反)。至于原因请各位自行思考。

那么比如 Global Foundary 的 6U1x_1T8x_LB 这个 metal stack,它是共有几层 metal,以及有哪些宽窄 metal 呢?哪些层是可以用来绕线呢?

如何选 metal stack

当老板给你一个项目(指定工艺节点),让你来当 PM,你肯定需要去评估当前项目要用哪个 metal stack。这个过程绝对不是拍脑袋的过程,而是协同评估数字后端实现,封装设计的一个过程。因为 metal stack 的选取直接影响芯片成本,芯片的 IR drop,数字后端实现难易程度。

不知道大家平时看 ARM 发布的 GPU 或 CPU 的 Benchmark 时,都选用特别多的 metal layer。为什么呢?原因很简单,那就是实现会简单很多,而且他们做的东西往往都不是要拿去量产的。

试想下同样的 design,同样的面积,一个可用的 metal layer 层数为 10 层,另外一个可用的 metal layer 层数为 8 层,他们的实现难度会一样吗?因此,当我们听到别人说这个模块很好做,利用率可以做到很高,比如 85% 等等信息,其实是不能得出任何有用的信息(需要横向对比,需要在同一个维度对比,不能降维度做比较)。

  • Powerplan

主要原则为最高两层用来做 power mesh,这样IR drop会好点。这是因为高层 metal 的厚度比较厚,电阻较小。经常我们发现某条 path 的 timing 不够好,可以利用上高层金属小电阻的特性来做基于 layer optimization 的 timing 优化。

  • Signal route

最高两层被用来做 power net 后,能用于作为 signal route 的资源已经不多了。因此,需要考虑底层 metal 的绕线资源是否能够满足设计所要用的绕线资源。对于初次接触的新工艺或者新设计,需要去实践评估出一个合理的底层 metal layer 层数。

思考题: 如果将最高层的 metal(非 RDL)用来走信号线,会有什么影响?容易出现哪些问题?

7Track or 9Track

不同 Track 的 cell,它们的高度是不一样的。以 28nm 为例,7Track 和 9Track 的 cell 高度分别为 0.7um 和 0.9um。因此,相同数量 cell 的设计,7Track 的面积会更小。所以在数字 IC 后端设计实现阶段,优先考虑小 track 的 library。但是 7Track 的 cell 速度比如 9Track 慢。

不同阈值电压库

我们知道使用低阈电压的 library,其 cell delay 要比高阈值电压 cell 要快,leakage 更大。当我们的设计需要跑比较高频率时,我们可能需要低阈值电压的 cell,来进行时序的优化。如果设计的频率比较低,我们可能只需要用高阈值电压的 cell 即可。

在实际项目中,我们经常会碰到这样的一种情况。以 C40LVT 和 C40HVT 为例,同样的一个设计,同样的面积,如果综合和实现阶段分别用 C40LVT 和 C40HVT 来做,前者实现后的利用率会比后者的利用率低若干个点。 之所以出现这个现象,主要是因为 HVT 的速度比较慢,工具为了优化 timing 牺牲了一定的面积。当然如果设计的频率特别低,可能两者差别就很小,甚至无差别。

因此,在评估面积时,需要选用恰当合适的阈值电压库来做 PPA 的优化。

Timing Signoff 条件(setup,hold time 等)

对于特定的工艺,foundary 往往都会提供一份 Timing Signoff 的文档。这份文档里会详细阐述 timing signoff 相关的参数值设置,比如 derate 的设置(cell delay,net delay 等),clock uncertainty 值(setup 和 hold 分别提供)以及 max transition 的约束等等。

对于成熟工艺,foundary 已经通过大规模的 silicon 验证,往往提供的值会比较靠谱点。对于不太成熟的工艺,foundary 往往会给自己多留 margin,这里所说的 margin 是指 process 方面的 margin。比如他们为了保证良率,可能 K 库的时候是卡 5 个标准差,但这势必会给数字 IC 实现带来额外的负担,比如 hold uncertainty 多留 10ps。

因此,对于大厂来说,他们往往不太会直接用 foundary 提供的建议值。一方面是避免出现 over design,另外一方面是怕 foundary 预留的 margin 不够导致产品低良率。毕竟人与人,公司与公司之间的信任关系是需要时间来慢慢建立的。就像此时在屏幕上看小编公众号文章的你,你之所以一直会看我写的文章,那是因为你还是信任我的,对不?

**知识星球相关(写给还是学生的老铁们!**非常重要!****)

经常有不少学生私信觉得星球门票太贵,当然大部分知识星球会员都觉得太便宜了(小编也一直觉得很便宜,各自角度和经济情况不一样)。最近不经意间发现很多学生都是向自己导师申请经费,加入小编知识星球的。对于这个事情一开始是很惊讶还能有这神操作,可事实上很多星友的确是这么做的,他们的导师也表示认可和赞同。

所以,如果你还是在校学生,觉得 200 块钱负担不起,又想加入小编知识星球的话,那么不妨向你们导师提出申请,报销这点门票费。

重要通知

本周知识星球门票,开放邀请制渠道(私信小编微信 ic-backend2018),只需要转账 188 元门票费即可进入。下周起星球门票将正式关闭邀请通道,同时将星球门票从现在的 208 元调整为228元 / 年。

小编知识星球简介(如果你渴望进步,期望高薪,喜欢交流,欢迎加入 ****)

在这里,目前已经规划并正着手做的事情:

  • ICC/ICC2 lab 的编写

  • 基于 ARM CPU 的后端实现流程

  • 利用 ICC 中 CCD(Concurrent Clock Data)实现高性能模块的设计实现

  • 基于 ARM 四核 CPU 数字后端 Hierarchical Flow 实现教程

  • 时钟树结构分析

  • 低功耗设计实现

  • 定期将项目中碰到的问题以案例的形式做技术分享

吾爱 IC 社区知识星球星主为公众号” 吾爱 IC 社区” 号主,从事数字 ic 后端设计实现工作近八年,拥有55nm,40nm,28nm,22nm,14nm等先进工艺节点成功流片经验,成功tapeout 过三十多颗芯片

这里是一个数字 IC 设计实现高度垂直细分领域的知识社群,是数字 IC 设计实现领域中最大,最高端的知识交流和分享的社区,这里聚集了无数数字 ic 前端设计,后端实现,模拟 layout 工程师们。

在这里大家可以多建立连接,多交流,多拓展人脉圈,甚至可以组织线下活动。在这里你可以就数字 ic 后端设计实现领域的相关问题进行提问,也可以就职业发展规划问题进行咨询,也可以把困扰你的问题拿出来一起讨论交流。对于提问的问题尽量做到有问必答,如遇到不懂的,也会通过查阅资料或者请教专家来解答问题。在这里鼓励大家积极发表主题,提问,从而促进整个知识社群的良性循环。每个月小编会针对活跃用户进行打赏。

最重要的是在这里,能够借助这个知识社群,短期内实现年薪百万的梦想!不管你信不信,反正已经进来的朋友肯定是相信的!相遇是一种缘分,相识更是一种难能可贵的情分!如若有缘你我一定会相遇相识!知识星球二维码如下,可以扫描或者长按识别二维码进入。目前已经有367星球成员,感谢这367**** 位童鞋的支持!欢迎各位渴望进步,期望高薪的铁杆粉丝加入!终极目标是打造实现本知识星球全员年薪百万的宏伟目标

欢迎关注 “吾爱 IC 社区

微信号:ic-backend2018

点击下方 “阅读全文” 进入小编知识星球逛逛

https://mp.weixin.qq.com/s/mTeduhFmvDZcwnH_fOxnQw

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从Process维度评估芯片面积 的相关文章

  • Win10-部署java环境教程

    一提到部署环境 不得不提到java环境 现如今java遍地走 python多如狗的世界里 如果不能在本地搭建一套java环境 都不好意思说自己是搞软件的 这里呢 给大家来分享一下 如何在一个新的机器上部署java环境 首先 java环境的配

随机推荐

  • FPGA零基础学习之Vivado-锁相环使用教程

    FPGA零基础学习之Vivado 锁相环使用教程 本系列将带来FPGA的系统性学习 从最基本的数字电路基础开始 最详细操作步骤 最直白的言语描述 手把手的 傻瓜式 讲解 让电子 信息 通信类专业学生 初入职场小白及打算进阶提升的职业开发者都
  • mybaties总结

    1 需要导入四个坐标 分别是mybatits junit log4j mysql connection java 2 连接数据库信息 配置mapper的位置 3 映射文件namespace对应的是接口全名 id是接口里面的方法名 resul
  • BUCK电路原理及PCB布局与布线注意事项

    1 BUCK架构 Buck架构 当开关闭合的时候 当开关断开的时候 根据伏秒平衡定理可得 Vin Vout DT Vout 1 D T gt Vin Vout D lt 1 在实际DCDC应用中 当Q1闭合的时候 在图1 a中 红线示出了当
  • Java面试——缓存

    一 什么是缓存 1 缓存就是数据交换的缓冲区 称作 Cache 当某一硬件要读取数据时 会首先从缓存汇总查询数据 有则直接执行 不存在时从内存中获取 由于缓存的数据比内存快的多 所以缓存的作用就是帮助硬件更快的运行 2 缓存往往使用的是RA
  • MMRotate:旋转框检测实现过程

    MMRotate 旋转框检测实现过程 MMRotate地址 https github com open mmlab mmrotate 文档地址 https mmrotate readthedocs io en latest 一 环境搭建 1
  • Raspberry Pi Zero 单板配置手记(四)调整 TF 卡分区大小的不同方式

    RPi Zero 调整 TF 卡分区大小的不同方式 本文章为系列文章 Raspberry Pi Zero 单板配置手记 的第四篇 上一篇为 Raspberry Pi Zero 单板配置手记 三 使用 NetworkManager 管理网络连
  • 启动httpd服务:SSLCertificateFile: file ‘/var/www/miq/vmdb/certs/server.cer‘ does not exist or is empty

    启动httpd服务 SSLCertificateFile file var www miq vmdb certs server cer does not exist or is empty 启动httpd服务 失败 复制代码 root te
  • UE5《Electric Dreams》项目PCG技术解析 之 理解Assembly(以SplineExample为例)

    文章目录 1 什么是Assembly 2 PCG部分 2 1 Assembly变换 2 2 Point变换 2 2 1 SG CopyPointsWithHierachy 2 2 2 过滤及点变换 2 2 3 ApplyHierachy 3
  • python 获取控制台输出内容 解决中文乱码

    Python获取控制台输出 1 使用subprocess库 非实时读取 import subprocess xe subprocess run iperf3 c 127 0 0 1 p 5668 J stdout subprocess PI
  • shell实现嵌入式软件看门狗

    shell实现嵌入式软件看门狗 长时间运行的嵌入式程序 有时会因为莫名其妙的原因挂掉 这时就需要有其他的程序来一直监控我们的程序 由于监控程序属于软件层面 因此这种程序被称为 软件看门狗 这里用一个shell脚本实现该功能 这个脚本会一直监
  • Nginx Lua 实战

    在 nginx conf 中配置 在 http 节点中配置 location staticitem get default type text html content by lua file lua staticitem lua 创建 s
  • vue中axios的参数位置整理

    每次在进行前后端联调的时候 总是因为参数放不对而影响进度 我人都麻了 真的记不住 还是整理一下以便后续开发 一 vue2和vue3的接口请求头 vue 2 const res await this axios get vue 3 const
  • 数据结构课程设计——客运订票系统

    目录 2需求分析 2 1系统功能 3总体设计 3 1功能模块图 4详细设计 4 1 详细的设计思路 车次设置 订票模块的功能 退票模块的功能 管理员模块的功能 4 2 算法流程图 5编码 5 1数据结构定义 1 乘客信息 2 候补队列乘客信
  • JAVA代码审计从入门到精通2-JAVA WEB动态调试

    动态调试 在代码开发和代码分析的过程中需要对代码进行动态调试 动态调试是指利用集成环境 IDE 自带的调试器跟踪软件运行 协助解决和分析软件的bug 动态调试需要对程序设置断点 通过对程序的某行代码设置断点 当程序运行到此代码处会自动停止
  • Qt:自定义信号变量类型

    1 定义变量类型 struct User STRUCT 预测结果 2 在定义后面添加声明 告知所有用到该信号变量的对象 建议1 2 3 放在一个头文件 供所有类包含 Q DECLARE METATYPE User STRUCT 3 incl
  • ajax实验,基于Ajax技术的实验管理系统

    摘要 本文的研究来源于常州纺织服装职业技术学院实验教学管理系统 是常州纺织服装职业技术学院教务管理系统的子系统 该系统主要完成制定实验教学计划 网上选课 三方互动 在深入研究Ajax技术原理和工作流程的基础上 提出一个基于Ajax技术的实验
  • 自定义类型-结构体

    注 本文为C语言初阶内容 目录 1 结构体 1 1结构体的基础知识 声明和自引用 1 2结构体变量的定义和初始化 1 3结构体内存对齐和修改默认对齐数 1 4结构体传参 1 结构体 1 1结构体的基础知识 声明 初始化和自引用 结构体是一些
  • js实现高德地图实现科技感3d建筑模型显示示例

  • java创建数组的方式_Java创建数组的几种方式总结

    1 一维数组的声明方式 type arrayName 或 type arrayName 附 推荐使用第一种格式 因为第一种格式具有更好的可读性 表示type 是一种引用类型 数组 而不是type类型 建议不要使用第二种方式 下面是典型的声明
  • 如何从Process维度评估芯片面积

    如何从Process维度评估芯片面积 文章右侧广告为官方硬广告 与吾爱IC社区无关 用户勿点 点击进去后出现任何损失与社区无关 最近在小编知识星球上有不少星友问到工艺 Metal Stack 的相关问题 今天小编将从最基础的 Metal S