Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
VirtualKeyboardSample
/
SKILL
:
bump.il
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; procedure(create_RDL_layers() cv=geGetWindowCellView() tf=techGetTechFile(cv) ;; onc25 200/201 .... ;; packet m1_drawing ;; ( display m1_drawing slash w1_1x red red ) ;; ( display m2_drawing backSlash w1_1x pink pink ) ; tsmc18 layer_id1 = 300 ; RDL1 layer_id2 = 301 ; RDL2 layer_id3 = 302 ; RDL3 layer_id4 = 303 ; RDL4 layer_id5 = 304 ; RDL5 layer_id6 = 305 ; SPHERON1 layer_id7 = 306 ; SPHERON2 layer_id8 = 307; SPHERON3 layer_id9 = 308 ; SPHERON4 ; gpdk ; layer_id1 = 110 ; RDL1 ; layer_id2 = 111 ; RDL2 ; layer_id3 = 112 ; RDL3 ; layer_id4 = 113 ; RDL4 ; layer_id5 = 114 ; RDL5 ; layer_id6 = 115 ; SPHERON1 ; layer_id7 = 116 ; SPHERON2 ; layer_id8 = 117 ; SPHERON3 ; layer_id9 = 118 ; SPHERON4 ; onc25 ; layer_id1 = 110 ; RDL1 ; layer_id2 = 111 ; RDL2 ; layer_id3 = 112 ; RDL3 ; layer_id4 = 113 ; RDL4 ; layer_id5 = 114 ; RDL5 ; layer_id6 = 115 ; SPHERON1 ; layer_id7 = 116 ; SPHERON2 ; layer_id8 = 117 ; SPHERON3 ; layer_id9 = 118 ; SPHERON4 layer = techCreateLayer(tf layer_id1 "RDL1" "level1") lp = techCreateLP(tf '("RDL1" "drawing") "RDL1") techSetLPPacketName(lp "pink") layer = techCreateLayer(tf layer_id2 "RDL2" "level2") lp = techCreateLP(tf '("RDL2" "drawing") "RDL2") techSetLPPacketName(lp "yellow") layer = techCreateLayer(tf layer_id3 "RDL3" "level3") lp = techCreateLP(tf '("RDL3" "drawing") "RDL3") techSetLPPacketName(lp "yellow") layer = techCreateLayer(tf layer_id4 "RDL4" "level4") lp = techCreateLP(tf '("RDL4" "drawing") "RDL4") techSetLPPacketName(lp "yellow") layer = techCreateLayer(tf layer_id5 "RDL5" "level5") lp = techCreateLP(tf '("RDL5" "drawing") "RDL5") techSetLPPacketName(lp "yellow") layer = techCreateLayer(tf layer_id6 "SPHERON1" "spheron1") lp = techCreateLP(tf '("SPHERON1" "drawing") "SPHERON1") techSetLPPacketName(lp "blue") layer = techCreateLayer(tf layer_id7 "SPHERON2" "spheron2") lp = techCreateLP(tf '("SPHERON2" "drawing") "SPHERON2") techSetLPPacketName(lp "blue") layer = techCreateLayer(tf layer_id8 "SPHERON3" "spheron3") lp = techCreateLP(tf '("SPHERON3" "drawing") "SPHERON3") techSetLPPacketName(lp "blue") layer = techCreateLayer(tf layer_id9 "SPHERON4" "spheron4") lp = techCreateLP(tf '("SPHERON4" "drawing") "SPHERON4") techSetLPPacketName(lp "blue") ;;;;; valide ;;;;;;;; myvia=techCreateStdViaDef(tf "S1" "RDL1" "RDL2" list("SPHERON1" 0.5 0.5 5.0) list(2 2 '(0.15 0.15)) '(0.05 0.005) '(0.1 0.01) '(0.0 0.0) '(0.3 0.3) '(0.7 0.7) ) techCreateCustomViaDefByName(tf "SPHERON1" "BCD" "SPHERON1" "via" "RDL1" "RDL2") ;;;;; essai passe=techCreateStdViaDef(tf "passe" "METAL1" "RDL1" list("SPHERON1" 0.5 0.5 5.0) list(2 2 '(0.15 0.15)) '(0.05 0.005) '(0.1 0.01) '(0.0 0.0) '(0.3 0.3) '(0.7 0.7) ) techCreateCustomViaDefByName(tf "SPHERON1" "BCD" "SPHERON1" "via" "METAL1" "RDL1") techSetLayerFunction(tf "RDL1" "metal") techSetLayerFunction(tf "SPHERON1" "cut") techSetLayerFunctions( tf list( ("RDL1" "metal") ("SPHERON1" "cut") ) ) ;;;;;;;;;;;;;;;;;;;;;; ;techCreateCustomViaDef(tf "pat" cv "RDL1" "RDL2") ; vue VIA ;techCreateCustomViaDefByName(tf "SPHERON1" "BCD" "SPHERON1" "via" "RDL1" "RDL2") ;techGetViaLayers(tf) ;; obsolete ;;techSetViaLayers( tf list(list( "RDL1" "SPHERON1" "RDL2") )) ;; obsolete ;;techSetViaLayer( tf "RDL1" "SPHERON1" "RDL2" ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; procedure(delete_via() id = techFindViaDefByName(tf "viad") techDeleteViaDef(id) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; procedure(delete_layer() techDeleteLayer( tf "RDL1" ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; procedure(create_via() lib = "BCD" cell = list("SPHERON1" "SPHERON2" "SPHERON3" "SPHERON4") layer = list("RDL1" "RDL2" "RDL3" "RDL4" "RDL5") ; view = "via" cv=geGetWindowCellView() for(i 0 3 id_src = dbOpenCellViewByType(lib nth(i cell) view "maskLayout" "w") box = list(-50:-50 50:50) dbCreateEllipse(id_src nth(i layer) box) dbCreateEllipse(id_src nth(i+1 layer) box) box = list(-25:-25 25:25) dbCreateEllipse(id_src nth(i cell) box) dbSave(id_src) dbClose(id_src) ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; procedure(gui_bump() champs = list( list(hiCreateIntField( ?name 'ligne ?prompt "Nombre ligne :" ?value 1 ?defValue 1 ?range (range 0 100) ;?editable nil ) 30:10 150:30 100 ) list(hiCreateIntField( ?name 'colonne ?prompt "Nombre colonne :" ?value 1 ?defValue 1 ?range (range 0 100) ;?editable nil ) 30:40 150:30 100 ) list(hiCreateFloatField( ?name 'spacing_x ?prompt "Distance X :" ?value 1.0 ?defValue 1.0 ?range (range 0 1000) ;?editable nil ) 30:70 150:30 100 ) list(hiCreateFloatField( ?name 'spacing_y ?prompt "Distance Y :" ?value 1.0 ?defValue 1.0 ?range (range 0 1000) ;?editable nil ) 30:100 150:30 100 ) list(hiCreateFloatField( ?name 'diametre ?prompt "Diametre Bump :" ?value 1.0 ?defValue 1.0 ?range (range 0 1000) ;?editable nil ) 30:140 150:30 100 ) list(hiCreateButton( ?name 'bouton_generer_bump ?buttonText "Create Bump Matrix" ?callback "matrice_bump()" ) 80:180 150:30 100 ) list(hiCreateButton( ?name 'bouton_generer_layer_RDL ?buttonText "Create RDL layers" ?callback "create_RDL_layers()" ) 80:220 150:30 100 ) ) hiCreateAppForm( ?name 'form_bump ?fields champs ?formTitle "# Bump Tools #" ?unmapAfterCB nil ?initialSize t ?callback 'matrice_bump() ) hiDisplayForm('form_bump) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; procedure(matrice_bump() cv=geGetWindowCellView() ligne = form_bump~>ligne~>value colonne = form_bump~>colonne~>value spacing_x = form_bump~>spacing_x~>value spacing_y = form_bump~>spacing_y~>value diametre = form_bump~>diametre~>value ;ligne = 5 ;colonne = 6 ;spacing_x = 200.00 ;spacing_y = 200.00 ;diametre = 300.00 rayon = diametre / 2.0 ; paire ? test = evenp(colonne) if(test == t then x_start = (colonne / 2.0) * spacing_x + (colonne / 2.0) * diametre - (diametre + spacing_x) / 2.0 bof = 8 else x_start = ( (colonne - 1) * spacing_x + (colonne - 1) * diametre ) / 2.0 ) ; paire ? test = evenp(ligne) if(test == t then y_start = (ligne/ 2.0) * spacing_y + (ligne / 2.0) * diametre - (diametre + spacing_y) / 2.0 else y_start = ( (ligne - 1) * spacing_y + (ligne - 1) * diametre ) / 2.0 ) for(i 0 ligne-1 ycentre = y_start - i * (spacing_y + diametre) for(j 0 colonne-1 xcentre = x_start - j * (spacing_x + diametre) x1 = xcentre - rayon y1 = ycentre - rayon x2 = xcentre + rayon y2 = ycentre + rayon box = list(x1:y1 x2:y2) dbCreateEllipse(cv "METAL1" box) ) ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; gui_bump() ;tf=techGetTechFile(cvId) ;viaDef=techFindViaDefByName(tf "M3_M2") ;dbCreateVia(cvId viaDef 10:20 "R0") ;