Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[21].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:       T21 T22 T23 
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:       T6 T29 T27 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T6 T29 T27 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T29 T27 T32 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T6 T29 T27 
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:       T6 T29 T27 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T6 T29 T27 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T21 T22 T23 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[21].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 | T21,T22,T23 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T21,T22,T23 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T6,T29,T27 | 
| 0 | 1 | Covered | T29,T27,T63 | 
| 1 | 0 | Covered | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T29,T27,T32 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T6,T29,T27 | 
 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 | T21,T22,T23 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T6,T29,T27 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T6,T29,T27 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T6,T29,T27 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T21,T22,T23 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[21].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 | 
T21,T22,T23 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T21,T22,T23 | 
| 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 | 
T6,T29,T27 | 
| 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 | 
T21,T22,T23 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[21].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1011 | 
1011 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1011 | 
1011 | 
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 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T103 | 
1 | 
1 | 
0 | 
0 | 
| T104 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[22].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:       T21 T22 T23 
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:       T6 T21 T22 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T6 T17 T21 
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:       T6 T17 T21 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T6 T17 T21 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T56 T57 T58 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[22].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 | T21,T22,T23 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T21,T22,T23 | 
| 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 | T6,T56,T57 | 
| 1 | 0 | Covered | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T6,T21,T22 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T6,T17,T21 | 
 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 | T21,T22,T23 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T6,T17,T21 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T6,T17,T21 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T6,T17,T21 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T56,T57,T58 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[22].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 | 
T21,T22,T23 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T21,T22,T23 | 
| 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 | 
T6,T17,T21 | 
| 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 | 
T56,T57,T58 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[22].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1011 | 
1011 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1011 | 
1011 | 
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 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T103 | 
1 | 
1 | 
0 | 
0 | 
| T104 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[23].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:       T21 T22 T23 
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:       T17 T21 T22 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T6 T17 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:       T6 T17 T20 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T6 T17 T20 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T56 T57 T58 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[23].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 | T21,T22,T23 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T21,T22,T23 | 
| 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 | T17,T241,T242 | 
| 1 | 0 | Covered | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T17,T21,T22 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T6,T17,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 | T21,T22,T23 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T6,T17,T20 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T6,T17,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 | T21,T22,T23 | 
| 1 | 1 | Covered | T6,T17,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 | T56,T57,T58 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[23].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 | 
T21,T22,T23 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T21,T22,T23 | 
| 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 | 
T6,T17,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 | 
T56,T57,T58 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[23].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1011 | 
1011 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1011 | 
1011 | 
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 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T103 | 
1 | 
1 | 
0 | 
0 | 
| T104 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[24].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:       T21 T22 T23 
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:       T6 T21 T22 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T6 T20 T21 
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:       T6 T20 T21 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T6 T20 T21 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T56 T57 T58 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[24].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 | T21,T22,T23 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T21,T22,T23 | 
| 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 | T6,T17,T241 | 
| 1 | 0 | Covered | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T6,T21,T22 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T6,T20,T21 | 
 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 | T21,T22,T23 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T6,T20,T21 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T6,T20,T21 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T6,T20,T21 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T56,T57,T58 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[24].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 | 
T21,T22,T23 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T21,T22,T23 | 
| 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 | 
T6,T20,T21 | 
| 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 | 
T56,T57,T58 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[24].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1011 | 
1011 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1011 | 
1011 | 
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 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T103 | 
1 | 
1 | 
0 | 
0 | 
| T104 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[25].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:       T21 T22 T23 
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:       T17 T21 T22 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T17 T21 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:       T17 T21 T22 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T17 T21 T22 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T1 T2 T3 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[25].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 | T21,T22,T23 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T21,T22,T23 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T6,T127,T128 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T23,T221 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T17,T21,T22 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T23,T221 | 
| 1 | 1 | Covered | T17,T21,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 | T21,T22,T23 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T17,T21,T22 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T17,T21,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 | T21,T22,T23 | 
| 1 | 1 | Covered | T17,T21,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 | T1,T2,T3 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[25].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 | 
T21,T22,T23 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T21,T22,T23 | 
| 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 | 
T17,T21,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 | 
T1,T2,T3 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[25].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1011 | 
1011 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1011 | 
1011 | 
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 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T103 | 
1 | 
1 | 
0 | 
0 | 
| T104 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[26].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:       T21 T22 T23 
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:       T21 T22 T23 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[26].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 | T21,T22,T23 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T21,T22,T23 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T6,T127,T128 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T1,T2,T3 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 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 | T21,T22,T23 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T1,T2,T3 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 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 | T21,T22,T23 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[26].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 | 
T21,T22,T23 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T21,T22,T23 | 
| 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 | 
T21,T22,T23 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[26].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1011 | 
1011 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1011 | 
1011 | 
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 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T103 | 
1 | 
1 | 
0 | 
0 | 
| T104 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[27].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:       T21 T22 T23 
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:       T17 T21 T22 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T6 T17 T21 
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:       T6 T17 T21 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T6 T17 T21 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T21 T22 T23 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[27].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 | T21,T22,T23 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T21,T22,T23 | 
| 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 | T243,T85,T88 | 
| 1 | 0 | Covered | T22,T23,T221 | 
| 1 | 1 | Covered | T22,T23,T222 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T17,T21,T22 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T6,T17,T21 | 
 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 | T21,T22,T23 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T6,T17,T21 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T6,T17,T21 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T6,T17,T21 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T21,T22,T23 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[27].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 | 
T21,T22,T23 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T21,T22,T23 | 
| 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 | 
T6,T17,T21 | 
| 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 | 
T21,T22,T23 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[27].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1011 | 
1011 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1011 | 
1011 | 
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 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T103 | 
1 | 
1 | 
0 | 
0 | 
| T104 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[28].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:       T21 T22 T23 
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:       T6 T30 T31 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T6 T30 T31 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T21 T22 T23 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T6 T21 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:       T6 T21 T22 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T6 T21 T22 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T21 T22 T23 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[28].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 | T21,T22,T23 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T21,T22,T23 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T6,T30,T31 | 
| 0 | 1 | Covered | T30,T31,T36 | 
| 1 | 0 | Covered | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T23,T221 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T6,T21,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 | T21,T22,T23 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T6,T21,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T6,T21,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T6,T21,T23 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T21,T22,T23 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[28].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 | 
T21,T22,T23 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T21,T22,T23 | 
| 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 | 
T6,T21,T23 | 
| 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 | 
T21,T22,T23 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[28].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1011 | 
1011 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1011 | 
1011 | 
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 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T103 | 
1 | 
1 | 
0 | 
0 | 
| T104 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[29].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:       T21 T22 T23 
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:       T6 T7 T8 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T6 T7 T8 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T6 T15 T39 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T6 T15 T39 
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:       T6 T15 T39 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T6 T15 T39 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T21 T22 T23 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[29].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 | T21,T22,T23 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T21,T22,T23 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T7,T8,T70 | 
| 0 | 1 | Covered | T6,T7,T8 | 
| 1 | 0 | Covered | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T6,T15,T39 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T6,T15,T39 | 
 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 | T21,T22,T23 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T6,T15,T39 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T6,T15,T39 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T6,T15,T39 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T21,T22,T23 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[29].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 | 
T21,T22,T23 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T21,T22,T23 | 
| 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 | 
T6,T15,T39 | 
| 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 | 
T21,T22,T23 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[29].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1011 | 
1011 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1011 | 
1011 | 
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 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T103 | 
1 | 
1 | 
0 | 
0 | 
| T104 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[30].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:       T21 T22 T23 
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:       T20 T21 T22 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T20 T21 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:       T20 T21 T22 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T20 T21 T22 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T21 T22 T23 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[30].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 | T21,T22,T23 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T21,T22,T23 | 
| 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 | T6,T33,T34 | 
| 1 | 0 | Covered | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T221 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T20,T21,T22 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T20,T21,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 | T21,T22,T23 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T20,T21,T22 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T20,T21,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 | T21,T22,T23 | 
| 1 | 1 | Covered | T20,T21,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 | T21,T22,T23 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[30].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 | 
T21,T22,T23 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T21,T22,T23 | 
| 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 | 
T20,T21,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 | 
T21,T22,T23 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[30].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1011 | 
1011 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1011 | 
1011 | 
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 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T103 | 
1 | 
1 | 
0 | 
0 | 
| T104 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[31].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:       T21 T22 T23 
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:       T6 T27 T28 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T6 T27 T28 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T27 T15 T41 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T27 T15 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:       T27 T15 T41 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T27 T15 T41 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T21 T22 T23 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[31].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 | T21,T22,T23 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T21,T22,T23 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T6,T27,T28 | 
| 0 | 1 | Covered | T6,T27,T28 | 
| 1 | 0 | Covered | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T221 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T27,T15,T41 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T27,T15,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 | T21,T22,T23 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T27,T15,T41 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T27,T15,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 | T21,T22,T23 | 
| 1 | 1 | Covered | T27,T15,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 | T21,T22,T23 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[31].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 | 
T21,T22,T23 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T21,T22,T23 | 
| 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 | 
T27,T15,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 | 
T21,T22,T23 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[31].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1011 | 
1011 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1011 | 
1011 | 
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 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T103 | 
1 | 
1 | 
0 | 
0 | 
| T104 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[32].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:       T21 T22 T23 
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:       T6 T27 T32 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T6 T27 T32 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T27 T32 T72 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T27 T32 T72 
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:       T27 T32 T72 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T27 T32 T72 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T21 T22 T23 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[32].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 | T21,T22,T23 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T21,T22,T23 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T6,T27,T32 | 
| 0 | 1 | Covered | T6,T27,T32 | 
| 1 | 0 | Covered | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T27,T32,T72 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T27,T32,T72 | 
 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 | T21,T22,T23 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T27,T32,T72 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T27,T32,T72 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T27,T32,T72 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T21,T22,T23 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[32].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 | 
T21,T22,T23 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T21,T22,T23 | 
| 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 | 
T27,T32,T72 | 
| 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 | 
T21,T22,T23 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[32].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1011 | 
1011 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1011 | 
1011 | 
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 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T103 | 
1 | 
1 | 
0 | 
0 | 
| T104 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[33].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:       T21 T22 T23 
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:       T6 T27 T32 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T6 T27 T32 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T27 T32 T72 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T27 T32 T72 
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:       T27 T32 T72 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T27 T32 T72 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T21 T22 T23 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[33].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 | T21,T22,T23 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T21,T22,T23 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T6,T27,T32 | 
| 0 | 1 | Covered | T6,T27,T32 | 
| 1 | 0 | Covered | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T27,T32,T72 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T27,T32,T72 | 
 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 | T21,T22,T23 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T27,T32,T72 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T27,T32,T72 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T27,T32,T72 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T21,T22,T23 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[33].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 | 
T21,T22,T23 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T21,T22,T23 | 
| 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 | 
T27,T32,T72 | 
| 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 | 
T21,T22,T23 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[33].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1011 | 
1011 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1011 | 
1011 | 
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 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T103 | 
1 | 
1 | 
0 | 
0 | 
| T104 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[34].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:       T21 T22 T23 
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:       T6 T27 T32 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T6 T27 T32 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T6 T27 T32 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T6 T27 T32 
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:       T6 T27 T32 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T6 T27 T32 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T21 T22 T23 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[34].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 | T21,T22,T23 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T21,T22,T23 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T27,T32,T72 | 
| 0 | 1 | Covered | T6,T27,T32 | 
| 1 | 0 | Covered | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T6,T27,T32 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T6,T27,T32 | 
 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 | T21,T22,T23 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T6,T27,T32 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T6,T27,T32 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T6,T27,T32 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T21,T22,T23 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[34].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 | 
T21,T22,T23 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T21,T22,T23 | 
| 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 | 
T6,T27,T32 | 
| 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 | 
T21,T22,T23 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[34].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1011 | 
1011 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1011 | 
1011 | 
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 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T103 | 
1 | 
1 | 
0 | 
0 | 
| T104 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[35].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:       T21 T22 T23 
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:       T6 T33 T34 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T6 T33 T34 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T6 T27 T41 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T6 T27 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:       T6 T27 T41 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T6 T27 T41 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T21 T22 T23 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[35].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 | T21,T22,T23 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T21,T22,T23 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T33,T34,T59 | 
| 0 | 1 | Covered | T6,T33,T34 | 
| 1 | 0 | Covered | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T6,T27,T41 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T6,T27,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 | T21,T22,T23 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T6,T27,T41 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T6,T27,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 | T21,T22,T23 | 
| 1 | 1 | Covered | T6,T27,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 | T21,T22,T23 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[35].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 | 
T21,T22,T23 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T21,T22,T23 | 
| 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 | 
T6,T27,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 | 
T21,T22,T23 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[35].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1011 | 
1011 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1011 | 
1011 | 
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 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T103 | 
1 | 
1 | 
0 | 
0 | 
| T104 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[36].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:       T21 T22 T23 
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:       T6 T33 T34 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T6 T33 T34 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T6 T33 T34 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T6 T33 T34 
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:       T6 T33 T34 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T6 T33 T34 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T21 T22 T23 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[36].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 | T21,T22,T23 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T21,T22,T23 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T33,T34,T59 | 
| 0 | 1 | Covered | T6,T33,T34 | 
| 1 | 0 | Covered | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T6,T33,T34 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T6,T33,T34 | 
 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 | T21,T22,T23 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T6,T33,T34 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T6,T33,T34 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T6,T33,T34 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T21,T22,T23 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[36].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 | 
T21,T22,T23 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T21,T22,T23 | 
| 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 | 
T6,T33,T34 | 
| 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 | 
T21,T22,T23 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[36].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1011 | 
1011 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1011 | 
1011 | 
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 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T103 | 
1 | 
1 | 
0 | 
0 | 
| T104 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[37].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:       T21 T22 T23 
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:       T6 T33 T34 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T6 T33 T34 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T6 T27 T41 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T6 T27 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:       T6 T27 T41 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T6 T27 T41 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T21 T22 T23 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[37].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 | T21,T22,T23 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T21,T22,T23 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T33,T34,T59 | 
| 0 | 1 | Covered | T6,T33,T34 | 
| 1 | 0 | Covered | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T6,T27,T41 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T6,T27,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 | T21,T22,T23 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T6,T27,T41 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T6,T27,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 | T21,T22,T23 | 
| 1 | 1 | Covered | T6,T27,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 | T21,T22,T23 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[37].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 | 
T21,T22,T23 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T21,T22,T23 | 
| 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 | 
T6,T27,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 | 
T21,T22,T23 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[37].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1011 | 
1011 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1011 | 
1011 | 
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 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T103 | 
1 | 
1 | 
0 | 
0 | 
| T104 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[38].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:       T21 T22 T23 
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:       T6 T33 T34 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T6 T33 T34 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T6 T27 T41 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T6 T27 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:       T6 T27 T41 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T6 T27 T41 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T21 T22 T23 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[38].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 | T21,T22,T23 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T21,T22,T23 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T33,T34,T59 | 
| 0 | 1 | Covered | T6,T33,T34 | 
| 1 | 0 | Covered | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T6,T27,T41 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T6,T27,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 | T21,T22,T23 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T6,T27,T41 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T6,T27,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 | T21,T22,T23 | 
| 1 | 1 | Covered | T6,T27,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 | T21,T22,T23 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[38].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 | 
T21,T22,T23 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T21,T22,T23 | 
| 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 | 
T6,T27,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 | 
T21,T22,T23 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[38].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1011 | 
1011 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1011 | 
1011 | 
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 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T103 | 
1 | 
1 | 
0 | 
0 | 
| T104 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[39].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:       T21 T22 T23 
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:       T6 T33 T34 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T6 T33 T34 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T27 T41 T42 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T27 T41 T42 
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:       T27 T41 T42 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T27 T41 T42 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T21 T22 T23 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[39].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 | T21,T22,T23 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T21,T22,T23 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T6,T33,T34 | 
| 0 | 1 | Covered | T6,T33,T34 | 
| 1 | 0 | Covered | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T27,T41,T42 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T27,T41,T42 | 
 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 | T21,T22,T23 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T27,T41,T42 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T27,T41,T42 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T27,T41,T42 | 
 LINE       95
 EXPRESSION (attr_i.pull_en ? attr_i.pull_select : 1'bz)
             -------1------
| -1- | Status | Tests |                       
| 0 | Covered | T1,T2,T3 | 
| 1 | Covered | T21,T22,T23 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[39].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 | 
T21,T22,T23 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T21,T22,T23 | 
| 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 | 
T27,T41,T42 | 
| 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 | 
T21,T22,T23 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[39].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1011 | 
1011 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1011 | 
1011 | 
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 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T103 | 
1 | 
1 | 
0 | 
0 | 
| T104 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[40].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:       T21 T22 T23 
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:       T27 T15 T41 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T27 T15 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:       T27 T15 T41 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T27 T15 T41 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T21 T22 T23 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[40].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 | T21,T22,T23 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T21,T22,T23 | 
| 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 | T6,T27,T15 | 
| 1 | 0 | Covered | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T27,T15,T41 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T27,T15,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 | T21,T22,T23 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T27,T15,T41 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T27,T15,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 | T21,T22,T23 | 
| 1 | 1 | Covered | T27,T15,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 | T21,T22,T23 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[40].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 | 
T21,T22,T23 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T21,T22,T23 | 
| 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 | 
T27,T15,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 | 
T21,T22,T23 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[40].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1011 | 
1011 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1011 | 
1011 | 
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 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T103 | 
1 | 
1 | 
0 | 
0 | 
| T104 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[41].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:       T21 T22 T23 
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:       T6 T27 T15 
79                          // input inversion
80         1/1              assign in_o = attr_i.invert ^ in_raw_o;
           Tests:       T6 T27 T15 
81                      
82                          // virtual open drain emulation
83                          logic oe, out;
84         1/1              assign out = out_i ^ attr_i.invert;
           Tests:       T27 T15 T41 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T6 T27 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:       T6 T27 T15 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T6 T27 T15 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T21 T22 T23 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[41].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 | T21,T22,T23 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T21,T22,T23 | 
| 1 | Covered | T1,T2,T3 | 
 LINE       80
 EXPRESSION (attr_i.invert ^ in_raw_o)
             ------1------   ----2---
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T6,T27,T15 | 
| 0 | 1 | Covered | T27,T15,T41 | 
| 1 | 0 | Covered | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T27,T15,T41 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T6,T27,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 | T21,T22,T23 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T6,T27,T15 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T6,T27,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 | T21,T22,T23 | 
| 1 | 1 | Covered | T6,T27,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 | T21,T22,T23 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[41].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 | 
T21,T22,T23 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T21,T22,T23 | 
| 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 | 
T6,T27,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 | 
T21,T22,T23 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[41].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1011 | 
1011 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1011 | 
1011 | 
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 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T103 | 
1 | 
1 | 
0 | 
0 | 
| T104 | 
1 | 
1 | 
0 | 
0 | 
 
Line Coverage for Instance : tb.dut.u_padring.gen_mio_pads[42].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:       T21 T22 T23 
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:       T27 T41 T42 
85         1/1              assign oe  = oe_i & ((attr_i.virt_od_en & ~out) | ~attr_i.virt_od_en);
           Tests:       T6 T27 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:       T6 T27 T41 
93         1/1              assign (pull0, pull1)     inout_io = (oe && !attr_i.drive_strength[0]) ? out : 1'bz;
           Tests:       T6 T27 T41 
94                          // pullup / pulldown termination
95         1/1              assign (weak0, weak1)     inout_io = attr_i.pull_en ? attr_i.pull_select : 1'bz;
           Tests:       T21 T22 T23 
Cond Coverage for Instance : tb.dut.u_padring.gen_mio_pads[42].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 | T21,T22,T23 | 
| 1 | 1 | Covered | T1,T2,T3 | 
 LINE       78
 EXPRESSION (ie ? inout_io : 1'bz)
             -1
| -1- | Status | Tests |                       
| 0 | Covered | T21,T22,T23 | 
| 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 | T27,T89,T41 | 
| 1 | 0 | Covered | T21,T22,T23 | 
| 1 | 1 | Covered | T22,T23,T221 | 
 LINE       84
 EXPRESSION (out_i ^ attr_i.invert)
             --1--   ------2------
| -1- | -2- | Status | Tests |                       
| 0 | 0 | Covered | T1,T2,T3 | 
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T27,T41,T42 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T6,T27,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 | T21,T22,T23 | 
| 0 | 1 | Covered | T1,T2,T3 | 
| 1 | 0 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T21,T22,T23 | 
 LINE       92
 SUB-EXPRESSION (gen_bidir.oe && attr_i.drive_strength[0])
                 ------1-----    ------------2-----------
| -1- | -2- | Status | Tests |                       
| 0 | 1 | Covered | T21,T22,T23 | 
| 1 | 0 | Covered | T6,T27,T41 | 
| 1 | 1 | Covered | T21,T22,T23 | 
 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 | T6,T27,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 | T21,T22,T23 | 
| 1 | 1 | Covered | T6,T27,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 | T21,T22,T23 | 
Branch Coverage for Instance : tb.dut.u_padring.gen_mio_pads[42].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 | 
T21,T22,T23 | 
92             assign (strong0, strong1) inout_io = (oe && attr_i.drive_strength[0]) ? out : 1'bz;
                                                                                     -1-  
                                                                                     ==>  
                                                                                     ==>  
Branches:
| -1- | Status | Tests | 
| 1 | 
Covered | 
T21,T22,T23 | 
| 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 | 
T6,T27,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 | 
T21,T22,T23 | 
| 0 | 
Covered | 
T1,T2,T3 | 
Assert Coverage for Instance : tb.dut.u_padring.gen_mio_pads[42].u_mio_pad.gen_generic.u_impl_generic
Assertion Details
| Name | Attempts | Real Successes | Failures | Incomplete | 
| 
AnalogNoScan_A | 
1011 | 
1011 | 
0 | 
0 | 
AnalogNoScan_A
| Name | Attempts | Real Successes | Failures | Incomplete | 
| Total | 
1011 | 
1011 | 
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 | 
| T6 | 
1 | 
1 | 
0 | 
0 | 
| T29 | 
1 | 
1 | 
0 | 
0 | 
| T33 | 
1 | 
1 | 
0 | 
0 | 
| T103 | 
1 | 
1 | 
0 | 
0 | 
| T104 | 
1 | 
1 | 
0 | 
0 |