| |
//注释: 输入输出和相关设置
/* SWITCH DEFINITION START */
PRECISION 20000
layout PRECISION 2000
LAYOUT MAGNIFY AUTO
//DRC CELL NAME YES CELL SPACE XFORM ALL
//LAYOUT SYSTEM GDSII
LAYOUT SYSTEM OASIS
LAYOUT PATH "test.oasis"
LAYOUT PRIMARY "test"
//LAYOUT PATH "test_M4.oasis"
//LAYOUT PRIMARY "test_M4"
//**** DRC output
DRC RESULTS DATABASE "rep/DRC_RES_test.db"
DRC SUMMARY REPORT "rep/DRC_test.rep" // HIER
DRC KEEP EMPTY NO
DRC CHECK TEXT ALL
DRC MAXIMUM RESULTS ALL
DRC MAXIMUM RESULTS NAR ALL
DFM DEFAULTS RDB MAXIMUM 100000
//DRC INCREMENTAL CONNECT YES
//注释 :用到的layer层定义
//**layer definition
LAYER PRBOUNDARY 10800 // P&R cell boundary layer for auto P&R purpose
LAYER MAP 108 DATATYPE 0 10800
LAYER Chip_Boundary 10825 // For Chip area definition
LAYER MAP 108 DATATYPE 250 10825
LAYER M4i 2004 // Metal4 layer
LAYER MAP 34 DATATYPE 401 2004 // Mapping (34;401) to 2004 for M4i
LAYER MAP 34 DATATYPE 402 2004 // Mapping (34;402) to 2004 for M4i
//smint
LAYER M4ired 20041
LAYER MAP 34 DATATYPE 401 20041 // Mapping (34;402) to 2004 for M4i
LAYER M4iblue 20042
LAYER MAP 34 DATATYPE 402 20042 // Mapping (34;402) to 2004 for M4i
LAYER DM4_O 2024
LAYER MAP 334 DATATYPE 401 2024 // Mapping (334;401) to 2024 for OPC_M4i, OPC dummy metal
LAYER MAP 334 DATATYPE 402 2024 // Mapping (334;402) to 2024 for OPC_M4i, OPC dummy metal
LAYER DUM4 2044 // Dummy Metal4
LAYER MAP 334 DATATYPE 411 2044 // Mapping (334;411) to 2044 for DUM4
LAYER MAP 334 DATATYPE 412 2044 // Mapping (334;412) to 2044 for DUM4
LAYER F_ZONE0 22050
LAYER F_ZONE1 22051
LAYER F_ZONE2 22052
LAYER F_ZONE3 22053
////注释 :窗口定义,这里窗口的定义最关键,新生成的dummy在窗口的0.0原点开始,且第一根为红色。所以在stdcell区域就要找到第一更是红色的M4,且离这个M4的间距为Y上移0.064的M的起点位置为窗口的原始位置
//**the location for the first fillgen=red dummy of (DM4_O) is POLGON LL , the pitch is 0.084,and space is 0.064 between first fillgen and M4(vdd/vss)
// mesured the space of between the first red M4 in the stdcell region and polygon org coordinate .which is 0.064
//1.1
LAYOUT POLYGON 18 80.0 220.0 120.0 220.0 120.0 140.354 200.0 140.354 200.0 220.0 220.0 220.0 220.0 260.0 200.0 260.0 200.0 420.0 220.0 420.0 220.0 480.0 200.0 480.0 200.0 620.0 220.0 620.0 220.0 680.0 200.0 680.0 200.0 700.0 80.0 700.0 F_ZONE0 test
LAYOUT POLYGON 6 300.0 100.0 340.0 100.0 340.0 63.074 1020.0 63.074 1020.0 140.0 300.0 140.0 F_ZONE1 test
LAYOUT POLYGON 6 1160.0 63.074 1680.0 63.074 1680.0 100.0 1740.0 100.0 1740.0 140.0 1160.0 140.0 F_ZONE2 test
LAYOUT POLYGON 18 1720.0 200.0 1740.0 200.0 1740.0 148.334 1820.0 148.334 1820.0 180.0 1880.0 180.0 1880.0 680.0 1800.0 680.0 1800.0 820.0 1720.0 820.0
1720.0 760.0 1740.0 760.0 1740.0 740.0 1720.0 740.0 1720.0 580.0 1740.0 580.0 1740.0 240.0 1720.0 240.0 F_ZONE3 test
//注释,filler大小和filler所生产的位置定义
//***Fill shape
DFM SPEC FILL SHAPE "R0"
RECTFILL 0 0 .5 .02 // FILL region length&width
// SPACEY .064 M4i // space to DM4_0
// SPACEX .146 M4i // space to DM4_0
// SPACE 2 DUM4 // space to DM4_0
STEP 0.146 0.19 //0.146 in x-direction, Y:0.19
// OFFSET 0.19 0.03 // the step of shape "R1", step from 0.128 to 0.146
// COLOR SCHEME CHECKER
COLOR SCHEME ALTERNATEX //(offset 0.1 0 & ALTERNATE) setted that the same color is in X axis
//**which layer added fill shape
DFM SPEC FILL fillR0
INSIDE OF LAYER F_ZONE0
INITIAL FILLREGION
FILLSHAPE OUTPUT "outR0" "R0"
DFM SPEC FILL fillR1 // R0 is the same
INSIDE OF LAYER F_ZONE1
INITIAL FILLREGION
FILLSHAPE OUTPUT "outR1" "R0"
DFM SPEC FILL fillR2
INSIDE OF LAYER F_ZONE2
INITIAL FILLREGION
FILLSHAPE OUTPUT "outR2" "R0"
DFM SPEC FILL fillR3
INSIDE OF LAYER F_ZONE3
INITIAL FILLREGION
FILLSHAPE OUTPUT "outR3" "R0"
//生产的filler做一些逻辑操作,涉及到新生成金属离旁边dummy要求的最大金属的间距,和怎么提取出来颜色 。且stdcell内部不涉及dummy via上下等,否则要做逻辑操作
//**** multiple color assignment
//fill_A = DFM FILL fillR1 "outR1" COLOR A
//fill_B = DFM FILL fillR1 "outR1" COLOR B
fill_G0 = DFM FILL fillR0 "outR0"
fill_G1 = DFM FILL fillR1 "outR1"
fill_G2 = DFM FILL fillR2 "outR2"
fill_G3 = DFM FILL fillR3 "outR3"
VARIABLE Max_GDM4_TO_allM4 0.146
VARIABLE Max_GDM4_TO_PGM4 0.064
//M4OS = GROW M4i RIGHT BY 0.146 LEFT BY 0.146 TOP BY 0.063 BOTTOM BY 0.063
M4OS1 = SIZE M4i BY 0.063 // the space between M4i and fill is 0.064
M4OS = GROW M4OS1 RIGHT BY 0.083 LEFT BY 0.083 // the space between M4i/DM4 and fillgen dummy (left/right :0.146 top/bottom is== 0.064)
fill_GN= (OR fill_G0 fill_G1 fill_G2 fill_G3) NOT INTERACT M4OS
//*** dummy to fixed color
PM4ired = GROW M4ired TOP BY 0.084 BOTTOM BY 0.084
DDUM4 = SIZE DUM4 BY 0.146
DDM4_O = SIZE DM4_O BY 0.146
fill_A = PM4ired and fill_GN
fill_B = fill_GN NOT fill_A
fill_A_out = fill_A NOT INTERACT (OR fill_B DDUM4 DDM4_O ) // filter interact with fill_B ,DDUM4 ,DDM4_O
fill_B_out = fill_B NOT INTERACT (OR fill_A DDUM4 DDM4_O)
//***dummy fill is outputed and assigned data number
oas_out{
DFM RDB OASIS fillout_test.oas fill_A_out 334 401
DFM RDB OASIS fillout_test.oas fill_B_out 334 402
最后的makefile :calibre -64 -drc -hier -hyper -turbo fillgen_file