Function: vhdl-template-seq-process
vhdl-template-seq-process is a byte-compiled function defined in
vhdl-mode.el.gz.
Signature
(vhdl-template-seq-process CLOCK RESET RESET-KIND)
Documentation
Insert a template for the body of a sequential process.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/vhdl-mode.el.gz
(defun vhdl-template-seq-process (clock reset reset-kind)
"Insert a template for the body of a sequential process."
(let ((margin (current-indentation))
position)
(vhdl-insert-keyword "IF ")
(when vhdl-conditions-in-parenthesis (insert "("))
(when (eq reset-kind 'async)
(insert reset " = "
(if vhdl-reset-active-high vhdl-one-string vhdl-zero-string))
(when vhdl-conditions-in-parenthesis (insert ")"))
(vhdl-insert-keyword " THEN")
(vhdl-comment-insert-inline
(concat "asynchronous reset (active "
(if vhdl-reset-active-high "high" "low") ")"))
(insert "\n") (indent-to (+ margin vhdl-basic-offset))
(setq position (point))
(insert "\n") (indent-to margin)
(vhdl-insert-keyword "ELSIF ")
(when vhdl-conditions-in-parenthesis (insert "(")))
(if (eq vhdl-clock-edge-condition 'function)
(insert (if vhdl-clock-rising-edge "rising" "falling")
"_edge(" clock ")")
(insert clock "'event")
(vhdl-insert-keyword " AND ")
(insert clock " = "
(if vhdl-clock-rising-edge vhdl-one-string vhdl-zero-string)))
(when vhdl-conditions-in-parenthesis (insert ")"))
(vhdl-insert-keyword " THEN")
(vhdl-comment-insert-inline
(concat (if vhdl-clock-rising-edge "rising" "falling") " clock edge"))
(insert "\n") (indent-to (+ margin vhdl-basic-offset))
(when (eq reset-kind 'sync)
(vhdl-insert-keyword "IF ")
(when vhdl-conditions-in-parenthesis (insert "("))
(setq reset (or (and (not (equal "" vhdl-reset-name))
(progn (insert vhdl-reset-name) vhdl-reset-name))
(vhdl-template-field "reset name") "<reset>"))
(insert " = "
(if vhdl-reset-active-high vhdl-one-string vhdl-zero-string))
(when vhdl-conditions-in-parenthesis (insert ")"))
(vhdl-insert-keyword " THEN")
(vhdl-comment-insert-inline
(concat "synchronous reset (active "
(if vhdl-reset-active-high "high" "low") ")"))
(insert "\n") (indent-to (+ margin (* 2 vhdl-basic-offset)))
(setq position (point))
(insert "\n") (indent-to (+ margin vhdl-basic-offset))
(vhdl-insert-keyword "ELSE")
(insert "\n") (indent-to (+ margin (* 2 vhdl-basic-offset)))
(insert "\n") (indent-to (+ margin vhdl-basic-offset))
(vhdl-insert-keyword "END IF;"))
(when (eq reset-kind 'none)
(setq position (point)))
(insert "\n") (indent-to margin)
(vhdl-insert-keyword "END IF;")
(goto-char position)
reset))