Hardware Reference
In-Depth Information
23
module
top();
24
logic
r, g;
25
logic
clock = 1'b0;
26
always
#5 clock <= !clock;
27
procReq dut(r, g, clock);
28
test tb(clock, r, g);
29
endmodule
: top
Signal value changes ordered by regions until time 5 are shown in Table
3.1
.
2
See also Exercise
3.3
.
Table 3.1
Signal value changes (Example
3.7
)
Initialization
allow
=X(Line
2
),
proceed
=Z(Line
3
),
req
=X,
gnt
=X,
clk
=X(Line
1
)
r
=X,
g
=X(Line
24
),
clock
=0(Line
25
),
sync
=X,
request
=X,
grant
=X(Line
10
),
oldreq
=0(Line
11
)
Time 0
Active region
clk
=0(Line
1
),
proceed
=X(Line
4
),
sync
=0(Line
10
)
Reactive region
grant
=0(Line
12
),
request
=0(Line
14
)
Active region
gnt
=0,
req
=0(Line
1
),
proceed
=0(Line
4
)
Time 5
NBA region
clock
=1(Line
26
),
Active region
clk
=1(Line
1
),
sync
=1(Line
10
)
NBA region
allow
=0(Line
5
)
Observed region
Assertion
a1
evaluation. No failure detected (Line
7
)
Re-NBA region
oldreq
=0(Line
17
),
request
=1(Line
18
, it is assumed that
$random
returns an odd number)
Active region
req
=1(Line
1
)
Time 10
2
The LRM is ambiguous about net initialization:
The default initialization value for a net shall be
the value Z
. Our understanding is that in the beginning of simulation all nets are initialized with Z;
hence
proceed
initially assumes the value of Z. However, not all simulators implement the net
initialization this way.
Search WWH ::
Custom Search