Module Definition
dashboard | hierarchy | modlist | groups | tests | asserts



Module Instance : tb.dut.u_spid_csb_sync

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
95.24 100.00 100.00 85.71


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
96.97 100.00 100.00 90.91


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
90.46 95.20 84.31 86.70 90.62 95.45 dut


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
u_count_sync 100.00 100.00 100.00



Module Instance : tb.dut.u_upload.u_sys_cmdfifo_set

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
100.00 100.00 100.00 100.00


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
96.37 100.00 86.11 100.00 95.74 100.00 u_upload


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
u_count_sync 100.00 100.00 100.00

Line Coverage for Module : spid_csb_sync
Line No.TotalCoveredPercent
TOTAL1111100.00
ALWAYS3244100.00
ALWAYS4433100.00
ALWAYS6333100.00
CONT_ASSIGN7011100.00

31 always_ff @(posedge sck_i or negedge rst_ni) begin 32 1/1 if (!rst_ni) begin Tests: T1 T2 T3  33 1/1 sck_toggle <= 1'b0; Tests: T1 T2 T3  34 end else begin 35 1/1 if (sck_pulse_en_i) begin Tests: T1 T3 T4  36 1/1 sck_toggle <= ~csb_toggle; Tests: T1 T3 T4  37 end MISSING_ELSE 38 end 39 end 40 41 // Signal CSB de-assertion with a change in count, but only do it if the 42 // change originated from the SCK domain. 43 always_ff @(posedge csb_i or negedge rst_ni) begin 44 1/1 if (!rst_ni) begin Tests: T1 T2 T3  45 1/1 csb_toggle <= 1'b0; Tests: T1 T2 T3  46 end else begin 47 1/1 csb_toggle <= sck_toggle; Tests: T1 T2 T3  48 end 49 end 50 51 // clk_i is asynchronous to CSB/SCK, so use a synchronizer. 52 prim_flop_2sync #( 53 .Width (1) 54 ) u_count_sync ( 55 .clk_i, 56 .rst_ni, 57 .d_i (csb_toggle), 58 .q_o (sys_toggle) 59 ); 60 61 // sys_toggle_last is used to generate the pulse on differences. 62 always_ff @(posedge clk_i or negedge rst_ni) begin 63 1/1 if (!rst_ni) begin Tests: T1 T2 T3  64 1/1 sys_toggle_last <= 1'b0; Tests: T1 T2 T3  65 end else begin 66 1/1 sys_toggle_last <= sys_toggle; Tests: T1 T2 T3  67 end 68 end 69 70 1/1 assign csb_deasserted_pulse_o = (sys_toggle != sys_toggle_last); Tests: T1 T2 T3 

Cond Coverage for Module : spid_csb_sync
TotalCoveredPercent
Conditions22100.00
Logical22100.00
Non-Logical00
Event00

 LINE       70
 EXPRESSION (sys_toggle != sys_toggle_last)
            ---------------1---------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T3,T5

Branch Coverage for Module : spid_csb_sync
Line No.TotalCoveredPercent
Branches 7 7 100.00
IF 32 3 3 100.00
IF 44 2 2 100.00
IF 63 2 2 100.00


32 if (!rst_ni) begin -1- 33 sck_toggle <= 1'b0; ==> 34 end else begin 35 if (sck_pulse_en_i) begin -2- 36 sck_toggle <= ~csb_toggle; ==> 37 end MISSING_ELSE ==>

Branches:
-1--2-StatusTests
1 - Covered T1,T2,T3
0 1 Covered T1,T3,T4
0 0 Covered T1,T3,T4


44 if (!rst_ni) begin -1- 45 csb_toggle <= 1'b0; ==> 46 end else begin 47 csb_toggle <= sck_toggle; ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


63 if (!rst_ni) begin -1- 64 sys_toggle_last <= 1'b0; ==> 65 end else begin 66 sys_toggle_last <= sys_toggle; ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3

Line Coverage for Instance : tb.dut.u_spid_csb_sync
Line No.TotalCoveredPercent
TOTAL1111100.00
ALWAYS3244100.00
ALWAYS4433100.00
ALWAYS6333100.00
CONT_ASSIGN7011100.00

31 always_ff @(posedge sck_i or negedge rst_ni) begin 32 1/1 if (!rst_ni) begin Tests: T1 T2 T3  33 1/1 sck_toggle <= 1'b0; Tests: T1 T2 T3  34 end else begin 35 1/1 if (sck_pulse_en_i) begin Tests: T1 T3 T4  36 1/1 sck_toggle <= ~csb_toggle; Tests: T1 T3 T4  37 end ==> MISSING_ELSE 38 end 39 end 40 41 // Signal CSB de-assertion with a change in count, but only do it if the 42 // change originated from the SCK domain. 43 always_ff @(posedge csb_i or negedge rst_ni) begin 44 1/1 if (!rst_ni) begin Tests: T1 T2 T3  45 1/1 csb_toggle <= 1'b0; Tests: T1 T2 T3  46 end else begin 47 1/1 csb_toggle <= sck_toggle; Tests: T1 T2 T3  48 end 49 end 50 51 // clk_i is asynchronous to CSB/SCK, so use a synchronizer. 52 prim_flop_2sync #( 53 .Width (1) 54 ) u_count_sync ( 55 .clk_i, 56 .rst_ni, 57 .d_i (csb_toggle), 58 .q_o (sys_toggle) 59 ); 60 61 // sys_toggle_last is used to generate the pulse on differences. 62 always_ff @(posedge clk_i or negedge rst_ni) begin 63 1/1 if (!rst_ni) begin Tests: T1 T2 T3  64 1/1 sys_toggle_last <= 1'b0; Tests: T1 T2 T3  65 end else begin 66 1/1 sys_toggle_last <= sys_toggle; Tests: T1 T2 T3  67 end 68 end 69 70 1/1 assign csb_deasserted_pulse_o = (sys_toggle != sys_toggle_last); Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_spid_csb_sync
TotalCoveredPercent
Conditions22100.00
Logical22100.00
Non-Logical00
Event00

 LINE       70
 EXPRESSION (sys_toggle != sys_toggle_last)
            ---------------1---------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT1,T3,T5

Branch Coverage for Instance : tb.dut.u_spid_csb_sync
Line No.TotalCoveredPercent
Branches 7 6 85.71
IF 32 3 2 66.67
IF 44 2 2 100.00
IF 63 2 2 100.00


32 if (!rst_ni) begin -1- 33 sck_toggle <= 1'b0; ==> 34 end else begin 35 if (sck_pulse_en_i) begin -2- 36 sck_toggle <= ~csb_toggle; ==> 37 end MISSING_ELSE ==>

Branches:
-1--2-StatusTests
1 - Covered T1,T2,T3
0 1 Covered T1,T3,T4
0 0 Not Covered


44 if (!rst_ni) begin -1- 45 csb_toggle <= 1'b0; ==> 46 end else begin 47 csb_toggle <= sck_toggle; ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


63 if (!rst_ni) begin -1- 64 sys_toggle_last <= 1'b0; ==> 65 end else begin 66 sys_toggle_last <= sys_toggle; ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3

Line Coverage for Instance : tb.dut.u_upload.u_sys_cmdfifo_set
Line No.TotalCoveredPercent
TOTAL1111100.00
ALWAYS3244100.00
ALWAYS4433100.00
ALWAYS6333100.00
CONT_ASSIGN7011100.00

31 always_ff @(posedge sck_i or negedge rst_ni) begin 32 1/1 if (!rst_ni) begin Tests: T1 T2 T3  33 1/1 sck_toggle <= 1'b0; Tests: T1 T2 T3  34 end else begin 35 1/1 if (sck_pulse_en_i) begin Tests: T1 T3 T4  36 1/1 sck_toggle <= ~csb_toggle; Tests: T37 T45 T43  37 end MISSING_ELSE 38 end 39 end 40 41 // Signal CSB de-assertion with a change in count, but only do it if the 42 // change originated from the SCK domain. 43 always_ff @(posedge csb_i or negedge rst_ni) begin 44 1/1 if (!rst_ni) begin Tests: T1 T2 T3  45 1/1 csb_toggle <= 1'b0; Tests: T1 T2 T3  46 end else begin 47 1/1 csb_toggle <= sck_toggle; Tests: T1 T2 T3  48 end 49 end 50 51 // clk_i is asynchronous to CSB/SCK, so use a synchronizer. 52 prim_flop_2sync #( 53 .Width (1) 54 ) u_count_sync ( 55 .clk_i, 56 .rst_ni, 57 .d_i (csb_toggle), 58 .q_o (sys_toggle) 59 ); 60 61 // sys_toggle_last is used to generate the pulse on differences. 62 always_ff @(posedge clk_i or negedge rst_ni) begin 63 1/1 if (!rst_ni) begin Tests: T1 T2 T3  64 1/1 sys_toggle_last <= 1'b0; Tests: T1 T2 T3  65 end else begin 66 1/1 sys_toggle_last <= sys_toggle; Tests: T1 T2 T3  67 end 68 end 69 70 1/1 assign csb_deasserted_pulse_o = (sys_toggle != sys_toggle_last); Tests: T1 T2 T3 

Cond Coverage for Instance : tb.dut.u_upload.u_sys_cmdfifo_set
TotalCoveredPercent
Conditions22100.00
Logical22100.00
Non-Logical00
Event00

 LINE       70
 EXPRESSION (sys_toggle != sys_toggle_last)
            ---------------1---------------
-1-StatusTests
0CoveredT1,T2,T3
1CoveredT37,T45,T43

Branch Coverage for Instance : tb.dut.u_upload.u_sys_cmdfifo_set
Line No.TotalCoveredPercent
Branches 7 7 100.00
IF 32 3 3 100.00
IF 44 2 2 100.00
IF 63 2 2 100.00


32 if (!rst_ni) begin -1- 33 sck_toggle <= 1'b0; ==> 34 end else begin 35 if (sck_pulse_en_i) begin -2- 36 sck_toggle <= ~csb_toggle; ==> 37 end MISSING_ELSE ==>

Branches:
-1--2-StatusTests
1 - Covered T1,T2,T3
0 1 Covered T37,T45,T43
0 0 Covered T1,T3,T4


44 if (!rst_ni) begin -1- 45 csb_toggle <= 1'b0; ==> 46 end else begin 47 csb_toggle <= sck_toggle; ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3


63 if (!rst_ni) begin -1- 64 sys_toggle_last <= 1'b0; ==> 65 end else begin 66 sys_toggle_last <= sys_toggle; ==>

Branches:
-1-StatusTests
1 Covered T1,T2,T3
0 Covered T1,T2,T3

0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%