-filter命令

作者: 飞奔的大虎 | 来源:发表于2021-07-21 19:54 被阅读0次

在S家的后端设计工具里,包括DC、ICC、ICC2、PT , 大体的命令都是相通的。并且主要命令的命名和分类都是有一定的相似性的(但是要注意:尽管在相同的命令下,由于输入和参数配置的差异,命令的结果可能会有不同,尤其是在delay计算方面)。

简单总结如下

这里,一起来关注一下get_* 命令家族,并且了解一下通用的选项filler 。

先一起看一下这类命令的选项描述。

既然是一个命令组,当然会有一些类似点,这个命令家族一般有如下的选项设计:

$cmd -filter -quiet -nocase -exact -OTHER_OPTION patterns

通用的选项细节描述如下

后三个选项比较好理解,这里一起来仔细看一下filter这个选项。

filter 简单地说,是在当前的get_* 命令下的一个二次过滤的选项。具体可以使用什么样的过滤方式方法,是基于这个命令所属于的类(class) 的,这个命令组的命名方式,一般是get_$class ,譬如说 get_cell 所对应的类(class) 就是 cell ;get_clocks 所对应的类(class) 就是 clock 。所以,所有filter可以操作的范围就是这个class里边的数据/属性。

下图是cell 的 attribute的摘录

用户可以根据这个attribute列表的具体细节来对cell来进行二次过滤,一个举例如下

得到所有full name中包含 lace的器件

# get all *lace* cell

get_cells -filter "full_name=~*lace*"

通过运行,会得到所有名字为*lace* 的cell,返回值如下:

这里使用条件运算符**=~** 是一个模糊匹配,place也是*lace*的模糊匹配的结果,这里就被正确的返回出来了。

再看一个稍微复杂一点的例子

得到所有的buffer cell,

但是cell名字一定是包含*lace*字符串的

# get all *lace* buffer

get_cells -filter "full_name=~*lace* && ref_name=~*BUF*"

另外一个很常用的filter例子是:

得到数据库里所有的std-cell

然后计算它们的面积总和

get_cells -hier -filter "mask_layout_type==std"

set area 0

foreach_in_collection c [get_cells -hier -filter "mask_layout_type==std"] {

set area [expr [get_attribute $c area] + $area]

}

puts  "Total std-cell area is $area"

这个执行结果如下

什么,这还不够厉害,还有更彪悍的操作?

得到所有面积大于3 area_unit的

buffer/invert

get_cells -filter "area>3 && number_of_pins==2"

运行结果如下

这么复杂的操作,最好验证一下,先来看一下面积

没有问题,都是大于3的器件

再来看一下pin的数目

也都正确,都是两个pin

最后来看一下,是不是都是buffer/invert

完美,所有的结果都被验证正确无误。

到这里,想必同学们都有了一种体会了吧。这里的 get_attribute 和 -filter 有着天人合一的感觉,一个是query 一个是 status。通过这种按需查找的方法。数据库里的东东基本上都会被你摸个遍了。

这里再来看一个命令嵌套的组合拳

面积大于3 并且

有两个以上的pin的非SPARE cell 的器件

它们的output pin

get_pins -of [get_cells -filter "area>3 && number_of_pins>2"] -filter "pin_direction==out && full_name!~*SPARE*"

嵌套,就是无休无止的嵌套,就是要在浩如烟海的数据大海中,找到你要的那根针!灵活使用这些命令,理论上讲不存在命令行里找不到的那根针

原文链接:https://blog.csdn.net/i_chip_backend/article/details/88759528

相关文章

  • -filter命令

    在S家的后端设计工具里,包括DC、ICC、ICC2、PT , 大体的命令都是相通的。并且主要命令的命名和分类都是有...

  • 2019-03-22

    FFmpeg使用filter_complex命令合并多个视频 我的csdn原文 filter_complex合并多...

  • #266 Seek and Destroy

    需要使用到的方法(命令): Array.filter() filter() 方法使用指定的函数测试所有元素,并创建...

  • HBase scan命令详解

    hbase中scan命令是我们经常使用到的,而filter的作用尤其强大。这里简要的介绍下scan下filter命...

  • ffmpeg的一些坑

    我们使用drawtext命令行可能出现“No such filter: 'drawtext” 错误,这个说明我们没...

  • Linux下iptables防火墙配置详解

    目录 iptables命令及参数介绍 配置Filter表防火墙 配置NAT表防火墙 1. iptables命令及参...

  • 【shell】tr、wc、test三个命令集合git的使用实例

    实例1:理解下面这个命令 [git diff --cached --name-only --diff-filter...

  • android:ffmpeg命令-视频反序播放

    命令: ffmpeg -i %s 输入视频文件,-filter_complex [0:v]reverse[v] 处...

  • IPTABLES 详解

    引言 先来看一条常用的iptables命令: Iptables(-t filter)-IINPUT-ptcp --...

  • 第一个vue.js程序

    工程目录结构: 在01-filter工程文件下打开命令行,输入命令npm run dev,运行结果如下: 好了,接...

网友评论

    本文标题:-filter命令

    本文链接:https://www.haomeiwen.com/subject/rrtsmltx.html