victor1218
Newbie
to expert^^
help me^^;;
Now I am making 'Double Routing Pattern Check Rule'.
I though this flow...
[step 1] A = get all metal & via layers
[step 2] B = get power/ground metal & via layers
[step 3] C = A - B #### these are 'only signal layers'
[step 4] select each m1 pattern --> get all connected layers --> check hole (this meaning is 'doubling routing patterns')
### I did try to use 'TVF format' for 'foreach' funtcion.
### like this
TVF FUNCTION detect_hole [/*
tvf::GET_LAYER_ARGS layer_m1 layer_v1 layer_m2 layer_v2 layer_m3 layer_v3 layer_m4
foreach each_m1 $layer_m1 {
tvf::SETLAYER a_v1 = {NET INTERACT $each_m1 $layer_v1 }
tvf::SETLAYER a_m2 = {NET INTERACT $layer_m2 $a_v1 }
tvf::SETLAYER a_v2 = {NET INTERACT $a_m2 $layer_v2 }
tvf::SETLAYER a_m3 = {NET INTERACT $layer_m3 $a_v2 }
tvf::SETLAYER a_v3 = {NET INTERACT $a_m3 $layer_v3 }
tvf::SETLAYER a_m4 = {NET INTERACT $layer_m4 $a_v3 }
tvf::SETLAYER a_m1_to_m4 = {OR $a_m1 $a_m2 $a_m3 $a_m4}
tvf::OUTLAYER "HOLES $a_m1_to_m4 > 20"; #check holes over area 20um^2
}
*/]
check_hole { TVF detect_hole signal_M1 signal_V1 signal_M2 signale_V2 signal_M3 signal_V3 signal_M4 }
drc select check check_hole
help me^^;;
Now I am making 'Double Routing Pattern Check Rule'.
I though this flow...
[step 1] A = get all metal & via layers
[step 2] B = get power/ground metal & via layers
[step 3] C = A - B #### these are 'only signal layers'
[step 4] select each m1 pattern --> get all connected layers --> check hole (this meaning is 'doubling routing patterns')
### I did try to use 'TVF format' for 'foreach' funtcion.
### like this
TVF FUNCTION detect_hole [/*
tvf::GET_LAYER_ARGS layer_m1 layer_v1 layer_m2 layer_v2 layer_m3 layer_v3 layer_m4
foreach each_m1 $layer_m1 {
tvf::SETLAYER a_v1 = {NET INTERACT $each_m1 $layer_v1 }
tvf::SETLAYER a_m2 = {NET INTERACT $layer_m2 $a_v1 }
tvf::SETLAYER a_v2 = {NET INTERACT $a_m2 $layer_v2 }
tvf::SETLAYER a_m3 = {NET INTERACT $layer_m3 $a_v2 }
tvf::SETLAYER a_v3 = {NET INTERACT $a_m3 $layer_v3 }
tvf::SETLAYER a_m4 = {NET INTERACT $layer_m4 $a_v3 }
tvf::SETLAYER a_m1_to_m4 = {OR $a_m1 $a_m2 $a_m3 $a_m4}
tvf::OUTLAYER "HOLES $a_m1_to_m4 > 20"; #check holes over area 20um^2
}
*/]
check_hole { TVF detect_hole signal_M1 signal_V1 signal_M2 signale_V2 signal_M3 signal_V3 signal_M4 }
drc select check check_hole