Vl-gateinst
Representation of a single gate instantiation.
This is a product type introduced by defprod.
Fields
- type — vl-gatetype-p
- What kind of gate this is, e.g., and, xor, rnmos,
etc.
- args — vl-plainarglist
- Arguments to the gate instance. Note that this differs from
module instances where vl-arguments-p structures are used,
because gate arguments are never named. The grammar restricts
how many arguments certain gates can have, but we do not enforce
these restrictions in the definition of vl-gateinst-p.
- loc — vl-location
- Where the gate instance was found in the source code.
- name — maybe-string
- The name of this gate instance, or nil if it has no name;
see also the addnames transform.
- atts — vl-atts
- Any attributes associated with this gate instance.
- range — vl-maybe-range
- When present, indicates that this is an array of instances
instead of a single instance.
- strength — vl-maybe-gatestrength
- The parser leaves this as nil unless it is explicitly provided.
Note from Section 7.8 of the Verilog-2005 standard that pullup
and pulldown gates are special in that the strength0 from a
pullup source and the strength1 on a pulldown source are supposed
to be ignored. Warning: in general we have not paid much
attention to strengths, so we may not handle them correctly in
our various transforms.
- delay — vl-maybe-gatedelay
- The parser leaves this as nil unless it is explicitly provided.
Certain gates (tran, rtran, pullup, and pulldown) never have
delays according to the Verilog grammar, but this is only
enforced by the parser, and is not part of our vl-gateinst-p
definition. Warning: as with strengths, we have not paid
much attention to delays, and our transforms may not handle them
correctly.
vl-gateinst-p is our representation for any single gate
instance (or instance array).
The grammar for gate instantiations is quite elaborate, but the various
cases are so regular that a unified representation is possible. Note that the
Verilog grammar restricts the list of expressions in certain cases, e.g., for
an and gate, the first expression must be an lvalue. Although our parser
enforces these restrictions, we do not encode them into the definition of
vl-gateinst-p.
Subtopics
- Vl-gateinst-p
- Recognizer for vl-gateinst structures.
- Vl-gateinst-fix
- Fixing function for vl-gateinst structures.
- Make-vl-gateinst
- Basic constructor macro for vl-gateinst structures.
- Vl-gateinst-equiv
- Basic equivalence relation for vl-gateinst structures.
- Vl-gateinst->type
- Get the type field from a vl-gateinst.
- Vl-gateinst->strength
- Get the strength field from a vl-gateinst.
- Change-vl-gateinst
- Modifying constructor for vl-gateinst structures.
- Vl-gateinst->range
- Get the range field from a vl-gateinst.
- Vl-gateinst->name
- Get the name field from a vl-gateinst.
- Vl-gateinst->delay
- Get the delay field from a vl-gateinst.
- Vl-gateinst->args
- Get the args field from a vl-gateinst.
- Vl-gateinst->loc
- Get the loc field from a vl-gateinst.
- Vl-gateinst->atts
- Get the atts field from a vl-gateinst.