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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: miamiamia

[求助] 十万火急!!TOP里用脚本撒dummy,为什么撒不上数字部分

[复制链接]
发表于 2024-10-24 11:45:22 | 显示全部楼层
是明显看着有很大空间加不上,还是没有空间了
发表于 2024-10-24 12:14:24 | 显示全部楼层


miamiamia 发表于 2024-10-24 11:44
脚本的方块是2*5;数字里的空白有4*30呢


dummy与有用金属之间的距离多少?2×5可以旋转么?
发表于 2024-10-24 12:54:02 | 显示全部楼层
数字后端也是可以撒dummy的,让数字后端撒呗
 楼主| 发表于 2024-10-24 13:09:51 | 显示全部楼层


luciano 发表于 2024-10-24 12:54
数字后端也是可以撒dummy的,让数字后端撒呗


我们用的是一样的脚本,数字跑出来的结果和我一样,也撒不到中间区域
 楼主| 发表于 2024-10-24 13:11:23 | 显示全部楼层


yuxidaliumang 发表于 2024-10-24 11:45
是明显看着有很大空间加不上,还是没有空间了


空间大 加不上
 楼主| 发表于 2024-10-24 13:12:44 | 显示全部楼层


acrofoxAgain 发表于 2024-10-24 12:14
dummy与有用金属之间的距离多少?2×5可以旋转么?


应该是不能旋转的,M3是2* 5;M2就是5*2这样
发表于 2024-10-24 13:52:27 | 显示全部楼层
应该是脚本里设置了和线之间会保持一定的距离,建议修改脚本规则或者铺的dummy块大小
发表于 2024-10-24 14:07:23 | 显示全部楼层


miamiamia 发表于 2024-10-24 13:12
应该是不能旋转的,M3是2* 5;M2就是5*2这样


我做的t22的dummy方向是可以改的,你看看你的dummy方向是不是和数字部分的布线方向不一致了,一般一层横向,一层纵向?
 楼主| 发表于 2024-10-24 14:37:29 | 显示全部楼层


yuxidaliumang 发表于 2024-10-24 14:07
我做的t22的dummy方向是可以改的,你看看你的dummy方向是不是和数字部分的布线方向不一致了,一般一层横 ...


问题是我单独给数字加也加不上呢,如果是方向问题,单独加数字应该没问题啊
 楼主| 发表于 2024-10-24 14:40:41 | 显示全部楼层


我碍事 发表于 2024-10-24 13:52
应该是脚本里设置了和线之间会保持一定的距离,建议修改脚本规则或者铺的dummy块大小 ...


脚本里相关内容如下,我应该怎么改呢?我没看懂这个:
SETLAYER BORDER = BORDERi OR (HOLES BORDERi)




#//=====================
#//AA Dummy insertion
#//=====================

#//Dummy AA rectangles constrains

SETLAYER EXTENT_AA = SIZE BORDER BY -4

SETLAYER PA_S = SIZE PA BY 7
SETLAYER AA_B_1 = SIZE ((((AA OR DUMBA) OR RESAA) OR RESNW) OR RESP1) BY 2
SETLAYER AA_B_2 = SIZE ((GT OR CG) OR GP) BY 2
SETLAYER AA_B_3_DNW = (SIZE DNW BY 3) NOT (SIZE DNW BY -3)
SETLAYER AA_B_3_HVBN = (SIZE HVBN BY 3) NOT (SIZE HVBN BY -3)
SETLAYER AA_B_3_NW = (SIZE NW BY 3) NOT (SIZE NW BY -3)
SETLAYER AA_B_3_TPW = (SIZE TPW BY 3) NOT (SIZE TPW BY -3)
SETLAYER AA_B_3_PSUB = (SIZE PSUB BY 3) NOT (SIZE PSUB BY -3)
SETLAYER AA_B_3_ONO = (SIZE ONO BY 3) NOT (SIZE ONO BY -3)
SETLAYER AA_B_3 = ((((AA_B_3_DNW OR AA_B_3_HVBN) OR AA_B_3_NW) OR AA_B_3_TPW) OR AA_B_3_PSUB) OR AA_B_3_ONO
SETLAYER AA_B = ((PA_S OR AA_B_1) OR AA_B_2) OR AA_B_3


#Dummy AA rectangles produce regulation

SETLAYER DUMAA_all_0 =  RECTANGLES 1.6 1.6 0.4 INSIDE OF LAYER EXTENT_AA
SETLAYER DUMAA_all = DUMAA_all_0 NOT INTERACT AA_B


#Output results of AADUM insertion

if { [string equal $AA_insert YES] == 1 } {
RULECHECK DUMAA_all_out { COPY DUMAA_all }
DRC CHECK MAP DUMAA_all_out GDSII 10 1 AUTOREF
}



if { [string equal $AA_insert YES] == 1 } {
#//=====================
#//GT Dummy insertion
#//=====================

#//Dummy GT rectangles produce regulation

SETLAYER DUMGT_all = (SIZE (DUMAA_all AND ONO) BY -0.4) NOT INTERACT DUMBP


#Output results of GTDUM insertion

if { [string equal $GT_insert YES] == 1 } {
RULECHECK DUMGT_all_out { COPY DUMGT_all }
DRC CHECK MAP DUMGT_all_out GDSII 30 1 AUTOREF
}


#//=====================
#//CG Dummy insertion
#//=====================

#//Dummy CG rectangles produce regulation

SETLAYER DUMCG_all = (SIZE (DUMAA_all AND ONO) BY -0.2) NOT INTERACT DUMBP


#Output results of CGDUM insertion

if { [string equal $CG_insert YES] == 1 } {
RULECHECK DUMCG_all_out { COPY DUMCG_all }
DRC CHECK MAP DUMCG_all_out GDSII 57 1 AUTOREF
}



#//=====================
#//GP Dummy insertion
#//=====================

#//Dummy GP rectangles produce regulation

SETLAYER DUMGP_all = (SIZE (DUMAA_all NOT ONO) BY -0.32) NOT INTERACT DUMBP


#Output results of GPDUM insertion

if { [string equal $GP_insert YES] == 1 } {
RULECHECK DUMGP_all_out { COPY DUMGP_all }
DRC CHECK MAP DUMGP_all_out GDSII 83 1 AUTOREF
}

}



#//======================
#//Mn Dummy insertion
#//======================


set metal_all { M1 M2 M3 M4 M5 M6 }


#//Dummy Mn rectangles constrains
SETLAYER EXTENT_M = SIZE BORDER BY -2

SETLAYER M_B_all_1 = SIZE (AA AND ((GT OR CG) OR GP)) BY 2
SETLAYER M_B_all_2 = SIZE DUMBM BY 2
SETLAYER M_B_all = M_B_all_1 OR M_B_all_2

foreach metal_layer $metal_all {
SETLAYER ${metal_layer}_B_1 = SIZE $metal_layer BY 2
SETLAYER ${metal_layer}_B = M_B_all OR ${metal_layer}_B_1

}


#//metal dummy rectangles produce regulation

SETLAYER EXTENT_M_ODD   =  SHRINK EXTENT_M LEFT BY 4 BOTTOM BY 2
SETLAYER DUMMX_ALL_ODD_1 = RECTANGLES 2 5 6 2 INSIDE OF LAYER EXTENT_M
SETLAYER DUMMX_ALL_ODD_2 = RECTANGLES 2 5 6 2 INSIDE OF LAYER EXTENT_M_ODD
SETLAYER DUMMX_ALL_ODD = DUMMX_ALL_ODD_1 OR DUMMX_ALL_ODD_2

SETLAYER EXTENT_M_EVEN   =  SHRINK EXTENT_M LEFT BY 2 BOTTOM BY 4
SETLAYER DUMMX_ALL_EVEN_1 = RECTANGLES 5 2 2 6 INSIDE OF LAYER EXTENT_M
SETLAYER DUMMX_ALL_EVEN_2 = RECTANGLES 5 2 2 6 INSIDE OF LAYER EXTENT_M_EVEN
SETLAYER DUMMX_ALL_EVEN = DUMMX_ALL_EVEN_1 OR DUMMX_ALL_EVEN_2


set metal_gds_number(M1) 61
set metal_gds_number(M2) 62
set metal_gds_number(M3) 63
set metal_gds_number(M4) 64
set metal_gds_number(M5) 65
set metal_gds_number(M6) 66




for { set i 0 } { $i < 6 } { incr i } {
  if { [string equal [set [lindex $metal_all $i]_insert] YES] == 1 } {
    if { [expr round(fmod($i,2))] == 0 } {
    SETLAYER  DUM[lindex $metal_all $i]_ALL = DUMMX_ALL_ODD NOT INTERACT [lindex $metal_all $i]_B
    RULECHECK DUM[lindex $metal_all $i]_ALL_OUT { COPY DUM[lindex $metal_all $i]_ALL }
    DRC CHECK MAP DUM[lindex $metal_all $i]_ALL_OUT GDSII $metal_gds_number([lindex $metal_all $i]) 1 AUTOREF

    } else {
    SETLAYER  DUM[lindex $metal_all $i]_ALL = DUMMX_ALL_EVEN NOT INTERACT [lindex $metal_all $i]_B
    RULECHECK DUM[lindex $metal_all $i]_ALL_OUT { COPY DUM[lindex $metal_all $i]_ALL }
    DRC CHECK MAP DUM[lindex $metal_all $i]_ALL_OUT GDSII $metal_gds_number([lindex $metal_all $i]) 1 AUTOREF

    }
  }

}


您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2025-2-9 12:21 , Processed in 0.021197 second(s), 5 queries , Gzip On, Redis On.

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