Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Disallow implicit nets in (System)Verilog #2174

Merged
merged 1 commit into from Apr 21, 2022
Merged

Conversation

alex-mckenna
Copy link
Contributor

@alex-mckenna alex-mckenna commented Apr 21, 2022

Verilog allows nets to be implicitly defined in a module, assuming
they are of type wire by default. However, for Clash-generated
Verilog it should never be the case that a net is implicitly defined
in a design. We can disallow this by setting the default net type
to none.

According to IEEE 1364-2005:

When the `default_nettype is set to none, all nets shall be
explicitly declared. If a net is not explicitly declared,
an error is generated.

This seems a much more sensible default for Clash.

Still TODO:

  • Write a changelog entry (see changelog/README.md)
  • Check copyright notices are up to date in edited files

Verilog allows nets to be implicitly defined in a module, assuming
they are of type `wire` by default. However, for Clash-generated
Verilog it should never be the case that a net is implicitly defined
in a design. We can disallow this by setting the default net type
to none.

According to IEEE 1364-2005:

    When the `default_nettype is set to none, all nets shall be
    explicitly declared. If a net is not explicitly declared,
    an error is generated.

This seems a much more sensible default for Clash.
Copy link
Member

@martijnbastiaan martijnbastiaan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed, this seems much more sensible.

@alex-mckenna alex-mckenna enabled auto-merge (squash) April 21, 2022 09:30
@alex-mckenna alex-mckenna merged commit 753f583 into master Apr 21, 2022
@alex-mckenna alex-mckenna deleted the no-default-nettype branch April 21, 2022 10:10
martijnbastiaan added a commit that referenced this pull request May 12, 2022
martijnbastiaan added a commit that referenced this pull request May 12, 2022
vmchale pushed a commit that referenced this pull request May 16, 2022
vmchale added a commit that referenced this pull request May 16, 2022
This reverts commit cd15f4f.

allow implicit nets in (System)Verilog again
vmchale pushed a commit that referenced this pull request May 19, 2022
vmchale added a commit that referenced this pull request May 19, 2022
This reverts commit cd15f4f.

allow implicit nets in (System)Verilog again
vmchale pushed a commit that referenced this pull request Jun 1, 2022
vmchale added a commit that referenced this pull request Jun 1, 2022
This reverts commit cd15f4f.

allow implicit nets in (System)Verilog again
vmchale pushed a commit that referenced this pull request Jun 8, 2022
vmchale added a commit that referenced this pull request Jun 8, 2022
This reverts commit cd15f4f.

allow implicit nets in (System)Verilog again
alex-mckenna pushed a commit that referenced this pull request Jun 13, 2022
When declaring input ports / inout ports, the net type still has
to be specified as there are multiple valid net types (it just so
happens that Clash only cares about producing wires). This fixes
an unintended mistake introduced in #2174.
leonschoorl pushed a commit that referenced this pull request Jun 13, 2022
When declaring input ports / inout ports, the net type still has
to be specified as there are multiple valid net types (it just so
happens that Clash only cares about producing wires). This fixes
an unintended mistake introduced in #2174.
vmchale pushed a commit that referenced this pull request Jun 13, 2022
vmchale added a commit that referenced this pull request Jun 13, 2022
This reverts commit cd15f4f.

allow implicit nets in (System)Verilog again
vmchale pushed a commit that referenced this pull request Jun 14, 2022
vmchale added a commit that referenced this pull request Jun 14, 2022
This reverts commit cd15f4f.

allow implicit nets in (System)Verilog again
vmchale pushed a commit that referenced this pull request Jun 23, 2022
vmchale added a commit that referenced this pull request Jun 23, 2022
This reverts commit cd15f4f.

allow implicit nets in (System)Verilog again
vmchale pushed a commit that referenced this pull request Jun 23, 2022
vmchale added a commit that referenced this pull request Jun 23, 2022
This reverts commit cd15f4f.

allow implicit nets in (System)Verilog again
vmchale pushed a commit that referenced this pull request Jun 27, 2022
vmchale added a commit that referenced this pull request Jun 27, 2022
This reverts commit cd15f4f.

allow implicit nets in (System)Verilog again
vmchale pushed a commit that referenced this pull request Jun 30, 2022
vmchale added a commit that referenced this pull request Jun 30, 2022
This reverts commit cd15f4f.

allow implicit nets in (System)Verilog again
vmchale pushed a commit that referenced this pull request Jul 1, 2022
vmchale added a commit that referenced this pull request Jul 1, 2022
This reverts commit cd15f4f.

allow implicit nets in (System)Verilog again
vmchale pushed a commit that referenced this pull request Jul 4, 2022
vmchale added a commit that referenced this pull request Jul 4, 2022
This reverts commit cd15f4f.

allow implicit nets in (System)Verilog again
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants