aboutsummaryrefslogtreecommitdiffstats
path: root/ice40/regressions/issue0176/top.v
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