在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: okfunny

[原创] 分享一些脚本

[复制链接]
发表于 2016-11-17 11:19:47 | 显示全部楼层
本帖最后由 dafteric 于 2016-11-17 11:23 编辑

好贴,我也来分享一个。


名字:PutOnGrid.il
语言:SKILL
功能:消除版图中的off grid
内容:


procedure( OnGrid( Point )
if( listp( Point ) then
mapcar( lambda( (x) OnGrid(x) ) Point)
else
round((Point/Grid))*Grid
)
)

procedure( PutOnGrid( Grid )
let(( SelectObj )
SelectObj = geGetSelSet()
foreach( Object SelectObj
cond(
(Object~>objType == "path"
Polygon = leConvertShapeToPolygon(Object)
Polygon~>points = OnGrid(Polygon~>points)
)

(Object~>objType == "polygon"
Object~>points = OnGrid(Object~>points)
)

(Object~>objType == "rect"
Object~>bBox = OnGrid(Object~>bBox)
)

(Object~>objType == "inst" || Object~>objType == "mosaic"
Object~>xy = OnGrid(Object~>xy)
)
)
)
)
)


使用方法:在CIW中load这个il文件。使用时输OnGrid(0.005),如果你的最小格点是0.005的话。

点评

这个脚本不能修改blockage的grid呀  发表于 2023-4-26 11:26
 楼主| 发表于 2016-11-18 15:43:56 | 显示全部楼层
5.
名字:layout_get_gds_layer.tcl
语言: tcl
功能:获取gds 中的gds number 和 data type
内容:

set L [layout create cellname.gds -noReport -dtExpand]
puts "layer: [lsort -dictionary [$L layers]]"

使用方法:
修改cellname.gds 为实际的gds
然后执行 calibredrv layout_get_gds_layer.tcl
 楼主| 发表于 2016-11-18 15:46:46 | 显示全部楼层
回复 11# dafteric


谢谢分享,
发表于 2016-11-18 16:04:56 | 显示全部楼层
我的使用还停留在./的地步
发表于 2016-11-18 16:05:55 | 显示全部楼层
回复 11# dafteric


   想问下off  grid是啥。。。
发表于 2016-11-19 09:58:17 | 显示全部楼层
回复 15# kaikai_92


   就是不在grid点上
 楼主| 发表于 2016-11-21 20:12:50 | 显示全部楼层
5.
名字:layout_save_sub_from_top.tcl
语言: tcl
功能:从gds中保存指定cell 为另一个gds
内容:

set L [layout create top.gds]
$L gdsout sub_cell.gds sub_cell

使用方法:
修改cellname.gds 为实际的gds
然后执行 calibredrv layout_save_sub_from_top.tcl
这个是从以前的帖子里搬过来的
http://bbs.eetop.cn/thread-611704-1-1.html
 楼主| 发表于 2016-11-22 09:42:48 | 显示全部楼层
本帖最后由 okfunny 于 2016-11-22 09:50 编辑

6.
名字:layout_drc.sh
语言: c shell
功能:脚本的方式执行drc, 并且显示结果
内容:

#!/bin/csh -f
set cell_name = $1
set drc_rule = "your_drc.cal"
set gds_dir = "../gds"
sed -e 's#\(LAYOUT PRIMARY\).*#\1 \"'$cell_name'\"#g' \
        -e 's#\(LAYOUT PATH\).*#\1 \"'$gds_dir/$cell_name.gds'\"#g' \
        -e 's#\(DRC SUMMARY REPORT\).*#\1 \"'drc.rep'\"#g' \
        $drc_rule >! _drc.cal_

calibre -drc -64 -hier -hyper -turbo 2 _drc.cal_
grep "TOTAL Result Count = [1-9]" drc.rep

使用方法:
修改drc_rule 为实际drc rule file 的路径
修改 gds_dir 为gds存放的路径
然后执行 layout_drc.sh cell_name
类似的,你可以仿照这个写个执行 LVS 的脚本了
 楼主| 发表于 2016-11-22 09:49:39 | 显示全部楼层
7.
名字:layout_drc_auto.sh
语言: c shell
功能:脚本的方式执行导出gds ,然后执行drc 检查, 并且显示结果
内容:

#!/bin/csh -f
set cell_name = $1
cd gds_dir #改成你自己的gds保存路径
layout_ic61_strmout.sh $cell_name
cd drc_dir #改成你自己的执行drc 的路径
layout_drc.sh $cell_name

使用方法:
然后执行 layout_drc_auto.sh cell_name

类似的,你可以仿照这个写个自动导出cdl 和 gds, 然后执行lvs 的脚本了
发表于 2016-11-22 21:48:23 | 显示全部楼层
赞一个!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-28 19:42 , Processed in 0.027014 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表