⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cwidth.il

📁 skill语言在Cadence平台二次开发中大量使用
💻 IL
📖 第 1 页 / 共 3 页
字号:
  if(upperCase(axlDesignType(t)) == "BOARD" then
   class = strcat(upperCase("etch") "/" upperCase(lname))
  else
   class = strcat(upperCase("conductor") "/" upperCase(lname))
  ); endif
  ;; find width of all clines
  axlDBRefreshId(nil)

  lwidth = list()
  lwidthpopup = list()
  layerclinesegs = list()
  if( lallclinesegs = ashFindAllClinesegs() then
   if(layerclinesegs = setof(n lallclinesegs n->layer == class) then    
    lwidth = cons(nthelem(1 layerclinesegs)->width lwidth)
    foreach(one layerclinesegs
     if(member(one->width lwidth) then
     else
      lwidth = cons(one->width lwidth)
      lwidth = sort(lwidth 'lessp)
     ); endif    
    ); end foreach
    foreach(segw lwidth
     lwidthpopup = append(lwidthpopup list(list(sprintf(w "%L" segw) sprintf(w "%L" segw))))
    ); endforeach
   else
    ;; no clinesegs on particular layer
    lwidthpopup = list("" "")
    axlUIWPrint(nil " - No Cline Segs on layer %s." lname)
    return()
   ); endif
  else
   ;; no clinesegs in layout
   axlUIWPrint(nil " - No Cline Segs in layout.")
   return()
  );endif

 ); end prog
)
;###########################################################
;#                                                         #
;#                 End of LCB_getwidth                     #
;#                                                         #
;###########################################################

;###########################################################
;#                                                         #
;#                 LCB_formupdate                          #
;#                                                         #
;###########################################################
(defun LCB_formupdate ()
   
   LCB_getwidth(layername)
   axlFormBuildPopup(changewidth_Form "widths" lwidthpopup)
   axlVisibleDesign(nil)
   axlVisibleLayer(strcat("etch/" layername) t)
   axlVisibleLayer(strcat("pin/" layername) t)
   axlVisibleLayer(strcat("via class/" layername) t)
   axlVisibleLayer(strcat("drc error class/" layername) t)
   axlVisibleUpdate(t) 


); end defun


;###########################################################
;#                                                         #
;#                 LCB_getlayers                           #
;#                                                         #
;###########################################################
(defun LCB_getlayers ()
; Get layers
  lstackpopup = list()
  llayers = list()
  etchparam = axlGetParam("paramLayerGroup:ETCH")
  l_layers = etchparam->groupMembers

 fbegin = "POPUP <layernames>"

  _zr_layerinit = axlConductorTopLayer()

  zrlayerline = strcat(fbegin "\"" _zr_layerinit "\"\"" _zr_layerinit "\".")
  lpopstack = list(zrlayerline)

  
  foreach(lname l_layers 
   lstackpopup = append(lstackpopup list(list(lname lname)))
   llayers = cons(lname llayers)
  ); end foreach


)
;###########################################################
;#                                                         #
;#                 End of LCB_getlayers                    #
;#                                                         #
;###########################################################


;###########################################################
;#                                                         #
;#                 _createForm_changewidth                 #
;#                                                         #
;###########################################################
(defun _createForm_changewidth (lstack)
 let( ()
  changewidth_form_file = "./changewidth.form"
  changewidth_form = outfile(changewidth_form_file "w")
  fprintf(changewidth_form "FILE_TYPE=FORM_DEFN VERSION=2\n")
  fprintf(changewidth_form "FORM \n")
  fprintf(changewidth_form "FIXED\n")
  fprintf(changewidth_form "PORT 41 11\n")
  fprintf(changewidth_form "HEADER \"Change Width\"\n")
  fprintf(changewidth_form "\n")
  foreach(one lstack
    fprintf(changewidth_form "%s\n" one)
  ); end foreach

  ;fprintf(changewidth_form "POPUP <layernames>\"top\"\"top\",\"bottom\"\"bottom\".\n")
  fprintf(changewidth_form "\n")
  fprintf(changewidth_form "POPUP <segwidth>\"5\"\"5\",\"6\"\"6\".\n")
  fprintf(changewidth_form "\n")
  fprintf(changewidth_form "\n")
  fprintf(changewidth_form "TILE\n")
  fprintf(changewidth_form "TEXT \"Source Layer\"\n")
  fprintf(changewidth_form "TLOC 2 5\n")
  fprintf(changewidth_form "TGROUP \"Change Width\"\n")
  fprintf(changewidth_form "ENDTEXT\n")
  fprintf(changewidth_form "\n")
  fprintf(changewidth_form "TEXT \"Source Segment Width\"\n")
  fprintf(changewidth_form "TLOC 2 8\n")
  fprintf(changewidth_form "TGROUP \"Change Width\"\n")
  fprintf(changewidth_form "ENDTEXT\n")
  fprintf(changewidth_form "\n")
  fprintf(changewidth_form "TEXT \"New Segment Width\"\n")
  fprintf(changewidth_form "TLOC 2 11\n")
  fprintf(changewidth_form "TGROUP \"Change Width\"\n")
  fprintf(changewidth_form "ENDTEXT\n")
  fprintf(changewidth_form "\n")
  fprintf(changewidth_form "FIELD layers\n")
  fprintf(changewidth_form "FLOC 23 5\n")
  fprintf(changewidth_form "FGROUP \"Change Width\"\n")
  fprintf(changewidth_form "ENUMSET 8\n")
  fprintf(changewidth_form "POP \"layernames\"\n")
  fprintf(changewidth_form "ENDFIELD\n")
  fprintf(changewidth_form "\n")
  fprintf(changewidth_form "FIELD widths\n")
  fprintf(changewidth_form "FLOC 24 8\n")
  fprintf(changewidth_form "FGROUP \"Change Width\"\n")
  fprintf(changewidth_form "ENUMSET 6\n")
  fprintf(changewidth_form "POP \"segwidth\"\n")
  fprintf(changewidth_form "ENDFIELD\n")
  fprintf(changewidth_form "\n")
  fprintf(changewidth_form "FIELD newsegwidth\n")
  fprintf(changewidth_form "FLOC 24 11\n")
  fprintf(changewidth_form "FGROUP \"Change Width\"\n")
  fprintf(changewidth_form "REALFILLIN 5 5\n")
  fprintf(changewidth_form "REALMIN 1.0\n")
  fprintf(changewidth_form "REALMAX 1000.000000\n")
  fprintf(changewidth_form "DECIMAL %n\n" dbaccuracy )
  fprintf(changewidth_form "ENDFIELD\n")
  fprintf(changewidth_form "\n")

  fprintf(changewidth_form "FIELD close\n")
  fprintf(changewidth_form "FLOC 1 16\n")
  fprintf(changewidth_form "MENUBUTTON \"Close\" 7 3\n")
  fprintf(changewidth_form "ENDFIELD\n")
  fprintf(changewidth_form "\n")

  fprintf(changewidth_form "FIELD info\n")
  fprintf(changewidth_form "FLOC 10 16\n")
  fprintf(changewidth_form "MENUBUTTON \"Info\" 7 3\n")
  fprintf(changewidth_form "ENDFIELD\n")
  fprintf(changewidth_form "\n")

  fprintf(changewidth_form "FIELD done\n")
  fprintf(changewidth_form "FLOC 23 16\n")
  fprintf(changewidth_form "MENUBUTTON \"Change Width\" 14 3\n")
  fprintf(changewidth_form "ENDFIELD\n")
  fprintf(changewidth_form "\n")
  fprintf(changewidth_form "GROUP \"Change Width\"\n")
  fprintf(changewidth_form "GLOC 1 1\n")
  fprintf(changewidth_form "GSIZE 36 14\n")
  fprintf(changewidth_form "ENDGROUP\n")
  fprintf(changewidth_form "\n")
  fprintf(changewidth_form "ENDTILE\n")
  fprintf(changewidth_form "\n")
  fprintf(changewidth_form "ENDFORM\n")
  close(changewidth_form)
  ); end prog
); end defun
;###########################################################
;#                                                         #
;#             End of _createForm_changewidth              #
;#                                                         #
;###########################################################
;###########################################################
;#                                                         #
;#             cwidth_info_createInfo                      #
;#                                                         #
;###########################################################
(defun cwidth_info_createInfo ()
  cwidth_info_helpfile = "./cwidth_info_info.txt"
  cwidth_info_info = outfile(cwidth_info_helpfile "w")
  fprintf(cwidth_info_info "################################################################################\n")
  fprintf(cwidth_info_info "#                                                                              #\n")
  fprintf(cwidth_info_info "#                      Command: cwidth                                         #\n")
  fprintf(cwidth_info_info "#                   Skill File: cwidth.il                                      #\n")
  fprintf(cwidth_info_info "#                  How To Load: Command> (load(\"cwidth.il\"))                   #\n")
  fprintf(cwidth_info_info "#               How To Execute: Command> cwidth            OR                  #\n")
  fprintf(cwidth_info_info "#                                        cwidth  <anything>                    #\n")
  fprintf(cwidth_info_info "#                                                                              #\n")
  fprintf(cwidth_info_info "#                       Author: Larry Bowman, Cadence Design Systems           #\n")
  fprintf(cwidth_info_info "#                        Email: bowman@cadence.com                             #\n")
  fprintf(cwidth_info_info "#                    Telephone: 512-349-1109                                   #\n")
  fprintf(cwidth_info_info "#                Creation Date: 02/28/2003                                     #\n")
  fprintf(cwidth_info_info "#                                                                              #\n")
  fprintf(cwidth_info_info "#                 Version: 3.0  Corrected Floating Point Comparison.           #\n")
  fprintf(cwidth_info_info "#                         Date: 07/24/2003                                     #\n")
  fprintf(cwidth_info_info "################################################################################\n")
  fprintf(cwidth_info_info "\n")
  fprintf(cwidth_info_info "################################################################################\n")
  fprintf(cwidth_info_info "#  DISCLAIMER:                                                                 #\n")
  fprintf(cwidth_info_info "#       The user of this command assumes all responsibility and does not       #\n")
  fprintf(cwidth_info_info "#       hold Cadence Design Systems nor the author of this code for any        #\n")
  fprintf(cwidth_info_info "#       unwarranted results or problems due to the use of this code.           #\n")
  fprintf(cwidth_info_info "#                                                                              #\n")
  fprintf(cwidth_info_info "#       This is non-supported code and the user may modify it as needed.       #\n")

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -