• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Community
    • Proof-automation
    • ACL2
    • Macro-libraries
    • Interfacing-tools
    • Hardware-verification
      • Gl
      • Esim
      • Vl2014
        • Warnings
        • Primitives
        • Use-set
        • Syntax
        • Getting-started
        • Utilities
        • Loader
          • Preprocessor
          • Vl-loadconfig
          • Lexer
          • Vl-loadstate
          • Parser
            • Parse-expressions
            • Parse-udps
            • Vl-genelements
            • Parse-paramdecls
            • Parse-blockitems
            • Parse-utils
            • Parse-insts
            • Parse-datatype
            • Parse-functions
            • Parse-datatypes
            • Parse-strengths
            • Vl-parse-genvar-declaration
            • Vl-parse
            • Parse-ports
              • Parse-port-types
                • Vl-parsed-portdecl-head
                  • Vl-parsed-portdecl-head-fix
                  • Vl-parsed-portdecl-head-equiv
                  • Make-vl-parsed-portdecl-head
                  • Vl-parsed-portdecl-head->nettype
                  • Vl-parsed-portdecl-head->implicit-p
                  • Vl-parsed-portdecl-head->explicit-p
                  • Vl-parsed-portdecl-head->var-p
                  • Vl-parsed-portdecl-head->type
                  • Change-vl-parsed-portdecl-head
                  • Vl-parsed-portdecl-head-p
                • Vl-parse-port-declaration-head-2012
                • Vl-parse-ansi-port-header
              • Sv-ansi-portdecls
              • Creating-portdecls/vardecls
              • Sv-non-ansi-portdecls
              • Verilog-2005-ports
              • Sv-ansi-port-interpretation
              • Verilog-2005-portdecls
            • Seq
            • Parse-packages
          • Vl-load-merge-descriptions
          • Scope-of-defines
          • Vl-load-file
          • Vl-flush-out-descriptions
          • Vl-description
          • Vl-loadresult
          • Vl-read-file
          • Vl-find-basename/extension
          • Vl-find-file
          • Vl-read-files
          • Extended-characters
          • Vl-load
          • Vl-load-main
          • Vl-load-description
          • Vl-descriptions-left-to-load
          • Inject-warnings
          • Vl-load-descriptions
          • Vl-load-files
          • Vl-load-summary
          • Vl-collect-modules-from-descriptions
          • Vl-descriptionlist
        • Transforms
        • Lint
        • Mlib
        • Server
        • Kit
        • Printer
        • Esim-vl
        • Well-formedness
      • Sv
      • Fgl
      • Vwsim
      • Vl
      • X86isa
      • Svl
      • Rtl
    • Software-verification
    • Math
    • Testing-utilities
  • Parse-port-types

Vl-parsed-portdecl-head

Temporary structure to represent a parsed net_port_type or a var_port_type.

This is a product type introduced by defprod.

Fields
nettype — vl-maybe-nettypename
True exactly when there was an explicit net type.
var-p — booleanp
True exactly when we found a var keyword.
explicit-p — booleanp
True exactly when there was an explicit data_type instead of an implicit_data_type.
implicit-p — booleanp
True in the implicit_data_type case IF there was at least some non-empty implicit_data_type was found, i.e., we found a signedness or ranges. This exclusion might seem weird, but see vl-process-subsequent-ansi-port for the place where it matters.
type — vl-datatype
The datatype we have parsed (in the explicit case) or inferred (in the implicit case). In the implicit case, this may not be the real type we are supposed to use.

There are elaborate, capricious rules for determining the net types, data types, and directions of ports.

To help separate out this complexity from the initial problem of just parsing things like net_port_type and variable_port_type, we write a very dumb parser that just builds intermediate structures to record what it has seen.

Subtopics

Vl-parsed-portdecl-head-fix
Fixing function for vl-parsed-portdecl-head structures.
Vl-parsed-portdecl-head-equiv
Basic equivalence relation for vl-parsed-portdecl-head structures.
Make-vl-parsed-portdecl-head
Basic constructor macro for vl-parsed-portdecl-head structures.
Vl-parsed-portdecl-head->nettype
Get the nettype field from a vl-parsed-portdecl-head.
Vl-parsed-portdecl-head->implicit-p
Get the implicit-p field from a vl-parsed-portdecl-head.
Vl-parsed-portdecl-head->explicit-p
Get the explicit-p field from a vl-parsed-portdecl-head.
Vl-parsed-portdecl-head->var-p
Get the var-p field from a vl-parsed-portdecl-head.
Vl-parsed-portdecl-head->type
Get the type field from a vl-parsed-portdecl-head.
Change-vl-parsed-portdecl-head
Modifying constructor for vl-parsed-portdecl-head structures.
Vl-parsed-portdecl-head-p
Recognizer for vl-parsed-portdecl-head structures.