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

Module : rom_ctrl
SCORELINECONDTOGGLEFSMBRANCHASSERT
92.06 92.06

Source File(s) :
/workspace/default/sim-vcs/../src/lowrisc_ip_rom_ctrl_0.1/rtl/rom_ctrl.sv

Module self-instances :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
tb.dut.top_earlgrey.u_rom_ctrl 94.62 94.62



Module Instance : tb.dut.top_earlgrey.u_rom_ctrl

Instance :
SCORELINECONDTOGGLEFSMBRANCHASSERT
94.62 94.62


Instance's subtree :
SCORELINECONDTOGGLEFSMBRANCHASSERT
94.62 94.62


Parent :
SCORELINECONDTOGGLEFSMBRANCHASSERTNAME
92.50 90.68 86.81 100.00 top_earlgrey


Subtrees :
NAMESCORELINECONDTOGGLEFSMBRANCHASSERT
no children

Toggle Coverage for Module : rom_ctrl
TotalCoveredPercent
Totals 66 38 57.58
Total Bits 2810 2587 92.06
Total Bits 0->1 1405 1294 92.10
Total Bits 1->0 1405 1293 92.03

Ports 66 38 57.58
Port Bits 2810 2587 92.06
Port Bits 0->1 1405 1294 92.10
Port Bits 1->0 1405 1293 92.03

Port Details
NameToggleToggle 1->0TestsToggle 0->1TestsDirection
clk_i Yes Yes T4,T5,T6 Yes T4,T5,T6 INPUT
rst_ni Yes Yes T17,T18,T19 Yes T4,T5,T6 INPUT
rom_cfg_i.cfg[3:0] No No No INPUT
rom_cfg_i.cfg_en No No No INPUT
rom_cfg_i.test No No No INPUT
rom_tl_i.d_ready Yes Yes T4,T6,T20 Yes T4,T5,T6 INPUT
rom_tl_i.a_user.data_intg[6:0] Yes Yes T4,T76,T38 Yes T4,T76,T38 INPUT
rom_tl_i.a_user.cmd_intg[6:0] Yes Yes T4,T6,T20 Yes T4,T6,T20 INPUT
rom_tl_i.a_user.instr_type[3:0] Yes Yes T4,T6,T20 Yes T4,T6,T20 INPUT
rom_tl_i.a_user.rsvd[4:0] Unreachable Unreachable Unreachable INPUT
rom_tl_i.a_data[31:0] Yes Yes T4,T76,T38 Yes T4,T76,T38 INPUT
rom_tl_i.a_mask[3:0] Yes Yes T4,T6,T20 Yes T4,T6,T20 INPUT
rom_tl_i.a_address[1:0] No No No INPUT
rom_tl_i.a_address[15:2] Yes Yes T4,T6,T20 Yes T4,T6,T20 INPUT
rom_tl_i.a_address[31:16] Unreachable Unreachable Unreachable INPUT
rom_tl_i.a_source[4:0] Yes Yes *T4,*T6,*T20 Yes T4,T6,T20 INPUT
rom_tl_i.a_source[5] No No No INPUT
rom_tl_i.a_source[7:6] Unreachable Unreachable Unreachable INPUT
rom_tl_i.a_size[0] No No No INPUT
rom_tl_i.a_size[1] Yes Yes T4,T6,T20 Yes T4,T6,T20 INPUT
rom_tl_i.a_param[2:0] Unreachable Unreachable Unreachable INPUT
rom_tl_i.a_opcode[1:0] No No No INPUT
rom_tl_i.a_opcode[2] Yes Yes T4,T6,T20 Yes T4,T6,T20 INPUT
rom_tl_i.a_valid Yes Yes T4,T6,T20 Yes T4,T6,T20 INPUT
rom_tl_o.a_ready Yes Yes T4,T6,T20 Yes T4,T5,T6 OUTPUT
rom_tl_o.d_error No No No OUTPUT
rom_tl_o.d_user.data_intg[6:0] Yes Yes T4,T6,T20 Yes T4,T6,T20 OUTPUT
rom_tl_o.d_user.rsp_intg[1:0] Yes Yes T4,T6,T20 Yes T4,T6,T20 OUTPUT
rom_tl_o.d_user.rsp_intg[3:2] No No No OUTPUT
rom_tl_o.d_user.rsp_intg[4] Yes Yes *T4,*T6,*T20 Yes T4,T6,T20 OUTPUT
rom_tl_o.d_user.rsp_intg[6:5] No No No OUTPUT
rom_tl_o.d_data[31:0] Yes Yes T4,T6,T20 Yes T4,T6,T20 OUTPUT
rom_tl_o.d_sink No No No OUTPUT
rom_tl_o.d_source[4:0] Yes Yes *T4,*T6,*T20 Yes T4,T6,T20 OUTPUT
rom_tl_o.d_source[5] No No No OUTPUT
rom_tl_o.d_source[7:6] Unreachable Unreachable Unreachable OUTPUT
rom_tl_o.d_size[0] No No No OUTPUT
rom_tl_o.d_size[1] Yes Yes T4,T6,T20 Yes T4,T6,T20 OUTPUT
rom_tl_o.d_param[2:0] Unreachable Unreachable Unreachable OUTPUT
rom_tl_o.d_opcode[0] No No No OUTPUT
rom_tl_o.d_opcode[2:1] Unreachable Unreachable Unreachable OUTPUT
rom_tl_o.d_valid Yes Yes T4,T6,T20 Yes T4,T6,T20 OUTPUT
regs_tl_i.d_ready Yes Yes T17,T18,T19 Yes T4,T5,T6 INPUT
regs_tl_i.a_user.data_intg[1:0] Yes Yes T123,*T124,*T125 Yes T123,T124,T125 INPUT
regs_tl_i.a_user.data_intg[2] No No No INPUT
regs_tl_i.a_user.data_intg[5:3] Yes Yes *T162,*T149,*T150 Yes T162,T149,T150 INPUT
regs_tl_i.a_user.data_intg[6] No No No INPUT
regs_tl_i.a_user.cmd_intg[6:0] Yes Yes T162,T149,T150 Yes T162,T149,T150 INPUT
regs_tl_i.a_user.instr_type[0] Yes Yes *T162,*T149,*T150 Yes T162,T149,T150 INPUT
regs_tl_i.a_user.instr_type[2:1] No No No INPUT
regs_tl_i.a_user.instr_type[3] Yes Yes T162,T149,T150 Yes T162,T149,T150 INPUT
regs_tl_i.a_user.rsvd[4:0] Unreachable Unreachable Unreachable INPUT
regs_tl_i.a_data[0] Yes Yes *T123,*T124,*T125 Yes T123,T124,T125 INPUT
regs_tl_i.a_data[31:1] No No No INPUT
regs_tl_i.a_mask[3:0] Yes Yes T162,T149,T150 Yes T162,T149,T150 INPUT
regs_tl_i.a_address[1:0] No No No INPUT
regs_tl_i.a_address[6:2] Yes Yes T162,*T149,T150 Yes T162,T149,T150 INPUT
regs_tl_i.a_address[16:7] Unreachable Unreachable Unreachable INPUT
regs_tl_i.a_address[20:17] Yes Yes T162,T149,T150 Yes T162,T149,T150 INPUT
regs_tl_i.a_address[23:21] Unreachable Unreachable Unreachable INPUT
regs_tl_i.a_address[24] Yes Yes *T162,*T149,*T150 Yes T162,T149,T150 INPUT
regs_tl_i.a_address[29:25] Unreachable Unreachable Unreachable INPUT
regs_tl_i.a_address[30] Yes Yes *T162,*T149,*T150 Yes T162,T149,T150 INPUT
regs_tl_i.a_address[31] Unreachable Unreachable Unreachable INPUT
regs_tl_i.a_source[0] No No No INPUT
regs_tl_i.a_source[1] Yes Yes *T162,*T149,*T150 Yes T162,T149,T150 INPUT
regs_tl_i.a_source[5:2] No No No INPUT
regs_tl_i.a_source[7:6] Unreachable Unreachable Unreachable INPUT
regs_tl_i.a_size[0] No No No INPUT
regs_tl_i.a_size[1] Yes Yes T162,T149,T150 Yes T162,T149,T150 INPUT
regs_tl_i.a_param[2:0] Unreachable Unreachable Unreachable INPUT
regs_tl_i.a_opcode[1:0] No No No INPUT
regs_tl_i.a_opcode[2] Yes Yes T162,T149,T150 Yes T162,T149,T150 INPUT
regs_tl_i.a_valid Yes Yes T162,T149,T150 Yes T162,T149,T150 INPUT
regs_tl_o.a_ready Yes Yes T162,T149,T150 Yes T162,T149,T150 OUTPUT
regs_tl_o.d_error No No No OUTPUT
regs_tl_o.d_user.data_intg[6:0] Yes Yes T162,T150,T163 Yes T162,T150,T163 OUTPUT
regs_tl_o.d_user.rsp_intg[0] No No Yes T123,T124,T125 OUTPUT
regs_tl_o.d_user.rsp_intg[1] No Yes *T123,*T124,*T125 No OUTPUT
regs_tl_o.d_user.rsp_intg[3:2] No No No OUTPUT
regs_tl_o.d_user.rsp_intg[5:4] Yes Yes T149,T150,T164 Yes T162,T149,T150 OUTPUT
regs_tl_o.d_user.rsp_intg[6] No No No OUTPUT
regs_tl_o.d_data[31:0] Yes Yes T162,T150,T163 Yes T162,T150,T163 OUTPUT
regs_tl_o.d_sink No No No OUTPUT
regs_tl_o.d_source[0] No No No OUTPUT
regs_tl_o.d_source[1] Yes Yes *T162,*T149,*T150 Yes T162,T149,T150 OUTPUT
regs_tl_o.d_source[5:2] No No No OUTPUT
regs_tl_o.d_source[7:6] Unreachable Unreachable Unreachable OUTPUT
regs_tl_o.d_size[0] No No No OUTPUT
regs_tl_o.d_size[1] Yes Yes T149,T150,T164 Yes T162,T149,T150 OUTPUT
regs_tl_o.d_param[2:0] Unreachable Unreachable Unreachable OUTPUT
regs_tl_o.d_opcode[0] Yes Yes *T149,*T150,*T164 Yes T162,T149,T150 OUTPUT
regs_tl_o.d_opcode[2:1] Unreachable Unreachable Unreachable OUTPUT
regs_tl_o.d_valid Yes Yes T162,T149,T150 Yes T162,T149,T150 OUTPUT
alert_rx_i[0].ack_n Yes Yes T4,T5,T6 Yes T4,T5,T6 INPUT
alert_rx_i[0].ack_p Yes Yes T149,T33,T164 Yes T149,T33,T164 INPUT
alert_rx_i[0].ping_n Yes Yes T33,T34,T35 Yes T33,T34,T35 INPUT
alert_rx_i[0].ping_p Yes Yes T33,T34,T35 Yes T33,T34,T35 INPUT
alert_tx_o[0].alert_n Yes Yes T4,T5,T6 Yes T4,T5,T6 OUTPUT
alert_tx_o[0].alert_p Yes Yes T149,T33,T164 Yes T149,T33,T164 OUTPUT
pwrmgr_data_o.good[3:0] Yes Yes T4,T5,T6 Yes T17,T18,T19 OUTPUT
pwrmgr_data_o.done[3:0] Yes Yes T4,T5,T6 Yes T17,T18,T19 OUTPUT
keymgr_data_o.valid Yes Yes T17,T18,T19 Yes T4,T5,T6 OUTPUT
keymgr_data_o.data[255:0] Yes Yes T17,T18,T19 Yes T4,T5,T6 OUTPUT
kmac_data_i.error No No Yes T79,T217,T218 INPUT
kmac_data_i.digest_share1[383:0] Yes Yes T5,T6,T20 Yes T5,T6,T20 INPUT
kmac_data_i.digest_share0[383:0] Yes Yes T4,T36,T76 Yes T4,T36,T76 INPUT
kmac_data_i.done Yes Yes T4,T5,T6 Yes T4,T5,T6 INPUT
kmac_data_i.ready Yes Yes T4,T5,T6 Yes T4,T5,T6 INPUT
kmac_data_o.last Yes Yes T4,T5,T6 Yes T4,T5,T6 OUTPUT
kmac_data_o.strb[7:0] No No No OUTPUT
kmac_data_o.data[38:0] Yes Yes T4,T5,T6 Yes T4,T5,T6 OUTPUT
kmac_data_o.data[63:39] No No No OUTPUT
kmac_data_o.valid Yes Yes T4,T5,T6 Yes T4,T5,T6 OUTPUT

*Tests covering at least one bit in the range
Toggle Coverage for Instance : tb.dut.top_earlgrey.u_rom_ctrl
TotalCoveredPercent
Totals 63 39 61.90
Total Bits 2734 2587 94.62
Total Bits 0->1 1367 1294 94.66
Total Bits 1->0 1367 1293 94.59

Ports 63 39 61.90
Port Bits 2734 2587 94.62
Port Bits 0->1 1367 1294 94.66
Port Bits 1->0 1367 1293 94.59

Port Details
NameToggleToggle 1->0TestsToggle 0->1TestsDirectionExclude Annotation
clk_i Yes Yes T4,T5,T6 Yes T4,T5,T6 INPUT
rst_ni Yes Yes T17,T18,T19 Yes T4,T5,T6 INPUT
rom_cfg_i.cfg[3:0] Excluded Excluded Excluded INPUT [LOW_RISK] Covered in formal conn: hw/top_earlgrey/formal/conn_csvs/ast_mem_cfg.csv
rom_cfg_i.cfg_en[0:0] Excluded Excluded Excluded INPUT [LOW_RISK] Covered in formal conn: hw/top_earlgrey/formal/conn_csvs/ast_mem_cfg.csv
rom_cfg_i.test No No No INPUT
rom_tl_i.d_ready Yes Yes T4,T6,T20 Yes T4,T5,T6 INPUT
rom_tl_i.a_user.data_intg[6:0] Yes Yes T4,T76,T38 Yes T4,T76,T38 INPUT
rom_tl_i.a_user.cmd_intg[6:0] Yes Yes T4,T6,T20 Yes T4,T6,T20 INPUT
rom_tl_i.a_user.instr_type[3:0] Yes Yes T4,T6,T20 Yes T4,T6,T20 INPUT
rom_tl_i.a_user.rsvd[4:0] Unreachable Unreachable Unreachable INPUT
rom_tl_i.a_data[31:0] Yes Yes T4,T76,T38 Yes T4,T76,T38 INPUT
rom_tl_i.a_mask[3:0] Yes Yes T4,T6,T20 Yes T4,T6,T20 INPUT
rom_tl_i.a_address[1:0] No No No INPUT
rom_tl_i.a_address[15:2] Yes Yes T4,T6,T20 Yes T4,T6,T20 INPUT
rom_tl_i.a_address[31:16] Unreachable Unreachable Unreachable INPUT
rom_tl_i.a_source[4:0] Yes Yes *T4,*T6,*T20 Yes T4,T6,T20 INPUT
rom_tl_i.a_source[5] No No No INPUT
rom_tl_i.a_source[7:6] Unreachable Unreachable Unreachable INPUT
rom_tl_i.a_size[0] No No No INPUT
rom_tl_i.a_size[1] Yes Yes T4,T6,T20 Yes T4,T6,T20 INPUT
rom_tl_i.a_param[2:0] Unreachable Unreachable Unreachable INPUT
rom_tl_i.a_opcode[1:0] No No No INPUT
rom_tl_i.a_opcode[2] Yes Yes T4,T6,T20 Yes T4,T6,T20 INPUT
rom_tl_i.a_valid Yes Yes T4,T6,T20 Yes T4,T6,T20 INPUT
rom_tl_o.a_ready Yes Yes T4,T6,T20 Yes T4,T5,T6 OUTPUT
rom_tl_o.d_error No No No OUTPUT
rom_tl_o.d_user.data_intg[6:0] Yes Yes T4,T6,T20 Yes T4,T6,T20 OUTPUT
rom_tl_o.d_user.rsp_intg[1:0] Yes Yes T4,T6,T20 Yes T4,T6,T20 OUTPUT
rom_tl_o.d_user.rsp_intg[3:2] No No No OUTPUT
rom_tl_o.d_user.rsp_intg[4] Yes Yes *T4,*T6,*T20 Yes T4,T6,T20 OUTPUT
rom_tl_o.d_user.rsp_intg[6:5] No No No OUTPUT
rom_tl_o.d_data[31:0] Yes Yes T4,T6,T20 Yes T4,T6,T20 OUTPUT
rom_tl_o.d_sink No No No OUTPUT
rom_tl_o.d_source[4:0] Yes Yes *T4,*T6,*T20 Yes T4,T6,T20 OUTPUT
rom_tl_o.d_source[5] No No No OUTPUT
rom_tl_o.d_source[7:6] Unreachable Unreachable Unreachable OUTPUT
rom_tl_o.d_size[0] No No No OUTPUT
rom_tl_o.d_size[1] Yes Yes T4,T6,T20 Yes T4,T6,T20 OUTPUT
rom_tl_o.d_param[2:0] Unreachable Unreachable Unreachable OUTPUT
rom_tl_o.d_opcode[0] No No No OUTPUT
rom_tl_o.d_opcode[2:1] Unreachable Unreachable Unreachable OUTPUT
rom_tl_o.d_valid Yes Yes T4,T6,T20 Yes T4,T6,T20 OUTPUT
regs_tl_i.d_ready Yes Yes T17,T18,T19 Yes T4,T5,T6 INPUT
regs_tl_i.a_user.data_intg[1:0] Yes Yes T123,*T124,*T125 Yes T123,T124,T125 INPUT
regs_tl_i.a_user.data_intg[2] No No No INPUT
regs_tl_i.a_user.data_intg[5:3] Yes Yes *T162,*T149,*T150 Yes T162,T149,T150 INPUT
regs_tl_i.a_user.data_intg[6] No No No INPUT
regs_tl_i.a_user.cmd_intg[6:0] Yes Yes T162,T149,T150 Yes T162,T149,T150 INPUT
regs_tl_i.a_user.instr_type[0] Yes Yes *T162,*T149,*T150 Yes T162,T149,T150 INPUT
regs_tl_i.a_user.instr_type[2:1] No No No INPUT
regs_tl_i.a_user.instr_type[3] Yes Yes T162,T149,T150 Yes T162,T149,T150 INPUT
regs_tl_i.a_user.rsvd[4:0] Unreachable Unreachable Unreachable INPUT
regs_tl_i.a_data[0] Yes Yes *T123,*T124,*T125 Yes T123,T124,T125 INPUT
regs_tl_i.a_data[31:1] No No No INPUT
regs_tl_i.a_mask[3:0] Yes Yes T162,T149,T150 Yes T162,T149,T150 INPUT
regs_tl_i.a_address[1:0] No No No INPUT
regs_tl_i.a_address[6:2] Yes Yes T162,*T149,T150 Yes T162,T149,T150 INPUT
regs_tl_i.a_address[16:7] Unreachable Unreachable Unreachable INPUT
regs_tl_i.a_address[20:17] Yes Yes T162,T149,T150 Yes T162,T149,T150 INPUT
regs_tl_i.a_address[23:21] Unreachable Unreachable Unreachable INPUT
regs_tl_i.a_address[24] Yes Yes *T162,*T149,*T150 Yes T162,T149,T150 INPUT
regs_tl_i.a_address[29:25] Unreachable Unreachable Unreachable INPUT
regs_tl_i.a_address[30] Yes Yes *T162,*T149,*T150 Yes T162,T149,T150 INPUT
regs_tl_i.a_address[31] Unreachable Unreachable Unreachable INPUT
regs_tl_i.a_source[0] No No No INPUT
regs_tl_i.a_source[1] Yes Yes *T162,*T149,*T150 Yes T162,T149,T150 INPUT
regs_tl_i.a_source[5:2] No No No INPUT
regs_tl_i.a_source[7:6] Unreachable Unreachable Unreachable INPUT
regs_tl_i.a_size[0] No No No INPUT
regs_tl_i.a_size[1] Yes Yes T162,T149,T150 Yes T162,T149,T150 INPUT
regs_tl_i.a_param[2:0] Unreachable Unreachable Unreachable INPUT
regs_tl_i.a_opcode[1:0] No No No INPUT
regs_tl_i.a_opcode[2] Yes Yes T162,T149,T150 Yes T162,T149,T150 INPUT
regs_tl_i.a_valid Yes Yes T162,T149,T150 Yes T162,T149,T150 INPUT
regs_tl_o.a_ready Yes Yes T162,T149,T150 Yes T162,T149,T150 OUTPUT
regs_tl_o.d_error No No No OUTPUT
regs_tl_o.d_user.data_intg[6:0] Yes Yes T162,T150,T163 Yes T162,T150,T163 OUTPUT
regs_tl_o.d_user.rsp_intg[0] No No Yes T123,T124,T125 OUTPUT
regs_tl_o.d_user.rsp_intg[1] No Yes *T123,*T124,*T125 No OUTPUT
regs_tl_o.d_user.rsp_intg[3:2] No No No OUTPUT
regs_tl_o.d_user.rsp_intg[5:4] Yes Yes T149,T150,T164 Yes T162,T149,T150 OUTPUT
regs_tl_o.d_user.rsp_intg[6] No No No OUTPUT
regs_tl_o.d_data[31:0] Yes Yes T162,T150,T163 Yes T162,T150,T163 OUTPUT
regs_tl_o.d_sink No No No OUTPUT
regs_tl_o.d_source[0] No No No OUTPUT
regs_tl_o.d_source[1] Yes Yes *T162,*T149,*T150 Yes T162,T149,T150 OUTPUT
regs_tl_o.d_source[5:2] No No No OUTPUT
regs_tl_o.d_source[7:6] Unreachable Unreachable Unreachable OUTPUT
regs_tl_o.d_size[0] No No No OUTPUT
regs_tl_o.d_size[1] Yes Yes T149,T150,T164 Yes T162,T149,T150 OUTPUT
regs_tl_o.d_param[2:0] Unreachable Unreachable Unreachable OUTPUT
regs_tl_o.d_opcode[0] Yes Yes *T149,*T150,*T164 Yes T162,T149,T150 OUTPUT
regs_tl_o.d_opcode[2:1] Unreachable Unreachable Unreachable OUTPUT
regs_tl_o.d_valid Yes Yes T162,T149,T150 Yes T162,T149,T150 OUTPUT
alert_rx_i[0].ack_n Yes Yes T4,T5,T6 Yes T4,T5,T6 INPUT
alert_rx_i[0].ack_p Yes Yes T149,T33,T164 Yes T149,T33,T164 INPUT
alert_rx_i[0].ping_n Yes Yes T33,T34,T35 Yes T33,T34,T35 INPUT
alert_rx_i[0].ping_p Yes Yes T33,T34,T35 Yes T33,T34,T35 INPUT
alert_tx_o[0].alert_n Yes Yes T4,T5,T6 Yes T4,T5,T6 OUTPUT
alert_tx_o[0].alert_p Yes Yes T149,T33,T164 Yes T149,T33,T164 OUTPUT
pwrmgr_data_o.good[3:0] Yes Yes T4,T5,T6 Yes T17,T18,T19 OUTPUT
pwrmgr_data_o.done[3:0] Yes Yes T4,T5,T6 Yes T17,T18,T19 OUTPUT
keymgr_data_o.valid Yes Yes T17,T18,T19 Yes T4,T5,T6 OUTPUT
keymgr_data_o.data[255:0] Yes Yes T17,T18,T19 Yes T4,T5,T6 OUTPUT
kmac_data_i.error No No Yes T79,T217,T218 INPUT
kmac_data_i.digest_share1[383:0] Yes Yes T5,T6,T20 Yes T5,T6,T20 INPUT
kmac_data_i.digest_share0[383:0] Yes Yes T4,T36,T76 Yes T4,T36,T76 INPUT
kmac_data_i.done Yes Yes T4,T5,T6 Yes T4,T5,T6 INPUT
kmac_data_i.ready Yes Yes T4,T5,T6 Yes T4,T5,T6 INPUT
kmac_data_o.last Yes Yes T4,T5,T6 Yes T4,T5,T6 OUTPUT
kmac_data_o.strb[7:0] Excluded Excluded Excluded OUTPUT [UNR] rom_ctrl -> KMAC app intf: Tied off data and strobe bits.
kmac_data_o.data[38:0] Yes Yes T4,T5,T6 Yes T4,T5,T6 OUTPUT
kmac_data_o.data[63:39] Excluded Excluded Excluded OUTPUT [UNR] rom_ctrl -> KMAC app intf: Tied off data and strobe bits.
kmac_data_o.valid Yes Yes T4,T5,T6 Yes T4,T5,T6 OUTPUT

*Tests covering at least one bit in the range
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%