Vl-namedarg
Representation of a single argument in a named argument list.
This is a product type introduced by defprod.
Fields
- name — stringp
- Name of the port being connected to, e.g., foo in
.foo(3)
- expr — vl-maybe-expr
- The actual being connected to this port; may be
nil for blank ports.
- nameonly-p — booleanp
- Indicates that this argument is an implicit named port
connection, i.e., of the form .name. SystemVerilog allows
ports connections such as .foo, .bar, .baz. This syntax
is equivalent to .foo(foo), .bar(bar), .baz(baz), except
that the names of these wires are required to exist in the
instantiating module, i.e., no implicit nets are to be created.
Note: the expr for such a port should just be a simple
idexpr.
- atts — vl-atts
- Any attributes associated with this argument.
See vl-plainarg-p for a general discussion of arguments.
Each vl-namedarg-p represents a single argument in a named argument
list.
Unlike plain arguments, our named arguments do not have a direction field.
Our basic transformation strategy is to quickly eliminate named arguments and
rewrite everything as plain arguments; see the argresolve transform.
Because of this, we don't bother to annotate named arguments with their
directions.
Subtopics
- Vl-namedarg-fix
- Fixing function for vl-namedarg structures.
- Vl-namedarg-p
- Recognizer for vl-namedarg structures.
- Vl-namedarg-equiv
- Basic equivalence relation for vl-namedarg structures.
- Make-vl-namedarg
- Basic constructor macro for vl-namedarg structures.
- Vl-namedarg->nameonly-p
- Get the nameonly-p field from a vl-namedarg.
- Change-vl-namedarg
- Modifying constructor for vl-namedarg structures.
- Vl-namedarg->name
- Get the name field from a vl-namedarg.
- Vl-namedarg->expr
- Get the expr field from a vl-namedarg.
- Vl-namedarg->atts
- Get the atts field from a vl-namedarg.