qrclayermap的作用是把Innovus里的层和qrcTechFile里的层对应起来。
Innovus的层信息来自LEF或OA tech library,其使用字符串MET1, VIA1等代表层 。qrcTechFile里也使用字符串代表层,但和Innovus的字符串不同,需要用这个qrclayermap把两者对应起来。
在后端实践中发现log中有如下告警,layermap的层次名字不对!开始定位。
可见,检查EDA工具的log是非常重要的。
如何找对正确的Layermap关系呢?介绍几种方法:
方法1:Techgen
innovus 7> Techgen -techinfo ../PDK/qrcTechFile
方法2:extractRC
跑完route后,再跑一下extraction、timeDesign。
这时不需要signoff 精度的parasitics,-effortLevel high就可以了。
setExtractRCMode \
-engine postRoute \
-coupled true \
-effortLevel high
extractRC
extractRC结束后,Innovus会在当前工作目录下生成一个extLogDir,在里面生成了innovus自动生成的layer map。
INFO (EXTIQRC-105) : Starting design extraction....
No layermap file specified. Automatically mapping tech and lef layers. Log file is 'extLogDir/IQuantus_06-May-2022_14:50:21_259818_3ioJJS/extr.DIGITAL_TOP.layermap.log'.
打开:extLogDir/IQuantus_06-May-2022_14:50:21_259818_3ioJJS/extr.DIGITAL_TOP.layermap.log
左边这列是Innovus 的层,右边是qrcTechFile的层。
注意:
以前常用的flow是从Innovus导出GDS或DEF,在命令行跑Quantus QRC生成SPEF。现在可直接在Innovus调用Quantus QRC生成signoff质量的SPEF。
setExtractRCMode \
-engine postRoute \
-coupled true \
-effortLevel signoff
extractRC
rcOut -rc_corner $corner \
-spef $spefFile
但是-effortLevel signoff 是必须的,否则Innovus会用自带的IQuantus或 TQuantus extraction engine,生成的SPEF精度会差些,因为我们需要用的是Quantus QRC,而不是IQuantus、TQuantus。
方法3:查看qrctechfile
qrcTechFile默认打开是乱码,采用如下命令即可查看:
xxd是linux的一个命令,vim可以通过”!”来调用外部命令,其功能就是进行十六进制的dump或者反之。
方法4:查看PDK的layer_setup
当然还有其他方法,比如参考starRC的map文件等等,欢迎补充,另外,通常我们直接运行命令执行RC提取:
qrc -64 -cmd qrc.tcl MCU.def
我们也可以启动GUI:
qrcui &
% qrcui [ -help | -h | -H ]
[-V | -v] displays the Quantus version
[-nograph] starts the standalone Quantus UI in non-graphical mode
[-nocdsinit]
[-replay filename]
[-log filename]
如何对ICG过约束:set_clock_gating_check
Verilog中,2'b1x和2’b0x造成的仿真器、综合器的mismatch!
Cadence Voltus-功耗分析&IR-drop(一)
Cadence Voltus-功耗分析&IR-Drop(二)
Cadence Voltus-功耗分析&IR-drop(三)
Cadence Voltus-功耗分析&IR-drop(四)
欢迎加入CIS、MCU技术交流群,先加我微信,我拉你进群!
感谢阅读,别走!点赞、关注、转发后再走吧
数组的方法1、sort( ):sort 排序 如果下面参数的正反 控制 升序和降序 ,返回的是从新排序的原数组2、splice( ):向数组的指定index处插入 返回的是被删除掉的元素的集合,会改变原有数组;截取类 没有参数,返回空数组,原数组不变;一个参数,从该参数表示的索引位开始截取,直至数组结束,返回截取的 数组,原数组改变;两个参数,第一个参数表示开始截取的索引位,第二个参数表示截取的长度,返回截取的 数组,原数组改变;三个或者更多参数,第三个及以后的参数表示要从截取位插入的值。会改变原数
ReactNative 代码智能提醒 (Webstrom live template)git clone https://github.com/virtoolswebplayer/ReactNative-LiveTemplate说明ReactNative的代码模板,包括:组件名称Api 名称所有StyleSheets属性React组件安装方法一 file -> import sett..._react webstorm提示
Springboot-mybatis-jpa根据Entity一键生成dao,mapper,xml,service,api,controllerjava运行文件java运行文件依赖Hutool,主要输入文件及字符串转换,可换成其他。自动读取Entity目录,生成其他,dao,mapper,xml,service,controller,api。可自定义。依赖Springboot-mybatis-plus-jpa-druid-maven脚手架工程可私信或者看下篇博客import cn.hutool.c_根据entity 生成mapper
查询是否已经安装svn #rpm -qa|grep subversion 如果没有则安装 #yum install subversion 创建svn文件夹 #mkdir /data/svn #mkdir /data/svn/tp 创建一个库tp(对应本地的tp.local) #svnadmin create /data/svn/tp 初始
以前,要在windows中使用ubuntu系统,只能使用VMware等虚拟机。win10正改变了这一缺陷,可以不使用虚拟机,而直接在windows中安装Linux子系统。 优点:响应速度快,无需安装虚拟机。 缺点:不能安装32位系统;无内置gcc编译器,需要自己安装;无图形界面。 一、win10版本这里以win10家庭版为例。 二、开启开发人员模...
因为在运行swiper实例之前,它的页面结构必须以及存在且完整,而此时由于轮播图的数据需要从store仓库中获得需要花费时间,所以此时的页面结构是不完整的,所以在mounted中书写没有效果。但是这个只能保证bannerList的数据以及有了,不能保证页面组件中的v-for以及循环结束,所以还需要nectTick。在mounted中使用setTimeout来实现过一段时间后执行,可以解决这个问题,但是不完美。因为不知一处用到轮播图,直接在入口文件引入一次即可。,立即使用这个方法,获取更新后的DOM。_vue轮播图swiper
一 在src/main/resources/application.properties中添加如下内容#配置最大空闲数,spring.redis.pool可以随便,但后面的不能随便spring.redis.pool.max-idle=10#配置最小空闲数spring.redis.pool.min-idle=5#配置最大连接数spring.redis.pool.max-total=2...
1、查看日志 gpadminlogs中gpinitsystem、gpsegstart、gpstart日志,错误提示不是很明确;2、查看各节点的启动日志 发现有一个节点的端口6000有冲突;(节点启动日志路径如:#gpdata/master/gpseg-1/pg_log) ;3、默认的端口是从6000开始,是在初始化文件gpinitsystem_config中配置的 PORT_BASE=60..._with reason:'pg_ctl failed.
题目描述给出N 个点,M 条边的有向图,对于每个点 v,求A(v) 表示从点 v出发,能到达的编号最大的点。输入格式第1 行,2 个整数 N,M。接下来 M行,每行2个整数 Ui,Vi,表示边(U_i,V_i)(Ui,Vi)。点用 1,2,⋯,N编号。输出格式N 个整数 A(1),A(2),⋯,A(N)。输入输出样例输入 #1复制4 31 22 44 3输出 #1复制4 4 3 4说明/提示• 对于60% 的数据, 1≤N.M≤ 10.._给出 n 个点,m 条边的有向图,对于每个点 v ,求 a ( v ) 表示从点 v 出发,能到达的
git reset 三种模式
安装前准备1、关于防火墙的原因(nftables后端兼容性问题,产生重复的防火墙规则),因此要关闭防火墙,我这里喜欢一次到位,永久关闭。(1)临时关闭:systemctl status firewalldsystemctl stop firewalld(2)永久关闭:systemctl disable firewalld2、关于selinux的原因(关闭selinux以允许容器访问宿主机的文件系统),因此要关闭selinux(1)临时关闭:getenforcesetenforce 0_centos 8上安装kubernetes
作者是纯小白,只是把这几天遇到的问题及我的解决方案给大家分享下。这几天一直在弄QT的Android环境配置,搞得我都快心态爆炸了,首先,我的导师给我的qt版本是就这样按照需求一直安装下去,并且把环境配置好结果恐怖的事情就从这里发生了 错误如下:最开始是只有下面的Building the android package failed错误的上面的提示都没得,我就百度了下这个错误 方案如下:1. 检查环境路径是否正确,环境变量路径是否正确,是否出现大小写问题。2. 重..._qt android 无法弹出missing package