Sync with upstream verilog-mode revision aa4b777
* lisp/progmodes/verilog-mode.el (verilog-mode-version): Update. (verilog-auto-end-comment-lines-re, verilog-end-block-ordered-re) (verilog-set-auto-endcomments): Automatically comment property/ endproperty blocks to match other similar blocks like sequence/ endsequence, function/endfunction, etc. Reported by Alex Reed. (verilog-set-auto-endcomments): Fix end comments for functions of type void, etc. Detect the function- or task-name when auto-commenting blocks that lack an explicit portlist. Reported by Alex Reed. (verilog-nameable-item-re): Fix nameable items that can have an end-identifier to include endchecker, endgroup, endprogram, endproperty, and endsequence. Reported by Alex Reed. (verilog-preprocessor-re, verilog-beg-of-statement): Fix indentation of property/endproperty around pre-processor directives. Reported by Alex Reed. (verilog-label-be): When auto-commenting a buffer, consider auto-comments on all known keywords (not just a subset thereof). Reported by Alex Reed. (verilog-beg-of-statement): Fix labeling do-while blocks, bug842. Reported by Alex Reed. (verilog-beg-of-statement-1, verilog-at-constraint-p): Fix hanging with many curly-bracket pairs, bug663. (verilog-do-indent): Fix electric tab deleting form-feeds. Note caused by indent-line-to deleting tabls pre 24.5. (verilog-auto-output, verilog-auto-input, verilog-auto-inout) (verilog-auto-inout-module, verilog-auto-inout-in): Doc fixes. (verilog-read-always-signals, verilog-auto-sense-sigs) (verilog-auto-reset): Fix AUTORESET with always_comb and always_latch, bug844. Reported by Greg Hilton. Author: Alex Reed <acreed4@gmail.com> (tiny change) * lisp/progmodes/verilog-mode.el (verilog-no-indent-begin-re): Fix `verilog-indent-begin-after-if' nil not honoring 'forever', 'foreach', and 'do' keywords. (verilog-endcomment-reason-re, verilog-beg-of-statement): Fix labeling do-while blocks, bug842. (verilog-backward-token): Fix indenting sensitivity lists with named events, bug840.
This commit is contained in:
parent
fb0fcda820
commit
d282d6a595
2 changed files with 183 additions and 61 deletions
|
@ -1,3 +1,46 @@
|
|||
2014-12-09 Wilson Snyder <wsnyder@wsnyder.org>
|
||||
|
||||
Sync with upstream verilog-mode revision aa4b777.
|
||||
* progmodes/verilog-mode.el (verilog-mode-version): Update.
|
||||
(verilog-auto-end-comment-lines-re, verilog-end-block-ordered-re)
|
||||
(verilog-set-auto-endcomments): Automatically comment property/
|
||||
endproperty blocks to match other similar blocks like sequence/
|
||||
endsequence, function/endfunction, etc. Reported by Alex Reed.
|
||||
(verilog-set-auto-endcomments): Fix end comments for functions of
|
||||
type void, etc. Detect the function- or task-name when
|
||||
auto-commenting blocks that lack an explicit portlist.
|
||||
Reported by Alex Reed.
|
||||
(verilog-nameable-item-re): Fix nameable items that can have an
|
||||
end-identifier to include endchecker, endgroup, endprogram,
|
||||
endproperty, and endsequence. Reported by Alex Reed.
|
||||
(verilog-preprocessor-re, verilog-beg-of-statement):
|
||||
Fix indentation of property/endproperty around pre-processor
|
||||
directives. Reported by Alex Reed.
|
||||
(verilog-label-be): When auto-commenting a buffer, consider
|
||||
auto-comments on all known keywords (not just a subset thereof).
|
||||
Reported by Alex Reed.
|
||||
(verilog-beg-of-statement): Fix labeling do-while blocks, bug842.
|
||||
Reported by Alex Reed.
|
||||
(verilog-beg-of-statement-1, verilog-at-constraint-p):
|
||||
Fix hanging with many curly-bracket pairs, bug663.
|
||||
(verilog-do-indent): Fix electric tab deleting form-feeds.
|
||||
Note caused by indent-line-to deleting tabls pre 24.5.
|
||||
(verilog-auto-output, verilog-auto-input, verilog-auto-inout)
|
||||
(verilog-auto-inout-module, verilog-auto-inout-in): Doc fixes.
|
||||
(verilog-read-always-signals, verilog-auto-sense-sigs)
|
||||
(verilog-auto-reset): Fix AUTORESET with always_comb and always_latch,
|
||||
bug844. Reported by Greg Hilton.
|
||||
|
||||
2014-12-09 Alex Reed <acreed4@gmail.com> (tiny change)
|
||||
|
||||
* progmodes/verilog-mode.el (verilog-no-indent-begin-re):
|
||||
Fix `verilog-indent-begin-after-if' nil not honoring 'forever',
|
||||
'foreach', and 'do' keywords.
|
||||
(verilog-endcomment-reason-re, verilog-beg-of-statement):
|
||||
Fix labeling do-while blocks, bug842.
|
||||
(verilog-backward-token): Fix indenting sensitivity lists with
|
||||
named events, bug840.
|
||||
|
||||
2014-12-09 Reto Zimmermann <reto@gnu.org>
|
||||
|
||||
Sync with upstream vhdl mode v3.36.1.
|
||||
|
|
|
@ -123,7 +123,7 @@
|
|||
;;; Code:
|
||||
|
||||
;; This variable will always hold the version number of the mode
|
||||
(defconst verilog-mode-version "2014-10-03-c075a49-vpo"
|
||||
(defconst verilog-mode-version "2014-11-12-aa4b777-vpo"
|
||||
"Version of this Verilog mode.")
|
||||
(defconst verilog-mode-release-emacs t
|
||||
"If non-nil, this version of Verilog mode was released with Emacs itself.")
|
||||
|
@ -2269,8 +2269,9 @@ find the errors."
|
|||
(defconst verilog-no-indent-begin-re
|
||||
(eval-when-compile
|
||||
(verilog-regexp-words
|
||||
'( "if" "else" "while" "for" "repeat" "always" "always_comb" "always_ff" "always_latch"
|
||||
"initial" "final"))))
|
||||
'("always" "always_comb" "always_ff" "always_latch" "initial" "final" ;; procedural blocks
|
||||
"if" "else" ;; conditional statements
|
||||
"while" "for" "foreach" "repeat" "do" "forever" )))) ;; loop statements
|
||||
|
||||
(defconst verilog-ends-re
|
||||
;; Parenthesis indicate type of keyword found
|
||||
|
@ -2328,6 +2329,7 @@ find the errors."
|
|||
"endinterface"
|
||||
"endpackage"
|
||||
"endsequence"
|
||||
"endproperty"
|
||||
"endspecify"
|
||||
"endtable"
|
||||
"endtask"
|
||||
|
@ -2360,6 +2362,7 @@ find the errors."
|
|||
"\\(program\\)\\|" ; 13
|
||||
"\\(sequence\\)\\|" ; 14
|
||||
"\\(clocking\\)\\|" ; 15
|
||||
"\\(property\\)\\|" ; 16
|
||||
"\\)\\>\\)"))
|
||||
(defconst verilog-end-block-re
|
||||
(eval-when-compile
|
||||
|
@ -2424,7 +2427,7 @@ find the errors."
|
|||
"\\(\\<package\\>\\)\\|"
|
||||
"\\(\\<final\\>\\)\\|"
|
||||
"\\(@\\)\\|"
|
||||
"\\(\\<while\\>\\)\\|"
|
||||
"\\(\\<while\\>\\)\\|\\(\\<do\\>\\)\\|"
|
||||
"\\(\\<for\\(ever\\|each\\)?\\>\\)\\|"
|
||||
"\\(\\<repeat\\>\\)\\|\\(\\<wait\\>\\)\\|"
|
||||
"#"))
|
||||
|
@ -2518,15 +2521,20 @@ find the errors."
|
|||
"join" "join_any" "join_none"
|
||||
"end"
|
||||
"endcase"
|
||||
"endconfig"
|
||||
"endchecker"
|
||||
"endclass"
|
||||
"endclocking"
|
||||
"endconfig"
|
||||
"endfunction"
|
||||
"endgenerate"
|
||||
"endgroup"
|
||||
"endmodule"
|
||||
"endprimitive"
|
||||
"endinterface"
|
||||
"endpackage"
|
||||
"endprogram"
|
||||
"endproperty"
|
||||
"endsequence"
|
||||
"endspecify"
|
||||
"endtable"
|
||||
"endtask" )
|
||||
|
@ -2756,10 +2764,45 @@ find the errors."
|
|||
"String used to mark end of excluded text.")
|
||||
(defconst verilog-preprocessor-re
|
||||
(eval-when-compile
|
||||
(verilog-regexp-words
|
||||
`(
|
||||
"`define" "`include" "`ifdef" "`ifndef" "`if" "`endif" "`else"
|
||||
))))
|
||||
(concat
|
||||
;; single words
|
||||
"\\(?:"
|
||||
(verilog-regexp-words
|
||||
`("`__FILE__"
|
||||
"`__LINE__"
|
||||
"`celldefine"
|
||||
"`else"
|
||||
"`end_keywords"
|
||||
"`endcelldefine"
|
||||
"`endif"
|
||||
"`nounconnected_drive"
|
||||
"`resetall"
|
||||
"`unconnected_drive"
|
||||
"`undefineall"))
|
||||
"\\)\\|\\(?:"
|
||||
;; two words: i.e. `ifdef DEFINE
|
||||
"\\<\\(`elsif\\|`ifn?def\\|`undef\\|`default_nettype\\|`begin_keywords\\)\\>\\s-"
|
||||
"\\)\\|\\(?:"
|
||||
;; `line number "filename" level
|
||||
"\\<\\(`line\\)\\>\\s-+[0-9]+\\s-+\"[^\"]+\"\\s-+[012]"
|
||||
"\\)\\|\\(?:"
|
||||
;;`include "file" or `include <file>
|
||||
"\\<\\(`include\\)\\>\\s-+\\(?:\"[^\"]+\"\\|<[^>]+>\\)"
|
||||
"\\)\\|\\(?:"
|
||||
;; `pragma <stuff> (no mention in IEEE 1800-2012 that pragma can span multiple lines
|
||||
"\\<\\(`pragma\\)\\>\\s-+.+$"
|
||||
"\\)\\|\\(?:"
|
||||
;; `timescale time_unit / time_precision
|
||||
"\\<\\(`timescale\\)\\>\\s-+10\\{0,2\\}\\s-*[munpf]?s\\s-*\\/\\s-*10\\{0,2\\}\\s-*[munpf]?s"
|
||||
"\\)\\|\\(?:"
|
||||
;; `define and `if can span multiple lines if line ends in '\'. NOTE: `if is not IEEE 1800-2012
|
||||
;; from http://www.emacswiki.org/emacs/MultilineRegexp
|
||||
(concat "\\<\\(`define\\|`if\\)\\>" ;; directive
|
||||
"\\s-+" ;; separator
|
||||
"\\(.*\\(?:\n.*\\)*?\\)" ;; definition: to tend of line, the maybe more lines (excludes any trailing \n)
|
||||
"\\(?:\n\\s-*\n\\|\\'\\)") ;; blank line or EOF
|
||||
"\\)"
|
||||
)))
|
||||
|
||||
(defconst verilog-keywords
|
||||
'( "`case" "`default" "`define" "`else" "`endfor" "`endif"
|
||||
|
@ -4126,9 +4169,7 @@ Uses `verilog-scan' cache."
|
|||
(while (and
|
||||
(> (marker-position e) (point))
|
||||
(verilog-re-search-forward
|
||||
(concat
|
||||
"\\<end\\(\\(function\\)\\|\\(task\\)\\|\\(module\\)\\|\\(primitive\\)\\|\\(interface\\)\\|\\(package\\)\\|\\(case\\)\\)?\\>"
|
||||
"\\|\\(`endif\\)\\|\\(`else\\)")
|
||||
verilog-auto-end-comment-lines-re
|
||||
nil 'move))
|
||||
(goto-char (match-beginning 0))
|
||||
(let ((indent-str (verilog-indent-line)))
|
||||
|
@ -4157,45 +4198,47 @@ Uses `verilog-scan' cache."
|
|||
;; or the token before us unambiguously ends a statement,
|
||||
;; then move back a token and test again.
|
||||
(not (or
|
||||
;; stop if beginning of buffer
|
||||
(bolp)
|
||||
;; stop if we find a ;
|
||||
;; stop if beginning of buffer
|
||||
(bobp)
|
||||
;; stop if we find a ;
|
||||
(= (preceding-char) ?\;)
|
||||
;; stop if we see a named coverpoint
|
||||
;; stop if we see a named coverpoint
|
||||
(looking-at "\\w+\\W*:\\W*\\(coverpoint\\|cross\\|constraint\\)")
|
||||
;; keep going if we are in the middle of a word
|
||||
;; keep going if we are in the middle of a word
|
||||
(not (or (looking-at "\\<") (forward-word -1)))
|
||||
;; stop if we see an assertion (perhaps labeled)
|
||||
;; stop if we see an assertion (perhaps labeled)
|
||||
(and
|
||||
(looking-at "\\(\\<\\(assert\\|assume\\|cover\\)\\>\\s-+\\<property\\>\\)\\|\\(\\<assert\\>\\)")
|
||||
(progn
|
||||
(setq h (point))
|
||||
(save-excursion
|
||||
(verilog-backward-token)
|
||||
(if (looking-at verilog-label-re)
|
||||
(setq h (point))))
|
||||
(goto-char h)))
|
||||
;; stop if we see an extended complete reg, perhaps a complete one
|
||||
(setq h (point))
|
||||
(save-excursion
|
||||
(verilog-backward-token)
|
||||
(if (looking-at verilog-label-re)
|
||||
(setq h (point))))
|
||||
(goto-char h)))
|
||||
;; stop if we see an extended complete reg, perhaps a complete one
|
||||
(and
|
||||
(looking-at verilog-complete-reg)
|
||||
(let* ((p (point)))
|
||||
(while (and (looking-at verilog-extended-complete-re)
|
||||
(progn (setq p (point))
|
||||
(verilog-backward-token)
|
||||
(/= p (point)))))
|
||||
(goto-char p)))
|
||||
;; stop if we see a complete reg (previous found extended ones)
|
||||
(looking-at verilog-complete-reg)
|
||||
(let* ((p (point)))
|
||||
(while (and (looking-at verilog-extended-complete-re)
|
||||
(progn (setq p (point))
|
||||
(verilog-backward-token)
|
||||
(/= p (point)))))
|
||||
(goto-char p)))
|
||||
;; stop if we see a complete reg (previous found extended ones)
|
||||
(looking-at verilog-basic-complete-re)
|
||||
;; stop if previous token is an ender
|
||||
;; stop if previous token is an ender
|
||||
(save-excursion
|
||||
(verilog-backward-token)
|
||||
(or
|
||||
(looking-at verilog-end-block-re)
|
||||
(looking-at verilog-preprocessor-re))))) ;; end of test
|
||||
(verilog-backward-syntactic-ws)
|
||||
(verilog-backward-token))
|
||||
(verilog-backward-token)
|
||||
(looking-at verilog-end-block-re))))
|
||||
(verilog-backward-syntactic-ws)
|
||||
(verilog-backward-token))
|
||||
;; Now point is where the previous line ended.
|
||||
(verilog-forward-syntactic-ws)))
|
||||
(verilog-forward-syntactic-ws)
|
||||
;; Skip forward over any preprocessor directives, as they have wacky indentation
|
||||
(if (looking-at verilog-preprocessor-re)
|
||||
(progn (goto-char (match-end 0))
|
||||
(verilog-forward-syntactic-ws)))))
|
||||
|
||||
(defun verilog-beg-of-statement-1 ()
|
||||
"Move backward to beginning of statement."
|
||||
|
@ -4209,13 +4252,12 @@ Uses `verilog-scan' cache."
|
|||
(verilog-backward-syntactic-ws)
|
||||
(if (or (bolp)
|
||||
(= (preceding-char) ?\;)
|
||||
(save-excursion
|
||||
(progn
|
||||
(verilog-backward-token)
|
||||
(looking-at verilog-ends-re)))
|
||||
(progn
|
||||
(goto-char pt)
|
||||
(throw 'done t))
|
||||
(verilog-backward-token))))
|
||||
(throw 'done t)))))
|
||||
(verilog-forward-syntactic-ws)))
|
||||
;
|
||||
; (while (and
|
||||
|
@ -4773,10 +4815,10 @@ primitive or interface named NAME."
|
|||
(cond
|
||||
((match-end 5) ;; of verilog-end-block-ordered-re
|
||||
(setq reg "\\(\\<function\\>\\)\\|\\(\\<\\(endfunction\\|task\\|\\(macro\\)?module\\|primitive\\)\\>\\)")
|
||||
(setq name-re "\\w+\\s-*("))
|
||||
(setq name-re "\\w+\\(?:\n\\|\\s-\\)*[(;]"))
|
||||
((match-end 6) ;; of verilog-end-block-ordered-re
|
||||
(setq reg "\\(\\<task\\>\\)\\|\\(\\<\\(endtask\\|function\\|\\(macro\\)?module\\|primitive\\)\\>\\)")
|
||||
(setq name-re "\\w+\\s-*("))
|
||||
(setq name-re "\\w+\\(?:\n\\|\\s-\\)*[(;]"))
|
||||
((match-end 7) ;; of verilog-end-block-ordered-re
|
||||
(setq reg "\\(\\<\\(macro\\)?module\\>\\)\\|\\<endmodule\\>"))
|
||||
((match-end 8) ;; of verilog-end-block-ordered-re
|
||||
|
@ -4795,6 +4837,8 @@ primitive or interface named NAME."
|
|||
(setq reg "\\(\\<\\(rand\\)?sequence\\>\\)\\|\\(\\<\\(endsequence\\|primitive\\|interface\\|\\(macro\\)?module\\)\\>\\)"))
|
||||
((match-end 15) ;; of verilog-end-block-ordered-re
|
||||
(setq reg "\\(\\<clocking\\>\\)\\|\\<endclocking\\>"))
|
||||
((match-end 16) ;; of verilog-end-block-ordered-re
|
||||
(setq reg "\\(\\<property\\>\\)\\|\\<endproperty\\>"))
|
||||
|
||||
(t (error "Problem in verilog-set-auto-endcomments")))
|
||||
(let (b e)
|
||||
|
@ -5849,7 +5893,9 @@ Set point to where line starts."
|
|||
(;-- any of begin|initial|while are complete statements; 'begin : foo' is also complete
|
||||
t
|
||||
(forward-word -1)
|
||||
(while (= (preceding-char) ?\_)
|
||||
(while (or (= (preceding-char) ?\_)
|
||||
(= (preceding-char) ?\@)
|
||||
(= (preceding-char) ?\.))
|
||||
(forward-word -1))
|
||||
(cond
|
||||
((looking-at "\\<else\\>")
|
||||
|
@ -6103,14 +6149,18 @@ Return >0 for nested struct."
|
|||
(defun verilog-at-constraint-p ()
|
||||
"If at the { of a constraint or coverpoint definition, return true, moving point to constraint."
|
||||
(if (save-excursion
|
||||
(let ((p (point)))
|
||||
(and
|
||||
(equal (char-after) ?\{)
|
||||
(forward-list)
|
||||
(progn (backward-char 1)
|
||||
(verilog-backward-ws&directives)
|
||||
(and
|
||||
(or (equal (char-before) ?\{) ;; empty case
|
||||
(equal (char-before) ?\;)
|
||||
(equal (char-before) ?\})))))
|
||||
(equal (char-before) ?\}))
|
||||
;; skip what looks like bus repitition operator {#{
|
||||
(not (string-match "^{\\s-*[0-9]+\\s-*{" (buffer-substring p (point)))))))))
|
||||
(progn
|
||||
(let ( (pt (point)) (pass 0))
|
||||
(verilog-backward-ws&directives)
|
||||
|
@ -6429,6 +6479,9 @@ Only look at a few lines to determine indent level."
|
|||
(looking-at verilog-declaration-re))
|
||||
(verilog-indent-declaration ind))
|
||||
|
||||
(;-- form feeds - ignored as bug in indent-line-to in < 24.5
|
||||
(looking-at "\f"))
|
||||
|
||||
(;-- Everything else
|
||||
t
|
||||
(let ((val (eval (cdr (assoc type verilog-indent-alist)))))
|
||||
|
@ -8894,7 +8947,6 @@ IGNORE-NEXT is true to ignore next token, fake from inside case statement."
|
|||
(save-excursion
|
||||
(let* (;;(dbg "")
|
||||
sigs-out-d sigs-out-i sigs-out-unk sigs-temp sigs-in)
|
||||
(search-forward ")")
|
||||
(verilog-read-always-signals-recurse nil nil nil)
|
||||
(setq sigs-out-i (append sigs-out-i sigs-out-unk)
|
||||
sigs-out-unk nil)
|
||||
|
@ -11731,6 +11783,9 @@ Limitations:
|
|||
|
||||
Typedefs must match `verilog-typedef-regexp', which is disabled by default.
|
||||
|
||||
Types are added to declarations if an AUTOLOGIC or
|
||||
`verilog-auto-wire-type' is set to logic.
|
||||
|
||||
Signals matching `verilog-auto-output-ignore-regexp' are not included.
|
||||
|
||||
An example (see `verilog-auto-inst' for what else is going on here):
|
||||
|
@ -11872,6 +11927,9 @@ Limitations:
|
|||
|
||||
Typedefs must match `verilog-typedef-regexp', which is disabled by default.
|
||||
|
||||
Types are added to declarations if an AUTOLOGIC or
|
||||
`verilog-auto-wire-type' is set to logic.
|
||||
|
||||
Signals matching `verilog-auto-input-ignore-regexp' are not included.
|
||||
|
||||
An example (see `verilog-auto-inst' for what else is going on here):
|
||||
|
@ -11952,6 +12010,9 @@ Limitations:
|
|||
|
||||
Typedefs must match `verilog-typedef-regexp', which is disabled by default.
|
||||
|
||||
Types are added to declarations if an AUTOLOGIC or
|
||||
`verilog-auto-wire-type' is set to logic.
|
||||
|
||||
Signals matching `verilog-auto-inout-ignore-regexp' are not included.
|
||||
|
||||
An example (see `verilog-auto-inst' for what else is going on here):
|
||||
|
@ -12068,13 +12129,14 @@ same expansion will result from only extracting signals starting with i:
|
|||
|
||||
/*AUTOINOUTMODULE(\"ExampMain\",\"^i\")*/
|
||||
|
||||
You may also provide an optional second regular expression, in
|
||||
which case only signals which have that pin direction and data
|
||||
type will be included. This matches against everything before
|
||||
the signal name in the declaration, for example against
|
||||
\"input\" (single bit), \"output logic\" (direction and type) or
|
||||
\"output [1:0]\" (direction and implicit type). You also
|
||||
probably want to skip spaces in your regexp.
|
||||
You may also provide an optional third argument regular
|
||||
expression, in which case only signals which have that pin
|
||||
direction and data type matching that regular expression will be
|
||||
included. This matches against everything before the signal name
|
||||
in the declaration, for example against \"input\" (single bit),
|
||||
\"output logic\" (direction and type) or \"output
|
||||
[1:0]\" (direction and implicit type). You also probably want to
|
||||
skip spaces in your regexp.
|
||||
|
||||
For example, the below will result in matching the output \"o\"
|
||||
against the previous example's module:
|
||||
|
@ -12193,7 +12255,21 @@ You may also provide an optional regular expression, in which case only
|
|||
signals matching the regular expression will be included. For example the
|
||||
same expansion will result from only extracting signals starting with i:
|
||||
|
||||
/*AUTOINOUTCOMP(\"ExampMain\",\"^i\")*/"
|
||||
/*AUTOINOUTCOMP(\"ExampMain\",\"^i\")*/
|
||||
|
||||
You may also provide an optional third argument regular
|
||||
expression, in which case only signals which have that pin
|
||||
direction and data type matching that regular expression will be
|
||||
included. This matches against everything before the signal name
|
||||
in the declaration, for example against \"input\" (single bit),
|
||||
\"output logic\" (direction and type) or \"output
|
||||
[1:0]\" (direction and implicit type). You also probably want to
|
||||
skip spaces in your regexp.
|
||||
|
||||
For example, the below will result in matching the output \"o\"
|
||||
against the previous example's module:
|
||||
|
||||
/*AUTOINOUTCOMP(\"ExampMain\",\"\",\"^output.*\")*/"
|
||||
(verilog-auto-inout-module t nil))
|
||||
|
||||
(defun verilog-auto-inout-in ()
|
||||
|
@ -12244,7 +12320,7 @@ You may also provide an optional regular expression, in which case only
|
|||
signals matching the regular expression will be included. For example the
|
||||
same expansion will result from only extracting signals starting with i:
|
||||
|
||||
/*AUTOINOUTCOMP(\"ExampMain\",\"^i\")*/"
|
||||
/*AUTOINOUTIN(\"ExampMain\",\"^i\")*/"
|
||||
(verilog-auto-inout-module nil t))
|
||||
|
||||
(defun verilog-auto-inout-param ()
|
||||
|
@ -12516,7 +12592,9 @@ See `verilog-auto-insert-lisp' for examples."
|
|||
|
||||
(defun verilog-auto-sense-sigs (moddecls presense-sigs)
|
||||
"Return list of signals for current AUTOSENSE block."
|
||||
(let* ((sigss (verilog-read-always-signals))
|
||||
(let* ((sigss (save-excursion
|
||||
(search-forward ")")
|
||||
(verilog-read-always-signals)))
|
||||
(sig-list (verilog-signals-not-params
|
||||
(verilog-signals-not-in (verilog-alw-get-inputs sigss)
|
||||
(append (and (not verilog-auto-sense-include-inputs)
|
||||
|
@ -12706,11 +12784,12 @@ Typing \\[verilog-auto] will make this into:
|
|||
(save-excursion
|
||||
(verilog-read-signals
|
||||
(save-excursion
|
||||
(verilog-re-search-backward-quick "\\(@\\|\\<begin\\>\\|\\<if\\>\\|\\<case\\>\\)" nil t)
|
||||
(verilog-re-search-backward-quick
|
||||
"\\(@\\|\\<\\(begin\\|if\\|case\\|always\\(_latch\\|_ff\\|_comb\\)?\\)\\>\\)" nil t)
|
||||
(point))
|
||||
(point)))))
|
||||
(save-excursion
|
||||
(verilog-re-search-backward-quick "@" nil t)
|
||||
(verilog-re-search-backward-quick "\\(@\\|\\<\\(always\\(_latch\\|_ff\\|_comb\\)?\\)\\>\\)" nil t)
|
||||
(setq sigss (verilog-read-always-signals)))
|
||||
(setq dly-list (verilog-alw-get-outputs-delayed sigss))
|
||||
(setq sig-list (verilog-signals-not-in (append
|
||||
|
|
Loading…
Add table
Reference in a new issue