Skip to content

Verilog: elaborate starting from top-level module#1629

Open
kroening wants to merge 4 commits intomainfrom
verilog-no-dependencies
Open

Verilog: elaborate starting from top-level module#1629
kroening wants to merge 4 commits intomainfrom
verilog-no-dependencies

Conversation

@kroening
Copy link
Collaborator

@kroening kroening commented Feb 5, 2026

IEEE 1800-2017 Sec. 23.10.4 suggests an algorithm that defines an order for elaboration; this order starts with the "top-level modules".

This commit changes the order of the module elaboration to begin with the top-level module. Modules not instantiated will no longer be elaborated.

@kroening kroening force-pushed the verilog-no-dependencies branch 2 times, most recently from ecda797 to bf2d700 Compare February 7, 2026 22:34
This strengthens the typing when accessing the assignments in
verilog_parameter_overridet.
@kroening kroening force-pushed the verilog-no-dependencies branch 2 times, most recently from dc99347 to d03c0cc Compare February 14, 2026 23:39
This changes the type checking for defparam items such that they work
without prior type checking of the module for which the parameter is
defined.
@kroening kroening force-pushed the verilog-no-dependencies branch from d03c0cc to 16af856 Compare February 14, 2026 23:42
This changes the type checking of packages to be done in the order given in
the compilation unit.

IEEE 1800 2017 26.3 Referencing data in packages:  "The compilation of a
package shall precede the compilation of scopes in which the package is
imported."

Hence, there is no need to re-order the elaboration to support use that is
out-of-order.
@kroening kroening force-pushed the verilog-no-dependencies branch 3 times, most recently from 2eb148b to a251e71 Compare February 15, 2026 01:02
IEEE 1800-2017 Sec.  23.10.4 suggests an algorithm that defines an order for
elaboration; this order starts with the "top-level modules".

This commit changes the order of the module elaboration to begin with the
top-level module.  Modules not instantiated will no longer be elaborated.

This enables recursive module definitions.
@kroening kroening force-pushed the verilog-no-dependencies branch from a251e71 to 7e1b36d Compare February 15, 2026 01:03
@kroening kroening marked this pull request as ready for review February 15, 2026 01:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant