blob: f8ad85119f987d35d468ac78cd8528a6bc5a8782 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
module top(
input CLK,
output reg IGNORE_ME,
inout INOUT,
output reg PROBE
);
always @(posedge CLK)
IGNORE_ME <= ~IGNORE_ME; // Pretend to do work (silence warning).
// <<< Variations go here! >>>
`ifdef CONST_INOUT
assign INOUT= 'b1;
`elsif CONST_CLK_ASSIGN
assign INOUT = 'b1;
always @(posedge CLK)
PROBE <= INOUT;
`elsif CONST_ASSIGN
assign INOUT = 'b1;
assign PROBE = INOUT;
`elsif DYN_INOUT
assign INOUT = CLK ? 'bz : 'b0;
`elsif DYN_CLK_ASSIGN
assign INOUT = CLK ? 'bz : 'b0;
always @(posedge CLK)
PROBE <= INOUT;
`elsif DYN_ASSIGN
assign INOUT = CLK ? 'bz : 'b0;
assign PROBE = INOUT;
`elsif CIRCULAR_INOUT
assign INOUT = INOUT ? 'bz : 'b0;
`elsif CIRCULAR_ASSIGN
assign INOUT = INOUT ? 'bz : 'b0;
assign PROBE = INOUT;
`endif
endmodule
|