File "bumps.il"
Full Path: /home/analogde/www/VirtualKeyboardSample/SKILL/bumps.il
File size: 6.16 KB
MIME-type: text/plain
Charset: utf-8
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
procedure(create_layer()
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 )
layer = techCreateLayer(tf 110 "RDL1" "level1")
lp = techCreateLP(tf '("RDL1" "drawing") "RDL1")
techSetLPPacketName(lp "pink")
layer = techCreateLayer(tf 111 "RDL2" "level2")
lp = techCreateLP(tf '("RDL2" "drawing") "RDL2")
techSetLPPacketName(lp "yellow")
layer = techCreateLayer(tf 112 "RDL3" "level3")
lp = techCreateLP(tf '("RDL3" "drawing") "RDL3")
techSetLPPacketName(lp "yellow")
layer = techCreateLayer(tf 113 "RDL4" "level4")
lp = techCreateLP(tf '("RDL4" "drawing") "RDL4")
techSetLPPacketName(lp "yellow")
layer = techCreateLayer(tf 114 "RDL2" "level5")
lp = techCreateLP(tf '("RDL5" "drawing") "RDL5")
techSetLPPacketName(lp "yellow")
layer = techCreateLayer(tf 115 "SPHERON1" "spheron1")
lp = techCreateLP(tf '("SPHERON1" "drawing") "SPHERON1")
techSetLPPacketName(lp "blue")
layer = techCreateLayer(tf 116 "SPHERON2" "spheron2")
lp = techCreateLP(tf '("SPHERON2" "drawing") "SPHERON1")
techSetLPPacketName(lp "blue")
layer = techCreateLayer(tf 117 "SPHERON3" "spheron3")
lp = techCreateLP(tf '("SPHERON3" "drawing") "SPHERON3")
techSetLPPacketName(lp "blue")
layer = techCreateLayer(tf 118 "SPHERON4" "spheron4")
lp = techCreateLP(tf '("SPHERON4" "drawing") "SPHERON4")
techSetLPPacketName(lp "blue")
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) )
techCreateCustomViaDef(tf "pat" cv "RDL1" "RDL2") ; vue VIA
techCreateCustomViaDefByName(tf "pat" "work_180nm" "SPH1" "via" "RDL1" "RDL2")
techGetViaLayers(tf)
;; obsolete
;;techSetViaLayers( tf list(list( "RDL1" "SPHERON1" "RDL2") ))
;; obsolete
;;techSetViaLayer( tf "RDL1" "SPHERON1" "RDL2" )
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
procedure(delete_layer()
id = techFindViaDefByName(tf "viad")
techDeleteViaDef(id)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
procedure(create_via()
lib = "work_180nm"
cell = "toto"
view = "layout"
cv=geGetWindowCellView()
id_src = dbOpenCellViewByType(lib cell view "maskLayout" "w")
box = list(10:10 100:100)
dbCreateEllipse(id_src "Metal1" 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 "Generation"
?callback "matrice_bump()"
)
80:180
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)
)
)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;tf=techGetTechFile(cvId)
;viaDef=techFindViaDefByName(tf "M3_M2")
;dbCreateVia(cvId viaDef 10:20 "R0") ;