数字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
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问题的可能性。
- 放置宏单元时考虑与已固定位置的单元之间的连接
当您决定宏单元位置时,您必须注意与已固定位置的单元 (如I/O和已布局的宏单元) 的连接。根据数据流,最好将宏单元放置在有关联的已固定位置的单元附近。可以通过在EDA工具中的图形用户界面中显示线路连接关系来检查连接。
- 调整宏单元的方向实现最小化引脚之间的距离
在确定宏单元的方向时,还必须考虑引脚的位置和相应的连接。
- 在宏单元周围预留足够的空间
对于常规的网络布线和电源布线,您必须在宏单元周围保留足够的布线空间。在这种情况下,精确估计布线资源非常重要。使用拥塞图来识别宏单元之间的hotspots ,并根据需要调整位置。
- 尽可能减少宏单元之间的空白区域
除预留布线资源外,减少宏单元之间的空白区域可以增加标准单元的利用面积。选择不同的宽高比 (如果该选项可用) 可以消除宏单元之间的空白区域。
- 为电源网络预留空间
所需电源布线的数量会根据功耗而变化。您必须估算功耗并为电源网络预留足够的空间。如果您低估了电源网络所需的空间,则可能会遇到布线问题。
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。这里就可以理解成人要有正常的功能,它就必须有手有脚。通过手脚大脑等才能充分发挥人的功能。
相关文章:

数字IC后端零基础入门基础理论(Day2)
数字IC后端零基础入门基础理论(Day1) Placement Blockage: cell摆放阻挡层。它是用来引导工具做placement的一种物理约束或手段,目的是希望工具按照我们的要求来做标准单元的摆放。 它主要有三种类型,分别是hard placement bloc…...

零成本打造专属AI图像处理平台:IOPaint本地部署与远程访问指南
文章目录 前言1.什么是IOPaint?2.本地部署IOPaint3.IOPaint简单实用4.公网远程访问本地IOPaint5.内网穿透工具安装6.配置公网地址7.使用固定公网地址远程访问总结 前言 移动摄影的普及使得记录生活变得轻而易举,然而获得一张高质量的照片往往需要付出不…...

操作系统-物理结构
操作系统使用read系统调用,将逻辑地址转(对于用户来说逻辑地址容易计算,因为各个逻辑块都相邻)成了逻辑块号和块内偏移量,并根据分配存储方式,将逻辑块号转成物理块号和块内偏移量 对于用户来说的文件的一…...
CGO中引入 <cstddef> <vector> fatal error: cstddef: No such file or directory 失败的原因
原因 可以在CPP里面引入C的头文件,但不能在h文件引入 错误 fatal error: cstddef: No such file or directory 测试case,下面的可以,如果把他放到头文件就会报错 // main.go package main// #cgo CXXFLAGS: -stdc11 // #cgo LDFLAGS: -l…...
亚马逊电商广告革命:当AI推荐沦为红海陷阱,中国卖家如何破局?
一、算法同质化:跨境电商的广告效率危机 亚马逊广告系统正陷入一场自我迭代的悖论。其力推的AI推荐广告模板(2023年覆盖率达78%),本意为降低运营门槛,却意外催生出"广告红海效应"——据Jungle Scout监测数据…...

《AI大模型应知应会100篇》第64篇:构建你的第一个大模型 Chatbot
第64篇:构建你的第一个大模型 Chatbot 手把手教你从零开始搭建一个基于大模型的聊天机器人 摘要 你是否想过,自己也能构建一个像 ChatGPT 一样能对话、能思考的聊天机器人(Chatbot)?别担心,这并不需要你是…...

STM32 片上资源之串口
STM32 片上资源之串口 1 串口介绍1.1 初步介绍1.2 主要特性1.2.1 USART特性1.2.2 UART特性 1.3 主要寄存器1.4 波特率计算1.5 常用工作模式1.5.1 轮询模式:1.5.2 中断模式:1.5.3 DMA模式: 1.6 常见应用1.7 注意事项 2 软件层面协议2.1 基本概…...

职坐标IT培训:互联网行业核心技能精讲
在互联网行业高速迭代的今天,掌握全链路核心技能已成为职业发展的关键突破口。职坐标IT培训聚焦行业需求,系统拆解从需求分析到系统部署的完整能力模型,助力从业者构建多维竞争力。无论是产品岗的用户调研与原型设计,还是技术岗的…...

FlashInfer - 介绍 LLM服务加速库 地基的一块石头
FlashInfer - 介绍 LLM服务加速库 地基的一块石头 flyfish 大型语言模型服务中的注意力机制 大型语言模型服务(LLM Serving)迅速成为重要的工作负载。Transformer中的算子效率——尤其是矩阵乘法(GEMM)、自注意力(S…...

MySQL 学习(七)undo log、redo log、bin log 的作用以及持久化机制
目录 一、前言二、三大日志的概念、作用、存储位置2.1 bin log 二进制执行日志2.2 undo log 事务回滚日志2.3 redo log 快速恢复日志 三、补充说明3.1 补充:为什么使用 buffer pool 而不直接修改磁盘中的数据?3.2 补充:同为操作数据变更的日志…...
vue中,created和mounted两个钩子之间调用时差值受什么影响
在 Vue 中,created 和 mounted 是两个生命周期钩子,它们之间的调用时差主要受以下几个因素影响: 🟢 1. 模板复杂度与渲染耗时(最主要因素) mounted 的触发时间是在组件的 DOM 被挂载之后(也就是…...
16S18S_OTU分析(3)
OTU的定义 OTU:操作分类单元是在系统发生学研究或群体遗传学研究中,为了便于进行分析,人为给某一个分类单元(如品系、种、属、分组等)设置的同一标志。目的:OTU用于将相似的序列归为一类,以便于…...
电机的导程和脉冲之间的关系
文章目录 导程计算关系相互影响关系 在电机相关领域中,导程通常是针对直线电机或带有丝杠等传动机构的电机系统而言的。 导程 导程是指丝杠或类似传动部件旋转一周时,与其相连的运动部件在轴向方向上移动的距离。例如,在一个由电机驱动丝杠来…...

时间序列预测建模的完整流程以及数据分析【学习记录】
文章目录 1.时间序列建模的完整流程2. 模型选取的和数据集2.1.ARIMA模型2.2.数据集介绍 3.时间序列建模3.1.数据获取3.2.处理数据中的异常值3.2.1.Nan值3.2.2.异常值的检测和处理(Z-Score方法) 3.3.离散度3.4.Z-Score3.4.1.概述3.4.2.公式3.4.3.Z-Score与…...
Flink和Spark的选型
在Flink和Spark的选型中,需要综合考虑多个技术维度和业务需求,以下是在项目中会重点评估的因素及实际案例说明: 一、核心选型因素 处理模式与延迟要求 Flink:基于事件驱动的流处理优先架构,支持毫秒级低延迟、高吞吐的…...

FFmpeg3.4 libavcodec协议框架增加新的decode协议
查看ffmepg下面的configure文件发现,config.h文件;解码协议的配置是通过libavcodec/allcodecs.c文件,通过查找DEC关键字生成的。 1、在libavcodec/allcodecs.c 新增REGISTER_ENCODER(MYCODE, mycode); REGISTER_ENCODER(VP8_VAAPI, vp8_vaapi); …...

无人机数据处理与特征提取技术分析!
一、运行逻辑 1. 数据采集与预处理 多传感器融合:集成摄像头、LiDAR、IMU、GPS等传感器,通过硬件时间戳或PPS信号实现数据同步,确保时空一致性。 边缘预处理:在无人机端进行数据压缩(如JPEG、H.265)…...

前端面试宝典---js垃圾回收机制
什么是垃圾回收 垃圾回收是指一种自动内存管理机制,当声明一个变量时,会在内存中开辟一块内存空间用于存放这个变量。当这个变量被使用过后,可能再也不需要它了,此时垃圾回收器会自动检测并回收这些不再使用的内存空间。垃圾回收…...

IDEA 新建 SpringBoot 项目时,没有高版本 SpringBoot 可选
环境描述 IDEA 2025.1.1JDK17Maven 3.9.9 问题描述 IDEA 新建 SpringBoot 项目时,没有高版本 SpringBoot 可选,可以看到此时的最高版本为 3.0.2: 问题分析 返回上一步,可以发现 Spring Initializr 的服务地址为阿里云&#…...

2025年PMP 学习十三 第9章 项目资源管理(9.1,9.2)
2025年PMP 学习十三 第9章 项目资源管理(9.1,9.2) 序号过程过程组9.1规划资源管理规划9.2估算活动资源规划9.3获取资源执行9.4建设团队执行9.5管理团队执行9.6控制资源监控 文章目录 2025年PMP 学习十三 第9章 项目资源管理(9.1,9.2…...

动态规划问题 -- 多状态模型(删除并获得点数)
目录 动态规划分析问题五步曲题目概述预处理阶段 代码编写 动态规划分析问题五步曲 不清楚动态规划分析问题是哪关键的五步的少年们可以移步到 链接: 动态规划算法基础 这篇文章非常详细的介绍了动态规划算法是如何分析和解决问题的 题目概述 链接: 删除并获得点数 预处理阶段…...

Jenkins里构建一个简单流水线
前情提要:传送门,我在虚拟机里装了一个Ubuntu,然后在docker里装了一个Jenkins及GitLab! 点击这里下载或fork一个简单的Java项目用于学习Jenkins! 目标:修改代码后,上传到git,在在Jenkins流水线里…...

Java Queue 接口实现
Date: 2025.05.14 20:46:38 author: lijianzhan Java中的Queue接口是位于java.util包中,它是一个用于表示队列的接口。队列是一种先进先出(First-In-First-Out, 简称为FIFO)的数据结构,其中元素被添加到队列的尾部,并从…...
华为0507机试
题目二 建设基站 有一棵二叉树,每个节点上都住了一户居民。现在要给这棵树上的居民建设基站,每个基站只能覆盖她所在与相邻的节点,请问信号覆盖这棵树最少需要建设多少个基站 #include <bits/stdc.h> using namespace std;const int …...

OpenEvidence AI临床决策支持工具平台研究报告
平台概述 OpenEvidence是一个专为医疗专业人士设计的临床决策支持工具,旨在通过整合各类临床计算器和先进的人工智能技术,提高医生的诊疗决策效率和准确性。作为一款综合性医疗平台,OpenEvidence将复杂的医学计算流程简化,同时提供个性化的临床建议,使医生能够更快、更准…...
`RotationTransition` 是 Flutter 中的一个动画组件,用于实现旋转动画效果
RotationTransition 是 Flutter 中的一个动画组件,用于实现旋转动画效果。它允许你对子组件进行动态的旋转变换,从而实现平滑的动画效果。RotationTransition 通常与 AnimationController 和 Tween 一起使用,以控制动画的开始、结束和过渡效果…...
Android多媒体——媒体start流程分析(十三)
当多媒体的数据源准备好,并且完成调用准备结束流程后,接下来就开始是调用 start() 方法开始播放媒体了。这里我们就来分析一下媒体开始播放的整个流程。 一、媒体播放流程 对于媒体播放流程的 Java 层和 JNI 层与前面的示例基本相同,这里不再重复展示了,我们直接从 mediap…...

如何远程执行脚本不留痕迹
通常我们在做远程维护的时候,会有这么一个需求,就是我想在远程主机执行一个脚本,但是这个脚本我又不想保留在远程主机上,那么有人就说了,那就复制过去再登录远程执行不就行了吗?嗯嗯,但是这还不…...
jQuery知识框架
一、jQuery 基础 核心概念 $ 或 jQuery:全局函数,用于选择元素或创建DOM对象。 链式调用:多数方法返回jQuery对象,支持连续操作。 文档就绪事件: $(document).ready(function() { /* 代码 */ }); // 简写 $(function…...
java加强 -File
File类的对象可以代表文件/文件夹,并可以调用其提供的方法对象文件进行操作。 File对象既可以代表文件,也可以代表文件夹。 创建File对象,获取某个文件的信息 语法: File 对象名 new File("需要访问文件的绝对路径&…...