An input skew of #0
forces a skew of zero. Inputs with
zero skew are sampled at the same time as their corresponding clocking event,
but to avoid races, they are sampled in the observed region. Likewise, outputs
with zero skew are driven at the same time as their specified clocking event,
as nonblocking assignments (in the NBA region).
Skews are declarative constructs, thus, they are semantically
very different from the syntactically similar procedural delay statement. In particular, a #0
skew, does not suspend any process nor does it execute or sample values in the
Inactive region.
However, hierarchical
expressions are not limited to simple names or signals in other scopes. They
can be used to declare slices, and concatenations, (or combinations thereof) of signals in other scopes or in the current
scope.
Example:
## 5; //
wait 5 cycles (clocking events) using the
default clocking
## j + 1; //
wait j+1 cycles (clocking events) using the
default clocking
Use the BNF from A.1.5 for syntax of default clocking clocking_identifier;
Editor’s Note: I was not able to match the first version of the
original syntax with what is in the BNF. Nor does the BNF seem to support
example 2, below.
Use the BNF from Section A.6.4 and Section A.6.11
Editor’s Note: I could not find this syntax in the BNF.