verilog-mode-20161124.fd230e6/ 0000775 0000000 0000000 00000000000 13022141775 0015417 5 ustar 00root root 0000000 0000000 verilog-mode-20161124.fd230e6/.gitignore 0000664 0000000 0000000 00000000344 13022141775 0017410 0 ustar 00root root 0000000 0000000 .timestamps
ASSIGNMENT.doc
ChangeLog
ChangeLog.txt
e
emacs-version.h
gnu22
gnuhead
gnutrunk
mmencoded_verilog-mode
skip_for_xemacs
verilog-mode-gnu-want.el
verilog-mode-tognu.el
verilog-mode.elc
verilog.info
x
*.elc
*.old
*.new
verilog-mode-20161124.fd230e6/0test.el 0000664 0000000 0000000 00000016320 13022141775 0017002 0 ustar 00root root 0000000 0000000 ;; DESCRIPTION: Run verilog-mode tests, as part of "make test"
;;
;; Copyright 2008-2013 by Michael McNamara and Wilson Snyder. This package
;; is free software; you can redistribute it and/or modify it under the
;; terms of either the GNU Lesser General Public License or the Perl
;; Artistic License.
;;
;; VERILOG_MODE_DEBUG=1 # Enable verilog-debug
;; VERILOG_MODE_NO_INDENTS=1 # Disable indent checks
;; VERILOG_MODE_TEST_FILE=filename.v # Run only specified test
;; VERILOG_MODE_START_FILE=filename.v # Start at specified test
;; VERILOG_MODE_THREAD=#of# # Multithreaded testing
;; VERILOG_MODE_PROFILE=1 # Profile - see batch_prof.el
;; HARNESS_UPDATE_GOLDEN=1 # Update golden reference files
(defvar diff-flags "-u")
(defvar vl-threading (and (not (getenv "VERILOG_MODE_TEST_FILE"))
(getenv "VERILOG_MODE_THREAD")))
(defun global-replace-regexp (from to)
(goto-char (point-min))
(while (re-search-forward from nil t)
(replace-match to nil nil)))
(defun verilog-test-file (file temp-file)
(save-excursion
(message (concat file ": finding..."))
(find-file (concat "tests/" file))
(verilog-mode)
(message (concat file ": deleting indent..."))
(global-replace-regexp "[ \t]+$" "")
(message (concat file ": deleting autos..."))
(verilog-delete-auto)
(cond
((string-match "^inject_" file)
(message (concat file ": testing inject-auto..."))
(verilog-inject-auto))
(t
(message (concat file ": testing auto..."))
(verilog-auto)))
(message (concat file ": auto OK..."))
(when (string-match "^label_" file)
(message (concat file ": testing auto labeling of begin/end..."))
(verilog-label-be))
(unless (getenv "VERILOG_MODE_NO_INDENTS")
(verilog-test-indent-buffer file)
(untabify (point-min) (point-max))
)
(write-file (concat "../" temp-file))
(kill-buffer nil))
;;
(vl-diff-file (concat "tests_ok/" file) temp-file))
(defun verilog-test-indent-buffer (file )
(interactive)
(message (concat file ": testing indent..."))
(save-excursion
(goto-char (point-min))
(let* ((ln 0))
(while (not (eobp))
;;(message (format "%d" ln))
;;(message (format "%s : %d - indent" file ln))
(electric-verilog-tab)
;;(message (format "%s : %d - pretty-expr" file ln))
(verilog-pretty-expr t )
;;(message (format "%s : %d - pretty-declaration" file ln))
(verilog-pretty-declarations t)
(forward-line 1)
(setq ln (1+ ln))
)
(message (format "Indented %d lines" ln))
))
(message (concat file ": indents OK...")))
(defun vl-diff-file (golden-file temp-file)
(message (concat golden-file ": running diff of " golden-file " and " temp-file ))
(with-temp-buffer
(let* ((status
(call-process "diff" nil t t diff-flags "--label" "GOLDEN_REFERENCE" golden-file "--label" "CURRENT_BEHAVIOR" temp-file )))
(cond ((and (not (equal status 0))
(getenv "HARNESS_UPDATE_GOLDEN"))
(message "***HARNESS_UPDATE_GOLDEN set - updating Golden Reference File")
(call-process "cp" nil t t temp-file golden-file))
((not (equal status 0))
(message (concat "diff -c " golden-file " " temp-file))
(message "***Golden Reference File\n---Generated Test File")
(message "%s" (buffer-string))
(message "To promote current to golden, in shell buffer hit newline anywhere in next line (^P RETURN):")
(message (concat "cp " temp-file " " golden-file "; VERILOG_MODE_START_FILE=" golden-file " " again ))
(error ""))
(t
(message "Verified %s" golden-file))))))
(defun vl-do-on-thread (file-num)
"Return true to process due to multithreading"
(cond (vl-threading
(or (string-match "\\([0-9]+\\)of\\([0-9]+\\)" vl-threading)
(error "VERILOG_MODE_THREAD not in #of# form"))
(let ((th (string-to-number (match-string 1 vl-threading)))
(numth (string-to-number (match-string 2 vl-threading))))
(equal (1+ (mod file-num numth)) th)))
(t t)))
(defun verilog-test ()
(let ((files (directory-files "tests"))
(tests-run 0)
(file-num 0)
file cf temp-file)
(when (getenv "VERILOG_MODE_DEBUG")
(setq verilog-debug t))
(when (getenv "VERILOG_MODE_TEST_FILE")
(setq files (list (getenv "VERILOG_MODE_TEST_FILE")))
(message "**** Only testing files in $VERILOG_MODE_TEST_FILE"))
(when (getenv "VERILOG_MODE_START_FILE")
(let* ((startfiles (list (getenv "VERILOG_MODE_START_FILE")))
(startfile (car startfiles)))
(message (concat "Starting from file " startfile))
(catch 'done
(while files
(setq file (car files))
(if (or (string-equal file startfile)
(string-equal (concat "tests_ok/" file) startfile))
(progn
(message (concat "matched " file))
(throw 'done 0))
(progn
(setq files (cdr files))))))))
(message "emacs-version %s" emacs-version)
(while files
(setq file (car files))
(setq temp-file (concat (if running-on-xemacs "x/t/" "e/t/")
file))
(cond ((equal "." file))
((equal ".." file))
((string-match "#" file)) ;; Backups
((string-match "~$" file))
((string-match "\.f$" file))
((string-match "\.dontrun$" file))
((file-directory-p (concat "tests/" file)))
((progn (setq file-num (1+ file-num))
(not (vl-do-on-thread file-num))))
(t
(message (concat "Considering test " file ))
(if running-on-xemacs
(progn
(setq cf (concat "skip_for_xemacs/" file))
(if (file-exists-p cf ) ;
(message (concat "Skipping testing " file " on Xemacs because file " cf "exists"))
(progn
(verilog-test-file file temp-file)
(setq tests-run (1+ tests-run))
)
))
(progn
(verilog-test-file file temp-file)
(setq tests-run (1+ tests-run))
))
(message (format " %d tests run so far, %d left... %s"
tests-run (length files)
(if vl-threading (concat "Thread " vl-threading) "")))
))
(setq files (cdr files))))
(message "Tests Passed on %s" (emacs-version))
"Tests Passed")
(defun vl-indent-file ()
"Reindent file"
(interactive)
(save-excursion
(goto-char (point-min))
(while (not (eobp))
(electric-verilog-tab)
(end-of-line)
(delete-char (- (skip-chars-backward " \t")))
(forward-line 1)
)
)
(write-file (buffer-file-name))
)
(progn
(save-excursion
(with-temp-buffer
(verilog-mode)))
;; Setup
(require `compile)
(defun ask-user-about-lock() nil) ;; XEmacs - Disable lock conflicts
(setq running-on-xemacs (string-match "XEmacs" emacs-version))
(setq make-backup-files nil)
(setq-default make-backup-files nil)
(setq diff-flags (if (getenv "VERILOG_MODE_NO_INDENTS") "-wBu" "-u"))
;;(setq verilog-auto-lineup 'all)
(setq enable-local-variables t)
(setq enable-local-eval t)
(setq auto-mode-alist (cons '("\\.v\\'" . verilog-mode) auto-mode-alist))
(setq-default fill-column 100)
(if running-on-xemacs
(setq again "make test_xemacs")
(setq again "make test_emacs"))
(verilog-test)
)
verilog-mode-20161124.fd230e6/LICENSE 0000664 0000000 0000000 00000104513 13022141775 0016430 0 ustar 00root root 0000000 0000000 GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc.
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
Copyright (C)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
Copyright (C)
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
.
verilog-mode-20161124.fd230e6/Makefile 0000664 0000000 0000000 00000013270 13022141775 0017062 0 ustar 00root root 0000000 0000000 # DESCRIPTION: Run verilog-mode tests, as part of "make test"
#
# Copyright 2008-2013 by Michael McNamara and Wilson Snyder. This package
# is free software; you can redistribute it and/or modify it under the
# terms of either the GNU Lesser General Public License or the Perl
# Artistic License.
#
######################################################################
# Common targets:
# make # Compile source for GNU and Xemacs
# make test # Run self tests
# # See x/verilog-mode.el for version to install
######################################################################
S=/home/mac/development/www.verilog.com/src/
D=$(S)data
F=/home/mac/external_webpage/src/verilog.com/ftp
# the directory where the .elc files will be installed
XEMACS = xemacs
XEMACS_DEST = /usr/local/lib/xemacs/xemacs-packages/lisp/prog-modes/
EMACS = emacs
EMACS_DEST = /usr/share/emacs/site-lisp/
ELC = -batch -q -f batch-byte-compile
MAKECHANGELOG = perl makechangelog
default : e/verilog-mode.elc x/verilog-mode.elc
release : .timestamps
install : .timestamps ChangeLog test $(D)/mmencoded_verilog-mode $(D)/emacs-version.h\
$(S)ChangeLog.txt email $(S)bits/verilog-mode.el local \
# ftp
@echo Installation up to date
.timestamps:
@mkdir -p $@
test: .timestamps/test
.timestamps/test: x/verilog-mode.elc e/verilog-mode.elc mmencoded_verilog-mode verilog.info 0test.el .timestamps
ifeq ($(VERILOG_MODE_TEST_FILE),)
$(MAKE) test_batch test_errors test_emacs test_xemacs
@touch $@
@echo ======= ALL TESTS PASSED
else
$(MAKE) test_emacs test_xemacs
endif
#Usage: $(call test-emacs_sub,label,threading)
define test_emacs_sub
test_emacs:: $(1)
$(1): e/verilog-mode.elc
@echo
@echo == $(1)
@mkdir -p e/t
VERILOG_MODE_THREAD=$(2) time $(EMACS) --batch -q --no-site-file -l e/verilog-mode.elc -l 0test.el
endef
$(eval $(call test_emacs_sub,test_emacs_1,1of5))
ifeq ($(VERILOG_MODE_TEST_FILE),)
$(eval $(call test_emacs_sub,test_emacs_2,2of5))
$(eval $(call test_emacs_sub,test_emacs_3,3of5))
$(eval $(call test_emacs_sub,test_emacs_4,4of5))
$(eval $(call test_emacs_sub,test_emacs_5,5of5))
endif
#Usage: $(call test_xemacs_sub,label,threading)
define test_xemacs_sub
test_xemacs:: $(1)
$(1): x/verilog-mode.elc
@echo
@echo == $(1)
@mkdir -p x/t
VERILOG_MODE_THREAD=$(2) time $(XEMACS) --batch -vanilla -l x/verilog-mode.elc -l 0test.el
endef
$(eval $(call test_xemacs_sub,test_xemacs_1,1of5))
ifeq ($(VERILOG_MODE_TEST_FILE),)
$(eval $(call test_xemacs_sub,test_xemacs_2,2of5))
$(eval $(call test_xemacs_sub,test_xemacs_3,3of5))
$(eval $(call test_xemacs_sub,test_xemacs_4,4of5))
$(eval $(call test_xemacs_sub,test_xemacs_5,5of5))
endif
test_errors:
@echo
@echo == test_errors
-# The multiline errors must be in one read()s output or the comint may not match it
-cat error_msgs.out
test_batch: e/verilog-mode.elc
@echo == test_batch
mkdir -p e/b
time ./batch_test.pl
local: .timestamps/local
.timestamps/local: verilog-mode.el
cp verilog-mode.el $(XEMACS_DEST)verilog-mode.el
rm -f $(XEMACS_DEST)verilog-mode.elc
$(XEMACS) $(ELC) $(XEMACS_DEST)verilog-mode.el
cp verilog-mode.el $(EMACS_DEST)verilog-mode.el
rm -f $(EMACS_DEST)verilog-mode.elc
$(EMACS) $(ELC) $(EMACS_DEST)verilog-mode.el
@touch $@
ftp: .timestamps/ftp
.timestamps/ftp: $(F) mmencoded_verilog-mode verilog-mode.el README
cp mmencoded_verilog-mode $(F)
cp verilog-mode.el $(F)
cp README $(F)/.message
@touch $@
$(F):
mkdir $(F)
ChangeLog.txt mmencoded_verilog-mode emacs-version.h : make_log.pl verilog-mode.el README
ifneq ($(VERILOGMODE_SKIP_MAKELOG),1)
./make_log.pl
endif
ChangeLog : verilog-mode.el makechangelog
$(MAKECHANGELOG) --git verilog-mode.el > $@
email: .timestamps/email
.timestamps/email: mmencoded_verilog-mode
./make_mail.pl
@touch $@
$(D)/mmencoded_verilog-mode : mmencoded_verilog-mode
cp $? $@
$(D)/emacs-version.h : emacs-version.h
cp $? $@
touch $(S)verilog-mode.html
$(S)ChangeLog.txt : ChangeLog.txt
cp $? $@
$(S)bits/verilog-mode.el : verilog-mode.el
cp $? $@
x/verilog-mode.el : verilog-mode.el ./config_rev.pl
rm -rf x
mkdir x
./config_rev.pl . . x/verilog-mode.el
e/verilog-mode.el : verilog-mode.el ./config_rev.pl
-rm -rf e
-mkdir e
./config_rev.pl . . e/verilog-mode.el
e/verilog-mode.el.gz : e/verilog-mode.el
gzip --best $< --stdout > $@
x/verilog-mode.elc : x/verilog-mode.el
$(XEMACS) $(ELC) x/verilog-mode.el
e/verilog-mode.elc : e/verilog-mode.el
$(EMACS) $(ELC) e/verilog-mode.el
verilog.info : verilog.texinfo
makeinfo verilog.texinfo > verilog.info
######################################################################
# GNU GIT version
gnutrunk:
@echo "gnutrunk needs to be a symlink to a emacs/trunk git checkout"
false
.PHONY: gnu-update gnu-update-trunk
gnu-update: gnu-update-trunk
gnu-update-trunk: gnutrunk
echo "NOT DOING: cd gnutrunk && git pull"
.PHONY: gnu-diff-trunk gnu-diff
gnu-diff: gnu-diff-trunk
gnu-diff-trunk: gnu-update-trunk verilog-mode-tognu.el
diff -u gnutrunk/lisp/progmodes/verilog-mode.el verilog-mode-tognu.el
verilog-mode.patch: gnu-update verilog-mode-tognu.el
diff -u gnutrunk/lisp/progmodes/verilog-mode.el verilog-mode-tognu.el > $@
# Before install, clean to make sure we get proper git ID
gnu-cp:
$(MAKE) clean
$(MAKE) verilog-mode-tognu.el
cp verilog-mode-tognu.el gnutrunk/lisp/progmodes/verilog-mode.el
verilog-mode-tognu.el: e/verilog-mode.el Makefile
cat e/verilog-mode.el \
| sed 's/verilog-mode-version "\(.*\)"/verilog-mode-version "\1-GNU"/g' \
| sed 's/verilog-mode-release-emacs nil/verilog-mode-release-emacs t/g' \
> verilog-mode-tognu.el
######################################################################
# Clean
clean::
/bin/rm -rf .timestamps e x test_dir verilog-mode.patch verilog-mode-tognu.el mmencoded_verilog-mode *.info
verilog-mode-20161124.fd230e6/README 0000664 0000000 0000000 00000002607 13022141775 0016304 0 ustar 00root root 0000000 0000000 This is the source distribution for verilog-mode.
Please see http://www.veripool.org/verilog-mode
for more information.
make
make test
cp e/verilog-mode.el
======================================================================
TESTS
Make sure both emacs and xemacs are installed and "make test". Testing can run on multiple cores with "make -j 10 test".
Under the hood this is (mostly) running 0test.el. This reads in each file
under tests/ directory, autos, reindents, and compares the result to the
matching filename in the tests_ok directory.
Test failures generally look like this:
diff -c tests_ok/autoinout_ma.v e/t/autoinout_ma.v
***Golden Reference File
---Generated Test File
--- GOLDEN_REFERENCE
+++ CURRENT_BEHAVIOR
...
- output sina,
+ output siuna,
To promote current to golden, in shell buffer hit newline anywhere in next line (^P RETURN):
cp e/t/autoinout_ma.v tests_ok/autoinout_ma.v; VERILOG_MODE_START_FILE=tests_ok/autoinout_ma.v make test_emacs
This indicates the generated output doesn't match what is in tests_ok. To
fix this make sure that the change is expected then do the "cp" shown to
update the golden references:
cp e/t/autoinout_ma.v tests_ok/autoinout_ma.v
Then "make test" again. The suggested VERILOG_MODE_START_FILE can also be
used to jump right to that individual test inside the "make test"
verilog-mode-20161124.fd230e6/TODO 0000664 0000000 0000000 00000004404 13022141775 0016111 0 ustar 00root root 0000000 0000000 # DESCRIPTION: To-do list for verilog-mode
######################################################################
Occasionally:
* M-x checkdoc
* Make sure it's as byte compile clean as possible.
Features
Make a hiearchy map of the current module and below in a spare buffer.
;From: Dan Nicolaescu
;Date: Sun, 14 Oct 2007 10:49:43 -0700
; > (defvar verilog-mode-map ()
; > "Keymap used in Verilog mode.")
; > (if verilog-mode-map
; > ()
; > (setq verilog-mode-map (make-sparse-keymap))
; > (define-key verilog-mode-map ";" 'electric-verilog-semi)
; Better use:
; (defvar verilog-mode-map
; (let ((map (make-sparse-keymap)))
; (define-key map ";" 'electric-verilog-semi)
; ... etc etc
From: Stefan Monnier
Date: Sat, 13 Oct 2007 22:41:15 -0400
- Rather than create a new syntax-table in each buffer, just do
(defvar verilog-mode-syntax-table
(let ((st (make-syntax-table)))
(modify-syntax-table ...)
...
st))
once and forall (inlining the only calls to verilog-setup-dual-comments
and verilog-populate-syntax-table).
Regarding verilog-setup-dual-comments, even if you consider the XEmacs
solution cleaner, the Emacs solution is not only equivalent but it also
works under XEmacs, so you can use it everywhere and remove an
emacs-version check.
- You can then remove the verilog-emacs-features abomination.
- The part
(require 'verilog-mode)
is pretty hideous and deserves either to be fixed (i.e. removed), or large
comments justifying each part.
Also some of the subsequent requires are unneeded (e.g. the `imenu' one).
- Use easy-menu-add rather than add-submenu so it works on both Emacs
and XEmacs.
- Emacs-21's comment-region and uncomment-region should work correctly
(including mangling nested comments, although in a different way from the
one you chose).
verilog-comment-regiont and verilog-uncomment-region
can (probably) be dropped when running under Emacs>=21 (and the C-c C-c
binding could also be removed if you assume your users will use M-;)
verilog-mode-20161124.fd230e6/attic/ 0000775 0000000 0000000 00000000000 13022141775 0016523 5 ustar 00root root 0000000 0000000 verilog-mode-20161124.fd230e6/attic/verilog-lex.el 0000664 0000000 0000000 00000015431 13022141775 0021306 0 ustar 00root root 0000000 0000000 ;;
;; Lexical analysis
;;
(defconst verilog-token-comma ?, "Verilog-lex ','.")
(defconst verilog-token-semi ?; "Verilog-lex ';'.")
(defconst verilog-token-equal ?= "Verilog-lex '='.")
(defconst verilog-token-par ?( "Verilog-lex '('.")
(defconst verilog-token-en ?) "Verilog-lex ')'.")
(defconst verilog-token-bra ?{ "Verilog-lex '{'.")
(defconst verilog-token-ce ?} "Verilog-lex '}'.")
;; Lexical tokens specific to verilog-lex-decl
(defconst verilog-token-ASSIGN 300 "Verilog-lex 'KEYWORD'.")
(defconst verilog-token-PARAMETER 306 "Verilog-lex 'KEYWORD'.")
(defconst verilog-token-SIGNED 307 "Verilog-lex 'KEYWORD'.")
(defconst verilog-token-bracketed 311 "Verilog-lex '[...]'; value is what's within brackets.")
(defconst verilog-token-decl-const 301 "Verilog-lex declare constant.")
(defconst verilog-token-decl-wire 302 "Verilog-lex declare wire.")
(defconst verilog-token-direction 303 "Verilog-lex directional.")
(defconst verilog-token-ignore-begin 304 "Verilog-lex block to ignore begin.")
(defconst verilog-token-ignore-end 305 "Verilog-lex block to ignore end.")
(defconst verilog-token-symbol 310 "Verilog-lex symbol.")
(defconst verilog-token-synth-enum 312 "Verilog-lex Synopsys enum token; value is name of enumeration.")
(defconst verilog-token-type 308 "Verilog-lex data type.")
(defconst verilog-token-keyword 313 "Verilog-lex generic keyword.")
(defconst verilog-lex-keywords
'(
("assign" verilog-token-ASSIGN)
("bit" verilog-token-type)
("byte" verilog-token-type)
("class" verilog-token-ignore-begin)
("clocking" verilog-token-ignore-begin)
("covergroup" verilog-token-ignore-begin)
("endclass" verilog-token-ignore-end)
("endclocking" verilog-token-ignore-end)
("endfunction" verilog-token-ignore-end)
("endgroup" verilog-token-ignore-end)
("endproperty" verilog-token-ignore-end)
("endsequence" verilog-token-ignore-end)
("endtask" verilog-token-ignore-end)
("function" verilog-token-ignore-begin)
("genvar" verilog-token-decl-const)
("inout" verilog-token-direction)
("input" verilog-token-direction)
("int" verilog-token-type)
("integer" verilog-token-type)
("localparam" verilog-token-decl-const)
("logic" verilog-token-type)
("longint" verilog-token-type)
("output" verilog-token-direction)
("parameter" verilog-token-PARAMETER)
("property" verilog-token-ignore-begin)
("randsequence" verilog-token-ignore-begin)
("real" verilog-token-type)
("reg" verilog-token-type)
("sequence" verilog-token-ignore-begin)
("shortint" verilog-token-type)
("shortreal" verilog-token-type)
("signed" verilog-token-signing)
("supply" verilog-token-decl-const)
("supply0" verilog-token-decl-const)
("supply1" verilog-token-decl-const)
("task" verilog-token-ignore-begin)
("time" verilog-token-type)
("tri" verilog-token-decl-wire)
("tri0" verilog-token-decl-wire)
("tri1" verilog-token-decl-wire)
("triand" verilog-token-decl-wire)
("trior" verilog-token-decl-wire)
("trireg" verilog-token-type)
("wand" verilog-token-decl-wire)
("wire" verilog-token-decl-wire)
("wor" verilog-token-decl-wire)
)
"Map of keyword and token to return for `verilog-lex'.")
(defun verilog-lex (begin end for-decls)
"Lexically analyze Verilog text between BEGIN to END into tokens.
With FOR-DECL true, parse only for declarations. Returns list of
tokens, with each token a list of the text for that token and the
verilog-token-TYPE."
(let ((functask 0)
tokens token keywd ignore-next-symbol)
(save-excursion
(goto-char begin)
(while (< (point) end)
;;(if dbg (setq dbg (cons (format "Pt %s Vec %s Kwd'%s'\n" (point) vec keywd) dbg)))
(cond
;; For performance it's better if frequent cases are first
((looking-at "//")
(when (looking-at "[^\n]*synopsys\\s +enum\\s +\\([a-zA-Z0-9_]+\\)")
(setq tokens (cons (list (match-string 1) verilog-token-synth-enum) tokens)))
(search-forward "\n"))
((looking-at "/\\*")
(forward-char 2)
(when (looking-at "[^*]*synopsys\\s +enum\\s +\\([a-zA-Z0-9_]+\\)")
(setq tokens (cons (list (match-string 1) verilog-token-synth-enum) tokens)))
(or (search-forward "*/")
(error "%s: Unmatched /* */, at char %d" (verilog-point-text) (point))))
((looking-at "(\\*")
(forward-char 2)
(or (looking-at "\\s-*)") ; It's an "always @ (*)"
(search-forward "*)")
(error "%s: Unmatched (* *), at char %d" (verilog-point-text) (point))))
((eq ?\" (following-char))
(or (re-search-forward "[^\\]\"" nil t) ;; don't forward-char first, since we look for a non backslash first
(error "%s: Unmatched quotes, at char %d" (verilog-point-text) (point))))
;; []: Grab all text to ending ]. Probably should match bracket pairs and strip comments, but old version didn't
((looking-at "\\[[^]]+\\]")
(goto-char (match-end 0))
(setq tokens (cons (list (match-string 0) verilog-token-bracketed) tokens)))
;; Single character tokens we just pass through
((looking-at "[;,=(){}]")
(setq tokens (cons (list (following-char) (following-char)) tokens))
(forward-char 1))
;; Ifdef, ignore name of define
((looking-at "`ifn?def\\>")
(goto-char (match-end 0))
(setq ignore-next-symbol t))
;; Normal identifier
((looking-at "[`a-zA-Z0-9_$]+")
(goto-char (match-end 0))
;; buffer-substring is faster than match-string, and this is hot code.
(setq keywd (buffer-substring-no-properties (match-beginning 0) (match-end 0)))
(cond (ignore-next-symbol ;; preproc identifier after `ifdef
(setq ignore-next-symbol nil))
((member keywd verilog-keywords)
(setq token (assoc keywd verilog-lex-keywords))
;; Now you'll see why the token list has text first then the token number;
;; we can just return the assoc result directly
(cond ((eq token verilog-token-ignore-begin)
(setq functask (1+ functask)))
((eq token verilog-token-ignore-end)
(setq functask (1- functask)))
(token
(setq tokens (cons token tokens)))
(t
(setq tokens (cons (list keywd verilog-token-keyword) tokens)))))
;; Must be typedef or symbol. For speed, ignore if inside begin/end
((and (eq functask 0)
(verilog-typedef-name-p keywd))
(setq tokens (cons (list keywd verilog-token-typedef) tokens)))
;; Normal user symbol
((eq functask 0)
(setq tokens (cons (list keywd verilog-token-symbol) tokens)))))
;; Escaped identifier -- note we remember the \ if escaped
((looking-at "\\\\[^ \t\n\f]+")
(goto-char (match-end 0))
(when (eq functask 0)
(setq tokens (cons (list (concat (match-string-no-properties 0) " ") ;; Escaped ID needs space at end
verilog-token-symbol)
tokens))))
;; Default
(t
(forward-char 1)))
;; End of parser while
(skip-syntax-forward " "))
tokens)))
verilog-mode-20161124.fd230e6/batch_prof.el 0000664 0000000 0000000 00000004572 13022141775 0020060 0 ustar 00root root 0000000 0000000 ;; DESCRIPTION: Profile driven test as part of "make test"
;;
;; Copyright 2008-2013 by Michael McNamara and Wilson Snyder. This package
;; is free software; you can redistribute it and/or modify it under the
;; terms of either the GNU Lesser General Public License or the Perl
;; Artistic License.
(require 'elp)
(defun t-make-test (count filename)
(save-excursion
(find-file filename)
(delete-region (point-min) (point-max))
(insert "
module EX_TIME_CONSUME (/*AUTOARG*/);
/*AUTOOUTPUT*/
/*AUTOINPUT*/
/*AUTOWIRE*/
")
(setq i 0)
(while (< i count)
(insert "//----------------------------------------------------------------------\n")
(insert "/* batch_prof_cell AUTO_TEMPLATE (\n")
(insert (format " .Z(Z_%d)); */\n" i))
(insert (format "batch_prof_cell CELL_%d (/*AUTOINST*/);\n" i))
(setq i (+ 1 i)))
(insert "endmodule\n")
(save-buffer)))
(defun t-size-test (count)
;; Note is running in tests_batch_ok directory
(setq filename (format "e/b/batch_prof_%s.v" count))
(t-make-test count filename)
(when profile
(elp-reset-all))
(setq start (current-time))
(save-excursion
(find-file filename)
(verilog-auto))
(setq end (current-time))
(setq delta (time-to-seconds (time-subtract end start)))
(setq msper (/ (* 1000 delta) count))
(message "Count: %5d Time: %6.3f msec/inst: %6.3f File: %s"
count delta msper filename)
(when profile
(elp-results))
(when nil
(save-excursion
(find-file filename)
(save-buffer)))
msper)
;;======================================================================
(setq make-backup-files nil)
(copy-file "tests/batch_prof_cell.v" "e/b/batch_prof_cell.v" t)
(setq verilog-debug t)
(setq verilog-library-flags "-I.")
(setq verilog-auto-star-expand nil)
(setq profile (getenv "VERILOG_MODE_PROFILE"))
(when profile
(elp-restore-all)
(elp-instrument-package "verilog"))
(when t
;; Need to read the templated file
(setq t1 (t-size-test 1))
(setq t10 (t-size-test 10))
(setq t100 (t-size-test 100))
(setq t1000 (t-size-test 1000))
(when (getenv "VERILOG_MODE_10000")
(setq t10000 (t-size-test 10000)))
(setq slope (/ t1000 t100))
(setq order (1+ (/ (log slope)
(log 10))))
(message "Slope: %f Complexity: O(n^%f)" slope order)
(if (> slope 1.3)
(error "Test failed, large modules are too slow compared to small modules"))
)
verilog-mode-20161124.fd230e6/batch_test.el 0000664 0000000 0000000 00000000537 13022141775 0020066 0 ustar 00root root 0000000 0000000 ;; DESCRIPTION: Common Emacs flags needed for batch_test.pl
;;
;; Copyright 2008-2013 by Michael McNamara and Wilson Snyder. This package
;; is free software; you can redistribute it and/or modify it under the
;; terms of either the GNU Lesser General Public License or the Perl
;; Artistic License.
(setq verilog-library-flags "-I. -I../../tests")
verilog-mode-20161124.fd230e6/batch_test.pl 0000775 0000000 0000000 00000003722 13022141775 0020103 0 ustar 00root root 0000000 0000000 #!/usr/bin/perl -w
# DESCRIPTION: Run batch tests, as part of "make test"
#
# Copyright 2008-2013 by Michael McNamara and Wilson Snyder. This package
# is free software; you can redistribute it and/or modify it under the
# terms of either the GNU Lesser General Public License or the Perl
# Artistic License.
my $tmpdir = "e";
my @tests = map { s!^.*/!!; $_;} glob("tests_batch_ok/*");
my @tests_args;
foreach my $test (@tests) {
run("/bin/cp tests/$test e/b/$test");
push @tests_args, "e/b/$test";
}
run("emacs --version"
);
run("emacs --batch --no-site-file -l $tmpdir/verilog-mode.elc"
." -l ./batch_test.el"
." ".join(' ',@tests_args)
." -f verilog-batch-delete-auto"
);
run("emacs --batch --no-site-file -l $tmpdir/verilog-mode.elc"
." -l ./batch_test.el"
." ".join(' ',@tests_args)
." -f verilog-batch-auto"
);
run("emacs --batch --no-site-file -l $tmpdir/verilog-mode.elc"
." -l ./batch_test.el"
." e/b/autoinst_lopaz.v"
." -f verilog-batch-diff-auto"
);
run("emacs --batch --no-site-file -l $tmpdir/verilog-mode.elc"
." -l ./batch_test.el"
." e/b/autoinst_star.v"
." -f verilog-batch-diff-auto"
);
run("emacs --batch --no-site-file -l $tmpdir/verilog-mode.elc"
." -l ./batch_test.el"
." ".join(' ',@tests_args)
." -f verilog-batch-indent"
);
foreach my $test (@tests) {
run("diff tests_batch_ok/$test e/b/$test");
}
run("emacs --batch --no-site-file -l $tmpdir/verilog-mode.elc"
." -l ./batch_test.el"
." ".join(' ',@tests_args)
." -f verilog-batch-delete-trailing-whitespace"
);
run("emacs --batch --no-site-file -l $tmpdir/verilog-mode.elc"
." -l ./batch_prof.el"
);
#######################################################################
sub run {
# Run a system command, check errors
my $command = shift;
print "\t$command\n";
system "$command";
my $status = $?;
($status == 0) or die "%Error: Command Failed $command, stopped";
}
verilog-mode-20161124.fd230e6/config_rev.pl 0000775 0000000 0000000 00000002217 13022141775 0020102 0 ustar 00root root 0000000 0000000 #!/usr/bin/perl -w
# DESCRIPTION: Query's git to get version number
######################################################################
#
# Copyright 2005-2013 by Wilson Snyder. This is free software; you
# can redistribute it and/or modify it under the terms of either the GNU
# Lesser General Public License Version 3 or the Perl Artistic License
# Version 2.0.
#
######################################################################
my $dir = $ARGV[0]; defined $dir or die "%Error: No directory argument,";
chdir $dir;
my $file = $ARGV[1]; defined $file or die "%Error: No file argument,";
my $rev = 'UNKNOWN_REV';
my $data = `git log --pretty=format:'%ad-%h' --date=short -1 $file`;
if ($data =~ /(^20.*)/i) {
$rev = $1;
}
$data = `git status $file`;
if ($data =~ /Changed but not updated/i
|| $data =~ /Changes to be committed/i) {
$rev .= "-mod";
}
# Filter the code
my $wholefile = join('',);
$wholefile =~ s/__VMVERSION__-__VMREVISION__/$rev/mg;
$wholefile =~ s/__VMPACKAGER__/vpo/mg;
print $wholefile;
# Die after the print, so at least the header has good contents
$rev =~ /UNKNOWN/ and warn "%Warning: No git revision found,";
verilog-mode-20161124.fd230e6/error_file.v 0000664 0000000 0000000 00000000334 13022141775 0017736 0 ustar 00root root 0000000 0000000 1;
2;
3;
4;
5;
6;
7;
8;
9;
10;
11;
12;
13;
14;
15;
16;
17;
18;
19;
20;
21;
22;
23;
24;
25;
26;
27;
28;
29;
30;
31;
32;
33;
34;
35;
36;
37;
38;
39;
40;
// Local Variables:
// compile-command: "make test_errors "
// End:
verilog-mode-20161124.fd230e6/error_msgs.out 0000664 0000000 0000000 00000002361 13022141775 0020334 0 ustar 00root root 0000000 0000000 A bunch of error messages that Emacs should
recognize if you type C-x ` and take you to the correct line of error_file.v
Note the 'gnu' compilation-error-regexp-alist in messes some up - to be fixed.
(setq compilation-error-regexp-alist (delete 'gnu compilation-error-regexp-alist))
Warning: code located there (error_file.v line 9) is dangerous
(W1800) error_file.v 21: Problems
f*E,1364 (error_file.v,2) Issues
Error: code located here (error_file.v line 8) is fatal
ERROR : error_file.v, line 1: erroneous
INFO : error_file.v, line 7: informational
WARNING : error_file.v, line 6: curious
nctool: *E,UNDIDN (error_file.v,11|22): 'zz': the message [12.5(IEEE)].
nctool: *W,TRUNCZ (error_file.v,14|0): a W message.
nctool: *W,URDREG[CN_ABSTR] (error_file.v,15|0): another W message in 'foo'.
Verilog-Perl: %Error: error_file.v:16: Some message from Verilog-Perl etc.
Verilog-Perl: %Warning: ./error_file.v:17: Some message from Verilog-Perl etc.
%Warning: ./error_file.v:17: Some message from Verilator etc.
# This must be in one echo, or the comint may not match it
In file error_file.v line 5:
a
b
Failure was obsevred
la di da
syntax error: problems
error_file.v 7: here is where they are
// Local Variables:
// compile-command: "make test_errors "
// End:
verilog-mode-20161124.fd230e6/make_log.pl 0000775 0000000 0000000 00000003302 13022141775 0017533 0 ustar 00root root 0000000 0000000 #!/usr/bin/perl
unlink("log");
$attach_name = "verilog-mode.el.gz";
$encoded_data = `gzip -c9 verilog-mode.el | mmencode `;
if ( -d ".svn") {
system("svn log verilog-mode.el > log");
open(LOG,") {
if (/^r([\d\.]+)/) {
$rev = $1;
last;
}
}
} else {
system("cvs log verilog-mode.el > log");
open(LOG,") {
if (/^head: ([\d\.]+)$/) {
$rev = $1;
}
last if (/^description:$/);
}
}
open(O,">emacs-version.h");
open(C,">ChangeLog.txt");
$release_date = `date +"%D"`;
print O <<"X";
$rev
$release_date
X
close(O);
open(O,">mmencoded_verilog-mode");
print O <<"XX";
MIME-version: 1.0
Content-type: multipart/mixed; boundary="Message-Boundary"
Content-transfer-encoding: 7BIT
X-attachments: verilog-mode.el.gz
--Message-Boundary
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
Content-description: Mail message body
+----------------------------------------------------------------+
| Here is version $rev of verilog-mode for emacs! |
+----------------------------------------------------------------+
XX
open(IO, "){
print O $_;
}
print O "\nLast few changes to the verilog-mode:\n";
while() {
$log++ if (/^----------------------------$/);
print C $_;
last if ($log > 10);
print O $_;
}
while() {
print C $_;
}
close(LOG);
print O <<"XX";
--Message-Boundary
Content-type: application/octet-stream; name="$attach_name"
Content-Transfer-Encoding: base64
Content-disposition: attachment; filename="$attach_name"
$encoded_data
--Message-Boundary--
XX
close(O);
unlink("log");
verilog-mode-20161124.fd230e6/make_mail.pl 0000775 0000000 0000000 00000001464 13022141775 0017703 0 ustar 00root root 0000000 0000000 #!/usr/bin/perl
$owner = "mac";
$destination = "mac\@verilog.com";
$verilog = "/home/mac/development/www.verilog.com/src/data/mmencoded_verilog-mode";
if ( -d ".svn") {
open(LOG,") {
if (/^r([\d\.]+)/) {
$rev = $1;
last;
}
}
} else {
open(LOG,") {
if (/^head: ([\d\.]+)$/) {
$rev = $1;
}
last if (/^description:$/);
}
}
open(VM, "< $verilog") || die "Can not open $verilog\n";
open(SM, "|/usr/lib/sendmail -bm -f $owner -F \"Mike McNamara\" -t");
# $destination = "mac\@verilog.com";
# open(SM, "> mail.test");
print SM "To: $destination\nReply-To: mac\@verilog.com\nBCC: mac\@verilog.com\nSubject: SUBSCRIPTION: Emacs Verilog-mode $rev\n";
while() {
print SM $_;
}
close(SM) || die "mailing dies with error: $!\n";
close(VM);
verilog-mode-20161124.fd230e6/makechangelog 0000775 0000000 0000000 00000010633 13022141775 0020135 0 ustar 00root root 0000000 0000000 #!/usr/bin/perl -w # -*- Perl -*-
# See copyright, etc in below POD section.
######################################################################
require 5.006_001;
use Getopt::Long;
#use Data::Dumper; $Data::Dumper::Indent=1; #Debug
use IO::File;
use IO::Dir;
use Pod::Usage;
use strict;
use vars qw ($Debug);
#======================================================================
# main
our $Opt_FileA;
our $Opt_FileB;
our $Opt_Git;
our $Opt_Svn;
autoflush STDOUT 1;
autoflush STDERR 1;
Getopt::Long::config ("no_auto_abbrev");
if (! GetOptions (
"help" => \&usage,
"debug" => sub { $Debug = 1; },
"<>" => \¶meter,
"git!" => \$Opt_Git,
"svn!" => \$Opt_Svn,
)) {
die "%Error: Bad usage, try 'makechangelog --help'\n";
}
if ($Opt_Svn) {
my $now = $Opt_FileA;
$Opt_FileA = ".svn/text-base/${now}.svn-base";
$Opt_FileB = $now;
} elsif ($Opt_Git) {
my $now = $Opt_FileA;
$Opt_FileA = "/tmp/mcl.$$";
$Opt_FileB = $now;
system("git show HEAD:${now} > $Opt_FileA");
}
read_file($Opt_FileA, $Opt_FileB);
if ($Opt_Git) {
unlink($Opt_FileA);
}
#----------------------------------------------------------------------
sub usage {
print '$Id$ ', "\n";
pod2usage(-verbose=>2, -exitval => 2);
exit (1);
}
sub parameter {
my $param = shift;
if (!$Opt_FileA) {
$Opt_FileA = $param;
} elsif (!$Opt_FileB) {
$Opt_FileB = $param;
} else {
die "%Error: Unknown parameter: $param\n";
}
}
#######################################################################
sub read_file {
my $a = shift;
my $b = shift;
my @l = (read_lines($a), read_lines($b));
# Note we ignore whitespace
my $fh = IO::File->new("diff -b -c $a $b |") or die "%Error: $!,";
my @ln = (0,0);
my %difffuncs;
my $mode = 0;
my @difflines;
while (defined(my $line = $fh->getline)) {
my $fn = "";
if ($line =~ /^\*\*\* (\d+)/) {
$mode = 0;
$ln[$mode] = $1 - 1;
} elsif ($line =~ /^\-\-\- (\d+)/) {
$mode = 1;
$ln[$mode] = $1 - 1;
} elsif ($line =~ /^\*\*\*/) {
} elsif ($line =~ /^\-\-\-/) {
} else {
$ln[$mode]++;
if ($line =~ /^[!-+]/) {
my $checkline = substr($line,2);
chomp $checkline;
$checkline =~ s/;.*$//;
$checkline =~ s/[ \t\n]+$//;
if ($checkline ne "") {
$fn = $l[$mode][ $ln[$mode] ] || "Line#".$ln[$mode];
$difffuncs{$fn} = 1;
}
}
}
(my $fnq = $fn||"") =~ s/^verilog-/v-/g;
push @difflines, sprintf ("%05d: %-20s: %s",$ln[$mode],substr($fnq,0,20), $line);
}
$fh->close;
print "-*- Change-Log -*-\n\n";
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
printf "\n\n";
print "\t* verilog-mode.el";
my $f="";
my $sep = " (";
foreach my $func (sort keys %difffuncs) {
next if $func eq 'verilog-mode-release-date';
next if $func eq 'verilog-mode-version';
$f .= $sep.$func;
$sep = ", ";
}
$f .= ")" if $f;
print "$f:\n";
print "\n";
print "="x70,"\n";
print join('',@difflines);
}
sub read_lines {
my $filename = shift;
my @lines;
my $func;
my $fh = IO::File->new($filename) or die "%Error: $! $filename\n";
my $ln = 0;
while (defined(my $line = $fh->getline)) {
$ln++;
$func = undef if ($line =~ /^\(/);
$func = $1 if $line =~ /^\(def[---a-z]+\s+\'?(\S+)/;
$lines[$ln] = $func;
printf "%05d %-30s %s", $ln, $func||"", $line if $Debug;
}
$fh->close;
return \@lines;
}
#######################################################################
__END__
=pod
=head1 NAME
makechangelog -
=head1 SYNOPSIS
./makechangelog --svn verilog-mode.el
=head1 DESCRIPTION
dd
=head1 ARGUMENTS
=over 4
=item --help
Displays this message and program version and exits.
=back
=head1 DISTRIBUTION
This is part of the L free Verilog EDA software
tool suite. The latest version is available from CPAN and from
L.
Copyright 2008-2013 by Wilson Snyder. This package is free software; you
can redistribute it and/or modify it under the terms of either the GNU
Lesser General Public License or the Perl Artistic License.
=head1 AUTHORS
Wilson Snyder
=head1 SEE ALSO
=cut
######################################################################
### Local Variables:
### compile-command: "./makechangelog --svn verilog-mode.el"
### End:
verilog-mode-20161124.fd230e6/tests/ 0000775 0000000 0000000 00000000000 13022141775 0016561 5 ustar 00root root 0000000 0000000 verilog-mode-20161124.fd230e6/tests/abc.sv 0000664 0000000 0000000 00000000700 13022141775 0017655 0 ustar 00root root 0000000 0000000
covergroup CB;
a: coverpoint tr.a
{
bins a0 = {0};
bins a1 = {1};
option.weight=0;
}
b: coverpoint tr.b {
bins b0 = {0};
bins b1 = {1};
option.weight=0;
}
ab: cross a,b {
bins a0b0 = binsof(a.a0) && binsof(b.b0);
bins a1b0 = binsof(a.a1) && binsof(b.b0);
bins b0 = binsof(b.b0);
}
endgroup // CB
verilog-mode-20161124.fd230e6/tests/auto_delete_whitespace.v 0000664 0000000 0000000 00000000445 13022141775 0023461 0 ustar 00root root 0000000 0000000 // This file ONLY is placed into the Public Domain, for any use,
// without warranty, 2011 by Wilson Snyder.
// Note intentional whitespace on following line
// SPACES
module x;
// TAB
endmodule
// Local Variables:
// verilog-auto-delete-trailing-whitespace: t
// End:
verilog-mode-20161124.fd230e6/tests/autoarg_comment.v 0000664 0000000 0000000 00000000357 13022141775 0022141 0 ustar 00root root 0000000 0000000 module autoarg_comment
// Copyright 1997-1998, blah, blah, blah
(/*AUTOARG*/);
//verilint 332 OFF //* Not all possible cases covered, but default case exists
input (* ATTRIB="val" *) income;
output outgo2;
endmodule
verilog-mode-20161124.fd230e6/tests/autoarg_jwells_comment.v 0000664 0000000 0000000 00000000466 13022141775 0023522 0 ustar 00root root 0000000 0000000 module tahoetop(/*AUTOARG*/);
/*AUTOWIRE*/
// Beginning of automatic wires (for undeclared instantiated-module outputs)
// End of automatics
// the pad instance to look like "pads pads (/*AUTOINST*/". Then at
// diff the new against the old. Finally delete /*AUTOINST*/. This will
endmodule
verilog-mode-20161124.fd230e6/tests/autoarg_quote_cmt.v 0000664 0000000 0000000 00000000126 13022141775 0022471 0 ustar 00root root 0000000 0000000 // bug360
module f (/*AUTOARG*/);
always @* r = "test/*";
input x;
endmodule
verilog-mode-20161124.fd230e6/tests/autoarg_single.v 0000664 0000000 0000000 00000000255 13022141775 0021755 0 ustar 00root root 0000000 0000000 // msg1354
module f (/*AUTOARG*/);
output o2;
input z;
input a;
input q;
output o1;
endmodule
// Local Variables:
// verilog-auto-arg-format:single
// End:
verilog-mode-20161124.fd230e6/tests/autoarg_sort_fedeli.v 0000664 0000000 0000000 00000000230 13022141775 0022764 0 ustar 00root root 0000000 0000000 module (/*AUTOARG*/);
output o2;
input z;
input a;
input q;
output o1;
endmodule
// Local Variables:
// verilog-auto-arg-sort:t
// End:
verilog-mode-20161124.fd230e6/tests/autoarg_string_bug259.v 0000664 0000000 0000000 00000001262 13022141775 0023076 0 ustar 00root root 0000000 0000000 module bug_minimal
(input wire GND,
input wire VDD,
inout wire PIN1,
inout wire PIN2,
inout wire PIN3,
inout wire PIN4
/*AUTOARG*/);
// ----------------------------------------------------------------
/*AUTOWIRE*/
// ----------------------------------------------------------------
task force_value_to_1;
begin
$display("Enable test module checking ...");
force `value = 1'b1;
end
endtask
// ---------------------------------------------------------------
task force_value_to_0;
begin
$display("Disable test module checking ...");
force `value = 1'b0;
end
endtask
endmodule
verilog-mode-20161124.fd230e6/tests/autoarg_supply_bug438.v 0000664 0000000 0000000 00000000404 13022141775 0023120 0 ustar 00root root 0000000 0000000 module top
(
/*AUTOINPUT*/
);
/*AUTOWIRE*/
inst_module inst (/*AUTOINST*/);
endmodule
module inst_module (input supply0 VDD,
input supply1 VSS,
input non_supply,
input supply1 VDD_from_child
);
endmodule
verilog-mode-20161124.fd230e6/tests/autoascii_myers.v 0000664 0000000 0000000 00000002667 13022141775 0022163 0 ustar 00root root 0000000 0000000 module testit;
reg clk;
reg a_i;
reg b_i;
reg a_o;
reg b_o;
reg rst_n;
reg [7:0] shreg;
//== State enumeration
parameter [2:0] // synopsys enum state_info
SM_IDLE = 3'b000,
SM_SEND = 3'b001,
SM_WAIT1 = 3'b010;
//== State variables
reg [2:0] /* synopsys enum state_info */
state_r; /* synopsys state_vector state_r */
reg [2:0] /* synopsys enum state_info */
state_e1;
//== ASCII state decoding
/*AUTOASCIIENUM("state_r", "_stateascii_r", "sm_")*/
// Beginning of automatic ASCII enum decoding
reg [39:0] _stateascii_r; // Decode of state_r
always @(state_r) begin
case ({state_r})
SM_IDLE: _stateascii_r = "idle ";
SM_SEND: _stateascii_r = "send ";
SM_WAIT1: _stateascii_r = "wait1";
default: _stateascii_r = "%Erro";
endcase
end
// End of automatics
initial begin
clk = 0;
a_i = 0;
b_i = 0;
rst_n = 0;
#20 rst_n = 1;
end
always #5 clk = ~clk;
always @(posedge clk or rst_n) begin
if (~rst_n) begin
a_o <= 0;
b_o <= 0;
shreg <= 8'b00110011;
end
else begin
a_o <= a_i;
b_o <= b_i;
shreg <= {shreg[6:0], shreg[7]};
end
end
task set_a_i;
begin
a_i = shreg[0];
end
endtask // set_a_i
always @(shreg & a_o) begin
set_a_i;
end
initial begin
$vcdpluson;
#500 $finish;
end
endmodule // testit
verilog-mode-20161124.fd230e6/tests/autoascii_peltan.v 0000664 0000000 0000000 00000001431 13022141775 0022273 0 ustar 00root root 0000000 0000000 module autoascii_peltan
(
input test,
output [1:0] test_out
);
`include "autoascii_peltan_inc.v"
// Duplicate of what's in _inc
localparam [3:0] /* synopsys enum xstate */
state0 = 4'h0;
wire [3:0] /* synopsys enum xstate */
xstate;
/* synopsys translate off */
/*AUTOASCIIENUM("xstate", "v_xstate")*/
// Beginning of automatic ASCII enum decoding
reg [47:0] v_xstate; // Decode of xstate
always @(xstate) begin
case ({xstate})
state0: v_xstate = "state0";
state1: v_xstate = "state1";
default: v_xstate = "%Error";
endcase
end
// End of automatics
/* synopsys translate on */
endmodule // sample
// Local Variables:
// verilog-library-directories:(".")
// verilog-auto-read-includes:t
// End:
verilog-mode-20161124.fd230e6/tests/autoascii_peltan_inc.v 0000664 0000000 0000000 00000000116 13022141775 0023123 0 ustar 00root root 0000000 0000000 localparam [3:0] /* synopsys enum xstate */
state0 = 4'h0,
state1 = 4'h1;
verilog-mode-20161124.fd230e6/tests/autoasciienum_auto.v 0000664 0000000 0000000 00000000723 13022141775 0022650 0 ustar 00root root 0000000 0000000 // Code ok to distribute
module autoasciienum_auto();
reg [2:0] /* auto enum sm_psm */ sm_psm;
reg [2:0] /* auto enum sm_ps2 */ sm_ps2;
localparam [2:0] // auto enum sm_psm
PSM_IDL = 0,
PSM_RST = 6,
PSM_ZOT = 7;
localparam [2:0] // auto enum sm_ps2
PS2_IDL = 0,
PS2_FOO = 1;
/*AUTOASCIIENUM("sm_psm", "_sm_psm__ascii", "_")*/
/*AUTOASCIIENUM("sm_ps2", "_sm_ps2__ascii", "_")*/
endmodule : autoasciienum_auto
verilog-mode-20161124.fd230e6/tests/autoasciienum_ex.v 0000664 0000000 0000000 00000001457 13022141775 0022321 0 ustar 00root root 0000000 0000000 module sm (/*AUTOARG*/
// Outputs
state_e1, state_r
);
output [2:0] state_e1;
output [2:0] state_r;
//== State enumeration
parameter [2:0] // synopsys enum state_info
SM_IDLE = 3'b000,
SM_ACT = 3'b010;
//== State variables
reg [2:0] /* synopsys enum state_info */
state_r; /* synopsys state_vector state_r */
reg [2:0] /* synopsys enum state_info */
state_e1;
//== ASCII state decoding
/*AUTOASCIIENUM("state_r", "_stateascii_r", "sm_")*/
// Beginning of automatic ASCII enum decoding
reg [31:0] _stateascii_r; // Decode of state_r
always @(state_r) begin
case ({state_r})
SM_IDLE: _stateascii_r = "idle";
SM_ACT: _stateascii_r = "act ";
default: _stateascii_r = "%Err";
endcase
end
// End of automatics
endmodule
verilog-mode-20161124.fd230e6/tests/autoasciienum_frominc.v 0000664 0000000 0000000 00000002101 13022141775 0023325 0 ustar 00root root 0000000 0000000 module sm (/*AUTOARG*/);
//==================== Constant declarations ==============
`include "autoasciienum_param.v"
//==================== Intermediate Variables =============
reg [3:0] /* synopsys enum En_C14ChipNum */ chip_r;
//==================== DEBUG ASCII CODE =========================
/*AUTOASCIIENUM("chip_r", "chip_r__ascii","Ep_C14ChipNum_")*/
// Beginning of automatic ASCII enum decoding
reg [31:0] chip_r__ascii; // Decode of chip_r
always @(chip_r) begin
case ({chip_r})
EP_C14ChipNum_RNP: chip_r__ascii = "rnp ";
EP_C14ChipNum_SPP: chip_r__ascii = "spp ";
EP_C14ChipNum_SRP: chip_r__ascii = "srp ";
EP_C14ChipNum_SMM2: chip_r__ascii = "smm2";
EP_C14ChipNum_SMM: chip_r__ascii = "smm ";
EP_C14ChipNum_TTE: chip_r__ascii = "tte ";
EP_C14ChipNum_DLE: chip_r__ascii = "dle ";
EP_C14ChipNum_OASP: chip_r__ascii = "oasp";
default: chip_r__ascii = "%Err";
endcase
end
// End of automatics
endmodule
//==== Emacs verilog-mode controls ====
// Local Variables:
// verilog-auto-read-includes:t
// End:
verilog-mode-20161124.fd230e6/tests/autoasciienum_onehot.v 0000664 0000000 0000000 00000001641 13022141775 0023174 0 ustar 00root root 0000000 0000000 // lint_checking MODLNM OFF
module autoasciienum_onehot (
input clk,
input rst_n,
output ack
);
localparam // synopsys enum state_info
IDLE = 0,
S1 = 1,
S2 = 2,
S3 = 3,
DONE = 4;
reg [4:0] // synopsys enum state_info
cur_state, nxt_state;
always @ (*) begin
nxt_state = 5'h0;
case (1'b1)
cur_state[IDLE] : nxt_state[S1] = 1'b1;
cur_state[S1] : nxt_state[S2] = 1'b1;
cur_state[S2] : nxt_state[S3] = 1'b1;
cur_state[S3] : nxt_state[DONE] = 1'b1;
cur_state[DONE] : nxt_state[DONE] = 1'b1;
endcase
end
always @ (posedge clk or negedge rst_n)
if (rst_n == 1'b0) begin
cur_state <= 'h1;
end
else begin
cur_state <= nxt_state;
end
assign ack = cur_state[DONE];
/*AUTOASCIIENUM("cur_state", "cur_state_ascii")*/
endmodule
verilog-mode-20161124.fd230e6/tests/autoasciienum_param.v 0000664 0000000 0000000 00000001037 13022141775 0022777 0 ustar 00root root 0000000 0000000
`ifdef NOTDEFINED
module just_for_proper_indentation ();
`endif
//Verilint 175 off //WARNING: Unused parameter
parameter // synopsys enum En_C14ChipNum
EP_C14ChipNum_OASP = 4'h0,
EP_C14ChipNum_DLE = 4'h2,
EP_C14ChipNum_TTE = 4'h3,
EP_C14ChipNum_SMM = 4'h4,
EP_C14ChipNum_SMM2 = 4'h5,
EP_C14ChipNum_SRP = 4'h6,
EP_C14ChipNum_SPP = 4'h7,
EP_C14ChipNum_RNP = 4'h8;
verilog-mode-20161124.fd230e6/tests/autoasciienum_reed.v 0000664 0000000 0000000 00000001056 13022141775 0022617 0 ustar 00root root 0000000 0000000
module sm ();
localparam STATES = 7;
localparam /* synopsys enum states */
IDLE = 0, // '001
READ = 1, // '002
THINK = 2, // '004
SEND = 3, // '008
WAIT = 4, // '040
GET_ACK = 5, // '080
WAIT_REGBUS = 6; // '100
reg [STATES-1:0] /*synopsys enum states*/
state_i, state_r; /* synopsys state_vector state_r */
/*AUTOASCIIENUM("state_r","state_onehot,ascii_r","","onehot")*/
/*AUTOASCIIENUM("state_r","state_notonehot_ascii_r")*/
endmodule
verilog-mode-20161124.fd230e6/tests/autoasciienum_sm.v 0000664 0000000 0000000 00000004534 13022141775 0022323 0 ustar 00root root 0000000 0000000 module sm (/*AUTOARG*/
// Outputs
state_r,
// Inputs
clk, rst_
);
//==================== Constant declarations ==============
parameter [2:0] // synopsys enum state_info
IDLE = 3'b000,
SEND = 3'b001,
WAIT1 = 3'b010,
UPDATE1 = 3'b011,
WAIT2 = 3'b100;
parameter [2:0] /* synopsys enum state_info */ UPDATE2 = 3'b101;
parameter [2:0] NOT_A_STATE_ELEMENT = 3'b101;
parameter [2:0] /* synopsys enum other */
A_OTHER_STATE_ELEMENT = 3'b101;
//==================== Input Signals ======================
input clk; // System clock signal
input rst_;
//==================== Output Signals =====================
// s_ynopsys requires the enum comment between the keyword and the symbol While this seems silly,
// verilog requires this also to avoid misleading people that also use their tools.
output [2:0] state_r; // SM State information (to GPF)
//==================== Intermediate Variables =============
reg [2:0] /* synopsys enum state_info */ state_r; /* synopsys state_vector state_r */
reg [2:0] /* synopsys enum state_info */ state_e1; // next state of state-machine
//==================== Code Begin =========================
always @(/*AUTOSENSE*/state_r) begin
case(state_r) // synopsys full_case parallel_case
IDLE: begin
state_e1 = SEND;
end
SEND: begin
state_e1 = WAIT1;
end
WAIT1: begin
state_e1 = UPDATE1;
end
UPDATE1: begin
state_e1 = UPDATE2;
end
WAIT2: begin
state_e1 = UPDATE2;
end
UPDATE2: begin
state_e1 = IDLE;
end
default: state_e1 = state_r;
endcase
end
always @(posedge clk or negedge rst_) begin
if (~rst_) begin
state_r <= #0 IDLE;
end
else begin
state_r <= #0 state_e1;
end
end
//==================== DEBUG ASCII CODE =========================
/*AUTOASCIIENUM("state_r", "_stateascii_r")*/
// Beginning of automatic ASCII enum decoding
reg [55:0] _stateascii_r; // Decode of state_r
always @(state_r) begin
case ({state_r})
IDLE: _stateascii_r = "idle ";
SEND: _stateascii_r = "send ";
WAIT1: _stateascii_r = "wait1 ";
UPDATE1: _stateascii_r = "update1";
WAIT2: _stateascii_r = "wait2 ";
UPDATE2: _stateascii_r = "update2";
default: _stateascii_r = "%Error ";
endcase
end
// End of automatics
endmodule
verilog-mode-20161124.fd230e6/tests/autoconst_gesmith.v 0000664 0000000 0000000 00000000430 13022141775 0022504 0 ustar 00root root 0000000 0000000 module(/*AUTOARG*/)
always @(`ot.BOZ or
/*AUTOSENSE*/b)
begin
/*AUTO_CONSTANT(`ot.BOC) */
i = b;
c = `ot.BOC;
d = `ot.BOZ;
end
always @(/*AUTOSENSE*/b)
begin
/*AUTO_CONSTANT(ot.BOB) */
i = b;
c = ot.BOB;
end
endmodule
verilog-mode-20161124.fd230e6/tests/autoconstant_gooch.v 0000664 0000000 0000000 00000003207 13022141775 0022653 0 ustar 00root root 0000000 0000000 module autoconstant_gooch
(/*AUTOARG*/
// Outputs
out1, out2, out3,
// Inputs
in1, in2, in3
);
input [3:0] in1;
input [3:0] in2;
input [3:0] in3;
output [3:0] out1;
reg [3:0] out1;
output [3:0] out2;
reg [3:0] out2;
output [3:0] out3;
reg [3:0] out3;
always @(/*AUTOSENSE*/in1 or in2 or in3)
begin
case (in1)
4'b0001 : begin
out1 = in2;
end
4'b0010 : begin
out1 = in2 + in3;
end
4'b0100 : begin
out1 = in2 - in3;
end
4'b1000 : begin
out1 = in2;
end
default : begin
out1 = {4{1'b0}};
end
endcase
end
always @(/*AUTOSENSE*/in1 or in2 or in3)
begin
case (in1)
4'b0001 : begin
out2 = in2;
end
4'b0010 : begin
out2 = in2 + in3;
end
4'b0100 : begin
out2 = in2 - in3;
end
4'b1000 : begin
out2 = in2;
end
default : begin
out2 = {4{1'b0}};
end
endcase
end
always @(/*AUTOSENSE*/in1 or in2 or in3)
begin
/* AUTO_CONSTANT( temp )*/
/* AxxxUTO_CONSTANT temp */
out3 = in1 + in2;
temp2 = temp;
// ERROR here - above constant definition is not
// correct - no braces - and so parser keeps looking
// for the first variable it finds between a pair of
// braces - in this case, in2. This in2 is now a
// "constant" and is removed from all sensitivity lists.
// ( in2 )
case (in1)
4'b0001 : begin
out3 = in2;
end
4'b0010 : begin
out3 = in2 + in3;
end
4'b0100 : begin
out3 = in2 - in3;
end
4'b1000 : begin
out3 = in2;
end
default : begin
out3 = {4{1'b0}};
end
endcase
end
endmodule
verilog-mode-20161124.fd230e6/tests/autoinout.v 0000664 0000000 0000000 00000000667 13022141775 0021010 0 ustar 00root root 0000000 0000000 module io1_sub(
/*AUTOARG*/);
/*AUTOINPUT*/
/*AUTOINOUT*/
/*AUTOOUTPUT*/
/* inst AUTO_TEMPLATE (
.lower_inb (1'b1),
)*/
instio instio (/*AUTOINST*/);
endmodule
module instio (/*AUTOARG*/);
input lower_ina;
inout lower_io;
output lower_out;
input sec_ina;
inout sec_io;
output sec_out;
wire lower_out = lower_ina | lower_io;
wire sec_out = sec_ina | sec_io;
endmodule
verilog-mode-20161124.fd230e6/tests/autoinout_lovell.v 0000664 0000000 0000000 00000001145 13022141775 0022355 0 ustar 00root root 0000000 0000000 // Matthew Lovell
module top_test(/*AUTOARG*/);
/*AUTOOUTPUT*/
/*AUTOINPUT*/
/* leaf AUTO_TEMPLATE (
// Original reported bug
.a ({aa, test2.test3.no, test3.test4.no2}),
// Others
.b ( ~ ba),
.c ({\c-escaped-nvec , \c-escaped-vec [2:0] }),
.d ({da,~ db [1:0] , dc [2:0]}),
// Msg246
.e ({{4*1{1'b0}},Z_int[15:0],{1'b4{1'b0}},Z0_int[7:0]}),
.f (hi.ear.ial),
);
*/
leaf l1 (/*AUTOINST*/);
endmodule // top_test
module leaf(/*AUTOARG*/);
output a;
output b;
input c;
input d;
input e;
input f;
input z;
endmodule
verilog-mode-20161124.fd230e6/tests/autoinout_ma.v 0000664 0000000 0000000 00000000342 13022141775 0021453 0 ustar 00root root 0000000 0000000 module foo
(
input soutb,
output sina,
/*AUTOINPUT*/
/*AUTOOUTPUT*/
) ;
bar i_bar(/*AUTOINST*/);
endmodule // foo
module bar (/*AUTOARG*/) ;
input sina, sinb;
output souta, soutb;
endmodule // bar
verilog-mode-20161124.fd230e6/tests/autoinout_moller.v 0000664 0000000 0000000 00000001471 13022141775 0022354 0 ustar 00root root 0000000 0000000 module a ( /*AUTOARG*/
// Outputs
o1,
// Inouts
io1,
// Inputs
i1
) ;
/*AUTOINPUT*/
// Beginning of automatic inputs (from unused autoinst inputs)
input i1; // To b of b.v
// End of automatics
/*AUTOOUTPUT*/
// Beginning of automatic outputs (from unused autoinst outputs)
output o1; // From b of b.v
// End of automatics
/*AUTOINOUT*/
// Beginning of automatic inouts (from unused autoinst inouts)
inout io1; // To/From b of b.v
// End of automatics
b b
(/*AUTOINST*/
// Outputs
.o1 (o1),
// Inouts
.io1 (io1),
// Inputs
.i1 (i1));
endmodule // a
module b (/*AUTOARG*/
// Outputs
o1,
// Inouts
io1,
// Inputs
i1
) ;
input i1 ;
output o1 ;
inout io1 ;
endmodule // b
verilog-mode-20161124.fd230e6/tests/autoinout_regexp.v 0000664 0000000 0000000 00000000711 13022141775 0022350 0 ustar 00root root 0000000 0000000 module io1_sub(
/*AUTOARG*/);
/*AUTOINPUT("^s")*/
/*AUTOINOUT("^s")*/
/*AUTOOUTPUT("^s")*/
/* inst AUTO_TEMPLATE (
.lower_inb (1'b1),
)*/
instio instio (/*AUTOINST*/);
endmodule
module instio (/*AUTOARG*/);
input lower_ina;
inout lower_io;
output lower_out;
input sec_ina;
inout sec_io;
output sec_out;
wire lower_out = lower_ina | lower_io;
wire sec_out = sec_ina | sec_io;
endmodule
verilog-mode-20161124.fd230e6/tests/autoinout_v2k.v 0000664 0000000 0000000 00000001415 13022141775 0021562 0 ustar 00root root 0000000 0000000 module parent
(
/*AUTOINPUT*/
/*AUTOOUTPUT*/
/*AUTOINOUT*/
);
/*AUTOWIRE*/
child_a sub_module
(/*AUTOINST*/);
child_b sub_module
(/*AUTOINST*/);
endmodule // parent
module child_a
(
input [3:0] a,
input [3:0] a2,
input [3:0] a3,
input [3:0] a4,
inout [5:0] c,
inout [5:0] c2,
inout c3,
output [2:0] b,
output [2:0] b2,
output [2:0] b3,
output [2:0] b4,
input clk,
output d
);
endmodule
module child_b
(
output [3:0] a,
output [3:0] a4,
inout [5:0] c,
inout [5:0] c2,
inout c3,
input [2:0] b,
input [2:0] b2,
input [2:0] b3,
input [2:0] b4,
input clk
);
endmodule
verilog-mode-20161124.fd230e6/tests/autoinoutcomp.v 0000664 0000000 0000000 00000000326 13022141775 0021657 0 ustar 00root root 0000000 0000000 module autoinoutmodule (/*AUTOARG*/);
output lower_inb;
/*AUTOINOUTCOMP("inst")*/
// Beginning of automatic in/out/inouts (from specific module)
wire lower_out = lower_ina | lower_inb;
endmodule
verilog-mode-20161124.fd230e6/tests/autoinoutin.v 0000664 0000000 0000000 00000000112 13022141775 0021320 0 ustar 00root root 0000000 0000000 module autoinoutin (/*AUTOARG*/);
/*AUTOINOUTIN("inst")*/
endmodule
verilog-mode-20161124.fd230e6/tests/autoinoutmodport_bourduas_type.v 0000664 0000000 0000000 00000001311 13022141775 0025345 0 ustar 00root root 0000000 0000000 //-*- mode: Verilog; verilog-indent-level: 3; indent-tabs-mode: nil; tab-width: 1 -*-
module apl2c_connect(autoinoutmodport_type_intf ctl_i,
/*AUTOINOUTMODPORT("autoinoutmodport_type_intf", "ctl_cb")*/
);
/*AUTOASSIGNMODPORT("autoinoutmodport_type_intf", "ctl_cb", "ctl_i")*/
endmodule
interface autoinoutmodport_type_intf(input logic clk, input logic rst_n);
import uvm_pkg::*;
import ap_defines::*;
logic [4:0] inst;
isel_t isel;
logic replay;
clocking ctl_cb @(posedge clk);
input inst;
input isel;
input replay;
endclocking: ctl_cb
modport ctl_mp(clocking ctl_cb);
endinterface
// Local Variables:
// verilog-typedef-regexp:"_t"
// End:
verilog-mode-20161124.fd230e6/tests/autoinoutmodule.v 0000664 0000000 0000000 00000000641 13022141775 0022206 0 ustar 00root root 0000000 0000000 module autoinoutmodule (/*AUTOARG*/
// Outputs
lower_out,
// Inputs
lower_inb, lower_ina
);
/*AUTOINOUTMODULE("inst")*/
// Beginning of automatic in/out/inouts (from specific module)
output lower_out;
input lower_inb;
input lower_ina;
// End of automatics
// Beginning of automatic in/out/inouts (from specific module)
wire lower_out = lower_ina | lower_inb;
endmodule
verilog-mode-20161124.fd230e6/tests/autoinoutmodule_iface.v 0000664 0000000 0000000 00000000240 13022141775 0023330 0 ustar 00root root 0000000 0000000 // bug721
module my_core
(
/*AUTOINOUTMODULE("autoinoutmodule_iface_sub")*/
/*AUTOINOUT*/
/*AUTOINPUT*/
/*AUTOOUTPUT*/
);
/*AUTOWIRE*/
endmodule
verilog-mode-20161124.fd230e6/tests/autoinoutmodule_iface_sub.v 0000664 0000000 0000000 00000000117 13022141775 0024204 0 ustar 00root root 0000000 0000000 module autoinoutmodule_iface_sub
(my_svi.master my_svi_port,
);
endmodule
verilog-mode-20161124.fd230e6/tests/autoinoutmodule_ign.v 0000664 0000000 0000000 00000000214 13022141775 0023037 0 ustar 00root root 0000000 0000000 module autoinoutmodule (/*AUTOARG*/);
/*AUTOINOUTMODULE("inst","\(ina\|out\)","","ina")*/
wire lower_out = lower_ina;
endmodule
verilog-mode-20161124.fd230e6/tests/autoinoutmodule_re2.v 0000664 0000000 0000000 00000000264 13022141775 0022757 0 ustar 00root root 0000000 0000000 module autoinoutmodule_re2 (/*AUTOARG*/);
/*AUTOINOUTMODULE("inst","","input.*")*/
/*AUTOINOUTMODULE("inst","","output.*")*/
wire lower_out = lower_ina;
endmodule
verilog-mode-20161124.fd230e6/tests/autoinoutmodule_regexp.v 0000664 0000000 0000000 00000000203 13022141775 0023552 0 ustar 00root root 0000000 0000000 module autoinoutmodule (/*AUTOARG*/);
/*AUTOINOUTMODULE("inst","\(ina\|out\)")*/
wire lower_out = lower_ina;
endmodule
verilog-mode-20161124.fd230e6/tests/autoinoutmodule_v2k.v 0000664 0000000 0000000 00000000170 13022141775 0022765 0 ustar 00root root 0000000 0000000 module autoinoutmodule (
/*AUTOINOUTMODULE("inst")*/
);
wire lower_out = lower_ina | lower_inb;
endmodule
verilog-mode-20161124.fd230e6/tests/autoinoutparam.v 0000664 0000000 0000000 00000000170 13022141775 0022016 0 ustar 00root root 0000000 0000000 module autoinoutparam (/*AUTOARG*/);
/*AUTOINOUTPARAM("inst","param1")*/
/*AUTOINOUTPARAM("inst")*/
endmodule
verilog-mode-20161124.fd230e6/tests/autoinput_array_bug294.v 0000664 0000000 0000000 00000000673 13022141775 0023300 0 ustar 00root root 0000000 0000000 module mod1(input logic [1:0] reg1[4],
input logic reg2[5][6],
input logic [1:0] [3:0] [2:0] reg4);
endmodule
module mod2(output logic [1:0] reg1[4],
output logic [1:0] [3:0] [2:0] reg4);
endmodule
module dut (
/*AUTOINPUT*/
/*AUTOOUTPUT*/
);
/*AUTOWIRE*/
mod1 foo_i(/*AUTOINST*/);
/* drv_i AUTO_TEMPLATE (.reg1(reg1[]), );*/
mod2 drv_i(/*AUTOINST*/);
endmodule
verilog-mode-20161124.fd230e6/tests/autoinput_asharma.v 0000664 0000000 0000000 00000001206 13022141775 0022473 0 ustar 00root root 0000000 0000000 module io1_sub(
/*AUTOARG*/
// Outputs
lower_out,
// Inputs
lower_ina
);
/*AUTOINPUT*/
// Beginning of automatic inputs (from unused autoinst inputs)
input lower_ina; // To inst of inst.v
// End of automatics
/*AUTOOUTPUT*/
// Beginning of automatic outputs (from unused autoinst outputs)
output lower_out; // From inst of inst.v
// End of automatics
/* inst AUTO_TEMPLATE (
.lower_inb (1'b1),
)*/
inst inst (/*AUTOINST*/
// Outputs
.lower_out (lower_out),
// Inputs
.lower_inb (1'b1), // Templated
.lower_ina (lower_ina));
endmodule
verilog-mode-20161124.fd230e6/tests/autoinput_asharma_v2k.v 0000664 0000000 0000000 00000000237 13022141775 0023260 0 ustar 00root root 0000000 0000000 module io1_sub(
/*AUTOINPUT*/
/*AUTOOUTPUT*/
);
/* inst AUTO_TEMPLATE (
.lower_inb (1'b1),
)*/
inst inst (/*AUTOINST*/);
endmodule
verilog-mode-20161124.fd230e6/tests/autoinput_concat_ignore.v 0000664 0000000 0000000 00000001473 13022141775 0023677 0 ustar 00root root 0000000 0000000 module xyz (/*AUTOARG*/);
/*AUTOINPUT*/
/*AUTOOUTPUT*/
/*AUTOWIRE*/
/* abc AUTO_TEMPLATE
(
// Outputs
.signal_c (signal_c),
// Inputs
.signal_a ({1'b0, signal_f}),
.signal_b (signal_b[2:0]));
*/
abc u_abc
(/*AUTOINST*/);
/* def AUTO_TEMPLATE
(// Outputs
.signal_f (signal_f),
// Inputs
.signal_d ({1'b1, signal_c}),
.signal_e ({2'b11, signal_e}));
*/
def u_def
(/*AUTOINST*/);
endmodule // xyz
module abc (/*AUTOARG*/);
input [1:0] signal_a;
input [2:0] signal_b;
output signal_c;
endmodule // abc
module def (/*AUTOARG*/);
input [1:0] signal_d;
input [2:0] signal_e;
output signal_f;
endmodule // def
// Local Variables:
// verilog-auto-ignore-concat: t
// End:
verilog-mode-20161124.fd230e6/tests/autoinput_concat_lau.v 0000664 0000000 0000000 00000000520 13022141775 0023165 0 ustar 00root root 0000000 0000000 module sub1 (/*AUTOARG*/);
input [3:0] bus1;
inout [3:0] busout;
wire busout = bus1;
endmodule
module autoinput_concat_lau
(
/*AUTOINPUT*/
/*AUTOINOUT*/
);
/* sub1 AUTO_TEMPLATE (
.busout ({2'b0,fooout[1:0]}),
.bus1 ({2'b0,~foo[1:0]}),
);
*/
sub1 sub1 (/*AUTOINST*/);
endmodule
verilog-mode-20161124.fd230e6/tests/autoinput_concat_lau2.v 0000664 0000000 0000000 00000001375 13022141775 0023260 0 ustar 00root root 0000000 0000000 module xyz (/*AUTOARG*/);
/*AUTOINPUT*/
/*AUTOOUTPUT*/
/*AUTOWIRE*/
/* abc AUTO_TEMPLATE
(
// Outputs
.signal_c (signal_c),
// Inputs
.signal_a ({1'b0, signal_f}),
.signal_b (signal_b[2:0]));
*/
abc u_abc
(/*AUTOINST*/);
/* def AUTO_TEMPLATE
(// Outputs
.signal_f (signal_f),
// Inputs
.signal_d ({1'b1, signal_c}),
.signal_e ({2'b11, signal_e}));
*/
def u_def
(/*AUTOINST*/);
endmodule // xyz
module abc (/*AUTOARG*/);
input [1:0] signal_a;
input [2:0] signal_b;
output signal_c;
endmodule // abc
module def (/*AUTOARG*/);
input [1:0] signal_d;
input [2:0] signal_e;
output signal_f;
endmodule // def
verilog-mode-20161124.fd230e6/tests/autoinput_none.v 0000664 0000000 0000000 00000001203 13022141775 0022013 0 ustar 00root root 0000000 0000000 // Julian Gorfajn
`default_nettype none
module top
(
/*AUTOOUTPUT*/
// Beginning of automatic outputs (from unused autoinst outputs)
output wire o, // From sub of Sub.v
// End of automatics
// Beginning of automatic outputs (from unused autoinst outputs)
/*AUTOINPUT*/
// Beginning of automatic inputs (from unused autoinst inputs)
input wire i // To sub of Sub.v
// End of automatics
);
Sub sub (/*AUTOINST*/
// Outputs
.o (o),
// Inputs
.i (i));
endmodule
module Sub (input i, output o);
endmodule
// Local Variables:
// verilog-auto-declare-nettype: "wire"
// End:
verilog-mode-20161124.fd230e6/tests/autoinput_paren.v 0000664 0000000 0000000 00000000266 13022141775 0022171 0 ustar 00root root 0000000 0000000 module foo (/*AUTOARG*/) ;
/*AUTOINPUT("ab\(c\|d\)")*/
bar i_bar(/*AUTOINST*/);
endmodule // foo
module bar (/*AUTOARG*/) ;
input abc,abd,bca;
output aaa;
endmodule // bar
verilog-mode-20161124.fd230e6/tests/autoinsertlast_1.v 0000664 0000000 0000000 00000000347 13022141775 0022255 0 ustar 00root root 0000000 0000000 module ExampInsertLisp;
/*AUTOINSERTLAST(my-verilog-insert-hello "world")*/
endmodule
/*
Local Variables:
eval:
(defun my-verilog-insert-hello (who)
(insert (concat "initial $write(\"hello " who "\");\n")))
End:
*/
verilog-mode-20161124.fd230e6/tests/autoinst_2k_fredriksen.v 0000664 0000000 0000000 00000000441 13022141775 0023425 0 ustar 00root root 0000000 0000000 module top ();
sub sub(/*AUTOINST*/
// Outputs
.b (b[PARAM2:0]),
// Inputs
.a (a[PARAM1:0]));
endmodule // top
module sub
#(parameter PARAM1=2,
PARAM2=3,
PARAM3=6)
( input wire [PARAM1:0] a,
output reg [PARAM2:0] b
);
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_ams_vorwerk.v 0000664 0000000 0000000 00000001021 13022141775 0023227 0 ustar 00root root 0000000 0000000 module autoinst_ams_vorwerk;
latch latch (/*AUTOINST*/);
endmodule
module latch (/*AUTOARG*/);
`ifdef __VAMS_ENABLE__
output (* integer groundSensitivity="gnd "; integer supplySensitivity="vdd "; *) q;
`else
output q;
`endif
`ifdef __VAMS_ENABLE__
input (* integer groundSensitivity="gnd "; integer supplySensitivity="vdd "; *) en;
`else
input en;
`endif
`ifdef __VAMS_ENABLE__
input (* integer groundSensitivity="gnd "; integer supplySensitivity="vdd "; *) d;
`else
input d;
`endif
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_array.v 0000664 0000000 0000000 00000000753 13022141775 0022021 0 ustar 00root root 0000000 0000000 // bug637
module submod_a
(
//Inputs
input wire signed [15:0] serial_in,
//Outputs
output wire signed [15:0] parallel_out [0:7]
);
endmodule
module submod_b
(
//Inputs
input wire signed [15:0] parallel_out [0:7],
//Outputs
output wire signed [15:0] final_out [0:7]
);
endmodule
module top
(
/*AUTOINPUT*/
/*AUTOOUTPUT*/
);
/*AUTOLOGIC*/
submod_a a_inst
(/*AUTOINST*/);
submod_b b_inst
(/*AUTOINST*/);
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_array_braket.v 0000664 0000000 0000000 00000001427 13022141775 0023350 0 ustar 00root root 0000000 0000000 module sub(output logic [1:-1] oned,
output logic [1:-1] [2:-1] twod,
output logic [1:-1] [2:-1] [3:-3] threed);
endmodule
module dut (
);
/*AUTOWIRE*/
/* sub AUTO_TEMPLATE ();
*/
sub sub1 (/*AUTOINST*/);
/* sub AUTO_TEMPLATE (
.oned (b_oned[]),
.twod (b_twod[]),
.threed (b_threed[]));
*/
// NOTE this results in the wrong declaration for b_twod/b_threed
sub subb (/*AUTOINST*/);
/* sub AUTO_TEMPLATE (
.oned (c_oned[]),
.twod (c_twod[x][]),
.threed (c_threed[x][y][]));
*/
sub subc (/*AUTOINST*/);
/* sub AUTO_TEMPLATE (
.oned (d_oned[][]),
.twod (d_twod[][]),
.threed (d_threed[][]));
*/
sub subd (/*AUTOINST*/);
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_atregexp.v 0000664 0000000 0000000 00000000702 13022141775 0022514 0 ustar 00root root 0000000 0000000 module ex;
/* autoinst_paramover_sub AUTO_TEMPLATE "u_\(.*\)" (
.a(inA_@[]),
.b(outA_@[]),
);*/
autoinst_paramover_sub u_foo(/*AUTOINST*/);
autoinst_paramover_sub u_bar(/*AUTOINST*/);
autoinst_paramover_sub u_baz(/*AUTOINST*/);
/* autoinst_paramover_sub AUTO_TEMPLATE (
.a(inN_@[]),
.b(outN_@[]),
);*/
autoinst_paramover_sub u_0_2(/*AUTOINST*/);
autoinst_paramover_sub u_1_3(/*AUTOINST*/);
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_belkind_concat.v 0000664 0000000 0000000 00000000656 13022141775 0023644 0 ustar 00root root 0000000 0000000 module aaa (/*AUTOARG*/);
/*AUTOOUTPUT*/
/*AUTOINPUT*/
/*AUTOWIRE*/
wire u0, u1, z0, z1;
/*
bbb AUTO_TEMPLATE (
.xo0 ({(u0), y0}),
.xo1 ({y1, (u1)}),
.xi0 ({(z0), y2}),
.xi1 ({y3, (z1)}),
);
*/
bbb bbb (/*AUTOINST*/);
endmodule // aaa
module bbb (/*AUTOARG*/);
output [1:0] xo0, xo1;
input [1:0] xi0, xi1;
/*AUTOTIEOFF*/
endmodule // bbb
verilog-mode-20161124.fd230e6/tests/autoinst_bits_lba.v 0000664 0000000 0000000 00000001004 13022141775 0022450 0 ustar 00root root 0000000 0000000 module lba
(/*AUTOnotARG*/
// Outputs
);
/* autoinst_bits_lba_gi AUTO_TEMPLATE (
.WWCmdI (WWCmdI[]));
*/
autoinst_bits_lba_gi gi (/*AUTOINST*/
// Outputs
.WWCmdI (WWCmdI[8:0]), // Templated
.WWADI (WWADI[31:0]),
// Inouts
.WWADB (WWADB[31:0]),
.WWCmdB (WWCmdB[8:0]),
// Inputs
.CLK (CLK),
.WWADoe (WWADoe),
.WWCoe (WWCoe),
.WWCmdIfOE (WWCmdIfOE[8:0]),
.WWADHold (WWADHold),
.iWWADO (iWWADO[31:0]));
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_bits_lba_gi.v 0000664 0000000 0000000 00000006321 13022141775 0023136 0 ustar 00root root 0000000 0000000 module autoinst_bits_lba_gi
// ==xxxxxxx==
// xxxxxxxxx 1997-1998, xxxxx xxx.
// xxx xxxxxx xxxxxxxx
// ****************************************************************** /
// ****************************************************************** /
// xxxxx, xxxxxxxxxxxx
// xxxxxxx: xxx-4080
// xxxxxx: xxx xxxxxxx
// xxxxx: xxxxxxx 16, 1998
// ******************************************************************* /
// ******************************************************************* /
// xxxx xxxx: xxx_xx.x
// xxxxxxxx xxxxxxx:
// $xxx: xxx_xx.x,x $
// xxxxxxxx 1.3 1998/03/06 00:27:00 xxx
// -- xxxxx xxxxxxx xx xx.xxxx xxx xxxxxxxx xxxxxxx.
// -- xxxx xxxxxxxxxxxxx xx xx xxxxxxxxxxx xx xx.x xxx xx.x xx xxxxxxx xxx xxxxxxxxxxx.
// -- xxxx xxxxx xxx xxxxxxxxxxxxx xxx1'x (xxxxxxx xx xxxxx) xx xx.x xxx xxxx xxxxxx
// xxxxxxxxxx.
// -- xxxxx xxxxxxxxxx xxxxxxxx xx xxx xx xxxxxxxxxxx xxx xxxx xxxxxx xxxxxxxxxxxx xxxx.
// -- xx xxx xxxxxxxxx xxx xxxxxx xx xx xx xxx xxxxx xxxxx xx xxxx xxxxxxxx xx xxxx.
// -- xx xx xxxx xxxxxxx xxx xxx xxxx xxxxxx xxxxxx (xxx xxx xxxx) xxx xxx xxxx/xxxx
// xxxxxxxxxx xxxx xxxxxxx.
//
// xxxxxxxx 1.2 1998/03/04 18:58:55 xxx
// xxxxx xxxxxxxxx xxx-xx xxxxxxx xxxxxxx xx xxxx xxxxx.
//
// xxxxxxxx 1.1 1998/02/23 19:31:52 xxx
// xxxxx xxxxx xxxxxx xxx xxxx xxxxx xxxxx xxxxxxxxxx.
//
// ---------------------------------------------------------------
//
// xxxxxxx xxx xxxxxxxxx xxx xxxxx xxx xxxxxxx xxx
//
// xxxx xxxxxx xxxxx xxx xxxxx xxxxxx xxxxxxx/xxxx xxx xxxx
// xx.x xxx xx xx xxxxxxxxx xxxx xxxx.x xxxxxx xx
// xxxx xxx xxxxxxx xx xxx. xx xxxx xxxxates the
// bidir Foo Bus into a chip input for use by li.v
//
// This module also isolates for input to lbsm.v, and drives
// (if so indicated by lbsm.v) the bidir Fooileo Cmd bus.
//
//
(
CLK,
WWADoe,
WWCoe,
WWCmdIfOE,
WWADHold,
iWWADO,
WWCmdI,
WWADI,
WWADB,
WWCmdB
);
/////////////////////////////////////////////////////////////////////
// inputs
input CLK; // LBA clk
// inputs from lbsm.v
input WWADoe; // FooBus Addr/Data OE
input WWCoe; // FooBus Cmd OE
input [8:0] WWCmdIfOE; // FooBus Cmd if enabled
input WWADHold; // FooBus Addr hold
// inputs from li.v
input [31:0] iWWADO; // FooBus Address/Data out next cycle
/////////////////////////////////////////////////////////////////////
// outputs
// outputs to lbsm.v
output [8:0] WWCmdI; // FooBus Command in
// outputs to li.v
output [31:0] WWADI; // FooBus Address/Data in
/////////////////////////////////////////////////////////////////////
// bidirs
// bidirs to/from off-chip
inout [31:0] WWADB; // bidir FooBus addr/data
inout [8:0] WWCmdB; // bidir FooBus command
/////////////////////////////////////////////////////////////////////
// reg's for outputs (some flops, some not)
/////////////////////////////////////////////////////////////////////
// other flops
reg [31:0] WWADIfOE; // FooBus Addr/Data Out if enabled
endmodule
// Local Variables:
// eval:(if (fboundp `verilog-enable-indentation) (verilog-enable-indentation))
// End:
verilog-mode-20161124.fd230e6/tests/autoinst_brucet.v 0000664 0000000 0000000 00000001031 13022141775 0022155 0 ustar 00root root 0000000 0000000 module io1_sub(/*AUTOARG*/
// Outputs
x, y, z,
// Inputs
a, b
);
input a;
input b;
output x;
output y;
output z;
andcell c0 (
.c (x),
/*AUTOINST*/
// Inputs
.a (a),
.b (b));
orcell c0 (
.c (y),
/*AUTOINST*/
// Inputs
.a (a),
.b (b));
nandcell c0 (
.c (z),
/*AUTOINST*/
// Inputs
.a (a),
.b (b));
endmodule
// Local Variables:
// verilog-library-files:("autoinst_brucet_library.v")
// End:
verilog-mode-20161124.fd230e6/tests/autoinst_brucet_library.v 0000664 0000000 0000000 00000000657 13022141775 0023716 0 ustar 00root root 0000000 0000000 module andcell (/*AUTOARG*/
// Outputs
c,
// Inputs
a, b
);
input a;
input b;
output c;
wire c = a&b;
endmodule
module nandcell (/*AUTOARG*/
// Outputs
c,
// Inputs
a, b
);
input a;
input b;
output c;
wire c = !(a&b);
endmodule
module orcell (/*AUTOARG*/
// Outputs
c,
// Inputs
a, b
);
input a;
input b;
output c;
wire c = a|b;
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_bug373.v 0000664 0000000 0000000 00000002467 13022141775 0021721 0 ustar 00root root 0000000 0000000 typedef struct packed {
logic [7:0] data;
logic wr_ena;
} mystruct_s;
module submod
(input logic a_port,
input logic [4:0] b_bus,
input mystruct_s single_struct_is_fine,
input mystruct_s [2:0] array_of_struct_is_not,
output logic status);
/*AUTOTIEOFF*/
// Beginning of automatic tieoffs (for this module's unterminated outputs)
wire status = 1'h0;
// End of automatics
endmodule // submod
module top;
/*AUTOLOGIC*/
// Beginning of automatic wires (for undeclared instantiated-module outputs)
logic status; // From submod0 of submod.v
// End of automatics
/*AUTOREGINPUT*/
// Beginning of automatic reg inputs (for undeclared instantiated-module inputs)
logic a_port; // To submod0 of submod.v
mystruct_s [2:0] array_of_struct_is_not; // To submod0 of submod.v
logic [4:0] b_bus; // To submod0 of submod.v
mystruct_s single_struct_is_fine; // To submod0 of submod.v
// End of automatics
submod submod0
(/*AUTOINST*/
// Outputs
.status (status),
// Inputs
.a_port (a_port),
.b_bus (b_bus[4:0]),
.single_struct_is_fine (single_struct_is_fine),
.array_of_struct_is_not (array_of_struct_is_not[2:0]));
endmodule // top
// Local Variables:
// verilog-typedef-regexp: "_s$"
// End:
verilog-mode-20161124.fd230e6/tests/autoinst_case_chakradhara.v 0000664 0000000 0000000 00000000461 13022141775 0024123 0 ustar 00root root 0000000 0000000 module foo();
/*bar AUTO_TEMPLATE (
.pme\(.*\)_o (pme\1[]),
.PME\(.*\)_o (pMe\1[]),
.pme\(.*\)_o (pme\1[]),
);
*/
bar bar
(/*AUTOINST*/);
endmodule
module bar
(/*AUTOARG*/);
input PME_o;
input pme_o;
input pmE_o;
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_casefold_hou.v 0000664 0000000 0000000 00000001426 13022141775 0023334 0 ustar 00root root 0000000 0000000 typedef struct packed {
logic a,b,c;
} tTest;
module test
(
input clk,rst
);
wire [7:0] data_tm;
/*AUTOWIRE*/
// Beginning of automatic wires (for undeclared instantiated-module outputs)
tTest q; // From foo of foo.v
// End of automatics
/* foo AUTO_TEMPLATE (
.tm (data_tm),
);
*/
foo foo (/*AUTOINST*/
// Outputs
.q (q),
// Inputs
.clk (clk),
.rst (rst),
.tm (data_tm)); // Templated
/*AUTO_LISP(setq verilog-typedef-regexp "^t[A-Z]")*/
endmodule
module foo
(
input clk,
input rst,
input [7:0] tm,
output tTest q
);
endmodule
// Local Variables:
// verilog-case-fold:nil
// verilog-library-directories:(".")
// verilog-typedef-regexp:"^t[A-Z]"
// End:
verilog-mode-20161124.fd230e6/tests/autoinst_cavanaugh_pull.v 0000664 0000000 0000000 00000003155 13022141775 0023673 0 ustar 00root root 0000000 0000000
module fifo(/*AUTOARG*/);
input clk;
input rst_n;
output fifo_full_w;
input enqueue_w;
input [(DATA_WIDTH-1):0] data_in_w;
output data_valid_r;
input dequeue_w;
input [1:0] full_threshold;
output [(DATA_WIDTH-1):0] rdata_r;
endmodule
module req (p_clk, carb_rst_rnp, req_rp, len_rxp, deq_req, deq_len, deq_val);
input p_clk;
input carb_rst_rnp;
input [4:0] len_rxp;
input req_rp;
input deq_req;
output [4:0] deq_len;
output deq_val;
reg [5:0] fifo_entry1_rp;
reg [5:0] fifo_entry2_rp;
reg [4:0] deq_len;
reg deq_val;
endmodule
module pull( /*AUTOARG*/);
input clk;
input rst_rnpha;
input [4:0] lenar_rxp;
input rem_rpd;
input d_rews;
output [4:0] d_len;
output d_val;
/* req AUTO_TEMPLATE "\(g[a-z0-9]+\|g.*[0-9]\)" (
.p_clk (my_clk_@),
.len_rxp (carb_rst_rnp_@),
.carb_rst_rnp (pull_req1));
*/
req test432_gbe5(/*AUTOINST*/);
req gbe9_vreos(/*AUTOINST*/);
/* fifo AUTO_TEMPLATE "gbe[0-9]+_\([^\_]+\)" (
.clk (@_clk),
.\(.*data.*\) (@_\1),
.\(.*\)\(full\)\(.*\) (\1@\3),
.\(en\|de\)\(.\).+ (@_\1\2));
*/
fifo #(5) gbe2_pull_req (/*AUTOINST*/);
fifo #(5)
gbe1_pull_req_fifo( /*AUTOINST*/);
endmodule // pull_arb
verilog-mode-20161124.fd230e6/tests/autoinst_ciu.v 0000664 0000000 0000000 00000000372 13022141775 0021460 0 ustar 00root root 0000000 0000000 module testmux
(
input wire [2:0] a
);
endmodule
module top_test();
/* testmux AUTO_TEMPLATE "\(.*\)$" (
.a (@_a_value[]),
);
*/
testmux foo1_1
(/*AUTOINST*/);
testmux foo1_2
(/*AUTOINST*/);
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_clog2_bug522.v 0000664 0000000 0000000 00000000672 13022141775 0022777 0 ustar 00root root 0000000 0000000 // This file ONLY is placed into the Public Domain, for any use,
// without warranty, 2012 by brad Dobbie.
module mod;
submod #
(.VEC_W(8),
.IDX_W($clog2(VEC_W)))
submod
(/*AUTOINST*/);
endmodule
module submod (/*AUTOARG*/);
parameter VEC_W = 32;
parameter IDX_W = $clog2(VEC_W);
input [VEC_W-1:0] vec;
output [IDX_W-1:0] idx;
endmodule
// Local Variables:
// verilog-auto-inst-param-value:t
// End:
verilog-mode-20161124.fd230e6/tests/autoinst_cmtcell_msg270.v 0000664 0000000 0000000 00000000324 13022141775 0023417 0 ustar 00root root 0000000 0000000 module ex;
subwidth u_a2 // commented
(/*AUTOINST*/
// Outputs
.bus4a (bus4a[0:3]));
endmodule
module subwidth (/*AUTOARG*/
// Outputs
bus4a
);
output [0:3] bus4a;
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_cmtinst_bug383.v 0000664 0000000 0000000 00000001415 13022141775 0023453 0 ustar 00root root 0000000 0000000 module t;
/*fifo_s AUTO_TEMPLATE (
.ignored_signal (1'b1),
.out_signal (NC),
.out_bus (out_bus[]),
);
*/
fifo_s data_fifo (
//fifo_s data_fifo (
// Inputs
.clk (fifo_clk),
/*AUTOINST*/);
/*fifo_s AUTO_TEMPLATE (
.ignored_signal (1'b1),
.out_signal (NC),
.out_bus (out_bus[]),
);
*/
//fifo_s data_fifo (
fifo_s data_fifo (
// Inputs
.clk (fifo_clk),
/*AUTOINST*/);
endmodule
module fifo_s;
input ignored_signal;
input reset;
output [31:0] out_bus;
output out_signal;
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_cmtparen_tennant.sv 0000664 0000000 0000000 00000007731 13022141775 0024431 0 ustar 00root root 0000000 0000000 typedef node logic;
module top
#(parameter COLS = 4
)
( input logic clk,
input logic rstb,
input logic [COLS-1:0] ival,
input logic [COLS-1:0][1:0] idata_some_extra_sig_length,
input logic [COLS-1:0][7:0] isig1,
input logic [COLS-1:0][6:0] isig2,
input logic [COLS-1:0][5:0] isig3,
/*AUTOINPUT*/
// Beginning of automatic inputs (from unused autoinst inputs)
input idata_some_extra_sig_lengt,// To isub1 of sub1.v, ...
input isig, // To isub1 of sub1.v, ...
// End of automatics
output logic [COLS-1:0] oval,
output logic [COLS-1:0][1:0] odata,
output logic [COLS-1:0] s3_oval,
output logic [COLS-1:0][1:0] s3_odata,
/*AUTOOUTPUT*/
// Beginning of automatic outputs (from unused autoinst outputs)
output s1_odat, // From isub1 of sub1.v
output s3_odat // From isub3 of sub3.v
// End of automatics
);
logic [COLS-1:0][1:0] s1_odata; // From isub1 of sub1.v
logic [COLS-1:0] s1_oval; // From isub1 of sub1.v
/*AUTOWIRE*/
/* sub2 AUTO_TEMPLATE(
.idata_some_extra_sig_length ( s1_odata),
.ival ( s1_oval),
);*/
sub2 isub2 (/*AUTOINST*/
// Outputs
.oval (oval[COLS-1:0]),
.odata (odata/*[COLS-1:0][1:0]*/),
// Inputs
.clk (clk),
.rstb (rstb),
.ival ( s1_oval), // Templated
.idata_some_extra_sig_length( s1_odata)); // Templated
genvar column;
/* sub1 AUTO_TEMPLATE(
.i.* ( @"vl-name"[column] @"(if (or(>(length vl-mbits)0) (>(length vl-bits)0)) (concat \\"/\\* \\" vl-mbits vl-bits \\" *\\/\\") )"),
.o.* ( s1_@"vl-name"[column] @"(if (or(>(length vl-mbits)0) (>(length vl-bits)0)) (concat \\"/\\* \\" vl-mbits vl-bits \\" *\\/\\") )"),
);*/
/* sub3 AUTO_TEMPLATE(
.i.* ( @"vl-name"[column] @"(if (or(>(length vl-mbits)0) (>(length vl-bits)0)) (concat \\"/\\* \\" vl-mbits vl-bits \\" *\\/\\") )"),
.o.* ( s3_@"vl-name"[column] @"(if (or(>(length vl-mbits)0) (>(length vl-bits)0)) (concat \\"/\\* \\" vl-mbits vl-bits \\" *\\/\\") )"),
);*/
generate for(column=0;column<4;column++) begin : COLUMN
sub1 isub1(/*AUTOINST*/
// Outputs
.oval ( s1_oval[column] ), // Templated
.odata ( s1_odata[column] /* [1:0] */), // Templated
// Inputs
.clk (clk),
.rstb (rstb),
.ival ( ival[column] ), // Templated
.idata_some_extra_sig_length( idata_some_extra_sig_length[column] /* [1:0] */), // Templated
.isig1 ( isig1[column] /* [7:0] */), // Templated
.isig2 ( isig2[column] /* [6:0] */), // Templated
.isig3 ( isig3[column] /* [5:0] */)); // Templated
sub3 isub3(/*AUTOINST*/
// Outputs
.oval ( s3_oval[column] ), // Templated
.odata ( s3_odata[column] /* [1:0] */), // Templated
// Inputs
.clk (clk),
.rstb (rstb),
.ival ( ival[column] ), // Templated
.idata_some_extra_sig_length( idata_some_extra_sig_length[column] /* [1:0] */)); // Templated
end endgenerate
endmodule // top
module sub1
( input logic clk,
input logic rstb,
input logic ival,
input logic [1:0] idata_some_extra_sig_length,
input logic [7:0] isig1,
input logic [6:0] isig2,
input logic [5:0] isig3,
output logic oval,
output logic [1:0] odata
);
endmodule // sub
module sub3
( input logic clk,
input logic rstb,
input logic ival,
input logic [1:0] idata_some_extra_sig_length,
output logic oval,
output logic [1:0] odata
);
endmodule // sub
module sub2
#(parameter COLS = 4
)
( input logic clk,
input logic rstb,
input logic [COLS-1:0] ival,
input logic [COLS-1:0][1:0] idata_some_extra_sig_length,
output logic [COLS-1:0] oval,
output logic [COLS-1:0] [1:0] odata
);
endmodule // sub
// Local Variables:
// verilog-typedef-regexp:"\\(^t_\\)\\|\\(^node$\\)\\|\\(_s$\\)\\|\\(_t$\\)"
// verilog-library-directories:("." )
// verilog-library-extensions:(".v" ".sv" ".h" ".vr" ".vm")
// End:
verilog-mode-20161124.fd230e6/tests/autoinst_crawford_array.v 0000664 0000000 0000000 00000004073 13022141775 0023707 0 ustar 00root root 0000000 0000000 `define AUTO_NBR_A_INST 2
module autoinst_crawford_array(/*AUTOARG*/
// Outputs
a_valid, a_data,
// Inputs
a_ready, clk, rst_n
);
// a interface
output [`AUTO_NBR_A_INST*1-1:0] a_valid;
output [`AUTO_NBR_A_INST*8-1:0] a_data;
input [`AUTO_NBR_A_INST*1-1:0] a_ready;
// clock interface
input clk;
input rst_n;
/*AUTOWIRE*/
// Beginning of automatic wires (for undeclared instantiated-module outputs)
// End of automatics
// non-arrayed example
autoinst_crawford_array_a auto_a_0
(/*AUTOINST*/
// Outputs
.a_valid (a_valid),
.a_data (a_data[7:0]),
// Inputs
.a_ready (a_ready),
.clk (clk),
.rst_n (rst_n));
autoinst_crawford_array_a auto_a_1
(/*AUTOINST*/
// Outputs
.a_valid (a_valid),
.a_data (a_data[7:0]),
// Inputs
.a_ready (a_ready),
.clk (clk),
.rst_n (rst_n));
// Arrayed instances
// AUTOINST does not work for this one :-(
// Note it is tricky because I want clk and rst_n to fanout to both instances,
// but I want the valid signals to be discreatly tied to each submodule.
//autoinst_crawford_array_a ary [`AUTO_NBR_A_INST-1:0]
// (/*XXXAUTOINST*/
// // Outputs
// .a_valid (a_valid[1:0]),
// .a_data (a_data[15:0]),
// // Inputs
// .a_ready (a_ready[1:0]),
// .clk (clk),
// .rst_n (rst_n));
autoinst_crawford_array_a ary [`AUTO_NBR_A_INST-1:0]
(/*AUTOINST*/
// Outputs
.a_valid (a_valid),
.a_data (a_data[7:0]),
// Inputs
.a_ready (a_ready),
.clk (clk),
.rst_n (rst_n));
autoinst_crawford_array_a #(.a(a),b) par [`AUTO_NBR_A_INST-1:0]
(/*AUTOINST*/
// Outputs
.a_valid (a_valid),
.a_data (a_data[7:0]),
// Inputs
.a_ready (a_ready),
.clk (clk),
.rst_n (rst_n));
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_crawford_array_a.v 0000664 0000000 0000000 00000001446 13022141775 0024210 0 ustar 00root root 0000000 0000000 `define auto_trq #1 // clock to q delay
`define auto_tcq #1 // reset to q delay
module autoinst_crawford_array_a(/*AUTOARG*/
// Outputs
a_valid, a_data,
// Inputs
a_ready, clk, rst_n
);
// a interface
output a_valid;
output [7:0] a_data;
input a_ready;
// clock interface
input clk;
input rst_n;
/*AUTOREG*/
// Beginning of automatic regs (for this module's undeclared outputs)
reg [7:0] a_data;
reg a_valid;
// End of automatics
always @(posedge clk or negedge rst_n) begin
if(~rst_n) begin
a_valid <= `auto_trq 0;
a_data <= `auto_trq 0;
end
else begin
if(a_ready) begin
a_valid <= `auto_tcq 1;
a_data <= `auto_tcq 8'hcc;
end
end
end
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_dedefine.v 0000664 0000000 0000000 00000000626 13022141775 0022445 0 ustar 00root root 0000000 0000000 `define foo 6
`define bar 0
module autoinst_dedefine;
/*AUTOOUTPUT*/
/*AUTOWIRE*/
/* bar AUTO_TEMPLATE (
.\(.*\) (@"(concat vl-name (verilog-symbol-detick-text vl-bits))"),
); */
bar sub
(/*AUTOINST*/);
endmodule
module bar;
output onewide;
output [3:1] fourwide;
output [`foo-1:`bar] varwide;
endmodule
// Local Variables:
// verilog-auto-read-includes:t
// End:
verilog-mode-20161124.fd230e6/tests/autoinst_ding.v 0000664 0000000 0000000 00000001600 13022141775 0021614 0 ustar 00root root 0000000 0000000 module AA(
/*AUTOINPUT*/
/*AUTOOUTPUT*/
input wire clock,
input wire reset,
input wire test_enable,
input wire afe_ctrl,
input wire cpu_wr,
input wire [4:0] cpu_addr,
input wire [7:0] cpu_wdata,
output wire [7:0] core_data,
output wire core_code_error,
output wire core_code_idle,
output wire [7:0] cpu_rdata
);
endmodule
module BB(
/*AUTOINPUT*/
/*AUTOOUTPUT*/
input wire clock,
input wire reset,
input wire test_enable,
input wire core_code_idle,
input wire core_code_error,
input wire [7:0] core_data,
input wire [8:0] mbist_done,
input wire [8:0] mbist_fail,
output wire mbist_rst,
output reg mbist_test
);
endmodule
module TOP(
/*AUTOINPUT*/
/*AUTOOUTPUT*/
);
AA AA_U(/*AUTOINST*/);
BB BB_U(/*AUTOINST*/);
// Local Variables:
// verilog-library-directories:(".")
// End:
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_for_myers.v 0000664 0000000 0000000 00000003107 13022141775 0022704 0 ustar 00root root 0000000 0000000 module InstMod ( ins, outs );
output [INWIDTH-1:0] ins;
output [OUTWIDTH-1:0] outs;
endmodule
module test_top;
/*AUTOWIRE*/
// Beginning of automatic wires (for undeclared instantiated-module outputs)
wire [n*INWIDTH +: INWIDTH] ins; // From instName of InstMod.v
wire [n*INWIDTH +: INWIDTH] ins2; // From instName2 of InstMod.v
wire [n*INWIDTH +: INWIDTH] ins3; // From instName3 of InstMod.v, ..., Couldn't Merge
wire [n*OUTWIDTH +: OUTWIDTH] outs; // From instName of InstMod.v
wire [n*OUTWIDTH +: OUTWIDTH] outs2; // From instName2 of InstMod.v
wire [4*OUTWIDTH-1 : 0] outs3; // From instName3 of InstMod.v, ..., Couldn't Merge
// End of automatics
genvar i;
generate
for (i=0; i<4; i=i+1) begin
/*AUTO_LISP(setq vh-n 4)*/
/* InstMod AUTO_TEMPLATE
(.ins (ins [n*INWIDTH +: INWIDTH]),
.outs (outs[n*OUTWIDTH +: OUTWIDTH])); */
InstMod instName (/*AUTOINST*/
// Outputs
.ins (ins [n*INWIDTH +: INWIDTH]), // Templated
.outs (outs[n*OUTWIDTH +: OUTWIDTH])); // Templated
InstMod instName2
(// Inputs
.ins (ins2 [n*INWIDTH +: INWIDTH]),
// Outputs
.outs (outs2[n*OUTWIDTH +: OUTWIDTH])
/*AUTOINST*/);
// This works but is ugly
InstMod instName3
(// Inputs
.ins (ins3 [n*INWIDTH +: INWIDTH]),
// Outputs
.outs (outs3[n*OUTWIDTH +: OUTWIDTH])
`ifdef NEVER
// Inouts
.ins (ins3 [4*INWIDTH-1 : 0]),
.outs (outs3[4*OUTWIDTH-1 : 0])
`endif
/*AUTOINST*/);
end
endgenerate
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_func.v 0000664 0000000 0000000 00000004134 13022141775 0021633 0 ustar 00root root 0000000 0000000 module autoinst_func;
/*AUTO_LISP(defun testfunc (sig bits) (let ((result "{"))
(setq result (concat result sig "[0" bits "]"))
(concat result "}")))*/
/* autoinst_wildcard_sub AUTO_TEMPLATE (
.sd0_adrs@ (myport@"(substring \\"\1\\" 0 1)"),
.\(.*\) (@"(testfunc vl-name vl-bits)"),
); */
autoinst_wildcard_sub sub0
(/*AUTOINST*/
// Inouts
.sd0_adrs0 (myport0), // Templated LHS: ^sd0_adrs\([0-9]+\)$
.sd0_adrs1 (myport1), // Templated LHS: ^sd0_adrs\([0-9]+\)$
.sd0_adrs10 (myport1), // Templated LHS: ^sd0_adrs\([0-9]+\)$
.sd0_adrs11 (myport1), // Templated LHS: ^sd0_adrs\([0-9]+\)$
.sd0_adrs2 (myport2), // Templated LHS: ^sd0_adrs\([0-9]+\)$
.sd0_adrs3 (myport3), // Templated LHS: ^sd0_adrs\([0-9]+\)$
.sd0_adrs4 (myport4), // Templated LHS: ^sd0_adrs\([0-9]+\)$
.sd0_adrs5 (myport5), // Templated LHS: ^sd0_adrs\([0-9]+\)$
.sd0_adrs6 (myport6), // Templated LHS: ^sd0_adrs\([0-9]+\)$
.sd0_adrs7 (myport7), // Templated LHS: ^sd0_adrs\([0-9]+\)$
.sd0_adrs8 (myport8), // Templated LHS: ^sd0_adrs\([0-9]+\)$
.sd0_adrs9 (myport9), // Templated LHS: ^sd0_adrs\([0-9]+\)$
.sd0_ba0 ({sd0_ba0[0]}), // Templated LHS: ^\(.*\)$
.sd0_ba1 ({sd0_ba1[0]}), // Templated LHS: ^\(.*\)$
.sd0_clk ({sd0_clk[0]}), // Templated LHS: ^\(.*\)$
.sd0_dqm0_l ({sd0_dqm0_l[0]}), // Templated LHS: ^\(.*\)$
.sd0_dqm1_l ({sd0_dqm1_l[0]}), // Templated LHS: ^\(.*\)$
.sd0_dqm2_l ({sd0_dqm2_l[0]}), // Templated LHS: ^\(.*\)$
.sd0_dqm3_l ({sd0_dqm3_l[0]}), // Templated LHS: ^\(.*\)$
.sd0_dqm4_l ({sd0_dqm4_l[0]}), // Templated LHS: ^\(.*\)$
.sd0_dqm5_l ({sd0_dqm5_l[0]}), // Templated LHS: ^\(.*\)$
.sd0_dqm6_l ({sd0_dqm6_l[0]}), // Templated LHS: ^\(.*\)$
.sd0_dqm7_l ({sd0_dqm7_l[0]}), // Templated LHS: ^\(.*\)$
.sd_ras_ ({sd_ras_[0]})); // Templated LHS: ^\(.*\)$
endmodule
// Local Variables:
// verilog-auto-inst-template-numbers: lhs
// verilog-auto-inst-sort: t
// End:
verilog-mode-20161124.fd230e6/tests/autoinst_gate.v 0000664 0000000 0000000 00000001012 13022141775 0021610 0 ustar 00root root 0000000 0000000 //bug284
module wrapper
(
/*AUTOOUTPUT*/
/*AUTOINPUT*/
);
//--------------------------------------------------------------------------
// Note input/output comments aren't needed, and multiple signals
// per line are ok
or u_or [31:0]
(o[31:0], i0[31:0], i1[31:0], i2[31:0],
// Inputs,
i3[31:0]
/*AUTOINST*/);
// bug676
buf # 1 mybuf[1:0]
(bout[1:0],
// Inputs,
bin[1:0]
/*AUTOINST*/);
//--------------------------------------------------------------------------
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_genvar.v 0000664 0000000 0000000 00000000731 13022141775 0022161 0 ustar 00root root 0000000 0000000 module AA(
input wire clock,
input wire reset,
input wire test_enable,
input wire afe_ctrl,
input wire cpu_wr,
input wire [4:0] cpu_addr,
input wire [7:0] cpu_wdata,
output wire [7:0] core_data,
output wire core_code_error,
output wire core_code_idle,
output wire [7:0] cpu_rdata
);
endmodule
module TOP(
/*AUTOINPUT*/
/*AUTOOUTPUT*/
);
genvar x;
AA AA_U(
// Inputs
.test_enable (x),
/*AUTOINST*/);
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_iface270_sub.v 0000664 0000000 0000000 00000000356 13022141775 0023053 0 ustar 00root root 0000000 0000000 // See http://www.veripool.org/issues/show/270
interface autoinst_iface270_sub;
logic a;
logic b;
modport master_mp(input a, output b);
modport slave_mp(output a, input b);
modport monitor (input a, input b);
endinterface
verilog-mode-20161124.fd230e6/tests/autoinst_iface270_top.v 0000664 0000000 0000000 00000000340 13022141775 0023055 0 ustar 00root root 0000000 0000000 // See http://www.veripool.org/issues/show/270
module top;
/*AUTOWIRE*/
autoinst_iface270_sub inst_if (/*AUTOINST*/);
ifio sub (/*AUTOINST*/);
endmodule
module ifio
(autoinst_iface270_sub inst_if);
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_iface270_top_bug429.v 0000664 0000000 0000000 00000000450 13022141775 0024153 0 ustar 00root root 0000000 0000000 // See http://www.veripool.org/issues/show/429
module top;
/*AUTOWIRE*/
autoinst_iface270_sub inst_if (/*AUTOINST*/);
ifio sub (/*AUTOINST*/);
endmodule
module ifio
(autoinst_iface270_sub inst_if);
endmodule
// Local Variables:
// verilog-auto-inst-interfaced-ports: nil
// End:
verilog-mode-20161124.fd230e6/tests/autoinst_ifdef_fredrickson_200503_sub.v 0000664 0000000 0000000 00000000350 13022141775 0026024 0 ustar 00root root 0000000 0000000 module autoinst_ifdef_fredrickson_200503_sub
(input a,
`ifdef TEST
input c,
output wire d,
`endif
output wire b
);
assign b = a;
`ifdef TEST
assign d = c;
`endif
endmodule // define_sub
verilog-mode-20161124.fd230e6/tests/autoinst_ifdef_fredrickson_200503_top.v 0000664 0000000 0000000 00000000360 13022141775 0026036 0 ustar 00root root 0000000 0000000 module autoinst_ifdef_fredrickson_200503_top();
autoinst_ifdef_fredrickson_200503_sub sub
(/*AUTOINST*/
// Outputs
.d (d),
.b (b),
// Inputs
.a (a),
.c (c));
endmodule // define_top
verilog-mode-20161124.fd230e6/tests/autoinst_import.v 0000664 0000000 0000000 00000000736 13022141775 0022216 0 ustar 00root root 0000000 0000000 //bug709
module InstModule
(input clk,
svi.master svi_modport,
svi svi_nomodport);
endmodule // InstModule
module InstModule1 import mdp_pkg::*;
(input clk,
svi.master svi_modport,
svi svi_nomodport);
endmodule
module top;
InstModule instName
(/*AUTOINST*/);
InstModule1 instName1
(/*AUTOINST*/);
endmodule
// Local Variables:
// verilog-library-directories:(".")
// verilog-library-extensions:(".v" ".sv")
// End:
verilog-mode-20161124.fd230e6/tests/autoinst_instname_all.v 0000664 0000000 0000000 00000000612 13022141775 0023343 0 ustar 00root root 0000000 0000000 module ex;
/* autoinst_paramover_sub AUTO_TEMPLATE (
.\(.*\)(@"vl-cell-name"_\1),
);*/
autoinst_paramover_sub u_a0(/*AUTOINST*/
// Inouts
.a (u_a0_a), // Templated
.b (u_a0_b)); // Templated
autoinst_paramover_sub u_a1(/*AUTOINST*/
// Inouts
.a (u_a1_a), // Templated
.b (u_a1_b)); // Templated
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_instname_carlh.v 0000664 0000000 0000000 00000000716 13022141775 0023671 0 ustar 00root root 0000000 0000000 module ex;
/* autoinst_paramover_sub AUTO_TEMPLATE (
.a(@"vl-cell-name"_in[]),
.b(@"(substring inst 2)"_out[]),
);*/
autoinst_paramover_sub u_a0(/*AUTOINST*/
// Inouts
.a (u_a0_in[bitsa:0]), // Templated
.b (a0_out[bitsb:0])); // Templated
autoinst_paramover_sub u_a1(/*AUTOINST*/
// Inouts
.a (u_a1_in[bitsa:0]), // Templated
.b (a1_out[bitsb:0])); // Templated
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_interface.v 0000664 0000000 0000000 00000002415 13022141775 0022640 0 ustar 00root root 0000000 0000000 // See bug75
module autoinst_interface
(/*AUTOINOUTMODULE("autoinst_interface_sub")*/
// Beginning of automatic in/out/inouts (from specific module)
logic [7:0] count,
logic clk,
logic reset,
logic start,
my_svi.master my_svi_port,
my_svi my_svi_noport,
my_svi my_svi_noport_upper_decl
// End of automatics
);
endmodule
module autoinst_interface
(/*AUTOINOUTCOMP("autoinst_interface_sub")*/
// Beginning of automatic in/out/inouts (from specific module)
logic clk,
logic reset,
logic start,
logic [7:0] count,
my_svi.master my_svi_port,
my_svi my_svi_noport,
my_svi my_svi_noport_upper_decl
// End of automatics
);
endmodule
module top;
/*AUTOLOGIC*/
// Beginning of automatic wires (for undeclared instantiated-module outputs)
logic [7:0] count; // From submod0 of autoinst_interface_sub.v
// End of automatics
my_svi my_svi_noport_upper_decl ();
autoinst_interface_sub submod0 (/*AUTOINST*/
// Interfaces
.my_svi_port (my_svi_port.master),
.my_svi_noport (my_svi_noport),
.my_svi_noport_upper_decl(my_svi_noport_upper_decl),
// Outputs
.count (count[7:0]),
// Inputs
.clk (clk),
.reset (reset),
.start (start));
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_interface_bug320.v 0000664 0000000 0000000 00000000323 13022141775 0023716 0 ustar 00root root 0000000 0000000 // See bug320
interface intf1;
logic a;
logic b;
modport mp1 (input a, output b);
endinterface
interface intf2 (intf1.mp1 c);
logic e;
endinterface
module top;
intf1 c(.*);
intf2 f(.*);
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_interface_star.v 0000664 0000000 0000000 00000002116 13022141775 0023667 0 ustar 00root root 0000000 0000000 // See bug75
module autoinst_interface
(/*AUTOINOUTMODULE("autoinst_interface_sub")*/
// Beginning of automatic in/out/inouts (from specific module)
output [7:0] count,
input clk,
input reset,
input start,
my_svi.master my_svi_port,
my_svi my_svi_noport,
my_svi my_svi_noport_upper_decl
// End of automatics
);
endmodule
module autoinst_interface
(/*AUTOINOUTCOMP("autoinst_interface_sub")*/
// Beginning of automatic in/out/inouts (from specific module)
output clk,
output reset,
output start,
input [7:0] count,
my_svi.master my_svi_port,
my_svi my_svi_noport,
my_svi my_svi_noport_upper_decl
// End of automatics
);
endmodule
module top;
/*AUTOWIRE*/
// Beginning of automatic wires (for undeclared instantiated-module outputs)
wire [7:0] count; // From submod0 of autoinst_interface_sub.v
my_svi my_svi_noport; // To/From submod0 of autoinst_interface_sub.v
my_svi my_svi_noport_upper_decl;// To/From submod0 of autoinst_interface_sub.v
// End of automatics
autoinst_interface_sub submod0 (.*);
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_interface_sub.v 0000664 0000000 0000000 00000000661 13022141775 0023512 0 ustar 00root root 0000000 0000000 interface my_svi;
logic enable;
logic error;
logic [7:0] count2;
modport master (
input enable,
output error,
output count2);
endinterface
module autoinst_interface_sub
(input wire clk,
input wire reset,
input wire start,
output reg [7:0] count,
my_svi.master my_svi_port,
my_svi my_svi_noport,
my_svi my_svi_noport_upper_decl
);
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_johnson.v 0000664 0000000 0000000 00000002775 13022141775 0022367 0 ustar 00root root 0000000 0000000 module bfm (/*AUTOARG*/
// Inputs
name
);
input [8*5:1] name ;
endmodule
module tb;
// -------------------------------------------------------------------------
/*AUTOOUTPUT*/
// Beginning of automatic outputs (from unused autoinst outputs)
// End of automatics
// -------------------------------------------------------------------------
/*AUTOINPUT*/
// Beginning of automatic inputs (from unused autoinst inputs)
// End of automatics
// -------------------------------------------------------------------------
/*AUTOWIRE*/
// Beginning of automatic wires (for undeclared instantiated-module outputs)
// End of automatics
// -------------------------------------------------------------------------
/* AUTO_CONSTANT ( "name0" "name1" "name2" ) */
// -------------------------------------------------------------------------
/* bfm AUTO_TEMPLATE (
// Inputs
.name ("name@"));
*/
// -------------------------------------------------------------------------
bfm bmf0 (/*AUTOINST*/
// Inputs
.name ("name0")); // Templated
// -------------------------------------------------------------------------
bfm bmf1 (/*AUTOINST*/
// Inputs
.name ("name1")); // Templated
// -------------------------------------------------------------------------
bfm bmf2 (/*AUTOINST*/
// Inputs
.name ("name2")); // Templated
// -------------------------------------------------------------------------
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_lopaz.v 0000664 0000000 0000000 00000002241 13022141775 0022022 0 ustar 00root root 0000000 0000000 module io1_sub(
/*AUTOARG*/);
wire [42:0] bscan_data; // boundary scan stitch
parameter bscan_count = 0;
assign bscan_data[0] = bscan_in;
/*
* Emacs template to auto instaniate MD[31:0] pads
*/
/*
autoinst_lopaz_srpad AUTO_TEMPLATE (
.pin(MD[@]),
.pin_in({SDRAM_DQ_in[@],SDRAM_DQ_in[@]}),
.pin_out(SDRAM_DQ_out[@]),
.pin_outen(SDRAM_DQ_outen),
.sdrmode(SDRAM_single_rate),
.hw_enb(SDRAM_upper_word_enb),
.ff_rptr(SDRAM_ddr_inff_sel),
.ff_wptr(ddr_inff_enbH),
.clk(data_strobeH),
.bscan_so(bscan_data[@ + 1]),
.bscan_si(bscan_data[@]),
.bscan_shift(BScanShift),
.bscan_clock(BScanClock),
.bscan_mode(BScanMode),
.bscan_update(BScanUpdate),
.bscan_outen(SDRAM_DQ_bscan_outen),
);
*/
autoinst_lopaz_srpad MD31_pad (/*AUTOINST*/);
/* autoinst_lopaz_srpad AUTO_TEMPLATE (
.pin(MD[@"num"]),
);
*/
/*AUTO_LISP(setq num 1)*/
autoinst_lopaz_srpad MD31_pad11 (/*AUTOINST*/);
/* autoinst_lopaz_srpad AUTO_TEMPLATE (
.pin(MD[@"num"]),
);
*/
/*AUTO_LISP(setq num 2)*/
autoinst_lopaz_srpad MD31_pad11 (/*AUTOINST*/);
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_lopaz_srpad.v 0000664 0000000 0000000 00000000437 13022141775 0023220 0 ustar 00root root 0000000 0000000 module autoinst_lopaz_srpad (/*AUTOARG*/
// Outputs
pin_in,
// Inouts
pin,
// Inputs
clk, pin_out, pin_outen
);
parameter w = 1;
input clk;
inout [w-1:0] pin;
output [2*w-1:0] pin_in;
input [w-1:0] pin_out;
input pin_outen;
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_ma_io_prefix.v 0000664 0000000 0000000 00000005176 13022141775 0023350 0 ustar 00root root 0000000 0000000 // From: "Ma, Zhenqiang"
module test (
// Ports for module A
input i_A_outsidei,
output o_A_outsideo,
// Ports for module B
input i_B_outsidei,
output o_B_outsideo );
/*AUTOWIRE*/
// Beginning of automatic wires (for undeclared instantiated-module outputs)
wire A_internal; // From u0 of moduleA.v
wire B_internal; // From u1 of moduleB.v
// End of automatics
//-----------------------------------------------------------------------------
// instantiate module A
//-----------------------------------------------------------------------------
/* moduleA AUTO_TEMPLATE (
.[iot]_\(.*\) (@"(vl-prefix-i-o \\"\1\\")"\1[]),
); */
moduleA u0(
/*AUTOINST*/
// Outputs
.o_A_outsideo (o_A_outsideo), // Templated
.o_A_internal (A_internal), // Templated
// Inputs
.i_A_outsidei (i_A_outsidei), // Templated
.i_B_internal (B_internal)); // Templated
//-----------------------------------------------------------------------------
// instantiate module B
//-----------------------------------------------------------------------------
/* moduleB AUTO_TEMPLATE (
.[iot]_\(.*\) (@"(vl-prefix-i-o \\"\1\\")"\1[]),
); */
moduleB u1(
/*AUTOINST*/
// Outputs
.o_B_outsideo (o_B_outsideo), // Templated
.o_B_internal (B_internal), // Templated
// Inputs
.i_B_outsidei (i_B_outsidei), // Templated
.i_A_internal (A_internal)); // Templated
endmodule
module moduleA (
input i_A_outsidei,
output o_A_outsideo,
input i_B_internal,
output o_A_internal
);
/*AUTOTIEOFF*/
// Beginning of automatic tieoffs (for this module's unterminated outputs)
wire o_A_internal = 1'h0;
wire o_A_outsideo = 1'h0;
// End of automatics
endmodule
module moduleB (
input i_B_outsidei,
output o_B_outsideo,
input i_A_internal,
output o_B_internal
);
/*AUTOTIEOFF*/
// Beginning of automatic tieoffs (for this module's unterminated outputs)
wire o_B_internal = 1'h0;
wire o_B_outsideo = 1'h0;
// End of automatics
endmodule
/*
Local Variables:
eval:
(defun vl-prefix-i-o (basename)
(cond ((assoc (concat "i_" basename)
(verilog-decls-get-inputs moddecls))
"i_")
((assoc (concat "o_" basename)
(verilog-decls-get-outputs moddecls))
"o_")
((assoc (concat "t_" basename)
(verilog-decls-get-inouts moddecls))
"t_")
(t "")))
End:
*/
verilog-mode-20161124.fd230e6/tests/autoinst_mccoy.v 0000664 0000000 0000000 00000001256 13022141775 0022014 0 ustar 00root root 0000000 0000000 module top
// no-connecting unused outputs of an interface and tying only inputs to gnd.
// Requested:
//
// /* xx AUTO_TEMPLATE (
//.TWI_\(.*\) @"(vl-dir (input)" ({@"vl-width"{1'b0}}),
//.TWI_\(.*\) @"(vl-dir (output)" (),
//);
// */
/* xx AUTO_TEMPLATE (
.TWI_\(.*\) (@"(if (equal vl-dir \\"output\\") \\"\\" (concat vl-width \\"'b0\\"))"),
);
*/
xx XX (/*AUTOINST*/
// Outputs
.TWI_qb (), // Templated
// Inputs
.clk (clk),
.TWI_ia (1'b0), // Templated
.TWI_iw (16'b0)); // Templated
endmodule
module xx
(input clk,
input TWI_ia,
input [15:0] TWI_iw,
output TWI_qb);
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_moddefine.v 0000664 0000000 0000000 00000001260 13022141775 0022627 0 ustar 00root root 0000000 0000000 // This file ONLY is placed into the Public Domain, for any use,
// without warranty, 2008-2008 by Wilson Snyder.
module autoinst_moddefine (/*AUTOARG*/);
/*AUTOWIRE*/
`define SUBMOD_A submod_mod
`define SUBNAME_B subname_b
`SUBMOD_A `SUBNAME_B
(/*AUTOINST*/);
`SUBMOD_UNDEFED subundefed
(/*AUTOINST*/);
submod_decl_from_def subundefed
(/*AUTOINST*/);
endmodule
module submod_mod (/*AUTOARG*/);
input a;
output q;
endmodule
module SUBMOD_UNDEFED (/*AUTOARG*/);
output q;
endmodule
`define SUBMOD_DECL submod_decl_from_def
module `SUBMOD_DECL (/*AUTOARG*/);
output q;
endmodule
// Local Variables:
// verilog-auto-read-includes:t
// End:
verilog-mode-20161124.fd230e6/tests/autoinst_modport_param.v 0000664 0000000 0000000 00000001357 13022141775 0023550 0 ustar 00root root 0000000 0000000 //bug565
module InstModule
(svi.master svi_modport,
input clk,
svi svi_nomodport);
endmodule
module InstModule1 #
(parameter TCQ = 100)
(svi.master svi_modport,
input clk,
svi svi_nomodport);
endmodule
module top;
InstModule instName
(/*AUTOINST*/
// Interfaces
.svi_modport (svi_modport.master),
.svi_nomodport (svi_nomodport),
// Inputs
.clk (clk));
InstModule1 instName1
(/*AUTOINST*/
// Interfaces
.svi_modport (svi_modport.master),
.svi_nomodport (svi_nomodport),
// Inputs
.clk (clk));
endmodule
// Local Variables:
// verilog-library-directories:(".")
// verilog-library-extensions:(".v" ".sv")
// End:
verilog-mode-20161124.fd230e6/tests/autoinst_mplist.sv 0000664 0000000 0000000 00000002620 13022141775 0022371 0 ustar 00root root 0000000 0000000
// Parent module
// Specifies modport for interfaces in header.
// Has child modules which do the same.
module autoinst_mplist
(
// --------------------------------------------------------------------------
// Port Declarations
// --------------------------------------------------------------------------
input clk,
input reset_n,
// Top-level interfaces
mbl_if.master msg_resp_if
);
mbl_if msg_req_if; // Some internal interface
// --------------------------------------------------------------------------
// Packages and Local Declarations
// --------------------------------------------------------------------------
/*AUTOLOGIC*/
// --------------------------------------------------------------------------
// Module Body
// --------------------------------------------------------------------------
// For the module instance below, interface ports should be
// connected (per standard AUTOINST fashion) but *without*
// explicitly specifying the modport.
//
// VCS (and likely other Synopsys tools) don't expect to see a
// modport being "respecified" here.
autoinst_mplist_child child
(/*AUTOINST*/);
endmodule
/*
Local Variables:
verilog-typedef-regexp:"_t$"
verilog-library-directories:(".")
verilog-library-extensions:(".sv")
End:
*/
verilog-mode-20161124.fd230e6/tests/autoinst_mplist_child.sv 0000664 0000000 0000000 00000001526 13022141775 0023540 0 ustar 00root root 0000000 0000000 // Child module
// ... with interface modport specified in module header
module autoinst_mplist_child
(
// --------------------------------------------------------------------------
// Port Declarations
// --------------------------------------------------------------------------
input clk,
input reset_n,
// Yeah, let's have an interface
autoinst_mplist_mbl_if.slave msg_req_if,
autoinst_mplist_mbl_if.master msg_resp_if,
// There are likely other signals present, too
output logic msg_busy,
output logic mem_rd_req,
input mem_rd_gnt
);
// Really snazzy RTL follows...
endmodule
/*
Local Variables:
verilog-typedef-regexp:"_t$"
verilog-library-directories:(".")
verilog-library-extensions:(".sv")
End:
*/
verilog-mode-20161124.fd230e6/tests/autoinst_mplist_mbl_if.sv 0000664 0000000 0000000 00000001151 13022141775 0023677 0 ustar 00root root 0000000 0000000 // Example interface definition with at least one modport.
interface autoinst_mplist_mbl_if ();
logic sof;
logic eof;
logic [31:0] data;
logic ready;
logic valid;
modport master(
output data,
output sof,
output eof,
output valid,
input ready
);
modport slave(
input data,
input sof,
input eof,
input valid,
output ready
);
endinterface
verilog-mode-20161124.fd230e6/tests/autoinst_multidim.v 0000664 0000000 0000000 00000004407 13022141775 0022527 0 ustar 00root root 0000000 0000000 module top;
/*AUTOLOGIC*/
// Beginning of automatic wires (for undeclared instantiated-module outputs)
logic sig1; // From u_x of x.v
logic [A-1:0] sig2; // From u_x of x.v
logic [A-1:0] [B-1:0] sig3; // From u_x of x.v
logic [A-1:0][B-1:0] [C-1:0] sig4; // From u_x of x.v
logic [A-1:0][B-1:0][C-1:0] [D-1:0] sig5; // From u_x of x.v
logic vsig1; // From u_x of x.v
logic vsig2 [W-1:0]; // From u_x of x.v
logic vsig3 [W-1:0][X-1:0]; // From u_x of x.v
logic vsig4 [W-1:0][X-1:0][Y-1:0];// From u_x of x.v
logic vsig5 [W-1:0][X-1:0][Y-1:0][Z-1:0];// From u_x of x.v
logic zsig1; // From u_x of x.v
logic [A-1:0] zsig2 [W-1:0]; // From u_x of x.v
logic [A-1:0] [B-1:0] zsig3 [W-1:0][X-1:0]; // From u_x of x.v
logic [A-1:0][B-1:0] [C-1:0] zsig4 [W-1:0][X-1:0][Y-1:0];// From u_x of x.v
logic [A-1:0][B-1:0][C-1:0] [D-1:0] zsig5 [W-1:0][X-1:0][Y-1:0][Z-1:0];// From u_x of x.v
// End of automatics
x u_x (/*AUTOINST*/
// Outputs
.sig1 (sig1),
.sig2 (sig2[A-1:0]),
.sig3 (sig3/*[A-1:0][B-1:0]*/),
.sig4 (sig4/*[A-1:0][B-1:0][C-1:0]*/),
.sig5 (sig5/*[A-1:0][B-1:0][C-1:0][D-1:0]*/),
.vsig1 (vsig1),
.vsig2 (vsig2/*.[W-1:0]*/),
.vsig3 (vsig3/*.[W-1:0][X-1:0]*/),
.vsig4 (vsig4/*.[W-1:0][X-1:0][Y-1:0]*/),
.vsig5 (vsig5/*.[W-1:0][X-1:0][Y-1:0][Z-1:0]*/),
.zsig1 (zsig1),
.zsig2 (zsig2/*[A-1:0].[W-1:0]*/),
.zsig3 (zsig3/*[A-1:0][B-1:0].[W-1:0][X-1:0]*/),
.zsig4 (zsig4/*[A-1:0][B-1:0][C-1:0].[W-1:0][X-1:0][Y-1:0]*/),
.zsig5 (zsig5/*[A-1:0][B-1:0][C-1:0][D-1:0].[W-1:0][X-1:0][Y-1:0][Z-1:0]*/));
endmodule // top
module x;
output sig1;
output [A-1:0] sig2;
output [A-1:0][B-1:0] sig3;
output [A-1:0][B-1:0][C-1:0] sig4;
output [A-1:0][B-1:0][C-1:0][D-1:0] sig5;
output vsig1;
output vsig2 [W-1:0];
output vsig3 [W-1:0][X-1:0];
output vsig4 [W-1:0][X-1:0][Y-1:0];
output vsig5 [W-1:0][X-1:0][Y-1:0][Z-1:0];
output zsig1;
output [A-1:0] zsig2 [W-1:0];
output [A-1:0][B-1:0] zsig3 [W-1:0][X-1:0];
output [A-1:0][B-1:0][C-1:0] zsig4 [W-1:0][X-1:0][Y-1:0];
output [A-1:0][B-1:0][C-1:0][D-1:0] zsig5 [W-1:0][X-1:0][Y-1:0][Z-1:0];
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_multitemplate.v 0000664 0000000 0000000 00000002077 13022141775 0023572 0 ustar 00root root 0000000 0000000 // This file ONLY is placed into the Public Domain, for any use,
// without warranty, 2011 by Wilson Snyder.
// Reported by Julian Gorfajn
module autoinst_multitemplate ();
/*AUTOINPUT*/
// Beginning of automatic inputs (from unused autoinst inputs)
input Boo1; // To suba1 of SubA.v
input Boo2; // To suba2 of SubB.v
input Boo3; // To suba3 of SubC.v
input b; // To suba2 of SubB.v
input c; // To suba3 of SubC.v
// End of automatics
/*AUTOOUTPUT*/
/*AUTOWIRE*/
wire [3:0] f4_dotnamed;
/*
SubA AUTO_TEMPLATE
SubB AUTO_TEMPLATE
SubC AUTO_TEMPLATE (
.a (Boo@),
);*/
SubA suba1 (/*AUTOINST*/
// Inputs
.a (Boo1)); // Templated
SubB suba2 (/*AUTOINST*/
// Inputs
.a (Boo2), // Templated
.b (b));
SubC suba3 (/*AUTOINST*/
// Inputs
.a (Boo3), // Templated
.c (c));
endmodule
module SubA (input a);
endmodule
module SubB (input a,input b);
endmodule
module SubC (input a,input c );
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_name_bug245.v 0000664 0000000 0000000 00000003727 13022141775 0022717 0 ustar 00root root 0000000 0000000 module autoinst_name_bug245 (
);
/*AUTOINPUT*/
/*AUTOOUTPUT*/
/*AUTOWIRE*/
wire [3:0] f4_dotnamed;
/*Sub AUTO_TEMPLATE (
.dtmp_NO (d_NO),
.etmp_dotnamed (etmp_dotnamed),
);*/
Sub sub (
.bign1_dotnamed,
// Outputs
.bign2_dotnamed,
/*AUTOINST*/);
endmodule
module Sub
(
input logic clk,
output [2:0] a_NO,
output [3:0] f4_dotnamed,
output bign1_dotnamed,
output [1:0] bign2_dotnamed,
output c_dotnamed,
output dtmp_NO,
output etmp_dotnamed,
input \escaped*dot*named
);
endmodule
// Local Variables:
// verilog-auto-inst-dot-name: t
// verilog-auto-inst-vector: nil
// End:
module autoinst_name_bug245 (
);
/*AUTOINPUT*/
/*AUTOOUTPUT*/
/*AUTOWIRE*/
wire [3:0] f4_dotnamed;
/*Sub AUTO_TEMPLATE (
.dtmp_NO (d_NO),
.etmp_dotnamed (etmp_dotnamed),
);*/
Sub sub (
.bign1_dotnamed,
// Outputs
.bign2_dotnamed,
/*AUTOINST*/);
endmodule
module Sub
(
input logic clk,
output [2:0] a_NO,
output [3:0] f4_dotnamed,
output bign1_dotnamed,
output [1:0] bign2_dotnamed,
output c_dotnamed,
output dtmp_NO,
output etmp_dotnamed,
input \escaped*dot*named
);
endmodule
// Local Variables:
// verilog-auto-inst-dot-name: t
// verilog-auto-inst-vector: nil
// End:
module autoinst_name_bug245 (
);
/*AUTOINPUT*/
/*AUTOOUTPUT*/
/*AUTOWIRE*/
wire [3:0] f4_dotnamed;
/*Sub AUTO_TEMPLATE (
.dtmp_NO (d_NO),
.etmp_dotnamed (etmp_dotnamed),
);*/
Sub sub (
.bign1_dotnamed,
// Outputs
.bign2_dotnamed,
/*AUTOINST*/);
endmodule
module Sub
(
input logic clk,
output [2:0] a_NO,
output [3:0] f4_dotnamed,
output bign1_dotnamed,
output [1:0] bign2_dotnamed,
output c_dotnamed,
output dtmp_NO,
output etmp_dotnamed,
input \escaped*dot*named
);
endmodule
// Local Variables:
// verilog-auto-inst-dot-name: t
// verilog-auto-inst-vector: nil
// End:
verilog-mode-20161124.fd230e6/tests/autoinst_nicholl.v 0000664 0000000 0000000 00000002050 13022141775 0022323 0 ustar 00root root 0000000 0000000 module sub1 (/*AUTOARG*/
// Inputs
bus1
);
input [0:3] bus1;
endmodule
module sub2 (/*AUTOARG*/
// Inputs
bus2
);
input [0:3] bus2;
endmodule
module sub3 (/*AUTOARG*/
// Outputs
bus1, bus2
);
output [0:3] bus1;
output [4:7] bus2;
endmodule
module top (/*AUTOARG*/);
wire [4:7] bus2; // From sub3 of sub3.v
/*AUTOINPUT*/
// Beginning of automatic inputs (from unused autoinst inputs)
// End of automatics
/*AUTOOUTPUT*/
// Beginning of automatic outputs (from unused autoinst outputs)
// End of automatics
/*AUTOWIRE*/
// Beginning of automatic wires (for undeclared instantiated-module outputs)
wire [0:3] bus1; // From sub3 of sub3.v
// End of automatics
sub1 sub1 (/*AUTOINST*/
// Inputs
.bus1 (bus1[0:3]));
sub2 sub2 (/*AUTOINST*/
// Inputs
.bus2 (bus2[0:3]));
sub3 sub3 (/*AUTOINST*/
// Outputs
.bus1 (bus1[0:3]),
.bus2 (bus2));
endmodule
// Local Variables:
// verilog-auto-inst-vector:nil
// End:
verilog-mode-20161124.fd230e6/tests/autoinst_overflow_bug250.v 0000664 0000000 0000000 00000101522 13022141775 0023626 0 ustar 00root root 0000000 0000000 module TEST_TOP (
);
/*TEST AUTO_TEMPLATE
(
.abcd_efgh_ijklmno_f02_out_c(abcdefg_f02_clroilouull[5]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_be_2(abcdefg_f10_eg2_ab_cdefghijklm[49]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_fh_2(abcdefg_f08_eg0_ab_a_fghi[6]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_ch(abcdefg_f09_eg1_ab_cdefghijklm[36]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_ej_1(abcdefg_f10_eg2_ab_cdefghijklm[14]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_ga_1(abcdefg_f10_eg2_ab_cdefghijklm[3]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_fe(abcdefg_f09_eg1_ab_cdefghijklm[9]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_bi_2(abcdefg_f08_eg0_ab_cdefghijklm[45]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_24_1(abcdefg_f09_eg1_ab_fghijklm[24]),
.abcd_efgh_ijklmno_f01_oilouull_o_0_1(abcdefg_f01_oilouull[0]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_cc_2(abcdefg_f10_eg2_ab_cdefghijklm[41]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_e_2(abcdefg_f11_eg3_ab_cdefghijklm[59]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_54_1(abcdefg_f11_eg3_ab_fghijklm[54]),
.abcd_efgh_ijklmno_f03_oilouull_o_3_1(abcdefg_f03_oilouull[3]),
.abcd_efgh_ijklmno_f02_out_h_2(abcdefg_f02_a_zxdf[0]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_g_1(abcdefg_f11_eg3_ab_a_fghi[57]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_b_2(abcdefg_f08_eg0_ab_cdefghijklm[62]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_9_1(abcdefg_f11_eg3_ab_fghijklm[9]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_di_1(abcdefg_f09_eg1_ab_a_fghi[25]),
.abcd_efgh_ijklmno_f00_out_h_2(abcdefg_f00_a_zxdf[0]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_cg_2(abcdefg_f11_eg3_ab_cdefghijklm[37]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_eh_2(abcdefg_f10_eg2_ab_a_fghi[16]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_di_1(abcdefg_f08_eg0_ab_cdefghijklm[25]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_ec_2(abcdefg_f11_eg3_ab_cdefghijklm[21]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_d_1(abcdefg_f11_eg3_ab_a_fghi[60]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_bh_1(abcdefg_f11_eg3_ab_a_fghi[46]),
.abcd_efgh_ijklmno_f00_out_f(abcdefg_f00_clroilouull[2]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_52_1(abcdefg_f11_eg3_ab_fghijklm[52]),
.abcd_efgh_ijklmno_f02_out_g(abcdefg_f02_clroilouull[1]),
.abcd_efgh_ijklmno_f07_out_e(abcdefg_f07_clroilouull[3]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_ff_2(abcdefg_f10_eg2_ab_a_fghi[8]),
.abcd_efgh_ijklmno_f04_out_h(abcdefg_f04_clroilouull[0]),
.abcd_efgh_ijklmno_f04_out_g_2(abcdefg_f04_a_zxdf[1]),
.abcd_efgh_ijklmno_f02_out_c_2(abcdefg_f02_a_zxdf[5]),
.abcd_efgh_ijklmno_f04_out_a_3(abcdefg_f04_a_zxdf[7]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_fa_1(abcdefg_f08_eg0_ab_cdefghijklm[13]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_ed_2(abcdefg_f08_eg0_ab_a_fghi[20]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_ea_2(abcdefg_f10_eg2_ab_a_fghi[23]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_c_2(abcdefg_f10_eg2_ab_cdefghijklm[61]),
.abcd_efgh_ijklmno_f03_oilouull_o_0_1(abcdefg_f03_oilouull[0]),
.abcd_efgh_ijklmno_f00_out_e_2(abcdefg_f00_a_zxdf[3]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_bg_3(abcdefg_f10_eg2_ab_a_fghi[47]),
.abcd_efgh_ijklmno_f05_oilouull_o_2_1(abcdefg_f05_oilouull[2]),
.abcd_efgh_ijklmno_f01_out_h_2(abcdefg_f01_a_zxdf[0]),
.abcd_efgh_ijklmno_f10_eg2_ab_fghijklm_o_44_1(abcdefg_f10_eg2_ab_fghijklm[44]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_j_3(abcdefg_f08_eg0_ab_a_fghi[54]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_39_1(abcdefg_f08_eg0_ab_fghijklm[39]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_fj_2(abcdefg_f08_eg0_ab_a_fghi[4]),
.abcd_efgh_ijklmno_f05_out_h(abcdefg_f05_clroilouull[0]),
.abcd_efgh_ijklmno_f05_out_d_2(abcdefg_f05_a_zxdf[4]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_gb_2(abcdefg_f10_eg2_ab_a_fghi[2]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_cb_3(abcdefg_f10_eg2_ab_a_fghi[42]),
.abcd_efgh_ijklmno_f10_eg2_ab_fghijklm_o_52_1(abcdefg_f10_eg2_ab_fghijklm[52]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_be_2(abcdefg_f11_eg3_ab_cdefghijklm[49]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_42_1(abcdefg_f11_eg3_ab_fghijklm[42]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_ci_1(abcdefg_f11_eg3_ab_a_fghi[35]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_fh_1(abcdefg_f10_eg2_ab_cdefghijklm[6]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_24_1(abcdefg_f08_eg0_ab_fghijklm[24]),
.abcd_efgh_ijklmno_f02_out_g_2(abcdefg_f02_a_zxdf[1]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_d_2(abcdefg_f11_eg3_ab_cdefghijklm[60]),
.abcd_efgh_ijklmno_f06_out_d_2(abcdefg_f06_a_zxdf[4]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_ea_1(abcdefg_f09_eg1_ab_a_fghi[23]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_dh_2(abcdefg_f11_eg3_ab_cdefghijklm[26]),
.abcd_efgh_ijklmno_f04_oilouull_o_7_2(abcdefg_f04_oilouull[7]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_dh_1(abcdefg_f09_eg1_ab_a_fghi[26]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_18_1(abcdefg_f08_eg0_ab_fghijklm[18]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_ba_2(abcdefg_f11_eg3_ab_cdefghijklm[53]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_ce_1(abcdefg_f11_eg3_ab_a_fghi[39]),
.abcd_efgh_ijklmno_f03_oilouull_o_5_1(abcdefg_f03_oilouull[5]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_ef_1(abcdefg_f09_eg1_ab_a_fghi[18]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_cj_2(abcdefg_f08_eg0_ab_cdefghijklm[34]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_j_2(abcdefg_f08_eg0_ab_cdefghijklm[54]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_bh_3(abcdefg_f08_eg0_ab_a_fghi[46]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_cb_1(abcdefg_f09_eg1_ab_a_fghi[42]),
.abcd_efgh_ijklmno_f01_oilouull_o_6_2(abcdefg_f01_oilouull[6]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_ba_3(abcdefg_f10_eg2_ab_a_fghi[53]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_0_1(abcdefg_f11_eg3_ab_fghijklm[0]),
.abcd_efgh_ijklmno_f06_out_h_2(abcdefg_f06_a_zxdf[0]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_51_1(abcdefg_f08_eg0_ab_fghijklm[51]),
.abcd_efgh_ijklmno_f06_oilouull_o_4_1(abcdefg_f06_oilouull[4]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_10_1(abcdefg_f08_eg0_ab_fghijklm[10]),
.abcd_efgh_ijklmno_f01_oilouull_o_7_2(abcdefg_f01_oilouull[7]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_da_2(abcdefg_f11_eg3_ab_cdefghijklm[33]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_e_1(abcdefg_f09_eg1_ab_a_fghi[59]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_22_1(abcdefg_f08_eg0_ab_fghijklm[22]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_db_2(abcdefg_f11_eg3_ab_cdefghijklm[32]),
.abcd_efgh_ijklmno_f01_oilouull_o_2_1(abcdefg_f01_oilouull[2]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_ci_3(abcdefg_f08_eg0_ab_a_fghi[35]),
.abcd_efgh_ijklmno_f07_oilouull_o_6_2(abcdefg_f07_oilouull[6]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_62_1(abcdefg_f11_eg3_ab_fghijklm[62]),
.abcd_efgh_ijklmno_f10_eg2_ab_fghijklm_o_34_1(abcdefg_f10_eg2_ab_fghijklm[34]),
.abcd_efgh_ijklmno_f10_eg2_ab_fghijklm_o_9_1(abcdefg_f10_eg2_ab_fghijklm[9]),
.abcd_efgh_ijklmno_f10_eg2_ab_fghijklm_o_13_1(abcdefg_f10_eg2_ab_fghijklm[13]),
.abcd_efgh_ijklmno_f05_oilouull_o_7_2(abcdefg_f05_oilouull[7]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_ch_1(abcdefg_f11_eg3_ab_a_fghi[36]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_fd_1(abcdefg_f10_eg2_ab_cdefghijklm[10]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_fc_2(abcdefg_f10_eg2_ab_a_fghi[11]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_ei_1(abcdefg_f09_eg1_ab_a_fghi[15]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_37_1(abcdefg_f08_eg0_ab_fghijklm[37]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_gb(abcdefg_f09_eg1_ab_cdefghijklm[2]),
.abcd_efgh_ijklmno_f10_eg2_ab_fghijklm_o_7_1(abcdefg_f10_eg2_ab_fghijklm[7]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_dg_2(abcdefg_f11_eg3_ab_cdefghijklm[27]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_ce(abcdefg_f09_eg1_ab_cdefghijklm[39]),
.abcd_efgh_ijklmno_f07_out_d_2(abcdefg_f07_a_zxdf[4]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_cd_2(abcdefg_f08_eg0_ab_cdefghijklm[40]),
.abcd_efgh_ijklmno_f10_eg2_ab_fghijklm_o_57_1(abcdefg_f10_eg2_ab_fghijklm[57]),
.abcd_efgh_ijklmno_f10_eg2_ab_fghijklm_o_63_1(abcdefg_f10_eg2_ab_fghijklm[63]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_j_1(abcdefg_f09_eg1_ab_a_fghi[54]),
.abcd_efgh_ijklmno_f00_out_a(abcdefg_f00_clroilouull[7]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_46_1(abcdefg_f09_eg1_ab_fghijklm[46]),
.abcd_efgh_ijklmno_f10_eg2_ab_fghijklm_o_39_1(abcdefg_f10_eg2_ab_fghijklm[39]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_28_1(abcdefg_f08_eg0_ab_fghijklm[28]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_20_1(abcdefg_f08_eg0_ab_fghijklm[20]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_51_1(abcdefg_f11_eg3_ab_fghijklm[51]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_ci_1(abcdefg_f09_eg1_ab_a_fghi[35]),
.abcd_efgh_ijklmno_f04_out_h_2(abcdefg_f04_a_zxdf[0]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_bd(abcdefg_f09_eg1_ab_cdefghijklm[50]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_dg_1(abcdefg_f10_eg2_ab_cdefghijklm[27]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_23_1(abcdefg_f09_eg1_ab_fghijklm[23]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_1_2(abcdefg_f09_eg1_ab_fghijklm[1]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_bc_2(abcdefg_f08_eg0_ab_cdefghijklm[51]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_bc_3(abcdefg_f10_eg2_ab_a_fghi[51]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_62_1(abcdefg_f08_eg0_ab_fghijklm[62]),
.abcd_efgh_ijklmno_f01_out_g_2(abcdefg_f01_a_zxdf[1]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_23_1(abcdefg_f11_eg3_ab_fghijklm[23]),
.abcd_efgh_ijklmno_f03_out_e_2(abcdefg_f03_a_zxdf[3]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_b_1(abcdefg_f09_eg1_ab_a_fghi[62]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_eh(abcdefg_f09_eg1_ab_cdefghijklm[16]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_dh_1(abcdefg_f10_eg2_ab_cdefghijklm[26]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_34_1(abcdefg_f09_eg1_ab_fghijklm[34]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_gc_1(abcdefg_f10_eg2_ab_cdefghijklm[1]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_cg_2(abcdefg_f08_eg0_ab_cdefghijklm[37]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_13_1(abcdefg_f11_eg3_ab_fghijklm[13]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_2_1(abcdefg_f08_eg0_ab_fghijklm[2]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_fb(abcdefg_f09_eg1_ab_cdefghijklm[12]),
.abcd_efgh_ijklmno_f00_oilouull_o_6_2(abcdefg_f00_oilouull[6]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_h_3(abcdefg_f08_eg0_ab_a_fghi[56]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_38_1(abcdefg_f09_eg1_ab_fghijklm[38]),
.abcd_efgh_ijklmno_f00_out_c(abcdefg_f00_clroilouull[5]),
.abcd_efgh_ijklmno_f06_out_a_3(abcdefg_f06_a_zxdf[7]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_60_1(abcdefg_f09_eg1_ab_fghijklm[60]),
.abcd_efgh_ijklmno_f06_oilouull_o_2_1(abcdefg_f06_oilouull[2]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_8_1(abcdefg_f09_eg1_ab_fghijklm[8]),
.abcd_efgh_ijklmno_f03_out_f(abcdefg_f03_clroilouull[2]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_dj_1(abcdefg_f08_eg0_ab_cdefghijklm[24]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_bg_2(abcdefg_f08_eg0_ab_cdefghijklm[47]),
.abcd_efgh_ijklmno_f01_oilouull_o_4_1(abcdefg_f01_oilouull[4]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_ef_2(abcdefg_f10_eg2_ab_a_fghi[18]),
.abcd_efgh_ijklmno_f01_out_a_3(abcdefg_f01_a_zxdf[7]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_12_1(abcdefg_f08_eg0_ab_fghijklm[12]),
.abcd_efgh_ijklmno_f07_out_c_2(abcdefg_f07_a_zxdf[5]),
.abcd_efgh_ijklmno_f00_out_e(abcdefg_f00_clroilouull[3]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_ca_1(abcdefg_f09_eg1_ab_a_fghi[43]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_eg_2(abcdefg_f08_eg0_ab_a_fghi[17]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_be_1(abcdefg_f11_eg3_ab_a_fghi[49]),
.abcd_efgh_ijklmno_f06_out_d(abcdefg_f06_clroilouull[4]),
.abcd_efgh_ijklmno_f00_out_g(abcdefg_f00_clroilouull[1]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_b(abcdefg_f09_eg1_ab_cdefghijklm[62]),
.abcd_efgh_ijklmno_f00_out_f_2(abcdefg_f00_a_zxdf[2]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_gc_1(abcdefg_f09_eg1_ab_a_fghi[1]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_ca_1(abcdefg_f11_eg3_ab_a_fghi[43]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_ea(abcdefg_f09_eg1_ab_cdefghijklm[23]),
.abcd_efgh_ijklmno_f10_eg2_ab_fghijklm_o_12_1(abcdefg_f10_eg2_ab_fghijklm[12]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_gd_2(abcdefg_f11_eg3_ab_cdefghijklm[0]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_i_1(abcdefg_f09_eg1_ab_a_fghi[55]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_e_2(abcdefg_f08_eg0_ab_cdefghijklm[59]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_ff(abcdefg_f09_eg1_ab_cdefghijklm[8]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_17_1(abcdefg_f11_eg3_ab_fghijklm[17]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_be_3(abcdefg_f10_eg2_ab_a_fghi[49]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_20_1(abcdefg_f11_eg3_ab_fghijklm[20]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_bc_1(abcdefg_f11_eg3_ab_a_fghi[51]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_43_1(abcdefg_f09_eg1_ab_fghijklm[43]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_54_1(abcdefg_f09_eg1_ab_fghijklm[54]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_be_2(abcdefg_f08_eg0_ab_cdefghijklm[49]),
.abcd_efgh_ijklmno_f10_eg2_ab_fghijklm_o_36_1(abcdefg_f10_eg2_ab_fghijklm[36]),
.abcd_efgh_ijklmno_f05_out_h_2(abcdefg_f05_a_zxdf[0]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_cc(abcdefg_f09_eg1_ab_cdefghijklm[41]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_3_1(abcdefg_f11_eg3_ab_fghijklm[3]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_ff_1(abcdefg_f11_eg3_ab_a_fghi[8]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_19_2(abcdefg_f11_eg3_ab_fghijklm[19]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_bi_1(abcdefg_f11_eg3_ab_a_fghi[45]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_49_1(abcdefg_f08_eg0_ab_fghijklm[49]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_ee_1(abcdefg_f10_eg2_ab_cdefghijklm[19]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_29_1(abcdefg_f08_eg0_ab_fghijklm[29]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_29_1(abcdefg_f09_eg1_ab_fghijklm[29]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_ed(abcdefg_f09_eg1_ab_cdefghijklm[20]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_de(abcdefg_f09_eg1_ab_cdefghijklm[29]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_dg_2(abcdefg_f10_eg2_ab_a_fghi[27]),
.abcd_efgh_ijklmno_f04_oilouull_o_2_1(abcdefg_f04_oilouull[2]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_eb_2(abcdefg_f10_eg2_ab_a_fghi[22]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_ea_2(abcdefg_f11_eg3_ab_cdefghijklm[23]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_fc_1(abcdefg_f10_eg2_ab_cdefghijklm[11]),
.abcd_efgh_ijklmno_f06_out_g(abcdefg_f06_clroilouull[1]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_61_1(abcdefg_f09_eg1_ab_fghijklm[61]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_ee_2(abcdefg_f10_eg2_ab_a_fghi[19]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_47_1(abcdefg_f11_eg3_ab_fghijklm[47]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_36_1(abcdefg_f08_eg0_ab_fghijklm[36]),
.abcd_efgh_ijklmno_f07_oilouull_o_0_1(abcdefg_f07_oilouull[0]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_j_1(abcdefg_f11_eg3_ab_a_fghi[54]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_52_1(abcdefg_f08_eg0_ab_fghijklm[52]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_gd_1(abcdefg_f11_eg3_ab_a_fghi[0]),
.abcd_efgh_ijklmno_f07_out_h_2(abcdefg_f07_a_zxdf[0]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_cg_1(abcdefg_f09_eg1_ab_a_fghi[37]),
.abcd_efgh_ijklmno_f10_eg2_ab_fghijklm_o_8_1(abcdefg_f10_eg2_ab_fghijklm[8]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_fh_1(abcdefg_f11_eg3_ab_a_fghi[6]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_52_1(abcdefg_f09_eg1_ab_fghijklm[52]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_ci_2(abcdefg_f11_eg3_ab_cdefghijklm[35]),
.abcd_efgh_ijklmno_f10_eg2_ab_fghijklm_o_15_1(abcdefg_f10_eg2_ab_fghijklm[15]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_df(abcdefg_f09_eg1_ab_cdefghijklm[28]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_ee(abcdefg_f09_eg1_ab_cdefghijklm[19]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_bd_1(abcdefg_f11_eg3_ab_a_fghi[50]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_fe_1(abcdefg_f11_eg3_ab_a_fghi[9]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_di_2(abcdefg_f08_eg0_ab_a_fghi[25]),
.abcd_efgh_ijklmno_f00_out_d(abcdefg_f00_clroilouull[4]),
.abcd_efgh_ijklmno_f07_oilouull_o_5_1(abcdefg_f07_oilouull[5]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_41_1(abcdefg_f09_eg1_ab_fghijklm[41]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_cf_2(abcdefg_f08_eg0_ab_cdefghijklm[38]),
.abcd_efgh_ijklmno_f05_out_b_3(abcdefg_f05_a_zxdf[6]),
.abcd_efgh_ijklmno_f03_oilouull_o_1_1(abcdefg_f03_oilouull[1]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_dg_1(abcdefg_f09_eg1_ab_a_fghi[27]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_eg(abcdefg_f09_eg1_ab_cdefghijklm[17]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_ce_1(abcdefg_f09_eg1_ab_a_fghi[39]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_fi_2(abcdefg_f11_eg3_ab_cdefghijklm[5]),
.abcd_efgh_ijklmno_f05_out_g(abcdefg_f05_clroilouull[1]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_bj_2(abcdefg_f10_eg2_ab_cdefghijklm[44]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_db(abcdefg_f09_eg1_ab_cdefghijklm[32]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_g_1(abcdefg_f09_eg1_ab_a_fghi[57]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_bf_2(abcdefg_f08_eg0_ab_cdefghijklm[48]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_bh_2(abcdefg_f08_eg0_ab_cdefghijklm[46]),
.abcd_efgh_ijklmno_f10_eg2_ab_fghijklm_o_23_1(abcdefg_f10_eg2_ab_fghijklm[23]),
.abcd_efgh_ijklmno_f10_eg2_ab_fghijklm_o_61_1(abcdefg_f10_eg2_ab_fghijklm[61]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_db_1(abcdefg_f09_eg1_ab_a_fghi[32]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_f(abcdefg_f09_eg1_ab_cdefghijklm[58]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_57_1(abcdefg_f09_eg1_ab_fghijklm[57]),
.abcd_efgh_ijklmno_f01_oilouull_o_1_1(abcdefg_f01_oilouull[1]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_eh_2(abcdefg_f08_eg0_ab_a_fghi[16]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_41_1(abcdefg_f11_eg3_ab_fghijklm[41]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_c_2(abcdefg_f08_eg0_ab_cdefghijklm[61]),
.abcd_efgh_ijklmno_f06_out_e(abcdefg_f06_clroilouull[3]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_ej_1(abcdefg_f11_eg3_ab_a_fghi[14]),
.abcd_efgh_ijklmno_f02_oilouull_o_1_1(abcdefg_f02_oilouull[1]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_bd_2(abcdefg_f11_eg3_ab_cdefghijklm[50]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_6_1(abcdefg_f08_eg0_ab_fghijklm[6]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_ee_1(abcdefg_f09_eg1_ab_a_fghi[19]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_fc_2(abcdefg_f11_eg3_ab_cdefghijklm[11]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_bd_3(abcdefg_f10_eg2_ab_a_fghi[50]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_df_1(abcdefg_f08_eg0_ab_cdefghijklm[28]),
.abcd_efgh_ijklmno_f03_out_a(abcdefg_f03_clroilouull[7]),
.abcd_efgh_ijklmno_f02_oilouull_o_0_1(abcdefg_f02_oilouull[0]),
.abcd_efgh_ijklmno_f00_out_g_2(abcdefg_f00_a_zxdf[1]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_43_1(abcdefg_f08_eg0_ab_fghijklm[43]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_59_1(abcdefg_f08_eg0_ab_fghijklm[59]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_ff_1(abcdefg_f09_eg1_ab_a_fghi[8]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_bh_2(abcdefg_f10_eg2_ab_cdefghijklm[46]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_0_1(abcdefg_f09_eg1_ab_fghijklm[0]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_ec_2(abcdefg_f08_eg0_ab_a_fghi[21]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_33_1(abcdefg_f09_eg1_ab_fghijklm[33]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_fh_1(abcdefg_f09_eg1_ab_a_fghi[6]),
.abcd_efgh_ijklmno_f02_oilouull_o_4_1(abcdefg_f02_oilouull[4]),
.abcd_efgh_ijklmno_f10_eg2_ab_fghijklm_o_31_1(abcdefg_f10_eg2_ab_fghijklm[31]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_fa_1(abcdefg_f10_eg2_ab_cdefghijklm[13]),
.abcd_efgh_ijklmno_f05_out_f(abcdefg_f05_clroilouull[2]),
.abcd_efgh_ijklmno_f04_out_e_2(abcdefg_f04_a_zxdf[3]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_dd_1(abcdefg_f09_eg1_ab_a_fghi[30]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_12_1(abcdefg_f11_eg3_ab_fghijklm[12]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_bf_1(abcdefg_f09_eg1_ab_a_fghi[48]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_23_1(abcdefg_f08_eg0_ab_fghijklm[23]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_dj_2(abcdefg_f08_eg0_ab_a_fghi[24]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_ci_3(abcdefg_f10_eg2_ab_a_fghi[35]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_17_1(abcdefg_f08_eg0_ab_fghijklm[17]),
.abcd_efgh_ijklmno_f02_out_f_2(abcdefg_f02_a_zxdf[2]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_bb_1(abcdefg_f11_eg3_ab_a_fghi[52]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_cc_1(abcdefg_f11_eg3_ab_a_fghi[41]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_f_1(abcdefg_f11_eg3_ab_a_fghi[58]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_fi(abcdefg_f09_eg1_ab_cdefghijklm[5]),
.abcd_efgh_ijklmno_f03_out_h(abcdefg_f03_clroilouull[0]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_e_1(abcdefg_f11_eg3_ab_a_fghi[59]),
.abcd_efgh_ijklmno_f01_out_b_3(abcdefg_f01_a_zxdf[6]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_55_1(abcdefg_f08_eg0_ab_fghijklm[55]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_bj_3(abcdefg_f10_eg2_ab_a_fghi[44]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_d_2(abcdefg_f08_eg0_ab_cdefghijklm[60]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_bi_3(abcdefg_f08_eg0_ab_a_fghi[45]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_fg_1(abcdefg_f09_eg1_ab_a_fghi[7]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_ej_2(abcdefg_f10_eg2_ab_a_fghi[14]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_cb_2(abcdefg_f08_eg0_ab_cdefghijklm[42]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_fi_1(abcdefg_f10_eg2_ab_cdefghijklm[5]),
.abcd_efgh_ijklmno_f01_out_c(abcdefg_f01_clroilouull[5]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_fa_2(abcdefg_f11_eg3_ab_cdefghijklm[13]),
.abcd_efgh_ijklmno_f07_out_b_3(abcdefg_f07_a_zxdf[6]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_2_1(abcdefg_f09_eg1_ab_fghijklm[2]),
.abcd_efgh_ijklmno_f07_oilouull_o_2_1(abcdefg_f07_oilouull[2]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_ed_2(abcdefg_f10_eg2_ab_a_fghi[20]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_32_1(abcdefg_f08_eg0_ab_fghijklm[32]),
.abcd_efgh_ijklmno_f10_eg2_ab_fghijklm_o_29_1(abcdefg_f10_eg2_ab_fghijklm[29]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_ef_1(abcdefg_f11_eg3_ab_a_fghi[18]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_15_1(abcdefg_f09_eg1_ab_fghijklm[15]),
.abcd_efgh_ijklmno_f04_out_c_2(abcdefg_f04_a_zxdf[5]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_cd(abcdefg_f09_eg1_ab_cdefghijklm[40]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_57_1(abcdefg_f08_eg0_ab_fghijklm[57]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_ee_2(abcdefg_f11_eg3_ab_cdefghijklm[19]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_3_1(abcdefg_f09_eg1_ab_fghijklm[3]),
.abcd_efgh_ijklmno_f10_eg2_ab_fghijklm_o_20_1(abcdefg_f10_eg2_ab_fghijklm[20]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_16_1(abcdefg_f08_eg0_ab_fghijklm[16]),
.abcd_efgh_ijklmno_f06_oilouull_o_1_1(abcdefg_f06_oilouull[1]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_cg(abcdefg_f09_eg1_ab_cdefghijklm[37]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_cd_3(abcdefg_f10_eg2_ab_a_fghi[40]),
.abcd_efgh_ijklmno_f10_eg2_ab_fghijklm_o_35_1(abcdefg_f10_eg2_ab_fghijklm[35]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_j_3(abcdefg_f10_eg2_ab_a_fghi[54]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_dc_2(abcdefg_f10_eg2_ab_a_fghi[31]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_34_1(abcdefg_f08_eg0_ab_fghijklm[34]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_bi_2(abcdefg_f10_eg2_ab_cdefghijklm[45]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_48_1(abcdefg_f09_eg1_ab_fghijklm[48]),
.abcd_efgh_ijklmno_f10_eg2_ab_fghijklm_o_1_2(abcdefg_f10_eg2_ab_fghijklm[1]),
.abcd_efgh_ijklmno_f07_out_g(abcdefg_f07_clroilouull[1]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_c_2(abcdefg_f11_eg3_ab_cdefghijklm[61]),
.abcd_efgh_ijklmno_f10_eg2_ab_fghijklm_o_24_1(abcdefg_f10_eg2_ab_fghijklm[24]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_fj_2(abcdefg_f10_eg2_ab_a_fghi[4]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_bi_1(abcdefg_f09_eg1_ab_a_fghi[45]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_eb_2(abcdefg_f11_eg3_ab_cdefghijklm[22]),
.abcd_efgh_ijklmno_f00_oilouull_o_5_1(abcdefg_f00_oilouull[5]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_30_1(abcdefg_f08_eg0_ab_fghijklm[30]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_11_1(abcdefg_f11_eg3_ab_fghijklm[11]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_26_1(abcdefg_f11_eg3_ab_fghijklm[26]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_45_1(abcdefg_f08_eg0_ab_fghijklm[45]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_dj_1(abcdefg_f10_eg2_ab_cdefghijklm[24]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_gd_1(abcdefg_f10_eg2_ab_cdefghijklm[0]),
.abcd_efgh_ijklmno_f05_out_b(abcdefg_f05_clroilouull[6]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_ef_2(abcdefg_f08_eg0_ab_a_fghi[18]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_dg(abcdefg_f09_eg1_ab_cdefghijklm[27]),
.abcd_efgh_ijklmno_f02_oilouull_o_6_2(abcdefg_f02_oilouull[6]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_39_1(abcdefg_f11_eg3_ab_fghijklm[39]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_bh_3(abcdefg_f10_eg2_ab_a_fghi[46]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_fc_1(abcdefg_f08_eg0_ab_cdefghijklm[11]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_fa(abcdefg_f09_eg1_ab_cdefghijklm[13]),
.abcd_efgh_ijklmno_f04_out_b_3(abcdefg_f04_a_zxdf[6]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_21_1(abcdefg_f08_eg0_ab_fghijklm[21]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_bc_3(abcdefg_f08_eg0_ab_a_fghi[51]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_dd_1(abcdefg_f08_eg0_ab_cdefghijklm[30]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_fc_1(abcdefg_f09_eg1_ab_a_fghi[11]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_22_1(abcdefg_f11_eg3_ab_fghijklm[22]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_14_1(abcdefg_f11_eg3_ab_fghijklm[14]),
.abcd_efgh_ijklmno_f02_out_d_2(abcdefg_f02_a_zxdf[4]),
.abcd_efgh_ijklmno_f06_out_h(abcdefg_f06_clroilouull[0]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_37_1(abcdefg_f09_eg1_ab_fghijklm[37]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_eh_1(abcdefg_f09_eg1_ab_a_fghi[16]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_12_1(abcdefg_f09_eg1_ab_fghijklm[12]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_cd_1(abcdefg_f09_eg1_ab_a_fghi[40]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_60_1(abcdefg_f11_eg3_ab_fghijklm[60]),
.abcd_efgh_ijklmno_f03_out_f_2(abcdefg_f03_a_zxdf[2]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_43_1(abcdefg_f11_eg3_ab_fghijklm[43]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_dc_2(abcdefg_f08_eg0_ab_a_fghi[31]),
.abcd_efgh_ijklmno_f07_out_b(abcdefg_f07_clroilouull[6]),
.abcd_efgh_ijklmno_f03_out_b_3(abcdefg_f03_a_zxdf[6]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_ea_1(abcdefg_f10_eg2_ab_cdefghijklm[23]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_eg_1(abcdefg_f08_eg0_ab_cdefghijklm[17]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_fc_2(abcdefg_f08_eg0_ab_a_fghi[11]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_gc_1(abcdefg_f08_eg0_ab_cdefghijklm[1]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_da(abcdefg_f09_eg1_ab_cdefghijklm[33]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_gb_2(abcdefg_f11_eg3_ab_cdefghijklm[2]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_ba_2(abcdefg_f10_eg2_ab_cdefghijklm[53]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_fb_2(abcdefg_f10_eg2_ab_a_fghi[12]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_ee_1(abcdefg_f11_eg3_ab_a_fghi[19]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_32_1(abcdefg_f09_eg1_ab_fghijklm[32]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_gc_2(abcdefg_f11_eg3_ab_cdefghijklm[1]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_ee_1(abcdefg_f08_eg0_ab_cdefghijklm[19]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_36_1(abcdefg_f09_eg1_ab_fghijklm[36]),
.abcd_efgh_ijklmno_f02_out_a(abcdefg_f02_clroilouull[7]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_9_1(abcdefg_f08_eg0_ab_fghijklm[9]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_5_1(abcdefg_f09_eg1_ab_fghijklm[5]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_bh_2(abcdefg_f11_eg3_ab_cdefghijklm[46]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_35_1(abcdefg_f09_eg1_ab_fghijklm[35]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_ca(abcdefg_f09_eg1_ab_cdefghijklm[43]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_47_1(abcdefg_f08_eg0_ab_fghijklm[47]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_gc_1(abcdefg_f11_eg3_ab_a_fghi[1]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_ba_2(abcdefg_f08_eg0_ab_cdefghijklm[53]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_44_1(abcdefg_f11_eg3_ab_fghijklm[44]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_9_1(abcdefg_f09_eg1_ab_fghijklm[9]),
.abcd_efgh_ijklmno_f00_oilouull_o_3_1(abcdefg_f00_oilouull[3]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_fe_2(abcdefg_f11_eg3_ab_cdefghijklm[9]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_ec_1(abcdefg_f09_eg1_ab_a_fghi[21]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_de_2(abcdefg_f10_eg2_ab_a_fghi[29]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_29_1(abcdefg_f11_eg3_ab_fghijklm[29]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_g_3(abcdefg_f08_eg0_ab_a_fghi[57]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_fi_2(abcdefg_f10_eg2_ab_a_fghi[5]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_27_1(abcdefg_f08_eg0_ab_fghijklm[27]),
.abcd_efgh_ijklmno_f11_eg3_ge_out_fc_1(abcdefg_f11_eg3_ab_a_fghi[11]),
.abcd_efgh_ijklmno_f10_eg2_ab_fghijklm_o_42_1(abcdefg_f10_eg2_ab_fghijklm[42]),
.abcd_efgh_ijklmno_f04_oilouull_o_4_1(abcdefg_f04_oilouull[4]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_30_1(abcdefg_f09_eg1_ab_fghijklm[30]),
.abcd_efgh_ijklmno_f01_oilouull_o_3_1(abcdefg_f01_oilouull[3]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_fj_1(abcdefg_f10_eg2_ab_cdefghijklm[4]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_55_1(abcdefg_f11_eg3_ab_fghijklm[55]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_42_1(abcdefg_f08_eg0_ab_fghijklm[42]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_gd(abcdefg_f09_eg1_ab_cdefghijklm[0]),
.abcd_efgh_ijklmno_f09_eg1_ge_out_eg_1(abcdefg_f09_eg1_ab_a_fghi[17]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_8_1(abcdefg_f08_eg0_ab_fghijklm[8]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_50_1(abcdefg_f11_eg3_ab_fghijklm[50]),
.abcd_efgh_ijklmno_f06_out_f_2(abcdefg_f06_a_zxdf[2]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_26_1(abcdefg_f09_eg1_ab_fghijklm[26]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_30_1(abcdefg_f11_eg3_ab_fghijklm[30]),
.abcd_efgh_ijklmno_f10_eg2_ab_fghijklm_o_55_1(abcdefg_f10_eg2_ab_fghijklm[55]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_df_2(abcdefg_f08_eg0_ab_a_fghi[28]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_28_1(abcdefg_f09_eg1_ab_fghijklm[28]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_22_1(abcdefg_f09_eg1_ab_fghijklm[22]),
.abcd_efgh_ijklmno_f09_eg1_ab_fghijklm_o_45_1(abcdefg_f09_eg1_ab_fghijklm[45]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_46_1(abcdefg_f08_eg0_ab_fghijklm[46]),
.abcd_efgh_ijklmno_f01_out_f(abcdefg_f01_clroilouull[2]),
.abcd_efgh_ijklmno_f11_eg3_ab_fghijklm_o_36_1(abcdefg_f11_eg3_ab_fghijklm[36]),
.abcd_efgh_ijklmno_f05_out_f_2(abcdefg_f05_a_zxdf[2]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_ch_2(abcdefg_f08_eg0_ab_cdefghijklm[36]),
.abcd_efgh_ijklmno_f10_eg2_ge_out_cj_3(abcdefg_f10_eg2_ab_a_fghi[34]),
.abcd_efgh_ijklmno_f04_oilouull_o_3_1(abcdefg_f04_oilouull[3]),
.abcd_efgh_ijklmno_f08_eg0_ge_out_cd_3(abcdefg_f08_eg0_ab_a_fghi[40]),
.abcd_efgh_ijklmno_f08_eg0_ab_fghijklm_o_56_1(abcdefg_f08_eg0_ab_fghijklm[56]),
);*/
TEST TEST (/*AUTOINST*/);
endmodule
module TEST (/*AUTOARG*/);
parameter NO = 6456;
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_param_2d.v 0000664 0000000 0000000 00000001477 13022141775 0022374 0 ustar 00root root 0000000 0000000 // bug981
module a(
parameter AUM=80;
parameter BUM=70;
parameter VUM=1;
parameter V2=2;
input my_data_z;
input my_data_v[VUM];
input my_data_vv[VUM][V2];
input [AUM-1:0] my_data_av[VUM];
input [AUM-1:0][BUM-1:0] my_data_ab;
input [AUM-1:0][BUM-1:0] my_data_abv[VUM];
input [XUM-1:0][YUM-1:0] my_data_xyz[ZUM];
input PARAMS0__t params0 [1:0];
input PARAMS1__t params1 [1:0];
);
endmodule
module top (/*AUTOARG*/)
/*AUTOINPUT*/
/*AUTOOUTPUT*/
/*AUTOWIRE*/
/*
a AUTO_TEMPLATE
(
.\(.*\) (TEST@_\1[][]),
);
*/
a #(/*AUTOINSTPARAM*/)
a_0 (/*AUTOINST*/);
a #(/*AUTOINSTPARAM*/)
a_1 (/*AUTOINST*/);
endmodule
// Local Variables:
// verilog-auto-inst-param-value:t
// verilog-typedef-regexp: "_t$"
// End:
verilog-mode-20161124.fd230e6/tests/autoinst_param_cmt.v 0000664 0000000 0000000 00000001010 13022141775 0022631 0 ustar 00root root 0000000 0000000 module InstMod ( ins, outs );
output [INWIDTH-1:0] ins;
endmodule
module test (/*AUTOARG*/) ;
parameter foo=1;
/*
parameter foo=2;
*/
//bug647
/* InstMod AUTO_TEMPLATE
(.ins (a@"vh-foo")); */
InstMod instName (/*AUTOINST*/
// Outputs
.ins (a1)); // Templated
endmodule
// Local Variables:
// verilog-auto-read-includes:t
// End:
verilog-mode-20161124.fd230e6/tests/autoinst_param_type.v 0000664 0000000 0000000 00000003612 13022141775 0023041 0 ustar 00root root 0000000 0000000
//bug1061
//typedef logic [7:0] foo_t;
module ptype
(
/*AUTOINPUT*/
// Beginning of automatic inputs (from unused autoinst inputs)
input foo_t a, // To b0 of ptype_buf.v, ...
// End of automatics
/*AUTOOUTPUT*/
// Beginning of automatic outputs (from unused autoinst outputs)
output foo_t y0, // From b0 of ptype_buf.v
output logic [7:0] y1, // From b1 of ptype_buf.v
output TYPE_T y2 // From b2 of ptype_buf.v
// End of automatics
);
ptype_buf #(.TYPE_T(foo_t)) b0
(// Outputs
.y (y0),
/*AUTOINST*/
// Inputs
.a (a));
ptype_buf #(.TYPE_T(logic [7:0])) b1
(// Outputs
.y (y1),
/*AUTOINST*/
// Inputs
.a (a));
ptype_buf #(.WIDTH(8)) b2
(// Outputs
.y (y2),
/*AUTOINST*/
// Inputs
.a (a));
endmodule
module ptype_buf
#(parameter WIDTH = 1,
parameter type TYPE_T = logic [WIDTH-1:0])
(output TYPE_T y,
input TYPE_T a);
assign y = a;
endmodule
///--------------
// Example in docs
module InstModule (o,i);
parameter WIDTH;
input [WIDTH-1:0] i;
parameter type OUT_t;
output OUT_t o;
endmodule
module ExampInst;
/*AUTOINPUT*/
// Beginning of automatic inputs (from unused autoinst inputs)
input [9:0] i; // To instName of InstModule.v
// End of automatics
/*AUTOOUTPUT*/
// Beginning of automatic outputs (from unused autoinst outputs)
output upper_t o; // From instName of InstModule.v
// End of automatics
InstModule
#(.WIDTH(10),
,.OUT_t(upper_t))
instName
(/*AUTOINST*/
// Outputs
.o (o),
// Inputs
.i (i[9:0]));
endmodule
// Local Variables:
// verilog-typedef-regexp: "_[tT]$"
// verilog-auto-inst-param-value:t
// verilog-auto-inst-param-value-type:t
// End:
verilog-mode-20161124.fd230e6/tests/autoinst_paramover.v 0000664 0000000 0000000 00000001070 13022141775 0022670 0 ustar 00root root 0000000 0000000 module autoinst_paramover (/*AUTOARG*/
// Inouts
a, b
);
//======================================================================
// Inputs/Outputs
//======================================================================
parameter bitsa = 20;
parameter bitsb = 20;
inout [20:0] a; // SDRAM Channel 0 Row Address Strobe
inout [20:0] b; // SDRAM Channel 0 Row Address Strobe
autoinst_paramover_sub #(bitsa,bitsb ) mod
(/*AUTOINST*/
// Inouts
.a (a[bitsa:0]),
.b (b[bitsb:0]));
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_paramover_sub.v 0000664 0000000 0000000 00000000661 13022141775 0023546 0 ustar 00root root 0000000 0000000 module autoinst_paramover_sub (/*AUTOARG*/
// Inouts
a, b
);
//======================================================================
// Inputs/Outputs
//======================================================================
parameter bitsa;
parameter bitsb;
inout [bitsa:0] a; // SDRAM Channel 0 Row Address Strobe
inout [bitsb:0] b; // SDRAM Channel 0 Row Address Strobe
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_paramvalue.v 0000664 0000000 0000000 00000003130 13022141775 0023030 0 ustar 00root root 0000000 0000000 module testmuxpv();
# (parameter WIDTH = 32)
(
input wire [2:0] /* synopsys enum cur_info */ sel,
input wire [WIDTH-1:0] a,
output reg [WIDTH-1:0] out
);
endmodule
module top_test();
/*AUTOWIRE*/
// Beginning of automatic wires (for undeclared instantiated-module outputs)
wire [WIDTH-1:0] out; // From testmuxpv_boo of testmuxpv.v, ..., Couldn't Merge
// End of automatics
//======================================================================
/* testmuxpv AUTO_TEMPLATE (
) */
testmuxpv #(.IGNORE((1)),
.WIDTH( 16 ),
.IGNORE2(2))
testmuxpv_boo
(/*AUTOINST*/
// Outputs
.out (out[15:0]),
// Inputs
.sel (sel[2:0]),
.a (a[15:0]));
//======================================================================
testmuxpv #(.IGNORE((1)),
.WIDTH(WIDTH), // Make sure we don't recurse!
.IGNORE2(2))
testmuxpv_boo
(/*AUTOINST*/
// Outputs
.out (out[WIDTH-1:0]),
// Inputs
.sel (sel[2:0]),
.a (a[WIDTH-1:0]));
//======================================================================
// bug331: vl-width should correct when param values propagating
/* testmuxpv AUTO_TEMPLATE (
.a ({@"vl-width"{1'b0}}),
) */
testmuxpv #(.IGNORE((1)),
.WIDTH(16),
.IGNORE2(2))
testmuxpv_boo
(/*AUTOINST*/
// Outputs
.out (out[15:0]),
// Inputs
.sel (sel[2:0]),
.a ({16{1'b0}})); // Templated
endmodule
// Local Variables:
// verilog-auto-inst-param-value:t
// End:
verilog-mode-20161124.fd230e6/tests/autoinst_podolsky.v 0000664 0000000 0000000 00000000626 13022141775 0022546 0 ustar 00root root 0000000 0000000 module io1_sub(
/*AUTOARG*/);
/* autoinst_lopaz_srpad AUTO_TEMPLATE (
.pin_in(),
// Inputs
.pin_out (),
); */
autoinst_lopaz_srpad i_ctrl
(/*AUTOINST*/
// Outputs
.pin_in (), // Templated
// Inouts
.pin (pin[w-1:0]),
// Inputs
.clk (clk),
.pin_out (), // Templated
.pin_outen (pin_outen));
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_precomment.v 0000664 0000000 0000000 00000001771 13022141775 0023055 0 ustar 00root root 0000000 0000000 module autoinst_precomment (
why,
/*AUTOARG*/
// Inputs
nnnot
);
input why;
input nnnot;
autoinst_wildcard_sub sub0
(
.sd_ras_ (foobar_ras_),
//.sd0_dqm7_l (dontdome),
/*AUTOINST*/
// Inouts
.sd0_dqm7_l (sd0_dqm7_l),
.sd0_dqm6_l (sd0_dqm6_l),
.sd0_dqm5_l (sd0_dqm5_l),
.sd0_dqm4_l (sd0_dqm4_l),
.sd0_dqm3_l (sd0_dqm3_l),
.sd0_dqm2_l (sd0_dqm2_l),
.sd0_dqm1_l (sd0_dqm1_l),
.sd0_dqm0_l (sd0_dqm0_l),
.sd0_ba1 (sd0_ba1),
.sd0_ba0 (sd0_ba0),
.sd0_adrs11 (sd0_adrs11),
.sd0_adrs10 (sd0_adrs10),
.sd0_adrs9 (sd0_adrs9),
.sd0_adrs8 (sd0_adrs8),
.sd0_adrs7 (sd0_adrs7),
.sd0_adrs6 (sd0_adrs6),
.sd0_adrs5 (sd0_adrs5),
.sd0_adrs4 (sd0_adrs4),
.sd0_adrs3 (sd0_adrs3),
.sd0_adrs2 (sd0_adrs2),
.sd0_adrs1 (sd0_adrs1),
.sd0_adrs0 (sd0_adrs0),
.sd0_clk (sd0_clk));
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_rao.v 0000664 0000000 0000000 00000001020 13022141775 0021450 0 ustar 00root root 0000000 0000000 module temp2(/*AUTOARG*/);
/*AUTOWIRE*/
// Beginning of automatic wires (for undeclared instantiated-module outputs)
wire [5:0] out; // From adc_3 of adc.v
// End of automatics
adc adc_3 (
// Outputs
.out (out[5:0]),
// Inputs
.Vi (Vi),
// Inputs
.evalClk (evalClk),
/*AUTOINST*/);
endmodule // temp
module adc(/*AUTOARG*/
// Outputs
out,
// Inputs
Vi, evalClk
);
output [5:0] out;
input Vi;
input evalClk;
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_regexp_match.v 0000664 0000000 0000000 00000000766 13022141775 0023355 0 ustar 00root root 0000000 0000000 module autoinst_wildcard;
/*AUTOINOUT*/
/* autoinst_wildcard_sub AUTO_TEMPLATE (
.sd\([0-9]\)_\(.*\)\([0-9]+\)\(.*\) (@"(uc \\"sd_\2\4[\1][\3]\\")"),
); */
/*AUTOOUTPUT*/
autoinst_wildcard_sub sub0
(/*AUTOINST*/);
/* autoinst_wildcard_sub AUTO_TEMPLATE (
.sd\([0-9]\)_\(.*\)\([0-9]+\)\(.*\) (sd_\2\4[\1][\3]),
); */
/*AUTOOUTPUT*/
autoinst_wildcard_sub sub1
(/*AUTOINST*/);
endmodule
// Local Variables:
// eval:(defun uc (x) (upcase x))
// End:
verilog-mode-20161124.fd230e6/tests/autoinst_rogoff.v 0000664 0000000 0000000 00000002113 13022141775 0022155 0 ustar 00root root 0000000 0000000 module testmux();
# (parameter WIDTH = 32)
(
input wire [2:0] /* synopsys enum cur_info */ sel,
input wire [WIDTH-1:0] a,
output reg [WIDTH-1:0] out
);
endmodule
module top_test();
/*AUTOWIRE*/
/*AUTO_LISP(setq verilog-auto-inst-param-value nil)*/
/* testmux AUTO_TEMPLATE "testmux_\(.*\)" (
.a (@_a_symbolic[]),
.out (@_out_symbolic[]),
);
*/
testmux #(.WIDTH( 16 )) testmux_boo
(/*AUTOINST*/);
testmux testmux_defaultwidth
(/*AUTOINST*/);
//======================================================================
/*AUTO_LISP(setq verilog-auto-inst-param-value t)*/
/* testmux AUTO_TEMPLATE "testmux_\(.*\)" (
.a (@_a_value[]),
.out (@_out_value[]),
);
*/
testmux #(.IGNORE((1)),
.WIDTH( 16 ),
.IGNORE2(2))
testmux_boo
(/*AUTOINST*/);
//======================================================================
testmux #(.IGNORE((1)),
.WIDTH(WIDTH), // Make sure we don't recurse!
.IGNORE2(2))
testmux_boo
(/*AUTOINST*/);
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_rons.v 0000664 0000000 0000000 00000000510 13022141775 0021653 0 ustar 00root root 0000000 0000000 module autoinst_rons;
dwrr dwrr_inst (/*AUTOINST*/);
endmodule
// module declaration
module dwrr (
//Inputs
input [47:0] data_avail,
input [47:0] cell_eof,
//Outputs
output reg [6:0] dwell_count_out,
output reg [47:0] eligible_flag,
output [5:0] dwrr_state );
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_signed.v 0000664 0000000 0000000 00000002661 13022141775 0022154 0 ustar 00root root 0000000 0000000 module autoinst_signed
(/*AUTOARG*/
// Outputs
another_output2, another_output, an_outputpre, an_output2
);
/*AUTOOUTPUTEVERY*/
// Beginning of automatic outputs (every signal)
output [1:0] an_output2; // From u_fubar2 of autoinst_signed_fubar2.v
output signed [1:0] an_outputpre; // From u_fubar of autoinst_signed_fubar.v
output signed [1:0] another_output; // From u_fubar of autoinst_signed_fubar.v
output [1:0] another_output2; // From u_fubar2 of autoinst_signed_fubar2.v
// End of automatics
/*AUTOWIRE*/
// Beginning of automatic wires (for undeclared instantiated-module outputs)
wire [1:0] an_output2; // From u_fubar2 of autoinst_signed_fubar2.v
wire signed [1:0] an_outputpre; // From u_fubar of autoinst_signed_fubar.v
wire signed [1:0] another_output; // From u_fubar of autoinst_signed_fubar.v
wire [1:0] another_output2; // From u_fubar2 of autoinst_signed_fubar2.v
// End of automatics
autoinst_signed_fubar u_fubar
(
// Outputs
.an_output (an_outputpre[1:0]),
.plover (plump),
/*AUTOINST*/
// Outputs
.another_output (another_output[1:0]),
// Inputs
.an_input (an_input[1:0]));
autoinst_signed_fubar2 u_fubar2
(
/*AUTOINST*/
// Outputs
.an_output2 (an_output2[1:0]),
.another_output2 (another_output2[1:0]),
// Inputs
.an_input2 (an_input2[1:0]));
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_signed_fubar.v 0000664 0000000 0000000 00000000516 13022141775 0023330 0 ustar 00root root 0000000 0000000
module autoinst_signed_fubar
(
input signed [1:0] an_input,
output signed [1:0] an_output
output signed [1:0] another_output
);
/*AUTOREG*/
// Beginning of automatic regs (for this module's undeclared outputs)
reg signed [1:0] an_output;
reg signed [1:0] another_output;
// End of automatics
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_signed_fubar2.v 0000664 0000000 0000000 00000000466 13022141775 0023416 0 ustar 00root root 0000000 0000000
module autoinst_signed_fubar2
(
input [1:0] an_input2,
output [1:0] an_output2
output [1:0] another_output2
);
/*AUTOREG*/
// Beginning of automatic regs (for this module's undeclared outputs)
reg [1:0] an_output2;
reg [1:0] another_output2;
// End of automatics
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_star.v 0000664 0000000 0000000 00000001060 13022141775 0021644 0 ustar 00root root 0000000 0000000 module io1_sub (/*AUTOARG*/);
/*AUTOWIRE*/
autoinst_lopaz_srpad MD31_pad
(.*,
.foo (touch_this_not_my_pretty));
/* autoinst_lopaz_srpad AUTO_TEMPLATE (
); */
autoinst_lopaz_srpad MD31_pad
(.*);
/* autoinst_lopaz_srpad AUTO_TEMPLATE (
.pin (templated));
*/
autoinst_lopaz_srpad MD31_pad
(.*);
// And .name with auto inst
autoinst_lopaz_srpad MD31_pad22
(.pin,
.clk,
/*AUTOINST*/);
always @(posedge clk) begin
$display ("This .* shouldn't expand.\n");
end
endmodule
verilog-mode-20161124.fd230e6/tests/autoinst_sv_kulkarni.v 0000664 0000000 0000000 00000003301 13022141775 0023223 0 ustar 00root root 0000000 0000000 `timescale 1ns/100ps
// -----------------------------------------------------------------------------
// One-level up Hierarchical module
// -----------------------------------------------------------------------------
module a_h
// Verilog 2001 style
#(parameter M=5, N=3)
(
// Outputs
output [N-1:0] [M-1:0]a_o1 // From Ia of autoinst_sv_kulkarni_base.v
// End of automatics
// AUTOINPUT*/
);
/*AUTOWIRE*/
autoinst_sv_kulkarni_base
#(/*AUTOINSTPARAM*/)
Ia
(/*AUTOINST*/); // <---- BUG?
endmodule
// -----------------------------------------------------------------------------
// Top-level module or Testbench
// -----------------------------------------------------------------------------
module top;
parameter M=4;
parameter N=2;
wire [N-1:0] a_o1;
logic [N-1:0][M-1:0] a_i1;
logic temp;
/*AUTOWIRE*/
// Workaround to fix multi-dimensional port problem
// a) Set "verilog-auto-inst-vector = nil"
// b) ----> a_h AUTO_TEMPLATE ( .\(.*\) (\1), ); */
a_h #(/*AUTOINSTPARAM*/)
Ua_h
(/*AUTOINST*/); // <---- BUG?
// Stimulus
initial begin
a_i1 = { 4'h0, 4'h2 };
#5;
$display("Loop Init: a_i1 = { %h, %h } a_o1 = %h\n",
a_i1[1], a_i1[0], a_o1);
#5;
for (int i=0; i<1; i++) begin
for (int j=0; j