Vl-dupeinst-key-p
Keys used to determine if module instances have the same inputs.
(vl-dupeinst-key-p x) is a defaggregate of the following fields.
- modname — Name of the submodule being instantiated. We need to know the
name of each instance so that we don't get confused by things
like
mymod1 m1 (o1, a, b);
mymod2 m2 (o2, a, b);
which, despite having the same arguments, are presumably very
different things.
Invariant (stringp modname).
- inputs — Inputs (not outputs or inouts) to the submodule instance. We
expect instances to be argresolved so that these are already in
some canonical order. We just keep the expressions because we
don't care about port names, directions, etc. We also expect all
of these expressions to be fixed so that attributes are
ignored.
Invariant (vl-exprlist-p inputs).
Source link: vl-dupeinst-key-p
We generate a key from each modinst. Modinsts with the same keys
are regarded as having the same inputs. That is, the whole point of the
dupeinst check is to find modinsts with the same key.
Our keys should arguably include the parameter arguments. But if the inputs
are the same, then the parameters should probably be the same or, at any rate,
seem basically compatible? Well, whatever. It probably doesn't matter much at
all in practice.
We always hons keys because we're going to use them as fast alist keys.
Subtopics
- Vl-dupeinst-key
- Raw constructor for vl-dupeinst-key-p structures.
- Make-vl-dupeinst-key
- Constructor macro for vl-dupeinst-key-p structures.
- Change-vl-dupeinst-key
- A copying macro that lets you create new vl-dupeinst-key-p structures, based on existing structures.
- Make-honsed-vl-dupeinst-key
- Constructor macro for honsed vl-dupeinst-key-p structures.
- Honsed-vl-dupeinst-key
- Raw constructor for honsed vl-dupeinst-key-p structures.
- Vl-dupeinst-key->modname
- Access the modname field of a vl-dupeinst-key-p structure.
- Vl-dupeinst-key->inputs
- Access the inputs field of a vl-dupeinst-key-p structure.