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

数字IC后端实现Innovus |给各种IP子模块添加port buffer和antenna diode万能脚本

我们之前分享过在hierarchical flow后端实现中为了确保顶层flatten时timing signoff和physical signoff看到的情况和模块级看到的情况一致,我们会在模块io port添加io port buffer(主要是timing,antenna一致性)。实际上在芯片级我们还会给各大子模块Block和IP的接口添加buffer。

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

在一些数模混合设计中,为了考虑CDM问题,我们会在模块接口处添加Antenna 二极管,具体如下图所示。

接口io port添加Antenna Diode

为了防止CDM,我们需要对这个HDMI IP的所有端口添加antenna diode。如果IP内部已经添加过了则可以跳过。

数字IC后端设计如何从零基础快速入门?(内附数字IC后端学习视频)
在这里插入图片描述

在我们低功耗四核A7 Top项目中,我们也可以对各个cpu子模块接口添加io pin buffer。这样即便子模块a7core的lib文件不准确,在a7top顶层也不会看到跟子模块接口的长线了。

在这里插入图片描述

今天分享下每个项目都会用到的给各种Block添加buffer和antenna的万能脚本。这个又是一个练习脚本的好例子。

proc add_buffer_diode_on_block_pins {args} {
parse_proc_arguments -args a r g s o p t i o n s s e t b u f f e r c e l l " args options set buffer_cell " argsoptionssetbuffercell"options(-buffer)"
set diode_cell “ o p t i o n s ( − d i o d e ) " s e t b u f f i l e " options(-diode)" set buf_file " options(diode)"setbuffile"options(-buffer_eco_file)”
set diode_file “ o p t i o n s ( − d i o d e e c o f i l e ) " s e t p r e f i x " options(-diode_eco_file)" set prefix " options(diodeecofile)"setprefix"options(-prefix)”

set j 0
set file1 [open $buf_file w]
set file [open $diode_file w]

puts $file1 “setEcoMode -updateTiming false -refinePlace false”
puts $file1 "setEcoMode -batchMode true "

foreach pin [dbGet selected.instTerms] {
puts $file1 “ecoAddRepeater -cell $buffer_cell -term [dbGet $pin.name] -name KaTeX parse error: Expected group after '_' at position 13: {prefix}_BUF_̲j -loc [dbGet $pin.pt]”
puts $file “addInst -cell $diode_cell -inst KaTeX parse error: Expected group after '_' at position 15: {prefix}_DIODE_̲j -loc [lindex [dbGet $pin.pt] 0]”
set net [dbGet $pin.net.name]
puts $file “attachTerm KaTeX parse error: Expected group after '_' at position 15: {prefix}_DIODE_̲j MINUS $net”
incr j
}

puts $file1 “setEcoMode -batchMode false "
puts f i l e 1 " r e f i n e P l a c e − i n s t ∗ file1 "refinePlace -inst * file1"refinePlaceinst{prefix}"
puts $file1 "dbSet [dbGet top.insts.name BLOCK_ISO
-p].pStatus fixed"
puts f i l e " r e f i n e P l a c e − i n s t ∗ file "refinePlace -inst * file"refinePlaceinst{prefix}
"
puts $file "dbSet [dbGet top.insts.name ${prefix}_
-p].pStatus fixed”

close $file
close $file1
puts “Created eco files $buf_file and $diode_file”
puts “you need to source these files to implement the ECO”
}

define_proc_arguments add_buffer_diode_on_block_pins
-info “Generate ECO files to add buffers and antenna diodes on the I/Os of the selected block\n”
-define_args {
{-buffer “Buffer libcell to be inserted” “none” string {required}}
{-diode “Diode libcell to be inserted” “none” string {required}}
{-buffer_eco_file “ECO file name for buffer insertion” “none” string {required}}
{-diode_eco_file “ECO file name for diode insertion” “none” string {required}}
{-prefix “Prefix to use for the inserted instances names” “none” string {required}}
}

return

###使用方法
add_buffer_diode_on_block_pins -buffer BUFFD3BWP40P140LVT -diode ANTENNABWP40P140LVT -buffer_eco_file buffer_eco.tcl -diode_eco_file diode_eco.tcl -prefix IP_ISOLATION

###读入上述脚本生成的添加buffer和添加antenna diode脚本

##source eco_buf.tcl
##source eco_diode.tcl

在这里插入图片描述

下图所示为添加好子模块cpu buffer的效果图。
在这里插入图片描述

【思考题】为何这个脚本在执行过程中会报如下所示的ERROR(IMPOPT-616)?
在这里插入图片描述

相关文章:

数字IC后端实现Innovus |给各种IP子模块添加port buffer和antenna diode万能脚本

我们之前分享过在hierarchical flow后端实现中为了确保顶层flatten时timing signoff和physical signoff看到的情况和模块级看到的情况一致,我们会在模块io port添加io port buffer(主要是timing,antenna一致性)。实际上在芯片级我…...

反向代理服务器---NGINX

1.NGINX NGINX(发音为“engine-x”)是一个开源的高性能HTTP服务器和反向代理服务器。它被广泛用于互联网应用程序的加速、负载均衡和高可用性的配置。NGINX具有低内存消耗、高并发能力和卓越的性能,能够处理大量并发连接和高流量的网络流量。…...

unity3d————场景管理类SceneManager

常用API SceneManager.LoadScene(string sceneName) 加载名为 sceneName 的场景。SceneManager.LoadScene(int sceneBuildIndex) 根据场景在Build设置中的索引加载场景。SceneManager.GetActiveScene() 获取当前活动的场景。SceneManager.GetSceneByName(string name) 根据名称…...

鹅厂面试官:Transformer 为何需要位置编码?

最近这一两周看到不少互联网公司都已经开始秋招发放Offer。 不同以往的是,当前职场环境已不再是那个双向奔赴时代了。求职者在变多,HC 在变少,岗位要求还更高了。 最近,我们又陆续整理了很多大厂的面试题,帮助一些球…...

MySQL数据库学习指南

一、数据库的库操作 1、创建数据库 2、删除数据库 3、查看数据库 4、选择数据库 5、修改数据库 6、数据库备份与恢复 7、数据库的权限管理 二、数据库的表操作 1、创建表 2、删除表 3、修改表 4、查看表的结构 5、查看表的数据 6、创建索引 7、删除索引 8、约束…...

算法刷题-小猫爬山

本题来源165. 小猫爬山 - AcWing题库 翰翰和达达饲养了 NN 只小猫&#xff0c;这天&#xff0c;小猫们要去爬山。 经历了千辛万苦&#xff0c;小猫们终于爬上了山顶&#xff0c;但是疲倦的它们再也不想徒步走下山了&#xff08;呜咕>_<&#xff09;。 翰翰和达达只好花…...

Maven项目管理工具-初始+环境配置

1. Maven的概念 1.1. 什么是Maven Maven是跨平台的项目管理工具。主要服务于基于Java平台的项目构建&#xff0c;依赖管理和项目信息管理。 理想的项目构建&#xff1a;高度自动化&#xff0c;跨平台&#xff0c;可重用的组件&#xff0c;标准化的流程 maven能够自动下载依…...

【JavaEE初阶】网络编程TCP协议实现回显服务器以及如何处理多个客户端的响应

前言 &#x1f31f;&#x1f31f;本期讲解关于TCP/UDP协议的原理理解~~~ &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f525; 你的点赞就是小编不断更新的最大动力 &#x1f386;那么废话不多说…...

Android 中的串口开发

一&#xff1a;背景 本文着重讲安卓下的串口。 由于开源的Android在各种智能设备上的使用越来越多&#xff0c;如车载系统等。在我们的认识中&#xff0c;Android OS的物理接口一般只有usb host接口和耳机接口&#xff0c;但其实安卓支持各种各样的工业接口&#xff0c;如HDM…...

TensorRt OP

在TensorRT中&#xff0c;OP&#xff08;Operations&#xff0c;操作&#xff09;是指网络中的基本计算单元&#xff0c;类似于数学中的运算符。每个OP执行一个特定的计算任务&#xff0c;例如卷积、矩阵乘法、激活函数等。TensorRT通过识别和优化这些OP来提高深度学习模型的推…...

构建负责任的人工智能:数据伦理与隐私保护

构建负责任的人工智能&#xff1a;数据伦理与隐私保护 目录 &#x1f31f; 数据伦理的重要性&#x1f4ca; 公平性评估&#xff1a;实现无偏差的模型&#x1f512; 数据去标识化&#xff1a;保护用户隐私的必要手段&#x1f50d; 透明性与问责&#xff1a;建立可信的数据处理…...

微信小程序live-pusher和video同时使用,video播放声音时时大时小

一、遇到的问题 微信小程序live-pusher和video同时使用,video播放声音时有时无时大时小 二、排查流程 业务是模拟面试,每道题一个推流live-pusher和一个面试题video,一次面试有多道面试题,页面就一个live-pusher和一个video,切换面试题时给live-pusher和video重新赋值u…...

MySQL 分库分表实战

在当今互联网时代&#xff0c;数据量的增长呈爆炸式趋势&#xff0c;传统的单库单表架构已经难以满足大规模数据存储和高并发访问的需求。MySQL 分库分表技术应运而生&#xff0c;它可以有效地提高数据库的性能、扩展性和可用性。本文将详细介绍 MySQL 分库分表的实战经验。 一…...

MySQL—CRUD—进阶—(二) (ಥ_ಥ)

文本目录&#xff1a; ❄️一、新增&#xff1a; ❄️二、查询&#xff1a; 1、聚合查询&#xff1a; 1&#xff09;、聚合函数&#xff1a; 2&#xff09;、GROUP BY子句&#xff1a; 3&#xff09;、HAVING 子句&#xff1a; 2、联合查询&#xff1a; 1&#xff09;、内连接…...

时序分解 | TTNRBO-VMD改进牛顿-拉夫逊算法优化变分模态分解

时序分解 | TTNRBO-VMD改进牛顿-拉夫逊算法优化变分模态分解 目录 时序分解 | TTNRBO-VMD改进牛顿-拉夫逊算法优化变分模态分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 (创新独家)TTNRBO-VMD改进牛顿-拉夫逊优化算优化变分模态分解TTNRBO–VMD 优化VMD分解层数K和…...

2024“源鲁杯“高校网络安全技能大赛-Misc-WP

Round 1 hide_png 题目给了一张图片&#xff0c;flag就在图片上&#xff0c;不过不太明显&#xff0c;写个python脚本处理一下 from PIL import Image ​ # 打开图像并转换为RGB模式 img Image.open("./attachments.png").convert("RGB") ​ # 获取图像…...

CSS行块标签的显示方式

块级元素 标签&#xff1a;h1-h6&#xff0c;p,div,ul,ol,li,dd,dt 特点&#xff1a; &#xff08;1&#xff09;如果块级元素不设置默认宽度&#xff0c;那么该元素的宽度等于其父元素的宽度。 &#xff08;2&#xff09;所有的块级元素独占一行显示. &#xff08;3&#xff…...

Go 语言中的 for range 循环教程

在 Go 语言中&#xff0c;for range 循环是一个方便的语法结构&#xff0c;用于遍历数组、切片、映射和字符串。本教程将通过示例代码来帮助理解如何在 Go 中使用 for range 循环。 package mainimport "fmt"func main() {// 遍历切片并计算和nums : []int{2, 3, 4}…...

青训营 X 豆包MarsCode 技术训练营--小M的比赛胜场计算

问题描述 小M参加了一场n个人的比赛&#xff0c;比赛规则是所有选手两两对决。每个人有一个能力值&#xff0c;对应着他们的序号。参赛者同时被分为黄色或蓝色两种颜色。比赛胜负的规则如下&#xff1a; 当比赛双方颜色不同时&#xff0c;能力值大的选手获胜&#xff1b; 当比…...

海王3纯源码

海王3是一款热门的捕鱼类游戏&#xff0c;其纯源码为开发者提供了一个完整的游戏开发基础。该源码包括客户端和服务端的完整架构&#xff0c;支持多人在线竞技模式和丰富的游戏玩法。服务端采用C语言编写&#xff0c;并使用MySQL数据库来存储玩家数据&#xff0c;确保数据处理的…...

【ShuQiHere】Linux 系统中的硬盘管理详解:命令与技巧

【ShuQiHere】 &#x1f4bd; 在 Linux 系统中&#xff0c;硬盘管理不仅仅是存储数据的操作&#xff0c;更涉及系统性能、数据安全和稳定性的优化。无论你是系统管理员、开发者还是 Linux 爱好者&#xff0c;掌握硬盘管理的基础操作都非常有用。本文将从硬盘健康检查、分区管理…...

数据结构之堆和二叉树的简介

1.树 1.1 树的概念与结构 如图所示&#xff0c;树是⼀种非线性的数据结构&#xff0c;它是由 n &#xff08;n>0&#xff09; 个有限结点组成⼀个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。 …...

微信小程序上传图片添加水印

微信小程序使用wx.chooseMedia拍摄或从手机相册中选择图片并添加水印&#xff0c; 代码如下&#xff1a; // WXML代码&#xff1a;<canvas canvas-id"watermarkCanvas" style"width: {{canvasWidth}}px; height: {{canvasHeight}}px;"></canvas&…...

xshell5找不到匹配的host key算法

xshell5找不到匹配的host key算法&#xff0c;是因为电脑客户端不支持服务器的算法&#xff0c;因此需要再服务器增加算法。 下面以Ubuntu系统为例&#xff0c;修改下面的文件 sudo vim /etc/ssh/sshd_config 增加下面算法 KexAlgorithms diffie-hellman-group-exchange-…...

Linux中安装Tomcat

文章目录 一、Tomcat介绍1.1、Tomcat是什么1.2、Tomcat的工作原理1.3、Tomcat适用的场景1.4、Tomcat与Nginx、Apache比较1.4.1、优势1.4.2、劣势1.4.3、定位功能 1.5、Tomcat 的主要组件1.6、Tomcat 的主要配置文件 二、Tomcat安装2.1、查看可用的JDK2.2、安装OpenJDK 112.3、配…...

RV1126音视频学习(二)-----VI模块

文章目录 前言2.RV1126的视频输入vi模块2.1什么是VI模块2.3RV1126VI模块主要APIRK_MPI_SYS_Init()RK_MPI_VI_SetChnAttrRK_MPI_VI_EnableChnRK_S32 RK_MPI_VI_DisableChnRK_MPI_VI_StartStreamRK_MPI_SYS_GetMediaBufferRK_MPI_MB_GetPtrRK_MPI_MB_GetSizeRK_MPI_MB_ReleaseBuf…...

「C/C++」C++17 之 std::string_view 轻量级字符串视图

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「C/C」C/C程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…...

Linux内核-内核模块内核参数

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注作者&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 我们的Linux进阶部分&#xff0c;到目前为止&#xff0c;已经讲过&#xff1a;硬件&#xff0c;日常运维&#xff0c;基础软…...

中电信翼康工程师:我在 Apache SeaTunnel 社区的贡献之旅

贡献者Github ID&#xff1a;luckyLJY 文章整理&#xff1a;曾辉 Apache SeaTunnel 作为一款强大的数据同步和转换工具&#xff0c;凭借其部署易用性、容错机制、数据源支持、性能优势、功能丰富性以及活跃的社区支持&#xff0c;成为了数据工程师们不可或缺的利器。 因其具有的…...

【ESP32S3】VSCode 开发环境搭建

ESP32S3 有多种开发方式&#xff0c;主流的有 Eclipse 和 VSCode 两种。本文来介绍一下基于 VSCode 的开发环境搭建。 VSCode 环境需要依赖于 ESP-IDF 插件&#xff0c;因此需要在 VSCode 插件市场中搜索并安装 ESP-IDF 插件&#xff1a; 安装完成后侧边栏会多出一个 ESP-IDF …...

win7用自己ip做网站/搜索百度下载安装

系列文章目录 &#x1f351; Python语言基础—注释的作用及分类 &#x1f351; Python语言基础—常用运算符总结 &#x1f351; Python语言基础—定义变量与数据类型 &#x1f351; Python语言基础—if判断和循环总结 &#x1f351; Python语言基础—理解面向对象 &#x1f351…...

photoshop 做网站/成都最新疫情

1. 什么是决策树&#xff1f;如何构建一棵决策树&#xff1f; 决策树是一种分类技术&#xff0c;一般使用hunt算法构建一个决策树&#xff0c;Hunt算法的递归定义如下&#xff1a;&#xff08;1&#xff09;如果所有记录属于同一个类&#xff0c;则该节点作为叶子节点&#xf…...

郑州专业网站建设公司首选/电商运营去哪里学比较好

昨天介绍了OC中类的定义和使用&#xff0c;今天我们来继续学习类的初始化方法和点语法的使用。 一、首先来看一下类的初始化方法 在Java中我们知道一个每个类都有构造方法&#xff0c;这里的初始化方法就是和构造方法一个概念的&#xff0c;但是这里有一个区别是&#xff1a;Ja…...

用php做网站需要什么软件/google手机官网

系统管理员一致认为&#xff1a;部署和管理大型分布式系统非常复杂。如果您有数百个应用程序&#xff0c;则很难手动执行所有操作。为了克服这个问题&#xff0c;容器技术已被广泛应用于各种行业的大规模分布式系统中。容器是打包应用程序及其依存关系的软件部署单元。容器技术…...

北京网站建设 招聘信息/360优化大师官网

Python酷的文章一般在 https://pythonlibrary.net/网页上首发&#xff0c;而随后同步的我们的微信&#xff0c;然后由于我们的文章都是包含大量代码的干货文章&#xff0c;对于微信阅读其实效果并不是特别理想&#xff0c;因此我们后来将微信公众号的方向转为为订阅用户提供文章…...

徐州市网站建设/推广哪个app最挣钱

chmod [权限值] [文件名] 更改文件或目录的使用权限 UNIX 系统对每一个文件或目录都记录有9个权限的属性值&#xff0c;前面3个是“所有者”的“读权限”、“写权限”、“执行权”&#xff0c;接着3个是“同一用户组的人”的“读权限”、“写权限”、“执行权”&#xff0c;最后…...