数字IC后端实现常见的physical only cell都有哪些?如何添加这些cell?

news2025/1/13 16:01:50

数字IC后端实现阶段常见功能cell有哪些?比如AND,AOI,NAND等。 physical cell有哪些?都是干什么用的?

数字后端零基础入门系列 | Innovus零基础LAB学习Day9

(1) well tap cells:防止latch-up

icc2_shell> create_tap_cells -lib_cell $tapcell_ref -pattern stagger -distance $distance -skip_fixed_cell

Inovus中添加tap cell命令如下,它是支持根据power domain来添加tap cell的。

set_well_tap_mode -inRowOffset 15

addWellTap -cell TAPCELLBWP16P90CPD -cellInterval 30 -prefix WELLTAP -powerDomain PD_AW_ON

addWellTap -cell TAPCELLBWP16P90CPD_VPP_VSS -cellInterval 30 -prefix WELLTAP -powerDomain PD_PS

数字后端版图必备!TapCell预防Latchup栓锁效应(附对应版图画法)

(2) Boundary Cells (EndCap):std cell边界需插入,一方面可以保持阱和注入层的连续性,同时也可以在刻蚀和离子注入的时候对row边缘的std cell起到一定的保护作用。

icc2_shell> set_boundary_cell_rules -left_boundary_cell $endcap_left -right_boundary_cell $endcap_right -top_boundary_cell $endcap_top -bottom_boundary_cell $endcap_bottom

icc2_shell> compile_boundary_cells

Innovus中添加Boundary cell的命令如下:

setEndCapMode -reset
setEndCapMode
-leftEdge BOUNDARY_RIGHTBWP16P90CPD
-rightEdge BOUNDARY_LEFTBWP16P90CPD
-leftTopCorner BOUNDARY_PCORNERBWP16P90CPD
-leftBottomCorner BOUNDARY_NCORNERBWP16P90CPD
-topEdge {BOUNDARY_PROW4BWP16P90CPD BOUNDARY_PROW3BWP16P90CPD BOUNDARY_PROW2BWP16P90CPD BOUNDARY_PROW1BWP16P90CPD}
-bottomEdge {BOUNDARY_NROW4BWP16P90CPD BOUNDARY_NROW3BWP16P90CPD BOUNDARY_NROW2BWP16P90CPD BOUNDARY_NROW1BWP16P90CPD}
-rightTopEdge FILL4BWP16P90CPD
-rightBottomEdge FILL4BWP16P90CPD
-fitGap true
-boundary_tap true

set_well_tap_mode -inRowOffset 11
set_well_tap_mode
-rule 48
-bottom_tap_cell BOUNDARY_NTAPBWP16P90CPD
-top_tap_cell BOUNDARY_PTAPBWP16P90CPD
-cell TAPCELLBWP16P90CPD

芯片Tapeout前才发现LUP.6 Base Layer Calibre DRC Violation的ECO方案

(3) Tie Cells:在芯片设计中通常会有不少信号需要给定固定的输入如固定高电位或者固定低电位,同时很多无明确输入的open信号也最好固定在某个点位,这时就需要连接到tie cell。

tie cell分为tie high和tie low两种,前者将信号固定在高电位,后者将信号固定在低电位。

icc2_shell> set_lib_cell_purpose -include optimization [get_object_name [get_lib_cells */$tie_ref ]]

Innovus中添加tie cell也必须根据power domain来添加,否则工具只会在最顶层那个domain添加tie cell。最后会发现设计中存在一大堆gate floating的情况。

gate floating drc violation检查

setTieHiLoMode -prefix Tie -maxFanout 8 -cell “TIEHBWP16P90CPD TIELBWP16P90CPD”
addTieHiLo -powerDomain PD_PSO
addTieHiLo -powerDomain PD_AW_ON

(4) Antenna Cells:通常在绕线阶段让工具在发现有antenna violation的时候自动插入antenna cell。

icc2_shell> set_app_options -name route.detail.antenna -value true

icc2_shell> set_app_options -name route.detail.diode_libcell_names -value $antenna_ref

innovus中可以通过setNanoRouteMode来控制工具在绕线阶段通过插入修复antenna cell来修复antenna 天线效应违例violation。

setNanoRouteMode -quiet -drouteFixAntenna true
setNanoRouteMode -quiet -routeInsertAntennaDiode true

setNanoRouteMode -quiet -routeAntennaCellName “ANTENNABWP16P90CPD”

(5) Filler Cells:主要是用来填补std cell之间的空隙以保证阱的连续性,同时也可以对周围的std cell有一定的保护作用。

icc2_shell> create_stdcell_filler -lib_cell $fillers_ref -continue_on_error

(6) DECAP Cells:在高频电路的时钟或者数据信号大规模同时翻转时,巨大的充放电电流可能会导致电源电压的下降,从而显著影响某些区域的std cell的供电,进而影响cell的速度。

要解决这个问题,最常见的方法之一就是增加电源的电容值,而这主要是通过加入DECAP cell来完成。在电源电压正常的时候,DECAP可以充电来存储能量,当电源电压较低的时候就可以放电来起到一定的缓冲作用。

icc2_shell> create_stdcell_filler -lib_cell $decap_ref -continue_on_error

Innovus中插入filler的命令如下所示:

setFillerMode -diffCellViol true -doDRC true -corePrefix DeCap -core {DCAP32BWP40P140 DCAP16BWP40P140 DCAP8BWP40P140}

addFiller

(7) GA-Filler/ECO DECAP Cells:ECO DECAP是一种特殊的DECAP cell,平时可以作为DECAP来提供电容,当需要ECO的时候可以通过简单的改变它上面的金属层连接来转换成具有逻辑功能的std cell,在postmask ECO阶段尤其重要。

GA-Filler全称为gate array filler,它和ECO DECAP类似,也可以通过类似的手段转换成逻辑单元。二者在后端工具的插入方式都和filler cell以及一般的DECAP cell相同。

icc2_shell> create_stdcell_filler -lib_cell $eco_decap_ref -continue_on_error

(8) Spare Cell:来提高芯片流片后的改版能力。

(9) MIMCAP Cells:其中MIM指的是Metal-Insulator-Metal,这是一种特殊类型的用来提供电容的cell,区别于DECAP的主要特点是电容量较大,大小也比一般的std cell要大很多,而且使用的金属层一般比较高,可以重叠放在绝大部分类型的cell上而不产生DRC。

icc2_shell> create_cell $mimcap_name $mimcap_ref

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

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

相关文章

Promise详解-1:初识Promise

最近在回顾ES6的知识,想整理下跟Promise相关的内容。我准备整一个Promise解读的系列,看看能深入到什么程度吧。由浅入深,先认识下Promise。 痛苦的回忆:回调地狱 假如现在让你维护一个“古老”的项目,缺少脚手架的加…

【css】基础(一)

本专栏内容为:前端专栏 记录学习前端,分为若干个子专栏,html js css vue等 💓博主csdn个人主页:小小unicorn ⏩专栏分类:css专栏 🚚代码仓库:小小unicorn的代码仓库🚚 &a…

共享GitLab中CICD自动生成的软件包

0 Preface/Foreword 1 分享软件包地址 为了方便给接收对象方便下载固件,在下载固件时候,而无需打开网页,直接输入地址,弹出的对话框是将固件另存为。 或者进入CICD页面,找到job,在Download的标签上单击右键…

【云贝教育Linux技术文章】CentOS停止维护后如何获取redhat 8.0 yum源?详细操作指南!

本文为云贝教育 刘老师 原创,请尊重知识产权,转发请注明出处,不接受任何抄袭、演绎和未经注明出处的转载。 众所周知,centos 7 在2024年6月30日,生命周期结束,官方不再进行支持维护,而很多环境一…

泷羽sec学习打卡-brupsuite5

声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都 与本人无关,切莫逾越法律红线,否则后果自负 关于brupsuite的那些事儿-web抓包和app抓包 常见的抓包工具有哪些?web抓包app抓包Android抓…

Nanolog起步笔记-9-log解压过程(3)寻找meta续

Nanolog起步笔记-9-log解压过程-3-寻找meta续 当前的目标新的改变decompressNextLogStatementmetadata查看业务面的log语句注释掉 runBenchmark();改过之后,2条记录之后,这里就直接返回了 小结 当前的目标 没有办法,还要继续。 当前的目标&a…

Flask使用长连接(Connection会失效)、http的keep-alive、webSocket。---GPU的CUDA会内存不足报错

Flask Curl命令返回状态Connection: close转keep-alive的方法 使用waitress-serve启动 waitress-serve --listen0.0.0.0:6002 manage:app 使用Gunicorn命令启动 gunicorn -t 1000 -w 2 -b 0.0.0.0:6002 --worker-class gevent --limit-request-line 8190 manage:appFlask使用f…

用友U8+ API接口使用教程

前言 U8和其他的公开的开放API接口有一些差异,他是需要先对接的到代理服务器,通过代理服务器进行对接,所以只要保证U8能上网就能对接,和畅捷通T的模式有点类似 流程: 注册成为开发者(用于创建用友U8 API应…

xtu oj 1618 素数个数

文章目录 前言代码思路 前言 有点儿难&#xff0c;至少对我来说。去年考试我没写出来。 代码 #include<stdio.h> #include<stdbool.h> #include<stdlib.h>//加 math 那个头文件好像要加这个头文件&#xff0c;我之前编译错误过&#xff0c;血泪教训 #incl…

DAY3 构造函数

构造函数使用代码&#xff1a; #include <iostream> using namespace std; class Rec {const int length;int width; public:Rec():length(10){cout << "Rec无参构造函数" << endl;};Rec(int a,int b):length(a),width(b){cout << "Re…

分布式搜索引擎之elasticsearch基本使用2

分布式搜索引擎之elasticsearch基本使用2 在分布式搜索引擎之elasticsearch基本使用1中&#xff0c;我们已经导入了大量数据到elasticsearch中&#xff0c;实现了elasticsearch的数据存储功能。但elasticsearch最擅长的还是搜索和数据分析。 所以j接下来&#xff0c;我们研究下…

javaScript交互补充

1、元素的三大系列 1.1、offset系列 1.1.1、offset初相识 使用offset系列相关属性可以动态的得到该元素的位置&#xff08;偏移&#xff09;、大小等 ●获得元素距离带有定位祖先元素的位置 ●获得元素自身的大小&#xff08;宽度高度&#xff09; ●注意&#xff1a;返回的…

【49】AndroidStudio构建其他人开发的Android项目

(1)做Android软件开发&#xff0c;通常会看一些其他人开发的项目源码&#xff0c;当将这些项目的源码通过git clone到本地之后&#xff0c;用AndroidStudio进行打开时&#xff0c;通常会遇到一些环境配置的问题。本文即用来记录在构建他人开发项目源代码这一过程中遇到的一些常…

LLama系列模型简要概述

LLama-1&#xff08;7B, 13B, 33B, 65B参数量&#xff1b;1.4T tokens训练数据量&#xff09; 要做真正Open的AI Efficient&#xff1a;同等预算下&#xff0c;增大训练数据&#xff0c;比增大模型参数量&#xff0c;效果要更好 训练数据&#xff1a; 书、Wiki这种量少、质量高…

22. Three.js案例-创建旋转的圆环面

22. Three.js案例-创建旋转的圆环面 实现效果 知识点 WebGLRenderer (WebGL渲染器) THREE.WebGLRenderer 是Three.js中最常用的渲染器&#xff0c;用于将场景渲染到WebGL画布上。 构造器 new THREE.WebGLRenderer(parameters) 参数类型描述parametersObject可选参数对象&…

Burp(5)web网页端抓包与app渗透测试

声明&#xff01; 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&…

bsp是板级支持包

里面有很多的针对该型号的板子的函数&#xff0c;可以直接调用&#xff0c;也可以直接在里面。 也可以在vivado的sdk上&#xff0c;看到很多相关文档和寄存器偏移等等。

基于智能合约的医院凭证共享中心路径探析

一、引言 随着医疗行业的不断发展和信息技术的进步&#xff0c;基于智能合约的医疗凭证共享中心解决方案成为了可能。在当今数字化时代&#xff0c;医疗领域面临着诸多挑战&#xff0c;如医疗数据的分散存储、信息共享的不便捷以及凭证管理的复杂性等问题。而智能合约的出现&am…

实验14 RNN的记忆能力和梯度爆炸实验

一 循环神经网络的记忆能力 1.数据集构建 创建了一个DigitSumDataset 类&#xff0c;包括初始化函数init、数据生成函数 generate_data、数据加载函数 load_data、__len__ 方法、__getitem__ 方法。 init函数&#xff1a;接受的参数是data_path&#xff08; 存放数据集的目录…

一文说清flink从编码到部署上线

引言&#xff1a;目前flink的文章比较多&#xff0c;但一般都关注某一特定方面&#xff0c;很少有一个文章&#xff0c;从一个简单的例子入手&#xff0c;说清楚从编码、构建、部署全流程是怎么样的。所以编写本文&#xff0c;自己做个记录备查同时跟大家分享一下。本文以简单的…