Line Coverage for Instance : tb.dut.u_padring.gen_dio_pads[22].u_dio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 39 | 0 | 0 |  | 
| CONT_ASSIGN | 51 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 78 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 80 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 84 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 92 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 93 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 95 | 1 | 1 | 100.00 | 
38                        logic unused_sigs;
39         unreachable    assign unused_sigs = ^{attr_i.slew_rate,
40                                               attr_i.drive_strength[3:1],
41                                               attr_i.od_en,
42                                               attr_i.schmitt_en,
43                                               attr_i.keep_en,
44                                               scanmode_i,
45                                               pok_i};
46                        //VCS coverage on
47                        // pragma coverage on
48                      
49                        // Input enable (active-high)
50                        logic ie;
51         1/1            assign ie = ie_i & ~attr_i.input_disable;
           Tests:       T23 T24 T25 
52                      
53                        if (PadType == InputStd) begin : gen_input_only
54                          //VCS coverage off
55                          // pragma coverage off
56                          logic unused_in_sigs;
57                          assign unused_in_sigs = ^{out_i,
58                                                    oe_i,
59                                                    attr_i.virt_od_en,
60                                                    attr_i.drive_strength};
61                          //VCS coverage on
62                          // pragma coverage on
63                      
64                          assign in_raw_o = ie ? inout_io : 1'bz;
65                          // input inversion
66                          assign in_o = attr_i.invert ^ in_raw_o;
67                      
68                        // pulls are not supported by verilator
69                        `ifndef VERILATOR
70                          // pullup / pulldown termination
71                          assign (weak0, weak1) inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
72                        `endif
73                        end else if (PadType == BidirTol ||
74                                     PadType == DualBidirTol ||
75                                     PadType == BidirOd ||
76                                     PadType == BidirStd) begin : gen_bidir
77                      
78         1/1              assign in_raw_o = ie ? inout_io : 1'bz;
           Tests:       T13 T26 T31 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T13 T26 T31 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T13 T15 T18 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T13 T26 T15 
86                      
87                        // drive strength attributes are not supported by verilator
88                        `ifdef VERILATOR
89                          assign inout_io = (oe)   ? out : 1'bz;
90                        `else
91                          // different driver types
92         1/1              assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T13 T26 T15 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T13 T26 T15 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T23 T24 T25 
Cond Coverage for Instance : tb.dut.u_padring.gen_dio_pads[22].u_dio_pad.gen_generic.u_impl_generic
 | Total | Covered | Percent | 
| Conditions | 33 | 33 | 100.00 | 
| Logical | 33 | 33 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       51
 EXPRESSION (ie_i & ((~attr_i.input_disable)))
             --1-   ------------2------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Unreachable |  | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T23,T24,T25 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T13,T26,T31 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T13,T15,T18 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       85
 EXPRESSION (oe_i & ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en))))
             --1-   ---------------------------------2---------------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T26,T20,T27 | 
| 1 | 0 | Covered | T18,T49,T50 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       85
 SUB-EXPRESSION ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en)))
                 --------------------1-------------------   -----------2----------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T18,T49,T50 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T18,T49,T50 | 
 LINE       85
 SUB-EXPRESSION (attr_i.virt_od_en & ((~gen_bidir.out)))
                 --------1--------   ---------2--------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T18,T49,T50 | 
| 1 | 1 | Covered | T18,T49,T50 | 
 LINE       92
 EXPRESSION ((gen_bidir.oe && attr_i.drive_strength[0]) ? gen_bidir.out : 1'bz)
             ---------------------1--------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T1,T2,T3 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       93
 EXPRESSION ((gen_bidir.oe && ((!attr_i.drive_strength[0]))) ? gen_bidir.out : 1'bz)
             -----------------------1-----------------------
| -1- | Status | Tests |                       
| 0 | Covered | T26,T18,T20 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       93
 SUB-EXPRESSION (gen_bidir.oe && ((!attr_i.drive_strength[0])))
                 ------1-----    --------------2--------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T26,T18,T20 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_dio_pads[22].u_dio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
78 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
92 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
93 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
95 | 
2 | 
2 | 
100.00 | 
78             assign in_raw_o = ie ? inout_io : 1'bz;
                                    -1-  
                                    ==>  
                                    ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T23,T24,T25 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
93             assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                      -1-  
                                                                                      ==>  
                                                                                      ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T26,T18,T20 | 
95             assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
                                                                   -1-  
                                                                   ==>  
                                                                   ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_dio_pads[22].u_dio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1015 | 
1015 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1015 | 
1015 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T7 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
| T106 | 
1 | 
1 | 
0 | 
0 | 
| T107 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[0].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 39 | 0 | 0 |  | 
| CONT_ASSIGN | 51 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 78 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 80 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 84 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 92 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 93 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 95 | 1 | 1 | 100.00 | 
38                        logic unused_sigs;
39         unreachable    assign unused_sigs = ^{attr_i.slew_rate,
40                                               attr_i.drive_strength[3:1],
41                                               attr_i.od_en,
42                                               attr_i.schmitt_en,
43                                               attr_i.keep_en,
44                                               scanmode_i,
45                                               pok_i};
46                        //VCS coverage on
47                        // pragma coverage on
48                      
49                        // Input enable (active-high)
50                        logic ie;
51         1/1            assign ie = ie_i & ~attr_i.input_disable;
           Tests:       T23 T24 T25 
52                      
53                        if (PadType == InputStd) begin : gen_input_only
54                          //VCS coverage off
55                          // pragma coverage off
56                          logic unused_in_sigs;
57                          assign unused_in_sigs = ^{out_i,
58                                                    oe_i,
59                                                    attr_i.virt_od_en,
60                                                    attr_i.drive_strength};
61                          //VCS coverage on
62                          // pragma coverage on
63                      
64                          assign in_raw_o = ie ? inout_io : 1'bz;
65                          // input inversion
66                          assign in_o = attr_i.invert ^ in_raw_o;
67                      
68                        // pulls are not supported by verilator
69                        `ifndef VERILATOR
70                          // pullup / pulldown termination
71                          assign (weak0, weak1) inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
72                        `endif
73                        end else if (PadType == BidirTol ||
74                                     PadType == DualBidirTol ||
75                                     PadType == BidirOd ||
76                                     PadType == BidirStd) begin : gen_bidir
77                      
78         1/1              assign in_raw_o = ie ? inout_io : 1'bz;
           Tests:       T13 T29 T30 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T13 T29 T30 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T29 T30 T41 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T13 T29 T30 
86                      
87                        // drive strength attributes are not supported by verilator
88                        `ifdef VERILATOR
89                          assign inout_io = (oe)   ? out : 1'bz;
90                        `else
91                          // different driver types
92         1/1              assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T13 T29 T30 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T13 T29 T30 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T23 T24 T25 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[0].u_mio_pad.gen_generic.u_impl_generic
 | Total | Covered | Percent | 
| Conditions | 33 | 33 | 100.00 | 
| Logical | 33 | 33 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       51
 EXPRESSION (ie_i & ((~attr_i.input_disable)))
             --1-   ------------2------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Unreachable |  | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T23,T24,T25 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T13,T29,T30 | 
| 0 | 1 | Covered | T29,T30,T39 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T29,T30,T41 | 
| 1 | 1 | Covered | T24,T25,T46 | 
 LINE       85
 EXPRESSION (oe_i & ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en))))
             --1-   ---------------------------------2---------------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T13,T29,T30 | 
 LINE       85
 SUB-EXPRESSION ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en)))
                 --------------------1-------------------   -----------2----------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T23,T24,T25 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
 LINE       85
 SUB-EXPRESSION (attr_i.virt_od_en & ((~gen_bidir.out)))
                 --------1--------   ---------2--------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       92
 EXPRESSION ((gen_bidir.oe && attr_i.drive_strength[0]) ? gen_bidir.out : 1'bz)
             ---------------------1--------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T13,T29,T30 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       93
 EXPRESSION ((gen_bidir.oe && ((!attr_i.drive_strength[0]))) ? gen_bidir.out : 1'bz)
             -----------------------1-----------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T13,T29,T30 | 
 LINE       93
 SUB-EXPRESSION (gen_bidir.oe && ((!attr_i.drive_strength[0])))
                 ------1-----    --------------2--------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T13,T29,T30 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[0].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
78 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
92 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
93 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
95 | 
2 | 
2 | 
100.00 | 
78             assign in_raw_o = ie ? inout_io : 1'bz;
                                    -1-  
                                    ==>  
                                    ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T23,T24,T25 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
93             assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                      -1-  
                                                                                      ==>  
                                                                                      ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T13,T29,T30 | 
| 0 | 
Covered | 
T1,T2,T3 | 
95             assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
                                                                   -1-  
                                                                   ==>  
                                                                   ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[0].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1015 | 
1015 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1015 | 
1015 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T7 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
| T106 | 
1 | 
1 | 
0 | 
0 | 
| T107 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[1].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 39 | 0 | 0 |  | 
| CONT_ASSIGN | 51 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 78 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 80 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 84 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 92 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 93 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 95 | 1 | 1 | 100.00 | 
38                        logic unused_sigs;
39         unreachable    assign unused_sigs = ^{attr_i.slew_rate,
40                                               attr_i.drive_strength[3:1],
41                                               attr_i.od_en,
42                                               attr_i.schmitt_en,
43                                               attr_i.keep_en,
44                                               scanmode_i,
45                                               pok_i};
46                        //VCS coverage on
47                        // pragma coverage on
48                      
49                        // Input enable (active-high)
50                        logic ie;
51         1/1            assign ie = ie_i & ~attr_i.input_disable;
           Tests:       T23 T24 T25 
52                      
53                        if (PadType == InputStd) begin : gen_input_only
54                          //VCS coverage off
55                          // pragma coverage off
56                          logic unused_in_sigs;
57                          assign unused_in_sigs = ^{out_i,
58                                                    oe_i,
59                                                    attr_i.virt_od_en,
60                                                    attr_i.drive_strength};
61                          //VCS coverage on
62                          // pragma coverage on
63                      
64                          assign in_raw_o = ie ? inout_io : 1'bz;
65                          // input inversion
66                          assign in_o = attr_i.invert ^ in_raw_o;
67                      
68                        // pulls are not supported by verilator
69                        `ifndef VERILATOR
70                          // pullup / pulldown termination
71                          assign (weak0, weak1) inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
72                        `endif
73                        end else if (PadType == BidirTol ||
74                                     PadType == DualBidirTol ||
75                                     PadType == BidirOd ||
76                                     PadType == BidirStd) begin : gen_bidir
77                      
78         1/1              assign in_raw_o = ie ? inout_io : 1'bz;
           Tests:       T13 T29 T30 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T13 T29 T30 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T29 T30 T39 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T13 T29 T30 
86                      
87                        // drive strength attributes are not supported by verilator
88                        `ifdef VERILATOR
89                          assign inout_io = (oe)   ? out : 1'bz;
90                        `else
91                          // different driver types
92         1/1              assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T13 T29 T30 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T13 T29 T30 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T23 T24 T25 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[1].u_mio_pad.gen_generic.u_impl_generic
 | Total | Covered | Percent | 
| Conditions | 33 | 33 | 100.00 | 
| Logical | 33 | 33 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       51
 EXPRESSION (ie_i & ((~attr_i.input_disable)))
             --1-   ------------2------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Unreachable |  | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T23,T24,T25 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T13,T29,T30 | 
| 0 | 1 | Covered | T29,T30,T39 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T29,T30,T39 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       85
 EXPRESSION (oe_i & ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en))))
             --1-   ---------------------------------2---------------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T13,T29,T30 | 
 LINE       85
 SUB-EXPRESSION ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en)))
                 --------------------1-------------------   -----------2----------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T23,T24,T25 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
 LINE       85
 SUB-EXPRESSION (attr_i.virt_od_en & ((~gen_bidir.out)))
                 --------1--------   ---------2--------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       92
 EXPRESSION ((gen_bidir.oe && attr_i.drive_strength[0]) ? gen_bidir.out : 1'bz)
             ---------------------1--------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T13,T29,T30 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       93
 EXPRESSION ((gen_bidir.oe && ((!attr_i.drive_strength[0]))) ? gen_bidir.out : 1'bz)
             -----------------------1-----------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T13,T29,T30 | 
 LINE       93
 SUB-EXPRESSION (gen_bidir.oe && ((!attr_i.drive_strength[0])))
                 ------1-----    --------------2--------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T13,T29,T30 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[1].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
78 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
92 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
93 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
95 | 
2 | 
2 | 
100.00 | 
78             assign in_raw_o = ie ? inout_io : 1'bz;
                                    -1-  
                                    ==>  
                                    ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T23,T24,T25 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
93             assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                      -1-  
                                                                                      ==>  
                                                                                      ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T13,T29,T30 | 
| 0 | 
Covered | 
T1,T2,T3 | 
95             assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
                                                                   -1-  
                                                                   ==>  
                                                                   ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[1].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1015 | 
1015 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1015 | 
1015 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T7 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
| T106 | 
1 | 
1 | 
0 | 
0 | 
| T107 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[2].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 39 | 0 | 0 |  | 
| CONT_ASSIGN | 51 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 78 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 80 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 84 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 92 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 93 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 95 | 1 | 1 | 100.00 | 
38                        logic unused_sigs;
39         unreachable    assign unused_sigs = ^{attr_i.slew_rate,
40                                               attr_i.drive_strength[3:1],
41                                               attr_i.od_en,
42                                               attr_i.schmitt_en,
43                                               attr_i.keep_en,
44                                               scanmode_i,
45                                               pok_i};
46                        //VCS coverage on
47                        // pragma coverage on
48                      
49                        // Input enable (active-high)
50                        logic ie;
51         1/1            assign ie = ie_i & ~attr_i.input_disable;
           Tests:       T23 T24 T25 
52                      
53                        if (PadType == InputStd) begin : gen_input_only
54                          //VCS coverage off
55                          // pragma coverage off
56                          logic unused_in_sigs;
57                          assign unused_in_sigs = ^{out_i,
58                                                    oe_i,
59                                                    attr_i.virt_od_en,
60                                                    attr_i.drive_strength};
61                          //VCS coverage on
62                          // pragma coverage on
63                      
64                          assign in_raw_o = ie ? inout_io : 1'bz;
65                          // input inversion
66                          assign in_o = attr_i.invert ^ in_raw_o;
67                      
68                        // pulls are not supported by verilator
69                        `ifndef VERILATOR
70                          // pullup / pulldown termination
71                          assign (weak0, weak1) inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
72                        `endif
73                        end else if (PadType == BidirTol ||
74                                     PadType == DualBidirTol ||
75                                     PadType == BidirOd ||
76                                     PadType == BidirStd) begin : gen_bidir
77                      
78         1/1              assign in_raw_o = ie ? inout_io : 1'bz;
           Tests:       T10 T13 T29 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T10 T13 T29 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T13 T29 T30 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T13 T29 T30 
86                      
87                        // drive strength attributes are not supported by verilator
88                        `ifdef VERILATOR
89                          assign inout_io = (oe)   ? out : 1'bz;
90                        `else
91                          // different driver types
92         1/1              assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T13 T29 T30 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T13 T29 T30 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T10 T47 T48 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[2].u_mio_pad.gen_generic.u_impl_generic
 | Total | Covered | Percent | 
| Conditions | 33 | 33 | 100.00 | 
| Logical | 33 | 33 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       51
 EXPRESSION (ie_i & ((~attr_i.input_disable)))
             --1-   ------------2------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Unreachable |  | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T23,T24,T25 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T29,T30,T74 | 
| 0 | 1 | Covered | T10,T13,T29 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T13,T29,T30 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       85
 EXPRESSION (oe_i & ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en))))
             --1-   ---------------------------------2---------------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T13,T29,T30 | 
 LINE       85
 SUB-EXPRESSION ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en)))
                 --------------------1-------------------   -----------2----------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T23,T24,T25 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
 LINE       85
 SUB-EXPRESSION (attr_i.virt_od_en & ((~gen_bidir.out)))
                 --------1--------   ---------2--------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       92
 EXPRESSION ((gen_bidir.oe && attr_i.drive_strength[0]) ? gen_bidir.out : 1'bz)
             ---------------------1--------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T13,T29,T30 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       93
 EXPRESSION ((gen_bidir.oe && ((!attr_i.drive_strength[0]))) ? gen_bidir.out : 1'bz)
             -----------------------1-----------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T13,T29,T30 | 
 LINE       93
 SUB-EXPRESSION (gen_bidir.oe && ((!attr_i.drive_strength[0])))
                 ------1-----    --------------2--------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T13,T29,T30 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T10,T47,T48 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[2].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
78 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
92 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
93 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
95 | 
2 | 
2 | 
100.00 | 
78             assign in_raw_o = ie ? inout_io : 1'bz;
                                    -1-  
                                    ==>  
                                    ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T23,T24,T25 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
93             assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                      -1-  
                                                                                      ==>  
                                                                                      ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T13,T29,T30 | 
| 0 | 
Covered | 
T1,T2,T3 | 
95             assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
                                                                   -1-  
                                                                   ==>  
                                                                   ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T10,T47,T48 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[2].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1015 | 
1015 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1015 | 
1015 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T7 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
| T106 | 
1 | 
1 | 
0 | 
0 | 
| T107 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[3].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 39 | 0 | 0 |  | 
| CONT_ASSIGN | 51 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 78 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 80 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 84 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 92 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 93 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 95 | 1 | 1 | 100.00 | 
38                        logic unused_sigs;
39         unreachable    assign unused_sigs = ^{attr_i.slew_rate,
40                                               attr_i.drive_strength[3:1],
41                                               attr_i.od_en,
42                                               attr_i.schmitt_en,
43                                               attr_i.keep_en,
44                                               scanmode_i,
45                                               pok_i};
46                        //VCS coverage on
47                        // pragma coverage on
48                      
49                        // Input enable (active-high)
50                        logic ie;
51         1/1            assign ie = ie_i & ~attr_i.input_disable;
           Tests:       T23 T24 T25 
52                      
53                        if (PadType == InputStd) begin : gen_input_only
54                          //VCS coverage off
55                          // pragma coverage off
56                          logic unused_in_sigs;
57                          assign unused_in_sigs = ^{out_i,
58                                                    oe_i,
59                                                    attr_i.virt_od_en,
60                                                    attr_i.drive_strength};
61                          //VCS coverage on
62                          // pragma coverage on
63                      
64                          assign in_raw_o = ie ? inout_io : 1'bz;
65                          // input inversion
66                          assign in_o = attr_i.invert ^ in_raw_o;
67                      
68                        // pulls are not supported by verilator
69                        `ifndef VERILATOR
70                          // pullup / pulldown termination
71                          assign (weak0, weak1) inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
72                        `endif
73                        end else if (PadType == BidirTol ||
74                                     PadType == DualBidirTol ||
75                                     PadType == BidirOd ||
76                                     PadType == BidirStd) begin : gen_bidir
77                      
78         1/1              assign in_raw_o = ie ? inout_io : 1'bz;
           Tests:       T13 T29 T30 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T13 T29 T30 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T29 T30 T41 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T29 T30 T41 
86                      
87                        // drive strength attributes are not supported by verilator
88                        `ifdef VERILATOR
89                          assign inout_io = (oe)   ? out : 1'bz;
90                        `else
91                          // different driver types
92         1/1              assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T29 T30 T41 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T29 T30 T41 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T23 T24 T25 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[3].u_mio_pad.gen_generic.u_impl_generic
 | Total | Covered | Percent | 
| Conditions | 33 | 33 | 100.00 | 
| Logical | 33 | 33 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       51
 EXPRESSION (ie_i & ((~attr_i.input_disable)))
             --1-   ------------2------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Unreachable |  | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T23,T24,T25 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T13,T29,T30 | 
| 0 | 1 | Covered | T13,T29,T30 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T213 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T29,T30,T41 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       85
 EXPRESSION (oe_i & ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en))))
             --1-   ---------------------------------2---------------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T29,T30,T41 | 
 LINE       85
 SUB-EXPRESSION ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en)))
                 --------------------1-------------------   -----------2----------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T23,T24,T25 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
 LINE       85
 SUB-EXPRESSION (attr_i.virt_od_en & ((~gen_bidir.out)))
                 --------1--------   ---------2--------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       92
 EXPRESSION ((gen_bidir.oe && attr_i.drive_strength[0]) ? gen_bidir.out : 1'bz)
             ---------------------1--------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T29,T30,T41 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       93
 EXPRESSION ((gen_bidir.oe && ((!attr_i.drive_strength[0]))) ? gen_bidir.out : 1'bz)
             -----------------------1-----------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T29,T30,T41 | 
 LINE       93
 SUB-EXPRESSION (gen_bidir.oe && ((!attr_i.drive_strength[0])))
                 ------1-----    --------------2--------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T29,T30,T41 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[3].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
78 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
92 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
93 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
95 | 
2 | 
2 | 
100.00 | 
78             assign in_raw_o = ie ? inout_io : 1'bz;
                                    -1-  
                                    ==>  
                                    ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T23,T24,T25 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
93             assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                      -1-  
                                                                                      ==>  
                                                                                      ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T29,T30,T41 | 
| 0 | 
Covered | 
T1,T2,T3 | 
95             assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
                                                                   -1-  
                                                                   ==>  
                                                                   ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[3].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1015 | 
1015 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1015 | 
1015 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T7 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
| T106 | 
1 | 
1 | 
0 | 
0 | 
| T107 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[4].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 39 | 0 | 0 |  | 
| CONT_ASSIGN | 51 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 78 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 80 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 84 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 92 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 93 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 95 | 1 | 1 | 100.00 | 
38                        logic unused_sigs;
39         unreachable    assign unused_sigs = ^{attr_i.slew_rate,
40                                               attr_i.drive_strength[3:1],
41                                               attr_i.od_en,
42                                               attr_i.schmitt_en,
43                                               attr_i.keep_en,
44                                               scanmode_i,
45                                               pok_i};
46                        //VCS coverage on
47                        // pragma coverage on
48                      
49                        // Input enable (active-high)
50                        logic ie;
51         1/1            assign ie = ie_i & ~attr_i.input_disable;
           Tests:       T23 T24 T25 
52                      
53                        if (PadType == InputStd) begin : gen_input_only
54                          //VCS coverage off
55                          // pragma coverage off
56                          logic unused_in_sigs;
57                          assign unused_in_sigs = ^{out_i,
58                                                    oe_i,
59                                                    attr_i.virt_od_en,
60                                                    attr_i.drive_strength};
61                          //VCS coverage on
62                          // pragma coverage on
63                      
64                          assign in_raw_o = ie ? inout_io : 1'bz;
65                          // input inversion
66                          assign in_o = attr_i.invert ^ in_raw_o;
67                      
68                        // pulls are not supported by verilator
69                        `ifndef VERILATOR
70                          // pullup / pulldown termination
71                          assign (weak0, weak1) inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
72                        `endif
73                        end else if (PadType == BidirTol ||
74                                     PadType == DualBidirTol ||
75                                     PadType == BidirOd ||
76                                     PadType == BidirStd) begin : gen_bidir
77                      
78         1/1              assign in_raw_o = ie ? inout_io : 1'bz;
           Tests:       T13 T29 T30 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T13 T29 T30 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T29 T30 T41 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T29 T30 T41 
86                      
87                        // drive strength attributes are not supported by verilator
88                        `ifdef VERILATOR
89                          assign inout_io = (oe)   ? out : 1'bz;
90                        `else
91                          // different driver types
92         1/1              assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T29 T30 T41 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T29 T30 T41 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T23 T24 T25 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[4].u_mio_pad.gen_generic.u_impl_generic
 | Total | Covered | Percent | 
| Conditions | 33 | 33 | 100.00 | 
| Logical | 33 | 33 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       51
 EXPRESSION (ie_i & ((~attr_i.input_disable)))
             --1-   ------------2------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Unreachable |  | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T23,T24,T25 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T13,T29,T30 | 
| 0 | 1 | Covered | T13,T29,T30 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T29,T30,T41 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       85
 EXPRESSION (oe_i & ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en))))
             --1-   ---------------------------------2---------------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T29,T30,T41 | 
 LINE       85
 SUB-EXPRESSION ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en)))
                 --------------------1-------------------   -----------2----------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T23,T24,T25 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
 LINE       85
 SUB-EXPRESSION (attr_i.virt_od_en & ((~gen_bidir.out)))
                 --------1--------   ---------2--------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       92
 EXPRESSION ((gen_bidir.oe && attr_i.drive_strength[0]) ? gen_bidir.out : 1'bz)
             ---------------------1--------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T29,T30,T41 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       93
 EXPRESSION ((gen_bidir.oe && ((!attr_i.drive_strength[0]))) ? gen_bidir.out : 1'bz)
             -----------------------1-----------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T29,T30,T41 | 
 LINE       93
 SUB-EXPRESSION (gen_bidir.oe && ((!attr_i.drive_strength[0])))
                 ------1-----    --------------2--------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T29,T30,T41 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[4].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
78 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
92 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
93 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
95 | 
2 | 
2 | 
100.00 | 
78             assign in_raw_o = ie ? inout_io : 1'bz;
                                    -1-  
                                    ==>  
                                    ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T23,T24,T25 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
93             assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                      -1-  
                                                                                      ==>  
                                                                                      ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T29,T30,T41 | 
| 0 | 
Covered | 
T1,T2,T3 | 
95             assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
                                                                   -1-  
                                                                   ==>  
                                                                   ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[4].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1015 | 
1015 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1015 | 
1015 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T7 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
| T106 | 
1 | 
1 | 
0 | 
0 | 
| T107 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[5].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 39 | 0 | 0 |  | 
| CONT_ASSIGN | 51 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 78 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 80 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 84 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 92 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 93 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 95 | 1 | 1 | 100.00 | 
38                        logic unused_sigs;
39         unreachable    assign unused_sigs = ^{attr_i.slew_rate,
40                                               attr_i.drive_strength[3:1],
41                                               attr_i.od_en,
42                                               attr_i.schmitt_en,
43                                               attr_i.keep_en,
44                                               scanmode_i,
45                                               pok_i};
46                        //VCS coverage on
47                        // pragma coverage on
48                      
49                        // Input enable (active-high)
50                        logic ie;
51         1/1            assign ie = ie_i & ~attr_i.input_disable;
           Tests:       T23 T24 T25 
52                      
53                        if (PadType == InputStd) begin : gen_input_only
54                          //VCS coverage off
55                          // pragma coverage off
56                          logic unused_in_sigs;
57                          assign unused_in_sigs = ^{out_i,
58                                                    oe_i,
59                                                    attr_i.virt_od_en,
60                                                    attr_i.drive_strength};
61                          //VCS coverage on
62                          // pragma coverage on
63                      
64                          assign in_raw_o = ie ? inout_io : 1'bz;
65                          // input inversion
66                          assign in_o = attr_i.invert ^ in_raw_o;
67                      
68                        // pulls are not supported by verilator
69                        `ifndef VERILATOR
70                          // pullup / pulldown termination
71                          assign (weak0, weak1) inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
72                        `endif
73                        end else if (PadType == BidirTol ||
74                                     PadType == DualBidirTol ||
75                                     PadType == BidirOd ||
76                                     PadType == BidirStd) begin : gen_bidir
77                      
78         1/1              assign in_raw_o = ie ? inout_io : 1'bz;
           Tests:       T13 T29 T30 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T13 T29 T30 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T29 T30 T65 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T13 T29 T30 
86                      
87                        // drive strength attributes are not supported by verilator
88                        `ifdef VERILATOR
89                          assign inout_io = (oe)   ? out : 1'bz;
90                        `else
91                          // different driver types
92         1/1              assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T13 T29 T30 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T13 T29 T30 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T23 T24 T25 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[5].u_mio_pad.gen_generic.u_impl_generic
 | Total | Covered | Percent | 
| Conditions | 33 | 33 | 100.00 | 
| Logical | 33 | 33 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       51
 EXPRESSION (ie_i & ((~attr_i.input_disable)))
             --1-   ------------2------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Unreachable |  | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T23,T24,T25 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T13,T29,T30 | 
| 0 | 1 | Covered | T29,T30,T65 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T29,T30,T65 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       85
 EXPRESSION (oe_i & ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en))))
             --1-   ---------------------------------2---------------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T13,T29,T30 | 
 LINE       85
 SUB-EXPRESSION ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en)))
                 --------------------1-------------------   -----------2----------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T23,T24,T25 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
 LINE       85
 SUB-EXPRESSION (attr_i.virt_od_en & ((~gen_bidir.out)))
                 --------1--------   ---------2--------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       92
 EXPRESSION ((gen_bidir.oe && attr_i.drive_strength[0]) ? gen_bidir.out : 1'bz)
             ---------------------1--------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T13,T29,T30 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       93
 EXPRESSION ((gen_bidir.oe && ((!attr_i.drive_strength[0]))) ? gen_bidir.out : 1'bz)
             -----------------------1-----------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T13,T29,T30 | 
 LINE       93
 SUB-EXPRESSION (gen_bidir.oe && ((!attr_i.drive_strength[0])))
                 ------1-----    --------------2--------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T13,T29,T30 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[5].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
78 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
92 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
93 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
95 | 
2 | 
2 | 
100.00 | 
78             assign in_raw_o = ie ? inout_io : 1'bz;
                                    -1-  
                                    ==>  
                                    ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T23,T24,T25 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
93             assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                      -1-  
                                                                                      ==>  
                                                                                      ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T13,T29,T30 | 
| 0 | 
Covered | 
T1,T2,T3 | 
95             assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
                                                                   -1-  
                                                                   ==>  
                                                                   ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[5].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1015 | 
1015 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1015 | 
1015 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T7 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
| T106 | 
1 | 
1 | 
0 | 
0 | 
| T107 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[6].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 39 | 0 | 0 |  | 
| CONT_ASSIGN | 51 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 78 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 80 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 84 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 92 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 93 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 95 | 1 | 1 | 100.00 | 
38                        logic unused_sigs;
39         unreachable    assign unused_sigs = ^{attr_i.slew_rate,
40                                               attr_i.drive_strength[3:1],
41                                               attr_i.od_en,
42                                               attr_i.schmitt_en,
43                                               attr_i.keep_en,
44                                               scanmode_i,
45                                               pok_i};
46                        //VCS coverage on
47                        // pragma coverage on
48                      
49                        // Input enable (active-high)
50                        logic ie;
51         1/1            assign ie = ie_i & ~attr_i.input_disable;
           Tests:       T23 T24 T25 
52                      
53                        if (PadType == InputStd) begin : gen_input_only
54                          //VCS coverage off
55                          // pragma coverage off
56                          logic unused_in_sigs;
57                          assign unused_in_sigs = ^{out_i,
58                                                    oe_i,
59                                                    attr_i.virt_od_en,
60                                                    attr_i.drive_strength};
61                          //VCS coverage on
62                          // pragma coverage on
63                      
64                          assign in_raw_o = ie ? inout_io : 1'bz;
65                          // input inversion
66                          assign in_o = attr_i.invert ^ in_raw_o;
67                      
68                        // pulls are not supported by verilator
69                        `ifndef VERILATOR
70                          // pullup / pulldown termination
71                          assign (weak0, weak1) inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
72                        `endif
73                        end else if (PadType == BidirTol ||
74                                     PadType == DualBidirTol ||
75                                     PadType == BidirOd ||
76                                     PadType == BidirStd) begin : gen_bidir
77                      
78         1/1              assign in_raw_o = ie ? inout_io : 1'bz;
           Tests:       T13 T29 T30 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T13 T29 T30 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T13 T29 T30 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T13 T29 T30 
86                      
87                        // drive strength attributes are not supported by verilator
88                        `ifdef VERILATOR
89                          assign inout_io = (oe)   ? out : 1'bz;
90                        `else
91                          // different driver types
92         1/1              assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T13 T29 T30 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T13 T29 T30 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T23 T24 T25 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[6].u_mio_pad.gen_generic.u_impl_generic
 | Total | Covered | Percent | 
| Conditions | 33 | 33 | 100.00 | 
| Logical | 33 | 33 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       51
 EXPRESSION (ie_i & ((~attr_i.input_disable)))
             --1-   ------------2------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Unreachable |  | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T23,T24,T25 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T29,T30,T37 | 
| 0 | 1 | Covered | T13,T29,T30 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T13,T29,T30 | 
| 1 | 1 | Covered | T24,T25,T46 | 
 LINE       85
 EXPRESSION (oe_i & ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en))))
             --1-   ---------------------------------2---------------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T13,T29,T30 | 
 LINE       85
 SUB-EXPRESSION ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en)))
                 --------------------1-------------------   -----------2----------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T23,T24,T25 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
 LINE       85
 SUB-EXPRESSION (attr_i.virt_od_en & ((~gen_bidir.out)))
                 --------1--------   ---------2--------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       92
 EXPRESSION ((gen_bidir.oe && attr_i.drive_strength[0]) ? gen_bidir.out : 1'bz)
             ---------------------1--------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T13,T29,T30 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       93
 EXPRESSION ((gen_bidir.oe && ((!attr_i.drive_strength[0]))) ? gen_bidir.out : 1'bz)
             -----------------------1-----------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T13,T29,T30 | 
 LINE       93
 SUB-EXPRESSION (gen_bidir.oe && ((!attr_i.drive_strength[0])))
                 ------1-----    --------------2--------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T13,T29,T30 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[6].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
78 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
92 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
93 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
95 | 
2 | 
2 | 
100.00 | 
78             assign in_raw_o = ie ? inout_io : 1'bz;
                                    -1-  
                                    ==>  
                                    ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T23,T24,T25 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
93             assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                      -1-  
                                                                                      ==>  
                                                                                      ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T13,T29,T30 | 
| 0 | 
Covered | 
T1,T2,T3 | 
95             assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
                                                                   -1-  
                                                                   ==>  
                                                                   ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[6].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1015 | 
1015 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1015 | 
1015 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T7 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
| T106 | 
1 | 
1 | 
0 | 
0 | 
| T107 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[7].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 39 | 0 | 0 |  | 
| CONT_ASSIGN | 51 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 78 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 80 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 84 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 92 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 93 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 95 | 1 | 1 | 100.00 | 
38                        logic unused_sigs;
39         unreachable    assign unused_sigs = ^{attr_i.slew_rate,
40                                               attr_i.drive_strength[3:1],
41                                               attr_i.od_en,
42                                               attr_i.schmitt_en,
43                                               attr_i.keep_en,
44                                               scanmode_i,
45                                               pok_i};
46                        //VCS coverage on
47                        // pragma coverage on
48                      
49                        // Input enable (active-high)
50                        logic ie;
51         1/1            assign ie = ie_i & ~attr_i.input_disable;
           Tests:       T23 T24 T25 
52                      
53                        if (PadType == InputStd) begin : gen_input_only
54                          //VCS coverage off
55                          // pragma coverage off
56                          logic unused_in_sigs;
57                          assign unused_in_sigs = ^{out_i,
58                                                    oe_i,
59                                                    attr_i.virt_od_en,
60                                                    attr_i.drive_strength};
61                          //VCS coverage on
62                          // pragma coverage on
63                      
64                          assign in_raw_o = ie ? inout_io : 1'bz;
65                          // input inversion
66                          assign in_o = attr_i.invert ^ in_raw_o;
67                      
68                        // pulls are not supported by verilator
69                        `ifndef VERILATOR
70                          // pullup / pulldown termination
71                          assign (weak0, weak1) inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
72                        `endif
73                        end else if (PadType == BidirTol ||
74                                     PadType == DualBidirTol ||
75                                     PadType == BidirOd ||
76                                     PadType == BidirStd) begin : gen_bidir
77                      
78         1/1              assign in_raw_o = ie ? inout_io : 1'bz;
           Tests:       T13 T5 T14 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T13 T5 T14 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T29 T30 T41 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T5 T29 T30 
86                      
87                        // drive strength attributes are not supported by verilator
88                        `ifdef VERILATOR
89                          assign inout_io = (oe)   ? out : 1'bz;
90                        `else
91                          // different driver types
92         1/1              assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T5 T29 T30 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T5 T29 T30 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T14 T51 T52 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[7].u_mio_pad.gen_generic.u_impl_generic
 | Total | Covered | Percent | 
| Conditions | 33 | 33 | 100.00 | 
| Logical | 33 | 33 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       51
 EXPRESSION (ie_i & ((~attr_i.input_disable)))
             --1-   ------------2------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Unreachable |  | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T23,T24,T25 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T13,T5,T14 | 
| 0 | 1 | Covered | T13,T14,T29 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T29,T30,T41 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       85
 EXPRESSION (oe_i & ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en))))
             --1-   ---------------------------------2---------------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T5,T29,T30 | 
 LINE       85
 SUB-EXPRESSION ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en)))
                 --------------------1-------------------   -----------2----------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T23,T24,T25 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
 LINE       85
 SUB-EXPRESSION (attr_i.virt_od_en & ((~gen_bidir.out)))
                 --------1--------   ---------2--------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       92
 EXPRESSION ((gen_bidir.oe && attr_i.drive_strength[0]) ? gen_bidir.out : 1'bz)
             ---------------------1--------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T5,T29,T30 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       93
 EXPRESSION ((gen_bidir.oe && ((!attr_i.drive_strength[0]))) ? gen_bidir.out : 1'bz)
             -----------------------1-----------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T5,T29,T30 | 
 LINE       93
 SUB-EXPRESSION (gen_bidir.oe && ((!attr_i.drive_strength[0])))
                 ------1-----    --------------2--------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T5,T29,T30 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T14,T51,T52 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[7].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
78 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
92 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
93 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
95 | 
2 | 
2 | 
100.00 | 
78             assign in_raw_o = ie ? inout_io : 1'bz;
                                    -1-  
                                    ==>  
                                    ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T23,T24,T25 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
93             assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                      -1-  
                                                                                      ==>  
                                                                                      ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T5,T29,T30 | 
| 0 | 
Covered | 
T1,T2,T3 | 
95             assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
                                                                   -1-  
                                                                   ==>  
                                                                   ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T14,T51,T52 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[7].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1015 | 
1015 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1015 | 
1015 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T7 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
| T106 | 
1 | 
1 | 
0 | 
0 | 
| T107 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[8].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 39 | 0 | 0 |  | 
| CONT_ASSIGN | 51 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 78 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 80 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 84 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 92 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 93 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 95 | 1 | 1 | 100.00 | 
38                        logic unused_sigs;
39         unreachable    assign unused_sigs = ^{attr_i.slew_rate,
40                                               attr_i.drive_strength[3:1],
41                                               attr_i.od_en,
42                                               attr_i.schmitt_en,
43                                               attr_i.keep_en,
44                                               scanmode_i,
45                                               pok_i};
46                        //VCS coverage on
47                        // pragma coverage on
48                      
49                        // Input enable (active-high)
50                        logic ie;
51         1/1            assign ie = ie_i & ~attr_i.input_disable;
           Tests:       T23 T24 T25 
52                      
53                        if (PadType == InputStd) begin : gen_input_only
54                          //VCS coverage off
55                          // pragma coverage off
56                          logic unused_in_sigs;
57                          assign unused_in_sigs = ^{out_i,
58                                                    oe_i,
59                                                    attr_i.virt_od_en,
60                                                    attr_i.drive_strength};
61                          //VCS coverage on
62                          // pragma coverage on
63                      
64                          assign in_raw_o = ie ? inout_io : 1'bz;
65                          // input inversion
66                          assign in_o = attr_i.invert ^ in_raw_o;
67                      
68                        // pulls are not supported by verilator
69                        `ifndef VERILATOR
70                          // pullup / pulldown termination
71                          assign (weak0, weak1) inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
72                        `endif
73                        end else if (PadType == BidirTol ||
74                                     PadType == DualBidirTol ||
75                                     PadType == BidirOd ||
76                                     PadType == BidirStd) begin : gen_bidir
77                      
78         1/1              assign in_raw_o = ie ? inout_io : 1'bz;
           Tests:       T13 T5 T29 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T13 T5 T29 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T30 T41 T20 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T13 T30 T60 
86                      
87                        // drive strength attributes are not supported by verilator
88                        `ifdef VERILATOR
89                          assign inout_io = (oe)   ? out : 1'bz;
90                        `else
91                          // different driver types
92         1/1              assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T13 T30 T60 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T13 T30 T60 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T23 T24 T25 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[8].u_mio_pad.gen_generic.u_impl_generic
 | Total | Covered | Percent | 
| Conditions | 33 | 33 | 100.00 | 
| Logical | 33 | 33 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       51
 EXPRESSION (ie_i & ((~attr_i.input_disable)))
             --1-   ------------2------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Unreachable |  | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T23,T24,T25 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T13,T5,T29 | 
| 0 | 1 | Covered | T5,T29,T30 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T30,T41,T20 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       85
 EXPRESSION (oe_i & ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en))))
             --1-   ---------------------------------2---------------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T25,T46 | 
| 1 | 1 | Covered | T13,T30,T60 | 
 LINE       85
 SUB-EXPRESSION ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en)))
                 --------------------1-------------------   -----------2----------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T23,T24,T25 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
 LINE       85
 SUB-EXPRESSION (attr_i.virt_od_en & ((~gen_bidir.out)))
                 --------1--------   ---------2--------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       92
 EXPRESSION ((gen_bidir.oe && attr_i.drive_strength[0]) ? gen_bidir.out : 1'bz)
             ---------------------1--------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T13,T30,T60 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       93
 EXPRESSION ((gen_bidir.oe && ((!attr_i.drive_strength[0]))) ? gen_bidir.out : 1'bz)
             -----------------------1-----------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T13,T30,T60 | 
 LINE       93
 SUB-EXPRESSION (gen_bidir.oe && ((!attr_i.drive_strength[0])))
                 ------1-----    --------------2--------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T13,T30,T60 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[8].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
78 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
92 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
93 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
95 | 
2 | 
2 | 
100.00 | 
78             assign in_raw_o = ie ? inout_io : 1'bz;
                                    -1-  
                                    ==>  
                                    ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T23,T24,T25 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
93             assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                      -1-  
                                                                                      ==>  
                                                                                      ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T13,T30,T60 | 
| 0 | 
Covered | 
T1,T2,T3 | 
95             assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
                                                                   -1-  
                                                                   ==>  
                                                                   ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[8].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1015 | 
1015 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1015 | 
1015 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T7 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
| T106 | 
1 | 
1 | 
0 | 
0 | 
| T107 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[9].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 39 | 0 | 0 |  | 
| CONT_ASSIGN | 51 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 78 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 80 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 84 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 92 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 93 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 95 | 1 | 1 | 100.00 | 
38                        logic unused_sigs;
39         unreachable    assign unused_sigs = ^{attr_i.slew_rate,
40                                               attr_i.drive_strength[3:1],
41                                               attr_i.od_en,
42                                               attr_i.schmitt_en,
43                                               attr_i.keep_en,
44                                               scanmode_i,
45                                               pok_i};
46                        //VCS coverage on
47                        // pragma coverage on
48                      
49                        // Input enable (active-high)
50                        logic ie;
51         1/1            assign ie = ie_i & ~attr_i.input_disable;
           Tests:       T23 T24 T25 
52                      
53                        if (PadType == InputStd) begin : gen_input_only
54                          //VCS coverage off
55                          // pragma coverage off
56                          logic unused_in_sigs;
57                          assign unused_in_sigs = ^{out_i,
58                                                    oe_i,
59                                                    attr_i.virt_od_en,
60                                                    attr_i.drive_strength};
61                          //VCS coverage on
62                          // pragma coverage on
63                      
64                          assign in_raw_o = ie ? inout_io : 1'bz;
65                          // input inversion
66                          assign in_o = attr_i.invert ^ in_raw_o;
67                      
68                        // pulls are not supported by verilator
69                        `ifndef VERILATOR
70                          // pullup / pulldown termination
71                          assign (weak0, weak1) inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
72                        `endif
73                        end else if (PadType == BidirTol ||
74                                     PadType == DualBidirTol ||
75                                     PadType == BidirOd ||
76                                     PadType == BidirStd) begin : gen_bidir
77                      
78         1/1              assign in_raw_o = ie ? inout_io : 1'bz;
           Tests:       T10 T13 T26 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T10 T13 T26 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T13 T11 T12 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T13 T11 T12 
86                      
87                        // drive strength attributes are not supported by verilator
88                        `ifdef VERILATOR
89                          assign inout_io = (oe)   ? out : 1'bz;
90                        `else
91                          // different driver types
92         1/1              assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T13 T11 T12 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T13 T11 T12 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T10 T47 T48 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[9].u_mio_pad.gen_generic.u_impl_generic
 | Total | Covered | Percent | 
| Conditions | 33 | 33 | 100.00 | 
| Logical | 33 | 33 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       51
 EXPRESSION (ie_i & ((~attr_i.input_disable)))
             --1-   ------------2------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Unreachable |  | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T23,T24,T25 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T26,T37,T100 | 
| 0 | 1 | Covered | T10,T13,T22 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T13,T11,T12 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       85
 EXPRESSION (oe_i & ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en))))
             --1-   ---------------------------------2---------------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T13,T22,T47 | 
 LINE       85
 SUB-EXPRESSION ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en)))
                 --------------------1-------------------   -----------2----------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T23,T24,T25 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
 LINE       85
 SUB-EXPRESSION (attr_i.virt_od_en & ((~gen_bidir.out)))
                 --------1--------   ---------2--------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       92
 EXPRESSION ((gen_bidir.oe && attr_i.drive_strength[0]) ? gen_bidir.out : 1'bz)
             ---------------------1--------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T13,T22,T47 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       93
 EXPRESSION ((gen_bidir.oe && ((!attr_i.drive_strength[0]))) ? gen_bidir.out : 1'bz)
             -----------------------1-----------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T13,T22,T47 | 
 LINE       93
 SUB-EXPRESSION (gen_bidir.oe && ((!attr_i.drive_strength[0])))
                 ------1-----    --------------2--------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T13,T22,T47 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T10,T47,T48 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[9].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
78 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
92 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
93 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
95 | 
2 | 
2 | 
100.00 | 
78             assign in_raw_o = ie ? inout_io : 1'bz;
                                    -1-  
                                    ==>  
                                    ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T23,T24,T25 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
93             assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                      -1-  
                                                                                      ==>  
                                                                                      ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T13,T22,T47 | 
| 0 | 
Covered | 
T1,T2,T3 | 
95             assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
                                                                   -1-  
                                                                   ==>  
                                                                   ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T10,T47,T48 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[9].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1015 | 
1015 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1015 | 
1015 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T7 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
| T106 | 
1 | 
1 | 
0 | 
0 | 
| T107 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[10].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 39 | 0 | 0 |  | 
| CONT_ASSIGN | 51 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 78 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 80 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 84 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 92 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 93 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 95 | 1 | 1 | 100.00 | 
38                        logic unused_sigs;
39         unreachable    assign unused_sigs = ^{attr_i.slew_rate,
40                                               attr_i.drive_strength[3:1],
41                                               attr_i.od_en,
42                                               attr_i.schmitt_en,
43                                               attr_i.keep_en,
44                                               scanmode_i,
45                                               pok_i};
46                        //VCS coverage on
47                        // pragma coverage on
48                      
49                        // Input enable (active-high)
50                        logic ie;
51         1/1            assign ie = ie_i & ~attr_i.input_disable;
           Tests:       T23 T24 T25 
52                      
53                        if (PadType == InputStd) begin : gen_input_only
54                          //VCS coverage off
55                          // pragma coverage off
56                          logic unused_in_sigs;
57                          assign unused_in_sigs = ^{out_i,
58                                                    oe_i,
59                                                    attr_i.virt_od_en,
60                                                    attr_i.drive_strength};
61                          //VCS coverage on
62                          // pragma coverage on
63                      
64                          assign in_raw_o = ie ? inout_io : 1'bz;
65                          // input inversion
66                          assign in_o = attr_i.invert ^ in_raw_o;
67                      
68                        // pulls are not supported by verilator
69                        `ifndef VERILATOR
70                          // pullup / pulldown termination
71                          assign (weak0, weak1) inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
72                        `endif
73                        end else if (PadType == BidirTol ||
74                                     PadType == DualBidirTol ||
75                                     PadType == BidirOd ||
76                                     PadType == BidirStd) begin : gen_bidir
77                      
78         1/1              assign in_raw_o = ie ? inout_io : 1'bz;
           Tests:       T10 T13 T11 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T10 T13 T11 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T10 T22 T20 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T10 T13 T22 
86                      
87                        // drive strength attributes are not supported by verilator
88                        `ifdef VERILATOR
89                          assign inout_io = (oe)   ? out : 1'bz;
90                        `else
91                          // different driver types
92         1/1              assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T10 T13 T22 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T10 T13 T22 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T10 T11 T12 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[10].u_mio_pad.gen_generic.u_impl_generic
 | Total | Covered | Percent | 
| Conditions | 33 | 33 | 100.00 | 
| Logical | 33 | 33 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       51
 EXPRESSION (ie_i & ((~attr_i.input_disable)))
             --1-   ------------2------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Unreachable |  | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T23,T24,T25 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T13,T37,T100 | 
| 0 | 1 | Covered | T10,T11,T12 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T10,T22,T20 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       85
 EXPRESSION (oe_i & ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en))))
             --1-   ---------------------------------2---------------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T13,T22,T20 | 
 LINE       85
 SUB-EXPRESSION ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en)))
                 --------------------1-------------------   -----------2----------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T23,T24,T25 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
 LINE       85
 SUB-EXPRESSION (attr_i.virt_od_en & ((~gen_bidir.out)))
                 --------1--------   ---------2--------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       92
 EXPRESSION ((gen_bidir.oe && attr_i.drive_strength[0]) ? gen_bidir.out : 1'bz)
             ---------------------1--------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T13,T22,T20 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       93
 EXPRESSION ((gen_bidir.oe && ((!attr_i.drive_strength[0]))) ? gen_bidir.out : 1'bz)
             -----------------------1-----------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T13,T22,T20 | 
 LINE       93
 SUB-EXPRESSION (gen_bidir.oe && ((!attr_i.drive_strength[0])))
                 ------1-----    --------------2--------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T13,T22,T20 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T10,T11,T12 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[10].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
78 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
92 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
93 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
95 | 
2 | 
2 | 
100.00 | 
78             assign in_raw_o = ie ? inout_io : 1'bz;
                                    -1-  
                                    ==>  
                                    ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T23,T24,T25 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
93             assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                      -1-  
                                                                                      ==>  
                                                                                      ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T13,T22,T20 | 
| 0 | 
Covered | 
T1,T2,T3 | 
95             assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
                                                                   -1-  
                                                                   ==>  
                                                                   ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T10,T11,T12 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[10].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1015 | 
1015 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1015 | 
1015 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T7 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
| T106 | 
1 | 
1 | 
0 | 
0 | 
| T107 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[11].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 39 | 0 | 0 |  | 
| CONT_ASSIGN | 51 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 78 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 80 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 84 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 92 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 93 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 95 | 1 | 1 | 100.00 | 
38                        logic unused_sigs;
39         unreachable    assign unused_sigs = ^{attr_i.slew_rate,
40                                               attr_i.drive_strength[3:1],
41                                               attr_i.od_en,
42                                               attr_i.schmitt_en,
43                                               attr_i.keep_en,
44                                               scanmode_i,
45                                               pok_i};
46                        //VCS coverage on
47                        // pragma coverage on
48                      
49                        // Input enable (active-high)
50                        logic ie;
51         1/1            assign ie = ie_i & ~attr_i.input_disable;
           Tests:       T23 T24 T25 
52                      
53                        if (PadType == InputStd) begin : gen_input_only
54                          //VCS coverage off
55                          // pragma coverage off
56                          logic unused_in_sigs;
57                          assign unused_in_sigs = ^{out_i,
58                                                    oe_i,
59                                                    attr_i.virt_od_en,
60                                                    attr_i.drive_strength};
61                          //VCS coverage on
62                          // pragma coverage on
63                      
64                          assign in_raw_o = ie ? inout_io : 1'bz;
65                          // input inversion
66                          assign in_o = attr_i.invert ^ in_raw_o;
67                      
68                        // pulls are not supported by verilator
69                        `ifndef VERILATOR
70                          // pullup / pulldown termination
71                          assign (weak0, weak1) inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
72                        `endif
73                        end else if (PadType == BidirTol ||
74                                     PadType == DualBidirTol ||
75                                     PadType == BidirOd ||
76                                     PadType == BidirStd) begin : gen_bidir
77                      
78         1/1              assign in_raw_o = ie ? inout_io : 1'bz;
           Tests:       T13 T5 T37 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T13 T5 T37 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T22 T21 T73 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T13 T22 T20 
86                      
87                        // drive strength attributes are not supported by verilator
88                        `ifdef VERILATOR
89                          assign inout_io = (oe)   ? out : 1'bz;
90                        `else
91                          // different driver types
92         1/1              assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T13 T22 T20 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T13 T22 T20 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T23 T24 T25 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[11].u_mio_pad.gen_generic.u_impl_generic
 | Total | Covered | Percent | 
| Conditions | 33 | 33 | 100.00 | 
| Logical | 33 | 33 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       51
 EXPRESSION (ie_i & ((~attr_i.input_disable)))
             --1-   ------------2------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Unreachable |  | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T23,T24,T25 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T13,T5,T37 | 
| 0 | 1 | Covered | T22,T21,T73 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T22,T21,T73 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       85
 EXPRESSION (oe_i & ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en))))
             --1-   ---------------------------------2---------------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T25,T46 | 
| 1 | 1 | Covered | T13,T22,T20 | 
 LINE       85
 SUB-EXPRESSION ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en)))
                 --------------------1-------------------   -----------2----------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T23,T24,T25 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
 LINE       85
 SUB-EXPRESSION (attr_i.virt_od_en & ((~gen_bidir.out)))
                 --------1--------   ---------2--------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       92
 EXPRESSION ((gen_bidir.oe && attr_i.drive_strength[0]) ? gen_bidir.out : 1'bz)
             ---------------------1--------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T13,T22,T20 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       93
 EXPRESSION ((gen_bidir.oe && ((!attr_i.drive_strength[0]))) ? gen_bidir.out : 1'bz)
             -----------------------1-----------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T13,T22,T20 | 
 LINE       93
 SUB-EXPRESSION (gen_bidir.oe && ((!attr_i.drive_strength[0])))
                 ------1-----    --------------2--------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T13,T22,T20 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[11].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
78 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
92 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
93 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
95 | 
2 | 
2 | 
100.00 | 
78             assign in_raw_o = ie ? inout_io : 1'bz;
                                    -1-  
                                    ==>  
                                    ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T23,T24,T25 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
93             assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                      -1-  
                                                                                      ==>  
                                                                                      ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T13,T22,T20 | 
| 0 | 
Covered | 
T1,T2,T3 | 
95             assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
                                                                   -1-  
                                                                   ==>  
                                                                   ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[11].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1015 | 
1015 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1015 | 
1015 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T7 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
| T106 | 
1 | 
1 | 
0 | 
0 | 
| T107 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[12].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 39 | 0 | 0 |  | 
| CONT_ASSIGN | 51 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 78 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 80 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 84 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 92 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 93 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 95 | 1 | 1 | 100.00 | 
38                        logic unused_sigs;
39         unreachable    assign unused_sigs = ^{attr_i.slew_rate,
40                                               attr_i.drive_strength[3:1],
41                                               attr_i.od_en,
42                                               attr_i.schmitt_en,
43                                               attr_i.keep_en,
44                                               scanmode_i,
45                                               pok_i};
46                        //VCS coverage on
47                        // pragma coverage on
48                      
49                        // Input enable (active-high)
50                        logic ie;
51         1/1            assign ie = ie_i & ~attr_i.input_disable;
           Tests:       T23 T24 T25 
52                      
53                        if (PadType == InputStd) begin : gen_input_only
54                          //VCS coverage off
55                          // pragma coverage off
56                          logic unused_in_sigs;
57                          assign unused_in_sigs = ^{out_i,
58                                                    oe_i,
59                                                    attr_i.virt_od_en,
60                                                    attr_i.drive_strength};
61                          //VCS coverage on
62                          // pragma coverage on
63                      
64                          assign in_raw_o = ie ? inout_io : 1'bz;
65                          // input inversion
66                          assign in_o = attr_i.invert ^ in_raw_o;
67                      
68                        // pulls are not supported by verilator
69                        `ifndef VERILATOR
70                          // pullup / pulldown termination
71                          assign (weak0, weak1) inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
72                        `endif
73                        end else if (PadType == BidirTol ||
74                                     PadType == DualBidirTol ||
75                                     PadType == BidirOd ||
76                                     PadType == BidirStd) begin : gen_bidir
77                      
78         1/1              assign in_raw_o = ie ? inout_io : 1'bz;
           Tests:       T10 T13 T11 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T10 T13 T11 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T47 T21 T23 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T22 T20 T47 
86                      
87                        // drive strength attributes are not supported by verilator
88                        `ifdef VERILATOR
89                          assign inout_io = (oe)   ? out : 1'bz;
90                        `else
91                          // different driver types
92         1/1              assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T22 T20 T47 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T22 T20 T47 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T10 T11 T12 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[12].u_mio_pad.gen_generic.u_impl_generic
 | Total | Covered | Percent | 
| Conditions | 33 | 33 | 100.00 | 
| Logical | 33 | 33 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       51
 EXPRESSION (ie_i & ((~attr_i.input_disable)))
             --1-   ------------2------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Unreachable |  | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T23,T24,T25 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T13,T31,T15 | 
| 0 | 1 | Covered | T10,T13,T11 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T47,T21,T23 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       85
 EXPRESSION (oe_i & ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en))))
             --1-   ---------------------------------2---------------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T22,T20,T47 | 
 LINE       85
 SUB-EXPRESSION ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en)))
                 --------------------1-------------------   -----------2----------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T23,T24,T25 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
 LINE       85
 SUB-EXPRESSION (attr_i.virt_od_en & ((~gen_bidir.out)))
                 --------1--------   ---------2--------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       92
 EXPRESSION ((gen_bidir.oe && attr_i.drive_strength[0]) ? gen_bidir.out : 1'bz)
             ---------------------1--------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T22,T20,T47 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       93
 EXPRESSION ((gen_bidir.oe && ((!attr_i.drive_strength[0]))) ? gen_bidir.out : 1'bz)
             -----------------------1-----------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T22,T20,T47 | 
 LINE       93
 SUB-EXPRESSION (gen_bidir.oe && ((!attr_i.drive_strength[0])))
                 ------1-----    --------------2--------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T22,T20,T47 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T10,T11,T12 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[12].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
78 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
92 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
93 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
95 | 
2 | 
2 | 
100.00 | 
78             assign in_raw_o = ie ? inout_io : 1'bz;
                                    -1-  
                                    ==>  
                                    ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T23,T24,T25 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
93             assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                      -1-  
                                                                                      ==>  
                                                                                      ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T22,T20,T47 | 
| 0 | 
Covered | 
T1,T2,T3 | 
95             assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
                                                                   -1-  
                                                                   ==>  
                                                                   ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T10,T11,T12 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[12].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1015 | 
1015 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1015 | 
1015 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T7 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
| T106 | 
1 | 
1 | 
0 | 
0 | 
| T107 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[13].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 39 | 0 | 0 |  | 
| CONT_ASSIGN | 51 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 78 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 80 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 84 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 92 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 93 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 95 | 1 | 1 | 100.00 | 
38                        logic unused_sigs;
39         unreachable    assign unused_sigs = ^{attr_i.slew_rate,
40                                               attr_i.drive_strength[3:1],
41                                               attr_i.od_en,
42                                               attr_i.schmitt_en,
43                                               attr_i.keep_en,
44                                               scanmode_i,
45                                               pok_i};
46                        //VCS coverage on
47                        // pragma coverage on
48                      
49                        // Input enable (active-high)
50                        logic ie;
51         1/1            assign ie = ie_i & ~attr_i.input_disable;
           Tests:       T23 T24 T25 
52                      
53                        if (PadType == InputStd) begin : gen_input_only
54                          //VCS coverage off
55                          // pragma coverage off
56                          logic unused_in_sigs;
57                          assign unused_in_sigs = ^{out_i,
58                                                    oe_i,
59                                                    attr_i.virt_od_en,
60                                                    attr_i.drive_strength};
61                          //VCS coverage on
62                          // pragma coverage on
63                      
64                          assign in_raw_o = ie ? inout_io : 1'bz;
65                          // input inversion
66                          assign in_o = attr_i.invert ^ in_raw_o;
67                      
68                        // pulls are not supported by verilator
69                        `ifndef VERILATOR
70                          // pullup / pulldown termination
71                          assign (weak0, weak1) inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
72                        `endif
73                        end else if (PadType == BidirTol ||
74                                     PadType == DualBidirTol ||
75                                     PadType == BidirOd ||
76                                     PadType == BidirStd) begin : gen_bidir
77                      
78         1/1              assign in_raw_o = ie ? inout_io : 1'bz;
           Tests:       T10 T13 T5 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T10 T13 T5 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T22 T21 T73 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T22 T21 T73 
86                      
87                        // drive strength attributes are not supported by verilator
88                        `ifdef VERILATOR
89                          assign inout_io = (oe)   ? out : 1'bz;
90                        `else
91                          // different driver types
92         1/1              assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T22 T21 T73 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T22 T21 T73 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T10 T22 T47 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[13].u_mio_pad.gen_generic.u_impl_generic
 | Total | Covered | Percent | 
| Conditions | 33 | 33 | 100.00 | 
| Logical | 33 | 33 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       51
 EXPRESSION (ie_i & ((~attr_i.input_disable)))
             --1-   ------------2------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Unreachable |  | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T23,T24,T25 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T13,T5,T128 | 
| 0 | 1 | Covered | T10,T13,T128 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T22,T21,T73 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       85
 EXPRESSION (oe_i & ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en))))
             --1-   ---------------------------------2---------------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T22,T21,T73 | 
 LINE       85
 SUB-EXPRESSION ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en)))
                 --------------------1-------------------   -----------2----------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T23,T24,T25 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
 LINE       85
 SUB-EXPRESSION (attr_i.virt_od_en & ((~gen_bidir.out)))
                 --------1--------   ---------2--------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       92
 EXPRESSION ((gen_bidir.oe && attr_i.drive_strength[0]) ? gen_bidir.out : 1'bz)
             ---------------------1--------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T22,T21,T73 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       93
 EXPRESSION ((gen_bidir.oe && ((!attr_i.drive_strength[0]))) ? gen_bidir.out : 1'bz)
             -----------------------1-----------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T22,T21,T73 | 
 LINE       93
 SUB-EXPRESSION (gen_bidir.oe && ((!attr_i.drive_strength[0])))
                 ------1-----    --------------2--------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T22,T21,T73 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T10,T22,T47 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[13].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
78 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
92 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
93 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
95 | 
2 | 
2 | 
100.00 | 
78             assign in_raw_o = ie ? inout_io : 1'bz;
                                    -1-  
                                    ==>  
                                    ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T23,T24,T25 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
93             assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                      -1-  
                                                                                      ==>  
                                                                                      ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T22,T21,T73 | 
| 0 | 
Covered | 
T1,T2,T3 | 
95             assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
                                                                   -1-  
                                                                   ==>  
                                                                   ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T10,T22,T47 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[13].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1015 | 
1015 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1015 | 
1015 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T7 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
| T106 | 
1 | 
1 | 
0 | 
0 | 
| T107 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[14].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 39 | 0 | 0 |  | 
| CONT_ASSIGN | 51 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 78 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 80 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 84 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 92 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 93 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 95 | 1 | 1 | 100.00 | 
38                        logic unused_sigs;
39         unreachable    assign unused_sigs = ^{attr_i.slew_rate,
40                                               attr_i.drive_strength[3:1],
41                                               attr_i.od_en,
42                                               attr_i.schmitt_en,
43                                               attr_i.keep_en,
44                                               scanmode_i,
45                                               pok_i};
46                        //VCS coverage on
47                        // pragma coverage on
48                      
49                        // Input enable (active-high)
50                        logic ie;
51         1/1            assign ie = ie_i & ~attr_i.input_disable;
           Tests:       T23 T24 T25 
52                      
53                        if (PadType == InputStd) begin : gen_input_only
54                          //VCS coverage off
55                          // pragma coverage off
56                          logic unused_in_sigs;
57                          assign unused_in_sigs = ^{out_i,
58                                                    oe_i,
59                                                    attr_i.virt_od_en,
60                                                    attr_i.drive_strength};
61                          //VCS coverage on
62                          // pragma coverage on
63                      
64                          assign in_raw_o = ie ? inout_io : 1'bz;
65                          // input inversion
66                          assign in_o = attr_i.invert ^ in_raw_o;
67                      
68                        // pulls are not supported by verilator
69                        `ifndef VERILATOR
70                          // pullup / pulldown termination
71                          assign (weak0, weak1) inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
72                        `endif
73                        end else if (PadType == BidirTol ||
74                                     PadType == DualBidirTol ||
75                                     PadType == BidirOd ||
76                                     PadType == BidirStd) begin : gen_bidir
77                      
78         1/1              assign in_raw_o = ie ? inout_io : 1'bz;
           Tests:       T1 T2 T3 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T1 T2 T3 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T1 T2 T3 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T1 T2 T3 
86                      
87                        // drive strength attributes are not supported by verilator
88                        `ifdef VERILATOR
89                          assign inout_io = (oe)   ? out : 1'bz;
90                        `else
91                          // different driver types
92         1/1              assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T1 T2 T3 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T1 T2 T3 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T10 T22 T47 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[14].u_mio_pad.gen_generic.u_impl_generic
 | Total | Covered | Percent | 
| Conditions | 33 | 33 | 100.00 | 
| Logical | 33 | 33 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       51
 EXPRESSION (ie_i & ((~attr_i.input_disable)))
             --1-   ------------2------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Unreachable |  | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T23,T24,T25 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T13,T128,T37 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T25,T46 | 
| 1 | 1 | Covered | T23,T25,T46 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T1,T2,T3 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       85
 EXPRESSION (oe_i & ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en))))
             --1-   ---------------------------------2---------------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       85
 SUB-EXPRESSION ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en)))
                 --------------------1-------------------   -----------2----------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T23,T24,T25 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
 LINE       85
 SUB-EXPRESSION (attr_i.virt_od_en & ((~gen_bidir.out)))
                 --------1--------   ---------2--------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       92
 EXPRESSION ((gen_bidir.oe && attr_i.drive_strength[0]) ? gen_bidir.out : 1'bz)
             ---------------------1--------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T1,T2,T3 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       93
 EXPRESSION ((gen_bidir.oe && ((!attr_i.drive_strength[0]))) ? gen_bidir.out : 1'bz)
             -----------------------1-----------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       93
 SUB-EXPRESSION (gen_bidir.oe && ((!attr_i.drive_strength[0])))
                 ------1-----    --------------2--------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T10,T22,T47 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[14].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
78 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
92 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
93 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
95 | 
2 | 
2 | 
100.00 | 
78             assign in_raw_o = ie ? inout_io : 1'bz;
                                    -1-  
                                    ==>  
                                    ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T23,T24,T25 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
93             assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                      -1-  
                                                                                      ==>  
                                                                                      ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
95             assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
                                                                   -1-  
                                                                   ==>  
                                                                   ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T10,T22,T47 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[14].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1015 | 
1015 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1015 | 
1015 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T7 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
| T106 | 
1 | 
1 | 
0 | 
0 | 
| T107 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[15].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 39 | 0 | 0 |  | 
| CONT_ASSIGN | 51 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 78 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 80 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 84 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 92 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 93 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 95 | 1 | 1 | 100.00 | 
38                        logic unused_sigs;
39         unreachable    assign unused_sigs = ^{attr_i.slew_rate,
40                                               attr_i.drive_strength[3:1],
41                                               attr_i.od_en,
42                                               attr_i.schmitt_en,
43                                               attr_i.keep_en,
44                                               scanmode_i,
45                                               pok_i};
46                        //VCS coverage on
47                        // pragma coverage on
48                      
49                        // Input enable (active-high)
50                        logic ie;
51         1/1            assign ie = ie_i & ~attr_i.input_disable;
           Tests:       T23 T24 T25 
52                      
53                        if (PadType == InputStd) begin : gen_input_only
54                          //VCS coverage off
55                          // pragma coverage off
56                          logic unused_in_sigs;
57                          assign unused_in_sigs = ^{out_i,
58                                                    oe_i,
59                                                    attr_i.virt_od_en,
60                                                    attr_i.drive_strength};
61                          //VCS coverage on
62                          // pragma coverage on
63                      
64                          assign in_raw_o = ie ? inout_io : 1'bz;
65                          // input inversion
66                          assign in_o = attr_i.invert ^ in_raw_o;
67                      
68                        // pulls are not supported by verilator
69                        `ifndef VERILATOR
70                          // pullup / pulldown termination
71                          assign (weak0, weak1) inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
72                        `endif
73                        end else if (PadType == BidirTol ||
74                                     PadType == DualBidirTol ||
75                                     PadType == BidirOd ||
76                                     PadType == BidirStd) begin : gen_bidir
77                      
78         1/1              assign in_raw_o = ie ? inout_io : 1'bz;
           Tests:       T10 T13 T30 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T10 T13 T30 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T13 T30 T22 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T13 T30 T22 
86                      
87                        // drive strength attributes are not supported by verilator
88                        `ifdef VERILATOR
89                          assign inout_io = (oe)   ? out : 1'bz;
90                        `else
91                          // different driver types
92         1/1              assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T13 T30 T22 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T13 T30 T22 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T10 T22 T47 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[15].u_mio_pad.gen_generic.u_impl_generic
 | Total | Covered | Percent | 
| Conditions | 33 | 33 | 100.00 | 
| Logical | 33 | 33 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       51
 EXPRESSION (ie_i & ((~attr_i.input_disable)))
             --1-   ------------2------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Unreachable |  | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T23,T24,T25 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T30,T31,T15 | 
| 0 | 1 | Covered | T10,T13,T30 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T13,T30,T22 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       85
 EXPRESSION (oe_i & ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en))))
             --1-   ---------------------------------2---------------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T13,T30,T22 | 
 LINE       85
 SUB-EXPRESSION ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en)))
                 --------------------1-------------------   -----------2----------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T23,T24,T25 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
 LINE       85
 SUB-EXPRESSION (attr_i.virt_od_en & ((~gen_bidir.out)))
                 --------1--------   ---------2--------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       92
 EXPRESSION ((gen_bidir.oe && attr_i.drive_strength[0]) ? gen_bidir.out : 1'bz)
             ---------------------1--------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T13,T30,T22 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       93
 EXPRESSION ((gen_bidir.oe && ((!attr_i.drive_strength[0]))) ? gen_bidir.out : 1'bz)
             -----------------------1-----------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T13,T30,T22 | 
 LINE       93
 SUB-EXPRESSION (gen_bidir.oe && ((!attr_i.drive_strength[0])))
                 ------1-----    --------------2--------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T13,T30,T22 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T10,T22,T47 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[15].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
78 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
92 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
93 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
95 | 
2 | 
2 | 
100.00 | 
78             assign in_raw_o = ie ? inout_io : 1'bz;
                                    -1-  
                                    ==>  
                                    ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T23,T24,T25 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
93             assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                      -1-  
                                                                                      ==>  
                                                                                      ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T13,T30,T22 | 
| 0 | 
Covered | 
T1,T2,T3 | 
95             assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
                                                                   -1-  
                                                                   ==>  
                                                                   ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T10,T22,T47 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[15].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1015 | 
1015 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1015 | 
1015 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T7 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
| T106 | 
1 | 
1 | 
0 | 
0 | 
| T107 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[16].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 39 | 0 | 0 |  | 
| CONT_ASSIGN | 51 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 78 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 80 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 84 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 92 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 93 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 95 | 1 | 1 | 100.00 | 
38                        logic unused_sigs;
39         unreachable    assign unused_sigs = ^{attr_i.slew_rate,
40                                               attr_i.drive_strength[3:1],
41                                               attr_i.od_en,
42                                               attr_i.schmitt_en,
43                                               attr_i.keep_en,
44                                               scanmode_i,
45                                               pok_i};
46                        //VCS coverage on
47                        // pragma coverage on
48                      
49                        // Input enable (active-high)
50                        logic ie;
51         1/1            assign ie = ie_i & ~attr_i.input_disable;
           Tests:       T23 T24 T25 
52                      
53                        if (PadType == InputStd) begin : gen_input_only
54                          //VCS coverage off
55                          // pragma coverage off
56                          logic unused_in_sigs;
57                          assign unused_in_sigs = ^{out_i,
58                                                    oe_i,
59                                                    attr_i.virt_od_en,
60                                                    attr_i.drive_strength};
61                          //VCS coverage on
62                          // pragma coverage on
63                      
64                          assign in_raw_o = ie ? inout_io : 1'bz;
65                          // input inversion
66                          assign in_o = attr_i.invert ^ in_raw_o;
67                      
68                        // pulls are not supported by verilator
69                        `ifndef VERILATOR
70                          // pullup / pulldown termination
71                          assign (weak0, weak1) inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
72                        `endif
73                        end else if (PadType == BidirTol ||
74                                     PadType == DualBidirTol ||
75                                     PadType == BidirOd ||
76                                     PadType == BidirStd) begin : gen_bidir
77                      
78         1/1              assign in_raw_o = ie ? inout_io : 1'bz;
           Tests:       T13 T30 T15 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T13 T30 T15 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T30 T15 T18 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T13 T30 T15 
86                      
87                        // drive strength attributes are not supported by verilator
88                        `ifdef VERILATOR
89                          assign inout_io = (oe)   ? out : 1'bz;
90                        `else
91                          // different driver types
92         1/1              assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T13 T30 T15 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T13 T30 T15 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T23 T24 T25 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[16].u_mio_pad.gen_generic.u_impl_generic
 | Total | Covered | Percent | 
| Conditions | 33 | 33 | 100.00 | 
| Logical | 33 | 33 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       51
 EXPRESSION (ie_i & ((~attr_i.input_disable)))
             --1-   ------------2------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Unreachable |  | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T23,T24,T25 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T13,T30,T15 | 
| 0 | 1 | Covered | T30,T15,T18 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T30,T15,T18 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       85
 EXPRESSION (oe_i & ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en))))
             --1-   ---------------------------------2---------------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T13,T30,T15 | 
 LINE       85
 SUB-EXPRESSION ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en)))
                 --------------------1-------------------   -----------2----------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T23,T24,T25 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
 LINE       85
 SUB-EXPRESSION (attr_i.virt_od_en & ((~gen_bidir.out)))
                 --------1--------   ---------2--------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       92
 EXPRESSION ((gen_bidir.oe && attr_i.drive_strength[0]) ? gen_bidir.out : 1'bz)
             ---------------------1--------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T13,T30,T15 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       93
 EXPRESSION ((gen_bidir.oe && ((!attr_i.drive_strength[0]))) ? gen_bidir.out : 1'bz)
             -----------------------1-----------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T13,T30,T15 | 
 LINE       93
 SUB-EXPRESSION (gen_bidir.oe && ((!attr_i.drive_strength[0])))
                 ------1-----    --------------2--------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T13,T30,T15 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[16].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
78 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
92 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
93 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
95 | 
2 | 
2 | 
100.00 | 
78             assign in_raw_o = ie ? inout_io : 1'bz;
                                    -1-  
                                    ==>  
                                    ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T23,T24,T25 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
93             assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                      -1-  
                                                                                      ==>  
                                                                                      ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T13,T30,T15 | 
| 0 | 
Covered | 
T1,T2,T3 | 
95             assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
                                                                   -1-  
                                                                   ==>  
                                                                   ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[16].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1015 | 
1015 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1015 | 
1015 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T7 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
| T106 | 
1 | 
1 | 
0 | 
0 | 
| T107 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[17].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 39 | 0 | 0 |  | 
| CONT_ASSIGN | 51 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 78 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 80 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 84 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 92 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 93 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 95 | 1 | 1 | 100.00 | 
38                        logic unused_sigs;
39         unreachable    assign unused_sigs = ^{attr_i.slew_rate,
40                                               attr_i.drive_strength[3:1],
41                                               attr_i.od_en,
42                                               attr_i.schmitt_en,
43                                               attr_i.keep_en,
44                                               scanmode_i,
45                                               pok_i};
46                        //VCS coverage on
47                        // pragma coverage on
48                      
49                        // Input enable (active-high)
50                        logic ie;
51         1/1            assign ie = ie_i & ~attr_i.input_disable;
           Tests:       T23 T24 T25 
52                      
53                        if (PadType == InputStd) begin : gen_input_only
54                          //VCS coverage off
55                          // pragma coverage off
56                          logic unused_in_sigs;
57                          assign unused_in_sigs = ^{out_i,
58                                                    oe_i,
59                                                    attr_i.virt_od_en,
60                                                    attr_i.drive_strength};
61                          //VCS coverage on
62                          // pragma coverage on
63                      
64                          assign in_raw_o = ie ? inout_io : 1'bz;
65                          // input inversion
66                          assign in_o = attr_i.invert ^ in_raw_o;
67                      
68                        // pulls are not supported by verilator
69                        `ifndef VERILATOR
70                          // pullup / pulldown termination
71                          assign (weak0, weak1) inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
72                        `endif
73                        end else if (PadType == BidirTol ||
74                                     PadType == DualBidirTol ||
75                                     PadType == BidirOd ||
76                                     PadType == BidirStd) begin : gen_bidir
77                      
78         1/1              assign in_raw_o = ie ? inout_io : 1'bz;
           Tests:       T13 T30 T31 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T13 T30 T31 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T30 T22 T41 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T30 T22 T41 
86                      
87                        // drive strength attributes are not supported by verilator
88                        `ifdef VERILATOR
89                          assign inout_io = (oe)   ? out : 1'bz;
90                        `else
91                          // different driver types
92         1/1              assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T30 T22 T41 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T30 T22 T41 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T23 T24 T25 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[17].u_mio_pad.gen_generic.u_impl_generic
 | Total | Covered | Percent | 
| Conditions | 33 | 33 | 100.00 | 
| Logical | 33 | 33 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       51
 EXPRESSION (ie_i & ((~attr_i.input_disable)))
             --1-   ------------2------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Unreachable |  | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T23,T24,T25 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T13,T30,T31 | 
| 0 | 1 | Covered | T13,T30,T31 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T30,T22,T41 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       85
 EXPRESSION (oe_i & ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en))))
             --1-   ---------------------------------2---------------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T30,T22,T41 | 
 LINE       85
 SUB-EXPRESSION ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en)))
                 --------------------1-------------------   -----------2----------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T23,T24,T25 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
 LINE       85
 SUB-EXPRESSION (attr_i.virt_od_en & ((~gen_bidir.out)))
                 --------1--------   ---------2--------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       92
 EXPRESSION ((gen_bidir.oe && attr_i.drive_strength[0]) ? gen_bidir.out : 1'bz)
             ---------------------1--------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T30,T22,T41 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       93
 EXPRESSION ((gen_bidir.oe && ((!attr_i.drive_strength[0]))) ? gen_bidir.out : 1'bz)
             -----------------------1-----------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T30,T22,T41 | 
 LINE       93
 SUB-EXPRESSION (gen_bidir.oe && ((!attr_i.drive_strength[0])))
                 ------1-----    --------------2--------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T30,T22,T41 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[17].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
78 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
92 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
93 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
95 | 
2 | 
2 | 
100.00 | 
78             assign in_raw_o = ie ? inout_io : 1'bz;
                                    -1-  
                                    ==>  
                                    ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T23,T24,T25 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
93             assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                      -1-  
                                                                                      ==>  
                                                                                      ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T30,T22,T41 | 
| 0 | 
Covered | 
T1,T2,T3 | 
95             assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
                                                                   -1-  
                                                                   ==>  
                                                                   ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[17].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1015 | 
1015 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1015 | 
1015 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T7 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
| T106 | 
1 | 
1 | 
0 | 
0 | 
| T107 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[18].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 39 | 0 | 0 |  | 
| CONT_ASSIGN | 51 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 78 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 80 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 84 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 92 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 93 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 95 | 1 | 1 | 100.00 | 
38                        logic unused_sigs;
39         unreachable    assign unused_sigs = ^{attr_i.slew_rate,
40                                               attr_i.drive_strength[3:1],
41                                               attr_i.od_en,
42                                               attr_i.schmitt_en,
43                                               attr_i.keep_en,
44                                               scanmode_i,
45                                               pok_i};
46                        //VCS coverage on
47                        // pragma coverage on
48                      
49                        // Input enable (active-high)
50                        logic ie;
51         1/1            assign ie = ie_i & ~attr_i.input_disable;
           Tests:       T23 T24 T25 
52                      
53                        if (PadType == InputStd) begin : gen_input_only
54                          //VCS coverage off
55                          // pragma coverage off
56                          logic unused_in_sigs;
57                          assign unused_in_sigs = ^{out_i,
58                                                    oe_i,
59                                                    attr_i.virt_od_en,
60                                                    attr_i.drive_strength};
61                          //VCS coverage on
62                          // pragma coverage on
63                      
64                          assign in_raw_o = ie ? inout_io : 1'bz;
65                          // input inversion
66                          assign in_o = attr_i.invert ^ in_raw_o;
67                      
68                        // pulls are not supported by verilator
69                        `ifndef VERILATOR
70                          // pullup / pulldown termination
71                          assign (weak0, weak1) inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
72                        `endif
73                        end else if (PadType == BidirTol ||
74                                     PadType == DualBidirTol ||
75                                     PadType == BidirOd ||
76                                     PadType == BidirStd) begin : gen_bidir
77                      
78         1/1              assign in_raw_o = ie ? inout_io : 1'bz;
           Tests:       T4 T13 T30 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T4 T13 T30 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T4 T30 T15 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T4 T13 T30 
86                      
87                        // drive strength attributes are not supported by verilator
88                        `ifdef VERILATOR
89                          assign inout_io = (oe)   ? out : 1'bz;
90                        `else
91                          // different driver types
92         1/1              assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T4 T13 T30 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T4 T13 T30 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T23 T24 T25 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[18].u_mio_pad.gen_generic.u_impl_generic
 | Total | Covered | Percent | 
| Conditions | 33 | 33 | 100.00 | 
| Logical | 33 | 33 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       51
 EXPRESSION (ie_i & ((~attr_i.input_disable)))
             --1-   ------------2------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Unreachable |  | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T23,T24,T25 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T4,T13,T30 | 
| 0 | 1 | Covered | T4,T30,T61 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T4,T30,T15 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       85
 EXPRESSION (oe_i & ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en))))
             --1-   ---------------------------------2---------------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T4,T13,T30 | 
 LINE       85
 SUB-EXPRESSION ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en)))
                 --------------------1-------------------   -----------2----------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T23,T24,T25 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
 LINE       85
 SUB-EXPRESSION (attr_i.virt_od_en & ((~gen_bidir.out)))
                 --------1--------   ---------2--------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       92
 EXPRESSION ((gen_bidir.oe && attr_i.drive_strength[0]) ? gen_bidir.out : 1'bz)
             ---------------------1--------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T4,T13,T30 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       93
 EXPRESSION ((gen_bidir.oe && ((!attr_i.drive_strength[0]))) ? gen_bidir.out : 1'bz)
             -----------------------1-----------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T4,T13,T30 | 
 LINE       93
 SUB-EXPRESSION (gen_bidir.oe && ((!attr_i.drive_strength[0])))
                 ------1-----    --------------2--------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T4,T13,T30 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[18].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
78 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
92 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
93 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
95 | 
2 | 
2 | 
100.00 | 
78             assign in_raw_o = ie ? inout_io : 1'bz;
                                    -1-  
                                    ==>  
                                    ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T23,T24,T25 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
93             assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                      -1-  
                                                                                      ==>  
                                                                                      ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T13,T30 | 
| 0 | 
Covered | 
T1,T2,T3 | 
95             assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
                                                                   -1-  
                                                                   ==>  
                                                                   ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[18].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1015 | 
1015 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1015 | 
1015 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T7 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
| T106 | 
1 | 
1 | 
0 | 
0 | 
| T107 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[19].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 39 | 0 | 0 |  | 
| CONT_ASSIGN | 51 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 78 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 80 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 84 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 92 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 93 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 95 | 1 | 1 | 100.00 | 
38                        logic unused_sigs;
39         unreachable    assign unused_sigs = ^{attr_i.slew_rate,
40                                               attr_i.drive_strength[3:1],
41                                               attr_i.od_en,
42                                               attr_i.schmitt_en,
43                                               attr_i.keep_en,
44                                               scanmode_i,
45                                               pok_i};
46                        //VCS coverage on
47                        // pragma coverage on
48                      
49                        // Input enable (active-high)
50                        logic ie;
51         1/1            assign ie = ie_i & ~attr_i.input_disable;
           Tests:       T23 T24 T25 
52                      
53                        if (PadType == InputStd) begin : gen_input_only
54                          //VCS coverage off
55                          // pragma coverage off
56                          logic unused_in_sigs;
57                          assign unused_in_sigs = ^{out_i,
58                                                    oe_i,
59                                                    attr_i.virt_od_en,
60                                                    attr_i.drive_strength};
61                          //VCS coverage on
62                          // pragma coverage on
63                      
64                          assign in_raw_o = ie ? inout_io : 1'bz;
65                          // input inversion
66                          assign in_o = attr_i.invert ^ in_raw_o;
67                      
68                        // pulls are not supported by verilator
69                        `ifndef VERILATOR
70                          // pullup / pulldown termination
71                          assign (weak0, weak1) inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
72                        `endif
73                        end else if (PadType == BidirTol ||
74                                     PadType == DualBidirTol ||
75                                     PadType == BidirOd ||
76                                     PadType == BidirStd) begin : gen_bidir
77                      
78         1/1              assign in_raw_o = ie ? inout_io : 1'bz;
           Tests:       T4 T13 T30 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T4 T13 T30 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T4 T30 T35 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T4 T13 T30 
86                      
87                        // drive strength attributes are not supported by verilator
88                        `ifdef VERILATOR
89                          assign inout_io = (oe)   ? out : 1'bz;
90                        `else
91                          // different driver types
92         1/1              assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T4 T13 T30 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T4 T13 T30 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T23 T24 T25 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[19].u_mio_pad.gen_generic.u_impl_generic
 | Total | Covered | Percent | 
| Conditions | 33 | 33 | 100.00 | 
| Logical | 33 | 33 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       51
 EXPRESSION (ie_i & ((~attr_i.input_disable)))
             --1-   ------------2------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Unreachable |  | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T23,T24,T25 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T4,T13,T30 | 
| 0 | 1 | Covered | T4,T30,T61 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T4,T30,T35 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       85
 EXPRESSION (oe_i & ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en))))
             --1-   ---------------------------------2---------------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T4,T13,T30 | 
 LINE       85
 SUB-EXPRESSION ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en)))
                 --------------------1-------------------   -----------2----------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T23,T24,T25 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
 LINE       85
 SUB-EXPRESSION (attr_i.virt_od_en & ((~gen_bidir.out)))
                 --------1--------   ---------2--------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       92
 EXPRESSION ((gen_bidir.oe && attr_i.drive_strength[0]) ? gen_bidir.out : 1'bz)
             ---------------------1--------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T4,T13,T30 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       93
 EXPRESSION ((gen_bidir.oe && ((!attr_i.drive_strength[0]))) ? gen_bidir.out : 1'bz)
             -----------------------1-----------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T4,T13,T30 | 
 LINE       93
 SUB-EXPRESSION (gen_bidir.oe && ((!attr_i.drive_strength[0])))
                 ------1-----    --------------2--------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T4,T13,T30 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[19].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
78 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
92 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
93 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
95 | 
2 | 
2 | 
100.00 | 
78             assign in_raw_o = ie ? inout_io : 1'bz;
                                    -1-  
                                    ==>  
                                    ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T23,T24,T25 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
93             assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                      -1-  
                                                                                      ==>  
                                                                                      ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T13,T30 | 
| 0 | 
Covered | 
T1,T2,T3 | 
95             assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
                                                                   -1-  
                                                                   ==>  
                                                                   ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[19].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1015 | 
1015 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1015 | 
1015 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T7 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
| T106 | 
1 | 
1 | 
0 | 
0 | 
| T107 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[20].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| TOTAL |  | 8 | 8 | 100.00 | 
| CONT_ASSIGN | 39 | 0 | 0 |  | 
| CONT_ASSIGN | 51 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 78 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 80 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 84 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 85 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 92 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 93 | 1 | 1 | 100.00 | 
| CONT_ASSIGN | 95 | 1 | 1 | 100.00 | 
38                        logic unused_sigs;
39         unreachable    assign unused_sigs = ^{attr_i.slew_rate,
40                                               attr_i.drive_strength[3:1],
41                                               attr_i.od_en,
42                                               attr_i.schmitt_en,
43                                               attr_i.keep_en,
44                                               scanmode_i,
45                                               pok_i};
46                        //VCS coverage on
47                        // pragma coverage on
48                      
49                        // Input enable (active-high)
50                        logic ie;
51         1/1            assign ie = ie_i & ~attr_i.input_disable;
           Tests:       T23 T24 T25 
52                      
53                        if (PadType == InputStd) begin : gen_input_only
54                          //VCS coverage off
55                          // pragma coverage off
56                          logic unused_in_sigs;
57                          assign unused_in_sigs = ^{out_i,
58                                                    oe_i,
59                                                    attr_i.virt_od_en,
60                                                    attr_i.drive_strength};
61                          //VCS coverage on
62                          // pragma coverage on
63                      
64                          assign in_raw_o = ie ? inout_io : 1'bz;
65                          // input inversion
66                          assign in_o = attr_i.invert ^ in_raw_o;
67                      
68                        // pulls are not supported by verilator
69                        `ifndef VERILATOR
70                          // pullup / pulldown termination
71                          assign (weak0, weak1) inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
72                        `endif
73                        end else if (PadType == BidirTol ||
74                                     PadType == DualBidirTol ||
75                                     PadType == BidirOd ||
76                                     PadType == BidirStd) begin : gen_bidir
77                      
78         1/1              assign in_raw_o = ie ? inout_io : 1'bz;
           Tests:       T4 T13 T30 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T4 T13 T30 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T13 T30 T35 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T4 T13 T30 
86                      
87                        // drive strength attributes are not supported by verilator
88                        `ifdef VERILATOR
89                          assign inout_io = (oe)   ? out : 1'bz;
90                        `else
91                          // different driver types
92         1/1              assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T4 T13 T30 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T4 T13 T30 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T23 T24 T25 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[20].u_mio_pad.gen_generic.u_impl_generic
 | Total | Covered | Percent | 
| Conditions | 33 | 33 | 100.00 | 
| Logical | 33 | 33 | 100.00 | 
| Non-Logical | 0 | 0 |  | 
| Event | 0 | 0 |  | 
 LINE       51
 EXPRESSION (ie_i & ((~attr_i.input_disable)))
             --1-   ------------2------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Unreachable |  | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T23,T24,T25 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T4,T30,T63 | 
| 0 | 1 | Covered | T13,T30,T63 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T13,T30,T35 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       85
 EXPRESSION (oe_i & ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en))))
             --1-   ---------------------------------2---------------------------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T4,T13,T30 | 
 LINE       85
 SUB-EXPRESSION ((attr_i.virt_od_en & ((~gen_bidir.out))) | ((~attr_i.virt_od_en)))
                 --------------------1-------------------   -----------2----------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T23,T24,T25 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
 LINE       85
 SUB-EXPRESSION (attr_i.virt_od_en & ((~gen_bidir.out)))
                 --------1--------   ---------2--------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       92
 EXPRESSION ((gen_bidir.oe && attr_i.drive_strength[0]) ? gen_bidir.out : 1'bz)
             ---------------------1--------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T23,T24,T25 | 
| 1 | 0 | Covered | T4,T13,T30 | 
| 1 | 1 | Covered | T23,T24,T25 | 
 LINE       93
 EXPRESSION ((gen_bidir.oe && ((!attr_i.drive_strength[0]))) ? gen_bidir.out : 1'bz)
             -----------------------1-----------------------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T4,T13,T30 | 
 LINE       93
 SUB-EXPRESSION (gen_bidir.oe && ((!attr_i.drive_strength[0])))
                 ------1-----    --------------2--------------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T23,T24,T25 | 
| 1 | 1 | Covered | T4,T13,T30 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T23,T24,T25 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[20].u_mio_pad.gen_generic.u_impl_generic
 | Line No. | Total | Covered | Percent | 
| Branches | 
 | 
8 | 
8 | 
100.00 | 
| TERNARY | 
78 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
92 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
93 | 
2 | 
2 | 
100.00 | 
| TERNARY | 
95 | 
2 | 
2 | 
100.00 | 
78             assign in_raw_o = ie ? inout_io : 1'bz;
                                    -1-  
                                    ==>  
                                    ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T1,T2,T3 | 
| 0 | 
Covered | 
T23,T24,T25 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
93             assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                      -1-  
                                                                                      ==>  
                                                                                      ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T4,T13,T30 | 
| 0 | 
Covered | 
T1,T2,T3 | 
95             assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
                                                                   -1-  
                                                                   ==>  
                                                                   ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T23,T24,T25 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[20].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1015 | 
1015 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1015 | 
1015 | 
0 | 
0 | 
| T1 | 
1 | 
1 | 
0 | 
0 | 
| T2 | 
1 | 
1 | 
0 | 
0 | 
| T3 | 
1 | 
1 | 
0 | 
0 | 
| T4 | 
1 | 
1 | 
0 | 
0 | 
| T5 | 
1 | 
1 | 
0 | 
0 | 
| T7 | 
1 | 
1 | 
0 | 
0 | 
| T10 | 
1 | 
1 | 
0 | 
0 | 
| T13 | 
1 | 
1 | 
0 | 
0 | 
| T106 | 
1 | 
1 | 
0 | 
0 | 
| T107 | 
1 | 
1 | 
0 | 
0 |