Hardware Reference
In-Depth Information
18.6.
Write two
cover property
statements that record whether between two
conditions,
a
and
b
, where
b
follows
a
by some indefinite number of clock ticks,
the condition
c
occurred and not occurred, respectively.
18.7.
Modify the code in Fig.
18.1
to add a
covergroup
recording the kinds of the
transactions that are witnessed. Fold the three
cover property
statements into a
single
cover property
that collects this coverage.
18.8.
The
covergroup
solution for Example
18.14
shown in Fig.
18.3
uses a
strategy of running
N
parallel threads, one for each output channel. Each thread
captures into local variables the packet start vector
startIn
, all bytes of
dataIn
for two consecutive cycles of
clkIn
, and the one byte of
dataOut
for the channel
being tracked in the subsequent cycle of
clkOut
. At the next cycle of
clkOut
,the
thread passes all this data, together with another byte of
dataOut
for its channel,
to
samplePathInfo
to sort out which coverage data paths ending at the tracked
channel have been witnessed.
1.
Discuss the redundancy of data across the various threads running in parallel.
2.
What redundancy is there, if any, in the processing of the calls to task
samplePathInfo
across the parallel threads?
3.
Write a new encoding that uses the same
covergroup
, but which only runs a
single thread for all the data channels. Make the single thread collect all the
data from
dataIn
for two consecutive cycles as before, and make it collect all
the bytes of
dataOut
in the subsequent cycle of
clkOut
. At the next cycle of
clkOut
, pass this data, together with all the bytes of
dataOut
,toacalltoanew
task that analyzes the data path coverage for all channels.
4.
Discuss the savings in data capture with the new encoding and compare the
processing complexity for its single task call with the
N
parallel calls to
samplePathInfo
in Fig.
18.3
.
Search WWH ::
Custom Search