📄 cwidth.il
字号:
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 + -