Hardware Reference
In-Depth Information
Sequence Disjunction versus Property Disjunction.
Sequence disjunction and
property disjunction have exactly the same syntax. The following rule shows how
they are distinguished: if both
r
and
s
are sequences then
r
or
s
is a sequence
disjunction, otherwise, it is a property disjunction. For example, the formula
(a ##1 b)
or
##1 c
is a sequence disjunction, and
(a ##1 b)
or nexttime
c
is
a property disjunction. In the context where both sequences and properties may
appear, the exact decision is not important since in this case both definitions yield
equivalent results. Why?
Example 6.30.
There are two types of transactions: the read transaction, in which
read request
read
is followed by
data_ready
in three cycles, and the write
transaction, in which write request
write
is followed by
done
. Write a sequence
representing a generic transaction.
Solution:
The sequence representing the read transaction is
read ##3 data_ready
;
the sequence representing the write transaction is
write ##1 done
. The generic
transaction is their disjunction,
read ##3 data_ready
or
write ##1 done
.
t
Multiple Matches.
All sequences we considered until now could have at most one
match. Sequence disjunction introduces sequences that can have multiple matches.
Example 6.31.
Sequence
a[
*
2]
or
b[
*
3]
may have 0, 1, or 2 matches.
t
6.7
Consecutive Repetition Revisited
In Sect.
6.5
, we introduced consecutive repetition with factors
n
0.Therulesof
building consecutive repetition may be summarized as follows:
s[
*
0]
is an empty sequence.
s[
*
n]
, where
n
>0is defined recursively:
s[
*
n]
s[
*
n-1] ##1 s
.
In this section, we will define repetition ranges.
6.7.1
Repetition Range
Instead of a fixed number of repetitions one can specify a repetition range: finite
s[
*
m:n]
and infinite
s[
*
n:$]
.
m
and
n
should be elaboration time integral constants,
m
n
, and
$
stands for an “infinite number”.
Search WWH ::
Custom Search