Hardware Reference
In-Depth Information
Rule
LC1
captures the fact that an outer clock applied to x is semantically
significant if, and only if, something within x requires an incoming clock, as
evidenced by the presence of
inherited
in LC.x/.Rule
LC3
says that Booleans
require incoming clocks.
Rules
LC1
through
LC9
account for semantic leading clocks in sequences. They
do not enforce the various restrictions on the clocking of sequences, such as those
from Sect.
12.2.3
. Rather, they allow for partial clocking of sequences that still
requires an incoming clock, as in
(a[
*
2]
and
@(ev1) b[->1]) ##1 c
LC of this sequence is
f
inherited
;
ev1
g
, where
inherited
records the fact that
a[
*
2]
requires an incoming clock. Since
and
is not a synchronizer for sequences, the
incoming clock must be identical to
ev1
for the concurrent assertion in which this
sequence appears to be legal.
Rules
LC1
,
LC2
, and
LC9
through
LC17
account for semantic leading clocks in
properties.
LC13
and
LC14
capture the fact that the incoming clock governs time
advancement in the temporal operators of the
nexttime
,
always
,
s_eventually
,
and
until
families.
LC15
indicates that the condition of an
if-else
or
case
is
governed by the incoming clock, while
LC16
indicates that the reset condition of an
asynchronous abort is independent of the incoming clock.
Rule
LC17
reflects the definition in the LRM for synchronous aborts, namely,
that the incoming clock governs the abort condition and serves as leading semantic
clock. However, the LRM leaves ambiguous whether and how synchronous abort
operators may be used as synchronizers.
10
Therefore, it is advised to use syn-
chronous aborts only when there is at most one explicit (i.e., non-
inherited
) semantic
leading clock of the underlying property and this clock is identical to the incoming
clock.
The top-level property of a concurrent assertion is always required to have a
single semantic leading clock after the resolution of clock scoping. If p is such
a top-level property, then this means that LC.p/ must have one of the following
forms:
f
c
g
. In this case, c is the unique, explicit semantic leading clock of p, and no
incoming clock is required or has any effect.
f
inherited
g
. In this case, p has no explicit semantic leading clock and requires an
incoming clock, either from default clocking or from a procedural context.
f
inherited
;c
g
. In this case, c is an explicit semantic leading clock of p,butp also
requires an incoming clock, which must be identical to c.
11
10
In fact, various rewrite rules in Annex F.5 of the LRM lead to the conclusion that, while the abort
condition of a synchronous abort is governed by the incoming clock, the set of semantic leading
clocks is determined from the underlying property, in contradiction to
LC17
.
11
The LRM does not define precisely the criterion “identical”, but through examples it indicates
that syntactically identical events are “identical”, while syntactically distinct, but semantically
equivalent, events are not “identical”.
Search WWH ::
Custom Search