• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
      • Gl
      • Esim
      • Vl2014
        • Warnings
        • Primitives
        • Use-set
        • Syntax
        • Getting-started
        • Utilities
        • Loader
        • Transforms
        • Lint
          • Vl-lintconfig-p
          • Lucid
          • Skip-detection
          • Vl-lintresult-p
          • Lint-warning-suppression
          • Condcheck
          • Selfassigns
          • Leftright-check
          • Dupeinst-check
          • Oddexpr-check
          • Remove-toohard
          • Qmarksize-check
          • Portcheck
            • Vl-modulelist-portcheck
            • Vl-port-check-style
            • Vl-portlist-check-style
            • Vl-portlist-check-wellformed
            • Vl-module-portcheck
            • Vl-port-check-wellformed
            • Vl-design-portcheck
          • Duplicate-detect
          • Vl-print-certain-warnings
          • Duperhs-check
          • *vl-lint-help*
          • Lint-stmt-rewrite
          • Drop-missing-submodules
          • Check-case
          • Drop-user-submodules
          • Check-namespace
          • Vl-lint
        • Mlib
        • Server
        • Kit
        • Printer
        • Esim-vl
        • Well-formedness
      • Sv
      • Fgl
      • Vwsim
      • Vl
      • X86isa
      • Svl
      • Rtl
    • Software-verification
    • Math
    • Testing-utilities
  • Lint

Portcheck

Trivial check to make sure that each module's ports satisfy basic well-formedness conditions and agree with its port declarations and to issue style warnings for tricky ports.

In this check, we try to identify cases like:

module foo (o, a, b);              |   module bar (o, a, b);
  output o;                        |     output o;
  input a;                         |     input c;    // oops, no such port
  // oops, no declaration for b    |     ...
endmodule                          |   endmodule

This is mostly straightforward. One complication is that ports can have many names internally, for instance:

module baz (o, a, .foo({b, c
, d) ; ... endmodule })

So, in general, we need to gather the names from the port expressions.

Subtopics

Vl-modulelist-portcheck
(vl-modulelist-portcheck x) maps vl-module-portcheck across a list.
Vl-port-check-style
Vl-portlist-check-style
Vl-portlist-check-wellformed
Vl-module-portcheck
Vl-port-check-wellformed
Vl-design-portcheck
Top-level portcheck check.