;ELC
;;; Compiled
;;; in Emacs version 27.1
;;; with all optimizations.
;;; This file uses dynamic docstrings, first added in Emacs 19.29.
;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#@27 VHDL Mode version number.
(defconst vhdl-version "3.38.1" (#$ . 408))
#@39 VHDL Mode time stamp for last update.
(defconst vhdl-time-stamp "2015-03-12" (#$ . 484))
(byte-code "\301W\203 \3021 \303\304!0\202 \210\303\305!\210\301\207" [emacs-major-version 25 (file-missing) require cl-lib cl] 2)
#@43 Non-nil if GNU Emacs 21, 22, ... is used.
(defconst vhdl-emacs-21 (byte-code "\301X\205 \302\207" [emacs-major-version 21 t] 2) (#$ . 714))
#@39 Non-nil if GNU Emacs 22, ... is used.
(defconst vhdl-emacs-22 (byte-code "\301X\205 \302\207" [emacs-major-version 22 t] 2) (#$ . 862))
#@73 Set variables as in `custom-set-default' and call FUNCTIONS afterwards.
(defalias 'vhdl-custom-set #[(variable value &rest functions) "\303\304!\203 \304 \"\210\202 \305 \"\210\n\205* \303\n@!\203\" \n@ \210\nA\211\204 \306\207" [variable value functions fboundp custom-set-default set-default nil] 4 (#$ . 1006)])
#@93 Check that the value of WIDGET is a valid directory entry (i.e. ends with
'/' or is empty).
(defalias 'vhdl-widget-directory-validate #[(widget) "\302!\303\304 \"?\205 \305\306\307#\210)\207" [widget val widget-value string-match "^\\(\\|.*/\\)$" widget-put :error "Invalid directory entry: must end with `/'"] 4 (#$ . 1333)])
(defconst vhdl-name-doc-string "\n\nFROM REGEXP is a regular expression matching the original name:\n \".*\" matches the entire string\n \"\\(...\\)\" matches a substring\nTO STRING specifies the string to be inserted as new name:\n \"\\&\" means substitute entire matched text\n \"\\N\" means substitute what matched the Nth \"\\(...\\)\"\nExamples:\n \".*\" \"\\&\" inserts original string\n \".*\" \"\\&_i\" attaches \"_i\" to original string\n \"\\(.*\\)_[io]$\" \"\\1\" strips off \"_i\" or \"_o\" from original string\n \".*\" \"foo\" inserts constant string \"foo\"\n \".*\" \"\" inserts empty string")
(byte-code "\306\307\310\311\312\313\314\315&\210\306\316\310\317\314\307%\210\320\321\310\322\323\324\314\316&\210\306\325\310\326\314\307%\210\320\300\327\330\323\331\332\333\334\335\314\325&\210\320\336\337\340\323\310\211\203Q \341\n@@D B\nA\211\204B \342\343 \237\"*\314\325&\210\320\344\310\345\334\346\323\324\314\325& \210\320\347\350\351\323\352\334\353\314\325& \210\320\354\310\355\323\356\314\325&\210\320\357\360\361\323\362\314\325&\210\306\363\310\364\314\307%\210\320\304\365\366\323\367\301\370\371\372\373\374\375\376\370\377\201B \201C \201D !\257\201E \201F \367\370\201G \372\201H \301\370\201I \372\201J \310\211\203\340 \341\n@@D B\nA\211\204\321 \342\201K \237\"*\201L BBBBBB\257\201M BBBBBBBBBBBD\332\201N \314\363& \210\320\363\310\201O \323\f\310\211\203)\341\n@@D B\nA\211\204\342\201P \237\"*\314\363&\210\320\201Q \201R \201S \323\201T \314\363&\210\201U \201V \201W \310#\210\201X \310\211@\203\213@@\201V
N\203\202\201W
N\204\202\201Y \201W
\201V
N#\210@A\211@\204`*\201Z \201V \201W \201[ #\210\320\201W \201\\ \201] \323\201^ \314\363&\210\320\201_ \201` \201a \323\324\314\363&\210\306\201b \310\201c \314\307\314\201d \314\201e \314\201f &\210\320\201g \201h \201i \323\201j \332\201k \314\201b & \210\320\201l \373\201m \323\201n \314\201b &\210\320\201o \310\201p \323\324\332\201q \314\201b & \210\320\201r \310\201s \323\324\332\201t \314\201b & \210\320\201u \310\201v \323\324\332\201w \314\201b & \210\320\201x \310\201y \323\324\332\201z \314\201b & \210\320\201{ \201` \201| \323\324\332\201} \314\201b & \210\320\201~ \201 \201\200 \323\201\201 \314\201b &\210\320\201\202 \201` \201\203 \323\324\334\353\314\201b & \210\306\201\204 \310\201\205 \314\307%\210\320\201\206 \201\207 \201\210 AP\323\201\211 \314\201\204 \314\201f & \210\320\201\212 \201\213 \201\214 AP\323\201\215 \314\201\204 \314\201f & \210\320\201\216 \201\217 \201\220 AP\323\201\221 \314\201\204 \314\201f & \210\320\201\222 \201\223 \201\224 AP\323\201\225 \314\201\204 \314\201f & \210\320\201\226 \201\227 \201\230 \323\201\231 \314\201\204 \314\201f & \210\306\201d \310\201\232 \314\307%\210\320\201\233 \201\234 \201\235 \323\201\236 \332\201\237 \314\201d & \210\320\201\240 \201\241 \201\242 \323\201\243 \314\201d &\210\320\201\244 \201\245 \201\246 \323\201\247 \314\201d \314\201e \314\201f &\210\320\201\250 \310\201\251 \323\324\314\201d \314\201e \314\201f &\210\320\201\252 \201` \201\253 \323\324\314\201d \314\201e \314\201f &\210\320\201\254 \310\201\255 \323\324\314\201d &\210\320\201\256 \201` \201\257 \334\346\323\324\314\201d & \210\320\201\260 \201\261 \201\262 \323\362\314\201d &\210\320\201\263 \201\264 \201\265 \323\362\314\201d &\210\306\201\266 \310\201\267 \314\201d \314\201f &\210\320\201\270 \201\271 \201\272 \323\362\314\201\266 &\210\320\201\273 \201\274 \201\275 \323\362\314\201\266 &\210\320\201\276 \201\274 \201\277 \323\362\314\201\266 &\210\320\201\300 \201\301 \201\302 \323\362\314\201\266 &\210\320\201\303 \201\274 \201\304 \323\362\314\201\266 &\210\320\201\305 \201\306 \201\307 \323\362\314\201\266 &\210\320\201\310 \201\311 \201\312 \323\362\314\201\266 &\210\320\201\313 \201` \201\314 \323\324\314\201\266 &\210\306\201\315 \310\201\316 \314\201d %\210\320\201\317 \201\320 \201\321 \323\201\322 \314\201\315 &\210\320\201\323 \310\201\324 \323\324\314\201\315 &\210\320\201\325 \201` \201\326 \323\324\314\201\315 &\210\320\201\327 \201\330 \201\331 \323\201\332 \314\201\315 &\210\320\201\333 \201\274 \201\334 \323\362\314\201\315 &\210\320\201\335 \201\274 \201\336 \323\362\314\201\315 &\210\306\201\337 \310\201\340 \314\307%\210\320\201\341 \201\342 \201\343 \323\201\344 \332\201\345 \314\201\337 & \210\306\201f \310\201\346 \314\307%\210\320\201\347 \201\350 \201\351 AP\323\201\352 \314\201f &\210\320\201\353 \201\354 \201\355 AP\323\201\356 \314\201f &\210\320\201\357 \201\360 \201\361 AP\323\201\362 \314\201f &\210\320\201\363 \310\201\364 \323\324\314\201f &\210\320\201\365 \201` \201\366 \323\324\314\201f &\210\320\201\367 \201\370 \201\371 \323\201\372 \314\201f &\210\320\201\373 \310\201\374 \323\324\314\201f &\210\320\201\375 \201` \201\376 \323\324\314\201f &\210\320\201\377 \201` \201 \323\324\314\201f &\210\306\201e \310\201\314\307\314\201f &\210\320\201\310\201\323\324\314\201e &\210\320\201\310\201\323\324\314\201e &\210\320\201\310\201\323\324\314\201e &\210\320\201\201 \201\n\323\201\314\201e &\210\320\201\f\201
\201AP\323\201\314\201e \334\335& \210\320\201\201\201AP\323\201\314\201e &\210\320\201\201\201AP\323\201\314\201e &\210\306\201\310\201\314\201e %\210\320\201\201\201AP\323\201\314\201&\210\320\201\201\201 AP\323\201!\314\201&\210\320\201\"\201\353 \201#AP\323\201$\314\201&\210\320\201%\201&\201'AP\323\201(\314\201&\210\320\201)\201` \201\366 \323\324\314\201&\210\320\201*\201+\201,\323\362\314\201&\210\320\201-\201.\201/\323\362\314\201&\210\320\2010\310\2011\323\324\314\201&\210\320\2012\201` \2013\323\324\314\201&\210\320\2014\201` \2015\323\324\314\201&\210\320\2016\2017\2018\323\2019\314\201&\210\320\201:\201\206 \201;AP\323\201<\314\201&\210\320\201=\201\212 \201>AP\323\201?\314\201&\210\306\201@\310\201A\314\307%\210\320\201B\201` \201C\323\324\314\201@&\210\320\201D\201` \201E\323\324\314\201@&\210\320\201F\201G\201H\323\201n \314\201@&\210\320\201I\201J\201K\323\201n \314\201@&\210\306\201L\310\201M\314\307%\210\320\201N\201` \201O\323\324\314\201L&\210\320\201P\201` \201Q\323\324\314\201L&\210\320\201R\201S\201T\323\201U\314\201L&\210\320\201V\201` \201W\323\324\314\201L&\210\320\201X\201Y\201Z\323\201[\314\201L\334\335& \210\306\201\\\310\201]\314\307%\210\320\201^\201` \201_\323\324\332\201`\314\201\\& \210\320\201a\201` \201b\323\324\332\201c\314\201\\& \210\320\201d\310\201e\323\324\332\201f\314\201\\& \210\320\201g\310\201h\323\324\332\201i\314\201\\& \210\320\201j\310\201k\323\324\332\201l\314\201\\& \210\320\201m\310\201n\323\324\332\201o\314\201\\& \210\320\201p\310\201q\323\324\314\201\\&\210\320\201r\201s\201t\323\201u\332\201v\314\201\\& \210\320\201w\201x\201y\323\201z\332\201{\314\201\\& \210\320\201|\201\274 \201}\323\201U\332\201~\314\201\\& \210\320\201\201\200\201\201\323\201\202\332\201\203\314\201\\& \210\306\201\204\310\201\205\314\307%\210\320\201\206\310\201\207\323\324\314\201\204&\210\320\201\210\201\211\201\212\323\201\213\314\201\204&\210\320\201\214\201\215\201\216\323\201\217\314\201\204&\210\320\201\220\201` \201\221\323\324\314\201\204&\210\320\201\222\201` \201\223\323\324\314\201\204&\210\320\201\224\201\225\201\226\323\201\227\314\201\204&\210\320\201\230\201\231\201\232\323\362\314\201\204&\210\306\201\233\310\201\234\314\307%\210\320\201\235\310\201\236\323\324\314\201\233&\210\320\201\237\310\201\240\323\324\314\201\233&\210\320\201\241\310\201\242\323\324\314\201\233&\210\320\201\243\310\201\244\323\324\314\201\233&\210\306\201\245\310\201\246\314\307%\210\320\201\247\201` \201\250\323\324\314\201\245&\210\320\201\251\201` \201\252\323\324\314\201\245&\210\306\201\253\310\201\254\314\307%\210\320\201\255\201` \201\256\323\324\314\201\253&\210\320\201\257\201` \201\260\323\324\314\201\253&\210\320\201\261\201` \201\262\323\324\334\353\314\201\253& \210\320\201\263\310\201\264\323\324\314\201\253&\210\320\201\265\201` \201\266\323\324\314\201\253&\210\320\201\267\310\201\270\323\324\314\201\253&\210\201Z \201\267\201\271\335#\210\306\201\272\310\201\273\314\307%\210\201\274\201\272\201\275\201\276#\210\201\274\201\272\201\277\201\276#\210\201\274\201\272\201\300\201\276#\210\201\274\201\272\201\301\201\276#\210\201\274\201\272\201\302\201\303#\210\201\274\201\272\201\304\201\303#\210\201\274\201\272\201\305\201\303#\210\201\274\201\272\201\306\201\303#\210\201\274\201\272\201\307\201\303#\207" [vhdl-compiler-alist list alist default-directory vhdl-project-alist prop custom-declare-group vhdl nil "Customizations for VHDL Mode." :prefix "vhdl-" :group languages vhdl-mode "Customizations for modes." custom-declare-variable vhdl-indent-tabs-mode "Non-nil means indentation can insert tabs.\nOverrides local variable `indent-tabs-mode'." :type boolean vhdl-compile "Customizations for compilation." '(("ADVance MS" "vacom" "-work \\1" "make" "-f \\1" nil "valib \\1; vamap \\2 \\1" "./" "work/" "Makefile" "adms" ("^\\s-+\\([0-9]+\\):\\s-+" nil 1 nil) ("^Compiling file \\(.+\\)" 1) ("ENTI/\\1.vif" "ARCH/\\1-\\2.vif" "CONF/\\1.vif" "PACK/\\1.vif" "BODY/\\1.vif" upcase)) ("Aldec" "vcom" "-work \\1" "make" "-f \\1" nil "vlib \\1; vmap \\2 \\1" "./" "work/" "Makefile" "aldec" ("^.* ERROR [^:]+: \".*\" \"\\([^ \n]+\\)\" \\([0-9]+\\) \\([0-9]+\\)" 1 2 3) (#1="" 0) nil) ("Cadence Leapfrog" "cv" "-work \\1 -file" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "leapfrog" ("^duluth: \\*E,[0-9]+ (\\([^ \n]+\\),\\([0-9]+\\)):" 1 2 nil) (#1# 0) ("\\1/entity" "\\2/\\1" "\\1/configuration" "\\1/package" "\\1/body" downcase)) ("Cadence NC" "ncvhdl" "-work \\1" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "ncvhdl" ("^ncvhdl_p: \\*E,\\w+ (\\([^ \n]+\\),\\([0-9]+\\)|\\([0-9]+\\)):" 1 2 3) (#1# 0) ("\\1/entity/pc.db" "\\2/\\1/pc.db" "\\1/configuration/pc.db" "\\1/package/pc.db" "\\1/body/pc.db" downcase)) ("GHDL" "ghdl" "-i --workdir=\\1 --ieee=synopsys -fexplicit " "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "ghdl" ("^ghdl_p: \\*E,\\w+ (\\([^ \n]+\\),\\([0-9]+\\)|\\([0-9]+\\)):" 1 2 3) (#1# 0) ("\\1/entity" "\\2/\\1" "\\1/configuration" "\\1/package" "\\1/body" downcase)) ("IBM Compiler" "g2tvc" "-src" "precomp" "\\1" nil "mkdir \\1" "./" "work/" "Makefile" "ibm" ("^[0-9]+ COACHDL.*: File: \\([^ \n]+\\), *line.column: \\([0-9]+\\).\\([0-9]+\\)" 1 2 3) (" " 0) nil) ("Ikos" "analyze" "-l \\1" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "ikos" ("^E L\\([0-9]+\\)/C\\([0-9]+\\):" nil 1 2) ("^analyze +\\(.+ +\\)*\\(.+\\)$" 2) nil) ("ModelSim" "vcom" "-93 -work \\1" "make" "-f \\1" nil "vlib \\1; vmap \\2 \\1" "./" "work/" "Makefile" "modelsim" ("\\(ERROR:\\|WARNING\\[[0-9]+\\]:\\|\\*\\* Error:\\|\\*\\* Warning: \\[[0-9]+\\]\\| +\\) \\([^ ]+\\)(\\([0-9]+\\)):" 2 3 nil) (#1# 0) ("\\1/_primary.dat" "\\2/\\1.dat" "\\1/_primary.dat" "\\1/_primary.dat" "\\1/body.dat" downcase)) ("LEDA ProVHDL" "provhdl" "-w \\1 -f" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "provhdl" ("^\\([^ \n:]+\\):\\([0-9]+\\): " 1 2 nil) (#1# 0) ("ENTI/\\1.vif" "ARCH/\\1-\\2.vif" "CONF/\\1.vif" "PACK/\\1.vif" "BODY/BODY-\\1.vif" upcase)) ("Quartus" "make" "-work \\1" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "quartus" ("^\\(Error\\|Warning\\): .* \\([^ \n]+\\)(\\([0-9]+\\))" 2 3 nil) (#1# 0) nil) ("QuickHDL" "qvhcom" "-work \\1" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "quickhdl" ("^\\(ERROR\\|WARNING\\)[^:]*: \\([^ \n]+\\)(\\([0-9]+\\)):" 2 3 nil) (#1# 0) ("\\1/_primary.dat" "\\2/\\1.dat" "\\1/_primary.dat" "\\1/_primary.dat" "\\1/body.dat" downcase)) ("Savant" "scram" "-publish-cc -design-library-name \\1" "make" "-f \\1" nil "mkdir \\1" "./" "work._savant_lib/" "Makefile" "savant" ("^\\([^ \n:]+\\):\\([0-9]+\\): " 1 2 nil) (#1# 0) ("\\1_entity.vhdl" "\\2_secondary_units._savant_lib/\\2_\\1.vhdl" "\\1_config.vhdl" "\\1_package.vhdl" "\\1_secondary_units._savant_lib/\\1_package_body.vhdl" downcase)) ("Simili" "vhdlp" "-work \\1" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "simili" ("^\\(Error\\|Warning\\): \\w+: \\([^ \n]+\\): (line \\([0-9]+\\)): " 2 3 nil) (#1# 0) ("\\1/prim.var" "\\2/_\\1.var" "\\1/prim.var" "\\1/prim.var" "\\1/_body.var" downcase)) ("Speedwave" "analyze" "-libfile vsslib.ini -src" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "speedwave" ("^ *ERROR\\[[0-9]+]::File \\([^ \n]+\\) Line \\([0-9]+\\):" 1 2 nil) (#1# 0) nil) ("Synopsys" "vhdlan" "-nc -work \\1" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "synopsys" ("^\\*\\*Error: vhdlan,[0-9]+ \\([^ \n]+\\)(\\([0-9]+\\)):" 1 2 nil) (#1# 0) ("\\1.sim" "\\2__\\1.sim" "\\1.sim" "\\1.sim" "\\1__.sim" upcase)) ("Synopsys Design Compiler" "vhdlan" "-nc -spc -work \\1" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "synopsys_dc" ("^\\*\\*Error: vhdlan,[0-9]+ \\([^ \n]+\\)(\\([0-9]+\\)):" 1 2 nil) (#1# 0) ("\\1.syn" "\\2__\\1.syn" "\\1.syn" "\\1.syn" "\\1__.syn" upcase)) ("Synplify" "n/a" "n/a" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "synplify" ("^@[EWN]:\"\\([^ \n]+\\)\":\\([0-9]+\\):\\([0-9]+\\):" 1 2 3) (#1# 0) nil) ("Vantage" "analyze" "-libfile vsslib.ini -src" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "vantage" ("^\\*\\*Error: LINE \\([0-9]+\\) \\*\\*\\*" nil 1 nil) ("^ *Compiling \"\\(.+\\)\" " 1) nil) ("VeriBest" "vc" "vhdl" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "veribest" ("^ +\\([0-9]+\\): +[^ ]" nil 1 nil) (#1# 0) nil) ("Viewlogic" "analyze" "-libfile vsslib.ini -src" "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "viewlogic" ("^\\*\\*Error: LINE \\([0-9]+\\) \\*\\*\\*" nil 1 nil) ("^ *Compiling \"\\(.+\\)\" " 1) nil) ("Xilinx XST" "xflow" #1# "make" "-f \\1" nil "mkdir \\1" "./" "work/" "Makefile" "xilinx" ("^ERROR:HDLParsers:[0-9]+ - \"\\([^ \n]+\\)\" Line \\([0-9]+\\)\\." 1 2 nil) (#1# 0) nil)) "List of available VHDL compilers and their properties.\nEach list entry specifies the following items for a compiler:\nCompiler:\n Compiler name : name used in option `vhdl-compiler' to choose compiler\n Compile command : command used for source file compilation\n Compile options : compile options (\"\\1\" inserts library name)\n Make command : command used for compilation using a Makefile\n Make options : make options (\"\\1\" inserts Makefile name)\n Generate Makefile: use built-in function or command to generate a Makefile\n (\"\\1\" inserts Makefile name, \"\\2\" inserts library name)\n Library command : command to create library directory (\"\\1\" inserts\n library directory, \"\\2\" inserts library name)\n Compile directory: where compilation is run and the Makefile is placed\n Library directory: directory of default library\n Makefile name : name of Makefile (default is \"Makefile\")\n ID string : compiler identification string (see `vhdl-project-alist')\nError message:\n Regexp : regular expression to match error messages (*)\n File subexp index: index of subexpression that matches the file name\n Line subexp index: index of subexpression that matches the line number\n Column subexp idx: index of subexpression that matches the column number\nFile message:\n Regexp : regular expression to match a file name message\n File subexp index: index of subexpression that matches the file name\nUnit-to-file name mapping: mapping of library unit names to names of files\n generated by the compiler (used for Makefile generation)\n To string : string a name is mapped to (\"\\1\" inserts the unit name,\n \"\\2\" inserts the entity name for architectures,\n \"\\3\" inserts the library name)\n Case adjustment : adjust case of inserted unit names\n\n(*) The regular expression must match the error message starting from the\n beginning of the line (but not necessarily to the end of the line).\n\nCompile options allows insertion of the library name (see `vhdl-project-alist')\nin order to set the compilers library option (e.g. \"vcom -work my_lib\").\n\nFor Makefile generation, the built-in function can be used (requires\nspecification of the unit-to-file name mapping). Alternatively, an\nexternal command can be specified. Work directory allows specification of\nan alternative \"work\" library path (e.g. \"WORK/\" instead of \"work/\",\nused for Makefile generation). To use another library name than \"work\",\ncustomize `vhdl-project-alist'. The library command is inserted in Makefiles\nto automatically create the library directory if not existent.\n\nCompile options, compile directory, library directory, and Makefile name are\noverwritten by the project settings if a project is defined (see\n`vhdl-project-alist'). Directory paths are relative to the source file\ndirectory.\n\nSome compilers do not include the file name in the error message, but print\nout a file name message in advance. In this case, set \"File Subexp Index\"\nunder \"Error Message\" to 0 and fill out the \"File Message\" entries.\nIf no file name at all is printed out, set both \"File Message\" entries to 0\n(a default file name message will be printed out instead, does not work in\nXEmacs).\n\nA compiler is selected for syntax analysis (`\\[vhdl-compile]') by\nassigning its name to option `vhdl-compiler'.\n\nPlease send any missing or erroneous compiler properties to the maintainer for\nupdating.\n\nNOTE: Activate new error and file message regexps and reflect the new setting\n in the choice list of option `vhdl-compiler' by restarting Emacs." (repeat (list :tag "Compiler" :indent 2 (string :tag "Compiler name ") (string :tag "Compile command ") (string :tag "Compile options " "-work \\1") (string :tag "Make command " "make") (string :tag "Make options " "-f \\1") (choice :tag "Generate Makefile " (const :tag "Built-in function" nil) (string :tag "Command" "vmake \\2 > \\1")) (string :tag "Library command " "mkdir \\1") (directory :tag "Compile directory " :validate vhdl-widget-directory-validate "./") (directory :tag "Library directory " :validate vhdl-widget-directory-validate "work/") (file :tag "Makefile name " "Makefile") (string :tag "ID string ") (list :tag "Error message" :indent 4 (regexp :tag "Regexp ") (choice :tag "File subexp " (integer :tag "Index") (const :tag "No file name" nil)) (integer :tag "Line subexp index") (choice :tag "Column subexp " (integer :tag "Index") (const :tag "No column number" nil))) (list :tag "File message" :indent 4 (regexp :tag "Regexp ") (integer :tag "File subexp index")) (choice :tag "Unit-to-file name mapping" :format "%t: %[Value Menu%] %v\n" (const :tag "Not defined" nil) (list :tag "To string" :indent 4 (string :tag "Entity " "\\1.vhd") (string :tag "Architecture " "\\2_\\1.vhd") (string :tag "Configuration " "\\1.vhd") (string :tag "Package " "\\1.vhd") (string :tag "Package Body " "\\1_body.vhd") (choice :tag "Case adjustment " (const :tag "None" identity) (const :tag "Upcase" upcase) (const :tag "Downcase" downcase)))))) :set #[(variable value) "\302 \303#\207" [variable value vhdl-custom-set vhdl-update-mode-menu] 4] :version "24.4" vhdl-compiler "GHDL" "Specifies the VHDL compiler to be used for syntax analysis.\nSelect a compiler name from the ones defined in option `vhdl-compiler-alist'." const append (choice) vhdl-compile-use-local-error-regexp "Non-nil means use buffer-local `compilation-error-regexp-alist'.\nIn this case, only error message regexps for VHDL compilers are active if\ncompilation is started from a VHDL buffer. Otherwise, the error message\nregexps are appended to the predefined global regexps, and all regexps are\nactive all the time. Note that by doing that, the predefined global regexps\nmight result in erroneous parsing of error messages for some VHDL compilers.\n\nNOTE: Activate the new setting by restarting Emacs." "25.1" vhdl-makefile-default-targets '("all" "clean" "library") "List of default target names in Makefiles.\nAutomatically generated Makefiles include three default targets to compile\nthe entire design, clean the entire design and to create the design library.\nThis option allows you to change the names of these targets to avoid conflicts\nwith other user Makefiles." (list (string :tag "Compile entire design") (string :tag "Clean entire design ") (string :tag "Create design library")) "24.3" vhdl-makefile-generation-hook "Functions to run at the end of Makefile generation.\nAllows you to insert user specific parts into a Makefile.\n\nExample:\n (lambda nil\n (re-search-backward \"^# Rule for compiling entire design\")\n (insert \"# My target\\n\\n.MY_TARGET :\\n\\n\\n\"))" hook vhdl-default-library "work" "Name of default library.\nIs overwritten by project settings if a project is active." string vhdl-project "Customizations for projects." '(("Example 1" "Source files in two directories, custom library name, VHDL'87" "~/example1/" ("src/system/" "src/components/") #1# (("ModelSim" "-87 \\2" "-f \\1 top_level" nil) ("Synopsys" "-vhdl87 \\2" "-f \\1 top_level" ((".*/datapath/.*" . "-optimize \\3") (".*_tb\\.vhd")))) "lib/" "example3_lib" "lib/example3/" "Makefile_\\2" #1#) ("Example 2" "Individual source files, multiple compilers in different directories" "$EXAMPLE2/" ("vhdl/system.vhd" "vhdl/component_*.vhd") #1# nil "\\1/" "work" "\\1/work/" "Makefile" #1#) ("Example 3" "Source files in a directory tree, multiple compilers in same directory" "/home/me/example3/" ("-r ./*/vhdl/") "/CVS/" nil "./" "work" "work-\\1/" "Makefile-\\1" "-------------------------------------------------------------------------------\n-- This is a multi-line project description\n-- that can be used as a project dependent part of the file header.\n")) "List of projects and their properties.\n Name : name used in option `vhdl-project' to choose project\n Title : title of project (single-line string)\n Default directory: default project directory (absolute path)\n Sources : a) source files : path + \"/\" + file name\n b) directory : path + \"/\"\n c) directory tree: \"-r \" + path + \"/\"\n Exclude regexp : matches file/directory names to be excluded as sources\n Compile options : project-specific options for each compiler\n Compiler name : name of compiler for which these options are valid\n Compile options: project-specific compiler options\n (\"\\1\" inserts library name, \"\\2\" default options)\n Make options: project-specific make options\n (\"\\1\" inserts Makefile name, \"\\2\" default options)\n Exceptions : file-specific exceptions\n File name regexp: matches file names for which exceptions are valid\n - Options : file-specific compiler options string\n (\"\\1\" inserts library name, \"\\2\" default options,\n \"\\3\" project-specific options)\n - Do not compile: do not compile this file (in Makefile)\n Compile directory: where compilation is run and the Makefile is placed\n (\"\\1\" inserts compiler ID string)\n Library name : name of library (default is \"work\")\n Library directory: path to library (\"\\1\" inserts compiler ID string)\n Makefile name : name of Makefile\n (\"\\1\" inserts compiler ID string, \"\\2\" library name)\n Description : description of project (multi-line string)\n\nProject title and description are used to insert into the file header (see\noption `vhdl-file-header').\n\nThe default directory must have an absolute path (use `M-TAB' for completion).\nAll other paths can be absolute or relative to the default directory. All\npaths must end with `/'.\n\nThe design units found in the sources (files and directories) are shown in the\nhierarchy browser. Path and file name can contain wildcards `*' and `?' as\nwell as \"./\" and \"../\" (\"sh\" syntax). Paths can also be absolute.\nEnvironment variables (e.g. \"$EXAMPLE2\") are resolved. If no sources are\nspecified, the default directory is taken as source directory. Otherwise,\nthe default directory is only taken as source directory if there is a sources\nentry with the empty string or \"./\". Exclude regexp allows you to filter\nout specific file and directory names from the list of sources (e.g. CVS\ndirectories).\n\nFiles are compiled in the compile directory. Makefiles are also placed into\nthe compile directory. Library directory specifies which directory the\ncompiler compiles into (used to generate the Makefile).\n\nSince different compile/library directories and Makefiles may exist for\ndifferent compilers within one project, these paths and names allow the\ninsertion of a compiler-dependent ID string (defined in `vhdl-compiler-alist').\nCompile options, compile directory, library directory, and Makefile name\noverwrite the settings of the current compiler.\n\nFile-specific compiler options (highest priority) overwrite project-specific\noptions which overwrite default options (lowest priority). Lower priority\noptions can be inserted in higher priority options. This allows you to reuse\ndefault options (e.g. \"-file\") in project- or file-specific options (e.g.\n\"-93 -file\").\n\nNOTE: Reflect the new setting in the choice list of option `vhdl-project'\n by restarting Emacs." repeat :tag "Project" :indent 2 (string :tag "Name ") (string :tag "Title ") directory "Default directory" --dolist-tail-- vhdl-name-doc-string :validate vhdl-widget-directory-validate abbreviate-file-name (repeat :tag "Sources " :indent 4 (directory :format " %v" "./")) (regexp :tag "Exclude regexp ") "Compile options " 4 "Compiler" 6 (choice :tag "Compiler name") ((string :tag "Compile options" "\\2") (string :tag "Make options " "\\2") (repeat :tag "Exceptions " :indent 8 (cons :format "%v" (regexp :tag "File name regexp ") (choice :format "%[Value Menu%] %v" (string :tag "Options" "\\3") (const :tag "Do not compile" nil))))) ((directory :tag "Compile directory" :validate vhdl-widget-directory-validate "./") (string :tag "Library name " "work") (directory :tag "Library directory" :validate vhdl-widget-directory-validate "work/") (file :tag "Makefile name " "Makefile") (string :tag "Description: (type `C-j' for newline)" :format "%t\n%v\n")) #[(variable value) "\302 \303\304$\207" [variable value vhdl-custom-set vhdl-update-mode-menu vhdl-speedbar-refresh] 5] "Specifies the default for the current project.\nSelect a project name from the ones defined in option `vhdl-project-alist'.\nIs used to determine the project title and description to be inserted in file\nheaders and the source files/directories to be scanned in the hierarchy\nbrowser. The current project can also be changed temporarily in the menu." (choice (const :tag "None" nil) (const :tag "--")) vhdl-project-file-name '("\\1.prj") "List of file names/paths for importing/exporting project setups.\n\"\\1\" is replaced by the project name (SPC is replaced by `_'), \"\\2\" is\nreplaced by the user name (allows you to have user-specific project setups).\nThe first entry is used as file name to import/export individual project\nsetups. All entries are used to automatically import project setups at\nstartup (see option `vhdl-project-autoload'). Projects loaded from the\nfirst entry are automatically made current. Hint: specify local project\nsetups in first entry, global setups in following entries; loading a local\nproject setup will make it current, while loading the global setups\nis done without changing the current project.\nNames can also have an absolute path (i.e. project setups can be stored\nin global directories)." (repeat (string :tag "File name" "\\1.prj")) defvaralias vhdl-project-auto-load vhdl-project-autoload (saved-value saved-variable-comment) put make-obsolete-variable "27.1" '(startup) "Automatically load project setups from files.\nAll project setup files that match the file names specified in option\n`vhdl-project-file-name' are automatically loaded. The project of the\n(alphabetically) last loaded setup of the first `vhdl-project-file-name'\nentry is activated.\nA project setup file can be obtained by exporting a project (see menu).\n At startup: project setup file is loaded at Emacs startup" (set (const :tag "At startup" startup)) vhdl-project-sort t "Non-nil means projects are displayed in alphabetical order." vhdl-style "Customizations for coding styles." vhdl-template vhdl-port vhdl-compose vhdl-standard '(93 nil) "VHDL standards used.\nBasic standard:\n VHDL'87 : IEEE Std 1076-1987\n VHDL'93/02 : IEEE Std 1076-1993/2002\n VHDL'08 : IEEE Std 1076-2008\nAdditional standards:\n VHDL-AMS : IEEE Std 1076.1 (analog-mixed-signal)\n Math packages: IEEE Std 1076.2 (`math_real', `math_complex')\n\nNOTE: Activate the new setting in a VHDL buffer by using the menu entry\n \"Activate Options\"." (list (choice :tag "Basic standard" (const :tag "VHDL'87" 87) (const :tag "VHDL'93/02" 93) (const :tag "VHDL'08" 8)) (set :tag "Additional standards" :indent 2 (const :tag "VHDL-AMS" ams) (const :tag "Math packages" math))) #[(variable value) "\302 \303\304\305\306\307\310\311& \207" [variable value vhdl-custom-set vhdl-template-map-init vhdl-mode-abbrev-table-init vhdl-template-construct-alist-init vhdl-template-package-alist-init vhdl-update-mode-menu vhdl-words-init vhdl-font-lock-init] 10] vhdl-basic-offset "Amount of basic offset used for indentation.\nThis value is used by + and - symbols in `vhdl-offsets-alist'." integer vhdl-upper-case-keywords "Non-nil means convert keywords to upper case.\nThis is done when typed or expanded or by the fix case functions." #[(variable value) "\302 \303#\207" [variable value vhdl-custom-set vhdl-abbrev-list-init] 4] vhdl-upper-case-types "Non-nil means convert standardized types to upper case.\nThis is done when expanded or by the fix case functions." #[(variable value) "\302 \303#\207" [variable value vhdl-custom-set vhdl-abbrev-list-init] 4] vhdl-upper-case-attributes "Non-nil means convert standardized attributes to upper case.\nThis is done when expanded or by the fix case functions." #[(variable value) "\302 \303#\207" [variable value vhdl-custom-set vhdl-abbrev-list-init] 4] vhdl-upper-case-enum-values "Non-nil means convert standardized enumeration values to upper case.\nThis is done when expanded or by the fix case functions." #[(variable value) "\302 \303#\207" [variable value vhdl-custom-set vhdl-abbrev-list-init] 4] vhdl-upper-case-constants "Non-nil means convert standardized constants to upper case.\nThis is done when expanded." #[(variable value) "\302 \303#\207" [variable value vhdl-custom-set vhdl-abbrev-list-init] 4] vhdl-use-direct-instantiation 'standard "Non-nil means use VHDL'93 direct component instantiation.\n Never : never\n Standard: only in VHDL standards that allow it (VHDL'93 and higher)\n Always : always" (choice (const :tag "Never" never) (const :tag "Standard" standard) (const :tag "Always" always)) vhdl-array-index-record-field-in-sensitivity-list "Non-nil means include array indices / record fields in sensitivity list.\nIf a signal read in a process is a record field or pointed to by an array\nindex, the record field or array index is included with the record name in\nthe sensitivity list (e.g. \"in1(0)\", \"in2.f0\").\nOtherwise, only the record name is included (e.g. \"in1\", \"in2\")." vhdl-naming "Customizations for naming conventions." vhdl-entity-file-name '(".*" . "\\&") "Specifies how the entity file name is obtained.\nThe entity file name can be obtained by modifying the entity name (e.g.\nattaching or stripping off a substring). The file extension is automatically\ntaken from the file name of the current buffer." (cons (regexp :tag "From regexp") (string :tag "To string ")) vhdl-architecture-file-name '("\\(.*\\) \\(.*\\)" . "\\1_\\2") "Specifies how the architecture file name is obtained.\nThe architecture file name can be obtained by modifying the entity\nand/or architecture name (e.g. attaching or stripping off a substring). The\nfile extension is automatically taken from the file name of the current\nbuffer. The string that is matched against the regexp is the concatenation\nof the entity and the architecture name separated by a space. This gives\naccess to both names (see default setting as example)." (cons (regexp :tag "From regexp") (string :tag "To string ")) vhdl-configuration-file-name '(".*" . "\\&") "Specifies how the configuration file name is obtained.\nThe configuration file name can be obtained by modifying the configuration\nname (e.g. attaching or stripping off a substring). The file extension is\nautomatically taken from the file name of the current buffer." (cons (regexp :tag "From regexp") (string :tag "To string ")) vhdl-package-file-name '(".*" . "\\&") "Specifies how the package file name is obtained.\nThe package file name can be obtained by modifying the package name (e.g.\nattaching or stripping off a substring). The file extension is automatically\ntaken from the file name of the current buffer. Package files can be created\nin a different directory by prepending a relative or absolute path to the\nfile name." (cons (regexp :tag "From regexp") (string :tag "To string ")) vhdl-file-name-case 'identity "Specifies how to change case for obtaining file names.\nWhen deriving a file name from a VHDL unit name, case can be changed as\nfollows:\n As Is: case is not changed (taken as is)\n Lower Case: whole name is changed to lower case\n Upper Case: whole name is changed to upper case\n Capitalize: first letter of each word in name is capitalized" (choice (const :tag "As Is" identity) (const :tag "Lower Case" downcase) (const :tag "Upper Case" upcase) (const :tag "Capitalize" capitalize)) "Customizations for electrification." vhdl-electric-keywords '(vhdl user) "Type of keywords for which electrification is enabled.\n VHDL keywords: invoke built-in templates\n User keywords: invoke user models (see option `vhdl-model-alist')" (set (const :tag "VHDL keywords" vhdl) (const :tag "User model keywords" user)) #[(variable value) "\302 \303#\207" [variable value vhdl-custom-set vhdl-mode-abbrev-table-init] 4] vhdl-optional-labels 'process "Constructs for which labels are to be queried.\nTemplate generators prompt for optional labels for:\n None : no constructs\n Processes only: processes only (also procedurals in VHDL-AMS)\n All constructs: all constructs with optional labels and keyword END" (choice (const :tag "None" none) (const :tag "Processes only" process) (const :tag "All constructs" all)) vhdl-insert-empty-lines 'unit "Specifies whether to insert empty lines in some templates.\nThis improves readability of code. Empty lines are inserted in:\n None : no constructs\n Design units only: entities, architectures, configurations, packages only\n All constructs : also all constructs with BEGIN...END parts\n\nReplaces option `vhdl-additional-empty-lines'." (choice (const :tag "None" none) (const :tag "Design units only" unit) (const :tag "All constructs" all)) vhdl-argument-list-indent "Non-nil means indent argument lists relative to opening parenthesis.\nThat is, argument, association, and port lists start on the same line as the\nopening parenthesis and subsequent lines are indented accordingly.\nOtherwise, lists start on a new line and are indented as normal code." vhdl-association-list-with-formals "Non-nil means write association lists with formal parameters.\nTemplates prompt for formal and actual parameters (ports/generics).\nWhen pasting component instantiations, formals are included.\nIf nil, only a list of actual parameters is entered." vhdl-conditions-in-parenthesis "Non-nil means place parenthesis around condition expressions." vhdl-sensitivity-list-all "Non-nil means use `all' keyword in sensitivity list." vhdl-zero-string "'0'" "String to use for a logic zero." vhdl-one-string "'1'" "String to use for a logic one." vhdl-header "Customizations for file header." vhdl-file-header "-------------------------------------------------------------------------------\n-- Title :
\n-- Project : \n-------------------------------------------------------------------------------\n-- File : \n-- Author : \n-- Company : \n-- Created : \n-- Last update: \n-- Platform : \n-- Standard : \n-------------------------------------------------------------------------------\n-- Description: \n-------------------------------------------------------------------------------\n-- Revisions :\n-- Date Version Author Description\n-- 1.0 Created\n-------------------------------------------------------------------------------\n\n" "String or file to insert as file header.\nIf the string specifies an existing file name, the contents of the file is\ninserted, otherwise the string itself is inserted as file header.\nType `C-j' for newlines.\nIf the header contains RCS keywords, they may be written as Keyword\nif the header needs to be version controlled.\n\nThe following keywords for template generation are supported:\n : replaced by the name of the buffer\n : replaced by the user name and email address\n (`user-full-name', `user-mail-address')\n : replaced by the user full name (`user-full-name')\n : replaced by user login name (`user-login-name')\n : replaced by contents of option `vhdl-company-name'\n : replaced by the current date\n : replaced by the current year\n : replaced by title of current project (`vhdl-project')\n : replaced by description of current project (`vhdl-project')\n : replaced by copyright string (`vhdl-copyright-string')\n : replaced by contents of option `vhdl-platform-spec'\n : replaced by the VHDL language standard(s) used\n <... string> : replaced by a queried string (\"...\" is the prompt word)\n : replaced by file title in automatically generated files\n : final cursor position\n\nThe (multi-line) project description can be used as a project\ndependent part of the file header and can also contain the above keywords." vhdl-file-footer #1# "String or file to insert as file footer.\nIf the string specifies an existing file name, the contents of the file is\ninserted, otherwise the string itself is inserted as file footer (i.e. at\nthe end of the file).\nType `C-j' for newlines.\nThe same keywords as in option `vhdl-file-header' can be used." vhdl-company-name "Name of company to insert in file header.\nSee option `vhdl-file-header'." vhdl-copyright-string "-------------------------------------------------------------------------------\n-- Copyright (c) \n" "Copyright string to insert in file header.\nCan be multi-line string (type `C-j' for newline) and contain other file\nheader keywords (see option `vhdl-file-header')." vhdl-platform-spec "Specification of VHDL platform to insert in file header.\nThe platform specification should contain names and versions of the\nsimulation and synthesis tools used.\nSee option `vhdl-file-header'." vhdl-date-format "%Y-%m-%d" "Specifies the date format to use in the header.\nThis string is passed as argument to the command `format-time-string'.\nFor more information on format strings, see the documentation for the\n`format-time-string' command (C-h f `format-time-string')." vhdl-modify-date-prefix-string "-- Last update: " "Prefix string of modification date in VHDL file header.\nIf actualization of the modification date is called (menu,\n`\\[vhdl-template-modify]'), this string is searched and the rest\nof the line replaced by the current date." vhdl-modify-date-on-saving "Non-nil means update the modification date when the buffer is saved.\nCalls function `\\[vhdl-template-modify]').\n\nNOTE: Activate the new setting in a VHDL buffer by using the menu entry\n \"Activate Options\"." vhdl-sequential-process "Customizations for sequential processes." vhdl-reset-kind 'async "Specifies which kind of reset to use in sequential processes." (choice (const :tag "None" none) (const :tag "Synchronous" sync) (const :tag "Asynchronous" async) (const :tag "Query" query)) vhdl-reset-active-high "Non-nil means reset in sequential processes is active high.\nOtherwise, reset is active low." vhdl-clock-rising-edge "Non-nil means rising edge of clock triggers sequential processes.\nOtherwise, falling edge triggers." vhdl-clock-edge-condition 'standard "Syntax of the clock edge condition.\n Standard: \"clk\\='event and clk = \\='1\\='\"\n Function: \"rising_edge(clk)\"" (choice (const :tag "Standard" standard) (const :tag "Function" function)) vhdl-clock-name "Name of clock signal to use in templates." vhdl-reset-name "Name of reset signal to use in templates." vhdl-model "Customizations for user models." vhdl-model-alist '(("Example Model" "