当前位置: 首页 > news >正文

数字IC后端设计实现 | PR工具中到底应该如何控制density和congestion?(ICC2Innovus)

吾爱IC社区星友提问:请教星主和各位大佬,对于一个模块如果不加干预工具会让inst挤成一团,后面eco修时序就没有空间了。如果全都加instPadding会导致面积不够overlap,大家一般怎么处理这种问题?

在数字IC后端设计实现中经常会有这方面的困扰。这也是小编在咱们社区IC后端训练营中一直强调每个步骤做完都要做physical方面的检查——congestion和density map review。

对于一个design结果,congestion的overflow太高会导致design绕不通,这点相信所有人都已经有共识了。那么density太高,会有哪些弊端呢?

1)后续Timing ECO无法做cell sizeup和buffer insertion
2)PT Dmsa Timing和PR Timing ECO后结果一致性差
3)Routing DRC
4)动态IR Drop差

那么我们在做数字后端PR实现时应该如何控制congestion和density的约束呢?

Innovus:

● 设置Module Padding

setPlaceMode -modulePadding 1.2

上面的mode setting相当于把指定module的面积扩大20%。

如果想要reset module padding的设置,我们可以把modulePadding值设置成1.0。

需要注意的是Module padding 仅仅对corase placer引擎有用,而且是一个soft constraint。如果希望工具在其他阶段比如refinePlace也honor这种约束,我们需要使用specifyInstPad来约束。而且还需要设置如下特殊的place mode setting。

setPlaceMode -place_detail_honor_inst_pad

● 均匀摆放

setPlaceMode -place_global_uniform_density true (对于设计density低于70%的更有用)

setPlaceMode -place_global_max_density 0.82

setOptMode -maxLocalDensity 0.75(隐藏变量)

ICC2:

下图所示为ICC2中没有使用congestion和density控制开关的实现结果。从图中可以看到局部区域congestion非常严重,而且module的cell非常聚集,设计中很多地方都是空的。

ICC2 Congestion Map &Density Map

在ICC2中是支持工具自动调整density和congestion约束值的。在place的log中往往能看到如下所示的信息。

Information: Automatic density control has selected the following settings: max_density xx; congestion_driven_max_utilization xx (PLACE-027)

如果我们发现工具自己调整的结果不理想,我们可以通过下面的app option将auto max density功能关掉,并设置上我们自己认为合理的约束值。
set_app_options -list [list plan.place.auto_max_density false]
place.coarse.max_density=0

set_app_options -name place.coarse.congestion_driven_max_util -value $util_value

set_app_options -name place.coarse.max_density -value $density_value

Standard cell均匀分布后的congestion map

● place.coarse.auto_density_control

默认true,工具会在不产生congestion的情况下尽量提高局部的cell density。如果我们发现工具最终做出来的density还是太高了,我们可以不让工具自己来调整density值。

● place.coarse.max_density

默认0,place时local density的最大值,遇到auto density control为true时工具会在不同阶段给出合适的max density值,当我们定义一个density值,工具会尽量按照这个约束值来做标准单元的摆放。

● place.coarse.congestion_driven_max_util

默认0.93,congestion driven的情况下,工具为了降低congestion区域的利用率,其周围的利用率最高可以堆到多少。如果当我们自定义的congestion值超过整个design的利用率,这个设置就失效了。

max_util来控制解congestion时,往四周推散cell的力度,最高不可以超过它。比如max_util=0.9,那么往周围推散cell时,周围的std cell密度(利用率)达到了0.9就停止推了,即使还没有完全解决congestion也会停下来。

相关文章:

数字IC后端设计实现 | PR工具中到底应该如何控制density和congestion?(ICC2Innovus)

吾爱IC社区星友提问:请教星主和各位大佬,对于一个模块如果不加干预工具会让inst挤成一团,后面eco修时序就没有空间了。如果全都加instPadding会导致面积不够overlap,大家一般怎么处理这种问题? 在数字IC后端设计实现中…...

产品经理与产品运营的区别和联系

一、两者的职责区别 产品经理的目的:是创造有价值的产品 产品运营的目的:是让产品能有效的发挥出它应有的价值 二、两者的工作内容区别产品经理的工作内容 产品的经理的目的是创造有价值的产品,因此产品经理的所有工作都是围绕着&#xf…...

CMU15-445-Spring-2023-分布式DBMS初探(lec21-24)

Lecture #21_ Introduction to Distributed Databases Distributed DBMSs 分布式 DBMS 将单个逻辑数据库划分为多个物理资源。应用程序(通常)并不知道数据被分割在不同的硬件上。系统依靠单节点 DBMS 的技术和算法来支持分布式环境中的事务处理和查询执…...

Arch linux 安装

Arch linux 安装 介绍下载制作iSO启动盘安装arch linux设置字体连接互联网 安装过程磁盘分区设置设置镜像源设置引导文件挂载点安装base等基础软件生成fatab文件更改时区更改编码、语言更改编码更改语言 用户管理设置root密码新建普通用户 安装grub启动网络服务/GDM查看系统网络…...

最新ChatGPT/GPT4科研应用与AI绘图及论文高效写作

详情点击链接:最新ChatGPT/GPT4科研应用与AI绘图及论文高效写作 一OpenAI 1.最新大模型GPT-4 Turbo 2.最新发布的高级数据分析,AI画图,图像识别,文档API 3.GPT Store 4.从0到1创建自己的GPT应用 5. 模型Gemini以及大模型Clau…...

【leetcode】移除元素

大家好,我是苏貝,本篇博客带大家刷题,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 一.暴力求解法二.使用额外数组三.原地修改数组 点击查看题目 一.暴力求解法 若我们不考虑时间复杂度…...

Spring Boot整合Redis的高效数据缓存实践

引言 在现代Web应用开发中,数据缓存是提高系统性能和响应速度的关键。Redis作为一种高性能的缓存和数据存储解决方案,被广泛应用于各种场景。本文将研究如何使用Spring Boot整合Redis,通过这个强大的缓存工具提高应用的性能和可伸缩性。 整合…...

FastApi-参数接收的正确使用(2)

前言 本文是该专栏的第2篇,后面会持续分享FastApi以及项目实战的各种干货知识,值得关注。 本文重点介绍,在使用FastApi使用“参数接收”时遇到的三种类型“路径参数”,“查询参数”,“请求体”的相关问题以及相应的解决方案。 具体详细知识点,跟着笔者直接往下看正文。…...

三、需求规格说明书(软件工程示例)

1.引言 1.1编写目的 1.2项目背景 1.3定义 1.4参考资料 2.任务概述 2.1目标 2.2运行环境 2.3条件与限制 3.数据描述 3.1静态数据 3.2动态数据 3.3数据库介绍 3.4数据词典 3.5数据采集 4.功能需求 …...

Elasticsearch 查询语句概述

目录 1. Match Query 2. Term Query 3. Terms Query 4. Range Query 5. Bool Query 6. Wildcard Query 7. Fuzzy Query 8. Prefix Query 9. Aggregation Query Elasticsearch 是一个基于 Lucene 的搜索引擎,提供了丰富的查询DSL(Domain Specifi…...

kafka简单介绍和代码示例

“这是一篇理论文章,给大家讲一讲kafka” 简介 在大数据领域开发者常常会听到MQ这个术语,该术语便是消息队列的意思, Kafka是分布式的发布—订阅消息系统。它最初由LinkedIn(领英)公司发布,使用Scala语言编写,与2010年…...

一次解决ForkJoinPool日志追踪的辛酸经历

本文主要分享了一次解决ForkJoinPool日志追踪的辛酸经历。历时3个月终于找到通用的解决方案,以此文分享给有需要的你。 一、需求背景 1.某日,某同事根据日志ID排查生产环境问题过程中,发现日志不全 2.经排查发现中间有很多线程为ForkJoinP…...

VM使用教程--SDK取图 视频笔记

本笔记均由海康机器人官网的V学院视频中记录所得,属于省流大师了[doge] 图像采集 图像采集包括1图像源,2多图采集,3输出图像,4缓存图像,5光源 1图像源 图像源包括本地图像,相机采图,SDK 本…...

11.spring boot 启动源码(一)

目录 概述SpringApplication静态方法构造方法run 实例方法配置文件Actuator 工作原理*EndpointAutoConfigurationBeansEndpointAutoConfigurationShutdownEndpointAutoConfiguration结束概述 spring boot 版本 2.6.13 spring boot 启动源码(一) 涉及 SpringApplication 中静态…...

【微服务】springcloud集成sleuth与zipkin实现链路追踪

目录 一、前言 二、分布式链路调用问题 三、链路追踪中的几个概念 3.1 什么是链路追踪 3.2 常用的链路追踪技术 3.3 链路追踪的几个术语 3.3.1 span ​编辑 3.3.2 trace 3.3.3 Annotation 四、sluth与zipkin概述 4.1 sluth介绍 4.1.1 sluth是什么 4.1.2 sluth核心…...

数学建模-预测人口数据

目录 中国09~18年人口数据 创建时间 绘制时间序列图 使用专家建模器 得到结果 预测结果 残差的白噪声检验 中国09~18年人口数据 创建时间 路径:数据-> 定义日期和时间 绘制时间序列图 使用专家建模器 看看spss最终判断是那个模型最佳的契合 得到结果 预…...

SpringBoot 集成 Canal 基于 MySQL 做数据同步

一、canal 组件关系 下载地址:https://github.com/alibaba/canal/releases/download/canal-1.1.7/ 这里面主要的有两个 canal.deployer-1.1.7.tar.gz 和 canal.adapter-1.1.7.tar.gz,canal.admin-1.1.7.tar.gz 是一个监控服务,可选&#xf…...

【CVE-2022-22733漏洞复现】

Apache ShardingSphere ElasticJob-UI漏洞 漏洞编号:CVE-2022-22733 文档说明 本文作者:SwBack 创作时间:2024/1/21 19:19:19 知乎:https://www.zhihu.com/people/back-88-87 CSDN:https://blog.csdn.net/qq_30817059 百度搜索: SwBack漏洞描述 Apache ShardingSphere Elast…...

Python爬虫---scrapy框架---当当网管道封装

项目结构: dang.py文件:自己创建,实现爬虫核心功能的文件 import scrapy from scrapy_dangdang_20240113.items import ScrapyDangdang20240113Itemclass DangSpider(scrapy.Spider):name "dang" # 名字# 如果是多页下载的话, …...

【机器学习】机器学习四大类第01课

一、机器学习四大类 有监督学习 (Supervised Learning) 有监督学习是通过已知的输入-输出对(即标记过的训练数据)来学习函数关系的过程。在训练阶段,模型会根据这些示例调整参数以尽可能准确地预测新的、未见过的数据点的输出。 实例&#x…...

Arrow:可视化节点系统如何解决游戏叙事设计中的效率瓶颈

Arrow:可视化节点系统如何解决游戏叙事设计中的效率瓶颈 【免费下载链接】Arrow Game Narrative Design Tool 项目地址: https://gitcode.com/gh_mirrors/arrow/Arrow 在游戏开发的深夜,叙事设计师李明正对着屏幕上密密麻麻的剧情分支图发愁。这个…...

Phi-4-mini-reasoning在ollama中启用flash attention:推理速度提升实测报告

Phi-4-mini-reasoning在ollama中启用flash attention:推理速度提升实测报告 你是否遇到过这样的场景:部署了一个轻量级推理模型,满怀期待地输入问题,结果等待了十几秒才得到回复?对于需要快速响应的应用,比…...

Bongo Cat功能选择指南:从需求定位到场景化配置

Bongo Cat功能选择指南:从需求定位到场景化配置 【免费下载链接】BongoCat 让呆萌可爱的 Bongo Cat 陪伴你的键盘敲击与鼠标操作,每一次输入都充满趣味与活力! 项目地址: https://gitcode.com/gh_mirrors/bong/BongoCat Bongo Cat是一…...

给STM32密码锁加个“记忆”:手把手教你用CubeMX配置I2C读写EEPROM(AT24C02)

为STM32密码锁赋予持久记忆:CubeMX驱动AT24C02 EEPROM全攻略 当你的密码锁在断电后依然能记住最后一次设置的密码,这种"记忆"能力往往能大幅提升用户体验。本文将带你深入探索如何通过I2C总线连接AT24C02 EEPROM芯片,为基于STM32F1…...

零基础玩转BEYOND REALITY Z-Image:手把手教你搭建高精度文生图引擎

零基础玩转BEYOND REALITY Z-Image:手把手教你搭建高精度文生图引擎 1. 引言:为什么选择BEYOND REALITY Z-Image 在当今AI图像生成领域,BEYOND REALITY Z-Image以其卓越的写实表现力脱颖而出。这款基于Z-Image-Turbo底座和BEYOND REALITY S…...

APKMirror客户端:安卓应用安全下载与管理的革新方案

APKMirror客户端:安卓应用安全下载与管理的革新方案 【免费下载链接】APKMirror 项目地址: https://gitcode.com/gh_mirrors/ap/APKMirror 在安卓应用获取的过程中,用户常常面临两难选择:官方应用商店的更新滞后与第三方平台的安全隐…...

PP-DocLayoutV3入门必看:从零部署到JSON结构化输出完整流程

PP-DocLayoutV3入门必看:从零部署到JSON结构化输出完整流程 1. 开篇:认识文档布局分析利器 你是否曾经遇到过这样的困扰:面对扫描的文档图片,想要提取其中的文字和结构信息,却不知道从何下手?或者需要处理…...

LiuJuan20260223Zimage在CSDN技术博客创作中的全流程辅助

LiuJuan20260223Zimage:技术博主的高效创作伙伴 写技术博客,最头疼的是什么? 是选题枯竭,对着空白文档发呆半天?是写到一半,发现某个技术点解释不清,需要到处查资料?还是好不容易写…...

ReflectiveDLLInjection实战:从源码编译到进程注入完整流程

ReflectiveDLLInjection实战:从源码编译到进程注入完整流程 【免费下载链接】ReflectiveDLLInjection Reflective DLL injection is a library injection technique in which the concept of reflective programming is employed to perform the loading of a libra…...

OpenClaw多模态扩展:结合百川2-13B-4bits与OCR的图像信息处理流程

OpenClaw多模态扩展:结合百川2-13B-4bits与OCR的图像信息处理流程 1. 为什么需要多模态能力扩展? 上周我需要整理一批技术文档的截图,包含代码片段、错误日志和流程图。手动转录不仅耗时,还容易出错。这让我开始思考&#xff1a…...