数字IC后端设计实现之Innovus update_names和changeInstName的各种应用场景

今天吾爱IC社区小编给大家分享下数字IC后端设计实现innovus中关于update_names和changeInstName在PR中的具体使用方法。

update_names

1)为了避免和verilog语法保留的一些关键词,比如input,output这些,是不允许存在叫这类名字的wire等。如果有这样的input,那么通过下面的命令会自动把input改成input_1。

innovus> update_names -verilog

这个类似写tcl脚本,你如果定义一个变量叫for ,while,break,那么就会有冲突,认错的情况。

  1. 批量把设计中[ ] 全部替换成_ (比如有时候LVS要用)

innovus> update_names -restricted {[ ]} -replace_str “_”

  1. 自动修改设计中存在同名的net和instance (默认不区分大小写)

innovus> update_names -nocase -net
innovus> update_names -nocase -inst

比如两条net分别是"NET_ABC" 和"net_abc",这个在RC抽取会报它们是同一条net。通过上面的命令后工具会自动给这两条net加上一个数字后缀,比如"_1 和_2"。

同理instance工具也是这么处理的。

4)修改design名字

innovus> update_names -design -map {abcreg xyzreg}

修改后我们可以通过下面的命令来确认是否更改成功。

innovus> dbGet top.name
@innovus> get_db designs .name #In CUI

5)更改设计中子模块module的名字

innovus> update_names -change_modules design_dual_rank_synchronizer_9 -local -map {design_dual_rank_synchronizer_9 new}

通过上述命令工具会把原来的design_dual_rank_synchronizer_9这个module名改成 new。这里需要改的名字写在map选项即可。

changeInstName

语法: changeInstName -inst instName -newBasename baseName

innovus > changeInstName -inst ff12 -newBaseName ff123

innovus > changeInstName -inst Top/subtop/ff12 -newBaseName ff123

思考题:上次命令执行后,新的instance名字(full_name)叫什么?

最后分享一个把设计中instance名字带“:”符号的instance进行重命名的小脚本。

通过这个脚本大家又可以来练习foreach,dbGet,lindex,split这些tcl脚本的基本使用方法。对于数字IC后端工程师,需要慢慢学会看懂脚本,学会抄脚本,最后会自己改脚本写一些小脚本。

foreach i [dbGet top.insts.name :] {
set newInst “[lindex [split [lindex [split $i “/”] end] “:”] 0][lindex [split [lindex [split $i “/”] end] “:”] 1]”;
changeInstName -inst $i -newBaseName $newInst
#Puts $newInst;
}

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

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

相关文章

VCG 添加自定义属性

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 VCG Lib提供了一种简单的机制,用于将用户定义的类型“属性”与单纯形和网格相关联。特别要注意的是,“属性”和“组件”基本上都是绑定到简单Mesh结构的附属数据。简而言之,组件是静态定义的成员数据,而属性是运…

STM32CubeMX RS485接口使用

一、基本知识 TTL(Transistor-Transistor Logic): 电平范围: 逻辑1对应于2.4V–5V,逻辑0对应于0V–0.5V。通信特点: 全双工。特点: 常见于单片机和微控制器的IO电平,USB转TTL模块通常…

【Qt第三方库】QXlsx库——对 Excel 文件进行相关操作

0 前言 关键词:Qt;Excel;QXlsx;QInt 简介: QXlsx 是第三方开源的库,能够对 Excel 文件进行相关操作(读写等) 地址: QXlsx官网 QXlsx的Github主页 1 快速上手 对于第一次…

设计模式-流接口模式

设计模式专栏 模式介绍模式特点应用场景流接口模式和工厂模式的区别代码示例Java实现流接口模式Python实现流接口模式 流接口模式在spring中的应用 模式介绍 流接口模式是一种面向对象的编程模式,它可以使代码更具可读性和流畅性。流接口模式的核心思想是采用链式调…

[Unity]实时阴影技术方案总结

一,Planar Shadow 原理就是将模型压扁之后绘制在需要接受阴影的物体上,这种方式十分高效,消耗很低。具体实现过程参考Unity Shader - Planar Shadow - 平面阴影。具按照自己的理解,其实就是根据光照方向计算片元在接受阴影的平面…

odoo 客制化审批流

以BPM、OA为代表的应用平台,低代码处理为前提的审批流功能定制化 功能介绍: 业务对象:针对侵入式注册BPM业务场景:设置审批场景:如:请假大于三天的场景、金额大于1000的场景节点条件: 当符合某…

Spring Cloud Gateway整合Sentinel

日升时奋斗,日落时自省 目录 1、实现整合 1.1、添加框架依赖 1.2、设置配置文件 1.3、设置限流和熔断规则 1.3.1、限流配置 Route ID限流配置 API限流配置 1.3.2、熔断配置 2、实现原理 先前Sentinel针对是业务微服务,没有整合Sentinel到Spring…

uView-UI v2.x常见问题整理

为了更好的给大家提供 uView UI 的技术支持,uView UI 团队整理常见问题文档,大家可以阅读查找常见的问题解决办法。 uView 2.x 文档 https://www.uviewui.com uView 1.x 文档 https://v1.uviewui.com uView UI uni-app 主页 DCloud 插件市场 uVie…

机器视觉系统选型-案例分享

客户要求: 1、测量物体:圆直径:15mm 2、公差带:0.2mm 0.1mm 3、工作距离:50~500mm 4、静态还是动态拍摄 5、视野 测量精度: 1、0.10.20.02mm 公式:机械误差公差带系统精度 2、0.2/100.02mm 公式…

前端发开的性能优化 请求级:请求前(资源预加载和预读取)

预加载 预加载:是优化网页性能的重要技术,其目的就是在页面加载过程中先提前请求和获取相关的资源信息,减少用户的等待时间,提高用户的体验性。预加载的操作可以尝试去解决一些类似于减少首次内容渲染的时间,提升关键资…

SQL优化:分区表

前面我们讲述了物化视图。物化视图对查询的加速效果是显而易见的,但并不是所有的查询都适合用物化视图来提速。比如只是常规的范围查询,因为表的数据量太大而导致较慢,就不推荐使用物化视图了,徒增冗余数据。 这个时候比较常用的手段是使用分区表。 概念 分区表,顾名思…

python统计分析——直方图(sns.histplot)

使用seanborn.histplot()函数绘制直方图 from matplotlib.pyplot as plt import seaborn as snsdata_setnp.array([2,3,3,4,4,4,4,5,5,6]) plt.hist(fish_data) (1)dataNone, 表示数据源。 (2)xNone, 表示直方图的分布垂直与x轴…

程序媛的mac修炼手册-- 终端shell的驾驭 zsh vs bash

进入终端(Terminal)为新下载的应用配置环境,是Mac生产力up up的关键一步,更是编程小白装大神的第一步。Fake it till you make it , 硅谷大神标准路径~ shell的基本原理 为应用配置环境,相当于在应用和操作系统间架桥。由此&…

Linux: dev: gcc: plugin: annobin

https://developers.redhat.com/blog/2018/02/20/annobin-storing-information-binaries# https://www.mankier.com/1/annobin 这个的功能是记录一些编译信息在二进制文件里,stip的时候,不会被strip掉,同时也不会被加载到运行时的内存里。方便查看编译信息,有利于问题分析…

Flink Watermark和时间语义

Flink 中的时间语义 时间语义: EventTime:事件创建时间;Ingestion Time:数据进入Flink的时间;Processing Time:执行操作算子的本地系统时间,与机器无关。不同的时间语义有不同的应用场合&#x…

Go语言开发利器:几种主流IDE的优势与应用

摘要:Go 语言因其简洁、高效和强大的并发模型而受到越来越多开发者的青睐。为了提高 Go 语言开发的效率,选择一款合适的集成开发环境(IDE)至关重要。本文将详细介绍几种 Go 语言开发常用的 IDE,包括 Visual Studio Cod…

PostgreSQL教程(一):前言

本文档基于9.6.x 版本! 何为PostgreSQL? PostgreSQL是以加州大学伯克利分校计算机系开发的POSTGRES,版本4.2为基础的对象关系型数据库管理系统(ORDBMS)。POSTGRES领先的许多概念在很久以后才出现在一些商业数据库中。…

数据分析基础之《numpy(6)—IO操作与数据处理》

了解即可,用panads 一、numpy读取 1、问题 大多数数据并不是我们自己构造的,而是存在文件当中,需要我们用工具获取 但是numpy其实并不适合用来读取和处理数据,因此我们这里了解相关API,以及numpy不方便的地方即可 2…

【JavaFX】JavaFX11开发踩坑记录

文章目录 技术栈踩坑记录 技术栈 JavaFX 11MavenJDK 11 踩坑记录 这些坑对于初学者很容易踩,JavaFX经常会报错空指针异常遇到其中一个问题可能就会消耗好几天的时间。 JavaFX 采用的是MVC架构设计,页面设计使用 fxml文件;业务逻辑采用Con…

【实用工具】FFmpeg常用的命令

前言 FFmpeg是一个强大的多媒体处理工具,可以用于处理音频、视频和图像。 命令格式 ffmpeg {1} {2} -i {3} {4} {5} 上面命令中,五个部分的参数依次如下。 1.全局参数 2.输入文件参数 3.输入文件 4.输出文件参数 5.输出文件 常见命令行参数 -c&…