-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathex-basics-ternary.v
57 lines (38 loc) · 1.01 KB
/
ex-basics-ternary.v
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
module top;
logic [7:0] a;
logic [7:0] b;
logic [7:0] c;
logic [1:0] sel;
initial begin
// ternary statement
a = 8'd30;
b = 8'd16;
c = ( a < b ) ? 15 : 14;
$display( "c = %d", c );
c = ( b < a ) ? 15 : 14;
$display( "c = %d", c );
// nested ternary statement
sel = 2'b01;
c = ( sel == 2'b00 ) ? 8'h0a
: ( sel == 2'b01 ) ? 8'h0b
: ( sel == 2'b10 ) ? 8'h0c
: ( sel == 2'b11 ) ? 8'h0d
: 8'h0e;
$display( "sel = 1, c = %b", c );
// nested ternary statement w/ X
sel = 2'bxx;
c = ( sel == 2'b00 ) ? 8'h0a
: ( sel == 2'b01 ) ? 8'h0b
: ( sel == 2'b10 ) ? 8'h0c
: ( sel == 2'b11 ) ? 8'h0d
: 8'h0e;
$display( "sel = x, c = %b", c );
sel = 2'bx0;
c = ( sel == 2'b00 ) ? 8'h0a
: ( sel == 2'b01 ) ? 8'h0b
: ( sel == 2'b10 ) ? 8'h0c
: ( sel == 2'b11 ) ? 8'h0d
: 8'h0e;
$display( "sel = x, c = %b", c );
end
endmodule