数字IC后端零基础入门基础理论(Day2)

数字IC后端零基础入门基础理论(Day1)

Placement Blockage: cell摆放阻挡层。它是用来引导工具做placement的一种物理约束或手段,目的是希望工具按照我们的要求来做标准单元的摆放。

它主要有三种类型,分别是hard placement blockage,soft placement blockage和partial placement blockage。

hard blockage所在的位置工具是无法摆放任何标准单元的,soft blockage所在位置只能摆放buffer和inverter,partial blockage所在位置可以摆放任何cell,但是工具工具可以根据我们设置的摆放比例,比如某个区域摆放太多标准单元可能会导致绕线问题,但近摆放buffer和inverter又浪费面积,那我们就可以设置一个可以摆放cell的比例来控制这区域的density密度来缓解潜在的绕线问题。

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

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

Halo:它和hard placement blockage功效是一致的。当我们给memory添加Halo时,随着memory的移动,这个Halo也会随着移动。而blockage则没有这个特性。

Routing Blockage: 绕线阻挡层。它是用来引导工作做routing绕线的一种物理约束或手段,目的是希望工具按照我们的要求来做routing。

所以placement blockage和Routing blockage相同的地方是它们都是作为阻挡层的约束条件,区别是前者是阻挡工具做摆放的阻挡层,后者是阻挡工具做绕线的阻挡层。

Innovus 支持四种类型的物理布局约束,即soft guide,guide,region和fence。它们都是用来guide引导工具做placement的一种物理约束条件。

Soft Guide: 除了没有固定位置外,soft guide约束类似于guide 约束。这为同一soft guide下的实例提供了更强的分组。soft guide约束不像fence 或region 约束那样严格,因此如果某些实例与其他模块有连接,则可能会将其放置得更远。

Guide: guide 约束是innovus中所有约束中最松散的约束。它大致定义了一个区域,您指示工具在该区域内放置给定模块的单元。

当模块移动或放置在core区域内时,guide约束会自动分配给该模块。如果未充分利用该区域,则不属于该guide的模块单元也可以放置在guide内部。同样地,如果所述区域利用率过高,来自guide的模块单元也可以被放置在该区域的外部。总而言之,guide是标准单元布局的软指标,可以认为该区域“可以进,可以出”

Region: region约束也是一个松散约束。然而,它比guide更强大。定义region 时,它要求将region中所包含的所有单元都放置在指定的region区域中。如果该区域中有额外的空间,则可能放进其他模块的单元。总而言之,一个region是标准单元布局的强约束,可以认为该区域“可以进,不可以出”

Fence:fence约束是Innovus 中最强的约束。即使未充分利用该区域,fence 约束也不允许将其他模块的单元放置在该区域内。此外,fence 区域中的单元格不能放置在定义的区域之外。

fence具有是排他性的,尽管不是完全的。总而言之,fence 是单元位置的最强约束,可以认为该区域“不可以进,不可以出”。

在标准的Innovus GUI中,fences是深棕色的。

在innous中创建soft guide,guide,region和fence的命令:

createInstGroup groupName
addInstToInstGroup groupName hInstName or instName or groupName
createSoftGuide <moduleName/groupName>
createGuide <moduleName/groupName> llx lly urx ury
createRegion <moduleName/groupName> llx lly urx ury
createFence <moduleName/groupName> llx lly urx ury

Timing一致性和Module Region添加策略方法

Gcell(GRC): 全称global routing cells。工具会把设计拆分成很多个Gcell,基于每个Gcell可以提供的绕线资源和实际需要占用的绕线资源来估算出每个Gcell的绕线是否可以绕通,所以它是工具用来估算Congestion用的。

对于特定大小的芯片,它的routing resource就是每层金属的Pref Routing Track和Non-Pref Routing Track之和。而且工具在做绕线时会优先在Pref的routing track上走线。

在这里插入图片描述

Routing Track: 它是指金属走线的通道。工艺库中会指定好每层金属的track,它有默认方向的走线方向,比如M2的优先走线为水平方向,那么工具在走M2 routing的时候就会优先走水平方向。因此,对于一个给定大小的设计,绕线资源是固定的,即每层金属的绕线track都是定好的。

数字后端零基础入门系列 | Innovus零基础LAB学习Day6
在这里插入图片描述
在这里插入图片描述

GR: Global Route。它又分为Early Global Route和Global Route。前者是指在placement,cts等阶段做的虚拟绕线。

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

我们知道绕线过程可分为global route(全局绕线)和detail route(详细绕线)。global route以gcell cell作为绕线参考网格,工具在绕线时会试图寻找gcell中的最短path, gcell是用来产生congestion map(拥堵图表),提前预估出当前设计是否存在绕线的风险。

Congestion: 从字面意思看就是拥塞,它是用来表征设计是否可以绕通。当我们说设计中存在较大congestion,往往就是指当前设计绕线大概率绕不通的情况。

Overflow:它是用来描述设计的congestion情况的。Overflow = Demand -Capacity。这个Overflow值工具会分成垂直方向和水平方向的Overflow,一般Overflow在1.5%内大概率是可以绕通。这个Overflow值一般可以在每个阶段的Log中报出。

GRC为正方形,每个边的尺寸通常为标准单元高度的两倍。它会计算出GRC每条边可用于布线的布线通道(track)的数目(Capacity),以及布线需要的布线通道的数目(Demand)。图中画出了一个GRC,边上的数值即为Demand/Capacity。Demand – Capacity即为溢出(Overflow)的数目,如果存在Overflow,则Congestion Map中就会将GRC的那条边进行高亮,Overflow越大,则颜色越偏向于暖色调(即红色)。

在这里插入图片描述

HotSpot: hotspot表征的是设计中congestion的热点,它是用面积来表示hotspot的分数。如果这个分数越高代表的是这个位置有congestion的点比较多。所以这个位置附近就有比较聚集的congestion问题。

工具跑完会报出设计中最差的五个hotspot点。这里如果报出来的五个点的hotspot值小于150,我们认为当前设计不存在非常聚集性的congestion。此时,如果overflow值大于2%,也是有机会能绕通的。

在这里插入图片描述

Macro/Block(宏单元):是一种由逻辑单元和物理单元组成的封装单元。它可以看作是一个可重复使用的功能单元,包括多个逻辑电路单元的封装,其功能一般比较复杂,比如存储器、算术运算单元等。Macro一般包含Memory,第三方IP和我们自己做的子模块。在Innovus中Macro和Block是同一个概念。

Std Cell: Standard Cell标准单元,它是foundary代工厂提供library中的基本功能cell,比如BUF,INVERTER都是标准单元cell。Std cell具有简单的功能、相对较小的面积和较短的设计周期,适用于芯片设计中一些基本电路的设计。现在大部分的芯片设计都是基于foundary提供的library的Std cell的设计。

Macro摆放是需要工程师自己来摆放,不能用工具自己做placement。在摆放Macro时需要遵守以下几大原则。

1.在core外围放置宏单元

由于会产生大量的detour布线,在core内部放置宏单元会在布线过程中造成严重后果。这是因为宏单元等于布线的一个大blockage。同样,将宏单元放置在core外围使向这些宏单元供电变得更加容易,并减少了消耗大量功率的宏单元出现IR drop问题的可能性。

Floorplan Macro摆放原则

  1. 放置宏单元时考虑与已固定位置的单元之间的连接

当您决定宏单元位置时,您必须注意与已固定位置的单元 (如I/O和已布局的宏单元) 的连接。根据数据流,最好将宏单元放置在有关联的已固定位置的单元附近。可以通过在EDA工具中的图形用户界面中显示线路连接关系来检查连接。

在这里插入图片描述

  1. 调整宏单元的方向实现最小化引脚之间的距离
    在确定宏单元的方向时,还必须考虑引脚的位置和相应的连接。

在这里插入图片描述

  1. 在宏单元周围预留足够的空间

对于常规的网络布线和电源布线,您必须在宏单元周围保留足够的布线空间。在这种情况下,精确估计布线资源非常重要。使用拥塞图来识别宏单元之间的hotspots ,并根据需要调整位置。

在这里插入图片描述

  1. 尽可能减少宏单元之间的空白区域

除预留布线资源外,减少宏单元之间的空白区域可以增加标准单元的利用面积。选择不同的宽高比 (如果该选项可用) 可以消除宏单元之间的空白区域。

在这里插入图片描述

  1. 为电源网络预留空间

所需电源布线的数量会根据功耗而变化。您必须估算功耗并为电源网络预留足够的空间。如果您低估了电源网络所需的空间,则可能会遇到布线问题。
在这里插入图片描述

IO Port /IO Terminal:

首先通过两个图来说明port和terminal的概念。port其实就是block level模块的端口或接口信号。

在netlist会这样来描述。module design_name (port1,port2,port3, …,portn ); 这里的port1直至portn为当前设计模块的输入和输出端口。对应描述的就是一个带功能的黑盒子。

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

但在数字后端PR实现时需要把这个逻辑连接转成物理连接,即要做metal的连接。显然这个port是逻辑的存在,无法与metal进行一个物理连接。因此,PR阶段就引入了terminal的概念,在摆放port时会在这个port上面create一个terminal,即一块metal shape,而且这个terminal是和这个port是一一对应的。这样后续工具绕线时就可以通过这个terminal的metal shape进行实际的物理连接。

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

而pin是指对于cell来说的,比如下面这块AOI cell,它总共有四个pin,其中有三个输入pin,分别是A2,B1,B2,还有一个输出pin ZN。 每个cell都有它的功能,所谓的功能就是这个cell它能干什么。功能可以根据标准单元库文档的真值表得知。举个简单的例子,普通inverter,它的功能就是起到数据取反的功能。一个cell要具备特定的功能就肯定要有特定的引脚,就是这里说的pin。这里就可以理解成人要有正常的功能,它就必须有手有脚。通过手脚大脑等才能充分发挥人的功能。

在这里插入图片描述

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

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

相关文章

如何远程执行脚本不留痕迹

通常我们在做远程维护的时候&#xff0c;会有这么一个需求&#xff0c;就是我想在远程主机执行一个脚本&#xff0c;但是这个脚本我又不想保留在远程主机上&#xff0c;那么有人就说了&#xff0c;那就复制过去再登录远程执行不就行了吗&#xff1f;嗯嗯&#xff0c;但是这还不…

【Lua】java 调用redis执行 lua脚本

【Lua】java 调用redis执行 lua脚本 public Object executeLuaScript(String script, List<String> keys, Object... args) {// 注意: 这里 Long.class 是返回值类型, 一定要指定清楚 不然会报错return this.redisTemplate.execute(RedisScript.of(j脚本, Long.class), k…

利用混合磁共振成像 - 显微镜纤维束成像技术描绘结构连接组|文献速递-深度学习医疗AI最新文献

Title 题目 Imaging the structural connectome with hybrid MRI-microscopy tractography 利用混合磁共振成像 - 显微镜纤维束成像技术描绘结构连接组 01 文献速递介绍 通过多种模态绘制大脑结构能够增进我们对大脑功能、发育、衰老以及疾病的理解&#xff08;汉森等人&am…

Shell脚本实践(修改文件,修改配置文件,执行jar包)

1、前言 需要编写一个shell脚本支持 1、修改.so文件名 2、修改配置文件 3、执行jar包 2、代码解析 2.1、修改.so文件名 so_file_dir="/opt/casb/xxx/lib" # 处理.so文件 cd "$so_file_dir" || { echo "错误: 无法进入目录 $so_file_dir"; exit …

基于GPUGEEK 平台进行深度学习

一、平台简介 GPUGEEK 是一个专注于提供 GPU 算力租赁服务的平台&#xff0c;在人工智能与深度学习领域为用户搭建起便捷的算力桥梁。它整合了丰富多样的 GPU 资源&#xff0c;涵盖 RTX - 4090、RTX - 3090、A100 - PCIE 等多种型号&#xff0c;满足不同用户在模型训练、数据处…

Android Framework学习五:APP启动过程原理及速度优化

文章目录 APP启动优化概述APP启动流程点击图片启动APP的过程启动触发Zygote 与应用进程创建Zygote进程的创建应用进程初始化 ApplicationActivity 启动与显示 优化启动时黑白屏现象可优化的阶段Application阶段相关优化 Activity阶段数据加载阶段 Framework学习系列文章 APP启动…

Web 实时通信技术:WebSocket 与 Server-Sent Events (SSE) 深入解析

一、WebSocket&#xff1a; &#xff08;一&#xff09;WebSocket 是什么&#xff1f; WebSocket 是一种网络通信协议&#xff0c;它提供了一种在单个 TCP 连接上进行全双工通信的方式。与传统的 HTTP 请求 - 响应模型不同&#xff0c;WebSocket 允许服务器和客户端在连接建立…

MySQL(8)什么是主键和外键?

主键&#xff08;Primary Key&#xff09;和外键&#xff08;Foreign Key&#xff09;是关系数据库中用于定义和维护表之间关系的重要概念。以下是详细的解释、示例代码和操作步骤。 主键&#xff08;Primary Key&#xff09; 定义 主键是表中的一个或多个字段&#xff0c;其…

任意复杂度的 JSON 数据转换为多个结构化的 Pandas DataFrame 表格

以下是一个 完整、结构清晰、可运行的 Python 工具&#xff0c;用于将任意复杂度的 JSON 数据转换为多个结构化的 Pandas DataFrame 表格。该工具支持嵌套对象、嵌套数组&#xff0c;并通过主键和外键建立表之间的关联关系。 if __name__ "__main__":# 示例 JSON 数…

【SSL部署与优化​】​​HTTP/2与HTTPS的协同效应

HTTP/2与HTTPS的协同效应&#xff1a;为何HTTP/2强制要求TLS 1.2&#xff1f; HTTP/2是HTTP协议的现代升级版&#xff0c;旨在通过多路复用、头部压缩等技术提升性能。然而&#xff0c;HTTP/2的设计与部署与HTTPS&#xff08;TLS加密&#xff09;紧密相关&#xff0c;甚至强制…

爬虫请求频率应控制在多少合适?

爬虫请求频率的控制是一个非常重要的问题&#xff0c;它不仅关系到爬虫的效率&#xff0c;还涉及到对目标网站服务器的影响以及避免被封禁的风险。合理的请求频率需要根据多个因素来综合考虑&#xff0c;以下是一些具体的指导原则和建议&#xff1a; 一、目标网站的政策 查看网…

使用Visual Studio将C#程序发布为.exe文件

说明 .exe 是可执行文件&#xff08;Executable File&#xff09;的扩展名。这类文件包含计算机可以直接运行的机器代码指令&#xff0c;通常由编程语言&#xff08;如 C、C、C#、Python 等&#xff09;编译或打包生成。可以用于执行自动化操作&#xff08;执行脚本或批处理操…

分布式1(cap base理论 锁 事务 幂等性 rpc)

目录 分布式系统介绍 一、定义与概念 二、分布式系统的特点 三、分布式系统面临的挑战 四、分布式系统的常见应用场景 CAP 定理 BASE 理论 BASE理论是如何保证最终一致性的 分布式锁的常见使用场景有哪些&#xff1f; 1. 防止多节点重复操作 2. 资源互斥访问 3. 分…

常见相机焦段的分类及其应用

相机焦段是指镜头的焦距范围&#xff0c;决定了拍摄时的视角、画面范围和透视效果。不同焦段适合不同的拍摄场景和主题&#xff0c;以下是常见焦段的分类及其应用&#xff1a; 一、焦段的核心概念 焦距&#xff1a;镜头光学中心到成像传感器的距离&#xff08;单位&#xff1a…

H5S 视频监控AWS S3 对象存储

本文介绍一下如何使用S3对象存储作为H5S 存储空间进行录像存储 然后创建一个对象存储&#xff0c;本文以minio 为例(实际项目亲测天翼云)&#xff1a; 首先安装 s3fs 如果是redhat系列&#xff0c;使用如下命令 sudo yum install epel-release sudo yum install s3fs-fuse …

算法第十八天|530. 二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先

530. 二叉搜索树的最小绝对差 题目 思路与解法 第一想法&#xff1a; 一个二叉搜索树的最小绝对差&#xff0c;从根结点看&#xff0c;它的结点与它的最小差值一定出现在 左子树的最右结点&#xff08;左子树最大值&#xff09;和右子树的最左结点&#xff08;右子树的最小值…

Nginx 动静分离在 ZKmall 开源商城静态资源管理中的深度优化

在 B2C 电商高并发场景下&#xff0c;静态资源&#xff08;图片、CSS、JavaScript 等&#xff09;的高效管理直接影响页面加载速度与用户体验。ZKmall开源商城通过对 Nginx 动静分离技术的深度优化&#xff0c;将静态资源响应速度提升 65%&#xff0c;带宽成本降低 40%&#xf…

PostgREST:无需后端 快速构建RESTful API服务

在现代 Web 开发中&#xff0c;API 已成为连接前后端的核心桥梁&#xff0c;传统的做法是通过后端框架来构建API接口&#xff0c;然后由前后端人员进行联调。 PostgREST是基于无服务器的一种实现方案&#xff0c;允许开发者将PostgreSQL数据库直接暴露为RESTful API&#xff0…

MySQL——九、锁

分类 全局锁表级锁行级锁 全局锁 做全库的逻辑备份 flush tables with read lock; unlock tables;在InnoDB引擎中&#xff0c;我们可以在备份时加上参数–single-transaction参数来完成不加锁的一致性数据备份 mysqldump --single-transaction -uroot -p123456 itcast>…

基于 Kubernetes 部署容器平台kubesphere

一 前言&#xff1a; k8s 大家都已经非常熟悉了&#xff0c;网上流传着非常多的搭建部署文档&#xff0c;有kubeadmin的有二进制的&#xff0c;还有基于第三方的部署工具的&#xff0c;反正是各种部署方法都有&#xff0c;k8s部署技术热门可见一斑。但是不管哪种部署都需要了解…