• 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
            • Vl-dupeinst-alistp
            • Vl-modulelist-dupeinst-check
            • Vl-dupeinst-key-p
            • Vl-maybe-warn-dupeinst
            • Vl-warnings-for-dupeinst-alist
            • Vl-make-dupeinst-alist
            • Vl-module-dupeinst-check
            • Vl-dupeinst-trivial-p
            • Vl-design-dupeinst-check
            • Vl-pp-dupeinst-key
            • Vl-pp-dupeinst-alist
          • Oddexpr-check
          • Remove-toohard
          • Qmarksize-check
          • 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

Dupeinst-check

Check for module instances that are driving wires in identical ways.

This is a trivially simple check for cases like:

mymod m1 (o1, a, b);
mymod m2 (o2, a, b);

That is, instances of the same module with the same inputs but perhaps with different outputs. The duperhs-check is similar but looks for assignments whose right-hand sides are the same.

Sometimes this sort of thing is necessary and expected, e.g., you might have a particular signal that needs to be distributed widely and hence is being given to multiple inverters.

But in other cases this kind of redundancy can be some legacy stuff that you want to identify and eliminate. For instance, it's especially useful to eliminate redundant registers, to improve power usage.

Subtopics

Vl-dupeinst-alistp
(vl-dupeinst-alistp x) recognizes association lists where every key satisfies vl-dupeinst-key-p and each value satisfies vl-modinstlist-p.
Vl-modulelist-dupeinst-check
(vl-modulelist-dupeinst-check x ss) maps vl-module-dupeinst-check across a list.
Vl-dupeinst-key-p
Keys used to determine if module instances have the same inputs.
Vl-maybe-warn-dupeinst
Possibly add warnings about a group of module instances.
Vl-warnings-for-dupeinst-alist
Vl-make-dupeinst-alist
Builds a (slow) vl-dupeinst-alistp for a list of assignments.
Vl-module-dupeinst-check
Vl-dupeinst-trivial-p
Customizable filter for duplicate module instances.
Vl-design-dupeinst-check
Vl-pp-dupeinst-key
Vl-pp-dupeinst-alist