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
:
cdf.il
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; procedure(listing_terminaux() prog( () let(( cv listing_pins ) printf(" Recherche les pins dans le schema ... \n" ) cv=geGetEditCellView() listing_pins=cv~>terminals~>name ;printf(" Voici la liste des pins %L \n" listing_pins) nombre_pins=length(listing_pins) fileName = strcat("~/" cv~>cellName "_PIN.report") outPort = outfile(fileName) fprintf(outPort "\n PIN REPORT \n") fprintf(outPort "---------------------\n") fprintf(outPort "Lib Name: %s\n" cv~>libName) fprintf(outPort "Cell Name: %s\n" cv~>cellName) fprintf(outPort "View Name: %s\n" cv~>viewName) fprintf(outPort "Extracted by: %s\n" getLogin() ) fprintf(outPort "%s\n" getCurrentTime()) fprintf(outPort "---------------------\n\n") for( i 0 nombre_pins-1 fprintf(outPort "%L" nth(i listing_pins )) fprintf(outPort "\n") );for close(outPort) printf("[INFOS]: Extraction reussie") ;view(fileName) return(listing_pins) ) ;let );prog );procedure ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; procedure(pins() cpt_gauche=0 cpt_droite=0 cpt_haut=0 cpt_bas=0 espace=1 minX=0 minY=0 L = 0.4 H = 0.6 position = "left" cv=geGetWindowCellView() pins = setof(x cv~>shapes x~>pin) nb_pin = length(pins) for(i 0 length(pins)-1 ;couleur=list(layer "drawing") ;shape~>lpp = couleur case( position ("left" if(cpt_gauche==0 then x1=minX y1=minY cpt_gauche++ H_precedent=H else x1=x1 y1=y1+H_precedent+espace cpt_gauche++ H_precedent=H );if ) ("right" if(cpt_droite==0 then x1=maxX-L y1=minY cpt_droite++ H_precedent=H else x1=x1 y1=y1+H_precedent+espace cpt_droite++ H_precedent=H );if ) ("top" if(cpt_haut==0 then x1=minX y1=maxY-H cpt_haut++ L_precedent=L else x1=x1+L_precedent+espace y1=maxY-H cpt_haut++ L_precedent=L );if ) ("bottom" if(cpt_bas==0 then x1=minX y1=minY L_precedent=L cpt_bas++ else x1=x1+L_precedent+espace y1=y1 L_precedent=L cpt_bas++ );if ) ); case delta_x=x1+L ;x0 delta_y=y1+H ;y0 couple=list(x1:y1 delta_x:delta_y) ;printf(" nouvelle taille %L \n" couple) nth(i pins)~>bBox=couple ); for labels=setof( shape cv~>shapes shape~>objType == "label") foreach( label labels x = car(label~>xy) y = cadr(label~>xy) text = label~>theLabel ;printf(" infos %L %L %L \n" x y text) foreach( shape cv~>shapes if(shape~>pin !=nil then if(text == shape~>pin~>term~>name then ;printf(" infos %L %L \n" text shape~>pin~>term~>name) centreX=((caadr(shape~>bBox) - caar(shape~>bBox))/2.0) + caar(shape~>bBox) centreY=((cadadr(shape~>bBox) - cadar(shape~>bBox))/2.0) + cadar(shape~>bBox) label~>xy=list(centreX centreY) label~>lpp = list("METAL1" "pin") label~>height = 0.2 ;printf(" Centre %L %L\n" centreX centreY) );if );if );foreach );foreach ; count=0 ; ; foreach( indice pins ; overlapShapes=dbGetOverlaps(cv indice~>bBox indice~>lpp 0:32) ; unless( length(overlapShapes)>1 ; geSelectFig(indice) ; count++ ; printf("Isolated %L indice with net %s found at %L\n" ; indice~>lpp indice~>net~>name centerBox(indice~>bBox)) ; ) ;unless ; ) ;foreach ;;leSearchHierarchy(cv cv~>bBox 0 "pin" list(list("term name" "==" "b"))) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; procedure(formulaire() let(() champs = list( list(hiCreateLayerCyclicField(techGetTechFile(geGetEditCellView()~>lib) "Couche ref NMOS:" "recuperation_couche('couche_extraction_mos_n)" techGetLeLswLayers(techGetTechFile(geGetEditCellView()~>lib)) () 'couche_extraction_mos_n ) (10:30) (200:30) 150 ) list(hiCreateLayerCyclicField(techGetTechFile(geGetEditCellView()~>lib) "Couche ref PMOS:" "recuperation_couche('couche_extraction_mos_p)" techGetLeLswLayers(techGetTechFile(geGetEditCellView()~>lib)) () 'couche_extraction_mos_p ) (10:70) (200:30) 150 ) list(hiCreateLayerCyclicField(techGetTechFile(geGetEditCellView()~>lib) "Couche N:" "recuperation_couche('couche_N)" techGetLeLswLayers(techGetTechFile(geGetEditCellView()~>lib)) () 'couche_N ) (10:110) (200:30) 150 ) list(hiCreateLayerCyclicField(techGetTechFile(geGetEditCellView()~>lib) "Couche P:" "recuperation_couche('couche_P)" techGetLeLswLayers(techGetTechFile(geGetEditCellView()~>lib)) () 'couche_P ) (10:150) (200:30) 150 ) list(hiCreateCyclicField( ?name 'cycle_nom_ring_N ?prompt "Affectation ring N:" ?choices global_liste_fichier_conf ?value nth(0 global_liste_fichier_conf) ?defValue nth(0 global_liste_fichier_conf) ;?callback "chargement_fichier_config('Form_configuration_isoring 'cycle_nom_ring_N)" ) (10:190) (200:30) 150 ) list(hiCreateCyclicField( ?name 'cycle_nom_ring_P ?prompt "Affectation ring P:" ?choices global_liste_fichier_conf ?value nth(0 global_liste_fichier_conf) ?defValue nth(0 global_liste_fichier_conf) ;?callback "chargement_fichier_config('Form_configuration_isoring 'cycle_nom_ring_P)" ) (10:230) (200:30) 150 ) list(hiCreateCyclicField( ?name 'cycle_nom_ring_N_ISI ?prompt "Affectation ring N ISO:" ?choices global_liste_fichier_conf ?value nth(0 global_liste_fichier_conf) ?defValue nth(0 global_liste_fichier_conf) ;?callback "chargement_fichier_config('Form_configuration_isoring 'cycle_nom_ring_P)" ) (10:270) (200:30) 150 ) list( hiCreateBooleanButton( ?name 'boolean_btn_align ?buttonText "Alignement" ?value t ?defValue nil ?callback "alignement()" ) (10:470) (200:50) 150 ) ) hiCreateAppForm( ?name 'Form_configuration_isoring ?fields champs ?formTitle "# Parametrages isoring des mos #" ?unmapAfterCB nil ?initialSize t ) hiDisplayForm('Form_configuration_isoring) ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; procedure(aligne2() x_min ='() y_min ='() x_max ='() y_max ='() xmin = 0.0 ymin = 0.0 xmax = 0.0 ymax = 0.0 x = 0.0 y = 0.0 xy_pcell ='() liste_id='() layer_detection = "NIMP" liste_id = setof(element geGetSelectedSet() element~>objType=="inst") nombre_mos = length(liste_id) for(i 0 nombre_mos-1 if(nth(i liste_id )~>orient != "R0" then nth(i liste_id )~>orient = "R0" ) ) for(i 1 nombre_mos-1 foreach(couche nth(i liste_id)~>master~>shapes if( couche~>layerName == layer_detection && couche~>purpose == "drawing" then xy_pcell = nth(i-1 liste_id)~>bBox x1 = car(car(xy_pcell)) y1 = cadr(car(xy_pcell)) x2 = car(cadr(xy_pcell)) y2 = cadr(cadr(xy_pcell)) x = x2 + 0.66 y = y1 + 0.35 nth(i liste_id)~>xy=list(x y) ) ) ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; procedure(toto() ; alignement des instances qui sont énumérées cv=geGetWindowCellView() id_listing = '() instances = list("I2" "I4" "I6") for( i 0 length(instances)-1 id = car(leSearchHierarchy(cv cv~>bBox 0 "inst" list(list("inst name" "==" nth(i instances) ))) ) id_listing = append1(id_listing id ) ) nombre_mos = length( id_listing) for(i 0 nombre_mos-1 if(nth(i id_listing )~>orient != "R0" then nth(i id_listing )~>orient = "R0" ) ) for(i 1 nombre_mos-1 foreach(couche nth(i id_listing )~>master~>shapes if( couche~>layerName == layer_detection && couche~>purpose == "drawing" then xy_pcell = nth(i-1 id_listing )~>bBox x1 = car(car(xy_pcell)) y1 = cadr(car(xy_pcell)) x2 = car(cadr(xy_pcell)) y2 = cadr(cadr(xy_pcell)) x = x2 + 0.66 y = y1 + 0.35 nth(i id_listing )~>xy=list(x y) ) ) ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; procedure(aligne1() x_min ='() y_min ='() x_max ='() y_max ='() xmin = 0.0 ymin = 0.0 xmax = 0.0 ymax = 0.0 x = 0.0 y = 0.0 xy_pcell ='() liste_id='() layer_detection = "NIMP" liste_id = setof(element geGetSelectedSet() element~>objType=="inst") nombre_mos = length(liste_id) for(i 0 nombre_mos-1 if(nth(i liste_id )~>orient != "R0" then nth(i liste_id )~>orient = "R0" ) ) for(i 0 nombre_mos-1 foreach(couche nth(i liste_id)~>master~>shapes if( couche~>layerName == layer_detection && couche~>purpose == "drawing" then xy_pcell = nth(i liste_id)~>bBox x_min = append1(x_min car(car(xy_pcell))) y_min = append1(y_min cadr(car(xy_pcell)) ) x_max = append1(x_max car(cadr(xy_pcell)) ) y_max = append1(y_max cadr(cadr(xy_pcell)) ) ;printf(" Box : %L \n" xy_pcell) ;x1 = car(car(xy_pcell)) ;y1 = cadr(car(xy_pcell)) ;x2 = car(cadr(xy_pcell)) ;y2 = cadr(cadr(xy_pcell)) ;printf(" Box : %f %f %f %f \n" x1 y1 x2 y2) if(i != 0 then x = nth(i-1 x_max) + 0.66 y = nth(i-1 y_min) + 0.35 nth(i liste_id)~>xy=list(x y) printf(" Box : %f %f \n" x y) ) ) ) ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; q=car(geGetSelSet()) ; cdf=cdfGetInstCDF(q) ; cdf~>?? ; q~>master~>shapes~>?? ; q=car(geGetSelSet()) ; contenu = nth(i liste_id)~>master~>shapes ; nbre_shape = length(contenu) ; type_cell = nth(i liste_id)~>cellName ; liste_type_cell = append1(liste_type_cell type_cell) ; for(j 0 (nbre_shape-1) ; if(nth(j contenu)~>layerName == layer_detection && nth(j contenu)~>purpose == "drawing" then ; xy_pcell = nth(j contenu)~>bBox ; ; if(nth(i liste_id)~>orient == "MX" then ; cdf=cdfGetInstCDF(nth(i liste_id)) ; champ = nth(0 cdf~>parameters )~>value ; h = atof(champ) ; x0 = car(coord) ; y0 = cadr(coord) - h ; xmin = x0 + car(car(xy_pcell)) ; ymin = y0 + cadr(car(xy_pcell)) ; xmax = x0 + car(cadr(xy_pcell)) ; ymax = y0 + cadr(cadr(xy_pcell)) ; x_min = append1(x_min xmin) ; y_min = append1(y_min ymin) ; x_max = append1(x_max xmax) ; y_max = append1(y_max ymax) ; ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; procedure(extraire() results=listing_terminaux() ;action = "extraction" ;gui(results) ;gestionnaire_form() )