diff --git a/doctrees/environment.pickle b/doctrees/environment.pickle index bdf6046b7bf..9f294e59dee 100644 Binary files a/doctrees/environment.pickle and b/doctrees/environment.pickle differ diff --git a/html/.buildinfo b/html/.buildinfo new file mode 100644 index 00000000000..60ad2d5ce1f --- /dev/null +++ b/html/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 58eccbd399e0dc34fb00129a1ff696c6 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/html/dev.html b/html/dev.html index ac96d72d3ed..4d51f15a15e 100644 --- a/html/dev.html +++ b/html/dev.html @@ -296,7 +296,7 @@
Line data Source code
- 1 138 : logic csr_misa; + 1 144 : logic csr_misa; 2 4 : logic csr_mvendorid; 3 36 : logic csr_marchid; 4 0 : logic csr_mimpid; 5 176 : logic csr_mhartid; - 6 49132 : logic csr_mstatus; - 7 160 : logic csr_mtvec; + 6 49178 : logic csr_mstatus; + 7 164 : logic csr_mtvec; 8 44 : logic csr_mip; - 9 132 : logic csr_mie; - 10 16 : logic csr_mcyclel; + 9 136 : logic csr_mie; + 10 12 : logic csr_mcyclel; 11 8 : logic csr_mcycleh; - 12 2 : logic csr_minstretl; - 13 2 : logic csr_minstreth; + 12 4 : logic csr_minstretl; + 13 4 : logic csr_minstreth; 14 31252 : logic csr_mscratch; - 15 10282 : logic csr_mepc; - 16 6346 : logic csr_mcause; + 15 10290 : logic csr_mepc; + 16 6358 : logic csr_mcause; 17 28 : logic csr_mscause; 18 4 : logic csr_mtval; - 19 29 : logic csr_mrac; + 19 27 : logic csr_mrac; 20 2 : logic csr_dmst; 21 34 : logic csr_mdseac; 22 10 : logic csr_meihap; @@ -130,7 +130,7 @@ 26 6 : logic csr_meicidpl; 27 0 : logic csr_dcsr; 28 6 : logic csr_mcgc; - 29 48 : logic csr_mfdc; + 29 46 : logic csr_mfdc; 30 2 : logic csr_dpc; 31 4 : logic csr_mtsel; 32 6 : logic csr_mtdata1; @@ -177,14 +177,14 @@ 73 0 : logic csr_dicad0; 74 0 : logic csr_dicad1; 75 2 : logic csr_dicago; - 76 164 : logic csr_pmpcfg; - 77 162 : logic csr_pmpaddr0; + 76 170 : logic csr_pmpcfg; + 77 168 : logic csr_pmpaddr0; 78 4 : logic csr_pmpaddr16; 79 2 : logic csr_pmpaddr32; 80 4 : logic csr_pmpaddr48; 81 42 : logic valid_only; - 82 96 : logic presync; - 83 38623 : logic postsync; + 82 98 : logic presync; + 83 38661 : logic postsync; 84 : assign csr_misa = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] 85 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); 86 : @@ -471,7 +471,7 @@ 367 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[7] 368 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); 369 : - 370 51765 : logic legal; + 370 51825 : logic legal; 371 : assign legal = (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] 372 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] 373 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] diff --git a/html/main/coverage_dashboard/all/index_el2_dec_csr_equ_mu.svh.html b/html/main/coverage_dashboard/all/index_el2_dec_csr_equ_mu.svh.html index f68634ffa3b..dad6a9d9b88 100644 --- a/html/main/coverage_dashboard/all/index_el2_dec_csr_equ_mu.svh.html +++ b/html/main/coverage_dashboard/all/index_el2_dec_csr_equ_mu.svh.html @@ -51,7 +51,7 @@@@ -139,21 +139,21 @@ - Test Date: - 19-09-2024 + 25-09-2024 @@ -102,25 +102,25 @@ Line data Source code- 1 166 : logic csr_misa; + 1 160 : logic csr_misa; 2 8 : logic csr_mvendorid; 3 10 : logic csr_marchid; 4 8 : logic csr_mimpid; 5 136 : logic csr_mhartid; - 6 29432 : logic csr_mstatus; - 7 182 : logic csr_mtvec; + 6 29222 : logic csr_mstatus; + 7 178 : logic csr_mtvec; 8 10 : logic csr_mip; - 9 152 : logic csr_mie; - 10 24 : logic csr_mcyclel; + 9 148 : logic csr_mie; + 10 28 : logic csr_mcyclel; 11 16 : logic csr_mcycleh; - 12 14 : logic csr_minstretl; - 13 14 : logic csr_minstreth; + 12 12 : logic csr_minstretl; + 13 12 : logic csr_minstreth; 14 19076 : logic csr_mscratch; - 15 3908 : logic csr_mepc; - 16 2968 : logic csr_mcause; + 15 3810 : logic csr_mepc; + 16 2882 : logic csr_mcause; 17 10 : logic csr_mscause; 18 174 : logic csr_mtval; - 19 22 : logic csr_mrac; + 19 24 : logic csr_mrac; 20 0 : logic csr_dmst; 21 8 : logic csr_mdseac; 22 12 : logic csr_meihap; @@ -130,7 +130,7 @@ 26 10 : logic csr_meicidpl; 27 0 : logic csr_dcsr; 28 10 : logic csr_mcgc; - 29 8 : logic csr_mfdc; + 29 10 : logic csr_mfdc; 30 0 : logic csr_dpc; 31 12 : logic csr_mtsel; 32 10 : logic csr_mtdata1; @@ -180,12 +180,12 @@ 76 2 : logic csr_dicago; 77 20 : logic csr_menvcfg; 78 16 : logic csr_menvcfgh; - 79 732 : logic csr_pmpcfg; - 80 640 : logic csr_pmpaddr0; + 79 726 : logic csr_pmpcfg; + 80 634 : logic csr_pmpaddr0; 81 12 : logic csr_pmpaddr16; 82 8 : logic csr_pmpaddr32; 83 10 : logic csr_pmpaddr48; - 84 32044 : logic csr_cyclel; + 84 31752 : logic csr_cyclel; 85 46 : logic csr_cycleh; 86 44 : logic csr_instretl; 87 44 : logic csr_instreth; @@ -200,8 +200,8 @@ 96 110 : logic csr_mseccfgl; 97 14 : logic csr_mseccfgh; 98 82 : logic valid_only; - 99 502 : logic presync; - 100 25278 : logic postsync; + 99 500 : logic presync; + 100 25166 : logic postsync; 101 : assign csr_misa = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] 102 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); 103 : @@ -545,7 +545,7 @@ 441 : !dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[1] 442 : &dec_csr_rdaddr_d[0]); 443 : - 444 31978 : logic legal; + 444 31688 : logic legal; 445 : assign legal = (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] 446 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] 447 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] diff --git a/html/main/coverage_dashboard/all/index_el2_dec_decode_ctl.sv.html b/html/main/coverage_dashboard/all/index_el2_dec_decode_ctl.sv.html index 05cdfd066f2..8bdd7da15fe 100644 --- a/html/main/coverage_dashboard/all/index_el2_dec_decode_ctl.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_dec_decode_ctl.sv.html @@ -51,7 +51,7 @@Test Date: - 19-09-2024 + 25-09-2024 @@ -133,18 +133,18 @@ 29 : 30 0 : output logic dec_extint_stall, // Stall from external interrupt 31 : - 32 1427542 : input logic [15:0] ifu_i0_cinst, // 16b compressed instruction - 33 579528 : output logic [31:0] dec_i0_inst_wb, // 32b instruction at wb+1 for trace encoder + 32 1422550 : input logic [15:0] ifu_i0_cinst, // 16b compressed instruction + 33 575173 : output logic [31:0] dec_i0_inst_wb, // 32b instruction at wb+1 for trace encoder 34 308 : output logic [31:1] dec_i0_pc_wb, // 31b pc at wb+1 for trace encoder 35 : 36 : - 37 881640 : input logic lsu_nonblock_load_valid_m, // valid nonblock load at m - 38 504869 : input logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_tag_m, // -> corresponding tag + 37 875716 : input logic lsu_nonblock_load_valid_m, // valid nonblock load at m + 38 502857 : input logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_tag_m, // -> corresponding tag 39 0 : input logic lsu_nonblock_load_inv_r, // invalidate request for nonblock load r - 40 504866 : input logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_inv_tag_r, // -> corresponding tag - 41 920896 : input logic lsu_nonblock_load_data_valid, // valid nonblock load data back + 40 502854 : input logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_inv_tag_r, // -> corresponding tag + 41 914818 : input logic lsu_nonblock_load_data_valid, // valid nonblock load data back 42 0 : input logic lsu_nonblock_load_data_error, // nonblock load bus error - 43 36662 : input logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_data_tag, // -> corresponding tag + 43 36598 : input logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_data_tag, // -> corresponding tag 44 : 45 : 46 0 : input logic [3:0] dec_i0_trigger_match_d, // i0 decode trigger matches @@ -154,7 +154,7 @@ 50 : 51 0 : input logic [3:0] lsu_trigger_match_m, // lsu trigger matches 52 : - 53 48786 : input logic lsu_pmu_misaligned_m, // perf mon: load/store misalign + 53 48780 : input logic lsu_pmu_misaligned_m, // perf mon: load/store misalign 54 0 : input logic dec_tlu_debug_stall, // debug stall decode 55 0 : input logic dec_tlu_flush_leak_one_r, // leak1 instruction 56 : @@ -168,137 +168,137 @@ 64 : 65 2 : input logic dec_i0_dbecc_d, // icache/iccm double-bit error 66 : - 67 200759 : input el2_br_pkt_t dec_i0_brp, // branch packet - 68 651076 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] dec_i0_bp_index, // i0 branch index - 69 631672 : input logic [pt.BHT_GHR_SIZE-1:0] dec_i0_bp_fghr, // BP FGHR + 67 200545 : input el2_br_pkt_t dec_i0_brp, // branch packet + 68 650118 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] dec_i0_bp_index, // i0 branch index + 69 619214 : input logic [pt.BHT_GHR_SIZE-1:0] dec_i0_bp_fghr, // BP FGHR 70 21217 : input logic [pt.BTB_BTAG_SIZE-1:0] dec_i0_bp_btag, // BP tag 71 0 : input logic [$clog2(pt.BTB_SIZE)-1:0] dec_i0_bp_fa_index, // Fully associt btb index 72 : - 73 1346967 : input logic lsu_idle_any, // lsu idle: if fence instr & ~lsu_idle then stall decode + 73 1337985 : input logic lsu_idle_any, // lsu idle: if fence instr & ~lsu_idle then stall decode 74 : - 75 49050 : input logic lsu_load_stall_any, // stall any load at decode - 76 59374 : input logic lsu_store_stall_any, // stall any store at decode + 75 48988 : input logic lsu_load_stall_any, // stall any load at decode + 76 59312 : input logic lsu_store_stall_any, // stall any store at decode 77 0 : input logic dma_dccm_stall_any, // stall any load/store at decode 78 : - 79 156868 : input logic exu_div_wren, // nonblocking divide write enable to GPR. + 79 156836 : input logic exu_div_wren, // nonblocking divide write enable to GPR. 80 : 81 29654 : input logic dec_tlu_i0_kill_writeb_wb, // I0 is flushed, don't writeback any results to arch state - 82 58638 : input logic dec_tlu_flush_lower_wb, // trap lower flush + 82 58568 : input logic dec_tlu_flush_lower_wb, // trap lower flush 83 29654 : input logic dec_tlu_i0_kill_writeb_r, // I0 is flushed, don't writeback any results to arch state - 84 58638 : input logic dec_tlu_flush_lower_r, // trap lower flush + 84 58568 : input logic dec_tlu_flush_lower_r, // trap lower flush 85 0 : input logic dec_tlu_flush_pause_r, // don't clear pause state on initial lower flush 86 510 : input logic dec_tlu_presync_d, // CSR read needs to be presync'd - 87 20293 : input logic dec_tlu_postsync_d, // CSR ops that need to be postsync'd + 87 20137 : input logic dec_tlu_postsync_d, // CSR ops that need to be postsync'd 88 : - 89 5735369 : input logic dec_i0_pc4_d, // inst is 4B inst else 2B + 89 5716269 : input logic dec_i0_pc4_d, // inst is 4B inst else 2B 90 : - 91 6941 : input logic [31:0] dec_csr_rddata_d, // csr read data at wb - 92 83741 : input logic dec_csr_legal_d, // csr indicates legal operation + 91 8136 : input logic [31:0] dec_csr_rddata_d, // csr read data at wb + 92 83511 : input logic dec_csr_legal_d, // csr indicates legal operation 93 : 94 3978 : input logic [31:0] exu_csr_rs1_x, // rs1 for csr instr 95 : 96 38395 : input logic [31:0] lsu_result_m, // load result 97 29134 : input logic [31:0] lsu_result_corr_r, // load result - corrected data for writing gpr's, not for bypassing 98 : - 99 672565 : input logic exu_flush_final, // lower flush or i0 flush at X or D + 99 671016 : input logic exu_flush_final, // lower flush or i0 flush at X or D 100 : 101 308 : input logic [31:1] exu_i0_pc_x, // pcs at e1 102 : - 103 468420 : input logic [31:0] dec_i0_instr_d, // inst at decode + 103 467652 : input logic [31:0] dec_i0_instr_d, // inst at decode 104 : - 105 6006883 : input logic dec_ib0_valid_d, // inst valid at decode + 105 5971582 : input logic dec_ib0_valid_d, // inst valid at decode 106 : - 107 614701 : input logic [31:0] exu_i0_result_x, // from primary alu's + 107 613793 : input logic [31:0] exu_i0_result_x, // from primary alu's 108 : - 109 61843746 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 110 61843746 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. - 111 61843746 : input logic free_l2clk, // Clock always. Through one clock header. For flops with second header built in. + 109 61251245 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 110 61251245 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 111 61251245 : input logic free_l2clk, // Clock always. Through one clock header. For flops with second header built in. 112 : 113 0 : input logic clk_override, // Override non-functional clock gating 114 316 : input logic rst_l, // Flop reset 115 : 116 : 117 : - 118 5130925 : output logic dec_i0_rs1_en_d, // rs1 enable at decode - 119 3565563 : output logic dec_i0_rs2_en_d, // rs2 enable at decode + 118 5100391 : output logic dec_i0_rs1_en_d, // rs1 enable at decode + 119 3549089 : output logic dec_i0_rs2_en_d, // rs2 enable at decode 120 : - 121 2497511 : output logic [4:0] dec_i0_rs1_d, // rs1 logical source - 122 4174324 : output logic [4:0] dec_i0_rs2_d, // rs2 logical source + 121 2486977 : output logic [4:0] dec_i0_rs1_d, // rs1 logical source + 122 4163722 : output logic [4:0] dec_i0_rs2_d, // rs2 logical source 123 : - 124 2134567 : output logic [31:0] dec_i0_immed_d, // 32b immediate data decode + 124 2132673 : output logic [31:0] dec_i0_immed_d, // 32b immediate data decode 125 : 126 : - 127 123446 : output logic [12:1] dec_i0_br_immed_d, // 12b branch immediate + 127 122230 : output logic [12:1] dec_i0_br_immed_d, // 12b branch immediate 128 : 129 1460 : output el2_alu_pkt_t i0_ap, // alu packets 130 : - 131 6190087 : output logic dec_i0_decode_d, // i0 decode + 131 6153554 : output logic dec_i0_decode_d, // i0 decode 132 : - 133 5393904 : output logic dec_i0_alu_decode_d, // decode to D-stage alu - 134 3841554 : output logic dec_i0_branch_d, // Branch in D-stage + 133 5367615 : output logic dec_i0_alu_decode_d, // decode to D-stage alu + 134 3829589 : output logic dec_i0_branch_d, // Branch in D-stage 135 : - 136 2809689 : output logic [4:0] dec_i0_waddr_r, // i0 logical source to write to gpr's - 137 5678794 : output logic dec_i0_wen_r, // i0 write enable - 138 314049 : output logic [31:0] dec_i0_wdata_r, // i0 write data + 136 2798269 : output logic [4:0] dec_i0_waddr_r, // i0 logical source to write to gpr's + 137 5660354 : output logic dec_i0_wen_r, // i0 write enable + 138 314035 : output logic [31:0] dec_i0_wdata_r, // i0 write data 139 : - 140 554879 : output logic dec_i0_select_pc_d, // i0 select pc for rs1 - branches + 140 553923 : output logic dec_i0_select_pc_d, // i0 select pc for rs1 - branches 141 : - 142 80872 : output logic [3:0] dec_i0_rs1_bypass_en_d, // i0 rs1 bypass enable - 143 8634 : output logic [3:0] dec_i0_rs2_bypass_en_d, // i0 rs2 bypass enable - 144 314049 : output logic [31:0] dec_i0_result_r, // Result R-stage + 142 79850 : output logic [3:0] dec_i0_rs1_bypass_en_d, // i0 rs1 bypass enable + 143 8622 : output logic [3:0] dec_i0_rs2_bypass_en_d, // i0 rs2 bypass enable + 144 314035 : output logic [31:0] dec_i0_result_r, // Result R-stage 145 : - 146 623945 : output el2_lsu_pkt_t lsu_p, // load/store packet - 147 5476447 : output logic dec_qual_lsu_d, // LSU instruction at D. Use to quiet LSU operands + 146 621353 : output el2_lsu_pkt_t lsu_p, // load/store packet + 147 5449748 : output logic dec_qual_lsu_d, // LSU instruction at D. Use to quiet LSU operands 148 : 149 0 : output el2_mul_pkt_t mul_p, // multiply packet 150 : - 151 78138 : output el2_div_pkt_t div_p, // divide packet - 152 21351 : output logic [4:0] div_waddr_wb, // DIV write address to GPR + 151 78122 : output el2_div_pkt_t div_p, // divide packet + 152 21350 : output logic [4:0] div_waddr_wb, // DIV write address to GPR 153 2628 : output logic dec_div_cancel, // cancel the divide operation 154 : - 155 2276073 : output logic dec_lsu_valid_raw_d, - 156 270518 : output logic [11:0] dec_lsu_offset_d, + 155 2264531 : output logic dec_lsu_valid_raw_d, + 156 269944 : output logic [11:0] dec_lsu_offset_d, 157 : - 158 75092 : output logic dec_csr_ren_d, // valid csr decode - 159 41991 : output logic dec_csr_wen_unq_d, // valid csr with write - for csr legal - 160 83863 : output logic dec_csr_any_unq_d, // valid csr - for csr legal - 161 906 : output logic [11:0] dec_csr_rdaddr_d, // read address for csr - 162 41826 : output logic dec_csr_wen_r, // csr write enable at r - 163 1559962 : output logic [11:0] dec_csr_rdaddr_r, // read address for csr - 164 406 : output logic [11:0] dec_csr_wraddr_r, // write address for csr + 158 74910 : output logic dec_csr_ren_d, // valid csr decode + 159 41943 : output logic dec_csr_wen_unq_d, // valid csr with write - for csr legal + 160 83633 : output logic dec_csr_any_unq_d, // valid csr - for csr legal + 161 910 : output logic [11:0] dec_csr_rdaddr_d, // read address for csr + 162 41778 : output logic dec_csr_wen_r, // csr write enable at r + 163 1551842 : output logic [11:0] dec_csr_rdaddr_r, // read address for csr + 164 412 : output logic [11:0] dec_csr_wraddr_r, // write address for csr 165 1640 : output logic [31:0] dec_csr_wrdata_r, // csr write data at r - 166 1346 : output logic dec_csr_stall_int_ff, // csr is mie/mstatus + 166 1330 : output logic dec_csr_stall_int_ff, // csr is mie/mstatus 167 : - 168 6189442 : output dec_tlu_i0_valid_r, // i0 valid inst at c + 168 6152908 : output dec_tlu_i0_valid_r, // i0 valid inst at c 169 : - 170 264 : output el2_trap_pkt_t dec_tlu_packet_r, // trap packet + 170 258 : output el2_trap_pkt_t dec_tlu_packet_r, // trap packet 171 : 172 308 : output logic [31:1] dec_tlu_i0_pc_r, // i0 trap pc 173 : 174 18 : output logic [31:0] dec_illegal_inst, // illegal inst - 175 138654 : output logic [31:1] pred_correct_npc_x, // npc e2 if the prediction is correct + 175 137876 : output logic [31:1] pred_correct_npc_x, // npc e2 if the prediction is correct 176 : - 177 506364 : output el2_predict_pkt_t dec_i0_predict_p_d, // i0 predict packet decode - 178 631672 : output logic [pt.BHT_GHR_SIZE-1:0] i0_predict_fghr_d, // i0 predict fghr - 179 651076 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] i0_predict_index_d, // i0 predict index + 177 504423 : output el2_predict_pkt_t dec_i0_predict_p_d, // i0 predict packet decode + 178 619214 : output logic [pt.BHT_GHR_SIZE-1:0] i0_predict_fghr_d, // i0 predict fghr + 179 650118 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] i0_predict_index_d, // i0 predict index 180 21217 : output logic [pt.BTB_BTAG_SIZE-1:0] i0_predict_btag_d, // i0_predict branch tag 181 : 182 0 : output logic [$clog2(pt.BTB_SIZE)-1:0] dec_fa_error_index, // Fully associt btb error index 183 : - 184 6189473 : output logic [1:0] dec_data_en, // clock-gating logic - 185 5991939 : output logic [1:0] dec_ctl_en, + 184 6152939 : output logic [1:0] dec_data_en, // clock-gating logic + 185 5955435 : output logic [1:0] dec_ctl_en, 186 : - 187 6190087 : output logic dec_pmu_instr_decoded, // number of instructions decode this cycle encoded - 188 238142 : output logic dec_pmu_decode_stall, // decode is stalled + 187 6153554 : output logic dec_pmu_instr_decoded, // number of instructions decode this cycle encoded + 188 236732 : output logic dec_pmu_decode_stall, // decode is stalled 189 264 : output logic dec_pmu_presync_stall, // decode has presync stall - 190 14500 : output logic dec_pmu_postsync_stall, // decode has postsync stall + 190 14454 : output logic dec_pmu_postsync_stall, // decode has postsync stall 191 : - 192 920884 : output logic dec_nonblock_load_wen, // write enable for nonblock load - 193 368914 : output logic [4:0] dec_nonblock_load_waddr, // logical write addr for nonblock load + 192 914806 : output logic dec_nonblock_load_wen, // write enable for nonblock load + 193 368026 : output logic [4:0] dec_nonblock_load_waddr, // logical write addr for nonblock load 194 0 : output logic dec_pause_state, // core in pause state 195 0 : output logic dec_pause_state_cg, // pause state for clock-gating 196 : - 197 159496 : output logic dec_div_active, // non-block divide is active + 197 159464 : output logic dec_div_active, // non-block divide is active 198 : 199 0 : input logic scan_mode 200 : ); @@ -308,27 +308,27 @@ 204 : 205 13730 : el2_dec_pkt_t i0_dp_raw, i0_dp; 206 : - 207 468420 : logic [31:0] i0; - 208 6006883 : logic i0_valid_d; + 207 467652 : logic [31:0] i0; + 208 5971582 : logic i0_valid_d; 209 : - 210 314049 : logic [31:0] i0_result_r; + 210 314035 : logic [31:0] i0_result_r; 211 : - 212 25118 : logic [2:0] i0_rs1bypass, i0_rs2bypass; + 212 24956 : logic [2:0] i0_rs1bypass, i0_rs2bypass; 213 : - 214 442798 : logic i0_jalimm20; - 215 430821 : logic i0_uiimm20; + 214 442030 : logic i0_jalimm20; + 215 430139 : logic i0_uiimm20; 216 : - 217 2280185 : logic lsu_decode_d; - 218 2134567 : logic [31:0] i0_immed_d; + 217 2268605 : logic lsu_decode_d; + 218 2132673 : logic [31:0] i0_immed_d; 219 70084 : logic i0_presync; - 220 120087 : logic i0_postsync; + 220 118235 : logic i0_postsync; 221 : - 222 110610 : logic postsync_stall; - 223 110610 : logic ps_stall; + 222 110390 : logic postsync_stall; + 223 110390 : logic ps_stall; 224 : - 225 5991939 : logic prior_inflight, prior_inflight_wb; + 225 5955435 : logic prior_inflight, prior_inflight_wb; 226 : - 227 10618 : logic csr_clr_d, csr_set_d, csr_write_d; + 227 10570 : logic csr_clr_d, csr_set_d, csr_write_d; 228 : 229 7868 : logic csr_clr_x,csr_set_x,csr_write_x,csr_imm_x; 230 4282 : logic [31:0] csr_mask_x; @@ -339,61 +339,61 @@ 235 : 236 10844 : logic [4:0] csrimm_x; 237 : - 238 1554 : logic [31:0] csr_rddata_x; + 238 1552 : logic [31:0] csr_rddata_x; 239 : 240 250948 : logic mul_decode_d; - 241 159496 : logic div_decode_d; - 242 159496 : logic div_e1_to_r; + 241 159464 : logic div_decode_d; + 242 159464 : logic div_e1_to_r; 243 2628 : logic div_flush; - 244 159496 : logic div_active_in; - 245 159496 : logic div_active; + 244 159464 : logic div_active_in; + 245 159464 : logic div_active; 246 8228 : logic i0_nonblock_div_stall; 247 1472 : logic i0_div_prior_div_stall; 248 2628 : logic nonblock_div_cancel; 249 : - 250 5997067 : logic i0_legal; - 251 258 : logic shift_illegal; - 252 258 : logic illegal_inst_en; - 253 258 : logic illegal_lockout_in, illegal_lockout; - 254 6189849 : logic i0_legal_decode_d; - 255 315576 : logic i0_exulegal_decode_d, i0_exudecode_d, i0_exublock_d; + 250 5963290 : logic i0_legal; + 251 254 : logic shift_illegal; + 252 254 : logic illegal_inst_en; + 253 254 : logic illegal_lockout_in, illegal_lockout; + 254 6153320 : logic i0_legal_decode_d; + 255 314030 : logic i0_exulegal_decode_d, i0_exudecode_d, i0_exublock_d; 256 : - 257 1376313 : logic [12:1] last_br_immed_d; - 258 1920488 : logic i0_rs1_depend_i0_x, i0_rs1_depend_i0_r; + 257 1369717 : logic [12:1] last_br_immed_d; + 258 1919302 : logic i0_rs1_depend_i0_x, i0_rs1_depend_i0_r; 259 170364 : logic i0_rs2_depend_i0_x, i0_rs2_depend_i0_r; 260 : - 261 159496 : logic i0_div_decode_d; + 261 159464 : logic i0_div_decode_d; 262 0 : logic i0_load_block_d; 263 155352 : logic [1:0] i0_rs1_depth_d, i0_rs2_depth_d; 264 : - 265 27508 : logic i0_load_stall_d; - 266 6856 : logic i0_store_stall_d; + 265 27470 : logic i0_load_stall_d; + 266 6832 : logic i0_store_stall_d; 267 : - 268 767143 : logic i0_predict_nt, i0_predict_t; + 268 762036 : logic i0_predict_nt, i0_predict_t; 269 : - 270 28608 : logic i0_notbr_error, i0_br_toffset_error; + 270 27044 : logic i0_notbr_error, i0_br_toffset_error; 271 396 : logic i0_ret_error; - 272 38500 : logic i0_br_error; - 273 38510 : logic i0_br_error_all; - 274 1571805 : logic [11:0] i0_br_offset; + 272 36868 : logic i0_br_error; + 273 36878 : logic i0_br_error_all; + 274 1563856 : logic [11:0] i0_br_offset; 275 : - 276 1432006 : logic [20:1] i0_pcall_imm; // predicted jal's - 277 5586531 : logic i0_pcall_12b_offset; - 278 122488 : logic i0_pcall_raw; - 279 122818 : logic i0_pcall_case; - 280 122134 : logic i0_pcall; + 276 1427266 : logic [20:1] i0_pcall_imm; // predicted jal's + 277 5554974 : logic i0_pcall_12b_offset; + 278 122252 : logic i0_pcall_raw; + 279 122582 : logic i0_pcall_case; + 280 121898 : logic i0_pcall; 281 : - 282 312544 : logic i0_pja_raw; - 283 321698 : logic i0_pja_case; - 284 311586 : logic i0_pja; + 282 312012 : logic i0_pja_raw; + 283 321158 : logic i0_pja_case; + 284 311054 : logic i0_pja; 285 : - 286 167480 : logic i0_pret_case; - 287 167480 : logic i0_pret_raw, i0_pret; + 286 167248 : logic i0_pret_case; + 287 167248 : logic i0_pret_raw, i0_pret; 288 : - 289 106068 : logic i0_jal; // jal's that are not predicted + 289 105892 : logic i0_jal; // jal's that are not predicted 290 : 291 : - 292 3700988 : logic i0_predict_br; + 292 3690831 : logic i0_predict_br; 293 : 294 0 : logic store_data_bypass_d, store_data_bypass_m; 295 : @@ -402,9 +402,9 @@ 298 234134 : el2_class_pkt_t i0_d_c, i0_x_c, i0_r_c; 299 : 300 : - 301 5735369 : logic i0_ap_pc2, i0_ap_pc4; + 301 5716269 : logic i0_ap_pc2, i0_ap_pc4; 302 : - 303 6449133 : logic i0_rd_en_d; + 303 6425435 : logic i0_rd_en_d; 304 : 305 69392 : logic load_ldst_bypass_d; 306 : @@ -412,43 +412,43 @@ 308 0 : logic leak1_i1_stall_in, leak1_i1_stall; 309 0 : logic leak1_mode; 310 : - 311 8779 : logic i0_csr_write_only_d; + 311 8731 : logic i0_csr_write_only_d; 312 : - 313 5992087 : logic prior_inflight_x, prior_inflight_eff; - 314 83863 : logic any_csr_d; + 313 5955583 : logic prior_inflight_x, prior_inflight_eff; + 314 83633 : logic any_csr_d; 315 : - 316 8776 : logic prior_csr_write; + 316 8728 : logic prior_csr_write; 317 : - 318 6189398 : logic [3:0] i0_pipe_en; - 319 5991905 : logic i0_r_ctl_en, i0_x_ctl_en, i0_wb_ctl_en; - 320 6189448 : logic i0_x_data_en, i0_r_data_en, i0_wb_data_en; + 318 6152864 : logic [3:0] i0_pipe_en; + 319 5955401 : logic i0_r_ctl_en, i0_x_ctl_en, i0_wb_ctl_en; + 320 6152914 : logic i0_x_data_en, i0_r_data_en, i0_wb_data_en; 321 : 322 0 : logic debug_fence_i; 323 0 : logic debug_fence; 324 : - 325 25025 : logic i0_csr_write; + 325 24977 : logic i0_csr_write; 326 264 : logic presync_stall; 327 : 328 198 : logic i0_instr_error; 329 198 : logic i0_icaf_d; 330 : - 331 58638 : logic clear_pause; + 331 58568 : logic clear_pause; 332 0 : logic pause_state_in, pause_state; 333 0 : logic pause_stall; 334 : - 335 3092343 : logic i0_brp_valid; - 336 737208 : logic nonblock_load_cancel; - 337 1346966 : logic lsu_idle; - 338 48786 : logic lsu_pmu_misaligned_r; - 339 74956 : logic csr_ren_qual_d; - 340 74956 : logic csr_read_x; - 341 349570 : logic i0_block_d; - 342 315576 : logic i0_block_raw_d; // This is use to create the raw valid - 343 110611 : logic ps_stall_in; - 344 660429 : logic [31:0] i0_result_x; + 335 3082497 : logic i0_brp_valid; + 336 732630 : logic nonblock_load_cancel; + 337 1337984 : logic lsu_idle; + 338 48780 : logic lsu_pmu_misaligned_r; + 339 74774 : logic csr_ren_qual_d; + 340 74774 : logic csr_read_x; + 341 347962 : logic i0_block_d; + 342 314030 : logic i0_block_raw_d; // This is use to create the raw valid + 343 110391 : logic ps_stall_in; + 344 659105 : logic [31:0] i0_result_x; 345 : - 346 31368 : el2_dest_pkt_t d_d, x_d, r_d, wbd; - 347 31368 : el2_dest_pkt_t x_d_in, r_d_in; + 346 29602 : el2_dest_pkt_t d_d, x_d, r_d, wbd; + 347 29602 : el2_dest_pkt_t x_d_in, r_d_in; 348 : 349 0 : el2_trap_pkt_t d_t, x_t, x_t_in, r_t_in, r_t; 350 : @@ -456,16 +456,16 @@ 352 : 353 308 : logic [31:1] dec_i0_pc_r; 354 : - 355 41933 : logic csr_read, csr_write; - 356 106068 : logic i0_br_unpred; + 355 41877 : logic csr_read, csr_write; + 356 105892 : logic i0_br_unpred; 357 : - 358 881494 : logic nonblock_load_valid_m_delay; - 359 6514124 : logic i0_wen_r; + 358 875570 : logic nonblock_load_valid_m_delay; + 359 6490314 : logic i0_wen_r; 360 : 361 0 : logic tlu_wr_pause_r1; 362 0 : logic tlu_wr_pause_r2; 363 : - 364 672564 : logic flush_final_r; + 364 671014 : logic flush_final_r; 365 : 366 317 : logic bitmanip_zbb_legal; 367 317 : logic bitmanip_zbs_legal; @@ -489,52 +489,52 @@ 385 : localparam NBLOAD_TAG_MSB = pt.LSU_NUM_NBLOAD_WIDTH-1; 386 : 387 : - 388 920896 : logic cam_write, cam_inv_reset, cam_data_reset; - 389 36662 : logic [NBLOAD_TAG_MSB:0] cam_write_tag, cam_inv_reset_tag, cam_data_reset_tag; - 390 5812 : logic [NBLOAD_SIZE_MSB:0] cam_wen; + 388 914818 : logic cam_write, cam_inv_reset, cam_data_reset; + 389 36598 : logic [NBLOAD_TAG_MSB:0] cam_write_tag, cam_inv_reset_tag, cam_data_reset_tag; + 390 5806 : logic [NBLOAD_SIZE_MSB:0] cam_wen; 391 : - 392 36662 : logic [NBLOAD_TAG_MSB:0] load_data_tag; - 393 6392 : logic [NBLOAD_SIZE_MSB:0] nonblock_load_write; + 392 36598 : logic [NBLOAD_TAG_MSB:0] load_data_tag; + 393 6386 : logic [NBLOAD_SIZE_MSB:0] nonblock_load_write; 394 : - 395 5811 : el2_load_cam_pkt_t [NBLOAD_SIZE_MSB:0] cam; - 396 5811 : el2_load_cam_pkt_t [NBLOAD_SIZE_MSB:0] cam_in; - 397 5811 : el2_load_cam_pkt_t [NBLOAD_SIZE_MSB:0] cam_raw; + 395 5805 : el2_load_cam_pkt_t [NBLOAD_SIZE_MSB:0] cam; + 396 5805 : el2_load_cam_pkt_t [NBLOAD_SIZE_MSB:0] cam_in; + 397 5805 : el2_load_cam_pkt_t [NBLOAD_SIZE_MSB:0] cam_raw; 398 : - 399 531394 : logic [4:0] nonblock_load_rd; - 400 190690 : logic i0_nonblock_load_stall; - 401 89472 : logic i0_nonblock_boundary_stall; + 399 530478 : logic [4:0] nonblock_load_rd; + 400 189364 : logic i0_nonblock_load_stall; + 401 88294 : logic i0_nonblock_boundary_stall; 402 : - 403 26942 : logic i0_rs1_nonblock_load_bypass_en_d, i0_rs2_nonblock_load_bypass_en_d; + 403 26930 : logic i0_rs1_nonblock_load_bypass_en_d, i0_rs2_nonblock_load_bypass_en_d; 404 : - 405 881494 : logic i0_load_kill_wen_r; + 405 875570 : logic i0_load_kill_wen_r; 406 : - 407 2411 : logic found; + 407 2409 : logic found; 408 : - 409 5808 : logic [NBLOAD_SIZE_MSB:0] cam_inv_reset_val, cam_data_reset_val; + 409 5802 : logic [NBLOAD_SIZE_MSB:0] cam_inv_reset_val, cam_data_reset_val; 410 : 411 0 : logic debug_fence_raw; 412 : - 413 314049 : logic [31:0] i0_result_r_raw; - 414 314049 : logic [31:0] i0_result_corr_r; + 413 314035 : logic [31:0] i0_result_r_raw; + 414 314035 : logic [31:0] i0_result_corr_r; 415 : - 416 1134323 : logic [12:1] last_br_immed_x; + 416 1128183 : logic [12:1] last_br_immed_x; 417 : - 418 897486 : logic [31:0] i0_inst_d; - 419 579534 : logic [31:0] i0_inst_x; - 420 579533 : logic [31:0] i0_inst_r; - 421 579533 : logic [31:0] i0_inst_wb_in; - 422 579528 : logic [31:0] i0_inst_wb; + 418 892642 : logic [31:0] i0_inst_d; + 419 575179 : logic [31:0] i0_inst_x; + 420 575178 : logic [31:0] i0_inst_r; + 421 575178 : logic [31:0] i0_inst_wb_in; + 422 575173 : logic [31:0] i0_inst_wb; 423 : 424 308 : logic [31:1] i0_pc_wb; 425 : - 426 6189448 : logic i0_wb_en; + 426 6152914 : logic i0_wb_en; 427 : 428 317 : logic trace_enable; 429 : 430 0 : logic debug_valid_x; 431 : - 432 2152010 : el2_inst_pkt_t i0_itype; - 433 2345922 : el2_reg_pkt_t i0r; + 432 2141623 : el2_inst_pkt_t i0_itype; + 433 2335414 : el2_reg_pkt_t i0r; 434 : 435 : 436 : rvdffie #(8) misc1ff (.*, @@ -631,14 +631,14 @@ 527 : 528 317 : always_comb begin 529 317 : i0_dp = i0_dp_raw; - 530 1744660 : if (i0_br_error_all | i0_instr_error) begin - 531 40180 : i0_dp = '0; - 532 40180 : i0_dp.alu = 1'b1; - 533 40180 : i0_dp.rs1 = 1'b1; - 534 40180 : i0_dp.rs2 = 1'b1; - 535 40180 : i0_dp.lor = 1'b1; - 536 40180 : i0_dp.legal = 1'b1; - 537 40180 : i0_dp.postsync = 1'b1; + 530 1840732 : if (i0_br_error_all | i0_instr_error) begin + 531 39000 : i0_dp = '0; + 532 39000 : i0_dp.alu = 1'b1; + 533 39000 : i0_dp.rs1 = 1'b1; + 534 39000 : i0_dp.rs2 = 1'b1; + 535 39000 : i0_dp.lor = 1'b1; + 536 39000 : i0_dp.legal = 1'b1; + 537 39000 : i0_dp.postsync = 1'b1; 538 : end 539 : end 540 : @@ -709,16 +709,16 @@ 605 317 : found = 0; 606 317 : for (int i=0; i<NBLOAD_SIZE; i++) begin 607 10974 : if (~found) begin - 608 2573985 : if (~cam[i].valid) begin - 609 23580095 : cam_wen[i] = cam_write; - 610 23580095 : found = 1'b1; + 608 2568198 : if (~cam[i].valid) begin + 609 23455235 : cam_wen[i] = cam_write; + 610 23455235 : found = 1'b1; 611 : end - 612 2573985 : else begin - 613 2573985 : cam_wen[i] = 0; + 612 2568198 : else begin + 613 2568198 : cam_wen[i] = 0; 614 : end 615 : end 616 : else - 617 81057788 : cam_wen[i] = 0; + 617 80630465 : cam_wen[i] = 0; 618 : end 619 : end 620 : @@ -756,28 +756,28 @@ 652 : 653 1268 : cam[i] = cam_raw[i]; 654 : - 655 16946563 : if (cam_data_reset_val[i]) - 656 472907 : cam[i].valid = 1'b0; + 655 16535812 : if (cam_data_reset_val[i]) + 656 472348 : cam[i].valid = 1'b0; 657 : 658 1268 : cam_in[i] = '0; 659 : - 660 1418800 : if (cam_wen[i]) begin - 661 1418800 : cam_in[i].valid = 1'b1; - 662 1418800 : cam_in[i].wb = 1'b0; - 663 1418800 : cam_in[i].tag[NBLOAD_TAG_MSB:0] = cam_write_tag[NBLOAD_TAG_MSB:0]; - 664 1418800 : cam_in[i].rd[4:0] = nonblock_load_rd[4:0]; + 660 1417123 : if (cam_wen[i]) begin + 661 1417123 : cam_in[i].valid = 1'b1; + 662 1417123 : cam_in[i].wb = 1'b0; + 663 1417123 : cam_in[i].tag[NBLOAD_TAG_MSB:0] = cam_write_tag[NBLOAD_TAG_MSB:0]; + 664 1417123 : cam_in[i].rd[4:0] = nonblock_load_rd[4:0]; 665 : end - 666 16654726 : else if ( (cam_inv_reset_val[i]) | + 666 16244479 : else if ( (cam_inv_reset_val[i]) | 667 : (i0_wen_r & (r_d_in.i0rd[4:0] == cam[i].rd[4:0]) & cam[i].wb) ) - 668 56444 : cam_in[i].valid = 1'b0; + 668 56389 : cam_in[i].valid = 1'b0; 669 : else - 670 106615504 : cam_in[i] = cam[i]; + 670 106047472 : cam_in[i] = cam[i]; 671 : - 672 17892695 : if (nonblock_load_valid_m_delay & (lsu_nonblock_load_inv_tag_r[NBLOAD_TAG_MSB:0]==cam[i].tag[NBLOAD_TAG_MSB:0]) & cam[i].valid) - 673 1418727 : cam_in[i].wb = 1'b1; + 672 17480826 : if (nonblock_load_valid_m_delay & (lsu_nonblock_load_inv_tag_r[NBLOAD_TAG_MSB:0]==cam[i].tag[NBLOAD_TAG_MSB:0]) & cam[i].valid) + 673 1417050 : cam_in[i].wb = 1'b1; 674 : 675 : // force debug halt forces cam valids to 0; highest priority - 676 97053128 : if (dec_tlu_force_halt) + 676 96539460 : if (dec_tlu_force_halt) 677 0 : cam_in[i].valid = 1'b0; 678 : end 679 : @@ -847,26 +847,26 @@ 743 317 : always_comb begin 744 317 : i0_itype = NULL_OP; 745 : - 746 4523319 : if (i0_legal_decode_d) begin - 747 1942801 : if (i0_dp.mul) i0_itype = MUL; - 748 2801549 : if (i0_dp.load) i0_itype = LOAD; - 749 2380807 : if (i0_dp.store) i0_itype = STORE; - 750 3778541 : if (i0_dp.pm_alu) i0_itype = ALU; - 751 8195979 : if (i0_dp.zbb | i0_dp.zbs | + 746 4496922 : if (i0_legal_decode_d) begin + 747 1946155 : if (i0_dp.mul) i0_itype = MUL; + 748 2790451 : if (i0_dp.load) i0_itype = LOAD; + 749 2390666 : if (i0_dp.store) i0_itype = STORE; + 750 3777474 : if (i0_dp.pm_alu) i0_itype = ALU; + 751 8180253 : if (i0_dp.zbb | i0_dp.zbs | 752 : i0_dp.zbe | i0_dp.zbc | 753 : i0_dp.zbp | i0_dp.zbr | 754 : i0_dp.zbf | i0_dp.zba) 755 25713 : i0_itype = BITMANIPU; - 756 2039335 : if ( csr_read & ~csr_write) i0_itype = CSRREAD; - 757 328213 : if (~csr_read & csr_write) i0_itype = CSRWRITE; - 758 6967003 : if ( csr_read & csr_write) i0_itype = CSRRW; - 759 8035924 : if (i0_dp.ebreak) i0_itype = EBREAK; - 760 4867703 : if (i0_dp.ecall) i0_itype = ECALL; - 761 6734755 : if (i0_dp.fence) i0_itype = FENCE; - 762 7048285 : if (i0_dp.fence_i) i0_itype = FENCEI; // fencei will set this even with fence attribute - 763 4850509 : if (i0_dp.mret) i0_itype = MRET; - 764 1799266 : if (i0_dp.condbr) i0_itype = CONDBR; - 765 419543 : if (i0_dp.jal) i0_itype = JAL; + 756 2050039 : if ( csr_read & ~csr_write) i0_itype = CSRREAD; + 757 327975 : if (~csr_read & csr_write) i0_itype = CSRWRITE; + 758 6934514 : if ( csr_read & csr_write) i0_itype = CSRRW; + 759 8012049 : if (i0_dp.ebreak) i0_itype = EBREAK; + 760 4878241 : if (i0_dp.ecall) i0_itype = ECALL; + 761 6719029 : if (i0_dp.fence) i0_itype = FENCE; + 762 7032559 : if (i0_dp.fence_i) i0_itype = FENCEI; // fencei will set this even with fence attribute + 763 4861053 : if (i0_dp.mret) i0_itype = MRET; + 764 1802903 : if (i0_dp.condbr) i0_itype = CONDBR; + 765 419288 : if (i0_dp.jal) i0_itype = JAL; 766 : end 767 : end 768 : @@ -963,27 +963,27 @@ 859 317 : always_comb begin 860 317 : lsu_p = '0; 861 : - 862 24263282 : if (dec_extint_stall) begin + 862 24134865 : if (dec_extint_stall) begin 863 0 : lsu_p.load = 1'b1; 864 0 : lsu_p.word = 1'b1; 865 0 : lsu_p.fast_int = 1'b1; 866 0 : lsu_p.valid = 1'b1; 867 : end - 868 24263282 : else begin - 869 24263282 : lsu_p.valid = lsu_decode_d; + 868 24134865 : else begin + 869 24134865 : lsu_p.valid = lsu_decode_d; 870 : - 871 24263282 : lsu_p.load = i0_dp.load ; - 872 24263282 : lsu_p.store = i0_dp.store; - 873 24263282 : lsu_p.by = i0_dp.by ; - 874 24263282 : lsu_p.half = i0_dp.half ; - 875 24263282 : lsu_p.word = i0_dp.word ; - 876 24263282 : lsu_p.stack = (i0r.rs1[4:0]==5'd2); // stack reference + 871 24134865 : lsu_p.load = i0_dp.load ; + 872 24134865 : lsu_p.store = i0_dp.store; + 873 24134865 : lsu_p.by = i0_dp.by ; + 874 24134865 : lsu_p.half = i0_dp.half ; + 875 24134865 : lsu_p.word = i0_dp.word ; + 876 24134865 : lsu_p.stack = (i0r.rs1[4:0]==5'd2); // stack reference 877 : - 878 24263282 : lsu_p.load_ldst_bypass_d = load_ldst_bypass_d ; - 879 24263282 : lsu_p.store_data_bypass_d = store_data_bypass_d; - 880 24263282 : lsu_p.store_data_bypass_m = store_data_bypass_m; + 878 24134865 : lsu_p.load_ldst_bypass_d = load_ldst_bypass_d ; + 879 24134865 : lsu_p.store_data_bypass_d = store_data_bypass_d; + 880 24134865 : lsu_p.store_data_bypass_m = store_data_bypass_m; 881 : - 882 24263282 : lsu_p.unsign = i0_dp.unsign; + 882 24134865 : lsu_p.unsign = i0_dp.unsign; 883 : end 884 : end 885 : @@ -1380,7 +1380,7 @@ 1276 317 : r_t_in.i0trigger[3:0] = ({4{(r_d.i0load | r_d.i0store)}} & lsu_trigger_match_r[3:0]) | r_t.i0trigger[3:0]; 1277 317 : r_t_in.pmu_lsu_misaligned = lsu_pmu_misaligned_r; // only valid if a load/store is valid in DC3 stage 1278 : - 1279 29372 : if (dec_tlu_flush_lower_wb) r_t_in = '0 ; + 1279 29369 : if (dec_tlu_flush_lower_wb) r_t_in = '0 ; 1280 : 1281 : end 1282 : @@ -1614,11 +1614,11 @@ 1510 : module el2_dec_dec_ctl 1511 : import el2_pkg::*; 1512 : ( - 1513 468420 : input logic [31:0] inst, + 1513 467652 : input logic [31:0] inst, 1514 7440 : output el2_dec_pkt_t out 1515 : ); 1516 : - 1517 468420 : logic [31:0] i; + 1517 467652 : logic [31:0] i; 1518 : 1519 : assign i[31:0] = inst[31:0]; 1520 : diff --git a/html/main/coverage_dashboard/all/index_el2_dec_gpr_ctl.sv.html b/html/main/coverage_dashboard/all/index_el2_dec_gpr_ctl.sv.html index 352da75193b..1bd867297b5 100644 --- a/html/main/coverage_dashboard/all/index_el2_dec_gpr_ctl.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_dec_gpr_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -122,26 +122,26 @@ 18 : #( 19 : `include "el2_param.vh" 20 : ) ( - 21 2497511 : input logic [4:0] raddr0, // logical read addresses - 22 4174324 : input logic [4:0] raddr1, + 21 2486977 : input logic [4:0] raddr0, // logical read addresses + 22 4163722 : input logic [4:0] raddr1, 23 : - 24 5678794 : input logic wen0, // write enable - 25 2809689 : input logic [4:0] waddr0, // write address - 26 314049 : input logic [31:0] wd0, // write data + 24 5660354 : input logic wen0, // write enable + 25 2798269 : input logic [4:0] waddr0, // write address + 26 314035 : input logic [31:0] wd0, // write data 27 : - 28 920884 : input logic wen1, // write enable - 29 368914 : input logic [4:0] waddr1, // write address - 30 71560 : input logic [31:0] wd1, // write data + 28 914806 : input logic wen1, // write enable + 29 368026 : input logic [4:0] waddr1, // write address + 30 71538 : input logic [31:0] wd1, // write data 31 : - 32 156868 : input logic wen2, // write enable - 33 21351 : input logic [4:0] waddr2, // write address + 32 156836 : input logic wen2, // write enable + 33 21350 : input logic [4:0] waddr2, // write address 34 24784 : input logic [31:0] wd2, // write data 35 : - 36 61843746 : input logic clk, + 36 61251245 : input logic clk, 37 316 : input logic rst_l, 38 : - 39 407880 : output logic [31:0] rd0, // read data - 40 598740 : output logic [31:0] rd1, + 39 407844 : output logic [31:0] rd0, // read data + 40 598744 : output logic [31:0] rd1, 41 : 42 0 : input logic scan_mode 43 : ); @@ -149,7 +149,7 @@ 45 : logic [31:1] [31:0] gpr_out; // 31 x 32 bit GPRs 46 : logic [31:1] [31:0] gpr_in; 47 1324 : logic [31:1] w0v,w1v,w2v; - 48 63550 : logic [31:1] gpr_wr_en; + 48 63462 : logic [31:1] gpr_wr_en; 49 : 50 : // GPR Write Enables 51 : assign gpr_wr_en[31:1] = (w0v[31:1] | w1v[31:1] | w2v[31:1]); diff --git a/html/main/coverage_dashboard/all/index_el2_dec_ib_ctl.sv.html b/html/main/coverage_dashboard/all/index_el2_dec_ib_ctl.sv.html index ef5e3505f69..65a1b899a3b 100644 --- a/html/main/coverage_dashboard/all/index_el2_dec_ib_ctl.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_dec_ib_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -129,36 +129,36 @@ 25 0 : input logic [1:0] dbg_cmd_type, // dbg type 26 349 : input logic [31:0] dbg_cmd_addr, // expand to 31:0 27 : - 28 200759 : input el2_br_pkt_t i0_brp, // i0 branch packet from aligner - 29 651076 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] ifu_i0_bp_index, // BP index - 30 631672 : input logic [pt.BHT_GHR_SIZE-1:0] ifu_i0_bp_fghr, // BP FGHR + 28 200545 : input el2_br_pkt_t i0_brp, // i0 branch packet from aligner + 29 650118 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] ifu_i0_bp_index, // BP index + 30 619214 : input logic [pt.BHT_GHR_SIZE-1:0] ifu_i0_bp_fghr, // BP FGHR 31 21217 : input logic [pt.BTB_BTAG_SIZE-1:0] ifu_i0_bp_btag, // BP tag 32 0 : input logic [$clog2(pt.BTB_SIZE)-1:0] ifu_i0_fa_index, // Fully associt btb index 33 : - 34 5735369 : input logic ifu_i0_pc4, // i0 is 4B inst else 2B - 35 6006883 : input logic ifu_i0_valid, // i0 valid from ifu + 34 5716269 : input logic ifu_i0_pc4, // i0 is 4B inst else 2B + 35 5971582 : input logic ifu_i0_valid, // i0 valid from ifu 36 196 : input logic ifu_i0_icaf, // i0 instruction access fault 37 270 : input logic [1:0] ifu_i0_icaf_type, // i0 instruction access fault type 38 : 39 86 : input logic ifu_i0_icaf_second, // i0 has access fault on second 2B of 4B inst 40 2 : input logic ifu_i0_dbecc, // i0 double-bit error - 41 468882 : input logic [31:0] ifu_i0_instr, // i0 instruction from the aligner + 41 468114 : input logic [31:0] ifu_i0_instr, // i0 instruction from the aligner 42 1288 : input logic [31:1] ifu_i0_pc, // i0 pc from the aligner 43 : 44 : - 45 6006884 : output logic dec_ib0_valid_d, // ib0 valid + 45 5971583 : output logic dec_ib0_valid_d, // ib0 valid 46 1 : output logic dec_debug_valid_d, // Debug read or write at D-stage 47 : 48 : - 49 468421 : output logic [31:0] dec_i0_instr_d, // i0 inst at decode + 49 467653 : output logic [31:0] dec_i0_instr_d, // i0 inst at decode 50 : 51 1288 : output logic [31:1] dec_i0_pc_d, // i0 pc at decode 52 : - 53 5735369 : output logic dec_i0_pc4_d, // i0 is 4B inst else 2B + 53 5716269 : output logic dec_i0_pc4_d, // i0 is 4B inst else 2B 54 : - 55 200759 : output el2_br_pkt_t dec_i0_brp, // i0 branch packet at decode - 56 651076 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] dec_i0_bp_index, // i0 branch index - 57 631672 : output logic [pt.BHT_GHR_SIZE-1:0] dec_i0_bp_fghr, // BP FGHR + 55 200545 : output el2_br_pkt_t dec_i0_brp, // i0 branch packet at decode + 56 650118 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] dec_i0_bp_index, // i0 branch index + 57 619214 : output logic [pt.BHT_GHR_SIZE-1:0] dec_i0_bp_fghr, // BP FGHR 58 21217 : output logic [pt.BTB_BTAG_SIZE-1:0] dec_i0_bp_btag, // BP tag 59 0 : output logic [$clog2(pt.BTB_SIZE)-1:0] dec_i0_bp_fa_index, // Fully associt btb index 60 : @@ -185,7 +185,7 @@ 81 374 : logic debug_read_csr; 82 371 : logic debug_write_csr; 83 : - 84 604160 : logic [34:0] ifu_i0_pcdata, pc0; + 84 603277 : logic [34:0] ifu_i0_pcdata, pc0; 85 : 86 : assign ifu_i0_pcdata[34:0] = { ifu_i0_icaf_second, ifu_i0_dbecc, ifu_i0_icaf, 87 : ifu_i0_pc[31:1], ifu_i0_pc4 }; diff --git a/html/main/coverage_dashboard/all/index_el2_dec_pmp_ctl.sv.html b/html/main/coverage_dashboard/all/index_el2_dec_pmp_ctl.sv.html index 711c77f43a4..a988ff33db4 100644 --- a/html/main/coverage_dashboard/all/index_el2_dec_pmp_ctl.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_dec_pmp_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -133,14 +133,14 @@ 29 : `include "el2_param.vh" 30 : ) 31 : ( - 32 61843746 : input logic clk, - 33 61843746 : input logic free_l2clk, - 34 61843746 : input logic csr_wr_clk, + 32 61251245 : input logic clk, + 33 61251245 : input logic free_l2clk, + 34 61251245 : input logic csr_wr_clk, 35 316 : input logic rst_l, - 36 41826 : input logic dec_csr_wen_r_mod, // csr write enable at wb - 37 406 : input logic [11:0] dec_csr_wraddr_r, // write address for csr + 36 41778 : input logic dec_csr_wen_r_mod, // csr write enable at wb + 37 412 : input logic [11:0] dec_csr_wraddr_r, // write address for csr 38 1640 : input logic [31:0] dec_csr_wrdata_r, // csr write data at wb - 39 906 : input logic [11:0] dec_csr_rdaddr_d, // read address for csr + 39 910 : input logic [11:0] dec_csr_rdaddr_d, // read address for csr 40 : 41 896 : input logic csr_pmpcfg, 42 802 : input logic csr_pmpaddr0, @@ -248,10 +248,10 @@ 144 : for (genvar entry_idx = 0; entry_idx < pt.PMP_ENTRIES; entry_idx++) begin : gen_pmpaddr_ff 145 : logic pmpaddr_lock; 146 : logic pmpaddr_lock_next; - 147 : assign pmpaddr_lock_next = ((entry_idx+1 < pt.PMP_ENTRIES) - 148 : ? (entry_lock_eff[entry_idx+1] - 149 : & pmp_pmpcfg[entry_idx+1].mode == TOR) - 150 : : 1'b0); + 147 : if (entry_idx+1 < pt.PMP_ENTRIES) + 148 : assign pmpaddr_lock_next = entry_lock_eff[entry_idx+1] & pmp_pmpcfg[entry_idx+1].mode == TOR; + 149 : else + 150 : assign pmpaddr_lock_next = 1'b0; 151 : assign pmpaddr_lock = entry_lock_eff[entry_idx] | pmpaddr_lock_next; 152 : assign pmp_pmpaddr[entry_idx][31:30] = 2'b00; 153 : rvdffe #(30) pmpaddr_ff (.*, .clk(free_l2clk), diff --git a/html/main/coverage_dashboard/all/index_el2_dec_tlu_ctl.sv.html b/html/main/coverage_dashboard/all/index_el2_dec_tlu_ctl.sv.html index 396249ac06a..03471949b0d 100644 --- a/html/main/coverage_dashboard/all/index_el2_dec_tlu_ctl.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_dec_tlu_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -133,14 +133,14 @@ 29 : `include "el2_param.vh" 30 : ) 31 : ( - 32 61843746 : input logic clk, - 33 61843746 : input logic free_clk, - 34 61843746 : input logic free_l2clk, + 32 61251245 : input logic clk, + 33 61251245 : input logic free_clk, + 34 61251245 : input logic free_l2clk, 35 316 : input logic rst_l, 36 0 : input logic scan_mode, 37 : 38 0 : input logic [31:1] rst_vec, // reset vector, from core pins - 39 17 : input logic nmi_int, // nmi pin + 39 15 : input logic nmi_int, // nmi pin 40 0 : input logic [31:1] nmi_vec, // nmi vector 41 0 : input logic i_cpu_halt_req, // Asynchronous Halt request to CPU 42 0 : input logic i_cpu_run_req, // Asynchronous Restart request to CPU @@ -149,29 +149,29 @@ 45 : 46 : 47 : // perf counter inputs - 48 6190087 : input logic ifu_pmu_instr_aligned, // aligned instructions - 49 614530 : input logic ifu_pmu_fetch_stall, // fetch unit stalled - 50 5893104 : input logic ifu_pmu_ic_miss, // icache miss + 48 6153554 : input logic ifu_pmu_instr_aligned, // aligned instructions + 49 613228 : input logic ifu_pmu_fetch_stall, // fetch unit stalled + 50 5856146 : input logic ifu_pmu_ic_miss, // icache miss 51 744124 : input logic ifu_pmu_ic_hit, // icache hit 52 0 : input logic ifu_pmu_bus_error, // Instruction side bus error 53 4463637 : input logic ifu_pmu_bus_busy, // Instruction side bus busy - 54 10356722 : input logic ifu_pmu_bus_trxn, // Instruction side bus transaction - 55 6190087 : input logic dec_pmu_instr_decoded, // decoded instructions - 56 238142 : input logic dec_pmu_decode_stall, // decode stall + 54 10319765 : input logic ifu_pmu_bus_trxn, // Instruction side bus transaction + 55 6153554 : input logic dec_pmu_instr_decoded, // decoded instructions + 56 236732 : input logic dec_pmu_decode_stall, // decode stall 57 264 : input logic dec_pmu_presync_stall, // decode stall due to presync'd inst - 58 14500 : input logic dec_pmu_postsync_stall,// decode stall due to postsync'd inst - 59 59374 : input logic lsu_store_stall_any, // SB or WB is full, stall decode + 58 14454 : input logic dec_pmu_postsync_stall,// decode stall due to postsync'd inst + 59 59312 : input logic lsu_store_stall_any, // SB or WB is full, stall decode 60 0 : input logic dma_dccm_stall_any, // DMA stall of lsu 61 26 : input logic dma_iccm_stall_any, // DMA stall of ifu - 62 409754 : input logic exu_pmu_i0_br_misp, // pipe 0 branch misp - 63 2868109 : input logic exu_pmu_i0_br_ataken, // pipe 0 branch actual taken - 64 3459682 : input logic exu_pmu_i0_pc4, // pipe 0 4 byte branch - 65 1667379 : input logic lsu_pmu_bus_trxn, // D side bus transaction - 66 36420 : input logic lsu_pmu_bus_misaligned, // D side bus misaligned + 62 408472 : input logic exu_pmu_i0_br_misp, // pipe 0 branch misp + 63 2862323 : input logic exu_pmu_i0_br_ataken, // pipe 0 branch actual taken + 64 3452000 : input logic exu_pmu_i0_pc4, // pipe 0 4 byte branch + 65 1655267 : input logic lsu_pmu_bus_trxn, // D side bus transaction + 66 36414 : input logic lsu_pmu_bus_misaligned, // D side bus misaligned 67 0 : input logic lsu_pmu_bus_error, // D side bus error - 68 67818 : input logic lsu_pmu_bus_busy, // D side bus busy - 69 891764 : input logic lsu_pmu_load_external_m, // D side bus load - 70 806110 : input logic lsu_pmu_store_external_m, // D side bus store + 68 67790 : input logic lsu_pmu_bus_busy, // D side bus busy + 69 885840 : input logic lsu_pmu_load_external_m, // D side bus load + 70 800418 : input logic lsu_pmu_store_external_m, // D side bus store 71 0 : input logic dma_pmu_dccm_read, // DMA DCCM read 72 0 : input logic dma_pmu_dccm_write, // DMA DCCM write 73 0 : input logic dma_pmu_any_read, // DMA read @@ -188,43 +188,43 @@ 84 0 : input logic dec_pause_state, // Pause counter not zero 85 0 : input logic lsu_imprecise_error_store_any, // store bus error 86 0 : input logic lsu_imprecise_error_load_any, // store bus error - 87 401 : input logic [31:0] lsu_imprecise_error_addr_any, // store bus error address + 87 400 : input logic [31:0] lsu_imprecise_error_addr_any, // store bus error address 88 : - 89 41991 : input logic dec_csr_wen_unq_d, // valid csr with write - for csr legal - 90 83863 : input logic dec_csr_any_unq_d, // valid csr - for csr legal - 91 906 : input logic [11:0] dec_csr_rdaddr_d, // read address for csr + 89 41943 : input logic dec_csr_wen_unq_d, // valid csr with write - for csr legal + 90 83633 : input logic dec_csr_any_unq_d, // valid csr - for csr legal + 91 910 : input logic [11:0] dec_csr_rdaddr_d, // read address for csr 92 : - 93 41826 : input logic dec_csr_wen_r, // csr write enable at wb - 94 1559962 : input logic [11:0] dec_csr_rdaddr_r, // read address for csr - 95 406 : input logic [11:0] dec_csr_wraddr_r, // write address for csr + 93 41778 : input logic dec_csr_wen_r, // csr write enable at wb + 94 1551842 : input logic [11:0] dec_csr_rdaddr_r, // read address for csr + 95 412 : input logic [11:0] dec_csr_wraddr_r, // write address for csr 96 1640 : input logic [31:0] dec_csr_wrdata_r, // csr write data at wb 97 : - 98 1346 : input logic dec_csr_stall_int_ff, // csr is mie/mstatus + 98 1330 : input logic dec_csr_stall_int_ff, // csr is mie/mstatus 99 : - 100 6189442 : input logic dec_tlu_i0_valid_r, // pipe 0 op at e4 is valid + 100 6152908 : input logic dec_tlu_i0_valid_r, // pipe 0 op at e4 is valid 101 : 102 313 : input logic [31:1] exu_npc_r, // for NPC tracking 103 : 104 308 : input logic [31:1] dec_tlu_i0_pc_r, // for PC/NPC tracking 105 : - 106 264 : input el2_trap_pkt_t dec_tlu_packet_r, // exceptions known at decode + 106 258 : input el2_trap_pkt_t dec_tlu_packet_r, // exceptions known at decode 107 : 108 18 : input logic [31:0] dec_illegal_inst, // For mtval - 109 6190087 : input logic dec_i0_decode_d, // decode valid, used for clean icache diagnostics + 109 6153554 : input logic dec_i0_decode_d, // decode valid, used for clean icache diagnostics 110 : 111 : // branch info from pipe0 for errors or counter updates - 112 2679213 : input logic [1:0] exu_i0_br_hist_r, // history + 112 2673781 : input logic [1:0] exu_i0_br_hist_r, // history 113 26468 : input logic exu_i0_br_error_r, // error 114 9608 : input logic exu_i0_br_start_error_r, // start error - 115 2970681 : input logic exu_i0_br_valid_r, // valid - 116 409754 : input logic exu_i0_br_mp_r, // mispredict - 117 2381498 : input logic exu_i0_br_middle_r, // middle of bank + 115 2962465 : input logic exu_i0_br_valid_r, // valid + 116 408472 : input logic exu_i0_br_mp_r, // mispredict + 117 2370984 : input logic exu_i0_br_middle_r, // middle of bank 118 : 119 : // branch info from pipe1 for errors or counter updates 120 : - 121 2110900 : input logic exu_i0_br_way_r, // way hit or repl + 121 2108159 : input logic exu_i0_br_way_r, // way hit or repl 122 : - 123 2091300 : output logic dec_tlu_core_empty, // core is empty + 123 2081032 : output logic dec_tlu_core_empty, // core is empty 124 : // Debug start 125 0 : output logic dec_dbg_cmd_done, // abstract command done 126 0 : output logic dec_dbg_cmd_fail, // abstract command failed @@ -243,9 +243,9 @@ 139 : 140 0 : input logic dbg_halt_req, // DM requests a halt 141 0 : input logic dbg_resume_req, // DM requests a resume - 142 5892108 : input logic ifu_miss_state_idle, // I-side miss buffer empty - 143 1346967 : input logic lsu_idle_any, // lsu is idle - 144 159496 : input logic dec_div_active, // oop div is active + 142 5855150 : input logic ifu_miss_state_idle, // I-side miss buffer empty + 143 1337985 : input logic lsu_idle_any, // lsu is idle + 144 159464 : input logic dec_div_active, // oop div is active 145 0 : output el2_trigger_pkt_t [3:0] trigger_pkt_any, // trigger info for trigger blocks 146 : 147 0 : input logic ifu_ic_error_start, // IC single bit error @@ -262,8 +262,8 @@ 158 0 : input logic mhwakeup, // high priority external int, wakeup if halted 159 : 160 0 : input logic mexintpend, // external interrupt pending - 161 18 : input logic timer_int, // timer interrupt pending - 162 17 : input logic soft_int, // software interrupt pending + 161 14 : input logic timer_int, // timer interrupt pending + 162 13 : input logic soft_int, // software interrupt pending 163 : 164 0 : output logic o_cpu_halt_status, // PMU interface, halted 165 0 : output logic o_cpu_halt_ack, // halt req ack @@ -284,24 +284,24 @@ 180 0 : output logic [3:0] dec_tlu_meipt, // to PIC 181 : 182 : - 183 6941 : output logic [31:0] dec_csr_rddata_d, // csr read data at wb - 184 83741 : output logic dec_csr_legal_d, // csr indicates legal operation + 183 8136 : output logic [31:0] dec_csr_rddata_d, // csr read data at wb + 184 83511 : output logic dec_csr_legal_d, // csr indicates legal operation 185 : - 186 782203 : output el2_br_tlu_pkt_t dec_tlu_br0_r_pkt, // branch pkt to bp + 186 779462 : output el2_br_tlu_pkt_t dec_tlu_br0_r_pkt, // branch pkt to bp 187 : 188 29654 : output logic dec_tlu_i0_kill_writeb_wb, // I0 is flushed, don't writeback any results to arch state - 189 58638 : output logic dec_tlu_flush_lower_wb, // commit has a flush (exception, int, mispredict at e4) - 190 6162256 : output logic dec_tlu_i0_commit_cmt, // committed an instruction + 189 58568 : output logic dec_tlu_flush_lower_wb, // commit has a flush (exception, int, mispredict at e4) + 190 6125722 : output logic dec_tlu_i0_commit_cmt, // committed an instruction 191 : 192 29654 : output logic dec_tlu_i0_kill_writeb_r, // I0 is flushed, don't writeback any results to arch state - 193 58638 : output logic dec_tlu_flush_lower_r, // commit has a flush (exception, int) - 194 24686 : output logic [31:1] dec_tlu_flush_path_r, // flush pc + 193 58568 : output logic dec_tlu_flush_lower_r, // commit has a flush (exception, int) + 194 24680 : output logic [31:1] dec_tlu_flush_path_r, // flush pc 195 18866 : output logic dec_tlu_fence_i_r, // flush is a fence_i rfnpc, flush icache 196 0 : output logic dec_tlu_wr_pause_r, // CSR write to pause reg is at R. 197 0 : output logic dec_tlu_flush_pause_r, // Flush is due to pause 198 : 199 510 : output logic dec_tlu_presync_d, // CSR read needs to be presync'd - 200 20293 : output logic dec_tlu_postsync_d, // CSR needs to be presync'd + 200 20137 : output logic dec_tlu_postsync_d, // CSR needs to be presync'd 201 : 202 : 203 0 : output logic [31:0] dec_tlu_mrac_ff, // CSR for memory region control @@ -313,11 +313,11 @@ 209 312914 : output logic dec_tlu_perfcnt2, // toggles when pipe0 perf counter 2 has an event inc 210 48468 : output logic dec_tlu_perfcnt3, // toggles when pipe0 perf counter 3 has an event inc 211 : - 212 5118 : output logic dec_tlu_i0_exc_valid_wb1, // pipe 0 exception valid - 213 6161964 : output logic dec_tlu_i0_valid_wb1, // pipe 0 valid - 214 28 : output logic dec_tlu_int_valid_wb1, // pipe 2 int valid + 212 5092 : output logic dec_tlu_i0_exc_valid_wb1, // pipe 0 exception valid + 213 6125436 : output logic dec_tlu_i0_valid_wb1, // pipe 0 valid + 214 22 : output logic dec_tlu_int_valid_wb1, // pipe 2 int valid 215 0 : output logic [4:0] dec_tlu_exc_cause_wb1, // exception or int cause - 216 54 : output logic [31:0] dec_tlu_mtval_wb1, // MTVAL value + 216 52 : output logic [31:0] dec_tlu_mtval_wb1, // MTVAL value 217 : 218 : // feature disable from mfdc 219 0 : output logic dec_tlu_external_ldfwd_disable, // disable external load forwarding @@ -344,9 +344,9 @@ 240 : 241 : // Privilege mode 242 : // 0 - machine, 1 - user - 243 866 : output logic priv_mode, - 244 960 : output logic priv_mode_eff, - 245 866 : output logic priv_mode_ns, + 243 841 : output logic priv_mode, + 244 931 : output logic priv_mode_eff, + 245 841 : output logic priv_mode_ns, 246 : 247 : // mseccfg CSR content for PMP 248 2 : output logic [2:0] mseccfg, @@ -358,7 +358,7 @@ 254 : output logic [31:0] pmp_pmpaddr [pt.PMP_ENTRIES] 255 : ); 256 : - 257 12 : logic clk_override, e4e5_int_clk, nmi_fir_type, nmi_lsu_load_type, nmi_lsu_store_type, nmi_int_detected_f, nmi_lsu_load_type_f, + 257 10 : logic clk_override, e4e5_int_clk, nmi_fir_type, nmi_lsu_load_type, nmi_lsu_store_type, nmi_int_detected_f, nmi_lsu_load_type_f, 258 0 : nmi_lsu_store_type_f, allow_dbg_halt_csr_write, dbg_cmd_done_ns, i_cpu_run_req_d1_raw, debug_mode_status, lsu_single_ecc_error_r_d1, 259 2 : sel_npc_r, sel_npc_resume, ce_int, 260 0 : nmi_in_debug_mode, dpc_capture_npc, dpc_capture_pc, tdata_load, tdata_opcode, tdata_action, perfcnt_halted, tdata_chain, @@ -379,7 +379,7 @@ 275 36 : logic wr_mcounteren_r; 276 6 : logic [5:0] mcounteren; // HPM6, HPM5, HPM4, HPM3, IR, CY 277 40 : logic wr_mseccfg_r; - 278 2789 : logic [2:0] mseccfg_ns; + 278 2781 : logic [2:0] mseccfg_ns; 279 : `endif 280 0 : logic [6:0] mcountinhibit; 281 0 : logic wr_mtsel_r, wr_mtdata1_t0_r, wr_mtdata1_t1_r, wr_mtdata1_t2_r, wr_mtdata1_t3_r, wr_mtdata2_t0_r, wr_mtdata2_t1_r, wr_mtdata2_t2_r, wr_mtdata2_t3_r; @@ -389,22 +389,22 @@ 285 0 : logic [1:0] mtsel_ns, mtsel; 286 29654 : logic tlu_i0_kill_writeb_r; 287 : `ifdef RV_USER_MODE - 288 55 : logic [3:0] mstatus_ns, mstatus; // MPRV, MPP (inverted! 0-M, 1-U), MPIE, MIE + 288 52 : logic [3:0] mstatus_ns, mstatus; // MPRV, MPP (inverted! 0-M, 1-U), MPIE, MIE 289 : `else - 290 3466 : logic [1:0] mstatus_ns, mstatus; + 290 3467 : logic [1:0] mstatus_ns, mstatus; 291 : `endif 292 0 : logic [1:0] mfdhs_ns, mfdhs; 293 0 : logic [31:0] force_halt_ctr, force_halt_ctr_f; 294 0 : logic force_halt; 295 0 : logic [5:0] mfdht, mfdht_ns; - 296 892 : logic mstatus_mie_ns; + 296 868 : logic mstatus_mie_ns; 297 0 : logic [30:0] mtvec_ns, mtvec; 298 0 : logic [15:2] dcsr_ns, dcsr; 299 2 : logic [5:0] mip_ns, mip; 300 0 : logic [5:0] mie_ns, mie; - 301 47082 : logic [31:0] mcyclel_ns, mcyclel; + 301 46815 : logic [31:0] mcyclel_ns, mcyclel; 302 0 : logic [31:0] mcycleh_ns, mcycleh; - 303 14380 : logic [31:0] minstretl_ns, minstretl; + 303 14337 : logic [31:0] minstretl_ns, minstretl; 304 0 : logic [31:0] minstreth_ns, minstreth; 305 0 : logic [31:0] micect_ns, micect, miccmect_ns, miccmect, mdccmect_ns, mdccmect; 306 0 : logic [26:0] micect_inc, miccmect_inc, mdccmect_inc; @@ -420,16 +420,16 @@ 316 0 : logic [3:0] meipt_ns, meipt; 317 0 : logic [31:0] mdseac; 318 0 : logic mdseac_locked_ns, mdseac_locked_f, mdseac_en, nmi_lsu_detected; - 319 156 : logic [31:1] mepc_ns, mepc; + 319 155 : logic [31:1] mepc_ns, mepc; 320 0 : logic [31:1] dpc_ns, dpc; 321 0 : logic [31:0] mcause_ns, mcause; 322 0 : logic [3:0] mscause_ns, mscause, mscause_type; - 323 54 : logic [31:0] mtval_ns, mtval; + 323 52 : logic [31:0] mtval_ns, mtval; 324 0 : logic dec_pause_state_f, dec_tlu_wr_pause_r_d1, pause_expired_r, pause_expired_wb; - 325 58638 : logic tlu_flush_lower_r, tlu_flush_lower_r_d1; - 326 280 : logic [31:1] tlu_flush_path_r, tlu_flush_path_r_d1; - 327 6161964 : logic i0_valid_wb; - 328 6162256 : logic tlu_i0_commit_cmt; + 325 58568 : logic tlu_flush_lower_r, tlu_flush_lower_r_d1; + 326 279 : logic [31:1] tlu_flush_path_r, tlu_flush_path_r_d1; + 327 6125436 : logic i0_valid_wb; + 328 6125722 : logic tlu_i0_commit_cmt; 329 6 : logic [31:1] vectored_path, interrupt_path; 330 0 : logic [16:0] dicawics_ns, dicawics; 331 0 : logic wr_dicawics_r, wr_dicad0_r, wr_dicad1_r, wr_dicad0h_r; @@ -441,25 +441,25 @@ 337 0 : ic_perr_r, iccm_sbecc_r, ebreak_to_debug_mode_r_d1, kill_ebreak_count_r, inst_acc_second_r; 338 0 : logic ce_int_ready, ext_int_ready, timer_int_ready, soft_int_ready, int_timer0_int_ready, int_timer1_int_ready, mhwakeup_ready, 339 0 : take_ext_int, take_ce_int, take_timer_int, take_soft_int, take_int_timer0_int, take_int_timer1_int, take_nmi, take_nmi_r_d1, int_timer0_int_possible, int_timer1_int_possible; - 340 5146 : logic i0_exception_valid_r, interrupt_valid_r, i0_exception_valid_r_d1, interrupt_valid_r_d1, exc_or_int_valid_r, exc_or_int_valid_r_d1, mdccme_ce_req, miccme_ce_req, mice_ce_req; - 341 52860 : logic synchronous_flush_r; + 340 5114 : logic i0_exception_valid_r, interrupt_valid_r, i0_exception_valid_r_d1, interrupt_valid_r_d1, exc_or_int_valid_r, exc_or_int_valid_r_d1, mdccme_ce_req, miccme_ce_req, mice_ce_req; + 341 52834 : logic synchronous_flush_r; 342 0 : logic [4:0] exc_cause_r, exc_cause_wb; - 343 188615 : logic mcyclel_cout, mcyclel_cout_f, mcyclela_cout; - 344 47083 : logic [31:0] mcyclel_inc; + 343 187547 : logic mcyclel_cout, mcyclel_cout_f, mcyclela_cout; + 344 46816 : logic [31:0] mcyclel_inc; 345 0 : logic [31:0] mcycleh_inc; 346 : - 347 57930 : logic minstretl_cout, minstretl_cout_f, minstret_enable, minstretl_cout_ns, minstretl_couta; + 347 57758 : logic minstretl_cout, minstretl_cout_f, minstret_enable, minstretl_cout_ns, minstretl_couta; 348 : - 349 14380 : logic [31:0] minstretl_inc, minstretl_read; + 349 14337 : logic [31:0] minstretl_inc, minstretl_read; 350 0 : logic [31:0] minstreth_inc, minstreth_read; 351 312 : logic [31:1] pc_r, pc_r_d1, npc_r, npc_r_d1; - 352 83743 : logic valid_csr; + 352 83513 : logic valid_csr; 353 28866 : logic rfpc_i0_r; 354 4 : logic lsu_i0_rfnpc_r; - 355 2377932 : logic dec_tlu_br0_error_r, dec_tlu_br0_start_error_r, dec_tlu_br0_v_r; + 355 2370402 : logic dec_tlu_br0_error_r, dec_tlu_br0_start_error_r, dec_tlu_br0_v_r; 356 40 : logic lsu_i0_exc_r, lsu_i0_exc_r_raw, lsu_exc_ma_r, lsu_exc_acc_r, lsu_exc_st_r, - 357 57666 : lsu_exc_valid_r, lsu_exc_valid_r_raw, lsu_exc_valid_r_d1, lsu_i0_exc_r_d1, block_interrupts; - 358 6189442 : logic i0_trigger_eval_r; + 357 57596 : lsu_exc_valid_r, lsu_exc_valid_r_raw, lsu_exc_valid_r_d1, lsu_i0_exc_r_d1, block_interrupts; + 358 6152908 : logic i0_trigger_eval_r; 359 : 360 0 : logic request_debug_mode_r, request_debug_mode_r_d1, request_debug_mode_done, request_debug_mode_done_f; 361 632 : logic take_halt, halt_taken, halt_taken_f, internal_dbg_halt_mode, dbg_tlu_halted_f, take_reset, @@ -481,7 +481,7 @@ 377 0 : logic i_cpu_halt_req_sync_qual, i_cpu_run_req_sync_qual, pmu_fw_halt_req_ns, pmu_fw_halt_req_f, int_timer_stalled, 378 0 : fw_halt_req, enter_pmu_fw_halt_req, pmu_fw_tlu_halted, pmu_fw_tlu_halted_f, internal_pmu_fw_halt_mode, 379 0 : internal_pmu_fw_halt_mode_f, int_timer0_int_hold, int_timer1_int_hold, int_timer0_int_hold_f, int_timer1_int_hold_f; - 380 12 : logic nmi_int_delayed, nmi_int_detected; + 380 10 : logic nmi_int_delayed, nmi_int_detected; 381 0 : logic [3:0] trigger_execute, trigger_data, trigger_store; 382 0 : logic dec_tlu_pmu_fw_halted; 383 : @@ -506,19 +506,19 @@ 402 1738 : logic dec_pmp_read_d; 403 : 404 0 : logic nmi_int_sync, timer_int_sync, soft_int_sync, i_cpu_halt_req_sync, i_cpu_run_req_sync, mpc_debug_halt_req_sync, mpc_debug_run_req_sync, mpc_debug_halt_req_sync_raw; - 405 61843746 : logic csr_wr_clk; + 405 61251245 : logic csr_wr_clk; 406 0 : logic e4e5_clk, e4_valid, e5_valid, e4e5_valid, internal_dbg_halt_mode_f, internal_dbg_halt_mode_f2; - 407 672506 : logic lsu_pmu_load_external_r, lsu_pmu_store_external_r; + 407 666772 : logic lsu_pmu_load_external_r, lsu_pmu_store_external_r; 408 0 : logic dec_tlu_flush_noredir_r_d1, dec_tlu_flush_pause_r_d1; 409 4 : logic lsu_single_ecc_error_r; 410 2 : logic [31:0] lsu_error_pkt_addr_r; 411 317 : logic mcyclel_cout_in; - 412 6185912 : logic i0_valid_no_ebreak_ecall_r; - 413 6158676 : logic minstret_enable_f; - 414 58639 : logic sel_exu_npc_r, sel_flush_npc_r, sel_hold_npc_r; - 415 6189442 : logic pc0_valid_r; + 412 6149404 : logic i0_valid_no_ebreak_ecall_r; + 413 6122168 : logic minstret_enable_f; + 414 58569 : logic sel_exu_npc_r, sel_flush_npc_r, sel_hold_npc_r; + 415 6152908 : logic pc0_valid_r; 416 1991 : logic [15:0] mfdc_int, mfdc_ns; - 417 392 : logic [31:0] mrac_in; + 417 388 : logic [31:0] mrac_in; 418 752 : logic [31:27] csr_sat; 419 0 : logic [8:6] dcsr_cause; 420 0 : logic enter_debug_halt_req_le, dcsr_cause_upgradeable; @@ -535,22 +535,22 @@ 431 312914 : logic mhpmc5h_wr_en0, mhpmc5h_wr_en; 432 48468 : logic mhpmc6h_wr_en0, mhpmc6h_wr_en; 433 46 : logic [63:0] mhpmc3_incr, mhpmc4_incr, mhpmc5_incr, mhpmc6_incr; - 434 11315 : logic perfcnt_halted_d1, zero_event_r; + 434 11271 : logic perfcnt_halted_d1, zero_event_r; 435 0 : logic [3:0] perfcnt_during_sleep; 436 28 : logic [9:0] event_r; 437 : - 438 2151829 : el2_inst_pkt_t pmu_i0_itype_qual; + 438 2141441 : el2_inst_pkt_t pmu_i0_itype_qual; 439 : - 440 41826 : logic dec_csr_wen_r_mod; + 440 41778 : logic dec_csr_wen_r_mod; 441 : - 442 668 : logic flush_clkvalid; + 442 662 : logic flush_clkvalid; 443 0 : logic sel_fir_addr; 444 268 : logic wr_mie_r; - 445 3816 : logic mtval_capture_pc_r; + 445 3812 : logic mtval_capture_pc_r; 446 0 : logic mtval_capture_pc_plus2_r; - 447 262 : logic mtval_capture_inst_r; + 447 256 : logic mtval_capture_inst_r; 448 64 : logic mtval_capture_lsu_r; - 449 1004 : logic mtval_clear_r; + 449 982 : logic mtval_clear_r; 450 0 : logic wr_mcgc_r; 451 24 : logic wr_mfdc_r; 452 0 : logic wr_mdeau_r; @@ -585,8 +585,8 @@ 481 : `include "el2_dec_csr_equ_mu.svh" 482 : 483 612 : logic csr_acc_r; // CSR access error - 484 16682 : logic csr_wr_usr_r; // Write to an unprivileged/user-level CSR - 485 1131188 : logic csr_rd_usr_r; // REad from an unprivileged/user-level CSR + 484 16610 : logic csr_wr_usr_r; // Write to an unprivileged/user-level CSR + 485 1185055 : logic csr_rd_usr_r; // REad from an unprivileged/user-level CSR 486 : 487 : `else 488 : @@ -2685,7 +2685,7 @@ 2581 : // trace 2582 : //-------------------------------------------------------------------------------- 2583 0 : logic [4:0] dec_tlu_exc_cause_wb1_raw, dec_tlu_exc_cause_wb2; - 2584 28 : logic dec_tlu_int_valid_wb1_raw, dec_tlu_int_valid_wb2; + 2584 22 : logic dec_tlu_int_valid_wb1_raw, dec_tlu_int_valid_wb2; 2585 : 2586 : assign {dec_tlu_i0_valid_wb1, 2587 : dec_tlu_i0_exc_valid_wb1, @@ -2828,12 +2828,12 @@ 2724 : `include "el2_param.vh" 2725 : ) 2726 : ( - 2727 61843746 : input logic clk, - 2728 61843746 : input logic free_l2clk, - 2729 61843746 : input logic csr_wr_clk, + 2727 61251245 : input logic clk, + 2728 61251245 : input logic free_l2clk, + 2729 61251245 : input logic csr_wr_clk, 2730 316 : input logic rst_l, - 2731 41826 : input logic dec_csr_wen_r_mod, // csr write enable at wb - 2732 406 : input logic [11:0] dec_csr_wraddr_r, // write address for csr + 2731 41778 : input logic dec_csr_wen_r_mod, // csr write enable at wb + 2732 412 : input logic [11:0] dec_csr_wraddr_r, // write address for csr 2733 1640 : input logic [31:0] dec_csr_wrdata_r, // csr write data at wb 2734 : 2735 12 : input logic csr_mitctl0, @@ -2859,12 +2859,12 @@ 2755 : localparam MITCTL_ENABLE_HALTED = 1; 2756 : localparam MITCTL_ENABLE_PAUSED = 2; 2757 : - 2758 47083 : logic [31:0] mitcnt0_ns, mitcnt0, mitcnt1_ns, mitcnt1, mitb0, mitb1, mitb0_b, mitb1_b, mitcnt0_inc, mitcnt1_inc; + 2758 46816 : logic [31:0] mitcnt0_ns, mitcnt0, mitcnt1_ns, mitcnt1, mitb0, mitb1, mitb0_b, mitb1_b, mitcnt0_inc, mitcnt1_inc; 2759 0 : logic [2:0] mitctl0_ns, mitctl0; 2760 0 : logic [3:0] mitctl1_ns, mitctl1; 2761 0 : logic wr_mitcnt0_r, wr_mitcnt1_r, wr_mitb0_r, wr_mitb1_r, wr_mitctl0_r, wr_mitctl1_r; 2762 317 : logic mitcnt0_inc_ok, mitcnt1_inc_ok; - 2763 188615 : logic mitcnt0_inc_cout, mitcnt1_inc_cout; + 2763 187547 : logic mitcnt0_inc_cout, mitcnt1_inc_cout; 2764 0 : logic mit0_match_ns; 2765 0 : logic mit1_match_ns; 2766 0 : logic mitctl0_0_b_ns; diff --git a/html/main/coverage_dashboard/all/index_el2_dec_trigger.sv.html b/html/main/coverage_dashboard/all/index_el2_dec_trigger.sv.html index 89f1929edb8..c6b071279fd 100644 --- a/html/main/coverage_dashboard/all/index_el2_dec_trigger.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_dec_trigger.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all/index_el2_dma_ctrl.sv.html b/html/main/coverage_dashboard/all/index_el2_dma_ctrl.sv.html index 8a3e0fd634e..c520ca31c4a 100644 --- a/html/main/coverage_dashboard/all/index_el2_dma_ctrl.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_dma_ctrl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -130,8 +130,8 @@ 26 : #( 27 : `include "el2_param.vh" 28 : )( - 29 61888056 : input logic clk, - 30 61888056 : input logic free_clk, + 29 61295555 : input logic clk, + 30 61295555 : input logic free_clk, 31 340 : input logic rst_l, 32 324 : input logic dma_bus_clk_en, // slave bus clock enable 33 0 : input logic clk_override, @@ -173,8 +173,8 @@ 69 2509 : output logic dma_active, // DMA is busy 70 1240 : output logic dma_dccm_stall_any, // stall dccm pipe (bubble) so that DMA can proceed 71 1298 : output logic dma_iccm_stall_any, // stall iccm pipe (bubble) so that DMA can proceed - 72 2226512 : input logic dccm_ready, // dccm ready to accept DMA request - 73 638070 : input logic iccm_ready, // iccm ready to accept DMA request + 72 2214970 : input logic dccm_ready, // dccm ready to accept DMA request + 73 636519 : input logic iccm_ready, // iccm ready to accept DMA request 74 321 : input logic [2:0] dec_tlu_dma_qos_prty, // DMA QoS priority coming from MFDC [18:15] 75 : 76 : // PMU signals @@ -286,8 +286,8 @@ 182 : 183 3065 : logic dma_buffer_c1_clken; 184 2873 : logic dma_free_clken; - 185 61856293 : logic dma_buffer_c1_clk; - 186 61875241 : logic dma_free_clk; + 185 61263792 : logic dma_buffer_c1_clk; + 186 61282740 : logic dma_free_clk; 187 44310 : logic dma_bus_clk; 188 : 189 1564 : logic bus_rsp_valid, bus_rsp_sent; diff --git a/html/main/coverage_dashboard/all/index_el2_exu.sv.html b/html/main/coverage_dashboard/all/index_el2_exu.sv.html index f9f4a8803eb..982a5969f09 100644 --- a/html/main/coverage_dashboard/all/index_el2_exu.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_exu.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -124,139 +124,139 @@ 20 : `include "el2_param.vh" 21 : ) 22 : ( - 23 61843746 : input logic clk, // Top level clock + 23 61251245 : input logic clk, // Top level clock 24 316 : input logic rst_l, // Reset 25 0 : input logic scan_mode, // Scan control 26 : - 27 6189473 : input logic [1:0] dec_data_en, // Clock enable {x,r}, one cycle pulse - 28 5991939 : input logic [1:0] dec_ctl_en, // Clock enable {x,r}, two cycle pulse + 27 6152939 : input logic [1:0] dec_data_en, // Clock enable {x,r}, one cycle pulse + 28 5955435 : input logic [1:0] dec_ctl_en, // Clock enable {x,r}, two cycle pulse 29 0 : input logic [31:0] dbg_cmd_wrdata, // Debug data to primary I0 RS1 30 1460 : input el2_alu_pkt_t i0_ap, // DEC alu {valid,predecodes} 31 : 32 0 : input logic dec_debug_wdata_rs1_d, // Debug select to primary I0 RS1 33 : - 34 506364 : input el2_predict_pkt_t dec_i0_predict_p_d, // DEC branch predict packet - 35 631672 : input logic [pt.BHT_GHR_SIZE-1:0] i0_predict_fghr_d, // DEC predict fghr - 36 651076 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] i0_predict_index_d, // DEC predict index + 34 504423 : input el2_predict_pkt_t dec_i0_predict_p_d, // DEC branch predict packet + 35 619214 : input logic [pt.BHT_GHR_SIZE-1:0] i0_predict_fghr_d, // DEC predict fghr + 36 650118 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] i0_predict_index_d, // DEC predict index 37 21217 : input logic [pt.BTB_BTAG_SIZE-1:0] i0_predict_btag_d, // DEC predict branch tag 38 : 39 38395 : input logic [31:0] lsu_result_m, // Load result M-stage - 40 71560 : input logic [31:0] lsu_nonblock_load_data, // nonblock load data - 41 5130925 : input logic dec_i0_rs1_en_d, // Qualify GPR RS1 data - 42 3565563 : input logic dec_i0_rs2_en_d, // Qualify GPR RS2 data - 43 407880 : input logic [31:0] gpr_i0_rs1_d, // DEC data gpr - 44 598740 : input logic [31:0] gpr_i0_rs2_d, // DEC data gpr - 45 2134567 : input logic [31:0] dec_i0_immed_d, // DEC data immediate - 46 314049 : input logic [31:0] dec_i0_result_r, // DEC result in R-stage - 47 123446 : input logic [12:1] dec_i0_br_immed_d, // Branch immediate - 48 5393904 : input logic dec_i0_alu_decode_d, // Valid to X-stage ALU - 49 3841554 : input logic dec_i0_branch_d, // Branch in D-stage - 50 554879 : input logic dec_i0_select_pc_d, // PC select to RS1 + 40 71538 : input logic [31:0] lsu_nonblock_load_data, // nonblock load data + 41 5100391 : input logic dec_i0_rs1_en_d, // Qualify GPR RS1 data + 42 3549089 : input logic dec_i0_rs2_en_d, // Qualify GPR RS2 data + 43 407844 : input logic [31:0] gpr_i0_rs1_d, // DEC data gpr + 44 598744 : input logic [31:0] gpr_i0_rs2_d, // DEC data gpr + 45 2132673 : input logic [31:0] dec_i0_immed_d, // DEC data immediate + 46 314035 : input logic [31:0] dec_i0_result_r, // DEC result in R-stage + 47 122230 : input logic [12:1] dec_i0_br_immed_d, // Branch immediate + 48 5367615 : input logic dec_i0_alu_decode_d, // Valid to X-stage ALU + 49 3829589 : input logic dec_i0_branch_d, // Branch in D-stage + 50 553923 : input logic dec_i0_select_pc_d, // PC select to RS1 51 1288 : input logic [31:1] dec_i0_pc_d, // Instruction PC - 52 80872 : input logic [3:0] dec_i0_rs1_bypass_en_d, // DEC bypass select 1 - X-stage, 0 - dec bypass data - 53 8634 : input logic [3:0] dec_i0_rs2_bypass_en_d, // DEC bypass select 1 - X-stage, 0 - dec bypass data - 54 75092 : input logic dec_csr_ren_d, // CSR read select - 55 6941 : input logic [31:0] dec_csr_rddata_d, // CSR read data + 52 79850 : input logic [3:0] dec_i0_rs1_bypass_en_d, // DEC bypass select 1 - X-stage, 0 - dec bypass data + 53 8622 : input logic [3:0] dec_i0_rs2_bypass_en_d, // DEC bypass select 1 - X-stage, 0 - dec bypass data + 54 74910 : input logic dec_csr_ren_d, // CSR read select + 55 8136 : input logic [31:0] dec_csr_rddata_d, // CSR read data 56 : - 57 5476447 : input logic dec_qual_lsu_d, // LSU instruction at D. Use to quiet LSU operands + 57 5449748 : input logic dec_qual_lsu_d, // LSU instruction at D. Use to quiet LSU operands 58 0 : input el2_mul_pkt_t mul_p, // DEC {valid, operand signs, low, operand bypass} - 59 78138 : input el2_div_pkt_t div_p, // DEC {valid, unsigned, rem} + 59 78122 : input el2_div_pkt_t div_p, // DEC {valid, unsigned, rem} 60 2628 : input logic dec_div_cancel, // Cancel the divide operation 61 : - 62 138654 : input logic [31:1] pred_correct_npc_x, // DEC NPC for correctly predicted branch + 62 137876 : input logic [31:1] pred_correct_npc_x, // DEC NPC for correctly predicted branch 63 : - 64 58638 : input logic dec_tlu_flush_lower_r, // Flush divide and secondary ALUs - 65 24686 : input logic [31:1] dec_tlu_flush_path_r, // Redirect target + 64 58568 : input logic dec_tlu_flush_lower_r, // Flush divide and secondary ALUs + 65 24680 : input logic [31:1] dec_tlu_flush_path_r, // Redirect target 66 : 67 : 68 0 : input logic dec_extint_stall, // External stall mux select 69 0 : input logic [31:2] dec_tlu_meihap, // External stall mux data 70 : 71 : - 72 413833 : output logic [31:0] exu_lsu_rs1_d, // LSU operand - 73 81386 : output logic [31:0] exu_lsu_rs2_d, // LSU operand + 72 411891 : output logic [31:0] exu_lsu_rs1_d, // LSU operand + 73 81344 : output logic [31:0] exu_lsu_rs2_d, // LSU operand 74 : - 75 672565 : output logic exu_flush_final, // Pipe is being flushed this cycle - 76 226946 : output logic [31:1] exu_flush_path_final, // Target for the oldest flush source + 75 671016 : output logic exu_flush_final, // Pipe is being flushed this cycle + 76 226504 : output logic [31:1] exu_flush_path_final, // Target for the oldest flush source 77 : - 78 614701 : output logic [31:0] exu_i0_result_x, // Primary ALU result to DEC + 78 613793 : output logic [31:0] exu_i0_result_x, // Primary ALU result to DEC 79 308 : output logic [31:1] exu_i0_pc_x, // Primary PC result to DEC 80 3978 : output logic [31:0] exu_csr_rs1_x, // RS1 source for a CSR instruction 81 : 82 313 : output logic [31:1] exu_npc_r, // Divide NPC - 83 2679213 : output logic [1:0] exu_i0_br_hist_r, // to DEC I0 branch history + 83 2673781 : output logic [1:0] exu_i0_br_hist_r, // to DEC I0 branch history 84 26468 : output logic exu_i0_br_error_r, // to DEC I0 branch error 85 9608 : output logic exu_i0_br_start_error_r, // to DEC I0 branch start error - 86 187548 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_i0_br_index_r, // to DEC I0 branch index - 87 2970681 : output logic exu_i0_br_valid_r, // to DEC I0 branch valid - 88 409754 : output logic exu_i0_br_mp_r, // to DEC I0 branch mispredict - 89 2381498 : output logic exu_i0_br_middle_r, // to DEC I0 branch middle - 90 367119 : output logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_r, // to DEC I0 branch fghr - 91 2110900 : output logic exu_i0_br_way_r, // to DEC I0 branch way + 86 187344 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_i0_br_index_r, // to DEC I0 branch index + 87 2962465 : output logic exu_i0_br_valid_r, // to DEC I0 branch valid + 88 408472 : output logic exu_i0_br_mp_r, // to DEC I0 branch mispredict + 89 2370984 : output logic exu_i0_br_middle_r, // to DEC I0 branch middle + 90 364503 : output logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_r, // to DEC I0 branch fghr + 91 2108159 : output logic exu_i0_br_way_r, // to DEC I0 branch way 92 : - 93 34458 : output el2_predict_pkt_t exu_mp_pkt, // Mispredict branch packet - 94 299672 : output logic [pt.BHT_GHR_SIZE-1:0] exu_mp_eghr, // Mispredict global history - 95 378995 : output logic [pt.BHT_GHR_SIZE-1:0] exu_mp_fghr, // Mispredict fghr - 96 196032 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_mp_index, // Mispredict index + 93 34372 : output el2_predict_pkt_t exu_mp_pkt, // Mispredict branch packet + 94 298770 : output logic [pt.BHT_GHR_SIZE-1:0] exu_mp_eghr, // Mispredict global history + 95 376379 : output logic [pt.BHT_GHR_SIZE-1:0] exu_mp_fghr, // Mispredict fghr + 96 195586 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_mp_index, // Mispredict index 97 115620 : output logic [pt.BTB_BTAG_SIZE-1:0] exu_mp_btag, // Mispredict btag 98 : 99 : - 100 409754 : output logic exu_pmu_i0_br_misp, // to PMU - I0 E4 branch mispredict - 101 2868109 : output logic exu_pmu_i0_br_ataken, // to PMU - I0 E4 taken - 102 3459682 : output logic exu_pmu_i0_pc4, // to PMU - I0 E4 PC + 100 408472 : output logic exu_pmu_i0_br_misp, // to PMU - I0 E4 branch mispredict + 101 2862323 : output logic exu_pmu_i0_br_ataken, // to PMU - I0 E4 taken + 102 3452000 : output logic exu_pmu_i0_pc4, // to PMU - I0 E4 PC 103 : 104 : 105 24784 : output logic [31:0] exu_div_result, // Divide result - 106 156868 : output logic exu_div_wren // Divide write enable to GPR + 106 156836 : output logic exu_div_wren // Divide write enable to GPR 107 : ); 108 : 109 : 110 : 111 : - 112 62241 : logic [31:0] i0_rs1_bypass_data_d; - 113 13122 : logic [31:0] i0_rs2_bypass_data_d; - 114 909537 : logic i0_rs1_bypass_en_d; - 115 461832 : logic i0_rs2_bypass_en_d; - 116 381189 : logic [31:0] i0_rs1_d, i0_rs2_d; - 117 357805 : logic [31:0] muldiv_rs1_d; - 118 138647 : logic [31:1] pred_correct_npc_r; - 119 2921795 : logic i0_pred_correct_upper_r; + 112 62095 : logic [31:0] i0_rs1_bypass_data_d; + 113 13118 : logic [31:0] i0_rs2_bypass_data_d; + 114 905679 : logic i0_rs1_bypass_en_d; + 115 461658 : logic i0_rs2_bypass_en_d; + 116 381153 : logic [31:0] i0_rs1_d, i0_rs2_d; + 117 357769 : logic [31:0] muldiv_rs1_d; + 118 137869 : logic [31:1] pred_correct_npc_r; + 119 2913633 : logic i0_pred_correct_upper_r; 120 313 : logic [31:1] i0_flush_path_upper_r; - 121 167933 : logic x_data_en, x_data_en_q1, x_data_en_q2, r_data_en, r_data_en_q2; - 122 5991939 : logic x_ctl_en, r_ctl_en; + 121 167751 : logic x_data_en, x_data_en_q1, x_data_en_q2, r_data_en, r_data_en_q2; + 122 5955435 : logic x_ctl_en, r_ctl_en; 123 : - 124 382153 : logic [pt.BHT_GHR_SIZE-1:0] ghr_d_ns, ghr_d; - 125 382153 : logic [pt.BHT_GHR_SIZE-1:0] ghr_x_ns, ghr_x; - 126 3056934 : logic i0_taken_d; - 127 3056919 : logic i0_taken_x; - 128 3085033 : logic i0_valid_d; - 129 3085019 : logic i0_valid_x; - 130 378995 : logic [pt.BHT_GHR_SIZE-1:0] after_flush_eghr; + 124 379537 : logic [pt.BHT_GHR_SIZE-1:0] ghr_d_ns, ghr_d; + 125 379537 : logic [pt.BHT_GHR_SIZE-1:0] ghr_x_ns, ghr_x; + 126 3051127 : logic i0_taken_d; + 127 3051111 : logic i0_taken_x; + 128 3076817 : logic i0_valid_d; + 129 3076803 : logic i0_valid_x; + 130 376379 : logic [pt.BHT_GHR_SIZE-1:0] after_flush_eghr; 131 : - 132 31484 : el2_predict_pkt_t final_predict_mp; - 133 506364 : el2_predict_pkt_t i0_predict_newp_d; + 132 31458 : el2_predict_pkt_t final_predict_mp; + 133 504423 : el2_predict_pkt_t i0_predict_newp_d; 134 : 135 0 : logic flush_in_d; - 136 568363 : logic [31:0] alu_result_x; + 136 567455 : logic [31:0] alu_result_x; 137 : 138 250948 : logic mul_valid_x; 139 17509 : logic [31:0] mul_result_x; 140 : - 141 350197 : el2_predict_pkt_t i0_pp_r; + 141 349079 : el2_predict_pkt_t i0_pp_r; 142 : - 143 613955 : logic i0_flush_upper_d; - 144 2370 : logic [31:1] i0_flush_path_d; - 145 506364 : el2_predict_pkt_t i0_predict_p_d; - 146 2921809 : logic i0_pred_correct_upper_d; + 143 612476 : logic i0_flush_upper_d; + 144 2354 : logic [31:1] i0_flush_path_d; + 145 504423 : el2_predict_pkt_t i0_predict_p_d; + 146 2913647 : logic i0_pred_correct_upper_d; 147 : - 148 613954 : logic i0_flush_upper_x; + 148 612474 : logic i0_flush_upper_x; 149 313 : logic [31:1] i0_flush_path_x; - 150 350197 : el2_predict_pkt_t i0_predict_p_x; - 151 2921798 : logic i0_pred_correct_upper_x; - 152 3841539 : logic i0_branch_x; + 150 349079 : el2_predict_pkt_t i0_predict_p_x; + 151 2913636 : logic i0_pred_correct_upper_x; + 152 3829573 : logic i0_branch_x; 153 : 154 : localparam PREDPIPESIZE = pt.BTB_ADDR_HI-pt.BTB_ADDR_LO+1+pt.BHT_GHR_SIZE+pt.BTB_BTAG_SIZE; - 155 55403 : logic [PREDPIPESIZE-1:0] predpipe_d, predpipe_x, predpipe_r, final_predpipe_mp; + 155 54839 : logic [PREDPIPESIZE-1:0] predpipe_d, predpipe_x, predpipe_r, final_predpipe_mp; 156 : 157 : 158 : diff --git a/html/main/coverage_dashboard/all/index_el2_exu_alu_ctl.sv.html b/html/main/coverage_dashboard/all/index_el2_exu_alu_ctl.sv.html index eb025753ebd..2e35582213b 100644 --- a/html/main/coverage_dashboard/all/index_el2_exu_alu_ctl.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_exu_alu_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -124,52 +124,52 @@ 20 : `include "el2_param.vh" 21 : ) 22 : ( - 23 61849896 : input logic clk, // Top level clock + 23 61257395 : input logic clk, // Top level clock 24 364 : input logic rst_l, // Reset 25 0 : input logic scan_mode, // Scan control 26 : - 27 613954 : input logic flush_upper_x, // Branch flush from previous cycle - 28 58638 : input logic flush_lower_r, // Master flush of entire pipeline - 29 6190093 : input logic enable, // Clock enable - 30 5396604 : input logic valid_in, // Valid + 27 612474 : input logic flush_upper_x, // Branch flush from previous cycle + 28 58568 : input logic flush_lower_r, // Master flush of entire pipeline + 29 6153560 : input logic enable, // Clock enable + 30 5370315 : input logic valid_in, // Valid 31 1460 : input el2_alu_pkt_t ap, // predecodes - 32 75092 : input logic csr_ren_in, // CSR select - 33 6941 : input logic [31:0] csr_rddata_in, // CSR data - 34 359544 : input logic signed [31:0] a_in, // A operand - 35 2494553 : input logic [31:0] b_in, // B operand + 32 74910 : input logic csr_ren_in, // CSR select + 33 8136 : input logic [31:0] csr_rddata_in, // CSR data + 34 359508 : input logic signed [31:0] a_in, // A operand + 35 2492541 : input logic [31:0] b_in, // B operand 36 1288 : input logic [31:1] pc_in, // for pc=pc+2,4 calculations - 37 506364 : input el2_predict_pkt_t pp_in, // Predicted branch structure - 38 123446 : input logic [12:1] brimm_in, // Branch offset + 37 504423 : input el2_predict_pkt_t pp_in, // Predicted branch structure + 38 122230 : input logic [12:1] brimm_in, // Branch offset 39 : 40 : - 41 568818 : output logic [31:0] result_ff, // final result - 42 613955 : output logic flush_upper_out, // Branch flush - 43 672565 : output logic flush_final_out, // Branch flush or flush entire pipeline - 44 2370 : output logic [31:1] flush_path_out, // Branch flush PC + 41 567910 : output logic [31:0] result_ff, // final result + 42 612476 : output logic flush_upper_out, // Branch flush + 43 671016 : output logic flush_final_out, // Branch flush or flush entire pipeline + 44 2354 : output logic [31:1] flush_path_out, // Branch flush PC 45 308 : output logic [31:1] pc_ff, // flopped PC - 46 2921809 : output logic pred_correct_out, // NPC control - 47 506364 : output el2_predict_pkt_t predict_p_out // Predicted branch structure + 46 2913647 : output logic pred_correct_out, // NPC control + 47 504423 : output el2_predict_pkt_t predict_p_out // Predicted branch structure 48 : ); 49 : 50 : - 51 359552 : logic [31:0] zba_a_in; - 52 878911 : logic [31:0] aout; - 53 277648 : logic cout,ov,neg; - 54 121745 : logic [31:0] lout; - 55 343325 : logic [31:0] sout; - 56 648649 : logic sel_shift; - 57 3894049 : logic sel_adder; - 58 59366 : logic slt_one; - 59 3083810 : logic actual_taken; + 51 359516 : logic [31:0] zba_a_in; + 52 877955 : logic [31:0] aout; + 53 277148 : logic cout,ov,neg; + 54 121733 : logic [31:0] lout; + 55 343289 : logic [31:0] sout; + 56 647575 : logic sel_shift; + 57 3870726 : logic sel_adder; + 58 59364 : logic slt_one; + 59 3077909 : logic actual_taken; 60 1288 : logic [31:1] pcout; - 61 391957 : logic cond_mispredict; - 62 148978 : logic target_mispredict; - 63 3858410 : logic eq, ne, lt, ge; - 64 707268 : logic any_jal; - 65 2893552 : logic [1:0] newhist; - 66 707268 : logic sel_pc; - 67 357190 : logic [31:0] csr_write_data; - 68 726161 : logic [31:0] result; + 61 389788 : logic cond_mispredict; + 62 148834 : logic target_mispredict; + 63 3836264 : logic eq, ne, lt, ge; + 64 706092 : logic any_jal; + 65 2883773 : logic [1:0] newhist; + 66 706092 : logic sel_pc; + 67 357154 : logic [31:0] csr_write_data; + 68 725211 : logic [31:0] result; 69 : 70 : 71 : @@ -348,7 +348,7 @@ 244 : ( {32{ ap_sh3add}} & {a_in[28:0],3'b0} ) | 245 : ( {32{~ap_zba }} & a_in[31:0] ); 246 : - 247 2574746 : logic [31:0] bm; + 247 2563745 : logic [31:0] bm; 248 : 249 : assign bm[31:0] = ( ap.sub ) ? ~b_in[31:0] : b_in[31:0]; 250 : @@ -383,8 +383,8 @@ 279 : 280 11014 : logic [5:0] shift_amount; 281 323 : logic [31:0] shift_mask; - 282 155951 : logic [62:0] shift_extend; - 283 1097270 : logic [62:0] shift_long; + 282 151829 : logic [62:0] shift_extend; + 283 1093204 : logic [62:0] shift_long; 284 : 285 : 286 : assign shift_amount[5:0] = ( { 6{ap.sll}} & (6'd32 - {1'b0,b_in[4:0]}) ) | // [5] unused @@ -416,7 +416,7 @@ 312 : // * * * * * * * * * * * * * * * * * * BitManip : CLZ,CTZ * * * * * * * * * * * * * * * * * * 313 : 314 1906 : logic bitmanip_clz_ctz_sel; - 315 360108 : logic [31:0] bitmanip_a_reverse_ff; + 315 360072 : logic [31:0] bitmanip_a_reverse_ff; 316 416 : logic [31:0] bitmanip_lzd_in; 317 425 : logic [5:0] bitmanip_dw_lzd_enc; 318 90 : logic [5:0] bitmanip_clz_ctz_result; @@ -443,8 +443,8 @@ 339 : 340 323 : for (int i=0; i<32; i++) begin 341 62496 : if (bitmanip_lzd_os[31] == 1'b0 && found == 0) begin - 342 865145792 : bitmanip_dw_lzd_enc[5:0]= bitmanip_dw_lzd_enc[5:0] + 6'b00_0001; - 343 865145792 : bitmanip_lzd_os[31:0] = bitmanip_lzd_os[31:0] << 1; + 342 860587680 : bitmanip_dw_lzd_enc[5:0]= bitmanip_dw_lzd_enc[5:0] + 6'b00_0001; + 343 860587680 : bitmanip_lzd_os[31:0] = bitmanip_lzd_os[31:0] << 1; 344 : end 345 : else 346 62496 : found=1'b1; @@ -460,7 +460,7 @@ 356 : 357 : // * * * * * * * * * * * * * * * * * * BitManip : CPOP * * * * * * * * * * * * * * * * * * 358 : - 359 46630 : logic [5:0] bitmanip_cpop; + 359 46636 : logic [5:0] bitmanip_cpop; 360 104 : logic [5:0] bitmanip_cpop_result; 361 : 362 : @@ -499,7 +499,7 @@ 395 : 396 : assign bitmanip_minmax_sel = ap_min | ap_max; 397 : - 398 4293403 : logic bitmanip_minmax_sel_a; + 398 4271257 : logic bitmanip_minmax_sel_a; 399 : 400 : assign bitmanip_minmax_sel_a = ge ^ ap_min; 401 : @@ -557,7 +557,7 @@ 453 : 454 : // * * * * * * * * * * * * * * * * * * BitManip : ZBSET, ZBCLR, ZBINV * * * * * * * * * * * * * * 455 : - 456 39756 : logic [31:0] bitmanip_sb_1hot; + 456 39686 : logic [31:0] bitmanip_sb_1hot; 457 1983 : logic [31:0] bitmanip_sb_data; 458 : 459 : assign bitmanip_sb_1hot[31:0] = ( 32'h00000001 << b_in[4:0] ); diff --git a/html/main/coverage_dashboard/all/index_el2_exu_div_ctl.sv.html b/html/main/coverage_dashboard/all/index_el2_exu_div_ctl.sv.html index 72d63717c63..43f62d21359 100644 --- a/html/main/coverage_dashboard/all/index_el2_exu_div_ctl.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_exu_div_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -124,18 +124,18 @@ 20 : `include "el2_param.vh" 21 : ) 22 : ( - 23 61846819 : input logic clk, // Top level clock + 23 61254318 : input logic clk, // Top level clock 24 321 : input logic rst_l, // Reset 25 0 : input logic scan_mode, // Scan mode 26 : - 27 78139 : input el2_div_pkt_t dp, // valid, sign, rem - 28 357864 : input logic [31:0] dividend, // Numerator - 29 2494040 : input logic [31:0] divisor, // Denominator + 27 78123 : input el2_div_pkt_t dp, // valid, sign, rem + 28 357828 : input logic [31:0] dividend, // Numerator + 29 2492028 : input logic [31:0] divisor, // Denominator 30 : 31 2628 : input logic cancel, // Cancel divide 32 : 33 : - 34 157168 : output logic finish_dly, // Finish to match data + 34 157136 : output logic finish_dly, // Finish to match data 35 24906 : output logic [31:0] out // Result 36 : ); 37 : @@ -1414,80 +1414,80 @@ 1310 : // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 1311 : module el2_exu_div_new_4bit_fullshortq 1312 : ( - 1313 61846819 : input logic clk, // Top level clock + 1313 61254318 : input logic clk, // Top level clock 1314 321 : input logic rst_l, // Reset 1315 0 : input logic scan_mode, // Scan mode 1316 : 1317 2628 : input logic cancel, // Flush pipeline - 1318 159796 : input logic valid_in, - 1319 889075 : input logic signed_in, - 1320 78159 : input logic rem_in, - 1321 357864 : input logic [31:0] dividend_in, - 1322 2494040 : input logic [31:0] divisor_in, + 1318 159764 : input logic valid_in, + 1319 884017 : input logic signed_in, + 1320 78143 : input logic rem_in, + 1321 357828 : input logic [31:0] dividend_in, + 1322 2492028 : input logic [31:0] divisor_in, 1323 : - 1324 157168 : output logic valid_out, + 1324 157136 : output logic valid_out, 1325 38062 : output logic [31:0] data_out 1326 : ); 1327 : 1328 : - 1329 159796 : logic valid_ff_in, valid_ff; - 1330 157168 : logic finish_raw, finish, finish_ff; - 1331 155404 : logic running_state; - 1332 157970 : logic misc_enable; + 1329 159764 : logic valid_ff_in, valid_ff; + 1330 157136 : logic finish_raw, finish, finish_ff; + 1331 155374 : logic running_state; + 1332 157938 : logic misc_enable; 1333 12298 : logic [2:0] control_in, control_ff; - 1334 32184 : logic dividend_sign_ff, divisor_sign_ff, rem_ff; - 1335 108204 : logic count_enable; + 1334 32168 : logic dividend_sign_ff, divisor_sign_ff, rem_ff; + 1335 108188 : logic count_enable; 1336 0 : logic [6:0] count_in, count_ff; 1337 : - 1338 22580 : logic smallnum_case; + 1338 22564 : logic smallnum_case; 1339 17338 : logic [3:0] smallnum; 1340 : - 1341 108204 : logic a_enable, a_shift; + 1341 108188 : logic a_enable, a_shift; 1342 23497 : logic [31:0] a_in, a_ff; 1343 : - 1344 138624 : logic b_enable, b_twos_comp; - 1345 2559883 : logic [32:0] b_in; - 1346 19375 : logic [37:0] b_ff; + 1344 138592 : logic b_enable, b_twos_comp; + 1345 2557839 : logic [32:0] b_in; + 1346 19374 : logic [37:0] b_ff; 1347 : 1348 24739 : logic [31:0] q_in, q_ff; 1349 : - 1350 159768 : logic rq_enable; + 1350 159736 : logic rq_enable; 1351 12210 : logic r_sign_sel; - 1352 87466 : logic r_restore_sel; + 1352 87450 : logic r_restore_sel; 1353 5576 : logic r_adder01_sel, r_adder02_sel, r_adder03_sel; 1354 4924 : logic r_adder04_sel, r_adder05_sel, r_adder06_sel, r_adder07_sel; 1355 2990 : logic r_adder08_sel, r_adder09_sel, r_adder10_sel, r_adder11_sel; - 1356 3208 : logic r_adder12_sel, r_adder13_sel, r_adder14_sel, r_adder15_sel; + 1356 3206 : logic r_adder12_sel, r_adder13_sel, r_adder14_sel, r_adder15_sel; 1357 22646 : logic [32:0] r_in, r_ff; 1358 : - 1359 67404 : logic twos_comp_q_sel, twos_comp_b_sel; - 1360 17431 : logic [31:0] twos_comp_in, twos_comp_out; + 1359 67372 : logic twos_comp_q_sel, twos_comp_b_sel; + 1360 17399 : logic [31:0] twos_comp_in, twos_comp_out; 1361 : - 1362 157251 : logic [15:1] quotient_raw; - 1363 185924 : logic [3:0] quotient_new; - 1364 69367 : logic [34:0] adder01_out; - 1365 55801 : logic [35:0] adder02_out; - 1366 69498 : logic [36:0] adder03_out; - 1367 52162 : logic [37:0] adder04_out; - 1368 69522 : logic [37:0] adder05_out; - 1369 55902 : logic [37:0] adder06_out; - 1370 69542 : logic [37:0] adder07_out; - 1371 49658 : logic [37:0] adder08_out; - 1372 69523 : logic [37:0] adder09_out; - 1373 55895 : logic [37:0] adder10_out; - 1374 69533 : logic [37:0] adder11_out; - 1375 52165 : logic [37:0] adder12_out; - 1376 69446 : logic [37:0] adder13_out; - 1377 55799 : logic [37:0] adder14_out; - 1378 69271 : logic [37:0] adder15_out; + 1362 157220 : logic [15:1] quotient_raw; + 1363 185887 : logic [3:0] quotient_new; + 1364 69353 : logic [34:0] adder01_out; + 1365 55787 : logic [35:0] adder02_out; + 1366 69484 : logic [36:0] adder03_out; + 1367 52161 : logic [37:0] adder04_out; + 1368 69508 : logic [37:0] adder05_out; + 1369 55888 : logic [37:0] adder06_out; + 1370 69528 : logic [37:0] adder07_out; + 1371 49649 : logic [37:0] adder08_out; + 1372 69509 : logic [37:0] adder09_out; + 1373 55881 : logic [37:0] adder10_out; + 1374 69519 : logic [37:0] adder11_out; + 1375 52164 : logic [37:0] adder12_out; + 1376 69432 : logic [37:0] adder13_out; + 1377 55785 : logic [37:0] adder14_out; + 1378 69257 : logic [37:0] adder15_out; 1379 : 1380 13679 : logic [64:0] ar_shifted; 1381 8550 : logic [5:0] shortq; - 1382 119888 : logic [4:0] shortq_shift; - 1383 43231 : logic [4:0] shortq_decode; - 1384 119888 : logic [4:0] shortq_shift_ff; - 1385 148820 : logic shortq_enable; - 1386 148820 : logic shortq_enable_ff; + 1382 119860 : logic [4:0] shortq_shift; + 1383 43215 : logic [4:0] shortq_decode; + 1384 119860 : logic [4:0] shortq_shift_ff; + 1385 148792 : logic shortq_enable; + 1386 148792 : logic shortq_enable_ff; 1387 13673 : logic [32:0] shortq_dividend; 1388 : 1389 27136 : logic by_zero_case; @@ -1746,7 +1746,7 @@ 1642 : 1643 0 : logic [5:0] dw_a_enc; 1644 0 : logic [5:0] dw_b_enc; - 1645 46100 : logic [6:0] dw_shortq_raw; + 1645 46081 : logic [6:0] dw_shortq_raw; 1646 : 1647 : 1648 : @@ -1821,14 +1821,14 @@ 1717 : 1718 : module el2_exu_div_cls 1719 : ( - 1720 54330 : input logic [32:0] operand, + 1720 54317 : input logic [32:0] operand, 1721 : - 1722 73255 : output logic [4:0] cls // Count leading sign bits - "n" format ignoring [32] + 1722 73226 : output logic [4:0] cls // Count leading sign bits - "n" format ignoring [32] 1723 : ); 1724 : 1725 : - 1726 61282 : logic [4:0] cls_zeros; - 1727 64590 : logic [4:0] cls_ones; + 1726 61273 : logic [4:0] cls_zeros; + 1727 64559 : logic [4:0] cls_ones; 1728 : 1729 : 1730 : assign cls_zeros[4:0] = ({5{operand[31] == { 1'b1} }} & 5'd00) | diff --git a/html/main/coverage_dashboard/all/index_el2_exu_mul_ctl.sv.html b/html/main/coverage_dashboard/all/index_el2_exu_mul_ctl.sv.html index f5a26683db0..c4c633fcbbb 100644 --- a/html/main/coverage_dashboard/all/index_el2_exu_mul_ctl.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_exu_mul_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -124,7 +124,7 @@ 20 : `include "el2_param.vh" 21 : ) 22 : ( - 23 61843973 : input logic clk, // Top level clock + 23 61251472 : input logic clk, // Top level clock 24 317 : input logic rst_l, // Reset 25 0 : input logic scan_mode, // Scan mode 26 : @@ -310,10 +310,10 @@ 206 318 : for (bcompress_i=0; bcompress_i<32; bcompress_i++) 207 10176 : begin 208 10176 : bcompress_test_bit_d = rs2_in[bcompress_i]; - 209 438942656 : if (bcompress_test_bit_d) - 210 715744 : begin - 211 715744 : bcompress_d[bcompress_j] = rs1_in[bcompress_i]; - 212 715744 : bcompress_j = bcompress_j + 1; + 209 437980832 : if (bcompress_test_bit_d) + 210 686272 : begin + 211 686272 : bcompress_d[bcompress_j] = rs1_in[bcompress_i]; + 212 686272 : bcompress_j = bcompress_j + 1; 213 : end // IF bcompress_test_bit 214 : end // FOR bcompress_i 215 : end // ALWAYS_COMB @@ -337,10 +337,10 @@ 233 318 : for (bdecompress_i=0; bdecompress_i<32; bdecompress_i++) 234 10176 : begin 235 10176 : bdecompress_test_bit_d = rs2_in[bdecompress_i]; - 236 438942656 : if (bdecompress_test_bit_d) - 237 715744 : begin - 238 715744 : bdecompress_d[bdecompress_i] = rs1_in[bdecompress_j]; - 239 715744 : bdecompress_j = bdecompress_j + 1; + 236 437980832 : if (bdecompress_test_bit_d) + 237 686272 : begin + 238 686272 : bdecompress_d[bdecompress_i] = rs1_in[bdecompress_j]; + 239 686272 : bdecompress_j = bdecompress_j + 1; 240 : end // IF bdecompress_test_bit 241 : end // FOR bdecompress_i 242 : end // ALWAYS_COMB diff --git a/html/main/coverage_dashboard/all/index_el2_ifu.sv.html b/html/main/coverage_dashboard/all/index_el2_ifu.sv.html index 9cac9fb56cc..5a4c93145fc 100644 --- a/html/main/coverage_dashboard/all/index_el2_ifu.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_ifu.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -129,18 +129,18 @@ 25 : `include "el2_param.vh" 26 : ) 27 : ( - 28 61843746 : input logic free_l2clk, // Clock always. Through one clock header. For flops with second header built in. - 29 61843746 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. - 30 61843746 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 28 61251245 : input logic free_l2clk, // Clock always. Through one clock header. For flops with second header built in. + 29 61251245 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 30 61251245 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. 31 316 : input logic rst_l, // reset, active low 32 : - 33 6190087 : input logic dec_i0_decode_d, // Valid instruction at D and not blocked + 33 6153554 : input logic dec_i0_decode_d, // Valid instruction at D and not blocked 34 : - 35 672565 : input logic exu_flush_final, // flush, includes upper and lower - 36 6162256 : input logic dec_tlu_i0_commit_cmt , // committed i0 + 35 671016 : input logic exu_flush_final, // flush, includes upper and lower + 36 6125722 : input logic dec_tlu_i0_commit_cmt , // committed i0 37 8 : input logic dec_tlu_flush_err_wb , // flush due to parity error. 38 0 : input logic dec_tlu_flush_noredir_wb, // don't fetch, validated with exu_flush_final - 39 226946 : input logic [31:1] exu_flush_path_final, // flush fetch address + 39 226504 : input logic [31:1] exu_flush_path_final, // flush fetch address 40 : 41 0 : input logic [31:0] dec_tlu_mrac_ff ,// Side_effect , cacheable for each region 42 18866 : input logic dec_tlu_fence_i_wb, // fence.i, invalidate icache, validated with exu_flush_final @@ -172,10 +172,10 @@ 68 0 : output logic ifu_axi_bready, 69 : 70 : // AXI Read Channels - 71 5892901 : output logic ifu_axi_arvalid, - 72 10357032 : input logic ifu_axi_arready, - 73 3589406 : output logic [pt.IFU_BUS_TAG-1:0] ifu_axi_arid, - 74 2454016 : output logic [31:0] ifu_axi_araddr, + 71 5855944 : output logic ifu_axi_arvalid, + 72 10320074 : input logic ifu_axi_arready, + 73 3563620 : output logic [pt.IFU_BUS_TAG-1:0] ifu_axi_arid, + 74 2443704 : output logic [31:0] ifu_axi_araddr, 75 320 : output logic [3:0] ifu_axi_arregion, 76 0 : output logic [7:0] ifu_axi_arlen, 77 0 : output logic [2:0] ifu_axi_arsize, @@ -185,10 +185,10 @@ 81 317 : output logic [2:0] ifu_axi_arprot, 82 0 : output logic [3:0] ifu_axi_arqos, 83 : - 84 11804512 : input logic ifu_axi_rvalid, + 84 11730597 : input logic ifu_axi_rvalid, 85 317 : output logic ifu_axi_rready, - 86 1181687 : input logic [pt.IFU_BUS_TAG-1:0] ifu_axi_rid, - 87 985574 : input logic [63:0] ifu_axi_rdata, + 86 1173244 : input logic [pt.IFU_BUS_TAG-1:0] ifu_axi_rid, + 87 981979 : input logic [63:0] ifu_axi_rdata, 88 0 : input logic [1:0] ifu_axi_rresp, 89 : 90 316 : input logic ifu_bus_clk_en, @@ -206,10 +206,10 @@ 102 0 : output logic iccm_dma_rvalid, 103 0 : output logic [63:0] iccm_dma_rdata, 104 12 : output logic [2:0] iccm_dma_rtag, // Tag of the DMA req - 105 636913 : output logic iccm_ready, + 105 635362 : output logic iccm_ready, 106 : - 107 6190087 : output logic ifu_pmu_instr_aligned, - 108 614530 : output logic ifu_pmu_fetch_stall, + 107 6153554 : output logic ifu_pmu_instr_aligned, + 108 613228 : output logic ifu_pmu_fetch_stall, 109 0 : output logic ifu_ic_error_start, // has all of the I$ ecc/parity for data/tag 110 : 111 : // I$ & ITAG Ports @@ -217,8 +217,8 @@ 113 10432 : output logic [pt.ICACHE_NUM_WAYS-1:0] ic_wr_en, // Icache write enable, when filling the Icache. 114 680092 : output logic ic_rd_en, // Icache read enable. 115 : - 116 560657 : output logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data, // Data to fill to the Icache. With ECC - 117 2137063 : input logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC + 116 558675 : output logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data, // Data to fill to the Icache. With ECC + 117 2129109 : input logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 118 231247 : input logic [70:0] ic_debug_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 119 0 : input logic [25:0] ictag_debug_rd_data,// Debug icache tag. 120 0 : output logic [70:0] ic_debug_wr_data, // Debug wr cache. @@ -227,8 +227,8 @@ 123 : 124 0 : input logic [pt.ICACHE_BANKS_WAY-1:0] ic_eccerr, // 125 0 : input logic [pt.ICACHE_BANKS_WAY-1:0] ic_parerr, - 126 1739005 : output logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. - 127 5603285 : output logic ic_sel_premux_data, // Select the premux data. + 126 1731051 : output logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. + 127 5573723 : output logic ic_sel_premux_data, // Select the premux data. 128 : 129 0 : output logic [pt.ICACHE_INDEX_HI:3] ic_debug_addr, // Read/Write addresss to the Icache. 130 0 : output logic ic_debug_rd_en, // Icache debug rd @@ -244,14 +244,14 @@ 140 : 141 : 142 : // ICCM ports - 143 160248 : output logic [pt.ICCM_BITS-1:1] iccm_rw_addr, // ICCM read/write address. + 143 160008 : output logic [pt.ICCM_BITS-1:1] iccm_rw_addr, // ICCM read/write address. 144 74 : output logic iccm_wren, // ICCM write enable (through the DMA) - 145 133458 : output logic iccm_rden, // ICCM read enable. + 145 133416 : output logic iccm_rden, // ICCM read enable. 146 14 : output logic [77:0] iccm_wr_data, // ICCM write data. 147 0 : output logic [2:0] iccm_wr_size, // ICCM write location within DW. 148 : - 149 136544 : input logic [63:0] iccm_rd_data, // Data read from ICCM. - 150 161276 : input logic [77:0] iccm_rd_data_ecc, // Data + ECC read from ICCM. + 149 136542 : input logic [63:0] iccm_rd_data, // Data read from ICCM. + 150 161274 : input logic [77:0] iccm_rd_data_ecc, // Data + ECC read from ICCM. 151 : 152 : // ICCM ECC status 153 0 : output logic ifu_iccm_dma_rd_ecc_single_err, // This fetch has a single ICCM DMA ECC error. @@ -259,46 +259,46 @@ 155 4 : output logic ifu_iccm_rd_ecc_double_err, // This fetch has a double ICCM ECC error. 156 : 157 : // Perf counter sigs - 158 5893104 : output logic ifu_pmu_ic_miss, // ic miss + 158 5856146 : output logic ifu_pmu_ic_miss, // ic miss 159 744124 : output logic ifu_pmu_ic_hit, // ic hit 160 0 : output logic ifu_pmu_bus_error, // iside bus error 161 4463637 : output logic ifu_pmu_bus_busy, // iside bus busy - 162 10356722 : output logic ifu_pmu_bus_trxn, // iside bus transactions + 162 10319765 : output logic ifu_pmu_bus_trxn, // iside bus transactions 163 : 164 : 165 196 : output logic ifu_i0_icaf, // Instruction 0 access fault. From Aligner to Decode 166 270 : output logic [1:0] ifu_i0_icaf_type, // Instruction 0 access fault type 167 : - 168 6006883 : output logic ifu_i0_valid, // Instruction 0 valid. From Aligner to Decode + 168 5971582 : output logic ifu_i0_valid, // Instruction 0 valid. From Aligner to Decode 169 86 : output logic ifu_i0_icaf_second, // Instruction 0 has access fault on second 2B of 4B inst 170 2 : output logic ifu_i0_dbecc, // Instruction 0 has double bit ecc error 171 0 : output logic iccm_dma_sb_error, // Single Bit ECC error from a DMA access - 172 468420 : output logic[31:0] ifu_i0_instr, // Instruction 0 . From Aligner to Decode + 172 467652 : output logic[31:0] ifu_i0_instr, // Instruction 0 . From Aligner to Decode 173 1288 : output logic[31:1] ifu_i0_pc, // Instruction 0 pc. From Aligner to Decode - 174 5735369 : output logic ifu_i0_pc4, // Instruction 0 is 4 byte. From Aligner to Decode + 174 5716269 : output logic ifu_i0_pc4, // Instruction 0 is 4 byte. From Aligner to Decode 175 : - 176 5892108 : output logic ifu_miss_state_idle, // There is no outstanding miss. Cache miss state is idle. + 176 5855150 : output logic ifu_miss_state_idle, // There is no outstanding miss. Cache miss state is idle. 177 : - 178 200759 : output el2_br_pkt_t i0_brp, // Instruction 0 branch packet. From Aligner to Decode - 179 651076 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] ifu_i0_bp_index, // BP index - 180 631672 : output logic [pt.BHT_GHR_SIZE-1:0] ifu_i0_bp_fghr, // BP FGHR + 178 200545 : output el2_br_pkt_t i0_brp, // Instruction 0 branch packet. From Aligner to Decode + 179 650118 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] ifu_i0_bp_index, // BP index + 180 619214 : output logic [pt.BHT_GHR_SIZE-1:0] ifu_i0_bp_fghr, // BP FGHR 181 21217 : output logic [pt.BTB_BTAG_SIZE-1:0] ifu_i0_bp_btag, // BP tag 182 0 : output logic [$clog2(pt.BTB_SIZE)-1:0] ifu_i0_fa_index, // Fully associt btb index 183 : - 184 34458 : input el2_predict_pkt_t exu_mp_pkt, // mispredict packet - 185 299672 : input logic [pt.BHT_GHR_SIZE-1:0] exu_mp_eghr, // execute ghr - 186 378995 : input logic [pt.BHT_GHR_SIZE-1:0] exu_mp_fghr, // Mispredict fghr - 187 196032 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_mp_index, // Mispredict index + 184 34372 : input el2_predict_pkt_t exu_mp_pkt, // mispredict packet + 185 298770 : input logic [pt.BHT_GHR_SIZE-1:0] exu_mp_eghr, // execute ghr + 186 376379 : input logic [pt.BHT_GHR_SIZE-1:0] exu_mp_fghr, // Mispredict fghr + 187 195586 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_mp_index, // Mispredict index 188 115620 : input logic [pt.BTB_BTAG_SIZE-1:0] exu_mp_btag, // Mispredict btag 189 : - 190 782203 : input el2_br_tlu_pkt_t dec_tlu_br0_r_pkt, // slot0 update/error pkt - 191 367119 : input logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_r, // fghr to bp - 192 187548 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_i0_br_index_r, // bp index + 190 779462 : input el2_br_tlu_pkt_t dec_tlu_br0_r_pkt, // slot0 update/error pkt + 191 364503 : input logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_r, // fghr to bp + 192 187344 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_i0_br_index_r, // bp index 193 0 : input logic [$clog2(pt.BTB_SIZE)-1:0] dec_fa_error_index, // Fully associt btb error index 194 : - 195 58638 : input dec_tlu_flush_lower_wb, + 195 58568 : input dec_tlu_flush_lower_wb, 196 : - 197 1427542 : output logic [15:0] ifu_i0_cinst, + 197 1422550 : output logic [15:0] ifu_i0_cinst, 198 : 199 310 : output logic [31:1] ifu_pmp_addr, 200 110 : input logic ifu_pmp_error, @@ -315,12 +315,12 @@ 211 : localparam TAGWIDTH = 2 ; 212 : localparam IDWIDTH = 2 ; 213 : - 214 249402 : logic ifu_fb_consume1, ifu_fb_consume2; + 214 247400 : logic ifu_fb_consume1, ifu_fb_consume2; 215 310 : logic [31:1] ifc_fetch_addr_f; 216 310 : logic [31:1] ifc_fetch_addr_bf; 217 : assign ifu_pmp_addr = ifc_fetch_addr_bf; 218 : - 219 6336890 : logic [1:0] ifu_fetch_val; // valids on a 2B boundary, left justified [7] implies valid fetch + 219 6303330 : logic [1:0] ifu_fetch_val; // valids on a 2B boundary, left justified [7] implies valid fetch 220 310 : logic [31:1] ifu_fetch_pc; // starting pc of fetch 221 : 222 0 : logic iccm_rd_ecc_single_err, iccm_dma_rd_ecc_single_err, ic_error_start; @@ -329,33 +329,33 @@ 225 : assign ifu_ic_error_start = ic_error_start; 226 : 227 : - 228 2633488 : logic ic_write_stall; + 228 2619202 : logic ic_write_stall; 229 16 : logic ic_dma_active; - 230 639182 : logic ifc_dma_access_ok; + 230 637611 : logic ifc_dma_access_ok; 231 170 : logic [1:0] ic_access_fault_f; 232 170 : logic [1:0] ic_access_fault_type_f; - 233 5913236 : logic ifu_ic_mb_empty; + 233 5876254 : logic ifu_ic_mb_empty; 234 : - 235 6786478 : logic ic_hit_f; + 235 6749550 : logic ic_hit_f; 236 : - 237 2367091 : logic [1:0] ifu_bp_way_f; // way indication; right justified - 238 3127797 : logic ifu_bp_hit_taken_f; // kill next fetch; taken target found - 239 518755 : logic [31:1] ifu_bp_btb_target_f; // predicted target PC - 240 2362013 : logic ifu_bp_inst_mask_f; // tell ic which valids to kill because of a taken branch; right justified - 241 2025664 : logic [1:0] ifu_bp_hist1_f; // history counters for all 4 potential branches; right justified - 242 1824438 : logic [1:0] ifu_bp_hist0_f; // history counters for all 4 potential branches; right justified - 243 2135303 : logic [11:0] ifu_bp_poffset_f; // predicted target - 244 70444 : logic [1:0] ifu_bp_ret_f; // predicted ret ; right justified - 245 408201 : logic [1:0] ifu_bp_pc4_f; // pc4 indication; right justified - 246 956691 : logic [1:0] ifu_bp_valid_f; // branch valid, right justified - 247 376810 : logic [pt.BHT_GHR_SIZE-1:0] ifu_bp_fghr_f; + 237 2362503 : logic [1:0] ifu_bp_way_f; // way indication; right justified + 238 3121591 : logic ifu_bp_hit_taken_f; // kill next fetch; taken target found + 239 517285 : logic [31:1] ifu_bp_btb_target_f; // predicted target PC + 240 2359203 : logic ifu_bp_inst_mask_f; // tell ic which valids to kill because of a taken branch; right justified + 241 2019588 : logic [1:0] ifu_bp_hist1_f; // history counters for all 4 potential branches; right justified + 242 1818194 : logic [1:0] ifu_bp_hist0_f; // history counters for all 4 potential branches; right justified + 243 2132321 : logic [11:0] ifu_bp_poffset_f; // predicted target + 244 70318 : logic [1:0] ifu_bp_ret_f; // predicted ret ; right justified + 245 405857 : logic [1:0] ifu_bp_pc4_f; // pc4 indication; right justified + 246 952355 : logic [1:0] ifu_bp_valid_f; // branch valid, right justified + 247 374194 : logic [pt.BHT_GHR_SIZE-1:0] ifu_bp_fghr_f; 248 0 : logic [1:0] [$clog2(pt.BTB_SIZE)-1:0] ifu_bp_fa_index_f; 249 : 250 : - 251 6336890 : logic [1:0] ic_fetch_val_f; - 252 2167656 : logic [31:0] ic_data_f; - 253 2167656 : logic [31:0] ifu_fetch_data_f; - 254 3715756 : logic ifc_fetch_req_f; + 251 6303330 : logic [1:0] ic_fetch_val_f; + 252 2159702 : logic [31:0] ic_data_f; + 253 2159702 : logic [31:0] ifu_fetch_data_f; + 254 3697544 : logic ifc_fetch_req_f; 255 0 : logic ifc_fetch_req_f_raw; 256 0 : logic iccm_dma_rd_ecc_double_err; 257 4 : logic [1:0] iccm_rd_ecc_double_err; // This fetch has an iccm double error. @@ -369,9 +369,9 @@ 265 : assign ifu_fetch_pc[31:1] = ifc_fetch_addr_f[31:1]; 266 : 267 335 : logic ifc_fetch_uncacheable_bf; // The fetch request is uncacheable space. BF stage - 268 3715794 : logic ifc_fetch_req_bf; // Fetch request. Comes with the address. BF stage + 268 3697582 : logic ifc_fetch_req_bf; // Fetch request. Comes with the address. BF stage 269 316 : logic ifc_fetch_req_bf_raw; // Fetch request without some qualifications. Used for clock-gating. BF stage - 270 106 : logic ifc_iccm_access_bf; // This request is to the ICCM. Do not generate misses to the bus. + 270 102 : logic ifc_iccm_access_bf; // This request is to the ICCM. Do not generate misses to the bus. 271 0 : logic ifc_region_acc_fault_bf; // Access fault. in ICCM region but offset is outside defined ICCM. 272 : 273 : // fetch control diff --git a/html/main/coverage_dashboard/all/index_el2_ifu_aln_ctl.sv.html b/html/main/coverage_dashboard/all/index_el2_ifu_aln_ctl.sv.html index 0fc022e3e8c..d893f0b0557 100644 --- a/html/main/coverage_dashboard/all/index_el2_ifu_aln_ctl.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_ifu_aln_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -131,8 +131,8 @@ 27 : 28 0 : input logic scan_mode, // Flop scan mode control 29 316 : input logic rst_l, // reset, active low - 30 61843746 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 31 61843746 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 30 61251245 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 31 61251245 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. 32 : 33 8 : input logic ifu_async_error_start, // ecc/parity related errors with current fetch - not sent down the pipe 34 : @@ -141,118 +141,118 @@ 37 170 : input logic [1:0] ic_access_fault_f, // Instruction access fault for the current fetch. 38 170 : input logic [1:0] ic_access_fault_type_f, // Instruction access fault types 39 : - 40 672565 : input logic exu_flush_final, // Flush from the pipeline. + 40 671016 : input logic exu_flush_final, // Flush from the pipeline. 41 : - 42 6190087 : input logic dec_i0_decode_d, // Valid instruction at D-stage and not blocked + 42 6153554 : input logic dec_i0_decode_d, // Valid instruction at D-stage and not blocked 43 : - 44 2167656 : input logic [31:0] ifu_fetch_data_f, // fetch data in memory format - not right justified + 44 2159702 : input logic [31:0] ifu_fetch_data_f, // fetch data in memory format - not right justified 45 : - 46 6336890 : input logic [1:0] ifu_fetch_val, // valids on a 2B boundary, right justified + 46 6303330 : input logic [1:0] ifu_fetch_val, // valids on a 2B boundary, right justified 47 310 : input logic [31:1] ifu_fetch_pc, // starting pc of fetch 48 : 49 : 50 : - 51 6006883 : output logic ifu_i0_valid, // Instruction 0 is valid + 51 5971582 : output logic ifu_i0_valid, // Instruction 0 is valid 52 196 : output logic ifu_i0_icaf, // Instruction 0 has access fault 53 270 : output logic [1:0] ifu_i0_icaf_type, // Instruction 0 access fault type 54 86 : output logic ifu_i0_icaf_second, // Instruction 0 has access fault on second 2B of 4B inst 55 : 56 2 : output logic ifu_i0_dbecc, // Instruction 0 has double bit ecc error - 57 468420 : output logic [31:0] ifu_i0_instr, // Instruction 0 + 57 467652 : output logic [31:0] ifu_i0_instr, // Instruction 0 58 1288 : output logic [31:1] ifu_i0_pc, // Instruction 0 PC - 59 5735369 : output logic ifu_i0_pc4, + 59 5716269 : output logic ifu_i0_pc4, 60 : - 61 5976194 : output logic ifu_fb_consume1, // Consumed one buffer. To fetch control fetch for buffer mass balance - 62 1719108 : output logic ifu_fb_consume2, // Consumed two buffers.To fetch control fetch for buffer mass balance + 61 5947216 : output logic ifu_fb_consume1, // Consumed one buffer. To fetch control fetch for buffer mass balance + 62 1717100 : output logic ifu_fb_consume2, // Consumed two buffers.To fetch control fetch for buffer mass balance 63 : 64 : - 65 376810 : input logic [pt.BHT_GHR_SIZE-1:0] ifu_bp_fghr_f, // fetch GHR - 66 518755 : input logic [31:1] ifu_bp_btb_target_f, // predicted RET target - 67 2135303 : input logic [11:0] ifu_bp_poffset_f, // predicted target offset + 65 374194 : input logic [pt.BHT_GHR_SIZE-1:0] ifu_bp_fghr_f, // fetch GHR + 66 517285 : input logic [31:1] ifu_bp_btb_target_f, // predicted RET target + 67 2132321 : input logic [11:0] ifu_bp_poffset_f, // predicted target offset 68 0 : input logic [1:0] [$clog2(pt.BTB_SIZE)-1:0] ifu_bp_fa_index_f, // predicted branch index (fully associative option) 69 : - 70 1824438 : input logic [1:0] ifu_bp_hist0_f, // history counters for all 4 potential branches, bit 1, right justified - 71 2025664 : input logic [1:0] ifu_bp_hist1_f, // history counters for all 4 potential branches, bit 1, right justified - 72 408201 : input logic [1:0] ifu_bp_pc4_f, // pc4 indication, right justified - 73 2367091 : input logic [1:0] ifu_bp_way_f, // way indication, right justified - 74 956691 : input logic [1:0] ifu_bp_valid_f, // branch valid, right justified - 75 70444 : input logic [1:0] ifu_bp_ret_f, // predicted ret indication, right justified + 70 1818194 : input logic [1:0] ifu_bp_hist0_f, // history counters for all 4 potential branches, bit 1, right justified + 71 2019588 : input logic [1:0] ifu_bp_hist1_f, // history counters for all 4 potential branches, bit 1, right justified + 72 405857 : input logic [1:0] ifu_bp_pc4_f, // pc4 indication, right justified + 73 2362503 : input logic [1:0] ifu_bp_way_f, // way indication, right justified + 74 952355 : input logic [1:0] ifu_bp_valid_f, // branch valid, right justified + 75 70318 : input logic [1:0] ifu_bp_ret_f, // predicted ret indication, right justified 76 : 77 : - 78 200759 : output el2_br_pkt_t i0_brp, // Branch packet for I0. - 79 651076 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] ifu_i0_bp_index, // BP index - 80 631672 : output logic [pt.BHT_GHR_SIZE-1:0] ifu_i0_bp_fghr, // BP FGHR + 78 200545 : output el2_br_pkt_t i0_brp, // Branch packet for I0. + 79 650118 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] ifu_i0_bp_index, // BP index + 80 619214 : output logic [pt.BHT_GHR_SIZE-1:0] ifu_i0_bp_fghr, // BP FGHR 81 21217 : output logic [pt.BTB_BTAG_SIZE-1:0] ifu_i0_bp_btag, // BP tag 82 : 83 0 : output logic [$clog2(pt.BTB_SIZE)-1:0] ifu_i0_fa_index, // Fully associt btb index 84 : - 85 6190087 : output logic ifu_pmu_instr_aligned, // number of inst aligned this cycle + 85 6153554 : output logic ifu_pmu_instr_aligned, // number of inst aligned this cycle 86 : - 87 1427542 : output logic [15:0] ifu_i0_cinst // 16b compress inst for i0 + 87 1422550 : output logic [15:0] ifu_i0_cinst // 16b compress inst for i0 88 : ); 89 : 90 : 91 : - 92 6786478 : logic ifvalid; - 93 51602 : logic shift_f1_f0, shift_f2_f0, shift_f2_f1; - 94 270980 : logic fetch_to_f0, fetch_to_f1, fetch_to_f2; + 92 6749550 : logic ifvalid; + 93 51564 : logic shift_f1_f0, shift_f2_f0, shift_f2_f1; + 94 270940 : logic fetch_to_f0, fetch_to_f1, fetch_to_f2; 95 : - 96 685700 : logic [1:0] f2val_in, f2val; - 97 1516369 : logic [1:0] f1val_in, f1val; - 98 4312982 : logic [1:0] f0val_in, f0val; - 99 77629 : logic [1:0] sf1val, sf0val; + 96 685660 : logic [1:0] f2val_in, f2val; + 97 1505610 : logic [1:0] f1val_in, f1val; + 98 4289276 : logic [1:0] f0val_in, f0val; + 99 77441 : logic [1:0] sf1val, sf0val; 100 : - 101 1361273 : logic [31:0] aligndata; - 102 5735370 : logic first4B, first2B; + 101 1356256 : logic [31:0] aligndata; + 102 5716270 : logic first4B, first2B; 103 : - 104 241352 : logic [31:0] uncompress0; - 105 6190087 : logic i0_shift; - 106 4336836 : logic shift_2B, shift_4B; - 107 3270013 : logic f1_shift_2B; - 108 570413 : logic f2_valid, sf1_valid, sf0_valid; + 104 240648 : logic [31:0] uncompress0; + 105 6153554 : logic i0_shift; + 106 4323796 : logic shift_2B, shift_4B; + 107 3258200 : logic f1_shift_2B; + 108 561430 : logic f2_valid, sf1_valid, sf0_valid; 109 : - 110 1361273 : logic [31:0] ifirst; - 111 4648847 : logic [1:0] alignval; - 112 2125638 : logic [31:1] firstpc, secondpc; + 110 1356256 : logic [31:0] ifirst; + 111 4624861 : logic [1:0] alignval; + 112 2121651 : logic [31:1] firstpc, secondpc; 113 : - 114 2031241 : logic [11:0] f1poffset; - 115 553276 : logic [11:0] f0poffset; - 116 395754 : logic [pt.BHT_GHR_SIZE-1:0] f1fghr; - 117 605991 : logic [pt.BHT_GHR_SIZE-1:0] f0fghr; - 118 1874371 : logic [1:0] f1hist1; - 119 2526664 : logic [1:0] f0hist1; - 120 1631147 : logic [1:0] f1hist0; - 121 2345199 : logic [1:0] f0hist0; + 114 2028193 : logic [11:0] f1poffset; + 115 550811 : logic [11:0] f0poffset; + 116 391724 : logic [pt.BHT_GHR_SIZE-1:0] f1fghr; + 117 596123 : logic [pt.BHT_GHR_SIZE-1:0] f0fghr; + 118 1869197 : logic [1:0] f1hist1; + 119 2521369 : logic [1:0] f0hist1; + 120 1626145 : logic [1:0] f1hist0; + 121 2338611 : logic [1:0] f0hist0; 122 : 123 0 : logic [1:0][$clog2(pt.BTB_SIZE)-1:0] f0index, f1index, alignindex; 124 : 125 126 : logic [1:0] f1ictype; 126 184 : logic [1:0] f0ictype; 127 : - 128 310470 : logic [1:0] f1pc4; - 129 477183 : logic [1:0] f0pc4; + 128 308418 : logic [1:0] f1pc4; + 129 472594 : logic [1:0] f0pc4; 130 : 131 13698 : logic [1:0] f1ret; - 132 79374 : logic [1:0] f0ret; - 133 3365627 : logic [1:0] f1way; - 134 3948316 : logic [1:0] f0way; + 132 79298 : logic [1:0] f0ret; + 133 3363459 : logic [1:0] f1way; + 134 3946038 : logic [1:0] f0way; 135 : - 136 513538 : logic [1:0] f1brend; - 137 803346 : logic [1:0] f0brend; + 136 510038 : logic [1:0] f1brend; + 137 800328 : logic [1:0] f0brend; 138 : - 139 2231832 : logic [1:0] alignbrend; - 140 2083045 : logic [1:0] alignpc4; + 139 2229316 : logic [1:0] alignbrend; + 140 2077335 : logic [1:0] alignpc4; 141 : - 142 81904 : logic [1:0] alignret; - 143 4338791 : logic [1:0] alignway; - 144 4609861 : logic [1:0] alignhist1; - 145 4115473 : logic [1:0] alignhist0; - 146 4070506 : logic [1:1] alignfromf1; - 147 2322832 : logic i0_ends_f1; + 142 81764 : logic [1:0] alignret; + 143 4334429 : logic [1:0] alignway; + 144 4602043 : logic [1:0] alignhist1; + 145 4108949 : logic [1:0] alignhist0; + 146 4059500 : logic [1:1] alignfromf1; + 147 2317398 : logic i0_ends_f1; 148 9628 : logic i0_br_start_error; 149 : - 150 381760 : logic [31:1] f1prett; - 151 439643 : logic [31:1] f0prett; + 150 380306 : logic [31:1] f1prett; + 151 438542 : logic [31:1] f0prett; 152 2 : logic [1:0] f1dbecc; 153 2 : logic [1:0] f0dbecc; 154 126 : logic [1:0] f1icaf; @@ -260,47 +260,47 @@ 156 : 157 2 : logic [1:0] aligndbecc; 158 110 : logic [1:0] alignicaf; - 159 2508127 : logic i0_brp_pc4; + 159 2502417 : logic i0_brp_pc4; 160 : - 161 611304 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] firstpc_hash, secondpc_hash; + 161 610418 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] firstpc_hash, secondpc_hash; 162 : 163 0 : logic first_legal; 164 : - 165 4395846 : logic [1:0] wrptr, wrptr_in; - 166 3605586 : logic [1:0] rdptr, rdptr_in; - 167 4240925 : logic [2:0] qwen; - 168 321636 : logic [31:0] q2,q1,q0; - 169 2717737 : logic q2off_in, q2off; - 170 2710515 : logic q1off_in, q1off; - 171 2742708 : logic q0off_in, q0off; - 172 3731007 : logic f0_shift_2B; + 165 4383493 : logic [1:0] wrptr, wrptr_in; + 166 3594415 : logic [1:0] rdptr, rdptr_in; + 167 4229122 : logic [2:0] qwen; + 168 320566 : logic [31:0] q2,q1,q0; + 169 2710162 : logic q2off_in, q2off; + 170 2702913 : logic q1off_in, q1off; + 171 2734744 : logic q0off_in, q0off; + 172 3708138 : logic f0_shift_2B; 173 : - 174 1290596 : logic [31:0] q0eff; - 175 899593 : logic [31:0] q0final; - 176 4864039 : logic q0ptr; - 177 4864039 : logic [1:0] q0sel; + 174 1285093 : logic [31:0] q0eff; + 175 895524 : logic [31:0] q0final; + 176 4845958 : logic q0ptr; + 177 4845958 : logic [1:0] q0sel; 178 : - 179 1134626 : logic [31:0] q1eff; - 180 1321548 : logic [15:0] q1final; - 181 3384249 : logic q1ptr; - 182 3384249 : logic [1:0] q1sel; + 179 1129460 : logic [31:0] q1eff; + 180 1314833 : logic [15:0] q1final; + 181 3371761 : logic q1ptr; + 182 3371761 : logic [1:0] q1sel; 183 : - 184 3605578 : logic [2:0] qren; + 184 3594407 : logic [2:0] qren; 185 : - 186 1844488 : logic consume_fb1, consume_fb0; + 186 1843199 : logic consume_fb1, consume_fb0; 187 112 : logic [1:0] icaf_eff; 188 : 189 : localparam BRDATA_SIZE = pt.BTB_ENABLE ? 16+($clog2(pt.BTB_SIZE)*2*pt.BTB_FULLYA) : 4; 190 : localparam BRDATA_WIDTH = pt.BTB_ENABLE ? 8+($clog2(pt.BTB_SIZE)*pt.BTB_FULLYA) : 2; - 191 60262 : logic [BRDATA_SIZE-1:0] brdata_in, brdata2, brdata1, brdata0; - 192 192799 : logic [BRDATA_SIZE-1:0] brdata1eff, brdata0eff; - 193 178331 : logic [BRDATA_SIZE-1:0] brdata1final, brdata0final; + 191 59899 : logic [BRDATA_SIZE-1:0] brdata_in, brdata2, brdata1, brdata0; + 192 192895 : logic [BRDATA_SIZE-1:0] brdata1eff, brdata0eff; + 193 178255 : logic [BRDATA_SIZE-1:0] brdata1final, brdata0final; 194 : 195 : localparam MHI = 1+(pt.BTB_ENABLE * (43+pt.BHT_GHR_SIZE)); 196 : localparam MSIZE = 2+(pt.BTB_ENABLE * (43+pt.BHT_GHR_SIZE)); 197 : - 198 142581 : logic [MHI:0] misc_data_in, misc2, misc1, misc0; - 199 513903 : logic [MHI:0] misc1eff, misc0eff; + 198 141581 : logic [MHI:0] misc_data_in, misc2, misc1, misc0; + 199 507349 : logic [MHI:0] misc1eff, misc0eff; 200 : 201 16653 : logic [pt.BTB_BTAG_SIZE-1:0] firstbrtag_hash, secondbrtag_hash; 202 : diff --git a/html/main/coverage_dashboard/all/index_el2_ifu_bp_ctl.sv.html b/html/main/coverage_dashboard/all/index_el2_ifu_bp_ctl.sv.html index 5033f0ee05e..259a0a0d86f 100644 --- a/html/main/coverage_dashboard/all/index_el2_ifu_bp_ctl.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_ifu_bp_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -135,47 +135,47 @@ 31 : ) 32 : ( 33 : - 34 61843746 : input logic clk, + 34 61251245 : input logic clk, 35 316 : input logic rst_l, 36 : - 37 6786478 : input logic ic_hit_f, // Icache hit, enables F address capture + 37 6749550 : input logic ic_hit_f, // Icache hit, enables F address capture 38 : 39 310 : input logic [31:1] ifc_fetch_addr_f, // look up btb address - 40 3715756 : input logic ifc_fetch_req_f, // F1 valid + 40 3697544 : input logic ifc_fetch_req_f, // F1 valid 41 : - 42 782203 : input el2_br_tlu_pkt_t dec_tlu_br0_r_pkt, // BP commit update packet, includes errors - 43 367119 : input logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_r, // fghr to bp - 44 187548 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_i0_br_index_r, // bp index + 42 779462 : input el2_br_tlu_pkt_t dec_tlu_br0_r_pkt, // BP commit update packet, includes errors + 43 364503 : input logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_r, // fghr to bp + 44 187344 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_i0_br_index_r, // bp index 45 : 46 0 : input logic [$clog2(pt.BTB_SIZE)-1:0] dec_fa_error_index, // Fully associative btb error index 47 : - 48 58638 : input logic dec_tlu_flush_lower_wb, // used to move EX4 RS to EX1 and F + 48 58568 : input logic dec_tlu_flush_lower_wb, // used to move EX4 RS to EX1 and F 49 0 : input logic dec_tlu_flush_leak_one_wb, // don't hit for leak one fetches 50 : 51 0 : input logic dec_tlu_bpred_disable, // disable all branch prediction 52 : - 53 34458 : input el2_predict_pkt_t exu_mp_pkt, // mispredict packet + 53 34372 : input el2_predict_pkt_t exu_mp_pkt, // mispredict packet 54 : - 55 299672 : input logic [pt.BHT_GHR_SIZE-1:0] exu_mp_eghr, // execute ghr (for patching fghr) - 56 378995 : input logic [pt.BHT_GHR_SIZE-1:0] exu_mp_fghr, // Mispredict fghr - 57 196032 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_mp_index, // Mispredict index + 55 298770 : input logic [pt.BHT_GHR_SIZE-1:0] exu_mp_eghr, // execute ghr (for patching fghr) + 56 376379 : input logic [pt.BHT_GHR_SIZE-1:0] exu_mp_fghr, // Mispredict fghr + 57 195586 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_mp_index, // Mispredict index 58 115620 : input logic [pt.BTB_BTAG_SIZE-1:0] exu_mp_btag, // Mispredict btag 59 : - 60 672565 : input logic exu_flush_final, // all flushes + 60 671016 : input logic exu_flush_final, // all flushes 61 : - 62 3127797 : output logic ifu_bp_hit_taken_f, // btb hit, select target - 63 518755 : output logic [31:1] ifu_bp_btb_target_f, // predicted target PC - 64 2362013 : output logic ifu_bp_inst_mask_f, // tell ic which valids to kill because of a taken branch, right justified + 62 3121591 : output logic ifu_bp_hit_taken_f, // btb hit, select target + 63 517285 : output logic [31:1] ifu_bp_btb_target_f, // predicted target PC + 64 2359203 : output logic ifu_bp_inst_mask_f, // tell ic which valids to kill because of a taken branch, right justified 65 : - 66 376810 : output logic [pt.BHT_GHR_SIZE-1:0] ifu_bp_fghr_f, // fetch ghr + 66 374194 : output logic [pt.BHT_GHR_SIZE-1:0] ifu_bp_fghr_f, // fetch ghr 67 : - 68 2367091 : output logic [1:0] ifu_bp_way_f, // way - 69 70444 : output logic [1:0] ifu_bp_ret_f, // predicted ret - 70 2025664 : output logic [1:0] ifu_bp_hist1_f, // history counters for all 4 potential branches, bit 1, right justified - 71 1824438 : output logic [1:0] ifu_bp_hist0_f, // history counters for all 4 potential branches, bit 0, right justified - 72 408201 : output logic [1:0] ifu_bp_pc4_f, // pc4 indication, right justified - 73 956691 : output logic [1:0] ifu_bp_valid_f, // branch valid, right justified - 74 2135303 : output logic [11:0] ifu_bp_poffset_f, // predicted target + 68 2362503 : output logic [1:0] ifu_bp_way_f, // way + 69 70318 : output logic [1:0] ifu_bp_ret_f, // predicted ret + 70 2019588 : output logic [1:0] ifu_bp_hist1_f, // history counters for all 4 potential branches, bit 1, right justified + 71 1818194 : output logic [1:0] ifu_bp_hist0_f, // history counters for all 4 potential branches, bit 0, right justified + 72 405857 : output logic [1:0] ifu_bp_pc4_f, // pc4 indication, right justified + 73 952355 : output logic [1:0] ifu_bp_valid_f, // branch valid, right justified + 74 2132321 : output logic [11:0] ifu_bp_poffset_f, // predicted target 75 : 76 0 : output logic [1:0] [$clog2(pt.BTB_SIZE)-1:0] ifu_bp_fa_index_f, // predicted branch index (fully associative option) 77 : @@ -205,56 +205,56 @@ 101 : localparam BHT_NO_ADDR_MATCH = ( pt.BHT_ARRAY_DEPTH <= 16 ); 102 : 103 : - 104 200312 : logic exu_mp_valid_write; - 105 522818 : logic exu_mp_ataken; - 106 507918 : logic exu_mp_valid; // conditional branch mispredict - 107 229966 : logic exu_mp_boffset; // branch offsett - 108 272822 : logic exu_mp_pc4; // branch is a 4B inst - 109 47200 : logic exu_mp_call; // branch is a call inst - 110 148962 : logic exu_mp_ret; // branch is a ret inst - 111 80218 : logic exu_mp_ja; // branch is a jump always - 112 282730 : logic [1:0] exu_mp_hist; // new history - 113 89890 : logic [11:0] exu_mp_tgt; // target offset - 114 196032 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_mp_addr; // BTB/BHT address - 115 2871038 : logic dec_tlu_br0_v_wb; // WB stage history update - 116 2679213 : logic [1:0] dec_tlu_br0_hist_wb; // new history - 117 187548 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] dec_tlu_br0_addr_wb; // addr + 104 200024 : logic exu_mp_valid_write; + 105 521668 : logic exu_mp_ataken; + 106 506614 : logic exu_mp_valid; // conditional branch mispredict + 107 229164 : logic exu_mp_boffset; // branch offsett + 108 272130 : logic exu_mp_pc4; // branch is a 4B inst + 109 47088 : logic exu_mp_call; // branch is a call inst + 110 148818 : logic exu_mp_ret; // branch is a ret inst + 111 80166 : logic exu_mp_ja; // branch is a jump always + 112 282580 : logic [1:0] exu_mp_hist; // new history + 113 89338 : logic [11:0] exu_mp_tgt; // target offset + 114 195586 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_mp_addr; // BTB/BHT address + 115 2863508 : logic dec_tlu_br0_v_wb; // WB stage history update + 116 2673781 : logic [1:0] dec_tlu_br0_hist_wb; // new history + 117 187344 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] dec_tlu_br0_addr_wb; // addr 118 28846 : logic dec_tlu_br0_error_wb; // error; invalidate bank 119 9608 : logic dec_tlu_br0_start_error_wb; // error; invalidate all 4 banks in fg - 120 367119 : logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_wb; + 120 364503 : logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_wb; 121 : 122 4946 : logic use_mp_way, use_mp_way_p1; - 123 124 : logic [pt.RET_STACK_SIZE-1:0][31:0] rets_out, rets_in; - 124 230670 : logic [pt.RET_STACK_SIZE-1:0] rsenable; + 123 105 : logic [pt.RET_STACK_SIZE-1:0][31:0] rets_out, rets_in; + 124 230412 : logic [pt.RET_STACK_SIZE-1:0] rsenable; 125 : 126 : - 127 2135303 : logic [11:0] btb_rd_tgt_f; - 128 497844 : logic btb_rd_pc4_f, btb_rd_call_f, btb_rd_ret_f; - 129 1435715 : logic [1:1] bp_total_branch_offset_f; + 127 2132321 : logic [11:0] btb_rd_tgt_f; + 128 496910 : logic btb_rd_pc4_f, btb_rd_call_f, btb_rd_ret_f; + 129 1432135 : logic [1:1] bp_total_branch_offset_f; 130 : 131 310 : logic [31:1] bp_btb_target_adder_f; 132 310 : logic [31:1] bp_rs_call_target_f; - 133 203004 : logic rs_push, rs_pop, rs_hold; - 134 126300 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] btb_rd_addr_p1_f, btb_wr_addr, btb_rd_addr_f; + 133 202749 : logic rs_push, rs_pop, rs_hold; + 134 126072 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] btb_rd_addr_p1_f, btb_wr_addr, btb_rd_addr_f; 135 12199 : logic [pt.BTB_BTAG_SIZE-1:0] btb_wr_tag, fetch_rd_tag_f, fetch_rd_tag_p1_f; - 136 55590 : logic [BTB_DWIDTH-1:0] btb_wr_data; - 137 101152 : logic btb_wr_en_way0, btb_wr_en_way1; + 136 55416 : logic [BTB_DWIDTH-1:0] btb_wr_data; + 137 101126 : logic btb_wr_en_way0, btb_wr_en_way1; 138 : 139 : - 140 260602 : logic dec_tlu_error_wb, btb_valid, dec_tlu_br0_middle_wb; - 141 187548 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] btb_error_addr_wb; + 140 259298 : logic dec_tlu_error_wb, btb_valid, dec_tlu_br0_middle_wb; + 141 187344 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] btb_error_addr_wb; 142 2406 : logic branch_error_collision_f, fetch_mp_collision_f, branch_error_collision_p1_f, fetch_mp_collision_p1_f; 143 : 144 1040 : logic branch_error_bank_conflict_f; - 145 372998 : logic [pt.BHT_GHR_SIZE-1:0] merged_ghr, fghr_ns, fghr; + 145 370382 : logic [pt.BHT_GHR_SIZE-1:0] merged_ghr, fghr_ns, fghr; 146 74753 : logic [1:0] num_valids; 147 232 : logic [LRU_SIZE-1:0] btb_lru_b0_f, btb_lru_b0_hold, btb_lru_b0_ns, 148 14768 : fetch_wrindex_dec, fetch_wrindex_p1_dec, fetch_wrlru_b0, fetch_wrlru_p1_b0, 149 366 : mp_wrindex_dec, mp_wrlru_b0; - 150 1635105 : logic btb_lru_rd_f, btb_lru_rd_p1_f, lru_update_valid_f; - 151 539560 : logic tag_match_way0_f, tag_match_way1_f; - 152 754438 : logic [1:0] way_raw, bht_dir_f, btb_sel_f, wayhit_f, vwayhit_f, wayhit_p1_f; - 153 361282 : logic [1:0] bht_valid_f, bht_force_taken_f; + 150 1628280 : logic btb_lru_rd_f, btb_lru_rd_p1_f, lru_update_valid_f; + 151 538896 : logic tag_match_way0_f, tag_match_way1_f; + 152 751634 : logic [1:0] way_raw, bht_dir_f, btb_sel_f, wayhit_f, vwayhit_f, wayhit_p1_f; + 153 360932 : logic [1:0] bht_valid_f, bht_force_taken_f; 154 : 155 0 : logic leak_one_f, leak_one_f_d1; 156 : @@ -262,38 +262,38 @@ 158 : 159 : logic [LRU_SIZE-1:0][BTB_DWIDTH-1:0] btb_bank0_rd_data_way1_out ; 160 : - 161 2629034 : logic [BTB_DWIDTH-1:0] btb_bank0_rd_data_way0_f ; - 162 461791 : logic [BTB_DWIDTH-1:0] btb_bank0_rd_data_way1_f ; + 161 2627222 : logic [BTB_DWIDTH-1:0] btb_bank0_rd_data_way0_f ; + 162 461657 : logic [BTB_DWIDTH-1:0] btb_bank0_rd_data_way1_f ; 163 : - 164 1078106 : logic [BTB_DWIDTH-1:0] btb_bank0_rd_data_way0_p1_f ; - 165 459054 : logic [BTB_DWIDTH-1:0] btb_bank0_rd_data_way1_p1_f ; + 164 1076650 : logic [BTB_DWIDTH-1:0] btb_bank0_rd_data_way0_p1_f ; + 165 458936 : logic [BTB_DWIDTH-1:0] btb_bank0_rd_data_way1_p1_f ; 166 : - 167 277615 : logic [BTB_DWIDTH-1:0] btb_vbank0_rd_data_f, btb_vbank1_rd_data_f; + 167 277103 : logic [BTB_DWIDTH-1:0] btb_vbank0_rd_data_f, btb_vbank1_rd_data_f; 168 : - 169 3127797 : logic final_h; - 170 176376 : logic btb_fg_crossing_f; - 171 284364 : logic middle_of_bank; + 169 3121591 : logic final_h; + 170 175514 : logic btb_fg_crossing_f; + 171 283726 : logic middle_of_bank; 172 : 173 : - 174 1782489 : logic [1:0] bht_vbank0_rd_data_f, bht_vbank1_rd_data_f; + 174 1776749 : logic [1:0] bht_vbank0_rd_data_f, bht_vbank1_rd_data_f; 175 982 : logic branch_error_bank_conflict_p1_f; - 176 595724 : logic tag_match_way0_p1_f, tag_match_way1_p1_f; + 176 595056 : logic tag_match_way0_p1_f, tag_match_way1_p1_f; 177 : 178 162871 : logic [1:0] btb_vlru_rd_f, fetch_start_f, tag_match_vway1_expanded_f, tag_match_way0_expanded_p1_f, tag_match_way1_expanded_p1_f; 179 310 : logic [31:2] fetch_addr_p1_f; 180 : 181 : - 182 202496 : logic exu_mp_way, exu_mp_way_f, dec_tlu_br0_way_wb, dec_tlu_way_wb; - 183 173604 : logic [BTB_DWIDTH-1:0] btb_bank0e_rd_data_f, btb_bank0e_rd_data_p1_f; + 182 202418 : logic exu_mp_way, exu_mp_way_f, dec_tlu_br0_way_wb, dec_tlu_way_wb; + 183 173728 : logic [BTB_DWIDTH-1:0] btb_bank0e_rd_data_f, btb_bank0e_rd_data_p1_f; 184 : - 185 1772809 : logic [BTB_DWIDTH-1:0] btb_bank0o_rd_data_f; + 185 1772003 : logic [BTB_DWIDTH-1:0] btb_bank0o_rd_data_f; 186 : - 187 196707 : logic [1:0] tag_match_way0_expanded_f, tag_match_way1_expanded_f; + 187 196077 : logic [1:0] tag_match_way0_expanded_f, tag_match_way1_expanded_f; 188 : 189 : - 190 1704053 : logic [1:0] bht_bank0_rd_data_f; - 191 1957430 : logic [1:0] bht_bank1_rd_data_f; - 192 1797591 : logic [1:0] bht_bank0_rd_data_p1_f; + 190 1699025 : logic [1:0] bht_bank0_rd_data_f; + 191 1951520 : logic [1:0] bht_bank1_rd_data_f; + 192 1792151 : logic [1:0] bht_bank0_rd_data_p1_f; 193 : genvar j, i; 194 : 195 : assign exu_mp_valid = exu_mp_pkt.misp & ~leak_one_f; // conditional branch mispredict @@ -348,7 +348,7 @@ 244 : // set on leak one, hold until next flush without leak one 245 : assign leak_one_f = (dec_tlu_flush_leak_one_wb & dec_tlu_flush_lower_wb) | (leak_one_f_d1 & ~dec_tlu_flush_lower_wb); 246 : - 247 672564 : logic exu_flush_final_d1; + 247 671014 : logic exu_flush_final_d1; 248 : 249 : if(!pt.BTB_FULLYA) begin : genblock1 250 : assign fetch_mp_collision_f = ( (exu_mp_btag[pt.BTB_BTAG_SIZE-1:0] == fetch_rd_tag_f[pt.BTB_BTAG_SIZE-1:0]) & @@ -461,8 +461,8 @@ 357 : 358 : end // if (!pt.BTB_FULLYA) 359 : // Detect end of cache line and mask as needed - 360 745777 : logic eoc_near; - 361 193490 : logic eoc_mask; + 360 743720 : logic eoc_near; + 361 192583 : logic eoc_mask; 362 : assign eoc_near = &ifc_fetch_addr_f[pt.ICACHE_BEAT_ADDR_HI:3]; 363 : assign eoc_mask = ~eoc_near| (|(~ifc_fetch_addr_f[2:1])); 364 : @@ -473,7 +473,7 @@ 369 : 370 : // mux out critical hit bank for pc computation 371 : // This is only useful for the first taken branch in the fetch group - 372 1950064 : logic [16:1] btb_sel_data_f; + 372 1949348 : logic [16:1] btb_sel_data_f; 373 : 374 : assign btb_rd_tgt_f[11:0] = btb_sel_data_f[16:5]; 375 : assign btb_rd_pc4_f = btb_sel_data_f[4]; @@ -484,7 +484,7 @@ 380 : ({16{btb_sel_f[0]}} & btb_vbank0_rd_data_f[16:1]) ); 381 : 382 : - 383 70444 : logic [1:0] hist0_raw, hist1_raw, pc4_raw, pret_raw; + 383 70318 : logic [1:0] hist0_raw, hist1_raw, pc4_raw, pret_raw; 384 : 385 : // a valid taken target needs to kill the next fetch as we compute the target address 386 : assign ifu_bp_hit_taken_f = |(vwayhit_f[1:0] & hist1_raw[1:0]) & ifc_fetch_req_f & ~leak_one_f_d1 & ~dec_tlu_bpred_disable; @@ -561,7 +561,7 @@ 457 : ({pt.BHT_GHR_SIZE{num_valids[1:0] == 2'h1}} & {fghr[pt.BHT_GHR_SIZE-2:0], final_h}) | // PH 458 : ({pt.BHT_GHR_SIZE{num_valids[1:0] == 2'h0}} & {fghr[pt.BHT_GHR_SIZE-1:0]}) ); // PP 459 : - 460 378995 : logic [pt.BHT_GHR_SIZE-1:0] exu_flush_ghr; + 460 376379 : logic [pt.BHT_GHR_SIZE-1:0] exu_flush_ghr; 461 : assign exu_flush_ghr[pt.BHT_GHR_SIZE-1:0] = exu_mp_fghr[pt.BHT_GHR_SIZE-1:0]; 462 : 463 : assign fghr_ns[pt.BHT_GHR_SIZE-1:0] = ( ({pt.BHT_GHR_SIZE{exu_flush_final_d1}} & exu_flush_ghr[pt.BHT_GHR_SIZE-1:0]) | @@ -601,8 +601,8 @@ 497 : // -1 10 - 10 0 498 : // 10 10 0 01 1 499 : // 10 10 1 01 0 - 500 2540236 : logic [1:0] bloc_f; - 501 2316341 : logic use_fa_plus; + 500 2536506 : logic [1:0] bloc_f; + 501 2311399 : logic use_fa_plus; 502 : assign bloc_f[1] = (bht_dir_f[0] & ~fetch_start_f[0]) | (~bht_dir_f[0] 503 : & fetch_start_f[0]); 504 : assign bloc_f[0] = (bht_dir_f[0] & fetch_start_f[0]) | (~bht_dir_f[0] @@ -719,8 +719,8 @@ 615 : exu_mp_call | exu_mp_ja, exu_mp_ret | exu_mp_ja, btb_valid} ; 616 : 617 : assign exu_mp_valid_write = exu_mp_valid & exu_mp_ataken & ~exu_mp_pkt.valid; - 618 263348 : logic [1:0] bht_wr_data0, bht_wr_data2; - 619 1615966 : logic [1:0] bht_wr_en0, bht_wr_en2; + 618 263198 : logic [1:0] bht_wr_data0, bht_wr_data2; + 619 1615528 : logic [1:0] bht_wr_en0, bht_wr_en2; 620 : 621 : assign middle_of_bank = exu_mp_pc4 ^ exu_mp_boffset; 622 : assign bht_wr_en0[1:0] = {2{exu_mp_valid & ~exu_mp_call & ~exu_mp_ret & ~exu_mp_ja}} & {middle_of_bank, ~middle_of_bank}; @@ -732,9 +732,9 @@ 628 : 629 : 630 : - 631 151744 : logic [pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] bht_rd_addr_f, bht_rd_addr_p1_f, bht_wr_addr0, bht_wr_addr2; + 631 151046 : logic [pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] bht_rd_addr_f, bht_rd_addr_p1_f, bht_wr_addr0, bht_wr_addr2; 632 : - 633 151744 : logic [pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] mp_hashed, br0_hashed_wb, bht_rd_addr_hashed_f, bht_rd_addr_hashed_p1_f; + 633 151046 : logic [pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] mp_hashed, br0_hashed_wb, bht_rd_addr_hashed_f, bht_rd_addr_hashed_p1_f; 634 : el2_btb_ghr_hash #(.pt(pt)) mpghrhs (.hashin(exu_mp_addr[pt.BTB_ADDR_HI:pt.BTB_ADDR_LO]), .ghr(exu_mp_eghr[pt.BHT_GHR_SIZE-1:0]), .hash(mp_hashed[pt.BHT_ADDR_HI:pt.BHT_ADDR_LO])); 635 : el2_btb_ghr_hash #(.pt(pt)) br0ghrhs (.hashin(dec_tlu_br0_addr_wb[pt.BTB_ADDR_HI:pt.BTB_ADDR_LO]), .ghr(exu_i0_br_fghr_wb[pt.BHT_GHR_SIZE-1:0]), .hash(br0_hashed_wb[pt.BHT_ADDR_HI:pt.BHT_ADDR_LO])); 636 : el2_btb_ghr_hash #(.pt(pt)) fghrhs (.hashin(btb_rd_addr_f[pt.BTB_ADDR_HI:pt.BTB_ADDR_LO]), .ghr(fghr[pt.BHT_GHR_SIZE-1:0]), .hash(bht_rd_addr_hashed_f[pt.BHT_ADDR_HI:pt.BHT_ADDR_LO])); @@ -777,18 +777,18 @@ 673 317 : btb_bank0_rd_data_way1_p1_f[BTB_DWIDTH-1:0] = '0 ; 674 : 675 317 : for (int j=0; j< LRU_SIZE; j++) begin - 676 24263282 : if (btb_rd_addr_f[pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] == (pt.BTB_ADDR_HI-pt.BTB_ADDR_LO+1)'(j)) begin + 676 24134865 : if (btb_rd_addr_f[pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] == (pt.BTB_ADDR_HI-pt.BTB_ADDR_LO+1)'(j)) begin 677 : - 678 24263282 : btb_bank0_rd_data_way0_f[BTB_DWIDTH-1:0] = btb_bank0_rd_data_way0_out[j]; - 679 24263282 : btb_bank0_rd_data_way1_f[BTB_DWIDTH-1:0] = btb_bank0_rd_data_way1_out[j]; + 678 24134865 : btb_bank0_rd_data_way0_f[BTB_DWIDTH-1:0] = btb_bank0_rd_data_way0_out[j]; + 679 24134865 : btb_bank0_rd_data_way1_f[BTB_DWIDTH-1:0] = btb_bank0_rd_data_way1_out[j]; 680 : 681 : end 682 : end 683 317 : for (int j=0; j< LRU_SIZE; j++) begin - 684 24263282 : if (btb_rd_addr_p1_f[pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] == (pt.BTB_ADDR_HI-pt.BTB_ADDR_LO+1)'(j)) begin + 684 24134865 : if (btb_rd_addr_p1_f[pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] == (pt.BTB_ADDR_HI-pt.BTB_ADDR_LO+1)'(j)) begin 685 : - 686 24263282 : btb_bank0_rd_data_way0_p1_f[BTB_DWIDTH-1:0] = btb_bank0_rd_data_way0_out[j]; - 687 24263282 : btb_bank0_rd_data_way1_p1_f[BTB_DWIDTH-1:0] = btb_bank0_rd_data_way1_out[j]; + 686 24134865 : btb_bank0_rd_data_way0_p1_f[BTB_DWIDTH-1:0] = btb_bank0_rd_data_way0_out[j]; + 687 24134865 : btb_bank0_rd_data_way1_p1_f[BTB_DWIDTH-1:0] = btb_bank0_rd_data_way1_out[j]; 688 : 689 : end 690 : end @@ -933,7 +933,7 @@ 829 : 830 : // logic [1:0] [(pt.BHT_ARRAY_DEPTH/NUM_BHT_LOOP)-1:0][NUM_BHT_LOOP-1:0][1:0] bht_bank_wr_data ; 831 : logic [1:0] [pt.BHT_ARRAY_DEPTH-1:0] [1:0] bht_bank_rd_data_out ; - 832 11506 : logic [1:0] [(pt.BHT_ARRAY_DEPTH/NUM_BHT_LOOP)-1:0] bht_bank_clken ; + 832 11472 : logic [1:0] [(pt.BHT_ARRAY_DEPTH/NUM_BHT_LOOP)-1:0] bht_bank_clken ; 833 0 : logic [1:0] [(pt.BHT_ARRAY_DEPTH/NUM_BHT_LOOP)-1:0] bht_bank_clk ; 834 : // logic [1:0] [(pt.BHT_ARRAY_DEPTH/NUM_BHT_LOOP)-1:0][NUM_BHT_LOOP-1:0] bht_bank_sel ; 835 : @@ -978,12 +978,12 @@ 874 317 : bht_bank1_rd_data_f[1:0] = '0 ; 875 317 : bht_bank0_rd_data_p1_f[1:0] = '0 ; 876 317 : for (int j=0; j< pt.BHT_ARRAY_DEPTH; j++) begin - 877 24263282 : if (bht_rd_addr_f[pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] == (pt.BHT_ADDR_HI-pt.BHT_ADDR_LO+1)'(j)) begin - 878 24263282 : bht_bank0_rd_data_f[1:0] = bht_bank_rd_data_out[0][j]; - 879 24263282 : bht_bank1_rd_data_f[1:0] = bht_bank_rd_data_out[1][j]; + 877 24134865 : if (bht_rd_addr_f[pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] == (pt.BHT_ADDR_HI-pt.BHT_ADDR_LO+1)'(j)) begin + 878 24134865 : bht_bank0_rd_data_f[1:0] = bht_bank_rd_data_out[0][j]; + 879 24134865 : bht_bank1_rd_data_f[1:0] = bht_bank_rd_data_out[1][j]; 880 : end - 881 24263282 : if (bht_rd_addr_p1_f[pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] == (pt.BHT_ADDR_HI-pt.BHT_ADDR_LO+1)'(j)) begin - 882 24263282 : bht_bank0_rd_data_p1_f[1:0] = bht_bank_rd_data_out[0][j]; + 881 24134865 : if (bht_rd_addr_p1_f[pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] == (pt.BHT_ADDR_HI-pt.BHT_ADDR_LO+1)'(j)) begin + 882 24134865 : bht_bank0_rd_data_p1_f[1:0] = bht_bank_rd_data_out[0][j]; 883 : end 884 : end 885 : end // block: BHT_rd_mux diff --git a/html/main/coverage_dashboard/all/index_el2_ifu_compress_ctl.sv.html b/html/main/coverage_dashboard/all/index_el2_ifu_compress_ctl.sv.html index 4ddc7eb8b8f..425ac578bcd 100644 --- a/html/main/coverage_dashboard/all/index_el2_ifu_compress_ctl.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_ifu_compress_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -127,14 +127,14 @@ 23 : `include "el2_param.vh" 24 : ) 25 : ( - 26 534926 : input logic [15:0] din, // 16-bit compressed instruction - 27 241353 : output logic [31:0] dout // 32-bit uncompressed instruction + 26 532030 : input logic [15:0] din, // 16-bit compressed instruction + 27 240649 : output logic [31:0] dout // 32-bit uncompressed instruction 28 : ); 29 : 30 : - 31 4281649 : logic legal; + 31 4268733 : logic legal; 32 : - 33 534926 : logic [15:0] i; + 33 532030 : logic [15:0] i; 34 : 35 943 : logic [31:0] o,l1,l2,l3; 36 : @@ -144,27 +144,27 @@ 40 : 41 0 : logic [4:0] rs2d,rdd,rdpd,rs2pd; 42 : - 43 3376592 : logic rdrd; - 44 2773012 : logic rdrs1; - 45 840552 : logic rs2rs2; - 46 252083 : logic rdprd; - 47 790473 : logic rdprs1; - 48 238106 : logic rs2prs2; - 49 4256967 : logic rs2prd; - 50 4267309 : logic uimm9_2; - 51 169732 : logic ulwimm6_2; - 52 149272 : logic ulwspimm7_2; - 53 37052 : logic rdeq2; - 54 150142 : logic rdeq1; - 55 4112641 : logic rs1eq2; - 56 378274 : logic sbroffset8_1; - 57 37052 : logic simm9_4; - 58 2621149 : logic simm5_0; - 59 280884 : logic sjaloffset11_1; - 60 50540 : logic sluimm17_12; - 61 160810 : logic uimm5_0; - 62 86246 : logic uswimm6_2; - 63 148652 : logic uswspimm7_2; + 43 3366618 : logic rdrd; + 44 2766884 : logic rdrs1; + 45 833770 : logic rs2rs2; + 46 251375 : logic rdprd; + 47 787767 : logic rdprs1; + 48 237908 : logic rs2prs2; + 49 4244095 : logic rs2prd; + 50 4254393 : logic uimm9_2; + 51 169172 : logic ulwimm6_2; + 52 148798 : logic ulwspimm7_2; + 53 36812 : logic rdeq2; + 54 149962 : logic rdeq1; + 55 4100887 : logic rs1eq2; + 56 376244 : logic sbroffset8_1; + 57 36812 : logic simm9_4; + 58 2616021 : logic simm5_0; + 59 280190 : logic sjaloffset11_1; + 60 50508 : logic sluimm17_12; + 61 159914 : logic uimm5_0; + 62 86194 : logic uswimm6_2; + 63 147792 : logic uswspimm7_2; 64 : 65 : 66 : @@ -216,16 +216,16 @@ 112 : 113 : assign l1[31:25] = o[31:25]; 114 : - 115 2403412 : logic [5:0] simm5d; - 116 831174 : logic [9:2] uimm9d; + 115 2399210 : logic [5:0] simm5d; + 116 826978 : logic [9:2] uimm9d; 117 : - 118 2403412 : logic [9:4] simm9d; - 119 2358526 : logic [6:2] ulwimm6d; - 120 2403410 : logic [7:2] ulwspimm7d; - 121 2403412 : logic [5:0] uimm5d; - 122 831174 : logic [20:1] sjald; + 118 2399210 : logic [9:4] simm9d; + 119 2354324 : logic [6:2] ulwimm6d; + 120 2399208 : logic [7:2] ulwspimm7d; + 121 2399210 : logic [5:0] uimm5d; + 122 826978 : logic [20:1] sjald; 123 : - 124 2403412 : logic [31:12] sluimmd; + 124 2399210 : logic [31:12] sluimmd; 125 : 126 : // merge in immediates + jal offset 127 : @@ -272,9 +272,9 @@ 168 : 169 : // merge in branch offset and store immediates 170 : - 171 2351294 : logic [8:1] sbr8d; - 172 2358526 : logic [6:2] uswimm6d; - 173 834816 : logic [7:2] uswspimm7d; + 171 2347092 : logic [8:1] sbr8d; + 172 2354324 : logic [6:2] uswimm6d; + 173 829748 : logic [7:2] uswspimm7d; 174 : 175 : 176 : assign sbr8d[8:1] = { i[12], i[6], i[5], i[2], i[11], i[10], i[4], i[3] }; diff --git a/html/main/coverage_dashboard/all/index_el2_ifu_ic_mem.sv.html b/html/main/coverage_dashboard/all/index_el2_ifu_ic_mem.sv.html index 5de136069b3..2802e85e0e2 100644 --- a/html/main/coverage_dashboard/all/index_el2_ifu_ic_mem.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_ifu_ic_mem.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -127,8 +127,8 @@ 23 : `include "el2_param.vh" 24 : ) 25 : ( - 26 61843746 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 27 61843746 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 26 61251245 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 27 61251245 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. 28 316 : input logic rst_l, // reset, active low 29 0 : input logic clk_override, // Override non-functional clock gating 30 8 : input logic dec_tlu_core_ecc_disable, // Disable ECC checking @@ -141,11 +141,11 @@ 37 0 : input logic ic_debug_wr_en, // Icache debug wr 38 0 : input logic ic_debug_tag_array, // Debug tag array 39 0 : input logic [pt.ICACHE_NUM_WAYS-1:0] ic_debug_way, // Debug way. Rd or Wr. - 40 1739005 : input logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. - 41 5603285 : input logic ic_sel_premux_data, // Select the pre_muxed data + 40 1731051 : input logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. + 41 5573723 : input logic ic_sel_premux_data, // Select the pre_muxed data 42 : - 43 560657 : input logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data, // Data to fill to the Icache. With ECC - 44 2137063 : output logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC + 43 558675 : input logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data, // Data to fill to the Icache. With ECC + 44 2129109 : output logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 45 231247 : output logic [70:0] ic_debug_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 46 0 : output logic [25:0] ictag_debug_rd_data,// Debug icache tag. 47 0 : input logic [70:0] ic_debug_wr_data, // Debug wr cache. @@ -192,8 +192,8 @@ 88 : `include "el2_param.vh" 89 : ) 90 : ( - 91 61843746 : input logic clk, - 92 61843746 : input logic active_clk, + 91 61251245 : input logic clk, + 92 61251245 : input logic active_clk, 93 316 : input logic rst_l, 94 0 : input logic clk_override, 95 : @@ -201,8 +201,8 @@ 97 10432 : input logic [pt.ICACHE_NUM_WAYS-1:0]ic_wr_en, 98 680092 : input logic ic_rd_en, // Read enable 99 : - 100 560657 : input logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data, // Data to fill to the Icache. With ECC - 101 2137063 : output logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC + 100 558675 : input logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data, // Data to fill to the Icache. With ECC + 101 2129109 : output logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 102 0 : input logic [70:0] ic_debug_wr_data, // Debug wr cache. 103 231247 : output logic [70:0] ic_debug_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 104 0 : output logic [pt.ICACHE_BANKS_WAY-1:0] ic_parerr, @@ -212,8 +212,8 @@ 108 0 : input logic ic_debug_wr_en, // Icache debug wr 109 0 : input logic ic_debug_tag_array, // Debug tag array 110 0 : input logic [pt.ICACHE_NUM_WAYS-1:0] ic_debug_way, // Debug way. Rd or Wr. - 111 1739005 : input logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. - 112 5603285 : input logic ic_sel_premux_data, // Select the pre_muxed data + 111 1731051 : input logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. + 112 5573723 : input logic ic_sel_premux_data, // Select the pre_muxed data 113 : 114 109586 : input logic [pt.ICACHE_NUM_WAYS-1:0]ic_rd_hit, 115 0 : input el2_ic_data_ext_in_pkt_t [pt.ICACHE_NUM_WAYS-1:0][pt.ICACHE_BANKS_WAY-1:0] ic_data_ext_in_pkt, // this is being driven by the top level for soc testing/etc @@ -221,7 +221,7 @@ 117 : 118 : ) ; 119 : - 120 459411 : logic [pt.ICACHE_TAG_INDEX_LO-1:1] ic_rw_addr_ff; + 120 457969 : logic [pt.ICACHE_TAG_INDEX_LO-1:1] ic_rw_addr_ff; 121 10432 : logic [pt.ICACHE_BANKS_WAY-1:0][pt.ICACHE_NUM_WAYS-1:0] ic_b_sb_wren; //bank x ways 122 1002822 : logic [pt.ICACHE_BANKS_WAY-1:0][pt.ICACHE_NUM_WAYS-1:0] ic_b_sb_rden; //bank x ways 123 : @@ -231,9 +231,9 @@ 127 0 : logic [pt.ICACHE_BANKS_WAY-1:0] ic_debug_sel_sb; 128 : 129 : logic [pt.ICACHE_NUM_WAYS-1:0][pt.ICACHE_BANKS_WAY-1:0][70:0] wb_dout ; // ways x bank - 130 560657 : logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_sb_wr_data, ic_bank_wr_data, wb_dout_ecc_bank; + 130 558675 : logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_sb_wr_data, ic_bank_wr_data, wb_dout_ecc_bank; 131 : logic [pt.ICACHE_NUM_WAYS-1:0] [141:0] wb_dout_way_pre; - 132 1925349 : logic [pt.ICACHE_NUM_WAYS-1:0] [63:0] wb_dout_way, wb_dout_way_with_premux; + 132 1917395 : logic [pt.ICACHE_NUM_WAYS-1:0] [63:0] wb_dout_way, wb_dout_way_with_premux; 133 217563 : logic [141:0] wb_dout_ecc; 134 : 135 462049 : logic [pt.ICACHE_BANKS_WAY-1:0] bank_check_en; @@ -245,11 +245,11 @@ 141 0 : logic [pt.ICACHE_NUM_WAYS-1:0] ic_debug_rd_way_en; // debug wr_way 142 0 : logic [pt.ICACHE_NUM_WAYS-1:0] ic_debug_rd_way_en_ff; // debug wr_way 143 0 : logic [pt.ICACHE_NUM_WAYS-1:0] ic_debug_wr_way_en; // debug wr_way - 144 84653 : logic [pt.ICACHE_INDEX_HI:1] ic_rw_addr_q; + 144 84413 : logic [pt.ICACHE_INDEX_HI:1] ic_rw_addr_q; 145 : - 146 85233 : logic [pt.ICACHE_BANKS_WAY-1:0] [pt.ICACHE_INDEX_HI : pt.ICACHE_DATA_INDEX_LO] ic_rw_addr_bank_q; + 146 84993 : logic [pt.ICACHE_BANKS_WAY-1:0] [pt.ICACHE_INDEX_HI : pt.ICACHE_DATA_INDEX_LO] ic_rw_addr_bank_q; 147 : - 148 85955 : logic [pt.ICACHE_TAG_LO-1 : pt.ICACHE_DATA_INDEX_LO] ic_rw_addr_q_inc; + 148 85725 : logic [pt.ICACHE_TAG_LO-1 : pt.ICACHE_DATA_INDEX_LO] ic_rw_addr_q_inc; 149 109586 : logic [pt.ICACHE_NUM_WAYS-1:0] ic_rd_hit_q; 150 : 151 : @@ -278,7 +278,7 @@ 174 : 175 : 176 326 : logic [pt.ICACHE_BANKS_WAY-1:0] [31 : pt.ICACHE_DATA_INDEX_LO] ic_b_rw_addr; - 177 242032 : logic [pt.ICACHE_BANKS_WAY-1:0] [31 : pt.ICACHE_DATA_INDEX_LO] ic_b_rw_addr_index_only; + 177 241792 : logic [pt.ICACHE_BANKS_WAY-1:0] [31 : pt.ICACHE_DATA_INDEX_LO] ic_b_rw_addr_index_only; 178 : 179 0 : logic [pt.ICACHE_NUM_WAYS-1:0][pt.ICACHE_BANKS_WAY-1:0] [31 : pt.ICACHE_DATA_INDEX_LO] ic_b_rw_addr_up; 180 0 : logic [pt.ICACHE_NUM_WAYS-1:0][pt.ICACHE_BANKS_WAY-1:0] [31 : pt.ICACHE_DATA_INDEX_LO] ic_b_rw_addr_index_only_up; @@ -296,7 +296,7 @@ 192 : assign ic_debug_rd_way_en[pt.ICACHE_NUM_WAYS-1:0] = {pt.ICACHE_NUM_WAYS{ic_debug_rd_en & ~ic_debug_tag_array}} & ic_debug_way[pt.ICACHE_NUM_WAYS-1:0] ; 193 : assign ic_debug_wr_way_en[pt.ICACHE_NUM_WAYS-1:0] = {pt.ICACHE_NUM_WAYS{ic_debug_wr_en & ~ic_debug_tag_array}} & ic_debug_way[pt.ICACHE_NUM_WAYS-1:0] ; 194 : - 195 876954 : logic end_of_cache_line; + 195 873246 : logic end_of_cache_line; 196 : assign end_of_cache_line = (pt.ICACHE_LN_SZ==7'h40) ? (&ic_rw_addr_q[5:4]) : ic_rw_addr_q[4]; 197 317 : always_comb begin : clkens 198 317 : ic_bank_way_clken = '0; @@ -904,8 +904,8 @@ 800 : `include "el2_param.vh" 801 : ) 802 : ( - 803 61843746 : input logic clk, - 804 61843746 : input logic active_clk, + 803 61251245 : input logic clk, + 804 61251245 : input logic active_clk, 805 316 : input logic rst_l, 806 0 : input logic clk_override, 807 8 : input logic dec_tlu_core_ecc_disable, @@ -939,13 +939,13 @@ 835 0 : logic [pt.ICACHE_NUM_WAYS-1:0] [06:0] ic_tag_corrected_ecc_unc; 836 0 : logic [pt.ICACHE_NUM_WAYS-1:0] ic_tag_single_ecc_error; 837 0 : logic [pt.ICACHE_NUM_WAYS-1:0] ic_tag_double_ecc_error; - 838 17534 : logic [6:0] ic_tag_ecc; + 838 17530 : logic [6:0] ic_tag_ecc; 839 : 840 0 : logic [pt.ICACHE_NUM_WAYS-1:0] ic_tag_way_perr ; 841 0 : logic [pt.ICACHE_NUM_WAYS-1:0] ic_debug_rd_way_en ; 842 0 : logic [pt.ICACHE_NUM_WAYS-1:0] ic_debug_rd_way_en_ff ; 843 : - 844 85233 : logic [pt.ICACHE_INDEX_HI: pt.ICACHE_TAG_INDEX_LO] ic_rw_addr_q; + 844 84993 : logic [pt.ICACHE_INDEX_HI: pt.ICACHE_TAG_INDEX_LO] ic_rw_addr_q; 845 336 : logic [31:pt.ICACHE_TAG_LO] ic_rw_addr_ff; 846 680092 : logic [pt.ICACHE_NUM_WAYS-1:0] ic_tag_rden_q; // way 847 2608 : logic [pt.ICACHE_NUM_WAYS-1:0] ic_tag_wren; // way diff --git a/html/main/coverage_dashboard/all/index_el2_ifu_iccm_mem.sv.html b/html/main/coverage_dashboard/all/index_el2_ifu_iccm_mem.sv.html index c40cc9f6ea5..c709b4feb36 100644 --- a/html/main/coverage_dashboard/all/index_el2_ifu_iccm_mem.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_ifu_iccm_mem.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -129,14 +129,14 @@ 25 : #( 26 : `include "el2_param.vh" 27 : )( - 28 61847773 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 29 61847773 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 28 61255272 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 29 61255272 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. 30 317 : input logic rst_l, // reset, active low 31 0 : input logic clk_override, // Override non-functional clock gating 32 : 33 1074 : input logic iccm_wren, // ICCM write enable - 34 134458 : input logic iccm_rden, // ICCM read enable - 35 160598 : input logic [pt.ICCM_BITS-1:1] iccm_rw_addr, // ICCM read/write address + 34 134416 : input logic iccm_rden, // ICCM read enable + 35 160358 : input logic [pt.ICCM_BITS-1:1] iccm_rw_addr, // ICCM read/write address 36 8 : input logic iccm_buf_correct_ecc, // ICCM is doing a single bit error correct cycle 37 8 : input logic iccm_correction_state, // ICCM under a correction - This is needed to guard replacements when hit 38 1 : input logic [2:0] iccm_wr_size, // ICCM write size @@ -144,25 +144,25 @@ 40 : 41 : el2_mem_if.veer_iccm iccm_mem_export, // RAM repositioned in testbench and connected by this interface 42 : - 43 136811 : output logic [63:0] iccm_rd_data, // ICCM read data - 44 161543 : output logic [77:0] iccm_rd_data_ecc, // ICCM read ecc + 43 136809 : output logic [63:0] iccm_rd_data, // ICCM read data + 44 161541 : output logic [77:0] iccm_rd_data_ecc, // ICCM read ecc 45 0 : input logic scan_mode // Scan mode control 46 : 47 : ); 48 : 49 : 50 16 : logic [pt.ICCM_NUM_BANKS-1:0] wren_bank; - 51 262168 : logic [pt.ICCM_NUM_BANKS-1:0] rden_bank; - 52 262184 : logic [pt.ICCM_NUM_BANKS-1:0] iccm_clken; - 53 160070 : logic [pt.ICCM_NUM_BANKS-1:0] [pt.ICCM_BITS-1:pt.ICCM_BANK_INDEX_LO] addr_bank; + 51 262148 : logic [pt.ICCM_NUM_BANKS-1:0] rden_bank; + 52 262164 : logic [pt.ICCM_NUM_BANKS-1:0] iccm_clken; + 53 159830 : logic [pt.ICCM_NUM_BANKS-1:0] [pt.ICCM_BITS-1:pt.ICCM_BANK_INDEX_LO] addr_bank; 54 : - 55 22063 : logic [pt.ICCM_NUM_BANKS-1:0] [38:0] iccm_bank_dout, iccm_bank_dout_fn; + 55 22061 : logic [pt.ICCM_NUM_BANKS-1:0] [38:0] iccm_bank_dout, iccm_bank_dout_fn; 56 248 : logic [pt.ICCM_NUM_BANKS-1:0] [38:0] iccm_bank_wr_data; - 57 159885 : logic [pt.ICCM_BITS-1:1] addr_bank_inc; - 58 4214855 : logic [pt.ICCM_BANK_HI : 2] iccm_rd_addr_hi_q; - 59 467893 : logic [pt.ICCM_BANK_HI : 1] iccm_rd_addr_lo_q; - 60 161543 : logic [63:0] iccm_rd_data_pre; - 61 136811 : logic [63:0] iccm_data; + 57 159657 : logic [pt.ICCM_BITS-1:1] addr_bank_inc; + 58 4204766 : logic [pt.ICCM_BANK_HI : 2] iccm_rd_addr_hi_q; + 59 466451 : logic [pt.ICCM_BANK_HI : 1] iccm_rd_addr_lo_q; + 60 161541 : logic [63:0] iccm_rd_data_pre; + 61 136809 : logic [63:0] iccm_data; 62 1 : logic [1:0] addr_incr; 63 248 : logic [pt.ICCM_NUM_BANKS-1:0] [38:0] iccm_bank_wr_data_vec; 64 : diff --git a/html/main/coverage_dashboard/all/index_el2_ifu_ifc_ctl.sv.html b/html/main/coverage_dashboard/all/index_el2_ifu_ifc_ctl.sv.html index 2b75f96b0b4..2464c1c27da 100644 --- a/html/main/coverage_dashboard/all/index_el2_ifu_ifc_ctl.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_ifu_ifc_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -130,27 +130,27 @@ 26 : `include "el2_param.vh" 27 : ) 28 : ( - 29 61843746 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 30 61843746 : input logic free_l2clk, // Clock always. Through one clock header. For flops with second header built in. + 29 61251245 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 30 61251245 : input logic free_l2clk, // Clock always. Through one clock header. For flops with second header built in. 31 : 32 316 : input logic rst_l, // reset enable, from core pin 33 0 : input logic scan_mode, // scan 34 : - 35 6786478 : input logic ic_hit_f, // Icache hit - 36 5913236 : input logic ifu_ic_mb_empty, // Miss buffer empty + 35 6749550 : input logic ic_hit_f, // Icache hit + 36 5876254 : input logic ifu_ic_mb_empty, // Miss buffer empty 37 : - 38 5976194 : input logic ifu_fb_consume1, // Aligner consumed 1 fetch buffer - 39 1719108 : input logic ifu_fb_consume2, // Aligner consumed 2 fetch buffers + 38 5947216 : input logic ifu_fb_consume1, // Aligner consumed 1 fetch buffer + 39 1717100 : input logic ifu_fb_consume2, // Aligner consumed 2 fetch buffers 40 : 41 0 : input logic dec_tlu_flush_noredir_wb, // Don't fetch on flush - 42 672565 : input logic exu_flush_final, // FLush - 43 226946 : input logic [31:1] exu_flush_path_final, // Flush path + 42 671016 : input logic exu_flush_final, // FLush + 43 226504 : input logic [31:1] exu_flush_path_final, // Flush path 44 : - 45 3127797 : input logic ifu_bp_hit_taken_f, // btb hit, select the target path - 46 518755 : input logic [31:1] ifu_bp_btb_target_f, // predicted target PC + 45 3121591 : input logic ifu_bp_hit_taken_f, // btb hit, select the target path + 46 517285 : input logic [31:1] ifu_bp_btb_target_f, // predicted target PC 47 : 48 16 : input logic ic_dma_active, // IC DMA active, stop fetching - 49 2633488 : input logic ic_write_stall, // IC is writing, stop fetching + 49 2619202 : input logic ic_write_stall, // IC is writing, stop fetching 50 26 : input logic dma_iccm_stall_any, // force a stall in the fetch pipe for DMA ICCM access 51 : 52 0 : input logic [31:0] dec_tlu_mrac_ff , // side_effect and cacheable for each region @@ -158,34 +158,34 @@ 54 310 : output logic [31:1] ifc_fetch_addr_f, // fetch addr F 55 310 : output logic [31:1] ifc_fetch_addr_bf, // fetch addr BF 56 : - 57 3715756 : output logic ifc_fetch_req_f, // fetch request valid F + 57 3697544 : output logic ifc_fetch_req_f, // fetch request valid F 58 : - 59 614530 : output logic ifu_pmu_fetch_stall, // pmu event measuring fetch stall + 59 613228 : output logic ifu_pmu_fetch_stall, // pmu event measuring fetch stall 60 : 61 335 : output logic ifc_fetch_uncacheable_bf, // The fetch request is uncacheable space. BF stage - 62 3715794 : output logic ifc_fetch_req_bf, // Fetch request. Comes with the address. BF stage + 62 3697582 : output logic ifc_fetch_req_bf, // Fetch request. Comes with the address. BF stage 63 316 : output logic ifc_fetch_req_bf_raw, // Fetch request without some qualifications. Used for clock-gating. BF stage - 64 106 : output logic ifc_iccm_access_bf, // This request is to the ICCM. Do not generate misses to the bus. + 64 102 : output logic ifc_iccm_access_bf, // This request is to the ICCM. Do not generate misses to the bus. 65 0 : output logic ifc_region_acc_fault_bf, // Access fault. in ICCM region but offset is outside defined ICCM. 66 : - 67 639182 : output logic ifc_dma_access_ok // fetch is not accessing the ICCM, DMA can proceed + 67 637611 : output logic ifc_dma_access_ok // fetch is not accessing the ICCM, DMA can proceed 68 : 69 : 70 : ); 71 : 72 310 : logic [31:1] fetch_addr_bf; 73 310 : logic [31:1] fetch_addr_next; - 74 446302 : logic [3:0] fb_write_f, fb_write_ns; + 74 442338 : logic [3:0] fb_write_f, fb_write_ns; 75 : - 76 1084440 : logic fb_full_f_ns, fb_full_f; + 76 1080476 : logic fb_full_f_ns, fb_full_f; 77 345 : logic fb_right, fb_right2, fb_left, wfm, idle; - 78 5888633 : logic sel_last_addr_bf, sel_next_addr_bf; - 79 8573536 : logic miss_f, miss_a; + 78 5856823 : logic sel_last_addr_bf, sel_next_addr_bf; + 79 8522141 : logic miss_f, miss_a; 80 26 : logic flush_fb, dma_iccm_stall_any_f; 81 632 : logic mb_empty_mod, goto_idle, leave_idle; - 82 3662496 : logic fetch_bf_en; - 83 619937 : logic line_wrap; - 84 465236 : logic fetch_addr_next_1; + 82 3644376 : logic fetch_bf_en; + 83 618180 : logic line_wrap; + 84 463881 : logic fetch_addr_next_1; 85 : 86 : // FSM assignment 87 : typedef enum logic [1:0] { IDLE = 2'b00 , diff --git a/html/main/coverage_dashboard/all/index_el2_ifu_mem_ctl.sv.html b/html/main/coverage_dashboard/all/index_el2_ifu_mem_ctl.sv.html index 834e933324f..125e51a1ea9 100644 --- a/html/main/coverage_dashboard/all/index_el2_ifu_mem_ctl.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_ifu_mem_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -131,40 +131,40 @@ 27 : `include "el2_param.vh" 28 : ) 29 : ( - 30 61843746 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 31 61843746 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. - 32 61843746 : input logic free_l2clk, // Clock always. Through one clock header. For flops with second header built in. + 30 61251245 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 31 61251245 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 32 61251245 : input logic free_l2clk, // Clock always. Through one clock header. For flops with second header built in. 33 316 : input logic rst_l, // reset, active low 34 : - 35 672565 : input logic exu_flush_final, // Flush from the pipeline., includes flush lower - 36 58638 : input logic dec_tlu_flush_lower_wb, // Flush lower from the pipeline. + 35 671016 : input logic exu_flush_final, // Flush from the pipeline., includes flush lower + 36 58568 : input logic dec_tlu_flush_lower_wb, // Flush lower from the pipeline. 37 8 : input logic dec_tlu_flush_err_wb, // Flush from the pipeline due to perr. - 38 6162256 : input logic dec_tlu_i0_commit_cmt, // committed i0 instruction + 38 6125722 : input logic dec_tlu_i0_commit_cmt, // committed i0 instruction 39 0 : input logic dec_tlu_force_halt, // force halt. 40 : 41 310 : input logic [31:1] ifc_fetch_addr_bf, // Fetch Address byte aligned always. F1 stage. 42 335 : input logic ifc_fetch_uncacheable_bf, // The fetch request is uncacheable space. F1 stage - 43 3715794 : input logic ifc_fetch_req_bf, // Fetch request. Comes with the address. F1 stage + 43 3697582 : input logic ifc_fetch_req_bf, // Fetch request. Comes with the address. F1 stage 44 316 : input logic ifc_fetch_req_bf_raw, // Fetch request without some qualifications. Used for clock-gating. F1 stage - 45 106 : input logic ifc_iccm_access_bf, // This request is to the ICCM. Do not generate misses to the bus. + 45 102 : input logic ifc_iccm_access_bf, // This request is to the ICCM. Do not generate misses to the bus. 46 0 : input logic ifc_region_acc_fault_bf, // Access fault. in ICCM region but offset is outside defined ICCM. - 47 639182 : input logic ifc_dma_access_ok, // It is OK to give dma access to the ICCM. (ICCM is not busy this cycle). + 47 637611 : input logic ifc_dma_access_ok, // It is OK to give dma access to the ICCM. (ICCM is not busy this cycle). 48 18866 : input logic dec_tlu_fence_i_wb, // Fence.i instruction is committing. Clear all Icache valids. - 49 3127797 : input logic ifu_bp_hit_taken_f, // Branch is predicted taken. Kill the fetch next cycle. + 49 3121591 : input logic ifu_bp_hit_taken_f, // Branch is predicted taken. Kill the fetch next cycle. 50 : - 51 2362013 : input logic ifu_bp_inst_mask_f, // tell ic which valids to kill because of a taken branch, right justified + 51 2359203 : input logic ifu_bp_inst_mask_f, // tell ic which valids to kill because of a taken branch, right justified 52 : - 53 5892108 : output logic ifu_miss_state_idle, // No icache misses are outstanding. - 54 5913236 : output logic ifu_ic_mb_empty, // Continue with normal fetching. This does not mean that miss is finished. + 53 5855150 : output logic ifu_miss_state_idle, // No icache misses are outstanding. + 54 5876254 : output logic ifu_ic_mb_empty, // Continue with normal fetching. This does not mean that miss is finished. 55 16 : output logic ic_dma_active , // In the middle of servicing dma request to ICCM. Do not make any new requests. - 56 2633488 : output logic ic_write_stall, // Stall fetch the cycle we are writing the cache. + 56 2619202 : output logic ic_write_stall, // Stall fetch the cycle we are writing the cache. 57 : 58 : /// PMU signals - 59 5893104 : output logic ifu_pmu_ic_miss, // IC miss event + 59 5856146 : output logic ifu_pmu_ic_miss, // IC miss event 60 744124 : output logic ifu_pmu_ic_hit, // IC hit event 61 0 : output logic ifu_pmu_bus_error, // Bus error event 62 4463637 : output logic ifu_pmu_bus_busy, // Bus busy event - 63 10356722 : output logic ifu_pmu_bus_trxn, // Bus transaction + 63 10319765 : output logic ifu_pmu_bus_trxn, // Bus transaction 64 : 65 : //-------------------------- IFU AXI signals-------------------------- 66 : // AXI Write Channels @@ -188,10 +188,10 @@ 84 0 : output logic ifu_axi_bready, 85 : 86 : // AXI Read Channels - 87 5892901 : output logic ifu_axi_arvalid, - 88 10357032 : input logic ifu_axi_arready, - 89 3589406 : output logic [pt.IFU_BUS_TAG-1:0] ifu_axi_arid, - 90 2454016 : output logic [31:0] ifu_axi_araddr, + 87 5855944 : output logic ifu_axi_arvalid, + 88 10320074 : input logic ifu_axi_arready, + 89 3563620 : output logic [pt.IFU_BUS_TAG-1:0] ifu_axi_arid, + 90 2443704 : output logic [31:0] ifu_axi_araddr, 91 320 : output logic [3:0] ifu_axi_arregion, 92 0 : output logic [7:0] ifu_axi_arlen, 93 0 : output logic [2:0] ifu_axi_arsize, @@ -201,10 +201,10 @@ 97 317 : output logic [2:0] ifu_axi_arprot, 98 0 : output logic [3:0] ifu_axi_arqos, 99 : - 100 11804512 : input logic ifu_axi_rvalid, + 100 11730597 : input logic ifu_axi_rvalid, 101 317 : output logic ifu_axi_rready, - 102 1181687 : input logic [pt.IFU_BUS_TAG-1:0] ifu_axi_rid, - 103 985574 : input logic [63:0] ifu_axi_rdata, + 102 1173244 : input logic [pt.IFU_BUS_TAG-1:0] ifu_axi_rid, + 103 981979 : input logic [63:0] ifu_axi_rdata, 104 0 : input logic [1:0] ifu_axi_rresp, 105 : 106 316 : input logic ifu_bus_clk_en, @@ -221,7 +221,7 @@ 117 0 : output logic iccm_dma_rvalid, // Data read from iccm is valid 118 0 : output logic [63:0] iccm_dma_rdata, // dma data read from iccm 119 12 : output logic [2:0] iccm_dma_rtag, // Tag of the DMA req - 120 636913 : output logic iccm_ready, // iccm ready to accept new command. + 120 635362 : output logic iccm_ready, // iccm ready to accept new command. 121 : 122 : 123 : // I$ & ITAG Ports @@ -229,8 +229,8 @@ 125 10432 : output logic [pt.ICACHE_NUM_WAYS-1:0] ic_wr_en, // Icache write enable, when filling the Icache. 126 680092 : output logic ic_rd_en, // Icache read enable. 127 : - 128 560657 : output logic [pt.ICACHE_BANKS_WAY-1:0] [70:0] ic_wr_data, // Data to fill to the Icache. With ECC - 129 2137063 : input logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC + 128 558675 : output logic [pt.ICACHE_BANKS_WAY-1:0] [70:0] ic_wr_data, // Data to fill to the Icache. With ECC + 129 2129109 : input logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 130 231247 : input logic [70:0] ic_debug_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 131 0 : input logic [25:0] ictag_debug_rd_data, // Debug icache tag. 132 0 : output logic [70:0] ic_debug_wr_data, // Debug wr cache. @@ -253,17 +253,17 @@ 149 0 : input logic ic_tag_perr, // Icache Tag parity error 150 : 151 : // ICCM ports - 152 160248 : output logic [pt.ICCM_BITS-1:1] iccm_rw_addr, // ICCM read/write address. + 152 160008 : output logic [pt.ICCM_BITS-1:1] iccm_rw_addr, // ICCM read/write address. 153 74 : output logic iccm_wren, // ICCM write enable (through the DMA) - 154 133458 : output logic iccm_rden, // ICCM read enable. + 154 133416 : output logic iccm_rden, // ICCM read enable. 155 14 : output logic [77:0] iccm_wr_data, // ICCM write data. 156 0 : output logic [2:0] iccm_wr_size, // ICCM write location within DW. 157 : - 158 136544 : input logic [63:0] iccm_rd_data, // Data read from ICCM. - 159 161276 : input logic [77:0] iccm_rd_data_ecc, // Data + ECC read from ICCM. - 160 6336890 : input logic [1:0] ifu_fetch_val, + 158 136542 : input logic [63:0] iccm_rd_data, // Data read from ICCM. + 159 161274 : input logic [77:0] iccm_rd_data_ecc, // Data + ECC read from ICCM. + 160 6303330 : input logic [1:0] ifu_fetch_val, 161 : // IFU control signals - 162 6786478 : output logic ic_hit_f, // Hit in Icache(if Icache access) or ICCM access( ICCM always has ic_hit_f) + 162 6749550 : output logic ic_hit_f, // Hit in Icache(if Icache access) or ICCM access( ICCM always has ic_hit_f) 163 170 : output logic [1:0] ic_access_fault_f, // Access fault (bus error or ICCM access in region but out of offset range). 164 170 : output logic [1:0] ic_access_fault_type_f, // Access fault types 165 8 : output logic iccm_rd_ecc_single_err, // This fetch has a single ICCM ECC error. @@ -274,10 +274,10 @@ 170 : 171 8 : output logic ifu_async_error_start, // Or of the sb iccm, and all the icache errors sent to aligner to stop 172 0 : output logic iccm_dma_sb_error, // Single Bit ECC error from a DMA access - 173 6336890 : output logic [1:0] ic_fetch_val_f, // valid bytes for fetch. To the Aligner. - 174 2167656 : output logic [31:0] ic_data_f, // Data read from Icache or ICCM. To the Aligner. - 175 1739005 : output logic [63:0] ic_premux_data, // Premuxed data to be muxed with Icache data - 176 5603285 : output logic ic_sel_premux_data, // Select premux data. + 173 6303330 : output logic [1:0] ic_fetch_val_f, // valid bytes for fetch. To the Aligner. + 174 2159702 : output logic [31:0] ic_data_f, // Data read from Icache or ICCM. To the Aligner. + 175 1731051 : output logic [63:0] ic_premux_data, // Premuxed data to be muxed with Icache data + 176 5573723 : output logic ic_sel_premux_data, // Select premux data. 177 : 178 : ///// Debug 179 0 : input el2_cache_debug_pkt_t dec_tlu_ic_diag_pkt , // Icache/tag debug read/write packet @@ -304,8 +304,8 @@ 200 : 201 : 202 : - 203 11804512 : logic bus_ifu_wr_en ; - 204 11804245 : logic bus_ifu_wr_en_ff ; + 203 11730597 : logic bus_ifu_wr_en ; + 204 11730329 : logic bus_ifu_wr_en_ff ; 205 25080 : logic bus_ifu_wr_en_ff_q ; 206 31320 : logic bus_ifu_wr_en_ff_wo_err ; 207 10432 : logic [pt.ICACHE_NUM_WAYS-1:0] bus_ic_wr_en ; @@ -333,36 +333,36 @@ 229 0 : logic scnd_miss_index_match ; 230 : 231 : - 232 636913 : logic ifc_dma_access_q_ok; - 233 106 : logic ifc_iccm_access_f ; + 232 635362 : logic ifc_dma_access_q_ok; + 233 102 : logic ifc_iccm_access_f ; 234 0 : logic ifc_region_acc_fault_f; 235 170 : logic ifc_region_acc_fault_final_f; 236 0 : logic [1:0] ifc_bus_acc_fault_f; - 237 5893133 : logic ic_act_miss_f; + 237 5856175 : logic ic_act_miss_f; 238 1226 : logic ic_miss_under_miss_f; - 239 352738 : logic ic_ignore_2nd_miss_f; + 239 351764 : logic ic_ignore_2nd_miss_f; 240 744124 : logic ic_act_hit_f; - 241 5891791 : logic miss_pending; + 241 5854833 : logic miss_pending; 242 310 : logic [31:1] imb_in , imb_ff ; 243 310 : logic [31:pt.ICACHE_BEAT_ADDR_HI+1] miss_addr_in , miss_addr ; - 244 575664 : logic miss_wrap_f ; - 245 672564 : logic flush_final_f; - 246 4265983 : logic ifc_fetch_req_f; - 247 3717086 : logic ifc_fetch_req_f_raw; - 248 6786478 : logic fetch_req_f_qual ; - 249 3717124 : logic ifc_fetch_req_qual_bf ; + 244 572663 : logic miss_wrap_f ; + 245 671014 : logic flush_final_f; + 246 4246554 : logic ifc_fetch_req_f; + 247 3698874 : logic ifc_fetch_req_f_raw; + 248 6749550 : logic fetch_req_f_qual ; + 249 3698912 : logic ifc_fetch_req_qual_bf ; 250 657304 : logic [pt.ICACHE_NUM_WAYS-1:0] replace_way_mb_any; - 251 5892583 : logic last_beat; - 252 8616294 : logic reset_beat_cnt ; - 253 2930753 : logic [pt.ICACHE_BEAT_ADDR_HI:3] ic_req_addr_bits_hi_3 ; - 254 5578509 : logic [pt.ICACHE_BEAT_ADDR_HI:3] ic_wr_addr_bits_hi_3 ; + 251 5855624 : logic last_beat; + 252 8564899 : logic reset_beat_cnt ; + 253 2916041 : logic [pt.ICACHE_BEAT_ADDR_HI:3] ic_req_addr_bits_hi_3 ; + 254 5541444 : logic [pt.ICACHE_BEAT_ADDR_HI:3] ic_wr_addr_bits_hi_3 ; 255 310 : logic [31:1] ifu_fetch_addr_int_f ; 256 326 : logic [31:1] ifu_ic_rw_int_addr ; - 257 5892881 : logic crit_wd_byp_ok_ff ; - 258 5878664 : logic ic_crit_wd_rdy_new_ff; - 259 1200642 : logic [79:0] ic_byp_data_only_pre_new; - 260 961570 : logic [79:0] ic_byp_data_only_new; - 261 5880224 : logic ic_byp_hit_f ; + 257 5855924 : logic crit_wd_byp_ok_ff ; + 258 5841775 : logic ic_crit_wd_rdy_new_ff; + 259 1196832 : logic [79:0] ic_byp_data_only_pre_new; + 260 958192 : logic [79:0] ic_byp_data_only_new; + 261 5843338 : logic ic_byp_hit_f ; 262 10325 : logic ic_valid ; 263 10324 : logic ic_valid_ff; 264 18866 : logic reset_all_tags; @@ -380,94 +380,94 @@ 276 : 277 3738 : logic reset_ic_in ; 278 3738 : logic reset_ic_ff ; - 279 455163 : logic [pt.ICACHE_BEAT_ADDR_HI:1] vaddr_f ; + 279 453721 : logic [pt.ICACHE_BEAT_ADDR_HI:1] vaddr_f ; 280 314 : logic [31:1] ifu_status_wr_addr; 281 30306 : logic sel_mb_addr ; 282 30306 : logic sel_mb_addr_ff ; 283 11496 : logic sel_mb_status_addr ; - 284 2137063 : logic [63:0] ic_final_data; + 284 2129109 : logic [63:0] ic_final_data; 285 : 286 615724 : logic [pt.ICACHE_STATUS_BITS-1:0] way_status_new_ff ; 287 749542 : logic way_status_wr_en_ff ; 288 14 : logic [pt.ICACHE_TAG_DEPTH-1:0][pt.ICACHE_STATUS_BITS-1:0] way_status_out ; 289 0 : logic [1:0] ic_debug_way_enc; 290 : - 291 1181670 : logic [pt.IFU_BUS_TAG-1:0] ifu_bus_rid_ff; + 291 1173226 : logic [pt.IFU_BUS_TAG-1:0] ifu_bus_rid_ff; 292 : - 293 4103781 : logic fetch_req_icache_f; - 294 162038 : logic fetch_req_iccm_f; - 295 162038 : logic ic_iccm_hit_f; + 293 4084394 : logic fetch_req_icache_f; + 294 161996 : logic fetch_req_iccm_f; + 295 161996 : logic ic_iccm_hit_f; 296 334 : logic fetch_uncacheable_ff; 297 749542 : logic way_status_wr_en; - 298 5441261 : logic sel_byp_data; - 299 5603670 : logic sel_ic_data; - 300 162038 : logic sel_iccm_data; + 298 5411741 : logic sel_byp_data; + 299 5574110 : logic sel_ic_data; + 300 161996 : logic sel_iccm_data; 301 0 : logic ic_rd_parity_final_err; - 302 5893104 : logic ic_act_miss_f_delayed; + 302 5856146 : logic ic_act_miss_f_delayed; 303 0 : logic bus_ifu_wr_data_error; 304 0 : logic bus_ifu_wr_data_error_ff; 305 749542 : logic way_status_wr_en_w_debug; 306 0 : logic ic_debug_tag_val_rd_out; - 307 5893133 : logic ifu_pmu_ic_miss_in; + 307 5856175 : logic ifu_pmu_ic_miss_in; 308 744124 : logic ifu_pmu_ic_hit_in; 309 0 : logic ifu_pmu_bus_error_in; - 310 10356968 : logic ifu_pmu_bus_trxn_in; + 310 10320011 : logic ifu_pmu_bus_trxn_in; 311 4463866 : logic ifu_pmu_bus_busy_in; 312 0 : logic ic_debug_ict_array_sel_in; 313 0 : logic ic_debug_ict_array_sel_ff; 314 0 : logic debug_data_clken; - 315 5891521 : logic last_data_recieved_in ; - 316 5891475 : logic last_data_recieved_ff ; + 315 5854562 : logic last_data_recieved_in ; + 316 5854517 : logic last_data_recieved_ff ; 317 : - 318 11804512 : logic ifu_bus_rvalid ; - 319 11804245 : logic ifu_bus_rvalid_ff ; - 320 11804245 : logic ifu_bus_rvalid_unq_ff ; - 321 10357032 : logic ifu_bus_arready_unq ; - 322 10356769 : logic ifu_bus_arready_unq_ff ; - 323 5892901 : logic ifu_bus_arvalid ; - 324 5892856 : logic ifu_bus_arvalid_ff ; - 325 10357032 : logic ifu_bus_arready ; - 326 10356769 : logic ifu_bus_arready_ff ; - 327 985553 : logic [63:0] ifu_bus_rdata_ff ; + 318 11730597 : logic ifu_bus_rvalid ; + 319 11730329 : logic ifu_bus_rvalid_ff ; + 320 11730329 : logic ifu_bus_rvalid_unq_ff ; + 321 10320074 : logic ifu_bus_arready_unq ; + 322 10319811 : logic ifu_bus_arready_unq_ff ; + 323 5855944 : logic ifu_bus_arvalid ; + 324 5855899 : logic ifu_bus_arvalid_ff ; + 325 10320074 : logic ifu_bus_arready ; + 326 10319811 : logic ifu_bus_arready_ff ; + 327 981958 : logic [63:0] ifu_bus_rdata_ff ; 328 0 : logic [1:0] ifu_bus_rresp_ff ; - 329 11804512 : logic ifu_bus_rsp_valid ; + 329 11730597 : logic ifu_bus_rsp_valid ; 330 317 : logic ifu_bus_rsp_ready ; - 331 1181687 : logic [pt.IFU_BUS_TAG-1:0] ifu_bus_rsp_tag; - 332 985574 : logic [63:0] ifu_bus_rsp_rdata; + 331 1173244 : logic [pt.IFU_BUS_TAG-1:0] ifu_bus_rsp_tag; + 332 981979 : logic [63:0] ifu_bus_rsp_rdata; 333 0 : logic [1:0] ifu_bus_rsp_opc; 334 : - 335 1229124 : logic [pt.ICACHE_NUM_BEATS-1:0] write_fill_data; + 335 1223582 : logic [pt.ICACHE_NUM_BEATS-1:0] write_fill_data; 336 0 : logic [pt.ICACHE_NUM_BEATS-1:0] wr_data_c1_clk; - 337 1229076 : logic [pt.ICACHE_NUM_BEATS-1:0] ic_miss_buff_data_valid_in; - 338 1229066 : logic [pt.ICACHE_NUM_BEATS-1:0] ic_miss_buff_data_valid; + 337 1223534 : logic [pt.ICACHE_NUM_BEATS-1:0] ic_miss_buff_data_valid_in; + 338 1223524 : logic [pt.ICACHE_NUM_BEATS-1:0] ic_miss_buff_data_valid; 339 0 : logic [pt.ICACHE_NUM_BEATS-1:0] ic_miss_buff_data_error_in; 340 0 : logic [pt.ICACHE_NUM_BEATS-1:0] ic_miss_buff_data_error; - 341 455163 : logic [pt.ICACHE_BEAT_ADDR_HI:1] byp_fetch_index; - 342 998318 : logic [pt.ICACHE_BEAT_ADDR_HI:2] byp_fetch_index_0; + 341 453721 : logic [pt.ICACHE_BEAT_ADDR_HI:1] byp_fetch_index; + 342 994248 : logic [pt.ICACHE_BEAT_ADDR_HI:2] byp_fetch_index_0; 343 316 : logic [pt.ICACHE_BEAT_ADDR_HI:2] byp_fetch_index_1; - 344 1039773 : logic [pt.ICACHE_BEAT_ADDR_HI:3] byp_fetch_index_inc; - 345 1039773 : logic [pt.ICACHE_BEAT_ADDR_HI:2] byp_fetch_index_inc_0; + 344 1037330 : logic [pt.ICACHE_BEAT_ADDR_HI:3] byp_fetch_index_inc; + 345 1037330 : logic [pt.ICACHE_BEAT_ADDR_HI:2] byp_fetch_index_inc_0; 346 316 : logic [pt.ICACHE_BEAT_ADDR_HI:2] byp_fetch_index_inc_1; - 347 8434985 : logic miss_buff_hit_unq_f ; + 347 8382477 : logic miss_buff_hit_unq_f ; 348 5898 : logic stream_hit_f ; 349 1450 : logic stream_miss_f ; 350 574 : logic stream_eol_f ; - 351 5878246 : logic crit_byp_hit_f ; - 352 1181670 : logic [pt.IFU_BUS_TAG-1:0] other_tag ; + 351 5841358 : logic crit_byp_hit_f ; + 352 1173226 : logic [pt.IFU_BUS_TAG-1:0] other_tag ; 353 : logic [(2*pt.ICACHE_NUM_BEATS)-1:0] [31:0] ic_miss_buff_data; - 354 1012845 : logic [63:0] ic_miss_buff_half; + 354 1009209 : logic [63:0] ic_miss_buff_half; 355 1044 : logic scnd_miss_req, scnd_miss_req_q; 356 1360 : logic scnd_miss_req_in; 357 : 358 : 359 0 : logic [pt.ICCM_BITS-1:2] iccm_ecc_corr_index_ff; - 360 158146 : logic [pt.ICCM_BITS-1:2] iccm_ecc_corr_index_in; + 360 157916 : logic [pt.ICCM_BITS-1:2] iccm_ecc_corr_index_in; 361 2 : logic [38:0] iccm_ecc_corr_data_ff; 362 8 : logic iccm_ecc_write_status ; 363 8 : logic iccm_rd_ecc_single_err_ff ; 364 8 : logic iccm_error_start; // start the error fsm 365 8 : logic perr_state_en; - 366 13540149 : logic miss_state_en; + 366 13460338 : logic miss_state_en; 367 : 368 0 : logic busclk; 369 0 : logic busclk_force; @@ -475,46 +475,46 @@ 371 316 : logic bus_ifu_bus_clk_en_ff; 372 316 : logic bus_ifu_bus_clk_en ; 373 : - 374 5893116 : logic ifc_bus_ic_req_ff_in; - 375 5892901 : logic ifu_bus_cmd_valid ; - 376 10357032 : logic ifu_bus_cmd_ready ; + 374 5856158 : logic ifc_bus_ic_req_ff_in; + 375 5855944 : logic ifu_bus_cmd_valid ; + 376 10320074 : logic ifu_bus_cmd_ready ; 377 : - 378 5911662 : logic bus_inc_data_beat_cnt ; - 379 8616294 : logic bus_reset_data_beat_cnt ; - 380 14528273 : logic bus_hold_data_beat_cnt ; + 378 5874705 : logic bus_inc_data_beat_cnt ; + 379 8564899 : logic bus_reset_data_beat_cnt ; + 380 14439921 : logic bus_hold_data_beat_cnt ; 381 : - 382 10356968 : logic bus_inc_cmd_beat_cnt ; + 382 10320011 : logic bus_inc_cmd_beat_cnt ; 383 6270 : logic bus_reset_cmd_beat_cnt_0 ; - 384 5886863 : logic bus_reset_cmd_beat_cnt_secondlast ; - 385 10357314 : logic bus_hold_cmd_beat_cnt ; + 384 5849905 : logic bus_reset_cmd_beat_cnt_secondlast ; + 385 10320357 : logic bus_hold_cmd_beat_cnt ; 386 : 387 6270 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_new_data_beat_count ; 388 6270 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_data_beat_count ; 389 : - 390 5893087 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_new_cmd_beat_count ; - 391 5892901 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_cmd_beat_count ; + 390 5856129 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_new_cmd_beat_count ; + 391 5855944 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_cmd_beat_count ; 392 : 393 : - 394 2930821 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_new_rd_addr_count; - 395 2930753 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_rd_addr_count; + 394 2916109 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_new_rd_addr_count; + 395 2916041 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_rd_addr_count; 396 : 397 : - 398 10356968 : logic bus_cmd_sent ; - 399 5892632 : logic bus_last_data_beat ; + 398 10320011 : logic bus_cmd_sent ; + 399 5855674 : logic bus_last_data_beat ; 400 : 401 : 402 10432 : logic [pt.ICACHE_NUM_WAYS-1:0] bus_wren ; 403 : 404 2608 : logic [pt.ICACHE_NUM_WAYS-1:0] bus_wren_last ; 405 2608 : logic [pt.ICACHE_NUM_WAYS-1:0] wren_reset_miss ; - 406 639182 : logic ifc_dma_access_ok_d; - 407 639180 : logic ifc_dma_access_ok_prev; + 406 637611 : logic ifc_dma_access_ok_d; + 407 637608 : logic ifc_dma_access_ok_prev; 408 : - 409 5893133 : logic bus_cmd_req_in ; - 410 5893104 : logic bus_cmd_req_hold ; + 409 5856175 : logic bus_cmd_req_in ; + 410 5856146 : logic bus_cmd_req_hold ; 411 : - 412 3002786 : logic second_half_available ; - 413 3004023 : logic write_ic_16_bytes ; + 412 2985993 : logic second_half_available ; + 413 2987230 : logic write_ic_16_bytes ; 414 : 415 170 : logic ifc_region_acc_fault_final_bf; 416 170 : logic ifc_region_acc_fault_memory_bf; @@ -523,21 +523,21 @@ 419 : 420 8 : logic iccm_correct_ecc; 421 0 : logic dma_sb_err_state, dma_sb_err_state_ff; - 422 4895844 : logic two_byte_instr; + 422 4874795 : logic two_byte_instr; 423 : 424 : typedef enum logic [2:0] {IDLE=3'b000, CRIT_BYP_OK=3'b001, HIT_U_MISS=3'b010, MISS_WAIT=3'b011,CRIT_WRD_RDY=3'b100,SCND_MISS=3'b101,STREAM=3'b110 , STALL_SCND_MISS=3'b111} miss_state_t; - 425 21202 : miss_state_t miss_state, miss_nxtstate; + 425 21178 : miss_state_t miss_state, miss_nxtstate; 426 : 427 : typedef enum logic [1:0] {ERR_STOP_IDLE=2'b00, ERR_FETCH1=2'b01 , ERR_FETCH2=2'b10 , ERR_STOP_FETCH=2'b11} err_stop_state_t; 428 8 : err_stop_state_t err_stop_state, err_stop_nxtstate; 429 24 : logic err_stop_state_en ; 430 8 : logic err_stop_fetch ; 431 : - 432 5878691 : logic ic_crit_wd_rdy; // Critical fetch is ready to be bypassed. + 432 5841802 : logic ic_crit_wd_rdy; // Critical fetch is ready to be bypassed. 433 : - 434 2821879 : logic ifu_bp_hit_taken_q_f; - 435 11804512 : logic ifu_bus_rvalid_unq; - 436 10356997 : logic bus_cmd_beat_en; + 434 2816755 : logic ifu_bp_hit_taken_q_f; + 435 11730597 : logic ifu_bus_rvalid_unq; + 436 10320040 : logic bus_cmd_beat_en; 437 : 438 : 439 : // ---- Clock gating section ----- @@ -587,21 +587,21 @@ 483 317 : miss_nxtstate = IDLE; 484 317 : miss_state_en = 1'b0; 485 317 : case (miss_state) - 486 8830950 : IDLE: begin : idle - 487 8830950 : miss_nxtstate = (ic_act_miss_f & ~exu_flush_final) ? CRIT_BYP_OK : HIT_U_MISS ; - 488 8830950 : miss_state_en = ic_act_miss_f & ~dec_tlu_force_halt ; + 486 8811824 : IDLE: begin : idle + 487 8811824 : miss_nxtstate = (ic_act_miss_f & ~exu_flush_final) ? CRIT_BYP_OK : HIT_U_MISS ; + 488 8811824 : miss_state_en = ic_act_miss_f & ~dec_tlu_force_halt ; 489 : end - 490 10143677 : CRIT_BYP_OK: begin : crit_byp_ok - 491 10143677 : miss_nxtstate = (dec_tlu_force_halt ) ? IDLE : - 492 10143677 : ( ic_byp_hit_f & (last_data_recieved_ff | (bus_ifu_wr_en_ff & last_beat)) & uncacheable_miss_ff) ? IDLE : - 493 10143677 : ( ic_byp_hit_f & ~last_data_recieved_ff & uncacheable_miss_ff) ? MISS_WAIT : - 494 10143677 : (~ic_byp_hit_f & ~exu_flush_final & (bus_ifu_wr_en_ff & last_beat) & uncacheable_miss_ff) ? CRIT_WRD_RDY : - 495 10143677 : ( (bus_ifu_wr_en_ff & last_beat) & ~uncacheable_miss_ff) ? IDLE : - 496 10143677 : ( ic_byp_hit_f & ~exu_flush_final & ~(bus_ifu_wr_en_ff & last_beat) & ~ifu_bp_hit_taken_q_f & ~uncacheable_miss_ff) ? STREAM : - 497 10143677 : ( bus_ifu_wr_en_ff & ~exu_flush_final & ~(bus_ifu_wr_en_ff & last_beat) & ~ifu_bp_hit_taken_q_f & ~uncacheable_miss_ff) ? STREAM : - 498 10143677 : (~ic_byp_hit_f & ~exu_flush_final & (bus_ifu_wr_en_ff & last_beat) & ~uncacheable_miss_ff) ? IDLE : - 499 10143677 : ( (exu_flush_final | ifu_bp_hit_taken_q_f) & ~(bus_ifu_wr_en_ff & last_beat) ) ? HIT_U_MISS : IDLE; - 500 10143677 : miss_state_en = dec_tlu_force_halt | exu_flush_final | ic_byp_hit_f | ifu_bp_hit_taken_q_f | (bus_ifu_wr_en_ff & last_beat) | (bus_ifu_wr_en_ff & ~uncacheable_miss_ff) ; + 490 10073452 : CRIT_BYP_OK: begin : crit_byp_ok + 491 10073452 : miss_nxtstate = (dec_tlu_force_halt ) ? IDLE : + 492 10073452 : ( ic_byp_hit_f & (last_data_recieved_ff | (bus_ifu_wr_en_ff & last_beat)) & uncacheable_miss_ff) ? IDLE : + 493 10073452 : ( ic_byp_hit_f & ~last_data_recieved_ff & uncacheable_miss_ff) ? MISS_WAIT : + 494 10073452 : (~ic_byp_hit_f & ~exu_flush_final & (bus_ifu_wr_en_ff & last_beat) & uncacheable_miss_ff) ? CRIT_WRD_RDY : + 495 10073452 : ( (bus_ifu_wr_en_ff & last_beat) & ~uncacheable_miss_ff) ? IDLE : + 496 10073452 : ( ic_byp_hit_f & ~exu_flush_final & ~(bus_ifu_wr_en_ff & last_beat) & ~ifu_bp_hit_taken_q_f & ~uncacheable_miss_ff) ? STREAM : + 497 10073452 : ( bus_ifu_wr_en_ff & ~exu_flush_final & ~(bus_ifu_wr_en_ff & last_beat) & ~ifu_bp_hit_taken_q_f & ~uncacheable_miss_ff) ? STREAM : + 498 10073452 : (~ic_byp_hit_f & ~exu_flush_final & (bus_ifu_wr_en_ff & last_beat) & ~uncacheable_miss_ff) ? IDLE : + 499 10073452 : ( (exu_flush_final | ifu_bp_hit_taken_q_f) & ~(bus_ifu_wr_en_ff & last_beat) ) ? HIT_U_MISS : IDLE; + 500 10073452 : miss_state_en = dec_tlu_force_halt | exu_flush_final | ic_byp_hit_f | ifu_bp_hit_taken_q_f | (bus_ifu_wr_en_ff & last_beat) | (bus_ifu_wr_en_ff & ~uncacheable_miss_ff) ; 501 : end 502 0 : CRIT_WRD_RDY: begin : crit_wrd_rdy 503 0 : miss_nxtstate = IDLE ; @@ -611,24 +611,24 @@ 507 21588 : miss_nxtstate = ((exu_flush_final | ifu_bp_hit_taken_q_f | stream_eol_f ) & ~(bus_ifu_wr_en_ff & last_beat) & ~dec_tlu_force_halt) ? HIT_U_MISS : IDLE ; 508 21588 : miss_state_en = exu_flush_final | ifu_bp_hit_taken_q_f | stream_eol_f | (bus_ifu_wr_en_ff & last_beat) | dec_tlu_force_halt ; 509 : end - 510 5059796 : MISS_WAIT: begin : miss_wait - 511 5059796 : miss_nxtstate = (exu_flush_final & ~(bus_ifu_wr_en_ff & last_beat) & ~dec_tlu_force_halt) ? HIT_U_MISS : IDLE ; - 512 5059796 : miss_state_en = exu_flush_final | (bus_ifu_wr_en_ff & last_beat) | dec_tlu_force_halt ; + 510 5020794 : MISS_WAIT: begin : miss_wait + 511 5020794 : miss_nxtstate = (exu_flush_final & ~(bus_ifu_wr_en_ff & last_beat) & ~dec_tlu_force_halt) ? HIT_U_MISS : IDLE ; + 512 5020794 : miss_state_en = exu_flush_final | (bus_ifu_wr_en_ff & last_beat) | dec_tlu_force_halt ; 513 : end - 514 181095 : HIT_U_MISS: begin : hit_u_miss - 515 181095 : miss_nxtstate = ic_miss_under_miss_f & ~(bus_ifu_wr_en_ff & last_beat) & ~dec_tlu_force_halt ? SCND_MISS : - 516 181095 : ic_ignore_2nd_miss_f & ~(bus_ifu_wr_en_ff & last_beat) & ~dec_tlu_force_halt ? STALL_SCND_MISS : IDLE ; - 517 181095 : miss_state_en = (bus_ifu_wr_en_ff & last_beat) | ic_miss_under_miss_f | ic_ignore_2nd_miss_f | dec_tlu_force_halt; + 514 181039 : HIT_U_MISS: begin : hit_u_miss + 515 181039 : miss_nxtstate = ic_miss_under_miss_f & ~(bus_ifu_wr_en_ff & last_beat) & ~dec_tlu_force_halt ? SCND_MISS : + 516 181039 : ic_ignore_2nd_miss_f & ~(bus_ifu_wr_en_ff & last_beat) & ~dec_tlu_force_halt ? STALL_SCND_MISS : IDLE ; + 517 181039 : miss_state_en = (bus_ifu_wr_en_ff & last_beat) | ic_miss_under_miss_f | ic_ignore_2nd_miss_f | dec_tlu_force_halt; 518 : end 519 2907 : SCND_MISS: begin : scnd_miss 520 2907 : miss_nxtstate = dec_tlu_force_halt ? IDLE : 521 2907 : exu_flush_final ? ((bus_ifu_wr_en_ff & last_beat) ? IDLE : HIT_U_MISS) : CRIT_BYP_OK; 522 2907 : miss_state_en = (bus_ifu_wr_en_ff & last_beat) | exu_flush_final | dec_tlu_force_halt; 523 : end - 524 23269 : STALL_SCND_MISS: begin : stall_scnd_miss - 525 23269 : miss_nxtstate = dec_tlu_force_halt ? IDLE : - 526 23269 : exu_flush_final ? ((bus_ifu_wr_en_ff & last_beat) ? IDLE : HIT_U_MISS) : IDLE; - 527 23269 : miss_state_en = (bus_ifu_wr_en_ff & last_beat) | exu_flush_final | dec_tlu_force_halt; + 524 23261 : STALL_SCND_MISS: begin : stall_scnd_miss + 525 23261 : miss_nxtstate = dec_tlu_force_halt ? IDLE : + 526 23261 : exu_flush_final ? ((bus_ifu_wr_en_ff & last_beat) ? IDLE : HIT_U_MISS) : IDLE; + 527 23261 : miss_state_en = (bus_ifu_wr_en_ff & last_beat) | exu_flush_final | dec_tlu_force_halt; 528 : end 529 0 : default: begin : def_case 530 0 : miss_nxtstate = IDLE; @@ -638,7 +638,7 @@ 534 : end 535 : rvdffs #(($bits(miss_state_t))) miss_state_ff (.clk(active_clk), .din(miss_nxtstate), .dout({miss_state}), .en(miss_state_en), .*); 536 : - 537 5891837 : logic sel_hold_imb ; + 537 5854878 : logic sel_hold_imb ; 538 : 539 : assign miss_pending = (miss_state != IDLE) ; 540 : assign crit_wd_byp_ok_ff = (miss_state == CRIT_BYP_OK) | ((miss_state == CRIT_WRD_RDY) & ~flush_final_f); @@ -902,7 +902,7 @@ 798 : ///////////////////////////////////////////////////////////////////////////////////// 799 : // Create full buffer... // 800 : ///////////////////////////////////////////////////////////////////////////////////// - 801 985574 : logic [63:0] ic_miss_buff_data_in; + 801 981979 : logic [63:0] ic_miss_buff_data_in; 802 : assign ic_miss_buff_data_in[63:0] = ifu_bus_rsp_rdata[63:0]; 803 : 804 : for (genvar i=0; i<pt.ICACHE_NUM_BEATS; i++) begin : wr_flop @@ -939,10 +939,10 @@ 835 : ///////////////////////////////////////////////////////////////////////////////////// 836 : // New bypass ready // 837 : ///////////////////////////////////////////////////////////////////////////////////// - 838 419849 : logic [pt.ICACHE_BEAT_ADDR_HI:1] bypass_index; - 839 969140 : logic [pt.ICACHE_BEAT_ADDR_HI:3] bypass_index_5_3_inc; - 840 5892841 : logic bypass_data_ready_in; - 841 5878757 : logic ic_crit_wd_rdy_new_in; + 838 418439 : logic [pt.ICACHE_BEAT_ADDR_HI:1] bypass_index; + 839 966937 : logic [pt.ICACHE_BEAT_ADDR_HI:3] bypass_index_5_3_inc; + 840 5855878 : logic bypass_data_ready_in; + 841 5841869 : logic ic_crit_wd_rdy_new_in; 842 : 843 : assign bypass_index[pt.ICACHE_BEAT_ADDR_HI:1] = imb_ff[pt.ICACHE_BEAT_ADDR_HI:1] ; 844 : assign bypass_index_5_3_inc[pt.ICACHE_BEAT_ADDR_HI:3] = bypass_index[pt.ICACHE_BEAT_ADDR_HI:3] + 1 ; @@ -1046,10 +1046,10 @@ 942 317 : perr_sb_write_status = 1'b0; 943 : 944 317 : case (perr_state) - 945 24263274 : ERR_IDLE: begin : err_idle - 946 24263274 : perr_nxtstate = iccm_dma_sb_error ? DMA_SB_ERR : (ic_error_start & ~exu_flush_final) ? IC_WFF : ECC_WFF; - 947 24263274 : perr_state_en = (((iccm_error_start | ic_error_start) & ~dec_tlu_flush_lower_wb) | iccm_dma_sb_error) & ~dec_tlu_force_halt; - 948 24263274 : perr_sb_write_status = perr_state_en; + 945 24134857 : ERR_IDLE: begin : err_idle + 946 24134857 : perr_nxtstate = iccm_dma_sb_error ? DMA_SB_ERR : (ic_error_start & ~exu_flush_final) ? IC_WFF : ECC_WFF; + 947 24134857 : perr_state_en = (((iccm_error_start | ic_error_start) & ~dec_tlu_flush_lower_wb) | iccm_dma_sb_error) & ~dec_tlu_force_halt; + 948 24134857 : perr_sb_write_status = perr_state_en; 949 : end 950 0 : IC_WFF: begin : icache_wff // All the I$ data and/or Tag errors ( parity/ECC ) will come to this state 951 0 : perr_nxtstate = ERR_IDLE; @@ -1091,9 +1091,9 @@ 987 317 : iccm_correction_state = 1'b0; 988 : 989 317 : case (err_stop_state) - 990 24263258 : ERR_STOP_IDLE: begin : err_stop_idle - 991 24263258 : err_stop_nxtstate = ERR_FETCH1; - 992 24263258 : err_stop_state_en = dec_tlu_flush_err_wb & (perr_state == ECC_WFF) & ~dec_tlu_force_halt; + 990 24134841 : ERR_STOP_IDLE: begin : err_stop_idle + 991 24134841 : err_stop_nxtstate = ERR_FETCH1; + 992 24134841 : err_stop_state_en = dec_tlu_flush_err_wb & (perr_state == ECC_WFF) & ~dec_tlu_force_halt; 993 : end 994 12 : ERR_FETCH1: begin : err_fetch1 // All the I$ data and/or Tag errors ( parity/ECC ) will come to this state 995 12 : err_stop_nxtstate = (dec_tlu_flush_lower_wb | dec_tlu_i0_commit_cmt | dec_tlu_force_halt) ? ERR_STOP_IDLE : ((ifu_fetch_val[1:0] == 2'b11) | (ifu_fetch_val[0] & two_byte_instr)) ? ERR_STOP_FETCH : ifu_fetch_val[0] ? ERR_FETCH2 : ERR_FETCH1; @@ -1469,7 +1469,7 @@ 1365 : ((miss_state == CRIT_BYP_OK) & miss_state_en & (miss_nxtstate == MISS_WAIT)) )) | 1366 : ( ifc_fetch_req_bf & exu_flush_final & ~ifc_fetch_uncacheable_bf & ~ifc_iccm_access_bf ) ; 1367 : - 1368 6690060 : logic ic_real_rd_wp_unused; + 1368 6652456 : logic ic_real_rd_wp_unused; 1369 : assign ic_real_rd_wp_unused = (ifc_fetch_req_bf & ~ifc_iccm_access_bf & ~ifc_region_acc_fault_final_bf & ~dec_tlu_fence_i_wb & ~stream_miss_f & ~ic_act_miss_f & 1370 : ~(((miss_state == STREAM) & ~miss_state_en) | 1371 : ((miss_state == CRIT_BYP_OK) & ~miss_state_en & ~(miss_nxtstate == MISS_WAIT)) | @@ -1547,8 +1547,8 @@ 1443 317 : always_comb begin : way_status_out_mux 1444 317 : way_status[pt.ICACHE_STATUS_BITS-1:0] = '0 ; 1445 317 : for (int j=0; j< pt.ICACHE_TAG_DEPTH; j++) begin : status_mux_loop - 1446 24263282 : if (ifu_ic_rw_int_addr_ff[pt.ICACHE_INDEX_HI:pt.ICACHE_TAG_INDEX_LO] == (pt.ICACHE_TAG_LO-pt.ICACHE_TAG_INDEX_LO)'(j)) begin : mux_out - 1447 24263282 : way_status[pt.ICACHE_STATUS_BITS-1:0] = way_status_out[j]; + 1446 24134865 : if (ifu_ic_rw_int_addr_ff[pt.ICACHE_INDEX_HI:pt.ICACHE_TAG_INDEX_LO] == (pt.ICACHE_TAG_LO-pt.ICACHE_TAG_INDEX_LO)'(j)) begin : mux_out + 1447 24134865 : way_status[pt.ICACHE_STATUS_BITS-1:0] = way_status_out[j]; 1448 : end 1449 : end 1450 : end @@ -1610,9 +1610,9 @@ 1506 317 : always_comb begin : tag_valid_out_mux 1507 317 : ic_tag_valid_unq[pt.ICACHE_NUM_WAYS-1:0] = '0; 1508 317 : for (int j=0; j< pt.ICACHE_TAG_DEPTH; j++) begin : tag_valid_loop - 1509 24263282 : if (ifu_ic_rw_int_addr_ff[pt.ICACHE_INDEX_HI:pt.ICACHE_TAG_INDEX_LO] == (pt.ICACHE_TAG_LO-pt.ICACHE_TAG_INDEX_LO)'(j)) begin : valid_out - 1510 24263282 : for ( int k=0; k<pt.ICACHE_NUM_WAYS; k++) begin - 1511 48526564 : ic_tag_valid_unq[k] |= ic_tag_valid_out[k][j]; + 1509 24134865 : if (ifu_ic_rw_int_addr_ff[pt.ICACHE_INDEX_HI:pt.ICACHE_TAG_INDEX_LO] == (pt.ICACHE_TAG_LO-pt.ICACHE_TAG_INDEX_LO)'(j)) begin : valid_out + 1510 24134865 : for ( int k=0; k<pt.ICACHE_NUM_WAYS; k++) begin + 1511 48269730 : ic_tag_valid_unq[k] |= ic_tag_valid_out[k][j]; 1512 : end 1513 : end 1514 : end diff --git a/html/main/coverage_dashboard/all/index_el2_lib.sv.html b/html/main/coverage_dashboard/all/index_el2_lib.sv.html index 45b6743b6b4..8d4acc17040 100644 --- a/html/main/coverage_dashboard/all/index_el2_lib.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_lib.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -136,8 +136,8 @@ 32 : #( 33 : `include "el2_param.vh" 34 : )( - 35 3393638 : input logic [pt.BTB_INDEX3_HI:pt.BTB_INDEX1_LO] pc, - 36 3515658 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] hash + 35 3388026 : input logic [pt.BTB_INDEX3_HI:pt.BTB_INDEX1_LO] pc, + 36 3508524 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] hash 37 : ); 38 : 39 : @@ -158,9 +158,9 @@ 54 : #( 55 : `include "el2_param.vh" 56 : )( - 57 983532 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] hashin, - 58 1448724 : input logic [pt.BHT_GHR_SIZE-1:0] ghr, - 59 1943755 : output logic [pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] hash + 57 982040 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] hashin, + 58 1439928 : input logic [pt.BHT_GHR_SIZE-1:0] ghr, + 59 1934685 : output logic [pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] hash 60 : ); 61 : 62 : // The hash function is too complex to write in verilog for all cases. diff --git a/html/main/coverage_dashboard/all/index_el2_lsu.sv.html b/html/main/coverage_dashboard/all/index_el2_lsu.sv.html index e0da9c6dd16..ce7adab405a 100644 --- a/html/main/coverage_dashboard/all/index_el2_lsu.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_lsu.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -137,7 +137,7 @@ 33 : ( 34 : 35 0 : input logic clk_override, // Override non-functional clock gating - 36 58638 : input logic dec_tlu_flush_lower_r, // I0/I1 writeback flush. This is used to flush the old packets only + 36 58568 : input logic dec_tlu_flush_lower_r, // I0/I1 writeback flush. This is used to flush the old packets only 37 29654 : input logic dec_tlu_i0_kill_writeb_r, // I0 is flushed, don't writeback any results to arch state 38 0 : input logic dec_tlu_force_halt, // This will be high till TLU goes to debug halt 39 : @@ -147,21 +147,21 @@ 43 301 : input logic dec_tlu_sideeffect_posted_disable, // disable the posted sideeffect load store to the bus 44 8 : input logic dec_tlu_core_ecc_disable, // disable the generation of the ecc 45 : - 46 413833 : input logic [31:0] exu_lsu_rs1_d, // address rs operand - 47 81386 : input logic [31:0] exu_lsu_rs2_d, // store data - 48 270518 : input logic [11:0] dec_lsu_offset_d, // address offset operand + 46 411891 : input logic [31:0] exu_lsu_rs1_d, // address rs operand + 47 81344 : input logic [31:0] exu_lsu_rs2_d, // store data + 48 269944 : input logic [11:0] dec_lsu_offset_d, // address offset operand 49 : - 50 623945 : input el2_lsu_pkt_t lsu_p, // lsu control packet - 51 2276073 : input logic dec_lsu_valid_raw_d, // Raw valid for address computation + 50 621353 : input el2_lsu_pkt_t lsu_p, // lsu control packet + 51 2264531 : input logic dec_lsu_valid_raw_d, // Raw valid for address computation 52 0 : input logic [31:0] dec_tlu_mrac_ff, // CSR for memory region control 53 : 54 38395 : output logic [31:0] lsu_result_m, // lsu load data 55 29134 : output logic [31:0] lsu_result_corr_r, // This is the ECC corrected data going to RF - 56 49050 : output logic lsu_load_stall_any, // This is for blocking loads in the decode - 57 59374 : output logic lsu_store_stall_any, // This is for blocking stores in the decode + 56 48988 : output logic lsu_load_stall_any, // This is for blocking loads in the decode + 57 59312 : output logic lsu_store_stall_any, // This is for blocking stores in the decode 58 4 : output logic lsu_fastint_stall_any, // Stall the fastint in decode-1 stage - 59 1346967 : output logic lsu_idle_any, // lsu buffers are empty and no instruction in the pipeline. Doesn't include DMA - 60 1346650 : output logic lsu_active, // Used to turn off top level clk + 59 1337985 : output logic lsu_idle_any, // lsu buffers are empty and no instruction in the pipeline. Doesn't include DMA + 60 1337668 : output logic lsu_active, // Used to turn off top level clk 61 : 62 24694 : output logic [31:1] lsu_fir_addr, // fast interrupt address 63 0 : output logic [1:0] lsu_fir_error, // Error during fast interrupt lookup @@ -170,25 +170,25 @@ 66 4 : output el2_lsu_error_pkt_t lsu_error_pkt_r, // lsu exception packet 67 0 : output logic lsu_imprecise_error_load_any, // bus load imprecise error 68 0 : output logic lsu_imprecise_error_store_any, // bus store imprecise error - 69 401 : output logic [31:0] lsu_imprecise_error_addr_any, // bus store imprecise error address + 69 400 : output logic [31:0] lsu_imprecise_error_addr_any, // bus store imprecise error address 70 : 71 : // Non-blocking loads - 72 881640 : output logic lsu_nonblock_load_valid_m, // there is an external load -> put in the cam - 73 504869 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_tag_m, // the tag of the external non block load + 72 875716 : output logic lsu_nonblock_load_valid_m, // there is an external load -> put in the cam + 73 502857 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_tag_m, // the tag of the external non block load 74 0 : output logic lsu_nonblock_load_inv_r, // invalidate signal for the cam entry for non block loads - 75 504866 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_inv_tag_r, // tag of the enrty which needs to be invalidated - 76 920896 : output logic lsu_nonblock_load_data_valid, // the non block is valid - sending information back to the cam + 75 502854 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_inv_tag_r, // tag of the enrty which needs to be invalidated + 76 914818 : output logic lsu_nonblock_load_data_valid, // the non block is valid - sending information back to the cam 77 0 : output logic lsu_nonblock_load_data_error, // non block load has an error - 78 36662 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_data_tag, // the tag of the non block load sending the data/error - 79 71560 : output logic [31:0] lsu_nonblock_load_data, // Data of the non block load + 78 36598 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_data_tag, // the tag of the non block load sending the data/error + 79 71538 : output logic [31:0] lsu_nonblock_load_data, // Data of the non block load 80 : - 81 891764 : output logic lsu_pmu_load_external_m, // PMU : Bus loads - 82 806110 : output logic lsu_pmu_store_external_m, // PMU : Bus loads - 83 48786 : output logic lsu_pmu_misaligned_m, // PMU : misaligned - 84 1667379 : output logic lsu_pmu_bus_trxn, // PMU : bus transaction - 85 36420 : output logic lsu_pmu_bus_misaligned, // PMU : misaligned access going to the bus + 81 885840 : output logic lsu_pmu_load_external_m, // PMU : Bus loads + 82 800418 : output logic lsu_pmu_store_external_m, // PMU : Bus loads + 83 48780 : output logic lsu_pmu_misaligned_m, // PMU : misaligned + 84 1655267 : output logic lsu_pmu_bus_trxn, // PMU : bus transaction + 85 36414 : output logic lsu_pmu_bus_misaligned, // PMU : misaligned access going to the bus 86 0 : output logic lsu_pmu_bus_error, // PMU : bus sending error back - 87 67818 : output logic lsu_pmu_bus_busy, // PMU : bus is not ready + 87 67790 : output logic lsu_pmu_bus_busy, // PMU : bus is not ready 88 : 89 : // Trigger signals 90 0 : input el2_trigger_pkt_t [3:0] trigger_pkt_any, // Trigger info from the decode @@ -199,8 +199,8 @@ 95 561000 : output logic dccm_rden, // DCCM read enable 96 18811 : output logic [pt.DCCM_BITS-1:0] dccm_wr_addr_lo, // DCCM write address low bank 97 18811 : output logic [pt.DCCM_BITS-1:0] dccm_wr_addr_hi, // DCCM write address hi bank - 98 471780 : output logic [pt.DCCM_BITS-1:0] dccm_rd_addr_lo, // DCCM read address low bank - 99 678187 : output logic [pt.DCCM_BITS-1:0] dccm_rd_addr_hi, // DCCM read address hi bank (hi and low same if aligned read) + 98 470114 : output logic [pt.DCCM_BITS-1:0] dccm_rd_addr_lo, // DCCM read address low bank + 99 676449 : output logic [pt.DCCM_BITS-1:0] dccm_rd_addr_hi, // DCCM read address hi bank (hi and low same if aligned read) 100 5374 : output logic [pt.DCCM_FDATA_WIDTH-1:0] dccm_wr_data_lo, // DCCM write data for lo bank 101 5374 : output logic [pt.DCCM_FDATA_WIDTH-1:0] dccm_wr_data_hi, // DCCM write data for hi bank 102 : @@ -211,16 +211,16 @@ 107 0 : output logic picm_wren, // PIC memory write enable 108 0 : output logic picm_rden, // PIC memory read enable 109 0 : output logic picm_mken, // Need to read the mask for stores to determine which bits to write/forward - 110 430 : output logic [31:0] picm_rdaddr, // address for pic read access - 111 430 : output logic [31:0] picm_wraddr, // address for pic write access - 112 92644 : output logic [31:0] picm_wr_data, // PIC memory write data + 110 429 : output logic [31:0] picm_rdaddr, // address for pic read access + 111 429 : output logic [31:0] picm_wraddr, // address for pic write access + 112 92616 : output logic [31:0] picm_wr_data, // PIC memory write data 113 0 : input logic [31:0] picm_rd_data, // PIC memory read/mask data 114 : 115 : // AXI Write Channels - 116 855209 : output logic lsu_axi_awvalid, - 117 1107817 : input logic lsu_axi_awready, + 116 849023 : output logic lsu_axi_awvalid, + 117 1095685 : input logic lsu_axi_awready, 118 0 : output logic [pt.LSU_BUS_TAG-1:0] lsu_axi_awid, - 119 401 : output logic [31:0] lsu_axi_awaddr, + 119 400 : output logic [31:0] lsu_axi_awaddr, 120 314 : output logic [3:0] lsu_axi_awregion, 121 0 : output logic [7:0] lsu_axi_awlen, 122 0 : output logic [2:0] lsu_axi_awsize, @@ -230,22 +230,22 @@ 126 0 : output logic [2:0] lsu_axi_awprot, 127 0 : output logic [3:0] lsu_axi_awqos, 128 : - 129 855209 : output logic lsu_axi_wvalid, - 130 1107817 : input logic lsu_axi_wready, - 131 31411 : output logic [63:0] lsu_axi_wdata, - 132 224989 : output logic [7:0] lsu_axi_wstrb, + 129 849023 : output logic lsu_axi_wvalid, + 130 1095685 : input logic lsu_axi_wready, + 131 31367 : output logic [63:0] lsu_axi_wdata, + 132 224179 : output logic [7:0] lsu_axi_wstrb, 133 317 : output logic lsu_axi_wlast, 134 : - 135 868520 : input logic lsu_axi_bvalid, + 135 862312 : input logic lsu_axi_bvalid, 136 317 : output logic lsu_axi_bready, 137 0 : input logic [1:0] lsu_axi_bresp, 138 0 : input logic [pt.LSU_BUS_TAG-1:0] lsu_axi_bid, 139 : 140 : // AXI Read Channels - 141 868958 : output logic lsu_axi_arvalid, - 142 1115481 : input logic lsu_axi_arready, + 141 863034 : output logic lsu_axi_arvalid, + 142 1103367 : input logic lsu_axi_arready, 143 0 : output logic [pt.LSU_BUS_TAG-1:0] lsu_axi_arid, - 144 401 : output logic [31:0] lsu_axi_araddr, + 144 400 : output logic [31:0] lsu_axi_araddr, 145 314 : output logic [3:0] lsu_axi_arregion, 146 0 : output logic [7:0] lsu_axi_arlen, 147 0 : output logic [2:0] lsu_axi_arsize, @@ -255,10 +255,10 @@ 151 0 : output logic [2:0] lsu_axi_arprot, 152 0 : output logic [3:0] lsu_axi_arqos, 153 : - 154 929722 : input logic lsu_axi_rvalid, + 154 923642 : input logic lsu_axi_rvalid, 155 317 : output logic lsu_axi_rready, 156 0 : input logic [pt.LSU_BUS_TAG-1:0] lsu_axi_rid, - 157 28838 : input logic [63:0] lsu_axi_rdata, + 157 28760 : input logic [63:0] lsu_axi_rdata, 158 0 : input logic [1:0] lsu_axi_rresp, 159 672602 : input logic lsu_axi_rlast, 160 : @@ -276,32 +276,32 @@ 172 4 : output logic dccm_dma_ecc_error, // DMA load had ecc error 173 12 : output logic [2:0] dccm_dma_rtag, // DMA request tag 174 39560 : output logic [63:0] dccm_dma_rdata, // lsu data for DMA dccm read - 175 2225276 : output logic dccm_ready, // lsu ready for DMA access + 175 2213734 : output logic dccm_ready, // lsu ready for DMA access 176 : 177 : // DCCM ECC status 178 4 : output logic lsu_dccm_rd_ecc_single_err, 179 4 : output logic lsu_dccm_rd_ecc_double_err, 180 : 181 0 : input logic scan_mode, // scan mode - 182 61843746 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 183 61843746 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 182 61251245 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 183 61251245 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. 184 316 : input logic rst_l, // reset, active low 185 : - 186 594111 : output logic [31:0] lsu_pmp_addr_start, - 187 594149 : output logic [31:0] lsu_pmp_addr_end, - 188 167732 : input logic lsu_pmp_error_start, - 189 167732 : input logic lsu_pmp_error_end, - 190 1065445 : output logic lsu_pmp_we, - 191 1424320 : output logic lsu_pmp_re + 186 592373 : output logic [31:0] lsu_pmp_addr_start, + 187 592411 : output logic [31:0] lsu_pmp_addr_end, + 188 162421 : input logic lsu_pmp_error_start, + 189 162421 : input logic lsu_pmp_error_end, + 190 1059753 : output logic lsu_pmp_we, + 191 1418396 : output logic lsu_pmp_re 192 : 193 : ); 194 : 195 561000 : logic lsu_dccm_rden_m; 196 561000 : logic lsu_dccm_rden_r; - 197 81386 : logic [31:0] store_data_m; - 198 56474 : logic [31:0] store_data_r; - 199 91102 : logic [31:0] store_data_hi_r, store_data_lo_r; - 200 62394 : logic [31:0] store_datafn_hi_r, store_datafn_lo_r; + 197 81344 : logic [31:0] store_data_m; + 198 56432 : logic [31:0] store_data_r; + 199 91074 : logic [31:0] store_data_hi_r, store_data_lo_r; + 200 62366 : logic [31:0] store_datafn_hi_r, store_datafn_lo_r; 201 47172 : logic [31:0] sec_data_lo_m, sec_data_hi_m; 202 2 : logic [31:0] sec_data_lo_r, sec_data_hi_r; 203 : @@ -324,12 +324,12 @@ 220 : 221 0 : logic [31:0] picm_mask_data_m; 222 : - 223 594109 : logic [31:0] lsu_addr_d, lsu_addr_m, lsu_addr_r; - 224 594509 : logic [31:0] end_addr_d, end_addr_m, end_addr_r; + 223 592371 : logic [31:0] lsu_addr_d, lsu_addr_m, lsu_addr_r; + 224 592771 : logic [31:0] end_addr_d, end_addr_m, end_addr_r; 225 : assign lsu_pmp_addr_start = lsu_addr_d; 226 : assign lsu_pmp_addr_end = end_addr_d; 227 : - 228 478181 : el2_lsu_pkt_t lsu_pkt_d, lsu_pkt_m, lsu_pkt_r; + 228 475589 : el2_lsu_pkt_t lsu_pkt_d, lsu_pkt_m, lsu_pkt_r; 229 0 : logic lsu_i0_valid_d, lsu_i0_valid_m, lsu_i0_valid_r; 230 : assign lsu_pmp_we = lsu_pkt_d.store & lsu_pkt_d.valid; 231 : assign lsu_pmp_re = lsu_pkt_d.load & lsu_pkt_d.valid; @@ -338,12 +338,12 @@ 234 258930 : logic store_stbuf_reqvld_r; 235 258930 : logic ldst_stbuf_reqvld_r; 236 : - 237 2279496 : logic lsu_commit_r; + 237 2267916 : logic lsu_commit_r; 238 60 : logic lsu_exc_m; 239 : 240 614420 : logic addr_in_dccm_d, addr_in_dccm_m, addr_in_dccm_r; 241 0 : logic addr_in_pic_d, addr_in_pic_m, addr_in_pic_r; - 242 36568 : logic ldst_dual_d, ldst_dual_m, ldst_dual_r; + 242 36562 : logic ldst_dual_d, ldst_dual_m, ldst_dual_r; 243 614746 : logic addr_external_m; 244 : 245 258446 : logic stbuf_reqvld_any; @@ -365,11 +365,11 @@ 261 10324 : logic lsu_stbuf_full_any; 262 : 263 : // Bus signals - 264 1659482 : logic lsu_busreq_r; - 265 808157 : logic lsu_bus_buffer_pend_any; - 266 1187701 : logic lsu_bus_buffer_empty_any; - 267 49046 : logic lsu_bus_buffer_full_any; - 268 1669696 : logic lsu_busreq_m; + 264 1647902 : logic lsu_busreq_r; + 265 802237 : logic lsu_bus_buffer_pend_any; + 266 1177737 : logic lsu_bus_buffer_empty_any; + 267 48984 : logic lsu_bus_buffer_full_any; + 268 1658116 : logic lsu_busreq_m; 269 200 : logic [31:0] bus_read_data_m; 270 : 271 29654 : logic flush_m_up, flush_r; @@ -381,16 +381,16 @@ 277 0 : logic [pt.DCCM_ECC_WIDTH-1:0] dma_dccm_wdata_ecc_lo, dma_dccm_wdata_ecc_hi; 278 : 279 : // Clocks - 280 1088274 : logic lsu_busm_clken; - 281 2035983 : logic lsu_bus_obuf_c1_clken; - 282 61843746 : logic lsu_c1_m_clk, lsu_c1_r_clk; - 283 61843746 : logic lsu_c2_m_clk, lsu_c2_r_clk; - 284 61843746 : logic lsu_store_c1_m_clk, lsu_store_c1_r_clk; + 280 1078918 : logic lsu_busm_clken; + 281 2018773 : logic lsu_bus_obuf_c1_clken; + 282 61251245 : logic lsu_c1_m_clk, lsu_c1_r_clk; + 283 61251245 : logic lsu_c2_m_clk, lsu_c2_r_clk; + 284 61251245 : logic lsu_store_c1_m_clk, lsu_store_c1_r_clk; 285 : - 286 61843746 : logic lsu_stbuf_c1_clk; - 287 61843746 : logic lsu_bus_ibuf_c1_clk, lsu_bus_obuf_c1_clk, lsu_bus_buf_c1_clk; + 286 61251245 : logic lsu_stbuf_c1_clk; + 287 61251245 : logic lsu_bus_ibuf_c1_clk, lsu_bus_obuf_c1_clk, lsu_bus_buf_c1_clk; 288 0 : logic lsu_busm_clk; - 289 61843746 : logic lsu_free_c2_clk; + 289 61251245 : logic lsu_free_c2_clk; 290 : 291 18834 : logic lsu_raw_fwd_lo_m, lsu_raw_fwd_hi_m; 292 18768 : logic lsu_raw_fwd_lo_r, lsu_raw_fwd_hi_r; diff --git a/html/main/coverage_dashboard/all/index_el2_lsu_addrcheck.sv.html b/html/main/coverage_dashboard/all/index_el2_lsu_addrcheck.sv.html index 216d7dda205..1434232d975 100644 --- a/html/main/coverage_dashboard/all/index_el2_lsu_addrcheck.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_lsu_addrcheck.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -131,16 +131,16 @@ 27 : #( 28 : `include "el2_param.vh" 29 : )( - 30 61843746 : input logic lsu_c2_m_clk, // clock + 30 61251245 : input logic lsu_c2_m_clk, // clock 31 316 : input logic rst_l, // reset 32 : - 33 594111 : input logic [31:0] start_addr_d, // start address for lsu - 34 594149 : input logic [31:0] end_addr_d, // end address for lsu - 35 478232 : input el2_lsu_pkt_t lsu_pkt_d, // packet in d + 33 592373 : input logic [31:0] start_addr_d, // start address for lsu + 34 592411 : input logic [31:0] end_addr_d, // end address for lsu + 35 475640 : input el2_lsu_pkt_t lsu_pkt_d, // packet in d 36 0 : input logic [31:0] dec_tlu_mrac_ff, // CSR read - 37 1440947 : input logic [3:0] rs1_region_d, // address rs operand [31:28] + 37 1437077 : input logic [3:0] rs1_region_d, // address rs operand [31:28] 38 : - 39 476238 : input logic [31:0] rs1_d, // address rs operand + 39 474296 : input logic [31:0] rs1_d, // address rs operand 40 : 41 29240 : output logic is_sideeffects_m, // is sideffects space 42 614420 : output logic addr_in_dccm_d, // address in dccm @@ -154,20 +154,20 @@ 50 0 : output logic fir_dccm_access_error_d, // Fast interrupt dccm access error 51 0 : output logic fir_nondccm_access_error_d,// Fast interrupt dccm access error 52 : - 53 167732 : input logic lsu_pmp_error_start, - 54 167732 : input logic lsu_pmp_error_end, + 53 162421 : input logic lsu_pmp_error_start, + 54 162421 : input logic lsu_pmp_error_end, 55 : 56 0 : input logic scan_mode // Scan mode 57 : ); 58 : 59 : 60 0 : logic non_dccm_access_ok; - 61 56799 : logic is_sideeffects_d, is_aligned_d; + 61 56793 : logic is_sideeffects_d, is_aligned_d; 62 614420 : logic start_addr_in_dccm_d, end_addr_in_dccm_d; 63 614430 : logic start_addr_in_dccm_region_d, end_addr_in_dccm_region_d; 64 0 : logic start_addr_in_pic_d, end_addr_in_pic_d; 65 614430 : logic start_addr_in_pic_region_d, end_addr_in_pic_region_d; - 66 817391 : logic [4:0] csr_idx; + 66 813521 : logic [4:0] csr_idx; 67 5858 : logic addr_in_iccm; 68 614430 : logic start_addr_dccm_or_pic; 69 614422 : logic base_reg_dccm_or_pic; diff --git a/html/main/coverage_dashboard/all/index_el2_lsu_bus_buffer.sv.html b/html/main/coverage_dashboard/all/index_el2_lsu_bus_buffer.sv.html index 784d6712831..d3d263cd73f 100644 --- a/html/main/coverage_dashboard/all/index_el2_lsu_bus_buffer.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_lsu_bus_buffer.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -132,7 +132,7 @@ 28 : #( 29 : `include "el2_param.vh" 30 : )( - 31 61843746 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 31 61251245 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. 32 0 : input logic clk_override, // Override non-functional clock gating 33 316 : input logic rst_l, // reset, active low 34 0 : input logic scan_mode, // scan mode @@ -142,73 +142,73 @@ 38 0 : input logic dec_tlu_force_halt, 39 : 40 : // various clocks needed for the bus reads and writes - 41 2035983 : input logic lsu_bus_obuf_c1_clken, - 42 1088274 : input logic lsu_busm_clken, - 43 61843746 : input logic lsu_c2_r_clk, - 44 61843746 : input logic lsu_bus_ibuf_c1_clk, + 41 2018773 : input logic lsu_bus_obuf_c1_clken, + 42 1078918 : input logic lsu_busm_clken, + 43 61251245 : input logic lsu_c2_r_clk, + 44 61251245 : input logic lsu_bus_ibuf_c1_clk, 45 0 : input logic lsu_bus_obuf_c1_clk, - 46 61843746 : input logic lsu_bus_buf_c1_clk, - 47 61843746 : input logic lsu_free_c2_clk, + 46 61251245 : input logic lsu_bus_buf_c1_clk, + 47 61251245 : input logic lsu_free_c2_clk, 48 0 : input logic lsu_busm_clk, 49 : 50 : - 51 2276073 : input logic dec_lsu_valid_raw_d, // Raw valid for address computation - 52 478184 : input el2_lsu_pkt_t lsu_pkt_m, // lsu packet flowing down the pipe - 53 478181 : input el2_lsu_pkt_t lsu_pkt_r, // lsu packet flowing down the pipe + 51 2264531 : input logic dec_lsu_valid_raw_d, // Raw valid for address computation + 52 475592 : input el2_lsu_pkt_t lsu_pkt_m, // lsu packet flowing down the pipe + 53 475589 : input el2_lsu_pkt_t lsu_pkt_r, // lsu packet flowing down the pipe 54 : - 55 350819 : input logic [31:0] lsu_addr_m, // lsu address flowing down the pipe - 56 351009 : input logic [31:0] end_addr_m, // lsu address flowing down the pipe - 57 347000 : input logic [31:0] lsu_addr_r, // lsu address flowing down the pipe - 58 347184 : input logic [31:0] end_addr_r, // lsu address flowing down the pipe - 59 54816 : input logic [31:0] store_data_r, // store data flowing down the pipe + 55 349081 : input logic [31:0] lsu_addr_m, // lsu address flowing down the pipe + 56 349271 : input logic [31:0] end_addr_m, // lsu address flowing down the pipe + 57 345262 : input logic [31:0] lsu_addr_r, // lsu address flowing down the pipe + 58 345446 : input logic [31:0] end_addr_r, // lsu address flowing down the pipe + 59 54774 : input logic [31:0] store_data_r, // store data flowing down the pipe 60 : - 61 119084 : input logic no_word_merge_r, // r store doesn't need to wait in ibuf since it will not coalesce - 62 98804 : input logic no_dword_merge_r, // r store doesn't need to wait in ibuf since it will not coalesce - 63 1669696 : input logic lsu_busreq_m, // bus request is in m - 64 1659482 : output logic lsu_busreq_r, // bus request is in r + 61 118190 : input logic no_word_merge_r, // r store doesn't need to wait in ibuf since it will not coalesce + 62 98168 : input logic no_dword_merge_r, // r store doesn't need to wait in ibuf since it will not coalesce + 63 1658116 : input logic lsu_busreq_m, // bus request is in m + 64 1647902 : output logic lsu_busreq_r, // bus request is in r 65 10332 : input logic ld_full_hit_m, // load can get all its byte from a write buffer entry - 66 58638 : input logic flush_m_up, // flush + 66 58568 : input logic flush_m_up, // flush 67 29654 : input logic flush_r, // flush - 68 2279496 : input logic lsu_commit_r, // lsu instruction in r commits + 68 2267916 : input logic lsu_commit_r, // lsu instruction in r commits 69 29230 : input logic is_sideeffects_r, // lsu attribute is side_effects - 70 36568 : input logic ldst_dual_d, // load/store is unaligned at 32 bit boundary - 71 36568 : input logic ldst_dual_m, // load/store is unaligned at 32 bit boundary - 72 36568 : input logic ldst_dual_r, // load/store is unaligned at 32 bit boundary + 70 36562 : input logic ldst_dual_d, // load/store is unaligned at 32 bit boundary + 71 36562 : input logic ldst_dual_m, // load/store is unaligned at 32 bit boundary + 72 36562 : input logic ldst_dual_r, // load/store is unaligned at 32 bit boundary 73 : 74 0 : input logic [7:0] ldst_byteen_ext_m, // HI and LO signals 75 : - 76 808157 : output logic lsu_bus_buffer_pend_any, // bus buffer has a pending bus entry - 77 49046 : output logic lsu_bus_buffer_full_any, // bus buffer is full - 78 1187701 : output logic lsu_bus_buffer_empty_any, // bus buffer is empty + 76 802237 : output logic lsu_bus_buffer_pend_any, // bus buffer has a pending bus entry + 77 48984 : output logic lsu_bus_buffer_full_any, // bus buffer is full + 78 1177737 : output logic lsu_bus_buffer_empty_any, // bus buffer is empty 79 : 80 0 : output logic [3:0] ld_byte_hit_buf_lo, ld_byte_hit_buf_hi, // Byte enables for forwarding data 81 74 : output logic [31:0] ld_fwddata_buf_lo, ld_fwddata_buf_hi, // load forwarding data 82 : 83 0 : output logic lsu_imprecise_error_load_any, // imprecise load bus error 84 0 : output logic lsu_imprecise_error_store_any, // imprecise store bus error - 85 401 : output logic [31:0] lsu_imprecise_error_addr_any, // address of the imprecise error + 85 400 : output logic [31:0] lsu_imprecise_error_addr_any, // address of the imprecise error 86 : 87 : // Non-blocking loads - 88 881640 : output logic lsu_nonblock_load_valid_m, // there is an external load -> put in the cam - 89 504869 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_tag_m, // the tag of the external non block load + 88 875716 : output logic lsu_nonblock_load_valid_m, // there is an external load -> put in the cam + 89 502857 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_tag_m, // the tag of the external non block load 90 0 : output logic lsu_nonblock_load_inv_r, // invalidate signal for the cam entry for non block loads - 91 504866 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_inv_tag_r, // tag of the enrty which needs to be invalidated - 92 920896 : output logic lsu_nonblock_load_data_valid, // the non block is valid - sending information back to the cam + 91 502854 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_inv_tag_r, // tag of the enrty which needs to be invalidated + 92 914818 : output logic lsu_nonblock_load_data_valid, // the non block is valid - sending information back to the cam 93 0 : output logic lsu_nonblock_load_data_error, // non block load has an error - 94 36662 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_data_tag, // the tag of the non block load sending the data/error - 95 71560 : output logic [31:0] lsu_nonblock_load_data, // Data of the non block load + 94 36598 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_data_tag, // the tag of the non block load sending the data/error + 95 71538 : output logic [31:0] lsu_nonblock_load_data, // Data of the non block load 96 : 97 : // PMU events - 98 1667379 : output logic lsu_pmu_bus_trxn, - 99 36420 : output logic lsu_pmu_bus_misaligned, + 98 1655267 : output logic lsu_pmu_bus_trxn, + 99 36414 : output logic lsu_pmu_bus_misaligned, 100 0 : output logic lsu_pmu_bus_error, - 101 67818 : output logic lsu_pmu_bus_busy, + 101 67790 : output logic lsu_pmu_bus_busy, 102 : 103 : // AXI Write Channels - 104 855209 : output logic lsu_axi_awvalid, - 105 1107817 : input logic lsu_axi_awready, + 104 849023 : output logic lsu_axi_awvalid, + 105 1095685 : input logic lsu_axi_awready, 106 0 : output logic [pt.LSU_BUS_TAG-1:0] lsu_axi_awid, - 107 401 : output logic [31:0] lsu_axi_awaddr, + 107 400 : output logic [31:0] lsu_axi_awaddr, 108 314 : output logic [3:0] lsu_axi_awregion, 109 0 : output logic [7:0] lsu_axi_awlen, 110 0 : output logic [2:0] lsu_axi_awsize, @@ -218,22 +218,22 @@ 114 0 : output logic [2:0] lsu_axi_awprot, 115 0 : output logic [3:0] lsu_axi_awqos, 116 : - 117 855209 : output logic lsu_axi_wvalid, - 118 1107817 : input logic lsu_axi_wready, - 119 31411 : output logic [63:0] lsu_axi_wdata, - 120 224989 : output logic [7:0] lsu_axi_wstrb, + 117 849023 : output logic lsu_axi_wvalid, + 118 1095685 : input logic lsu_axi_wready, + 119 31367 : output logic [63:0] lsu_axi_wdata, + 120 224179 : output logic [7:0] lsu_axi_wstrb, 121 317 : output logic lsu_axi_wlast, 122 : - 123 868520 : input logic lsu_axi_bvalid, + 123 862312 : input logic lsu_axi_bvalid, 124 317 : output logic lsu_axi_bready, 125 0 : input logic [1:0] lsu_axi_bresp, 126 0 : input logic [pt.LSU_BUS_TAG-1:0] lsu_axi_bid, 127 : 128 : // AXI Read Channels - 129 868958 : output logic lsu_axi_arvalid, - 130 1115481 : input logic lsu_axi_arready, + 129 863034 : output logic lsu_axi_arvalid, + 130 1103367 : input logic lsu_axi_arready, 131 0 : output logic [pt.LSU_BUS_TAG-1:0] lsu_axi_arid, - 132 401 : output logic [31:0] lsu_axi_araddr, + 132 400 : output logic [31:0] lsu_axi_araddr, 133 314 : output logic [3:0] lsu_axi_arregion, 134 0 : output logic [7:0] lsu_axi_arlen, 135 0 : output logic [2:0] lsu_axi_arsize, @@ -243,10 +243,10 @@ 139 0 : output logic [2:0] lsu_axi_arprot, 140 0 : output logic [3:0] lsu_axi_arqos, 141 : - 142 929722 : input logic lsu_axi_rvalid, + 142 923642 : input logic lsu_axi_rvalid, 143 317 : output logic lsu_axi_rready, 144 0 : input logic [pt.LSU_BUS_TAG-1:0] lsu_axi_rid, - 145 28838 : input logic [63:0] lsu_axi_rdata, + 145 28760 : input logic [63:0] lsu_axi_rdata, 146 0 : input logic [1:0] lsu_axi_rresp, 147 : 148 316 : input logic lsu_bus_clk_en, @@ -264,7 +264,7 @@ 160 : localparam TIMER_MAX = TIMER - 1; // Maximum value of timer 161 : localparam TIMER_LOG2 = (TIMER < 2) ? 1 : $clog2(TIMER); 162 : - 163 434262 : logic [3:0] ldst_byteen_hi_m, ldst_byteen_lo_m; + 163 430634 : logic [3:0] ldst_byteen_hi_m, ldst_byteen_lo_m; 164 2450 : logic [DEPTH-1:0] ld_addr_hitvec_lo, ld_addr_hitvec_hi; 165 0 : logic [3:0][DEPTH-1:0] ld_byte_hitvec_lo, ld_byte_hitvec_hi; 166 0 : logic [3:0][DEPTH-1:0] ld_byte_hitvecfn_lo, ld_byte_hitvecfn_hi; @@ -273,82 +273,82 @@ 169 0 : logic [3:0] ld_byte_ibuf_hit_lo, ld_byte_ibuf_hit_hi; 170 : 171 8172 : logic [3:0] ldst_byteen_r; - 172 431718 : logic [3:0] ldst_byteen_hi_r, ldst_byteen_lo_r; - 173 62092 : logic [31:0] store_data_hi_r, store_data_lo_r; - 174 56512 : logic is_aligned_r; // Aligned load/store - 175 18349 : logic ldst_samedw_r; + 172 428090 : logic [3:0] ldst_byteen_hi_r, ldst_byteen_lo_r; + 173 62064 : logic [31:0] store_data_hi_r, store_data_lo_r; + 174 56506 : logic is_aligned_r; // Aligned load/store + 175 18347 : logic ldst_samedw_r; 176 : - 177 881494 : logic lsu_nonblock_load_valid_r; - 178 45442 : logic [31:0] lsu_nonblock_load_data_hi, lsu_nonblock_load_data_lo, lsu_nonblock_data_unalgn; - 179 206010 : logic [1:0] lsu_nonblock_addr_offset; - 180 129683 : logic [1:0] lsu_nonblock_sz; - 181 243322 : logic lsu_nonblock_unsign; - 182 920896 : logic lsu_nonblock_load_data_ready; + 177 875570 : logic lsu_nonblock_load_valid_r; + 178 45342 : logic [31:0] lsu_nonblock_load_data_hi, lsu_nonblock_load_data_lo, lsu_nonblock_data_unalgn; + 179 204056 : logic [1:0] lsu_nonblock_addr_offset; + 180 129339 : logic [1:0] lsu_nonblock_sz; + 181 239414 : logic lsu_nonblock_unsign; + 182 914818 : logic lsu_nonblock_load_data_ready; 183 : 184 4572 : logic [DEPTH-1:0] CmdPtr0Dec, CmdPtr1Dec; - 185 798 : logic [DEPTH-1:0] RspPtrDec; + 185 778 : logic [DEPTH-1:0] RspPtrDec; 186 18787 : logic [DEPTH_LOG2-1:0] CmdPtr0, CmdPtr1; - 187 2718 : logic [DEPTH_LOG2-1:0] RspPtr; - 188 504866 : logic [DEPTH_LOG2-1:0] WrPtr0_m, WrPtr0_r; - 189 563828 : logic [DEPTH_LOG2-1:0] WrPtr1_m, WrPtr1_r; + 187 2668 : logic [DEPTH_LOG2-1:0] RspPtr; + 188 502854 : logic [DEPTH_LOG2-1:0] WrPtr0_m, WrPtr0_r; + 189 561546 : logic [DEPTH_LOG2-1:0] WrPtr1_m, WrPtr1_r; 190 14100 : logic found_wrptr0, found_wrptr1, found_cmdptr0, found_cmdptr1; 191 0 : logic [3:0] buf_numvld_any, buf_numvld_wrcmd_any, buf_numvld_cmd_any, buf_numvld_pend_any; - 192 23634 : logic any_done_wait_state; + 192 23434 : logic any_done_wait_state; 193 15181 : logic bus_sideeffect_pend; 194 20 : logic bus_coalescing_disable; 195 : - 196 87222 : logic bus_addr_match_pending; - 197 1662861 : logic bus_cmd_sent, bus_cmd_ready; - 198 864881 : logic bus_wcmd_sent, bus_wdata_sent; - 199 722090 : logic bus_rsp_read, bus_rsp_write; + 196 86732 : logic bus_addr_match_pending; + 197 1650749 : logic bus_cmd_sent, bus_cmd_ready; + 198 858695 : logic bus_wcmd_sent, bus_wdata_sent; + 199 716010 : logic bus_rsp_read, bus_rsp_write; 200 0 : logic [pt.LSU_BUS_TAG-1:0] bus_rsp_read_tag, bus_rsp_write_tag; 201 0 : logic bus_rsp_read_error, bus_rsp_write_error; - 202 28838 : logic [63:0] bus_rsp_rdata; + 202 28760 : logic [63:0] bus_rsp_rdata; 203 : 204 : // Bus buffer signals - 205 12908 : state_t [DEPTH-1:0] buf_state; - 206 1239 : logic [DEPTH-1:0][1:0] buf_sz; + 205 12884 : state_t [DEPTH-1:0] buf_state; + 206 1237 : logic [DEPTH-1:0][1:0] buf_sz; 207 20 : logic [DEPTH-1:0][31:0] buf_addr; - 208 2643 : logic [DEPTH-1:0][3:0] buf_byteen; + 208 2641 : logic [DEPTH-1:0][3:0] buf_byteen; 209 4 : logic [DEPTH-1:0] buf_sideeffect; - 210 2144 : logic [DEPTH-1:0] buf_write; + 210 2141 : logic [DEPTH-1:0] buf_write; 211 584 : logic [DEPTH-1:0] buf_unsign; 212 62 : logic [DEPTH-1:0] buf_dual; - 213 1120 : logic [DEPTH-1:0] buf_samedw; + 213 1118 : logic [DEPTH-1:0] buf_samedw; 214 3044 : logic [DEPTH-1:0] buf_nomerge; 215 62 : logic [DEPTH-1:0] buf_dualhi; - 216 610 : logic [DEPTH-1:0][DEPTH_LOG2-1:0] buf_dualtag; - 217 798 : logic [DEPTH-1:0] buf_ldfwd; - 218 1138 : logic [DEPTH-1:0][DEPTH_LOG2-1:0] buf_ldfwdtag; + 216 608 : logic [DEPTH-1:0][DEPTH_LOG2-1:0] buf_dualtag; + 217 778 : logic [DEPTH-1:0] buf_ldfwd; + 218 1120 : logic [DEPTH-1:0][DEPTH_LOG2-1:0] buf_ldfwdtag; 219 0 : logic [DEPTH-1:0] buf_error; 220 1245 : logic [DEPTH-1:0][31:0] buf_data; 221 0 : logic [DEPTH-1:0][DEPTH-1:0] buf_age, buf_age_younger; 222 0 : logic [DEPTH-1:0][DEPTH-1:0] buf_rspage, buf_rsp_pickage; 223 : - 224 13092 : state_t [DEPTH-1:0] buf_nxtstate; - 225 12908 : logic [DEPTH-1:0] buf_rst; - 226 64458 : logic [DEPTH-1:0] buf_state_en; - 227 24620 : logic [DEPTH-1:0] buf_cmd_state_bus_en; - 228 24142 : logic [DEPTH-1:0] buf_resp_state_bus_en; - 229 43086 : logic [DEPTH-1:0] buf_state_bus_en; - 230 36382 : logic [DEPTH-1:0] buf_dual_in; - 231 18271 : logic [DEPTH-1:0] buf_samedw_in; - 232 102968 : logic [DEPTH-1:0] buf_nomerge_in; + 224 13068 : state_t [DEPTH-1:0] buf_nxtstate; + 225 12884 : logic [DEPTH-1:0] buf_rst; + 226 64372 : logic [DEPTH-1:0] buf_state_en; + 227 24584 : logic [DEPTH-1:0] buf_cmd_state_bus_en; + 228 24106 : logic [DEPTH-1:0] buf_resp_state_bus_en; + 229 43014 : logic [DEPTH-1:0] buf_state_bus_en; + 230 36376 : logic [DEPTH-1:0] buf_dual_in; + 231 18269 : logic [DEPTH-1:0] buf_samedw_in; + 232 102332 : logic [DEPTH-1:0] buf_nomerge_in; 233 26802 : logic [DEPTH-1:0] buf_sideeffect_in; - 234 531344 : logic [DEPTH-1:0] buf_unsign_in; - 235 462466 : logic [DEPTH-1:0][1:0] buf_sz_in; - 236 1060944 : logic [DEPTH-1:0] buf_write_in; - 237 24624 : logic [DEPTH-1:0] buf_wr_en; + 234 526824 : logic [DEPTH-1:0] buf_unsign_in; + 235 459874 : logic [DEPTH-1:0][1:0] buf_sz_in; + 236 1055276 : logic [DEPTH-1:0] buf_write_in; + 237 24588 : logic [DEPTH-1:0] buf_wr_en; 238 4480 : logic [DEPTH-1:0] buf_dualhi_in; - 239 564429 : logic [DEPTH-1:0][DEPTH_LOG2-1:0] buf_dualtag_in; - 240 14636 : logic [DEPTH-1:0] buf_ldfwd_en; - 241 24622 : logic [DEPTH-1:0] buf_ldfwd_in; - 242 2896 : logic [DEPTH-1:0][DEPTH_LOG2-1:0] buf_ldfwdtag_in; - 243 432760 : logic [DEPTH-1:0][3:0] buf_byteen_in; - 244 347724 : logic [DEPTH-1:0][31:0] buf_addr_in; - 245 65090 : logic [DEPTH-1:0][31:0] buf_data_in; + 239 562147 : logic [DEPTH-1:0][DEPTH_LOG2-1:0] buf_dualtag_in; + 240 14594 : logic [DEPTH-1:0] buf_ldfwd_en; + 241 24586 : logic [DEPTH-1:0] buf_ldfwd_in; + 242 2878 : logic [DEPTH-1:0][DEPTH_LOG2-1:0] buf_ldfwdtag_in; + 243 429130 : logic [DEPTH-1:0][3:0] buf_byteen_in; + 244 345986 : logic [DEPTH-1:0][31:0] buf_addr_in; + 245 65080 : logic [DEPTH-1:0][31:0] buf_data_in; 246 0 : logic [DEPTH-1:0] buf_error_en; - 247 37352 : logic [DEPTH-1:0] buf_data_en; + 247 37292 : logic [DEPTH-1:0] buf_data_en; 248 0 : logic [DEPTH-1:0][DEPTH-1:0] buf_age_in; 249 0 : logic [DEPTH-1:0][DEPTH-1:0] buf_ageQ; 250 0 : logic [DEPTH-1:0][DEPTH-1:0] buf_rspage_set; @@ -356,104 +356,104 @@ 252 0 : logic [DEPTH-1:0][DEPTH-1:0] buf_rspageQ; 253 : 254 : // Input buffer signals - 255 792047 : logic ibuf_valid; + 255 786389 : logic ibuf_valid; 256 12414 : logic ibuf_dual; 257 7882 : logic ibuf_samedw; 258 254 : logic ibuf_nomerge; - 259 49236 : logic [DEPTH_LOG2-1:0] ibuf_tag; - 260 44004 : logic [DEPTH_LOG2-1:0] ibuf_dualtag; + 259 49008 : logic [DEPTH_LOG2-1:0] ibuf_tag; + 260 43776 : logic [DEPTH_LOG2-1:0] ibuf_dualtag; 261 202 : logic ibuf_sideeffect; 262 2 : logic ibuf_unsign; 263 374 : logic ibuf_write; - 264 51687 : logic [1:0] ibuf_sz; - 265 53388 : logic [3:0] ibuf_byteen; - 266 332 : logic [31:0] ibuf_addr; - 267 43177 : logic [31:0] ibuf_data; - 268 763200 : logic [TIMER_LOG2-1:0] ibuf_timer; + 264 51607 : logic [1:0] ibuf_sz; + 265 53250 : logic [3:0] ibuf_byteen; + 266 331 : logic [31:0] ibuf_addr; + 267 43125 : logic [31:0] ibuf_data; + 268 757566 : logic [TIMER_LOG2-1:0] ibuf_timer; 269 : - 270 933790 : logic ibuf_byp; - 271 800872 : logic ibuf_wr_en; - 272 792033 : logic ibuf_rst; - 273 312538 : logic ibuf_force_drain; - 274 792573 : logic ibuf_drain_vld; - 275 11750 : logic [DEPTH-1:0] ibuf_drainvec_vld; - 276 505998 : logic [DEPTH_LOG2-1:0] ibuf_tag_in; - 277 504866 : logic [DEPTH_LOG2-1:0] ibuf_dualtag_in; - 278 458640 : logic [1:0] ibuf_sz_in; - 279 347184 : logic [31:0] ibuf_addr_in; - 280 405384 : logic [3:0] ibuf_byteen_in; - 281 63168 : logic [31:0] ibuf_data_in; - 282 763210 : logic [TIMER_LOG2-1:0] ibuf_timer_in; - 283 53568 : logic [3:0] ibuf_byteen_out; - 284 43225 : logic [31:0] ibuf_data_out; - 285 1305 : logic ibuf_merge_en, ibuf_merge_in; + 270 927358 : logic ibuf_byp; + 271 795214 : logic ibuf_wr_en; + 272 786375 : logic ibuf_rst; + 273 312528 : logic ibuf_force_drain; + 274 786915 : logic ibuf_drain_vld; + 275 11738 : logic [DEPTH-1:0] ibuf_drainvec_vld; + 276 503986 : logic [DEPTH_LOG2-1:0] ibuf_tag_in; + 277 502854 : logic [DEPTH_LOG2-1:0] ibuf_dualtag_in; + 278 456048 : logic [1:0] ibuf_sz_in; + 279 345446 : logic [31:0] ibuf_addr_in; + 280 401756 : logic [3:0] ibuf_byteen_in; + 281 63140 : logic [31:0] ibuf_data_in; + 282 757576 : logic [TIMER_LOG2-1:0] ibuf_timer_in; + 283 53430 : logic [3:0] ibuf_byteen_out; + 284 43173 : logic [31:0] ibuf_data_out; + 285 1299 : logic ibuf_merge_en, ibuf_merge_in; 286 : 287 : // Output buffer signals - 288 1569521 : logic obuf_valid; - 289 281646 : logic obuf_write; - 290 23634 : logic obuf_nosend; - 291 911064 : logic obuf_rdrsp_pend; + 288 1557449 : logic obuf_valid; + 289 277662 : logic obuf_write; + 290 23434 : logic obuf_nosend; + 291 905140 : logic obuf_rdrsp_pend; 292 2668 : logic obuf_sideeffect; - 293 401 : logic [31:0] obuf_addr; - 294 31411 : logic [63:0] obuf_data; - 295 124860 : logic [1:0] obuf_sz; - 296 424295 : logic [7:0] obuf_byteen; - 297 8190 : logic obuf_merge; + 293 400 : logic [31:0] obuf_addr; + 294 31367 : logic [63:0] obuf_data; + 295 124516 : logic [1:0] obuf_sz; + 296 422343 : logic [7:0] obuf_byteen; + 297 8186 : logic obuf_merge; 298 0 : logic obuf_cmd_done, obuf_data_done; 299 0 : logic [pt.LSU_BUS_TAG-1:0] obuf_tag0; 300 0 : logic [pt.LSU_BUS_TAG-1:0] obuf_tag1; 301 0 : logic [pt.LSU_BUS_TAG-1:0] obuf_rdrsp_tag; 302 : - 303 809676 : logic ibuf_buf_byp; - 304 65546 : logic obuf_force_wr_en; + 303 803504 : logic ibuf_buf_byp; + 304 65532 : logic obuf_force_wr_en; 305 314770 : logic obuf_wr_wait; - 306 1606909 : logic obuf_wr_en, obuf_wr_enQ; - 307 1569517 : logic obuf_rst; - 308 333238 : logic obuf_write_in; - 309 714540 : logic obuf_nosend_in; + 306 1594813 : logic obuf_wr_en, obuf_wr_enQ; + 307 1557445 : logic obuf_rst; + 308 329228 : logic obuf_write_in; + 309 710014 : logic obuf_nosend_in; 310 316 : logic obuf_rdrsp_pend_en; - 311 911064 : logic obuf_rdrsp_pend_in; + 311 905140 : logic obuf_rdrsp_pend_in; 312 2812 : logic obuf_sideeffect_in; - 313 46727 : logic obuf_aligned_in; - 314 401 : logic [31:0] obuf_addr_in; - 315 67746 : logic [63:0] obuf_data_in; - 316 151902 : logic [1:0] obuf_sz_in; - 317 458692 : logic [7:0] obuf_byteen_in; - 318 15566 : logic obuf_merge_in; + 313 46721 : logic obuf_aligned_in; + 314 400 : logic [31:0] obuf_addr_in; + 315 67520 : logic [63:0] obuf_data_in; + 316 151558 : logic [1:0] obuf_sz_in; + 317 456624 : logic [7:0] obuf_byteen_in; + 318 15560 : logic obuf_merge_in; 319 0 : logic obuf_cmd_done_in, obuf_data_done_in; 320 0 : logic [pt.LSU_BUS_TAG-1:0] obuf_tag0_in; 321 0 : logic [pt.LSU_BUS_TAG-1:0] obuf_tag1_in; 322 0 : logic [pt.LSU_BUS_TAG-1:0] obuf_rdrsp_tag_in; 323 : - 324 15566 : logic obuf_merge_en; + 324 15560 : logic obuf_merge_en; 325 288436 : logic [TIMER_LOG2-1:0] obuf_wr_timer, obuf_wr_timer_in; - 326 290998 : logic [7:0] obuf_byteen0_in, obuf_byteen1_in; - 327 46595 : logic [63:0] obuf_data0_in, obuf_data1_in; + 326 289608 : logic [7:0] obuf_byteen0_in, obuf_byteen1_in; + 327 46385 : logic [63:0] obuf_data0_in, obuf_data1_in; 328 : - 329 854945 : logic lsu_axi_awvalid_q, lsu_axi_awready_q; - 330 854945 : logic lsu_axi_wvalid_q, lsu_axi_wready_q; - 331 879147 : logic lsu_axi_arvalid_q, lsu_axi_arready_q; + 329 848759 : logic lsu_axi_awvalid_q, lsu_axi_awready_q; + 330 848759 : logic lsu_axi_wvalid_q, lsu_axi_wready_q; + 331 873223 : logic lsu_axi_arvalid_q, lsu_axi_arready_q; 332 314 : logic lsu_axi_bvalid_q, lsu_axi_bready_q; 333 314 : logic lsu_axi_rvalid_q, lsu_axi_rready_q; 334 0 : logic [pt.LSU_BUS_TAG-1:0] lsu_axi_bid_q, lsu_axi_rid_q; 335 0 : logic [1:0] lsu_axi_bresp_q, lsu_axi_rresp_q; 336 0 : logic [pt.LSU_BUS_TAG-1:0] lsu_imprecise_error_store_tag; - 337 28837 : logic [63:0] lsu_axi_rdata_q; + 337 28759 : logic [63:0] lsu_axi_rdata_q; 338 : 339 : //------------------------------------------------------------------------------ 340 : // Load forwarding logic start 341 : //------------------------------------------------------------------------------ 342 : 343 : // Function to do 8 to 3 bit encoding - 344 74791394 : function automatic logic [2:0] f_Enc8to3; + 344 74381999 : function automatic logic [2:0] f_Enc8to3; 345 : input logic [7:0] Dec_value; 346 : 347 : logic [2:0] Enc_value; - 348 74791394 : Enc_value[0] = Dec_value[1] | Dec_value[3] | Dec_value[5] | Dec_value[7]; - 349 74791394 : Enc_value[1] = Dec_value[2] | Dec_value[3] | Dec_value[6] | Dec_value[7]; - 350 74791394 : Enc_value[2] = Dec_value[4] | Dec_value[5] | Dec_value[6] | Dec_value[7]; + 348 74381999 : Enc_value[0] = Dec_value[1] | Dec_value[3] | Dec_value[5] | Dec_value[7]; + 349 74381999 : Enc_value[1] = Dec_value[2] | Dec_value[3] | Dec_value[6] | Dec_value[7]; + 350 74381999 : Enc_value[2] = Dec_value[4] | Dec_value[5] | Dec_value[6] | Dec_value[7]; 351 : - 352 74791394 : return Enc_value[2:0]; + 352 74381999 : return Enc_value[2:0]; 353 : endfunction // f_Enc8to3 354 : 355 : // Buffer hit logic for bus load forwarding @@ -663,20 +663,20 @@ 559 : 560 : // Find first write pointer 561 317 : for (int i=0; i<DEPTH; i++) begin - 562 88926 : if (~found_wrptr0) begin - 563 88618 : WrPtr0_m[DEPTH_LOG2-1:0] = DEPTH_LOG2'(i); - 564 88618 : found_wrptr0 = (buf_state[i] == IDLE) & ~((ibuf_valid & (ibuf_tag == i)) | - 565 88618 : (lsu_busreq_r & ((WrPtr0_r == i) | (ldst_dual_r & (WrPtr1_r == i))))); + 562 89238 : if (~found_wrptr0) begin + 563 88930 : WrPtr0_m[DEPTH_LOG2-1:0] = DEPTH_LOG2'(i); + 564 88930 : found_wrptr0 = (buf_state[i] == IDLE) & ~((ibuf_valid & (ibuf_tag == i)) | + 565 88930 : (lsu_busreq_r & ((WrPtr0_r == i) | (ldst_dual_r & (WrPtr1_r == i))))); 566 : end 567 : end 568 : 569 : // Find second write pointer 570 317 : for (int i=0; i<DEPTH; i++) begin - 571 152937 : if (~found_wrptr1) begin - 572 152629 : WrPtr1_m[DEPTH_LOG2-1:0] = DEPTH_LOG2'(i); - 573 152629 : found_wrptr1 = (buf_state[i] == IDLE) & ~((ibuf_valid & (ibuf_tag == i)) | - 574 152629 : (lsu_busreq_m & (WrPtr0_m == i)) | - 575 152629 : (lsu_busreq_r & ((WrPtr0_r == i) | (ldst_dual_r & (WrPtr1_r == i))))); + 571 153384 : if (~found_wrptr1) begin + 572 153076 : WrPtr1_m[DEPTH_LOG2-1:0] = DEPTH_LOG2'(i); + 573 153076 : found_wrptr1 = (buf_state[i] == IDLE) & ~((ibuf_valid & (ibuf_tag == i)) | + 574 153076 : (lsu_busreq_m & (WrPtr0_m == i)) | + 575 153076 : (lsu_busreq_r & ((WrPtr0_r == i) | (ldst_dual_r & (WrPtr1_r == i))))); 576 : end 577 : end 578 : end @@ -758,71 +758,71 @@ 654 1268 : buf_ldfwdtag_in[i] = '0; 655 : 656 1268 : case (buf_state[i]) - 657 92666200 : IDLE: begin - 658 92666200 : buf_nxtstate[i] = lsu_bus_clk_en ? CMD : START_WAIT; - 659 92666200 : buf_state_en[i] = (lsu_busreq_r & lsu_commit_r & (((ibuf_byp | ldst_dual_r) & ~ibuf_merge_en & (i == WrPtr0_r)) | (ibuf_byp & ldst_dual_r & (i == WrPtr1_r)))) | - 660 92666200 : (ibuf_drain_vld & (i == ibuf_tag)); - 661 92666200 : buf_wr_en[i] = buf_state_en[i]; - 662 92666200 : buf_data_en[i] = buf_state_en[i]; - 663 92666200 : buf_data_in[i] = (ibuf_drain_vld & (i == ibuf_tag)) ? ibuf_data_out[31:0] : store_data_lo_r[31:0]; - 664 92666200 : buf_cmd_state_bus_en[i] = '0; + 657 92157899 : IDLE: begin + 658 92157899 : buf_nxtstate[i] = lsu_bus_clk_en ? CMD : START_WAIT; + 659 92157899 : buf_state_en[i] = (lsu_busreq_r & lsu_commit_r & (((ibuf_byp | ldst_dual_r) & ~ibuf_merge_en & (i == WrPtr0_r)) | (ibuf_byp & ldst_dual_r & (i == WrPtr1_r)))) | + 660 92157899 : (ibuf_drain_vld & (i == ibuf_tag)); + 661 92157899 : buf_wr_en[i] = buf_state_en[i]; + 662 92157899 : buf_data_en[i] = buf_state_en[i]; + 663 92157899 : buf_data_in[i] = (ibuf_drain_vld & (i == ibuf_tag)) ? ibuf_data_out[31:0] : store_data_lo_r[31:0]; + 664 92157899 : buf_cmd_state_bus_en[i] = '0; 665 : end 666 0 : START_WAIT: begin 667 0 : buf_nxtstate[i] = dec_tlu_force_halt ? IDLE : CMD; 668 0 : buf_state_en[i] = lsu_bus_clk_en | dec_tlu_force_halt; 669 0 : buf_cmd_state_bus_en[i] = '0; 670 : end - 671 2423662 : CMD: begin - 672 2423662 : buf_nxtstate[i] = dec_tlu_force_halt ? IDLE : (obuf_nosend & bus_rsp_read & (bus_rsp_read_tag == obuf_rdrsp_tag)) ? DONE_WAIT : RESP; - 673 2423662 : buf_cmd_state_bus_en[i] = ((obuf_tag0 == i) | (obuf_merge & (obuf_tag1 == i))) & obuf_valid & obuf_wr_enQ; // Just use the recently written obuf_valid - 674 2423662 : buf_state_bus_en[i] = buf_cmd_state_bus_en[i]; - 675 2423662 : buf_state_en[i] = (buf_state_bus_en[i] & lsu_bus_clk_en) | dec_tlu_force_halt; - 676 2423662 : buf_ldfwd_in[i] = 1'b1; - 677 2423662 : buf_ldfwd_en[i] = buf_state_en[i] & ~buf_write[i] & obuf_nosend & ~dec_tlu_force_halt; - 678 2423662 : buf_ldfwdtag_in[i] = DEPTH_LOG2'(obuf_rdrsp_tag[pt.LSU_BUS_TAG-2:0]); - 679 2423662 : buf_data_en[i] = buf_state_bus_en[i] & lsu_bus_clk_en & obuf_nosend & bus_rsp_read; - 680 2423662 : buf_error_en[i] = buf_state_bus_en[i] & lsu_bus_clk_en & obuf_nosend & bus_rsp_read_error; - 681 2423662 : buf_data_in[i] = buf_error_en[i] ? bus_rsp_rdata[31:0] : (buf_addr[i][2] ? bus_rsp_rdata[63:32] : bus_rsp_rdata[31:0]); + 671 2426349 : CMD: begin + 672 2426349 : buf_nxtstate[i] = dec_tlu_force_halt ? IDLE : (obuf_nosend & bus_rsp_read & (bus_rsp_read_tag == obuf_rdrsp_tag)) ? DONE_WAIT : RESP; + 673 2426349 : buf_cmd_state_bus_en[i] = ((obuf_tag0 == i) | (obuf_merge & (obuf_tag1 == i))) & obuf_valid & obuf_wr_enQ; // Just use the recently written obuf_valid + 674 2426349 : buf_state_bus_en[i] = buf_cmd_state_bus_en[i]; + 675 2426349 : buf_state_en[i] = (buf_state_bus_en[i] & lsu_bus_clk_en) | dec_tlu_force_halt; + 676 2426349 : buf_ldfwd_in[i] = 1'b1; + 677 2426349 : buf_ldfwd_en[i] = buf_state_en[i] & ~buf_write[i] & obuf_nosend & ~dec_tlu_force_halt; + 678 2426349 : buf_ldfwdtag_in[i] = DEPTH_LOG2'(obuf_rdrsp_tag[pt.LSU_BUS_TAG-2:0]); + 679 2426349 : buf_data_en[i] = buf_state_bus_en[i] & lsu_bus_clk_en & obuf_nosend & bus_rsp_read; + 680 2426349 : buf_error_en[i] = buf_state_bus_en[i] & lsu_bus_clk_en & obuf_nosend & bus_rsp_read_error; + 681 2426349 : buf_data_in[i] = buf_error_en[i] ? bus_rsp_rdata[31:0] : (buf_addr[i][2] ? bus_rsp_rdata[63:32] : bus_rsp_rdata[31:0]); 682 : end - 683 1460609 : RESP: begin - 684 1460609 : buf_nxtstate[i] = (dec_tlu_force_halt | (buf_write[i] & ~bus_rsp_write_error)) ? IDLE : // Side-effect writes will be non-posted - 685 1460609 : (buf_dual[i] & ~buf_samedw[i] & ~buf_write[i] & (buf_state[buf_dualtag[i]] != DONE_PARTIAL)) ? DONE_PARTIAL : // Goto DONE_PARTIAL if this is the first return of dual - 686 1460609 : (buf_ldfwd[i] | any_done_wait_state | - 687 1460609 : (buf_dual[i] & ~buf_samedw[i] & ~buf_write[i] & buf_ldfwd[buf_dualtag[i]] & - 688 1460609 : (buf_state[buf_dualtag[i]] == DONE_PARTIAL) & any_done_wait_state)) ? DONE_WAIT : DONE; - 689 1460609 : buf_resp_state_bus_en[i] = (bus_rsp_write & (bus_rsp_write_tag == (pt.LSU_BUS_TAG)'(i))) | - 690 1460609 : (bus_rsp_read & ((bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(i)) | - 691 1460609 : (buf_ldfwd[i] & (bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(buf_ldfwdtag[i]))) | - 692 1460609 : (buf_dual[i] & buf_dualhi[i] & ~buf_write[i] & buf_samedw[i] & (bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(buf_dualtag[i]))))); - 693 1460609 : buf_state_bus_en[i] = buf_resp_state_bus_en[i]; - 694 1460609 : buf_state_en[i] = (buf_state_bus_en[i] & lsu_bus_clk_en) | dec_tlu_force_halt; - 695 1460609 : buf_data_en[i] = buf_state_bus_en[i] & bus_rsp_read & lsu_bus_clk_en; + 683 1453089 : RESP: begin + 684 1453089 : buf_nxtstate[i] = (dec_tlu_force_halt | (buf_write[i] & ~bus_rsp_write_error)) ? IDLE : // Side-effect writes will be non-posted + 685 1453089 : (buf_dual[i] & ~buf_samedw[i] & ~buf_write[i] & (buf_state[buf_dualtag[i]] != DONE_PARTIAL)) ? DONE_PARTIAL : // Goto DONE_PARTIAL if this is the first return of dual + 686 1453089 : (buf_ldfwd[i] | any_done_wait_state | + 687 1453089 : (buf_dual[i] & ~buf_samedw[i] & ~buf_write[i] & buf_ldfwd[buf_dualtag[i]] & + 688 1453089 : (buf_state[buf_dualtag[i]] == DONE_PARTIAL) & any_done_wait_state)) ? DONE_WAIT : DONE; + 689 1453089 : buf_resp_state_bus_en[i] = (bus_rsp_write & (bus_rsp_write_tag == (pt.LSU_BUS_TAG)'(i))) | + 690 1453089 : (bus_rsp_read & ((bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(i)) | + 691 1453089 : (buf_ldfwd[i] & (bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(buf_ldfwdtag[i]))) | + 692 1453089 : (buf_dual[i] & buf_dualhi[i] & ~buf_write[i] & buf_samedw[i] & (bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(buf_dualtag[i]))))); + 693 1453089 : buf_state_bus_en[i] = buf_resp_state_bus_en[i]; + 694 1453089 : buf_state_en[i] = (buf_state_bus_en[i] & lsu_bus_clk_en) | dec_tlu_force_halt; + 695 1453089 : buf_data_en[i] = buf_state_bus_en[i] & bus_rsp_read & lsu_bus_clk_en; 696 : // Need to capture the error for stores as well for AXI - 697 1460609 : buf_error_en[i] = buf_state_bus_en[i] & lsu_bus_clk_en & ((bus_rsp_read_error & (bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(i))) | - 698 1460609 : (bus_rsp_read_error & buf_ldfwd[i] & (bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(buf_ldfwdtag[i]))) | - 699 1460609 : (bus_rsp_write_error & (bus_rsp_write_tag == (pt.LSU_BUS_TAG)'(i)))); - 700 1460609 : buf_data_in[i][31:0] = (buf_state_en[i] & ~buf_error_en[i]) ? (buf_addr[i][2] ? bus_rsp_rdata[63:32] : bus_rsp_rdata[31:0]) : bus_rsp_rdata[31:0]; - 701 1460609 : buf_cmd_state_bus_en[i] = '0; + 697 1453089 : buf_error_en[i] = buf_state_bus_en[i] & lsu_bus_clk_en & ((bus_rsp_read_error & (bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(i))) | + 698 1453089 : (bus_rsp_read_error & buf_ldfwd[i] & (bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(buf_ldfwdtag[i]))) | + 699 1453089 : (bus_rsp_write_error & (bus_rsp_write_tag == (pt.LSU_BUS_TAG)'(i)))); + 700 1453089 : buf_data_in[i][31:0] = (buf_state_en[i] & ~buf_error_en[i]) ? (buf_addr[i][2] ? bus_rsp_rdata[63:32] : bus_rsp_rdata[31:0]) : bus_rsp_rdata[31:0]; + 701 1453089 : buf_cmd_state_bus_en[i] = '0; 702 : end - 703 8824 : DONE_PARTIAL: begin // Other part of dual load hasn't returned - 704 8824 : buf_nxtstate[i] = dec_tlu_force_halt ? IDLE : (buf_ldfwd[i] | buf_ldfwd[buf_dualtag[i]] | any_done_wait_state) ? DONE_WAIT : DONE; - 705 8824 : buf_state_bus_en[i] = bus_rsp_read & ((bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(buf_dualtag[i])) | - 706 8824 : (buf_ldfwd[buf_dualtag[i]] & (bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(buf_ldfwdtag[buf_dualtag[i]])))); - 707 8824 : buf_state_en[i] = (buf_state_bus_en[i] & lsu_bus_clk_en) | dec_tlu_force_halt; - 708 8824 : buf_cmd_state_bus_en[i] = '0; + 703 8826 : DONE_PARTIAL: begin // Other part of dual load hasn't returned + 704 8826 : buf_nxtstate[i] = dec_tlu_force_halt ? IDLE : (buf_ldfwd[i] | buf_ldfwd[buf_dualtag[i]] | any_done_wait_state) ? DONE_WAIT : DONE; + 705 8826 : buf_state_bus_en[i] = bus_rsp_read & ((bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(buf_dualtag[i])) | + 706 8826 : (buf_ldfwd[buf_dualtag[i]] & (bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(buf_ldfwdtag[buf_dualtag[i]])))); + 707 8826 : buf_state_en[i] = (buf_state_bus_en[i] & lsu_bus_clk_en) | dec_tlu_force_halt; + 708 8826 : buf_cmd_state_bus_en[i] = '0; 709 : end - 710 12005 : DONE_WAIT: begin // START_WAIT state if there are multiple outstanding nb returns - 711 12005 : buf_nxtstate[i] = dec_tlu_force_halt ? IDLE : DONE; - 712 12005 : buf_state_en[i] = ((RspPtr == DEPTH_LOG2'(i)) | (buf_dual[i] & (buf_dualtag[i] == RspPtr))) | dec_tlu_force_halt; - 713 12005 : buf_cmd_state_bus_en[i] = '0; + 710 12025 : DONE_WAIT: begin // START_WAIT state if there are multiple outstanding nb returns + 711 12025 : buf_nxtstate[i] = dec_tlu_force_halt ? IDLE : DONE; + 712 12025 : buf_state_en[i] = ((RspPtr == DEPTH_LOG2'(i)) | (buf_dual[i] & (buf_dualtag[i] == RspPtr))) | dec_tlu_force_halt; + 713 12025 : buf_cmd_state_bus_en[i] = '0; 714 : end - 715 481828 : DONE: begin - 716 481828 : buf_nxtstate[i] = IDLE; - 717 481828 : buf_rst[i] = 1'b1; - 718 481828 : buf_state_en[i] = 1'b1; - 719 481828 : buf_ldfwd_in[i] = 1'b0; - 720 481828 : buf_ldfwd_en[i] = buf_state_en[i]; - 721 481828 : buf_cmd_state_bus_en[i] = '0; + 715 481272 : DONE: begin + 716 481272 : buf_nxtstate[i] = IDLE; + 717 481272 : buf_rst[i] = 1'b1; + 718 481272 : buf_state_en[i] = 1'b1; + 719 481272 : buf_ldfwd_in[i] = 1'b0; + 720 481272 : buf_ldfwd_en[i] = buf_state_en[i]; + 721 481272 : buf_cmd_state_bus_en[i] = '0; 722 : end 723 0 : default : begin 724 0 : buf_nxtstate[i] = IDLE; diff --git a/html/main/coverage_dashboard/all/index_el2_lsu_bus_intf.sv.html b/html/main/coverage_dashboard/all/index_el2_lsu_bus_intf.sv.html index 687d6ba4062..630eaa31ca4 100644 --- a/html/main/coverage_dashboard/all/index_el2_lsu_bus_intf.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_lsu_bus_intf.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -131,7 +131,7 @@ 27 : #( 28 : `include "el2_param.vh" 29 : )( - 30 61843746 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 30 61251245 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. 31 0 : input logic clk_override, // Override non-functional clock gating 32 316 : input logic rst_l, // reset, active low 33 0 : input logic scan_mode, // scan mode @@ -140,71 +140,71 @@ 36 301 : input logic dec_tlu_sideeffect_posted_disable, // disable the posted sideeffect load store to the bus 37 : 38 : // various clocks needed for the bus reads and writes - 39 2035983 : input logic lsu_bus_obuf_c1_clken, // obuf clock enable - 40 1088274 : input logic lsu_busm_clken, // bus clock enable + 39 2018773 : input logic lsu_bus_obuf_c1_clken, // obuf clock enable + 40 1078918 : input logic lsu_busm_clken, // bus clock enable 41 : - 42 61843746 : input logic lsu_c1_r_clk, // r pipe single pulse clock - 43 61843746 : input logic lsu_c2_r_clk, // r pipe double pulse clock - 44 61843746 : input logic lsu_bus_ibuf_c1_clk, // ibuf single pulse clock + 42 61251245 : input logic lsu_c1_r_clk, // r pipe single pulse clock + 43 61251245 : input logic lsu_c2_r_clk, // r pipe double pulse clock + 44 61251245 : input logic lsu_bus_ibuf_c1_clk, // ibuf single pulse clock 45 0 : input logic lsu_bus_obuf_c1_clk, // obuf single pulse clock - 46 61843746 : input logic lsu_bus_buf_c1_clk, // buf single pulse clock - 47 61843746 : input logic lsu_free_c2_clk, // free clock double pulse clock - 48 61843746 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 46 61251245 : input logic lsu_bus_buf_c1_clk, // buf single pulse clock + 47 61251245 : input logic lsu_free_c2_clk, // free clock double pulse clock + 48 61251245 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. 49 0 : input logic lsu_busm_clk, // bus clock 50 : - 51 2276073 : input logic dec_lsu_valid_raw_d, // Raw valid for address computation - 52 1669696 : input logic lsu_busreq_m, // bus request is in m + 51 2264531 : input logic dec_lsu_valid_raw_d, // Raw valid for address computation + 52 1658116 : input logic lsu_busreq_m, // bus request is in m 53 : - 54 478184 : input el2_lsu_pkt_t lsu_pkt_m, // lsu packet flowing down the pipe - 55 478181 : input el2_lsu_pkt_t lsu_pkt_r, // lsu packet flowing down the pipe + 54 475592 : input el2_lsu_pkt_t lsu_pkt_m, // lsu packet flowing down the pipe + 55 475589 : input el2_lsu_pkt_t lsu_pkt_r, // lsu packet flowing down the pipe 56 : - 57 350819 : input logic [31:0] lsu_addr_m, // lsu address flowing down the pipe - 58 347000 : input logic [31:0] lsu_addr_r, // lsu address flowing down the pipe + 57 349081 : input logic [31:0] lsu_addr_m, // lsu address flowing down the pipe + 58 345262 : input logic [31:0] lsu_addr_r, // lsu address flowing down the pipe 59 : - 60 351009 : input logic [31:0] end_addr_m, // lsu address flowing down the pipe - 61 347184 : input logic [31:0] end_addr_r, // lsu address flowing down the pipe + 60 349271 : input logic [31:0] end_addr_m, // lsu address flowing down the pipe + 61 345446 : input logic [31:0] end_addr_r, // lsu address flowing down the pipe 62 : - 63 54816 : input logic [31:0] store_data_r, // store data flowing down the pipe + 63 54774 : input logic [31:0] store_data_r, // store data flowing down the pipe 64 0 : input logic dec_tlu_force_halt, 65 : - 66 2279496 : input logic lsu_commit_r, // lsu instruction in r commits + 66 2267916 : input logic lsu_commit_r, // lsu instruction in r commits 67 29240 : input logic is_sideeffects_m, // lsu attribute is side_effects - 68 58638 : input logic flush_m_up, // flush + 68 58568 : input logic flush_m_up, // flush 69 29654 : input logic flush_r, // flush - 70 36568 : input logic ldst_dual_d, ldst_dual_m, ldst_dual_r, + 70 36562 : input logic ldst_dual_d, ldst_dual_m, ldst_dual_r, 71 : - 72 1659482 : output logic lsu_busreq_r, // bus request is in r - 73 808157 : output logic lsu_bus_buffer_pend_any, // bus buffer has a pending bus entry - 74 49046 : output logic lsu_bus_buffer_full_any, // write buffer is full - 75 1187701 : output logic lsu_bus_buffer_empty_any, // write buffer is empty + 72 1647902 : output logic lsu_busreq_r, // bus request is in r + 73 802237 : output logic lsu_bus_buffer_pend_any, // bus buffer has a pending bus entry + 74 48984 : output logic lsu_bus_buffer_full_any, // write buffer is full + 75 1177737 : output logic lsu_bus_buffer_empty_any, // write buffer is empty 76 200 : output logic [31:0] bus_read_data_m, // the bus return data 77 : 78 : 79 0 : output logic lsu_imprecise_error_load_any, // imprecise load bus error 80 0 : output logic lsu_imprecise_error_store_any, // imprecise store bus error - 81 401 : output logic [31:0] lsu_imprecise_error_addr_any, // address of the imprecise error + 81 400 : output logic [31:0] lsu_imprecise_error_addr_any, // address of the imprecise error 82 : 83 : // Non-blocking loads - 84 881640 : output logic lsu_nonblock_load_valid_m, // there is an external load -> put in the cam - 85 504869 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_tag_m, // the tag of the external non block load + 84 875716 : output logic lsu_nonblock_load_valid_m, // there is an external load -> put in the cam + 85 502857 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_tag_m, // the tag of the external non block load 86 0 : output logic lsu_nonblock_load_inv_r, // invalidate signal for the cam entry for non block loads - 87 504866 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_inv_tag_r, // tag of the enrty which needs to be invalidated - 88 920896 : output logic lsu_nonblock_load_data_valid,// the non block is valid - sending information back to the cam + 87 502854 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_inv_tag_r, // tag of the enrty which needs to be invalidated + 88 914818 : output logic lsu_nonblock_load_data_valid,// the non block is valid - sending information back to the cam 89 0 : output logic lsu_nonblock_load_data_error,// non block load has an error - 90 36662 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_data_tag, // the tag of the non block load sending the data/error - 91 71560 : output logic [31:0] lsu_nonblock_load_data, // Data of the non block load + 90 36598 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_data_tag, // the tag of the non block load sending the data/error + 91 71538 : output logic [31:0] lsu_nonblock_load_data, // Data of the non block load 92 : 93 : // PMU events - 94 1667379 : output logic lsu_pmu_bus_trxn, - 95 36420 : output logic lsu_pmu_bus_misaligned, + 94 1655267 : output logic lsu_pmu_bus_trxn, + 95 36414 : output logic lsu_pmu_bus_misaligned, 96 0 : output logic lsu_pmu_bus_error, - 97 67818 : output logic lsu_pmu_bus_busy, + 97 67790 : output logic lsu_pmu_bus_busy, 98 : 99 : // AXI Write Channels - 100 855209 : output logic lsu_axi_awvalid, - 101 1107817 : input logic lsu_axi_awready, + 100 849023 : output logic lsu_axi_awvalid, + 101 1095685 : input logic lsu_axi_awready, 102 0 : output logic [pt.LSU_BUS_TAG-1:0] lsu_axi_awid, - 103 401 : output logic [31:0] lsu_axi_awaddr, + 103 400 : output logic [31:0] lsu_axi_awaddr, 104 314 : output logic [3:0] lsu_axi_awregion, 105 0 : output logic [7:0] lsu_axi_awlen, 106 0 : output logic [2:0] lsu_axi_awsize, @@ -214,22 +214,22 @@ 110 0 : output logic [2:0] lsu_axi_awprot, 111 0 : output logic [3:0] lsu_axi_awqos, 112 : - 113 855209 : output logic lsu_axi_wvalid, - 114 1107817 : input logic lsu_axi_wready, - 115 31411 : output logic [63:0] lsu_axi_wdata, - 116 224989 : output logic [7:0] lsu_axi_wstrb, + 113 849023 : output logic lsu_axi_wvalid, + 114 1095685 : input logic lsu_axi_wready, + 115 31367 : output logic [63:0] lsu_axi_wdata, + 116 224179 : output logic [7:0] lsu_axi_wstrb, 117 317 : output logic lsu_axi_wlast, 118 : - 119 868520 : input logic lsu_axi_bvalid, + 119 862312 : input logic lsu_axi_bvalid, 120 317 : output logic lsu_axi_bready, 121 0 : input logic [1:0] lsu_axi_bresp, 122 0 : input logic [pt.LSU_BUS_TAG-1:0] lsu_axi_bid, 123 : 124 : // AXI Read Channels - 125 868958 : output logic lsu_axi_arvalid, - 126 1115481 : input logic lsu_axi_arready, + 125 863034 : output logic lsu_axi_arvalid, + 126 1103367 : input logic lsu_axi_arready, 127 0 : output logic [pt.LSU_BUS_TAG-1:0] lsu_axi_arid, - 128 401 : output logic [31:0] lsu_axi_araddr, + 128 400 : output logic [31:0] lsu_axi_araddr, 129 314 : output logic [3:0] lsu_axi_arregion, 130 0 : output logic [7:0] lsu_axi_arlen, 131 0 : output logic [2:0] lsu_axi_arsize, @@ -239,10 +239,10 @@ 135 0 : output logic [2:0] lsu_axi_arprot, 136 0 : output logic [3:0] lsu_axi_arqos, 137 : - 138 929722 : input logic lsu_axi_rvalid, + 138 923642 : input logic lsu_axi_rvalid, 139 317 : output logic lsu_axi_rready, 140 0 : input logic [pt.LSU_BUS_TAG-1:0] lsu_axi_rid, - 141 28838 : input logic [63:0] lsu_axi_rdata, + 141 28760 : input logic [63:0] lsu_axi_rdata, 142 0 : input logic [1:0] lsu_axi_rresp, 143 : 144 316 : input logic lsu_bus_clk_en @@ -256,16 +256,16 @@ 152 8172 : logic [3:0] ldst_byteen_m, ldst_byteen_r; 153 0 : logic [7:0] ldst_byteen_ext_m, ldst_byteen_ext_r; 154 0 : logic [3:0] ldst_byteen_hi_m, ldst_byteen_hi_r; - 155 431586 : logic [3:0] ldst_byteen_lo_m, ldst_byteen_lo_r; + 155 427958 : logic [3:0] ldst_byteen_lo_m, ldst_byteen_lo_r; 156 29230 : logic is_sideeffects_r; 157 : - 158 125038 : logic [63:0] store_data_ext_r; + 158 124906 : logic [63:0] store_data_ext_r; 159 1948 : logic [31:0] store_data_hi_r; - 160 63402 : logic [31:0] store_data_lo_r; + 160 63374 : logic [31:0] store_data_lo_r; 161 : - 162 1701223 : logic addr_match_dw_lo_r_m; - 163 1659527 : logic addr_match_word_lo_r_m; - 164 98804 : logic no_word_merge_r, no_dword_merge_r; + 162 1689181 : logic addr_match_dw_lo_r_m; + 163 1647959 : logic addr_match_word_lo_r_m; + 164 98168 : logic no_word_merge_r, no_dword_merge_r; 165 : 166 654 : logic ld_addr_rhit_lo_lo, ld_addr_rhit_hi_lo, ld_addr_rhit_lo_hi, ld_addr_rhit_hi_hi; 167 0 : logic [3:0] ld_byte_rhit_lo_lo, ld_byte_rhit_hi_lo, ld_byte_rhit_lo_hi, ld_byte_rhit_hi_hi; @@ -282,7 +282,7 @@ 178 74 : logic [63:0] ld_fwddata_lo, ld_fwddata_hi; 179 804 : logic [63:0] ld_fwddata_m; 180 : - 181 5698 : logic ld_full_hit_hi_m, ld_full_hit_lo_m; + 181 5697 : logic ld_full_hit_hi_m, ld_full_hit_lo_m; 182 10332 : logic ld_full_hit_m; 183 : 184 : assign ldst_byteen_m[3:0] = ({4{lsu_pkt_m.by}} & 4'b0001) | diff --git a/html/main/coverage_dashboard/all/index_el2_lsu_clkdomain.sv.html b/html/main/coverage_dashboard/all/index_el2_lsu_clkdomain.sv.html index f67099fe17e..3e2051e072e 100644 --- a/html/main/coverage_dashboard/all/index_el2_lsu_clkdomain.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_lsu_clkdomain.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -132,8 +132,8 @@ 28 : #( 29 : `include "el2_param.vh" 30 : )( - 31 61843746 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 32 61843746 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 31 61251245 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 32 61251245 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. 33 316 : input logic rst_l, // reset, active low 34 0 : input logic dec_tlu_force_halt, // This will be high till TLU goes to debug halt 35 : @@ -144,52 +144,52 @@ 40 : 41 258446 : input logic stbuf_reqvld_any, // stbuf is draining 42 0 : input logic stbuf_reqvld_flushed_any, // instruction going to stbuf is flushed - 43 1659482 : input logic lsu_busreq_r, // busreq in r - 44 808157 : input logic lsu_bus_buffer_pend_any, // bus buffer has a pending bus entry - 45 1187701 : input logic lsu_bus_buffer_empty_any, // external bus buffer is empty + 43 1647902 : input logic lsu_busreq_r, // busreq in r + 44 802237 : input logic lsu_bus_buffer_pend_any, // bus buffer has a pending bus entry + 45 1177737 : input logic lsu_bus_buffer_empty_any, // external bus buffer is empty 46 258763 : input logic lsu_stbuf_empty_any, // stbuf is empty 47 : 48 316 : input logic lsu_bus_clk_en, // bus clock enable 49 : - 50 623945 : input el2_lsu_pkt_t lsu_p, // lsu packet in decode - 51 478232 : input el2_lsu_pkt_t lsu_pkt_d, // lsu packet in d - 52 478184 : input el2_lsu_pkt_t lsu_pkt_m, // lsu packet in m - 53 478181 : input el2_lsu_pkt_t lsu_pkt_r, // lsu packet in r + 50 621353 : input el2_lsu_pkt_t lsu_p, // lsu packet in decode + 51 475640 : input el2_lsu_pkt_t lsu_pkt_d, // lsu packet in d + 52 475592 : input el2_lsu_pkt_t lsu_pkt_m, // lsu packet in m + 53 475589 : input el2_lsu_pkt_t lsu_pkt_r, // lsu packet in r 54 : 55 : // Outputs - 56 2035983 : output logic lsu_bus_obuf_c1_clken, // obuf clock enable - 57 1088274 : output logic lsu_busm_clken, // bus clock enable + 56 2018773 : output logic lsu_bus_obuf_c1_clken, // obuf clock enable + 57 1078918 : output logic lsu_busm_clken, // bus clock enable 58 : - 59 61843746 : output logic lsu_c1_m_clk, // m pipe single pulse clock - 60 61843746 : output logic lsu_c1_r_clk, // r pipe single pulse clock + 59 61251245 : output logic lsu_c1_m_clk, // m pipe single pulse clock + 60 61251245 : output logic lsu_c1_r_clk, // r pipe single pulse clock 61 : - 62 61843746 : output logic lsu_c2_m_clk, // m pipe double pulse clock - 63 61843746 : output logic lsu_c2_r_clk, // r pipe double pulse clock + 62 61251245 : output logic lsu_c2_m_clk, // m pipe double pulse clock + 63 61251245 : output logic lsu_c2_r_clk, // r pipe double pulse clock 64 : - 65 61843746 : output logic lsu_store_c1_m_clk, // store in m - 66 61843746 : output logic lsu_store_c1_r_clk, // store in r + 65 61251245 : output logic lsu_store_c1_m_clk, // store in m + 66 61251245 : output logic lsu_store_c1_r_clk, // store in r 67 : - 68 61843746 : output logic lsu_stbuf_c1_clk, + 68 61251245 : output logic lsu_stbuf_c1_clk, 69 0 : output logic lsu_bus_obuf_c1_clk, // ibuf clock - 70 61843746 : output logic lsu_bus_ibuf_c1_clk, // ibuf clock - 71 61843746 : output logic lsu_bus_buf_c1_clk, // ibuf clock + 70 61251245 : output logic lsu_bus_ibuf_c1_clk, // ibuf clock + 71 61251245 : output logic lsu_bus_buf_c1_clk, // ibuf clock 72 0 : output logic lsu_busm_clk, // bus clock 73 : - 74 61843746 : output logic lsu_free_c2_clk, // free double pulse clock + 74 61251245 : output logic lsu_free_c2_clk, // free double pulse clock 75 : 76 0 : input logic scan_mode // Scan mode 77 : ); 78 : - 79 2279570 : logic lsu_c1_m_clken, lsu_c1_r_clken; - 80 2034186 : logic lsu_c2_m_clken, lsu_c2_r_clken; - 81 2279556 : logic lsu_c1_m_clken_q, lsu_c1_r_clken_q; - 82 1065040 : logic lsu_store_c1_m_clken, lsu_store_c1_r_clken; + 79 2267990 : logic lsu_c1_m_clken, lsu_c1_r_clken; + 80 2022618 : logic lsu_c2_m_clken, lsu_c2_r_clken; + 81 2267976 : logic lsu_c1_m_clken_q, lsu_c1_r_clken_q; + 82 1059348 : logic lsu_store_c1_m_clken, lsu_store_c1_r_clken; 83 : 84 : 85 200944 : logic lsu_stbuf_c1_clken; - 86 1088274 : logic lsu_bus_ibuf_c1_clken, lsu_bus_buf_c1_clken; + 86 1078918 : logic lsu_bus_ibuf_c1_clken, lsu_bus_buf_c1_clken; 87 : - 88 856312 : logic lsu_free_c1_clken, lsu_free_c1_clken_q, lsu_free_c2_clken; + 88 847464 : logic lsu_free_c1_clken, lsu_free_c1_clken_q, lsu_free_c2_clken; 89 : 90 : //------------------------------------------------------------------------------------------- 91 : // Clock Enable logic diff --git a/html/main/coverage_dashboard/all/index_el2_lsu_dccm_ctl.sv.html b/html/main/coverage_dashboard/all/index_el2_lsu_dccm_ctl.sv.html index 3a516c68d49..90e616c20b4 100644 --- a/html/main/coverage_dashboard/all/index_el2_lsu_dccm_ctl.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_lsu_dccm_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -136,37 +136,37 @@ 32 : `include "el2_param.vh" 33 : ) 34 : ( - 35 61843746 : input logic lsu_c2_m_clk, // clocks - 36 61843746 : input logic lsu_c2_r_clk, // clocks - 37 61843746 : input logic lsu_c1_r_clk, // clocks - 38 61843746 : input logic lsu_store_c1_r_clk, // clocks - 39 61843746 : input logic lsu_free_c2_clk, // clocks + 35 61251245 : input logic lsu_c2_m_clk, // clocks + 36 61251245 : input logic lsu_c2_r_clk, // clocks + 37 61251245 : input logic lsu_c1_r_clk, // clocks + 38 61251245 : input logic lsu_store_c1_r_clk, // clocks + 39 61251245 : input logic lsu_free_c2_clk, // clocks 40 0 : input logic clk_override, // Override non-functional clock gating - 41 61843746 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 41 61251245 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. 42 : 43 316 : input logic rst_l, // reset, active low 44 : - 45 478181 : input el2_lsu_pkt_t lsu_pkt_r,// lsu packets - 46 478184 : input el2_lsu_pkt_t lsu_pkt_m,// lsu packets - 47 478232 : input el2_lsu_pkt_t lsu_pkt_d,// lsu packets + 45 475589 : input el2_lsu_pkt_t lsu_pkt_r,// lsu packets + 46 475592 : input el2_lsu_pkt_t lsu_pkt_m,// lsu packets + 47 475640 : input el2_lsu_pkt_t lsu_pkt_d,// lsu packets 48 614420 : input logic addr_in_dccm_d, // address maps to dccm 49 0 : input logic addr_in_pic_d, // address maps to pic 50 0 : input logic addr_in_pic_m, // address maps to pic 51 614420 : input logic addr_in_dccm_m, addr_in_dccm_r, // address in dccm per pipe stage 52 0 : input logic addr_in_pic_r, // address in pic per pipe stage 53 18768 : input logic lsu_raw_fwd_lo_r, lsu_raw_fwd_hi_r, - 54 2279496 : input logic lsu_commit_r, // lsu instruction in r commits - 55 36568 : input logic ldst_dual_m, ldst_dual_r,// load/store is unaligned at 32 bit boundary per pipe stage + 54 2267916 : input logic lsu_commit_r, // lsu instruction in r commits + 55 36562 : input logic ldst_dual_m, ldst_dual_r,// load/store is unaligned at 32 bit boundary per pipe stage 56 : 57 : // lsu address down the pipe - 58 594111 : input logic [31:0] lsu_addr_d, - 59 471774 : input logic [pt.DCCM_BITS-1:0] lsu_addr_m, - 60 594109 : input logic [31:0] lsu_addr_r, + 58 592373 : input logic [31:0] lsu_addr_d, + 59 470108 : input logic [pt.DCCM_BITS-1:0] lsu_addr_m, + 60 592371 : input logic [31:0] lsu_addr_r, 61 : 62 : // lsu address down the pipe - needed to check unaligned - 63 678187 : input logic [pt.DCCM_BITS-1:0] end_addr_d, - 64 678348 : input logic [pt.DCCM_BITS-1:0] end_addr_m, - 65 678346 : input logic [pt.DCCM_BITS-1:0] end_addr_r, + 63 676449 : input logic [pt.DCCM_BITS-1:0] end_addr_d, + 64 676610 : input logic [pt.DCCM_BITS-1:0] end_addr_m, + 65 676608 : input logic [pt.DCCM_BITS-1:0] end_addr_r, 66 : 67 : 68 258446 : input logic stbuf_reqvld_any, // write enable @@ -206,7 +206,7 @@ 102 47172 : input logic [pt.DCCM_DATA_WIDTH-1:0] sec_data_hi_m, // corrected dccm data 103 47172 : input logic [pt.DCCM_DATA_WIDTH-1:0] sec_data_lo_m, // corrected dccm data 104 : - 105 81386 : input logic [31:0] store_data_m, // Store data M-stage + 105 81344 : input logic [31:0] store_data_m, // Store data M-stage 106 0 : input logic dma_dccm_wen, // Perform DMA writes only for word/dword 107 0 : input logic dma_pic_wen, // Perform PIC writes 108 12 : input logic [2:0] dma_mem_tag_m, // DMA Buffer entry number M-stage @@ -218,10 +218,10 @@ 114 50849 : input logic [pt.DCCM_ECC_WIDTH-1:0] dma_dccm_wdata_ecc_lo, // ECC bits for the DMA wdata 115 : 116 1716 : output logic [pt.DCCM_DATA_WIDTH-1:0] store_data_hi_r, - 117 92644 : output logic [pt.DCCM_DATA_WIDTH-1:0] store_data_lo_r, + 117 92616 : output logic [pt.DCCM_DATA_WIDTH-1:0] store_data_lo_r, 118 1920 : output logic [pt.DCCM_DATA_WIDTH-1:0] store_datafn_hi_r, // data from the dccm - 119 92644 : output logic [pt.DCCM_DATA_WIDTH-1:0] store_datafn_lo_r, // data from the dccm - 120 56474 : output logic [31:0] store_data_r, // raw store data to be sent to bus + 119 92616 : output logic [pt.DCCM_DATA_WIDTH-1:0] store_datafn_lo_r, // data from the dccm + 120 56432 : output logic [31:0] store_data_r, // raw store data to be sent to bus 121 4 : output logic ld_single_ecc_error_r, 122 4 : output logic ld_single_ecc_error_r_ff, 123 : @@ -240,8 +240,8 @@ 136 561000 : output logic dccm_rden, // dccm interface -- write 137 18811 : output logic [pt.DCCM_BITS-1:0] dccm_wr_addr_lo, // dccm interface -- wr addr for lo bank 138 18811 : output logic [pt.DCCM_BITS-1:0] dccm_wr_addr_hi, // dccm interface -- wr addr for hi bank - 139 471780 : output logic [pt.DCCM_BITS-1:0] dccm_rd_addr_lo, // dccm interface -- read address for lo bank - 140 678187 : output logic [pt.DCCM_BITS-1:0] dccm_rd_addr_hi, // dccm interface -- read address for hi bank + 139 470114 : output logic [pt.DCCM_BITS-1:0] dccm_rd_addr_lo, // dccm interface -- read address for lo bank + 140 676449 : output logic [pt.DCCM_BITS-1:0] dccm_rd_addr_hi, // dccm interface -- read address for hi bank 141 5374 : output logic [pt.DCCM_FDATA_WIDTH-1:0] dccm_wr_data_lo, // dccm write data for lo bank 142 5374 : output logic [pt.DCCM_FDATA_WIDTH-1:0] dccm_wr_data_hi, // dccm write data for hi bank 143 : @@ -252,9 +252,9 @@ 148 0 : output logic picm_wren, // write to pic 149 0 : output logic picm_rden, // read to pick 150 0 : output logic picm_mken, // write to pic need a mask - 151 430 : output logic [31:0] picm_rdaddr, // address for pic read access - 152 430 : output logic [31:0] picm_wraddr, // address for pic write access - 153 92644 : output logic [31:0] picm_wr_data, // write data + 151 429 : output logic [31:0] picm_rdaddr, // address for pic read access + 152 429 : output logic [31:0] picm_wraddr, // address for pic write access + 153 92616 : output logic [31:0] picm_wr_data, // write data 154 0 : input logic [31:0] picm_rd_data, // read data 155 : 156 0 : input logic scan_mode // scan mode @@ -277,7 +277,7 @@ 173 0 : logic kill_ecc_corr_lo_r, kill_ecc_corr_hi_r; 174 : 175 : // byte_en flowing down - 176 648834 : logic [3:0] store_byteen_m ,store_byteen_r; + 176 647596 : logic [3:0] store_byteen_m ,store_byteen_r; 177 0 : logic [7:0] store_byteen_ext_m, store_byteen_ext_r; 178 : 179 : if (pt.LOAD_TO_USE_PLUS1 == 1) begin: L2U_Plus1_1 diff --git a/html/main/coverage_dashboard/all/index_el2_lsu_dccm_mem.sv.html b/html/main/coverage_dashboard/all/index_el2_lsu_dccm_mem.sv.html index 4a63fa3b9b6..eb6a7d815e3 100644 --- a/html/main/coverage_dashboard/all/index_el2_lsu_dccm_mem.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_lsu_dccm_mem.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -136,8 +136,8 @@ 32 : #( 33 : `include "el2_param.vh" 34 : )( - 35 61847773 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 36 61847773 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 35 61255272 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 36 61255272 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. 37 317 : input logic rst_l, // reset, active low 38 0 : input logic clk_override, // Override non-functional clock gating 39 : @@ -145,8 +145,8 @@ 41 562000 : input logic dccm_rden, // read enable 42 18924 : input logic [pt.DCCM_BITS-1:0] dccm_wr_addr_lo, // write address 43 18924 : input logic [pt.DCCM_BITS-1:0] dccm_wr_addr_hi, // write address - 44 471893 : input logic [pt.DCCM_BITS-1:0] dccm_rd_addr_lo, // read address - 45 678300 : input logic [pt.DCCM_BITS-1:0] dccm_rd_addr_hi, // read address for the upper bank in case of a misaligned access + 44 470227 : input logic [pt.DCCM_BITS-1:0] dccm_rd_addr_lo, // read address + 45 676562 : input logic [pt.DCCM_BITS-1:0] dccm_rd_addr_hi, // read address for the upper bank in case of a misaligned access 46 5613 : input logic [pt.DCCM_FDATA_WIDTH-1:0] dccm_wr_data_lo, // write data 47 5613 : input logic [pt.DCCM_FDATA_WIDTH-1:0] dccm_wr_data_hi, // write data 48 : el2_mem_if.veer_dccm dccm_mem_export, // RAM repositioned in testbench and connected by this interface @@ -164,7 +164,7 @@ 60 : 61 59820 : logic [pt.DCCM_NUM_BANKS-1:0] wren_bank; 62 143252 : logic [pt.DCCM_NUM_BANKS-1:0] rden_bank; - 63 689342 : logic [pt.DCCM_NUM_BANKS-1:0] [pt.DCCM_BITS-1:(pt.DCCM_BANK_BITS+2)] addr_bank; + 63 687604 : logic [pt.DCCM_NUM_BANKS-1:0] [pt.DCCM_BITS-1:(pt.DCCM_BANK_BITS+2)] addr_bank; 64 0 : logic [pt.DCCM_BITS-1:(pt.DCCM_BANK_BITS+DCCM_WIDTH_BITS)] rd_addr_even, rd_addr_odd; 65 0 : logic rd_unaligned, wr_unaligned; 66 1846 : logic [pt.DCCM_NUM_BANKS-1:0] [pt.DCCM_FDATA_WIDTH-1:0] dccm_bank_dout; @@ -172,8 +172,8 @@ 68 : 69 5613 : logic [pt.DCCM_NUM_BANKS-1:0][pt.DCCM_FDATA_WIDTH-1:0] wr_data_bank; 70 : - 71 1201391 : logic [(DCCM_WIDTH_BITS+pt.DCCM_BANK_BITS-1):DCCM_WIDTH_BITS] dccm_rd_addr_lo_q; - 72 1201485 : logic [(DCCM_WIDTH_BITS+pt.DCCM_BANK_BITS-1):DCCM_WIDTH_BITS] dccm_rd_addr_hi_q; + 71 1197115 : logic [(DCCM_WIDTH_BITS+pt.DCCM_BANK_BITS-1):DCCM_WIDTH_BITS] dccm_rd_addr_lo_q; + 72 1197207 : logic [(DCCM_WIDTH_BITS+pt.DCCM_BANK_BITS-1):DCCM_WIDTH_BITS] dccm_rd_addr_hi_q; 73 : 74 190014 : logic [pt.DCCM_NUM_BANKS-1:0] dccm_clken; 75 : diff --git a/html/main/coverage_dashboard/all/index_el2_lsu_ecc.sv.html b/html/main/coverage_dashboard/all/index_el2_lsu_ecc.sv.html index 8d9ee5bd4f7..da0be09647a 100644 --- a/html/main/coverage_dashboard/all/index_el2_lsu_ecc.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_lsu_ecc.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -135,22 +135,22 @@ 31 : `include "el2_param.vh" 32 : ) 33 : ( - 34 61843746 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 35 61843746 : input logic lsu_c2_r_clk, // clock + 34 61251245 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 35 61251245 : input logic lsu_c2_r_clk, // clock 36 0 : input logic clk_override, // Override non-functional clock gating 37 316 : input logic rst_l, // reset, active low 38 0 : input logic scan_mode, // scan mode 39 : - 40 478184 : input el2_lsu_pkt_t lsu_pkt_m, // packet in m - 41 478181 : input el2_lsu_pkt_t lsu_pkt_r, // packet in r + 40 475592 : input el2_lsu_pkt_t lsu_pkt_m, // packet in m + 41 475589 : input el2_lsu_pkt_t lsu_pkt_r, // packet in r 42 7574 : input logic [pt.DCCM_DATA_WIDTH-1:0] stbuf_data_any, 43 : 44 8 : input logic dec_tlu_core_ecc_disable, // disables the ecc computation and error flagging 45 : 46 561000 : input logic lsu_dccm_rden_r, // dccm rden 47 614420 : input logic addr_in_dccm_r, // address in dccm - 48 471772 : input logic [pt.DCCM_BITS-1:0] lsu_addr_r, // start address - 49 678346 : input logic [pt.DCCM_BITS-1:0] end_addr_r, // end address + 48 470106 : input logic [pt.DCCM_BITS-1:0] lsu_addr_r, // start address + 49 676608 : input logic [pt.DCCM_BITS-1:0] end_addr_r, // end address 50 0 : input logic [pt.DCCM_DATA_WIDTH-1:0] dccm_rdata_hi_r, // data from the dccm 51 0 : input logic [pt.DCCM_DATA_WIDTH-1:0] dccm_rdata_lo_r, // data from the dccm 52 0 : input logic [pt.DCCM_ECC_WIDTH-1:0] dccm_data_ecc_hi_r, // data from the dccm + ecc @@ -164,8 +164,8 @@ 60 4 : input logic ld_single_ecc_error_r_ff, // ld has a single ecc error 61 561000 : input logic lsu_dccm_rden_m, // dccm rden 62 614420 : input logic addr_in_dccm_m, // address in dccm - 63 471774 : input logic [pt.DCCM_BITS-1:0] lsu_addr_m, // start address - 64 678348 : input logic [pt.DCCM_BITS-1:0] end_addr_m, // end address + 63 470108 : input logic [pt.DCCM_BITS-1:0] lsu_addr_m, // start address + 64 676610 : input logic [pt.DCCM_BITS-1:0] end_addr_m, // end address 65 47172 : input logic [pt.DCCM_DATA_WIDTH-1:0] dccm_rdata_hi_m, // raw data from mem 66 47172 : input logic [pt.DCCM_DATA_WIDTH-1:0] dccm_rdata_lo_m, // raw data from mem 67 154095 : input logic [pt.DCCM_ECC_WIDTH-1:0] dccm_data_ecc_hi_m, // ecc read out from mem diff --git a/html/main/coverage_dashboard/all/index_el2_lsu_lsc_ctl.sv.html b/html/main/coverage_dashboard/all/index_el2_lsu_lsc_ctl.sv.html index b77f0ad23b7..162ff6edb95 100644 --- a/html/main/coverage_dashboard/all/index_el2_lsu_lsc_ctl.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_lsu_lsc_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -136,14 +136,14 @@ 32 : )( 33 316 : input logic rst_l, // reset, active low 34 0 : input logic clk_override, // Override non-functional clock gating - 35 61843746 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 35 61251245 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. 36 : 37 : // clocks per pipe - 38 61843746 : input logic lsu_c1_m_clk, - 39 61843746 : input logic lsu_c1_r_clk, - 40 61843746 : input logic lsu_c2_m_clk, - 41 61843746 : input logic lsu_c2_r_clk, - 42 61843746 : input logic lsu_store_c1_m_clk, + 38 61251245 : input logic lsu_c1_m_clk, + 39 61251245 : input logic lsu_c1_r_clk, + 40 61251245 : input logic lsu_c2_m_clk, + 41 61251245 : input logic lsu_c2_r_clk, + 42 61251245 : input logic lsu_store_c1_m_clk, 43 : 44 0 : input logic [31:0] lsu_ld_data_r, // Load data R-stage 45 24694 : input logic [31:0] lsu_ld_data_corr_r, // ECC corrected data R-stage @@ -154,38 +154,38 @@ 50 4 : input logic lsu_single_ecc_error_m, // ECC single bit error M-stage 51 4 : input logic lsu_double_ecc_error_m, // ECC double bit error M-stage 52 : - 53 58638 : input logic flush_m_up, // Flush M and D stage + 53 58568 : input logic flush_m_up, // Flush M and D stage 54 29654 : input logic flush_r, // Flush R-stage - 55 36568 : input logic ldst_dual_d, // load/store is unaligned at 32 bit boundary D-stage - 56 36568 : input logic ldst_dual_m, // load/store is unaligned at 32 bit boundary M-stage - 57 36568 : input logic ldst_dual_r, // load/store is unaligned at 32 bit boundary R-stage + 55 36562 : input logic ldst_dual_d, // load/store is unaligned at 32 bit boundary D-stage + 56 36562 : input logic ldst_dual_m, // load/store is unaligned at 32 bit boundary M-stage + 57 36562 : input logic ldst_dual_r, // load/store is unaligned at 32 bit boundary R-stage 58 : - 59 413833 : input logic [31:0] exu_lsu_rs1_d, // address - 60 81386 : input logic [31:0] exu_lsu_rs2_d, // store data + 59 411891 : input logic [31:0] exu_lsu_rs1_d, // address + 60 81344 : input logic [31:0] exu_lsu_rs2_d, // store data 61 : - 62 623945 : input el2_lsu_pkt_t lsu_p, // lsu control packet - 63 2276073 : input logic dec_lsu_valid_raw_d, // Raw valid for address computation - 64 270518 : input logic [11:0] dec_lsu_offset_d, // 12b offset for load/store addresses + 62 621353 : input el2_lsu_pkt_t lsu_p, // lsu control packet + 63 2264531 : input logic dec_lsu_valid_raw_d, // Raw valid for address computation + 64 269944 : input logic [11:0] dec_lsu_offset_d, // 12b offset for load/store addresses 65 : 66 0 : input logic [31:0] picm_mask_data_m, // PIC data M-stage 67 200 : input logic [31:0] bus_read_data_m, // the bus return data 68 38395 : output logic [31:0] lsu_result_m, // lsu load data 69 29134 : output logic [31:0] lsu_result_corr_r, // This is the ECC corrected data going to RF 70 : // lsu address down the pipe - 71 594111 : output logic [31:0] lsu_addr_d, - 72 594110 : output logic [31:0] lsu_addr_m, - 73 594109 : output logic [31:0] lsu_addr_r, + 71 592373 : output logic [31:0] lsu_addr_d, + 72 592372 : output logic [31:0] lsu_addr_m, + 73 592371 : output logic [31:0] lsu_addr_r, 74 : // lsu address down the pipe - needed to check unaligned - 75 594149 : output logic [31:0] end_addr_d, - 76 594510 : output logic [31:0] end_addr_m, - 77 594509 : output logic [31:0] end_addr_r, + 75 592411 : output logic [31:0] end_addr_d, + 76 592772 : output logic [31:0] end_addr_m, + 77 592771 : output logic [31:0] end_addr_r, 78 : // store data down the pipe - 79 81386 : output logic [31:0] store_data_m, + 79 81344 : output logic [31:0] store_data_m, 80 : 81 0 : input logic [31:0] dec_tlu_mrac_ff, // CSR for memory region control 82 60 : output logic lsu_exc_m, // Access or misaligned fault 83 29240 : output logic is_sideeffects_m, // is sideffects space - 84 2279496 : output logic lsu_commit_r, // lsu instruction in r commits + 84 2267916 : output logic lsu_commit_r, // lsu instruction in r commits 85 4 : output logic lsu_single_ecc_error_incr,// LSU inc SB error counter 86 4 : output el2_lsu_error_pkt_t lsu_error_pkt_r, // lsu exception packet 87 : @@ -211,25 +211,25 @@ 107 12 : input logic [63:0] dma_mem_wdata, 108 : 109 : // Store buffer related signals - 110 478232 : output el2_lsu_pkt_t lsu_pkt_d, - 111 478184 : output el2_lsu_pkt_t lsu_pkt_m, - 112 478181 : output el2_lsu_pkt_t lsu_pkt_r, + 110 475640 : output el2_lsu_pkt_t lsu_pkt_d, + 111 475592 : output el2_lsu_pkt_t lsu_pkt_m, + 112 475589 : output el2_lsu_pkt_t lsu_pkt_r, 113 : - 114 167732 : input logic lsu_pmp_error_start, - 115 167732 : input logic lsu_pmp_error_end, + 114 162421 : input logic lsu_pmp_error_start, + 115 162421 : input logic lsu_pmp_error_end, 116 : 117 0 : input logic scan_mode // Scan mode 118 : 119 : ); 120 : - 121 13 : logic [31:3] end_addr_pre_m, end_addr_pre_r; - 122 594111 : logic [31:0] full_addr_d; - 123 594149 : logic [31:0] full_end_addr_d; - 124 476238 : logic [31:0] lsu_rs1_d; - 125 270136 : logic [11:0] lsu_offset_d; - 126 476238 : logic [31:0] rs1_d; - 127 270136 : logic [11:0] offset_d; - 128 283348 : logic [12:0] end_addr_offset_d; + 121 12 : logic [31:3] end_addr_pre_m, end_addr_pre_r; + 122 592373 : logic [31:0] full_addr_d; + 123 592411 : logic [31:0] full_end_addr_d; + 124 474296 : logic [31:0] lsu_rs1_d; + 125 269562 : logic [11:0] lsu_offset_d; + 126 474296 : logic [31:0] rs1_d; + 127 269562 : logic [11:0] offset_d; + 128 282774 : logic [12:0] end_addr_offset_d; 129 0 : logic [2:0] addr_offset_d; 130 : 131 12 : logic [63:0] dma_mem_wdata_shifted; @@ -242,12 +242,12 @@ 138 0 : logic fir_dccm_access_error_m, fir_nondccm_access_error_m; 139 : 140 0 : logic [3:0] exc_mscause_d, exc_mscause_m; - 141 476238 : logic [31:0] rs1_d_raw; - 142 81386 : logic [31:0] store_data_d, store_data_pre_m, store_data_m_in; + 141 474296 : logic [31:0] rs1_d_raw; + 142 81344 : logic [31:0] store_data_d, store_data_pre_m, store_data_m_in; 143 198 : logic [31:0] bus_read_data_r; 144 : 145 18 : el2_lsu_pkt_t dma_pkt_d; - 146 478184 : el2_lsu_pkt_t lsu_pkt_m_in, lsu_pkt_r_in; + 146 475592 : el2_lsu_pkt_t lsu_pkt_m_in, lsu_pkt_r_in; 147 4 : el2_lsu_error_pkt_t lsu_error_pkt_m; 148 : 149 : diff --git a/html/main/coverage_dashboard/all/index_el2_lsu_stbuf.sv.html b/html/main/coverage_dashboard/all/index_el2_lsu_stbuf.sv.html index 2cab8ded0f2..b80902eec04 100644 --- a/html/main/coverage_dashboard/all/index_el2_lsu_stbuf.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_lsu_stbuf.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -137,20 +137,20 @@ 33 : `include "el2_param.vh" 34 : ) 35 : ( - 36 61843746 : input logic clk, // core clock + 36 61251245 : input logic clk, // core clock 37 316 : input logic rst_l, // reset 38 : - 39 61843746 : input logic lsu_stbuf_c1_clk, // stbuf clock - 40 61843746 : input logic lsu_free_c2_clk, // free clk + 39 61251245 : input logic lsu_stbuf_c1_clk, // stbuf clock + 40 61251245 : input logic lsu_free_c2_clk, // free clk 41 : 42 : // Store Buffer input 43 258930 : input logic store_stbuf_reqvld_r, // core instruction goes to stbuf - 44 2279496 : input logic lsu_commit_r, // lsu commits - 45 2276073 : input logic dec_lsu_valid_raw_d, // Speculative decode valid + 44 2267916 : input logic lsu_commit_r, // lsu commits + 45 2264531 : input logic dec_lsu_valid_raw_d, // Speculative decode valid 46 1716 : input logic [pt.DCCM_DATA_WIDTH-1:0] store_data_hi_r, // merged data from the dccm for stores. This is used for fwding - 47 92644 : input logic [pt.DCCM_DATA_WIDTH-1:0] store_data_lo_r, // merged data from the dccm for stores. This is used for fwding + 47 92616 : input logic [pt.DCCM_DATA_WIDTH-1:0] store_data_lo_r, // merged data from the dccm for stores. This is used for fwding 48 1920 : input logic [pt.DCCM_DATA_WIDTH-1:0] store_datafn_hi_r, // merged data from the dccm for stores - 49 92644 : input logic [pt.DCCM_DATA_WIDTH-1:0] store_datafn_lo_r, // merged data from the dccm for stores + 49 92616 : input logic [pt.DCCM_DATA_WIDTH-1:0] store_datafn_lo_r, // merged data from the dccm for stores 50 : 51 : // Store Buffer output 52 258446 : output logic stbuf_reqvld_any, // stbuf is draining @@ -163,22 +163,22 @@ 59 258763 : output logic lsu_stbuf_empty_any, // stbuf is empty 60 258930 : output logic ldst_stbuf_reqvld_r, // needed for clocking 61 : - 62 471780 : input logic [pt.LSU_SB_BITS-1:0] lsu_addr_d, // lsu address D-stage - 63 594110 : input logic [31:0] lsu_addr_m, // lsu address M-stage - 64 594109 : input logic [31:0] lsu_addr_r, // lsu address R-stage + 62 470114 : input logic [pt.LSU_SB_BITS-1:0] lsu_addr_d, // lsu address D-stage + 63 592372 : input logic [31:0] lsu_addr_m, // lsu address M-stage + 64 592371 : input logic [31:0] lsu_addr_r, // lsu address R-stage 65 : - 66 678187 : input logic [pt.LSU_SB_BITS-1:0] end_addr_d, // lsu end address D-stage - needed to check unaligned - 67 594510 : input logic [31:0] end_addr_m, // lsu end address M-stage - needed to check unaligned - 68 594509 : input logic [31:0] end_addr_r, // lsu end address R-stage - needed to check unaligned + 66 676449 : input logic [pt.LSU_SB_BITS-1:0] end_addr_d, // lsu end address D-stage - needed to check unaligned + 67 592772 : input logic [31:0] end_addr_m, // lsu end address M-stage - needed to check unaligned + 68 592771 : input logic [31:0] end_addr_r, // lsu end address R-stage - needed to check unaligned 69 : - 70 36568 : input logic ldst_dual_d, ldst_dual_m, ldst_dual_r, + 70 36562 : input logic ldst_dual_d, ldst_dual_m, ldst_dual_r, 71 614420 : input logic addr_in_dccm_m, // address is in dccm 72 614420 : input logic addr_in_dccm_r, // address is in dccm 73 : 74 : // Forwarding signals 75 614428 : input logic lsu_cmpen_m, // needed for forwarding stbuf - load - 76 478184 : input el2_lsu_pkt_t lsu_pkt_m, // LSU packet M-stage - 77 478181 : input el2_lsu_pkt_t lsu_pkt_r, // LSU packet R-stage + 76 475592 : input el2_lsu_pkt_t lsu_pkt_m, // LSU packet M-stage + 77 475589 : input el2_lsu_pkt_t lsu_pkt_r, // LSU packet R-stage 78 : 79 5218 : output logic [pt.DCCM_DATA_WIDTH-1:0] stbuf_fwddata_hi_m, // stbuf data 80 4892 : output logic [pt.DCCM_DATA_WIDTH-1:0] stbuf_fwddata_lo_m, // stbuf data @@ -206,13 +206,13 @@ 102 85454 : logic [DEPTH-1:0] stbuf_wr_en; 103 0 : logic [DEPTH-1:0] stbuf_dma_kill_en; 104 85454 : logic [DEPTH-1:0] stbuf_reset; - 105 655432 : logic [DEPTH-1:0][pt.LSU_SB_BITS-1:0] stbuf_addrin; + 105 653694 : logic [DEPTH-1:0][pt.LSU_SB_BITS-1:0] stbuf_addrin; 106 15488 : logic [DEPTH-1:0][DATA_WIDTH-1:0] stbuf_datain; 107 73705 : logic [DEPTH-1:0][BYTE_WIDTH-1:0] stbuf_byteenin; 108 : 109 0 : logic [7:0] store_byteen_ext_r; 110 0 : logic [BYTE_WIDTH-1:0] store_byteen_hi_r; - 111 697750 : logic [BYTE_WIDTH-1:0] store_byteen_lo_r; + 111 696402 : logic [BYTE_WIDTH-1:0] store_byteen_lo_r; 112 : 113 258730 : logic WrPtrEn, RdPtrEn; 114 85460 : logic [DEPTH_LOG2-1:0] WrPtr, RdPtr; @@ -225,7 +225,7 @@ 121 0 : logic [3:0] stbuf_numvld_any, stbuf_specvld_any; 122 0 : logic [1:0] stbuf_specvld_m, stbuf_specvld_r; 123 : - 124 678188 : logic [pt.LSU_SB_BITS-1:$clog2(BYTE_WIDTH)] cmpaddr_hi_m, cmpaddr_lo_m; + 124 676450 : logic [pt.LSU_SB_BITS-1:$clog2(BYTE_WIDTH)] cmpaddr_hi_m, cmpaddr_lo_m; 125 : 126 : // variables to detect matching from the store queue 127 3558 : logic [DEPTH-1:0] stbuf_match_hi, stbuf_match_lo; @@ -241,7 +241,7 @@ 137 120 : logic [BYTE_WIDTH-1:0] ld_byte_hit_hi, ld_byte_rhit_hi; 138 : 139 0 : logic [BYTE_WIDTH-1:0] ldst_byteen_hi_r; - 140 648029 : logic [BYTE_WIDTH-1:0] ldst_byteen_lo_r; + 140 644401 : logic [BYTE_WIDTH-1:0] ldst_byteen_lo_r; 141 : // byte_en flowing down 142 0 : logic [7:0] ldst_byteen_r; 143 0 : logic [7:0] ldst_byteen_ext_r; diff --git a/html/main/coverage_dashboard/all/index_el2_lsu_trigger.sv.html b/html/main/coverage_dashboard/all/index_el2_lsu_trigger.sv.html index 9dab017c592..705b38b3809 100644 --- a/html/main/coverage_dashboard/all/index_el2_lsu_trigger.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_lsu_trigger.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -132,9 +132,9 @@ 28 : `include "el2_param.vh" 29 : )( 30 1 : input el2_trigger_pkt_t [3:0] trigger_pkt_any, // trigger packet from dec - 31 478185 : input el2_lsu_pkt_t lsu_pkt_m, // lsu packet - 32 596547 : input logic [31:0] lsu_addr_m, // address - 33 83823 : input logic [31:0] store_data_m, // store data + 31 475593 : input el2_lsu_pkt_t lsu_pkt_m, // lsu packet + 32 594809 : input logic [31:0] lsu_addr_m, // address + 33 83781 : input logic [31:0] store_data_m, // store data 34 : 35 2450 : output logic [3:0] lsu_trigger_match_m // match result 36 : ); diff --git a/html/main/coverage_dashboard/all/index_el2_mem.sv.html b/html/main/coverage_dashboard/all/index_el2_mem.sv.html index 5a0515b4139..987d38ce7fc 100644 --- a/html/main/coverage_dashboard/all/index_el2_mem.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_mem.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -126,7 +126,7 @@ 22 : `include "el2_param.vh" 23 : ) 24 : ( - 25 61843746 : input logic clk, + 25 61251245 : input logic clk, 26 316 : input logic rst_l, 27 0 : input logic dccm_clk_override, 28 0 : input logic icm_clk_override, @@ -137,8 +137,8 @@ 33 561000 : input logic dccm_rden, 34 18811 : input logic [pt.DCCM_BITS-1:0] dccm_wr_addr_lo, 35 18811 : input logic [pt.DCCM_BITS-1:0] dccm_wr_addr_hi, - 36 471780 : input logic [pt.DCCM_BITS-1:0] dccm_rd_addr_lo, - 37 678187 : input logic [pt.DCCM_BITS-1:0] dccm_rd_addr_hi, + 36 470114 : input logic [pt.DCCM_BITS-1:0] dccm_rd_addr_lo, + 37 676449 : input logic [pt.DCCM_BITS-1:0] dccm_rd_addr_hi, 38 5374 : input logic [pt.DCCM_FDATA_WIDTH-1:0] dccm_wr_data_lo, 39 5374 : input logic [pt.DCCM_FDATA_WIDTH-1:0] dccm_wr_data_hi, 40 : @@ -147,16 +147,16 @@ 43 47172 : output logic [pt.DCCM_FDATA_WIDTH-1:0] dccm_rd_data_hi, 44 : 45 : //ICCM ports - 46 160248 : input logic [pt.ICCM_BITS-1:1] iccm_rw_addr, + 46 160008 : input logic [pt.ICCM_BITS-1:1] iccm_rw_addr, 47 8 : input logic iccm_buf_correct_ecc, // ICCM is doing a single bit error correct cycle 48 8 : input logic iccm_correction_state, // ICCM is doing a single bit error correct cycle 49 74 : input logic iccm_wren, - 50 133458 : input logic iccm_rden, + 50 133416 : input logic iccm_rden, 51 0 : input logic [2:0] iccm_wr_size, 52 14 : input logic [77:0] iccm_wr_data, 53 : - 54 136544 : output logic [63:0] iccm_rd_data, - 55 161276 : output logic [77:0] iccm_rd_data_ecc, + 54 136542 : output logic [63:0] iccm_rd_data, + 55 161274 : output logic [77:0] iccm_rd_data_ecc, 56 : 57 : // Icache and Itag Ports 58 : @@ -164,12 +164,12 @@ 60 255918 : input logic [pt.ICACHE_NUM_WAYS-1:0] ic_tag_valid, 61 10432 : input logic [pt.ICACHE_NUM_WAYS-1:0] ic_wr_en, 62 680092 : input logic ic_rd_en, - 63 1739005 : input logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. - 64 5603285 : input logic ic_sel_premux_data, // Premux data sel + 63 1731051 : input logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. + 64 5573723 : input logic ic_sel_premux_data, // Premux data sel 65 0 : input el2_ic_data_ext_in_pkt_t [pt.ICACHE_NUM_WAYS-1:0][pt.ICACHE_BANKS_WAY-1:0] ic_data_ext_in_pkt, 66 0 : input el2_ic_tag_ext_in_pkt_t [pt.ICACHE_NUM_WAYS-1:0] ic_tag_ext_in_pkt, 67 : - 68 560657 : input logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data, // Data to fill to the Icache. With ECC + 68 558675 : input logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data, // Data to fill to the Icache. With ECC 69 0 : input logic [70:0] ic_debug_wr_data, // Debug wr cache. 70 231247 : output logic [70:0] ic_debug_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 71 0 : input logic [pt.ICACHE_INDEX_HI:3] ic_debug_addr, // Read/Write addresss to the Icache. @@ -178,7 +178,7 @@ 74 0 : input logic ic_debug_tag_array, // Debug tag array 75 0 : input logic [pt.ICACHE_NUM_WAYS-1:0] ic_debug_way, // Debug way. Rd or Wr. 76 : - 77 2137063 : output logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC + 77 2129109 : output logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 78 0 : output logic [25:0] ictag_debug_rd_data,// Debug icache tag. 79 : 80 : @@ -193,7 +193,7 @@ 89 : 90 : ); 91 : - 92 61843746 : logic active_clk; + 92 61251245 : logic active_clk; 93 : rvoclkhdr active_cg ( .en(1'b1), .l1clk(active_clk), .* ); 94 : 95 : el2_mem_if mem_export_local (); diff --git a/html/main/coverage_dashboard/all/index_el2_mem_if.sv.html b/html/main/coverage_dashboard/all/index_el2_mem_if.sv.html index b0c13fa467f..a532f3e1aff 100644 --- a/html/main/coverage_dashboard/all/index_el2_mem_if.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_mem_if.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -130,26 +130,26 @@ 26 : 27 : ////////////////////////////////////////// 28 : // Clock - 29 145092138 : logic clk; + 29 144272184 : logic clk; 30 : 31 : 32 : ////////////////////////////////////////// 33 : // ICCM - 34 786552 : logic [pt.ICCM_NUM_BANKS-1:0] iccm_clken; + 34 786492 : logic [pt.ICCM_NUM_BANKS-1:0] iccm_clken; 35 48 : logic [pt.ICCM_NUM_BANKS-1:0] iccm_wren_bank; - 36 479510 : logic [pt.ICCM_NUM_BANKS-1:0][pt.ICCM_BITS-1:pt.ICCM_BANK_INDEX_LO] iccm_addr_bank; + 36 478790 : logic [pt.ICCM_NUM_BANKS-1:0][pt.ICCM_BITS-1:pt.ICCM_BANK_INDEX_LO] iccm_addr_bank; 37 : 38 260 : logic [pt.ICCM_NUM_BANKS-1:0][ 31:0] iccm_bank_wr_data; 39 12 : logic [pt.ICCM_NUM_BANKS-1:0][ pt.ICCM_ECC_WIDTH-1:0] iccm_bank_wr_ecc; - 40 66189 : logic [pt.ICCM_NUM_BANKS-1:0][ 31:0] iccm_bank_dout; - 41 159453 : logic [pt.ICCM_NUM_BANKS-1:0][ pt.ICCM_ECC_WIDTH-1:0] iccm_bank_ecc; + 40 66183 : logic [pt.ICCM_NUM_BANKS-1:0][ 31:0] iccm_bank_dout; + 41 159447 : logic [pt.ICCM_NUM_BANKS-1:0][ pt.ICCM_ECC_WIDTH-1:0] iccm_bank_ecc; 42 : 43 : 44 : ////////////////////////////////////////// 45 : // DCCM 46 569098 : logic [pt.DCCM_NUM_BANKS-1:0] dccm_clken; 47 178988 : logic [pt.DCCM_NUM_BANKS-1:0] dccm_wren_bank; - 48 2067548 : logic [pt.DCCM_NUM_BANKS-1:0][pt.DCCM_BITS-1:(pt.DCCM_BANK_BITS+2)] dccm_addr_bank; + 48 2062334 : logic [pt.DCCM_NUM_BANKS-1:0][pt.DCCM_BITS-1:(pt.DCCM_BANK_BITS+2)] dccm_addr_bank; 49 22958 : logic [pt.DCCM_NUM_BANKS-1:0][ pt.DCCM_DATA_WIDTH-1:0] dccm_wr_data_bank; 50 152547 : logic [pt.DCCM_NUM_BANKS-1:0][ DCCM_ECC_WIDTH-1:0] dccm_wr_ecc_bank; 51 5381 : logic [pt.DCCM_NUM_BANKS-1:0][ pt.DCCM_DATA_WIDTH-1:0] dccm_bank_dout; diff --git a/html/main/coverage_dashboard/all/index_el2_pic_ctrl.sv.html b/html/main/coverage_dashboard/all/index_el2_pic_ctrl.sv.html index 5e04cd80cb3..fb7c03f9799 100644 --- a/html/main/coverage_dashboard/all/index_el2_pic_ctrl.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_pic_ctrl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -131,15 +131,15 @@ 27 : ) 28 : ( 29 : - 30 61945511 : input logic clk, // Core clock - 31 61945511 : input logic free_clk, // free clock + 30 61353010 : input logic clk, // Core clock + 31 61353010 : input logic free_clk, // free clock 32 321 : input logic rst_l, // Reset for all flops 33 2 : input logic clk_override, // Clock over-ride for gating 34 319 : input logic io_clk_override, // PIC IO Clock over-ride for gating 35 100 : input logic [pt.PIC_TOTAL_INT_PLUS1-1:0] extintsrc_req, // Interrupt requests - 36 430 : input logic [31:0] picm_rdaddr, // Address of the register - 37 430 : input logic [31:0] picm_wraddr, // Address of the register - 38 92644 : input logic [31:0] picm_wr_data, // Data to be written to the register + 36 429 : input logic [31:0] picm_rdaddr, // Address of the register + 37 429 : input logic [31:0] picm_wraddr, // Address of the register + 38 92616 : input logic [31:0] picm_wr_data, // Data to be written to the register 39 30392 : input logic picm_wren, // Write enable to the register 40 9300 : input logic picm_rden, // Read enable for the register 41 0 : input logic picm_mken, // Read the Mask for the register @@ -185,11 +185,11 @@ 81 : 82 520 : logic raddr_config_pic_match ; 83 4652 : logic raddr_intenable_base_match; - 84 2110169 : logic raddr_intpriority_base_match; + 84 2102497 : logic raddr_intpriority_base_match; 85 11742 : logic raddr_config_gw_base_match ; 86 : 87 524 : logic waddr_config_pic_match ; - 88 2110412 : logic waddr_intpriority_base_match; + 88 2102740 : logic waddr_intpriority_base_match; 89 4844 : logic waddr_intenable_base_match; 90 11913 : logic waddr_config_gw_base_match ; 91 2418 : logic addr_clear_gw_base_match ; @@ -228,15 +228,15 @@ 124 1 : logic intpriord; 125 4 : logic config_reg_we ; 126 0 : logic config_reg_re ; - 127 572297 : logic config_reg_in ; + 127 570219 : logic config_reg_in ; 128 0 : logic prithresh_reg_write , prithresh_reg_read; 129 3100 : logic intpriority_reg_read ; 130 3100 : logic intenable_reg_read ; 131 3100 : logic gw_config_reg_read ; 132 9300 : logic picm_wren_ff , picm_rden_ff ; - 133 430 : logic [31:0] picm_raddr_ff; - 134 430 : logic [31:0] picm_waddr_ff; - 135 92644 : logic [31:0] picm_wr_data_ff; + 133 429 : logic [31:0] picm_raddr_ff; + 134 429 : logic [31:0] picm_waddr_ff; + 135 92616 : logic [31:0] picm_wr_data_ff; 136 568 : logic [3:0] mask; 137 0 : logic picm_mken_ff; 138 0 : logic [ID_BITS-1:0] claimid_in ; @@ -256,11 +256,11 @@ 152 12402 : logic gw_config_c1_clken; 153 : 154 : // clocks - 155 61853086 : logic pic_raddr_c1_clk; - 156 61874178 : logic pic_data_c1_clk; - 157 61856186 : logic pic_pri_c1_clk; - 158 61856186 : logic pic_int_c1_clk; - 159 61856186 : logic gw_config_c1_clk; + 155 61260585 : logic pic_raddr_c1_clk; + 156 61281677 : logic pic_data_c1_clk; + 157 61263685 : logic pic_pri_c1_clk; + 158 61263685 : logic pic_int_c1_clk; + 159 61263685 : logic gw_config_c1_clk; 160 : 161 : // ---- Clock gating section ------ 162 : // c1 clock enables @@ -601,13 +601,13 @@ 497 322 : intpriority_rd_out = '0 ; 498 322 : gw_config_rd_out = '0 ; 499 322 : for (int i=0; i<pt.PIC_TOTAL_INT_PLUS1; i++) begin - 500 782350228 : if (intenable_reg_re[i]) begin + 500 778240884 : if (intenable_reg_re[i]) begin 501 9300 : intenable_rd_out = intenable_reg[i] ; 502 : end - 503 782350228 : if (intpriority_reg_re[i]) begin + 503 778240884 : if (intpriority_reg_re[i]) begin 504 9300 : intpriority_rd_out = intpriority_reg[i] ; 505 : end - 506 782350228 : if (gw_config_reg_re[i]) begin + 506 778240884 : if (gw_config_reg_re[i]) begin 507 9300 : gw_config_rd_out = gw_config_reg[i] ; 508 : end 509 : end @@ -627,7 +627,7 @@ 523 : 524 : assign picm_rd_data[31:0] = picm_bypass_ff ? picm_wr_data_ff[31:0] : picm_rd_data_in[31:0] ; 525 : - 526 479848 : logic [14:0] address; + 526 478182 : logic [14:0] address; 527 : 528 : assign address[14:0] = picm_raddr_ff[14:0]; 529 : @@ -663,10 +663,10 @@ 559 : 560 : module el2_configurable_gw ( 561 3127890 : input logic gw_clk, - 562 1502440592 : input logic rawclk, + 562 1493967734 : input logic rawclk, 563 10063 : input logic clken, 564 9960 : input logic rst_l, - 565 3421 : input logic extintsrc_req , + 565 3423 : input logic extintsrc_req , 566 763 : input logic meigwctrl_polarity , 567 842 : input logic meigwctrl_type , 568 2498 : input logic meigwclr , diff --git a/html/main/coverage_dashboard/all/index_el2_pmp.sv.html b/html/main/coverage_dashboard/all/index_el2_pmp.sv.html index 1b5cedca4b4..2b5a751c10b 100644 --- a/html/main/coverage_dashboard/all/index_el2_pmp.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_pmp.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -127,7 +127,7 @@ 23 : parameter PMP_GRANULARITY = 0, // TODO: Move to veer.config 24 : `include "el2_param.vh" 25 : ) ( - 26 61851105 : input logic clk, // Top level clock + 26 61258604 : input logic clk, // Top level clock 27 316 : input logic rst_l, // Reset 28 0 : input logic scan_mode, // Scan mode 29 : @@ -136,20 +136,20 @@ 32 : `endif 33 : 34 : `ifdef RV_USER_MODE - 35 866 : input logic priv_mode_ns, // operating privilege mode (next clock cycle) - 36 960 : input logic priv_mode_eff, // operating effective privilege mode + 35 841 : input logic priv_mode_ns, // operating privilege mode (next clock cycle) + 36 931 : input logic priv_mode_eff, // operating effective privilege mode 37 : `endif 38 : 39 0 : input el2_pmp_cfg_pkt_t pmp_pmpcfg [pt.PMP_ENTRIES], 40 : input logic [31:0] pmp_pmpaddr[pt.PMP_ENTRIES], 41 : - 42 594235 : input logic [31:0] pmp_chan_addr[PMP_CHANNELS], + 42 592497 : input logic [31:0] pmp_chan_addr[PMP_CHANNELS], 43 769 : input el2_pmp_type_pkt_t pmp_chan_type[PMP_CHANNELS], - 44 138112 : output logic pmp_chan_err [PMP_CHANNELS] + 44 132801 : output logic pmp_chan_err [PMP_CHANNELS] 45 : ); 46 : 47 : logic [ 33:0] csr_pmp_addr_i [pt.PMP_ENTRIES]; - 48 789538 : logic [ 33:0] pmp_req_addr_i [ PMP_CHANNELS]; + 48 787800 : logic [ 33:0] pmp_req_addr_i [ PMP_CHANNELS]; 49 : 50 : logic [ 33:0] region_start_addr [pt.PMP_ENTRIES]; 51 : logic [33:PMP_GRANULARITY+2] region_addr_mask [pt.PMP_ENTRIES]; @@ -161,7 +161,7 @@ 57 328 : logic [ PMP_CHANNELS-1:0][pt.PMP_ENTRIES-1:0] region_perm_check; 58 : 59 : `ifdef RV_USER_MODE - 60 75 : logic any_region_enabled; + 60 72 : logic any_region_enabled; 61 : `endif 62 : 63 : /////////////////////// @@ -234,13 +234,13 @@ 130 : 131 : // Compute permissions checks that apply when MSECCFG.MML is unset. This is the original PMP 132 : // behaviour before Smepmp was added. - 133 1298655216 : function automatic logic orig_perm_check(logic pmp_cfg_lock, + 133 1291818336 : function automatic logic orig_perm_check(logic pmp_cfg_lock, 134 : logic priv_mode, 135 : logic permission_check); 136 : // For M-mode, any region which matches with the L-bit clear, or with sufficient 137 : // access permissions will be allowed. 138 : // For other modes, the lock bit doesn't matter - 139 1298655216 : return priv_mode ? (permission_check) : (~pmp_cfg_lock | permission_check); + 139 1291818336 : return priv_mode ? (permission_check) : (~pmp_cfg_lock | permission_check); 140 : endfunction 141 : 142 : // Access fault determination / prioritization @@ -270,9 +270,9 @@ 166 : // PMP entries are statically prioritized, from 0 to N-1 167 : // The lowest-numbered PMP entry which matches an address determines accessibility 168 960 : for (int r = 0; r < pt.PMP_ENTRIES; r++) begin - 169 475872372 : if (!matched && match_all[r]) begin - 170 39027540 : access_fail = ~final_perm_check[r]; - 171 39027540 : matched = 1'b1; + 169 480095385 : if (!matched && match_all[r]) begin + 170 38495145 : access_fail = ~final_perm_check[r]; + 171 38495145 : matched = 1'b1; 172 : end 173 : end 174 960 : return access_fail; @@ -324,7 +324,7 @@ 220 : end 221 : 222 : `ifdef RV_USER_MODE - 223 874 : logic [PMP_CHANNELS-1:0] pmp_priv_mode_eff; + 223 849 : logic [PMP_CHANNELS-1:0] pmp_priv_mode_eff; 224 : for (genvar c = 0; c < PMP_CHANNELS; c++) begin : g_priv_mode_eff 225 : assign pmp_priv_mode_eff[c] = ( 226 : ((pmp_chan_type[c] == EXEC) & priv_mode_ns) | @@ -348,12 +348,12 @@ 244 15360 : always_comb begin 245 15360 : region_match_all[c][r] = 1'b0; 246 15360 : unique case (pmp_pmpcfg[r].mode) - 247 1078080969 : OFF: region_match_all[c][r] = 1'b0; + 247 1072588131 : OFF: region_match_all[c][r] = 1'b0; 248 77241 : NA4: region_match_all[c][r] = region_match_eq[c][r]; 249 37419627 : NAPOT: region_match_all[c][r] = region_match_eq[c][r]; - 250 49942851 : TOR: begin - 251 49942851 : region_match_all[c][r] = (region_match_eq[c][r] | region_match_gt[c][r]) & - 252 49942851 : region_match_lt[c][r]; + 250 49271673 : TOR: begin + 251 49271673 : region_match_all[c][r] = (region_match_eq[c][r] | region_match_gt[c][r]) & + 252 49271673 : region_match_lt[c][r]; 253 : end 254 0 : default: region_match_all[c][r] = 1'b0; 255 : endcase diff --git a/html/main/coverage_dashboard/all/index_el2_veer.sv.html b/html/main/coverage_dashboard/all/index_el2_veer.sv.html index 820537ac7a5..3ef85175d88 100644 --- a/html/main/coverage_dashboard/all/index_el2_veer.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_veer.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -130,24 +130,24 @@ 26 : `include "el2_param.vh" 27 : ) 28 : ( - 29 61843746 : input logic clk, + 29 61251245 : input logic clk, 30 316 : input logic rst_l, 31 316 : input logic dbg_rst_l, 32 0 : input logic [31:1] rst_vec, - 33 17 : input logic nmi_int, + 33 15 : input logic nmi_int, 34 0 : input logic [31:1] nmi_vec, 35 316 : output logic core_rst_l, // This is "rst_l | dbg_rst_l" 36 : - 37 61843746 : output logic active_l2clk, - 38 61843746 : output logic free_l2clk, + 37 61251245 : output logic active_l2clk, + 38 61251245 : output logic free_l2clk, 39 : - 40 579528 : output logic [31:0] trace_rv_i_insn_ip, + 40 575173 : output logic [31:0] trace_rv_i_insn_ip, 41 308 : output logic [31:0] trace_rv_i_address_ip, - 42 6162982 : output logic trace_rv_i_valid_ip, - 43 5146 : output logic trace_rv_i_exception_ip, + 42 6126446 : output logic trace_rv_i_valid_ip, + 43 5114 : output logic trace_rv_i_exception_ip, 44 0 : output logic [4:0] trace_rv_i_ecause_ip, - 45 28 : output logic trace_rv_i_interrupt_ip, - 46 54 : output logic [31:0] trace_rv_i_tval_ip, + 45 22 : output logic trace_rv_i_interrupt_ip, + 46 52 : output logic [31:0] trace_rv_i_tval_ip, 47 : 48 : 49 0 : output logic dccm_clk_override, @@ -182,8 +182,8 @@ 78 561000 : output logic dccm_rden, 79 18811 : output logic [pt.DCCM_BITS-1:0] dccm_wr_addr_lo, 80 18811 : output logic [pt.DCCM_BITS-1:0] dccm_wr_addr_hi, - 81 471780 : output logic [pt.DCCM_BITS-1:0] dccm_rd_addr_lo, - 82 678187 : output logic [pt.DCCM_BITS-1:0] dccm_rd_addr_hi, + 81 470114 : output logic [pt.DCCM_BITS-1:0] dccm_rd_addr_lo, + 82 676449 : output logic [pt.DCCM_BITS-1:0] dccm_rd_addr_hi, 83 5374 : output logic [pt.DCCM_FDATA_WIDTH-1:0] dccm_wr_data_lo, 84 5374 : output logic [pt.DCCM_FDATA_WIDTH-1:0] dccm_wr_data_hi, 85 : @@ -191,16 +191,16 @@ 87 47172 : input logic [pt.DCCM_FDATA_WIDTH-1:0] dccm_rd_data_hi, 88 : 89 : // ICCM ports - 90 160248 : output logic [pt.ICCM_BITS-1:1] iccm_rw_addr, + 90 160008 : output logic [pt.ICCM_BITS-1:1] iccm_rw_addr, 91 74 : output logic iccm_wren, - 92 133458 : output logic iccm_rden, + 92 133416 : output logic iccm_rden, 93 0 : output logic [2:0] iccm_wr_size, 94 14 : output logic [77:0] iccm_wr_data, 95 8 : output logic iccm_buf_correct_ecc, 96 8 : output logic iccm_correction_state, 97 : - 98 136544 : input logic [63:0] iccm_rd_data, - 99 161276 : input logic [77:0] iccm_rd_data_ecc, + 98 136542 : input logic [63:0] iccm_rd_data, + 99 161274 : input logic [77:0] iccm_rd_data_ecc, 100 : 101 : // ICache , ITAG ports 102 326 : output logic [31:1] ic_rw_addr, @@ -208,16 +208,16 @@ 104 10432 : output logic [pt.ICACHE_NUM_WAYS-1:0] ic_wr_en, 105 680092 : output logic ic_rd_en, 106 : - 107 560657 : output logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data, // Data to fill to the Icache. With ECC - 108 2137063 : input logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC + 107 558675 : output logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data, // Data to fill to the Icache. With ECC + 108 2129109 : input logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 109 231247 : input logic [70:0] ic_debug_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 110 0 : input logic [25:0] ictag_debug_rd_data,// Debug icache tag. 111 0 : output logic [70:0] ic_debug_wr_data, // Debug wr cache. 112 : 113 0 : input logic [pt.ICACHE_BANKS_WAY-1:0] ic_eccerr, 114 0 : input logic [pt.ICACHE_BANKS_WAY-1:0] ic_parerr, - 115 1739005 : output logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. - 116 5603285 : output logic ic_sel_premux_data, // Select premux data + 115 1731051 : output logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. + 116 5573723 : output logic ic_sel_premux_data, // Select premux data 117 : 118 : 119 0 : output logic [pt.ICACHE_INDEX_HI:3] ic_debug_addr, // Read/Write addresss to the Icache. @@ -233,10 +233,10 @@ 129 : 130 : //-------------------------- LSU AXI signals-------------------------- 131 : // AXI Write Channels - 132 855209 : output logic lsu_axi_awvalid, + 132 849023 : output logic lsu_axi_awvalid, 133 661105 : input logic lsu_axi_awready, 134 0 : output logic [pt.LSU_BUS_TAG-1:0] lsu_axi_awid, - 135 401 : output logic [31:0] lsu_axi_awaddr, + 135 400 : output logic [31:0] lsu_axi_awaddr, 136 314 : output logic [3:0] lsu_axi_awregion, 137 0 : output logic [7:0] lsu_axi_awlen, 138 0 : output logic [2:0] lsu_axi_awsize, @@ -246,10 +246,10 @@ 142 0 : output logic [2:0] lsu_axi_awprot, 143 0 : output logic [3:0] lsu_axi_awqos, 144 : - 145 855209 : output logic lsu_axi_wvalid, + 145 849023 : output logic lsu_axi_wvalid, 146 661105 : input logic lsu_axi_wready, - 147 31411 : output logic [63:0] lsu_axi_wdata, - 148 224989 : output logic [7:0] lsu_axi_wstrb, + 147 31367 : output logic [63:0] lsu_axi_wdata, + 148 224179 : output logic [7:0] lsu_axi_wstrb, 149 317 : output logic lsu_axi_wlast, 150 : 151 660866 : input logic lsu_axi_bvalid, @@ -258,10 +258,10 @@ 154 0 : input logic [pt.LSU_BUS_TAG-1:0] lsu_axi_bid, 155 : 156 : // AXI Read Channels - 157 868958 : output logic lsu_axi_arvalid, + 157 863034 : output logic lsu_axi_arvalid, 158 672873 : input logic lsu_axi_arready, 159 0 : output logic [pt.LSU_BUS_TAG-1:0] lsu_axi_arid, - 160 401 : output logic [31:0] lsu_axi_araddr, + 160 400 : output logic [31:0] lsu_axi_araddr, 161 314 : output logic [3:0] lsu_axi_arregion, 162 0 : output logic [7:0] lsu_axi_arlen, 163 0 : output logic [2:0] lsu_axi_arsize, @@ -305,10 +305,10 @@ 201 0 : input logic [pt.IFU_BUS_TAG-1:0] ifu_axi_bid, 202 : 203 : // AXI Read Channels - 204 5892901 : output logic ifu_axi_arvalid, + 204 5855944 : output logic ifu_axi_arvalid, 205 8909222 : input logic ifu_axi_arready, - 206 3589406 : output logic [pt.IFU_BUS_TAG-1:0] ifu_axi_arid, - 207 2454016 : output logic [31:0] ifu_axi_araddr, + 206 3563620 : output logic [pt.IFU_BUS_TAG-1:0] ifu_axi_arid, + 207 2443704 : output logic [31:0] ifu_axi_araddr, 208 320 : output logic [3:0] ifu_axi_arregion, 209 0 : output logic [7:0] ifu_axi_arlen, 210 0 : output logic [2:0] ifu_axi_arsize, @@ -419,24 +419,24 @@ 315 0 : output logic hmastlock, 316 0 : output logic [3:0] hprot, 317 0 : output logic [2:0] hsize, - 318 1447798 : output logic [1:0] htrans, + 318 1410841 : output logic [1:0] htrans, 319 0 : output logic hwrite, 320 : - 321 241201 : input logic [63:0] hrdata, + 321 237605 : input logic [63:0] hrdata, 322 18 : input logic hready, 323 0 : input logic hresp, 324 : 325 : // LSU AHB Master - 326 119 : output logic [31:0] lsu_haddr, + 326 118 : output logic [31:0] lsu_haddr, 327 0 : output logic [2:0] lsu_hburst, 328 0 : output logic lsu_hmastlock, 329 0 : output logic [3:0] lsu_hprot, 330 0 : output logic [2:0] lsu_hsize, - 331 445830 : output logic [1:0] lsu_htrans, - 332 89317 : output logic lsu_hwrite, - 333 5438 : output logic [63:0] lsu_hwdata, + 331 433702 : output logic [1:0] lsu_htrans, + 332 85333 : output logic lsu_hwrite, + 333 5269 : output logic [63:0] lsu_hwdata, 334 : - 335 2338 : input logic [63:0] lsu_hrdata, + 335 2260 : input logic [63:0] lsu_hrdata, 336 18 : input logic lsu_hready, 337 0 : input logic lsu_hresp, 338 : @@ -488,20 +488,20 @@ 384 4 : output logic dccm_ecc_double_error, 385 : 386 0 : input logic [pt.PIC_TOTAL_INT:1] extintsrc_req, - 387 18 : input logic timer_int, - 388 17 : input logic soft_int, + 387 14 : input logic timer_int, + 388 13 : input logic soft_int, 389 0 : input logic scan_mode 390 : ); 391 : 392 : 393 : 394 : - 395 192980 : logic [63:0] hwdata_nc; + 395 189510 : logic [63:0] hwdata_nc; 396 : //---------------------------------------------------------------------- 397 : // 398 : //---------------------------------------------------------------------- 399 : - 400 6190087 : logic ifu_pmu_instr_aligned; + 400 6153554 : logic ifu_pmu_instr_aligned; 401 0 : logic ifu_ic_error_start; 402 0 : logic ifu_iccm_dma_rd_ecc_single_err; 403 8 : logic ifu_iccm_rd_ecc_single_err; @@ -509,55 +509,55 @@ 405 4 : logic lsu_dccm_rd_ecc_single_err; 406 4 : logic lsu_dccm_rd_ecc_double_err; 407 : - 408 446712 : logic lsu_axi_awready_ahb; - 409 446712 : logic lsu_axi_wready_ahb; - 410 207654 : logic lsu_axi_bvalid_ahb; + 408 434580 : logic lsu_axi_awready_ahb; + 409 434580 : logic lsu_axi_wready_ahb; + 410 201446 : logic lsu_axi_bvalid_ahb; 411 0 : logic lsu_axi_bready_ahb; 412 0 : logic [1:0] lsu_axi_bresp_ahb; 413 0 : logic [pt.LSU_BUS_TAG-1:0] lsu_axi_bid_ahb; - 414 442608 : logic lsu_axi_arready_ahb; - 415 257146 : logic lsu_axi_rvalid_ahb; + 414 430494 : logic lsu_axi_arready_ahb; + 415 251066 : logic lsu_axi_rvalid_ahb; 416 0 : logic [pt.LSU_BUS_TAG-1:0] lsu_axi_rid_ahb; - 417 2338 : logic [63:0] lsu_axi_rdata_ahb; + 417 2260 : logic [63:0] lsu_axi_rdata_ahb; 418 0 : logic [1:0] lsu_axi_rresp_ahb; 419 18 : logic lsu_axi_rlast_ahb; 420 : - 421 1107817 : logic lsu_axi_awready_int; - 422 1107817 : logic lsu_axi_wready_int; - 423 868520 : logic lsu_axi_bvalid_int; + 421 1095685 : logic lsu_axi_awready_int; + 422 1095685 : logic lsu_axi_wready_int; + 423 862312 : logic lsu_axi_bvalid_int; 424 299 : logic lsu_axi_bready_int; 425 0 : logic [1:0] lsu_axi_bresp_int; 426 0 : logic [pt.LSU_BUS_TAG-1:0] lsu_axi_bid_int; - 427 1115481 : logic lsu_axi_arready_int; - 428 929722 : logic lsu_axi_rvalid_int; + 427 1103367 : logic lsu_axi_arready_int; + 428 923642 : logic lsu_axi_rvalid_int; 429 0 : logic [pt.LSU_BUS_TAG-1:0] lsu_axi_rid_int; - 430 28838 : logic [63:0] lsu_axi_rdata_int; + 430 28760 : logic [63:0] lsu_axi_rdata_int; 431 0 : logic [1:0] lsu_axi_rresp_int; 432 672602 : logic lsu_axi_rlast_int; 433 : - 434 1447810 : logic ifu_axi_awready_ahb; - 435 1447810 : logic ifu_axi_wready_ahb; + 434 1410852 : logic ifu_axi_awready_ahb; + 435 1410852 : logic ifu_axi_wready_ahb; 436 0 : logic ifu_axi_bvalid_ahb; 437 0 : logic ifu_axi_bready_ahb; 438 0 : logic [1:0] ifu_axi_bresp_ahb; - 439 285739 : logic [pt.IFU_BUS_TAG-1:0] ifu_axi_bid_ahb; - 440 1447810 : logic ifu_axi_arready_ahb; - 441 2895588 : logic ifu_axi_rvalid_ahb; - 442 285739 : logic [pt.IFU_BUS_TAG-1:0] ifu_axi_rid_ahb; - 443 241199 : logic [63:0] ifu_axi_rdata_ahb; + 439 277296 : logic [pt.IFU_BUS_TAG-1:0] ifu_axi_bid_ahb; + 440 1410852 : logic ifu_axi_arready_ahb; + 441 2821673 : logic ifu_axi_rvalid_ahb; + 442 277296 : logic [pt.IFU_BUS_TAG-1:0] ifu_axi_rid_ahb; + 443 237604 : logic [63:0] ifu_axi_rdata_ahb; 444 0 : logic [1:0] ifu_axi_rresp_ahb; 445 18 : logic ifu_axi_rlast_ahb; 446 : - 447 1447810 : logic ifu_axi_awready_int; - 448 1447810 : logic ifu_axi_wready_int; + 447 1410852 : logic ifu_axi_awready_int; + 448 1410852 : logic ifu_axi_wready_int; 449 0 : logic ifu_axi_bvalid_int; 450 0 : logic ifu_axi_bready_int; 451 0 : logic [1:0] ifu_axi_bresp_int; - 452 285739 : logic [pt.IFU_BUS_TAG-1:0] ifu_axi_bid_int; - 453 10357032 : logic ifu_axi_arready_int; - 454 11804512 : logic ifu_axi_rvalid_int; - 455 1181687 : logic [pt.IFU_BUS_TAG-1:0] ifu_axi_rid_int; - 456 985574 : logic [63:0] ifu_axi_rdata_int; + 452 277296 : logic [pt.IFU_BUS_TAG-1:0] ifu_axi_bid_int; + 453 10320074 : logic ifu_axi_arready_int; + 454 11730597 : logic ifu_axi_rvalid_int; + 455 1173244 : logic [pt.IFU_BUS_TAG-1:0] ifu_axi_rid_int; + 456 981979 : logic [63:0] ifu_axi_rdata_int; 457 0 : logic [1:0] ifu_axi_rresp_int; 458 8908942 : logic ifu_axi_rlast_int; 459 : @@ -636,13 +636,13 @@ 532 0 : el2_cache_debug_pkt_t dec_tlu_ic_diag_pkt; // packet of DICAWICS, DICAD0/1, DICAGO info for icache diagnostics 533 : 534 : - 535 5130925 : logic dec_i0_rs1_en_d; - 536 3565563 : logic dec_i0_rs2_en_d; - 537 407880 : logic [31:0] gpr_i0_rs1_d; - 538 598740 : logic [31:0] gpr_i0_rs2_d; + 535 5100391 : logic dec_i0_rs1_en_d; + 536 3549089 : logic dec_i0_rs2_en_d; + 537 407844 : logic [31:0] gpr_i0_rs1_d; + 538 598744 : logic [31:0] gpr_i0_rs2_d; 539 : - 540 314049 : logic [31:0] dec_i0_result_r; - 541 614701 : logic [31:0] exu_i0_result_x; + 540 314035 : logic [31:0] dec_i0_result_r; + 541 613793 : logic [31:0] exu_i0_result_x; 542 308 : logic [31:1] exu_i0_pc_x; 543 313 : logic [31:1] exu_npc_r; 544 : @@ -653,38 +653,38 @@ 549 0 : logic [3:0] lsu_trigger_match_m; 550 : 551 : - 552 2134567 : logic [31:0] dec_i0_immed_d; - 553 123446 : logic [12:1] dec_i0_br_immed_d; - 554 554879 : logic dec_i0_select_pc_d; + 552 2132673 : logic [31:0] dec_i0_immed_d; + 553 122230 : logic [12:1] dec_i0_br_immed_d; + 554 553923 : logic dec_i0_select_pc_d; 555 : 556 1288 : logic [31:1] dec_i0_pc_d; - 557 80872 : logic [3:0] dec_i0_rs1_bypass_en_d; - 558 8634 : logic [3:0] dec_i0_rs2_bypass_en_d; + 557 79850 : logic [3:0] dec_i0_rs1_bypass_en_d; + 558 8622 : logic [3:0] dec_i0_rs2_bypass_en_d; 559 : - 560 5393904 : logic dec_i0_alu_decode_d; - 561 3841554 : logic dec_i0_branch_d; + 560 5367615 : logic dec_i0_alu_decode_d; + 561 3829589 : logic dec_i0_branch_d; 562 : - 563 5892108 : logic ifu_miss_state_idle; + 563 5855150 : logic ifu_miss_state_idle; 564 0 : logic dec_tlu_flush_noredir_r; 565 0 : logic dec_tlu_flush_leak_one_r; 566 8 : logic dec_tlu_flush_err_r; - 567 6006883 : logic ifu_i0_valid; - 568 468420 : logic [31:0] ifu_i0_instr; + 567 5971582 : logic ifu_i0_valid; + 568 467652 : logic [31:0] ifu_i0_instr; 569 1288 : logic [31:1] ifu_i0_pc; 570 : - 571 672565 : logic exu_flush_final; + 571 671016 : logic exu_flush_final; 572 : - 573 226946 : logic [31:1] exu_flush_path_final; + 573 226504 : logic [31:1] exu_flush_path_final; 574 : - 575 413833 : logic [31:0] exu_lsu_rs1_d; - 576 81386 : logic [31:0] exu_lsu_rs2_d; + 575 411891 : logic [31:0] exu_lsu_rs1_d; + 576 81344 : logic [31:0] exu_lsu_rs2_d; 577 : 578 : - 579 623945 : el2_lsu_pkt_t lsu_p; - 580 5476447 : logic dec_qual_lsu_d; + 579 621353 : el2_lsu_pkt_t lsu_p; + 580 5449748 : logic dec_qual_lsu_d; 581 : - 582 2276073 : logic dec_lsu_valid_raw_d; - 583 270518 : logic [11:0] dec_lsu_offset_d; + 582 2264531 : logic dec_lsu_valid_raw_d; + 583 269944 : logic [11:0] dec_lsu_offset_d; 584 : 585 38395 : logic [31:0] lsu_result_m; 586 29134 : logic [31:0] lsu_result_corr_r; // This is the ECC corrected data going to RF @@ -692,73 +692,73 @@ 588 4 : el2_lsu_error_pkt_t lsu_error_pkt_r; 589 0 : logic lsu_imprecise_error_load_any; 590 0 : logic lsu_imprecise_error_store_any; - 591 401 : logic [31:0] lsu_imprecise_error_addr_any; - 592 49050 : logic lsu_load_stall_any; // This is for blocking loads - 593 59374 : logic lsu_store_stall_any; // This is for blocking stores - 594 1346967 : logic lsu_idle_any; // doesn't include DMA - 595 1346650 : logic lsu_active; // lsu is active. used for clock + 591 400 : logic [31:0] lsu_imprecise_error_addr_any; + 592 48988 : logic lsu_load_stall_any; // This is for blocking loads + 593 59312 : logic lsu_store_stall_any; // This is for blocking stores + 594 1337985 : logic lsu_idle_any; // doesn't include DMA + 595 1337668 : logic lsu_active; // lsu is active. used for clock 596 : 597 : 598 24694 : logic [31:1] lsu_fir_addr; // fast interrupt address 599 0 : logic [1:0] lsu_fir_error; // Error during fast interrupt lookup 600 : 601 : // Non-blocking loads - 602 881640 : logic lsu_nonblock_load_valid_m; - 603 504869 : logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_tag_m; + 602 875716 : logic lsu_nonblock_load_valid_m; + 603 502857 : logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_tag_m; 604 0 : logic lsu_nonblock_load_inv_r; - 605 504866 : logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_inv_tag_r; - 606 920896 : logic lsu_nonblock_load_data_valid; - 607 36662 : logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_data_tag; - 608 71560 : logic [31:0] lsu_nonblock_load_data; + 605 502854 : logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_inv_tag_r; + 606 914818 : logic lsu_nonblock_load_data_valid; + 607 36598 : logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_data_tag; + 608 71538 : logic [31:0] lsu_nonblock_load_data; 609 : - 610 75092 : logic dec_csr_ren_d; - 611 6941 : logic [31:0] dec_csr_rddata_d; + 610 74910 : logic dec_csr_ren_d; + 611 8136 : logic [31:0] dec_csr_rddata_d; 612 : 613 3978 : logic [31:0] exu_csr_rs1_x; 614 : - 615 6162256 : logic dec_tlu_i0_commit_cmt; - 616 58638 : logic dec_tlu_flush_lower_r; - 617 58638 : logic dec_tlu_flush_lower_wb; + 615 6125722 : logic dec_tlu_i0_commit_cmt; + 616 58568 : logic dec_tlu_flush_lower_r; + 617 58568 : logic dec_tlu_flush_lower_wb; 618 29654 : logic dec_tlu_i0_kill_writeb_r; // I0 is flushed, don't writeback any results to arch state 619 18866 : logic dec_tlu_fence_i_r; // flush is a fence_i rfnpc, flush icache 620 : - 621 24686 : logic [31:1] dec_tlu_flush_path_r; + 621 24680 : logic [31:1] dec_tlu_flush_path_r; 622 0 : logic [31:0] dec_tlu_mrac_ff; // CSR for memory region control 623 : - 624 5735369 : logic ifu_i0_pc4; + 624 5716269 : logic ifu_i0_pc4; 625 : 626 0 : el2_mul_pkt_t mul_p; 627 : - 628 78138 : el2_div_pkt_t div_p; + 628 78122 : el2_div_pkt_t div_p; 629 2628 : logic dec_div_cancel; 630 : 631 24784 : logic [31:0] exu_div_result; - 632 156868 : logic exu_div_wren; + 632 156836 : logic exu_div_wren; 633 : - 634 6190087 : logic dec_i0_decode_d; + 634 6153554 : logic dec_i0_decode_d; 635 : 636 : - 637 138654 : logic [31:1] pred_correct_npc_x; + 637 137876 : logic [31:1] pred_correct_npc_x; 638 : - 639 782203 : el2_br_tlu_pkt_t dec_tlu_br0_r_pkt; + 639 779462 : el2_br_tlu_pkt_t dec_tlu_br0_r_pkt; 640 : - 641 34458 : el2_predict_pkt_t exu_mp_pkt; - 642 299672 : logic [pt.BHT_GHR_SIZE-1:0] exu_mp_eghr; - 643 378995 : logic [pt.BHT_GHR_SIZE-1:0] exu_mp_fghr; - 644 196032 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_mp_index; + 641 34372 : el2_predict_pkt_t exu_mp_pkt; + 642 298770 : logic [pt.BHT_GHR_SIZE-1:0] exu_mp_eghr; + 643 376379 : logic [pt.BHT_GHR_SIZE-1:0] exu_mp_fghr; + 644 195586 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_mp_index; 645 115620 : logic [pt.BTB_BTAG_SIZE-1:0] exu_mp_btag; 646 : - 647 367119 : logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_r; - 648 2679213 : logic [1:0] exu_i0_br_hist_r; + 647 364503 : logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_r; + 648 2673781 : logic [1:0] exu_i0_br_hist_r; 649 26468 : logic exu_i0_br_error_r; 650 9608 : logic exu_i0_br_start_error_r; - 651 2970681 : logic exu_i0_br_valid_r; - 652 409754 : logic exu_i0_br_mp_r; - 653 2381498 : logic exu_i0_br_middle_r; + 651 2962465 : logic exu_i0_br_valid_r; + 652 408472 : logic exu_i0_br_mp_r; + 653 2370984 : logic exu_i0_br_middle_r; 654 : - 655 2110900 : logic exu_i0_br_way_r; + 655 2108159 : logic exu_i0_br_way_r; 656 : - 657 187548 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_i0_br_index_r; + 657 187344 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_i0_br_index_r; 658 : 659 0 : logic dma_dccm_req; 660 66 : logic dma_iccm_req; @@ -779,8 +779,8 @@ 675 : 676 0 : logic dma_dccm_stall_any; // Stall the ld/st in decode if asserted 677 26 : logic dma_iccm_stall_any; // Stall the fetch - 678 2225276 : logic dccm_ready; - 679 636913 : logic iccm_ready; + 678 2213734 : logic dccm_ready; + 679 635362 : logic iccm_ready; 680 : 681 0 : logic dma_pmu_dccm_read; 682 0 : logic dma_pmu_dccm_write; @@ -795,28 +795,28 @@ 691 2 : logic ifu_i0_dbecc; 692 0 : logic iccm_dma_sb_error; 693 : - 694 200759 : el2_br_pkt_t i0_brp; - 695 651076 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] ifu_i0_bp_index; - 696 631672 : logic [pt.BHT_GHR_SIZE-1:0] ifu_i0_bp_fghr; + 694 200545 : el2_br_pkt_t i0_brp; + 695 650118 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] ifu_i0_bp_index; + 696 619214 : logic [pt.BHT_GHR_SIZE-1:0] ifu_i0_bp_fghr; 697 21217 : logic [pt.BTB_BTAG_SIZE-1:0] ifu_i0_bp_btag; 698 : 699 0 : logic [$clog2(pt.BTB_SIZE)-1:0] ifu_i0_fa_index; 700 0 : logic [$clog2(pt.BTB_SIZE)-1:0] dec_fa_error_index; // Fully associative btb error index 701 : 702 : - 703 506364 : el2_predict_pkt_t dec_i0_predict_p_d; + 703 504423 : el2_predict_pkt_t dec_i0_predict_p_d; 704 : - 705 631672 : logic [pt.BHT_GHR_SIZE-1:0] i0_predict_fghr_d; // DEC predict fghr - 706 651076 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] i0_predict_index_d; // DEC predict index + 705 619214 : logic [pt.BHT_GHR_SIZE-1:0] i0_predict_fghr_d; // DEC predict fghr + 706 650118 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] i0_predict_index_d; // DEC predict index 707 21217 : logic [pt.BTB_BTAG_SIZE-1:0] i0_predict_btag_d; // DEC predict branch tag 708 : 709 : // PIC ports 710 0 : logic picm_wren; 711 0 : logic picm_rden; 712 0 : logic picm_mken; - 713 430 : logic [31:0] picm_rdaddr; - 714 430 : logic [31:0] picm_wraddr; - 715 92644 : logic [31:0] picm_wr_data; + 713 429 : logic [31:0] picm_rdaddr; + 714 429 : logic [31:0] picm_wraddr; + 715 92616 : logic [31:0] picm_wr_data; 716 0 : logic [31:0] picm_rd_data; 717 : 718 : // feature disable from mfdc @@ -843,18 +843,18 @@ 739 : // PMP Signals 740 0 : el2_pmp_cfg_pkt_t pmp_pmpcfg [pt.PMP_ENTRIES]; 741 : logic [31:0] pmp_pmpaddr [pt.PMP_ENTRIES]; - 742 594145 : logic [31:0] pmp_chan_addr [3]; + 742 592407 : logic [31:0] pmp_chan_addr [3]; 743 0 : el2_pmp_type_pkt_t pmp_chan_type [3]; - 744 137878 : logic pmp_chan_err [3]; + 744 132567 : logic pmp_chan_err [3]; 745 : 746 310 : logic [31:1] ifu_pmp_addr; 747 110 : logic ifu_pmp_error; - 748 594111 : logic [31:0] lsu_pmp_addr_start; - 749 167732 : logic lsu_pmp_error_start; - 750 594149 : logic [31:0] lsu_pmp_addr_end; - 751 167732 : logic lsu_pmp_error_end; - 752 1065445 : logic lsu_pmp_we; - 753 1424320 : logic lsu_pmp_re; + 748 592373 : logic [31:0] lsu_pmp_addr_start; + 749 162421 : logic lsu_pmp_error_start; + 750 592411 : logic [31:0] lsu_pmp_addr_end; + 751 162421 : logic lsu_pmp_error_end; + 752 1059753 : logic lsu_pmp_we; + 753 1418396 : logic lsu_pmp_re; 754 : 755 : // -----------------------DEBUG START ------------------------------- 756 : @@ -870,7 +870,7 @@ 766 : 767 0 : logic core_dbg_cmd_done; // Final muxed cmd done to debug 768 0 : logic core_dbg_cmd_fail; // Final muxed cmd done to debug - 769 314049 : logic [31:0] core_dbg_rddata; // Final muxed cmd done to debug + 769 314035 : logic [31:0] core_dbg_rddata; // Final muxed cmd done to debug 770 : 771 0 : logic dma_dbg_cmd_done; // Abstarct memory command sent to dma is done 772 0 : logic dma_dbg_cmd_fail; // Abstarct memory command sent to dma failed @@ -879,7 +879,7 @@ 775 0 : logic dbg_dma_bubble; // Debug needs a bubble to send a valid 776 0 : logic dma_dbg_ready; // DMA is ready to accept debug request 777 : - 778 314049 : logic [31:0] dec_dbg_rddata; // The core drives this data ( intercepts the pipe and sends it here ) + 778 314035 : logic [31:0] dec_dbg_rddata; // The core drives this data ( intercepts the pipe and sends it here ) 779 0 : logic dec_dbg_cmd_done; // This will be treated like a valid signal 780 0 : logic dec_dbg_cmd_fail; // Abstract command failed 781 0 : logic dec_tlu_mpc_halted_only; // Only halted due to MPC @@ -889,43 +889,43 @@ 785 0 : logic dec_debug_wdata_rs1_d; 786 0 : logic dec_tlu_force_halt; // halt has been forced 787 : - 788 6189473 : logic [1:0] dec_data_en; - 789 5991939 : logic [1:0] dec_ctl_en; + 788 6152939 : logic [1:0] dec_data_en; + 789 5955435 : logic [1:0] dec_ctl_en; 790 : 791 : // PMU Signals - 792 409754 : logic exu_pmu_i0_br_misp; - 793 2868109 : logic exu_pmu_i0_br_ataken; - 794 3459682 : logic exu_pmu_i0_pc4; + 792 408472 : logic exu_pmu_i0_br_misp; + 793 2862323 : logic exu_pmu_i0_br_ataken; + 794 3452000 : logic exu_pmu_i0_pc4; 795 : - 796 891764 : logic lsu_pmu_load_external_m; - 797 806110 : logic lsu_pmu_store_external_m; - 798 48786 : logic lsu_pmu_misaligned_m; - 799 1667379 : logic lsu_pmu_bus_trxn; - 800 36420 : logic lsu_pmu_bus_misaligned; + 796 885840 : logic lsu_pmu_load_external_m; + 797 800418 : logic lsu_pmu_store_external_m; + 798 48780 : logic lsu_pmu_misaligned_m; + 799 1655267 : logic lsu_pmu_bus_trxn; + 800 36414 : logic lsu_pmu_bus_misaligned; 801 0 : logic lsu_pmu_bus_error; - 802 67818 : logic lsu_pmu_bus_busy; + 802 67790 : logic lsu_pmu_bus_busy; 803 : - 804 614530 : logic ifu_pmu_fetch_stall; - 805 5893104 : logic ifu_pmu_ic_miss; + 804 613228 : logic ifu_pmu_fetch_stall; + 805 5856146 : logic ifu_pmu_ic_miss; 806 744124 : logic ifu_pmu_ic_hit; 807 0 : logic ifu_pmu_bus_error; 808 4463637 : logic ifu_pmu_bus_busy; - 809 10356722 : logic ifu_pmu_bus_trxn; + 809 10319765 : logic ifu_pmu_bus_trxn; 810 : 811 317 : logic active_state; - 812 61843746 : logic free_clk; - 813 61843746 : logic active_clk; + 812 61251245 : logic free_clk; + 813 61251245 : logic active_clk; 814 0 : logic dec_pause_state_cg; 815 : 816 0 : logic lsu_nonblock_load_data_error; 817 : - 818 1427542 : logic [15:0] ifu_i0_cinst; + 818 1422550 : logic [15:0] ifu_i0_cinst; 819 : 820 : // fast interrupt 821 0 : logic [31:2] dec_tlu_meihap; 822 0 : logic dec_extint_stall; 823 : - 824 5519898 : el2_trace_pkt_t trace_rv_trace_pkt; + 824 5496224 : el2_trace_pkt_t trace_rv_trace_pkt; 825 : 826 : 827 4 : logic lsu_fastint_stall_any; @@ -941,7 +941,7 @@ 837 0 : logic pause_state; 838 0 : logic halt_state; 839 : - 840 2091300 : logic dec_tlu_core_empty; + 840 2081032 : logic dec_tlu_core_empty; 841 : 842 : assign pause_state = dec_pause_state_cg & ~(dma_active | lsu_active) & dec_tlu_core_empty; 843 : @@ -991,11 +991,11 @@ 887 : `ifdef RV_USER_MODE 888 : 889 : // Operating privilege mode, 0 - machine, 1 - user - 890 866 : logic priv_mode; + 890 841 : logic priv_mode; 891 : // Effective privilege mode, 0 - machine, 1 - user (driven in el2_dec_tlu_ctl.sv) - 892 960 : logic priv_mode_eff; + 892 931 : logic priv_mode_eff; 893 : // Next privilege mode - 894 866 : logic priv_mode_ns; + 894 841 : logic priv_mode_ns; 895 : 896 2 : el2_mseccfg_pkt_t mseccfg; // mseccfg CSR for PMP 897 : diff --git a/html/main/coverage_dashboard/all/index_el2_veer_wrapper.sv.html b/html/main/coverage_dashboard/all/index_el2_veer_wrapper.sv.html index 3006cfbb615..bb538dd2157 100644 --- a/html/main/coverage_dashboard/all/index_el2_veer_wrapper.sv.html +++ b/html/main/coverage_dashboard/all/index_el2_veer_wrapper.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -131,22 +131,22 @@ 27 : `include "el2_param.vh" 28 : ) 29 : ( - 30 61843746 : input logic clk, + 30 61251245 : input logic clk, 31 316 : input logic rst_l, 32 316 : input logic dbg_rst_l, 33 0 : input logic [31:1] rst_vec, - 34 17 : input logic nmi_int, + 34 15 : input logic nmi_int, 35 0 : input logic [31:1] nmi_vec, 36 0 : input logic [31:1] jtag_id, 37 : 38 : - 39 579528 : output logic [31:0] trace_rv_i_insn_ip, + 39 575173 : output logic [31:0] trace_rv_i_insn_ip, 40 308 : output logic [31:0] trace_rv_i_address_ip, - 41 6162982 : output logic trace_rv_i_valid_ip, - 42 5146 : output logic trace_rv_i_exception_ip, + 41 6126446 : output logic trace_rv_i_valid_ip, + 42 5114 : output logic trace_rv_i_exception_ip, 43 0 : output logic [4:0] trace_rv_i_ecause_ip, - 44 28 : output logic trace_rv_i_interrupt_ip, - 45 54 : output logic [31:0] trace_rv_i_tval_ip, + 44 22 : output logic trace_rv_i_interrupt_ip, + 45 52 : output logic [31:0] trace_rv_i_tval_ip, 46 : 47 : // Bus signals 48 : `ifdef RV_BUILD_AXI4 @@ -339,24 +339,24 @@ 235 0 : output logic hmastlock, 236 0 : output logic [3:0] hprot, 237 0 : output logic [2:0] hsize, - 238 1447798 : output logic [1:0] htrans, + 238 1410841 : output logic [1:0] htrans, 239 0 : output logic hwrite, 240 : - 241 241201 : input logic [63:0] hrdata, + 241 237605 : input logic [63:0] hrdata, 242 18 : input logic hready, 243 0 : input logic hresp, 244 : 245 : // LSU AHB Master - 246 119 : output logic [31:0] lsu_haddr, + 246 118 : output logic [31:0] lsu_haddr, 247 0 : output logic [2:0] lsu_hburst, 248 0 : output logic lsu_hmastlock, 249 0 : output logic [3:0] lsu_hprot, 250 0 : output logic [2:0] lsu_hsize, - 251 445830 : output logic [1:0] lsu_htrans, - 252 89317 : output logic lsu_hwrite, - 253 5438 : output logic [63:0] lsu_hwdata, + 251 433702 : output logic [1:0] lsu_htrans, + 252 85333 : output logic lsu_hwrite, + 253 5269 : output logic [63:0] lsu_hwdata, 254 : - 255 2338 : input logic [63:0] lsu_hrdata, + 255 2260 : input logic [63:0] lsu_hrdata, 256 18 : input logic lsu_hready, 257 0 : input logic lsu_hresp, 258 : // Debug Syster Bus AHB @@ -406,8 +406,8 @@ 302 0 : input el2_ic_data_ext_in_pkt_t [pt.ICACHE_NUM_WAYS-1:0][pt.ICACHE_BANKS_WAY-1:0] ic_data_ext_in_pkt, 303 0 : input el2_ic_tag_ext_in_pkt_t [pt.ICACHE_NUM_WAYS-1:0] ic_tag_ext_in_pkt, 304 : - 305 18 : input logic timer_int, - 306 17 : input logic soft_int, + 305 14 : input logic timer_int, + 306 13 : input logic soft_int, 307 0 : input logic [pt.PIC_TOTAL_INT:1] extintsrc_req, 308 : 309 340148 : output logic dec_tlu_perfcnt0, // toggles when slot0 perf counter 0 has an event inc @@ -454,16 +454,16 @@ 350 0 : input logic [31:0] dmi_uncore_rdata 351 : ); 352 : - 353 61843746 : logic active_l2clk; - 354 61843746 : logic free_l2clk; + 353 61251245 : logic active_l2clk; + 354 61251245 : logic free_l2clk; 355 : 356 : // DCCM ports 357 262892 : logic dccm_wren; 358 561000 : logic dccm_rden; 359 18811 : logic [pt.DCCM_BITS-1:0] dccm_wr_addr_lo; 360 18811 : logic [pt.DCCM_BITS-1:0] dccm_wr_addr_hi; - 361 471780 : logic [pt.DCCM_BITS-1:0] dccm_rd_addr_lo; - 362 678187 : logic [pt.DCCM_BITS-1:0] dccm_rd_addr_hi; + 361 470114 : logic [pt.DCCM_BITS-1:0] dccm_rd_addr_lo; + 362 676449 : logic [pt.DCCM_BITS-1:0] dccm_rd_addr_hi; 363 5374 : logic [pt.DCCM_FDATA_WIDTH-1:0] dccm_wr_data_lo; 364 5374 : logic [pt.DCCM_FDATA_WIDTH-1:0] dccm_wr_data_hi; 365 : @@ -490,28 +490,28 @@ 386 0 : logic [pt.ICACHE_NUM_WAYS-1:0] ic_debug_way; // Debug way. Rd or Wr. 387 : 388 0 : logic [25:0] ictag_debug_rd_data; // Debug icache tag. - 389 560657 : logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data; - 390 2137063 : logic [63:0] ic_rd_data; + 389 558675 : logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data; + 390 2129109 : logic [63:0] ic_rd_data; 391 231247 : logic [70:0] ic_debug_rd_data; // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 392 0 : logic [70:0] ic_debug_wr_data; // Debug wr cache. 393 : 394 0 : logic [pt.ICACHE_BANKS_WAY-1:0] ic_eccerr; // ecc error per bank 395 0 : logic [pt.ICACHE_BANKS_WAY-1:0] ic_parerr; // parity error per bank 396 : - 397 1739005 : logic [63:0] ic_premux_data; - 398 5603285 : logic ic_sel_premux_data; + 397 1731051 : logic [63:0] ic_premux_data; + 398 5573723 : logic ic_sel_premux_data; 399 : 400 : // ICCM ports - 401 160248 : logic [pt.ICCM_BITS-1:1] iccm_rw_addr; + 401 160008 : logic [pt.ICCM_BITS-1:1] iccm_rw_addr; 402 74 : logic iccm_wren; - 403 133458 : logic iccm_rden; + 403 133416 : logic iccm_rden; 404 0 : logic [2:0] iccm_wr_size; 405 14 : logic [77:0] iccm_wr_data; 406 8 : logic iccm_buf_correct_ecc; 407 8 : logic iccm_correction_state; 408 : - 409 136544 : logic [63:0] iccm_rd_data; - 410 161276 : logic [77:0] iccm_rd_data_ecc; + 409 136542 : logic [63:0] iccm_rd_data; + 410 161274 : logic [77:0] iccm_rd_data_ecc; 411 : 412 316 : logic core_rst_l; // Core reset including rst_l and dbg_rst_l 413 : @@ -610,10 +610,10 @@ 506 : 507 : 508 : `ifdef RV_BUILD_AHB_LITE - 509 203746 : wire lsu_axi_awvalid; + 509 197560 : wire lsu_axi_awvalid; 510 0 : wire lsu_axi_awready; 511 0 : wire [pt.LSU_BUS_TAG-1:0] lsu_axi_awid; - 512 119 : wire [31:0] lsu_axi_awaddr; + 512 118 : wire [31:0] lsu_axi_awaddr; 513 17 : wire [3:0] lsu_axi_awregion; 514 0 : wire [7:0] lsu_axi_awlen; 515 0 : wire [2:0] lsu_axi_awsize; @@ -624,10 +624,10 @@ 520 0 : wire [3:0] lsu_axi_awqos; 521 : 522 : - 523 203746 : wire lsu_axi_wvalid; + 523 197560 : wire lsu_axi_wvalid; 524 0 : wire lsu_axi_wready; - 525 1650 : wire [63:0] lsu_axi_wdata; - 526 39284 : wire [7:0] lsu_axi_wstrb; + 525 1606 : wire [63:0] lsu_axi_wdata; + 526 38474 : wire [7:0] lsu_axi_wstrb; 527 18 : wire lsu_axi_wlast; 528 : 529 0 : wire lsu_axi_bvalid; @@ -636,10 +636,10 @@ 532 0 : wire [pt.LSU_BUS_TAG-1:0] lsu_axi_bid; 533 : 534 : // AXI Read Channels - 535 238488 : wire lsu_axi_arvalid; + 535 232564 : wire lsu_axi_arvalid; 536 0 : wire lsu_axi_arready; 537 0 : wire [pt.LSU_BUS_TAG-1:0] lsu_axi_arid; - 538 119 : wire [31:0] lsu_axi_araddr; + 538 118 : wire [31:0] lsu_axi_araddr; 539 17 : wire [3:0] lsu_axi_arregion; 540 0 : wire [7:0] lsu_axi_arlen; 541 0 : wire [2:0] lsu_axi_arsize; @@ -694,10 +694,10 @@ 590 0 : wire [pt.IFU_BUS_TAG-1:0] ifu_axi_bid; 591 : 592 : // AXI Read Channels - 593 1447798 : wire ifu_axi_arvalid; + 593 1410841 : wire ifu_axi_arvalid; 594 0 : wire ifu_axi_arready; - 595 853328 : wire [pt.IFU_BUS_TAG-1:0] ifu_axi_arid; - 596 516548 : wire [31:0] ifu_axi_araddr; + 595 827542 : wire [pt.IFU_BUS_TAG-1:0] ifu_axi_arid; + 596 506236 : wire [31:0] ifu_axi_araddr; 597 20 : wire [3:0] ifu_axi_arregion; 598 0 : wire [7:0] ifu_axi_arlen; 599 0 : wire [2:0] ifu_axi_arsize; diff --git a/html/main/coverage_dashboard/all/index_mem_lib.sv.html b/html/main/coverage_dashboard/all/index_mem_lib.sv.html index 1a782caf688..98d95e53ae4 100644 --- a/html/main/coverage_dashboard/all/index_mem_lib.sv.html +++ b/html/main/coverage_dashboard/all/index_mem_lib.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -212,7 +212,7 @@ 108 : `EL2_RAM(32768, 39) 109 : `EL2_RAM(16384, 39) 110 : `EL2_RAM(8192, 39) - 111 358094741 : `EL2_RAM(4096, 39) + 111 356040069 : `EL2_RAM(4096, 39) 112 : `EL2_RAM(3072, 39) 113 : `EL2_RAM(2048, 39) 114 : `EL2_RAM(1536, 39) // need this for the 48KB DCCM option) @@ -276,7 +276,7 @@ 172 : `EL2_RAM_BE(4096, 142) 173 : `EL2_RAM_BE(2048, 142) 174 : `EL2_RAM_BE(1024, 142) - 175 79536278 : `EL2_RAM_BE(512, 142) + 175 78979582 : `EL2_RAM_BE(512, 142) 176 : `EL2_RAM_BE(256, 142) 177 : `EL2_RAM_BE(128, 142) 178 : `EL2_RAM_BE(64, 142) @@ -309,7 +309,7 @@ 205 : `EL2_RAM_BE(1024, 52) 206 : `EL2_RAM_BE(512, 52) 207 : `EL2_RAM_BE(256, 52) - 208 39595198 : `EL2_RAM_BE(128, 52) + 208 39316850 : `EL2_RAM_BE(128, 52) 209 : `EL2_RAM_BE(64, 52) 210 : `EL2_RAM_BE(32, 52) 211 : `EL2_RAM_BE(4096, 104) diff --git a/html/main/coverage_dashboard/all/index_rvjtag_tap.v.html b/html/main/coverage_dashboard/all/index_rvjtag_tap.v.html index 4fab493c12c..8bcc9a13fc9 100644 --- a/html/main/coverage_dashboard/all/index_rvjtag_tap.v.html +++ b/html/main/coverage_dashboard/all/index_rvjtag_tap.v.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -217,9 +217,9 @@ 113 : endcase 114 : end 115 : - 116 13875 : always @ (posedge tck or negedge trst) begin - 117 12752 : if(!trst) state <= TEST_LOGIC_RESET_STATE; - 118 13793 : else state <= nstate; + 116 13772 : always @ (posedge tck or negedge trst) begin + 117 12649 : if(!trst) state <= TEST_LOGIC_RESET_STATE; + 118 13690 : else state <= nstate; 119 : end 120 : 121 : assign jtag_reset = state == TEST_LOGIC_RESET_STATE; @@ -238,11 +238,11 @@ 134 : // IR register 135 : /////////////////////////////////////////////////////// 136 : - 137 13875 : always @ (negedge tck or negedge trst) begin - 138 12752 : if (!trst) ir <= 5'b1; - 139 13793 : else begin + 137 13772 : always @ (negedge tck or negedge trst) begin + 138 12649 : if (!trst) ir <= 5'b1; + 139 13690 : else begin 140 37 : if (jtag_reset) ir <= 5'b1; - 141 115 : else if (update_ir) ir <= (sr[4:0] == '0) ? 5'h1f :sr[4:0]; + 141 114 : else if (update_ir) ir <= (sr[4:0] == '0) ? 5'h1f :sr[4:0]; 142 : end 143 : end 144 : @@ -254,12 +254,12 @@ 150 : /////////////////////////////////////////////////////// 151 : // Shift register 152 : /////////////////////////////////////////////////////// - 153 13875 : always @ (posedge tck or negedge trst) begin - 154 12752 : if(!trst)begin + 153 13772 : always @ (posedge tck or negedge trst) begin + 154 12649 : if(!trst)begin 155 82 : sr <= '0; 156 : end - 157 13793 : else begin - 158 13793 : sr <= nsr; + 157 13690 : else begin + 158 13690 : sr <= nsr; 159 : end 160 : end 161 : @@ -267,33 +267,33 @@ 163 319 : always_comb begin 164 319 : nsr = sr; 165 319 : case(1) - 166 20660 : shift_dr: begin - 167 20660 : case(1) - 168 26937 : dr_en[1]: nsr = {tdi, sr[USER_DR_LENGTH-1:1]}; + 166 20578 : shift_dr: begin + 167 20578 : case(1) + 168 26773 : dr_en[1]: nsr = {tdi, sr[USER_DR_LENGTH-1:1]}; 169 : 170 : dr_en[0], 171 4789 : devid_sel: nsr = {{USER_DR_LENGTH-32{1'b0}},tdi, sr[31:1]}; 172 0 : default: nsr = {{USER_DR_LENGTH-1{1'b0}},tdi}; // bypass 173 : endcase 174 : end - 175 474 : capture_dr: begin - 176 474 : nsr[0] = 1'b0; - 177 474 : case(1) + 175 472 : capture_dr: begin + 176 472 : nsr[0] = 1'b0; + 177 472 : case(1) 178 23 : dr_en[0]: nsr = {{USER_DR_LENGTH-15{1'b0}}, idle, dmi_stat, abits, version}; - 179 657 : dr_en[1]: nsr = {{AWIDTH{1'b0}}, rd_data, rd_status}; + 179 653 : dr_en[1]: nsr = {{AWIDTH{1'b0}}, rd_data, rd_status}; 180 34 : devid_sel: nsr = {{USER_DR_LENGTH-32{1'b0}}, jtag_id, 1'b1}; 181 : endcase 182 : end - 183 1034 : shift_ir: nsr = {{USER_DR_LENGTH-5{1'b0}},tdi, sr[4:1]}; - 184 206 : capture_ir: nsr = {{USER_DR_LENGTH-1{1'b0}},1'b1}; + 183 1029 : shift_ir: nsr = {{USER_DR_LENGTH-5{1'b0}},tdi, sr[4:1]}; + 184 205 : capture_ir: nsr = {{USER_DR_LENGTH-1{1'b0}},1'b1}; 185 : endcase 186 : end 187 : 188 : // TDO retiming - 189 13870 : always @ (negedge tck ) tdo <= sr[0]; + 189 13767 : always @ (negedge tck ) tdo <= sr[0]; 190 : 191 : // DMI CS register - 192 13875 : always @ (posedge tck or negedge trst) begin + 192 13772 : always @ (posedge tck or negedge trst) begin 193 82 : if(!trst) begin 194 82 : dmi_hard_reset <= 1'b0; 195 82 : dmi_reset <= 1'b0; @@ -302,21 +302,21 @@ 198 5 : dmi_hard_reset <= sr[17]; 199 5 : dmi_reset <= sr[16]; 200 : end - 201 13788 : else begin - 202 13788 : dmi_hard_reset <= 1'b0; - 203 13788 : dmi_reset <= 1'b0; + 201 13685 : else begin + 202 13685 : dmi_hard_reset <= 1'b0; + 203 13685 : dmi_reset <= 1'b0; 204 : end 205 : end 206 : 207 : // DR register - 208 13875 : always @ (posedge tck or negedge trst) begin - 209 12752 : if(!trst) + 208 13772 : always @ (posedge tck or negedge trst) begin + 209 12649 : if(!trst) 210 82 : dr <= '0; - 211 13793 : else begin - 212 231 : if (update_dr & dr_en[1]) - 213 231 : dr <= sr; + 211 13690 : else begin + 212 229 : if (update_dr & dr_en[1]) + 213 229 : dr <= sr; 214 : else - 215 13562 : dr <= {dr[USER_DR_LENGTH-1:2],2'b0}; + 215 13461 : dr <= {dr[USER_DR_LENGTH-1:2],2'b0}; 216 : end 217 : end 218 : diff --git a/html/main/coverage_dashboard/all_ahb_cmark/index.html b/html/main/coverage_dashboard/all_ahb_cmark/index.html index fba732b0999..49d80d769bf 100644 --- a/html/main/coverage_dashboard/all_ahb_cmark/index.html +++ b/html/main/coverage_dashboard/all_ahb_cmark/index.html @@ -51,21 +51,21 @@ @@ -83,10 +83,10 @@ 63.7% Test Date: - 19-09-2024 + 25-09-2024 Toggle -- 45.0% + + 44.6% - 2391 + 2395 - 5317 + 5364 - 680 + 681 - 1068 + 1069   + 
Line data Source code
- 1 2 : logic csr_misa; + 1 4 : logic csr_misa; 2 0 : logic csr_mvendorid; 3 0 : logic csr_marchid; 4 0 : logic csr_mimpid; 5 0 : logic csr_mhartid; - 6 7 : logic csr_mstatus; + 6 14 : logic csr_mstatus; 7 0 : logic csr_mtvec; 8 0 : logic csr_mip; 9 0 : logic csr_mie; @@ -177,14 +177,14 @@ 73 0 : logic csr_dicad0; 74 0 : logic csr_dicad1; 75 0 : logic csr_dicago; - 76 2 : logic csr_pmpcfg; - 77 2 : logic csr_pmpaddr0; + 76 4 : logic csr_pmpcfg; + 77 4 : logic csr_pmpaddr0; 78 0 : logic csr_pmpaddr16; 79 0 : logic csr_pmpaddr32; 80 0 : logic csr_pmpaddr48; 81 0 : logic valid_only; 82 0 : logic presync; - 83 7 : logic postsync; + 83 14 : logic postsync; 84 : assign csr_misa = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] 85 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); 86 : @@ -471,7 +471,7 @@ 367 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[7] 368 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); 369 : - 370 6 : logic legal; + 370 12 : logic legal; 371 : assign legal = (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] 372 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] 373 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_dec_decode_ctl.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_dec_decode_ctl.sv.html index 0013b9f864d..876194be4df 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_dec_decode_ctl.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_dec_decode_ctl.sv.html @@ -51,7 +51,7 @@Test Date: - 19-09-2024 + 25-09-2024 @@ -133,21 +133,21 @@ 29 : 30 0 : output logic dec_extint_stall, // Stall from external interrupt 31 : - 32 704 : input logic [15:0] ifu_i0_cinst, // 16b compressed instruction - 33 471 : output logic [31:0] dec_i0_inst_wb, // 32b instruction at wb+1 for trace encoder + 32 232 : input logic [15:0] ifu_i0_cinst, // 16b compressed instruction + 33 8 : output logic [31:0] dec_i0_inst_wb, // 32b instruction at wb+1 for trace encoder 34 2 : output logic [31:1] dec_i0_pc_wb, // 31b pc at wb+1 for trace encoder 35 : 36 : - 37 660 : input logic lsu_nonblock_load_valid_m, // valid nonblock load at m - 38 202 : input logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_tag_m, // -> corresponding tag + 37 228 : input logic lsu_nonblock_load_valid_m, // valid nonblock load at m + 38 20 : input logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_tag_m, // -> corresponding tag 39 0 : input logic lsu_nonblock_load_inv_r, // invalidate request for nonblock load r - 40 202 : input logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_inv_tag_r, // -> corresponding tag - 41 718 : input logic lsu_nonblock_load_data_valid, // valid nonblock load data back + 40 20 : input logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_inv_tag_r, // -> corresponding tag + 41 232 : input logic lsu_nonblock_load_data_valid, // valid nonblock load data back 42 0 : input logic lsu_nonblock_load_data_error, // nonblock load bus error - 43 36 : input logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_data_tag, // -> corresponding tag + 43 0 : input logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_data_tag, // -> corresponding tag 44 : 45 : - 46 0 : input logic [3:0] dec_i0_trigger_match_d, // i0 decode trigger matches + 46 0 : input logic [3:0] dec_i0_trigger_match_d, // i0 decode trigger matches 47 : 48 0 : input logic dec_tlu_wr_pause_r, // pause instruction at r 49 0 : input logic dec_tlu_pipelining_disable, // pipeline disable - presync, i0 decode only @@ -168,13 +168,13 @@ 64 : 65 0 : input logic dec_i0_dbecc_d, // icache/iccm double-bit error 66 : - 67 62 : input el2_br_pkt_t dec_i0_brp, // branch packet - 68 122 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] dec_i0_bp_index, // i0 branch index - 69 554 : input logic [pt.BHT_GHR_SIZE-1:0] dec_i0_bp_fghr, // BP FGHR + 67 12 : input el2_br_pkt_t dec_i0_brp, // branch packet + 68 20 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] dec_i0_bp_index, // i0 branch index + 69 10 : input logic [pt.BHT_GHR_SIZE-1:0] dec_i0_bp_fghr, // BP FGHR 70 0 : input logic [pt.BTB_BTAG_SIZE-1:0] dec_i0_bp_btag, // BP tag 71 0 : input logic [$clog2(pt.BTB_SIZE)-1:0] dec_i0_bp_fa_index, // Fully associt btb index 72 : - 73 969 : input logic lsu_idle_any, // lsu idle: if fence instr & ~lsu_idle then stall decode + 73 236 : input logic lsu_idle_any, // lsu idle: if fence instr & ~lsu_idle then stall decode 74 : 75 0 : input logic lsu_load_stall_any, // stall any load at decode 76 0 : input logic lsu_store_stall_any, // stall any store at decode @@ -188,67 +188,67 @@ 84 4 : input logic dec_tlu_flush_lower_r, // trap lower flush 85 0 : input logic dec_tlu_flush_pause_r, // don't clear pause state on initial lower flush 86 0 : input logic dec_tlu_presync_d, // CSR read needs to be presync'd - 87 30 : input logic dec_tlu_postsync_d, // CSR ops that need to be postsync'd + 87 0 : input logic dec_tlu_postsync_d, // CSR ops that need to be postsync'd 88 : - 89 2237 : input logic dec_i0_pc4_d, // inst is 4B inst else 2B + 89 482 : input logic dec_i0_pc4_d, // inst is 4B inst else 2B 90 : - 91 41 : input logic [31:0] dec_csr_rddata_d, // csr read data at wb - 92 42 : input logic dec_csr_legal_d, // csr indicates legal operation + 91 0 : input logic [31:0] dec_csr_rddata_d, // csr read data at wb + 92 12 : input logic dec_csr_legal_d, // csr indicates legal operation 93 : 94 0 : input logic [31:0] exu_csr_rs1_x, // rs1 for csr instr 95 : 96 0 : input logic [31:0] lsu_result_m, // load result 97 0 : input logic [31:0] lsu_result_corr_r, // load result - corrected data for writing gpr's, not for bypassing 98 : - 99 345 : input logic exu_flush_final, // lower flush or i0 flush at X or D + 99 70 : input logic exu_flush_final, // lower flush or i0 flush at X or D 100 : 101 2 : input logic [31:1] exu_i0_pc_x, // pcs at e1 102 : - 103 132 : input logic [31:0] dec_i0_instr_d, // inst at decode + 103 12 : input logic [31:0] dec_i0_instr_d, // inst at decode 104 : - 105 4305 : input logic dec_ib0_valid_d, // inst valid at decode + 105 978 : input logic dec_ib0_valid_d, // inst valid at decode 106 : - 107 110 : input logic [31:0] exu_i0_result_x, // from primary alu's + 107 16 : input logic [31:0] exu_i0_result_x, // from primary alu's 108 : - 109 66208 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 110 66208 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. - 111 66208 : input logic free_l2clk, // Clock always. Through one clock header. For flops with second header built in. + 109 14760 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 110 14760 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 111 14760 : input logic free_l2clk, // Clock always. Through one clock header. For flops with second header built in. 112 : 113 0 : input logic clk_override, // Override non-functional clock gating 114 2 : input logic rst_l, // Flop reset 115 : 116 : 117 : - 118 3562 : output logic dec_i0_rs1_en_d, // rs1 enable at decode - 119 1556 : output logic dec_i0_rs2_en_d, // rs2 enable at decode + 118 924 : output logic dec_i0_rs1_en_d, // rs1 enable at decode + 119 244 : output logic dec_i0_rs2_en_d, // rs2 enable at decode 120 : - 121 886 : output logic [4:0] dec_i0_rs1_d, // rs1 logical source - 122 1136 : output logic [4:0] dec_i0_rs2_d, // rs2 logical source + 121 12 : output logic [4:0] dec_i0_rs1_d, // rs1 logical source + 122 40 : output logic [4:0] dec_i0_rs2_d, // rs2 logical source 123 : - 124 324 : output logic [31:0] dec_i0_immed_d, // 32b immediate data decode + 124 16 : output logic [31:0] dec_i0_immed_d, // 32b immediate data decode 125 : 126 : - 127 238 : output logic [12:1] dec_i0_br_immed_d, // 12b branch immediate + 127 8 : output logic [12:1] dec_i0_br_immed_d, // 12b branch immediate 128 : 129 0 : output el2_alu_pkt_t i0_ap, // alu packets 130 : - 131 4305 : output logic dec_i0_decode_d, // i0 decode + 131 978 : output logic dec_i0_decode_d, // i0 decode 132 : - 133 3113 : output logic dec_i0_alu_decode_d, // decode to D-stage alu - 134 1167 : output logic dec_i0_branch_d, // Branch in D-stage + 133 530 : output logic dec_i0_alu_decode_d, // decode to D-stage alu + 134 246 : output logic dec_i0_branch_d, // Branch in D-stage 135 : - 136 1492 : output logic [4:0] dec_i0_waddr_r, // i0 logical source to write to gpr's - 137 2226 : output logic dec_i0_wen_r, // i0 write enable - 138 18 : output logic [31:0] dec_i0_wdata_r, // i0 write data + 136 240 : output logic [4:0] dec_i0_waddr_r, // i0 logical source to write to gpr's + 137 304 : output logic dec_i0_wen_r, // i0 write enable + 138 16 : output logic [31:0] dec_i0_wdata_r, // i0 write data 139 : - 140 244 : output logic dec_i0_select_pc_d, // i0 select pc for rs1 - branches + 140 20 : output logic dec_i0_select_pc_d, // i0 select pc for rs1 - branches 141 : - 142 40 : output logic [3:0] dec_i0_rs1_bypass_en_d, // i0 rs1 bypass enable - 143 0 : output logic [3:0] dec_i0_rs2_bypass_en_d, // i0 rs2 bypass enable - 144 18 : output logic [31:0] dec_i0_result_r, // Result R-stage + 142 0 : output logic [3:0] dec_i0_rs1_bypass_en_d, // i0 rs1 bypass enable + 143 0 : output logic [3:0] dec_i0_rs2_bypass_en_d, // i0 rs2 bypass enable + 144 16 : output logic [31:0] dec_i0_result_r, // Result R-stage 145 : - 146 402 : output el2_lsu_pkt_t lsu_p, // load/store packet - 147 3081 : output logic dec_qual_lsu_d, // LSU instruction at D. Use to quiet LSU operands + 146 24 : output el2_lsu_pkt_t lsu_p, // load/store packet + 147 532 : output logic dec_qual_lsu_d, // LSU instruction at D. Use to quiet LSU operands 148 : 149 0 : output el2_mul_pkt_t mul_p, // multiply packet 150 : @@ -256,45 +256,45 @@ 152 0 : output logic [4:0] div_waddr_wb, // DIV write address to GPR 153 0 : output logic dec_div_cancel, // cancel the divide operation 154 : - 155 1420 : output logic dec_lsu_valid_raw_d, - 156 52 : output logic [11:0] dec_lsu_offset_d, + 155 460 : output logic dec_lsu_valid_raw_d, + 156 0 : output logic [11:0] dec_lsu_offset_d, 157 : - 158 24 : output logic dec_csr_ren_d, // valid csr decode - 159 18 : output logic dec_csr_wen_unq_d, // valid csr with write - for csr legal - 160 42 : output logic dec_csr_any_unq_d, // valid csr - for csr legal + 158 4 : output logic dec_csr_ren_d, // valid csr decode + 159 8 : output logic dec_csr_wen_unq_d, // valid csr with write - for csr legal + 160 12 : output logic dec_csr_any_unq_d, // valid csr - for csr legal 161 8 : output logic [11:0] dec_csr_rdaddr_d, // read address for csr - 162 18 : output logic dec_csr_wen_r, // csr write enable at r - 163 970 : output logic [11:0] dec_csr_rdaddr_r, // read address for csr + 162 8 : output logic dec_csr_wen_r, // csr write enable at r + 163 36 : output logic [11:0] dec_csr_rdaddr_r, // read address for csr 164 8 : output logic [11:0] dec_csr_wraddr_r, // write address for csr 165 4 : output logic [31:0] dec_csr_wrdata_r, // csr write data at r - 166 10 : output logic dec_csr_stall_int_ff, // csr is mie/mstatus + 166 0 : output logic dec_csr_stall_int_ff, // csr is mie/mstatus 167 : - 168 4304 : output dec_tlu_i0_valid_r, // i0 valid inst at c + 168 976 : output dec_tlu_i0_valid_r, // i0 valid inst at c 169 : 170 0 : output el2_trap_pkt_t dec_tlu_packet_r, // trap packet 171 : 172 2 : output logic [31:1] dec_tlu_i0_pc_r, // i0 trap pc 173 : 174 0 : output logic [31:0] dec_illegal_inst, // illegal inst - 175 238 : output logic [31:1] pred_correct_npc_x, // npc e2 if the prediction is correct + 175 16 : output logic [31:1] pred_correct_npc_x, // npc e2 if the prediction is correct 176 : - 177 232 : output el2_predict_pkt_t dec_i0_predict_p_d, // i0 predict packet decode - 178 554 : output logic [pt.BHT_GHR_SIZE-1:0] i0_predict_fghr_d, // i0 predict fghr - 179 122 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] i0_predict_index_d, // i0 predict index + 177 12 : output el2_predict_pkt_t dec_i0_predict_p_d, // i0 predict packet decode + 178 10 : output logic [pt.BHT_GHR_SIZE-1:0] i0_predict_fghr_d, // i0 predict fghr + 179 20 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] i0_predict_index_d, // i0 predict index 180 0 : output logic [pt.BTB_BTAG_SIZE-1:0] i0_predict_btag_d, // i0_predict branch tag 181 : 182 0 : output logic [$clog2(pt.BTB_SIZE)-1:0] dec_fa_error_index, // Fully associt btb error index 183 : - 184 4304 : output logic [1:0] dec_data_en, // clock-gating logic - 185 4304 : output logic [1:0] dec_ctl_en, + 184 976 : output logic [1:0] dec_data_en, // clock-gating logic + 185 976 : output logic [1:0] dec_ctl_en, 186 : - 187 4305 : output logic dec_pmu_instr_decoded, // number of instructions decode this cycle encoded + 187 978 : output logic dec_pmu_instr_decoded, // number of instructions decode this cycle encoded 188 0 : output logic dec_pmu_decode_stall, // decode is stalled 189 0 : output logic dec_pmu_presync_stall, // decode has presync stall 190 0 : output logic dec_pmu_postsync_stall, // decode has postsync stall 191 : - 192 718 : output logic dec_nonblock_load_wen, // write enable for nonblock load - 193 158 : output logic [4:0] dec_nonblock_load_waddr, // logical write addr for nonblock load + 192 232 : output logic dec_nonblock_load_wen, // write enable for nonblock load + 193 4 : output logic [4:0] dec_nonblock_load_waddr, // logical write addr for nonblock load 194 0 : output logic dec_pause_state, // core in pause state 195 0 : output logic dec_pause_state_cg, // pause state for clock-gating 196 : @@ -308,27 +308,27 @@ 204 : 205 0 : el2_dec_pkt_t i0_dp_raw, i0_dp; 206 : - 207 132 : logic [31:0] i0; - 208 4305 : logic i0_valid_d; + 207 12 : logic [31:0] i0; + 208 978 : logic i0_valid_d; 209 : - 210 18 : logic [31:0] i0_result_r; + 210 16 : logic [31:0] i0_result_r; 211 : - 212 32 : logic [2:0] i0_rs1bypass, i0_rs2bypass; + 212 0 : logic [2:0] i0_rs1bypass, i0_rs2bypass; 213 : - 214 132 : logic i0_jalimm20; - 215 220 : logic i0_uiimm20; + 214 12 : logic i0_jalimm20; + 215 20 : logic i0_uiimm20; 216 : - 217 1420 : logic lsu_decode_d; - 218 324 : logic [31:0] i0_immed_d; + 217 460 : logic lsu_decode_d; + 218 16 : logic [31:0] i0_immed_d; 219 0 : logic i0_presync; - 220 64 : logic i0_postsync; + 220 0 : logic i0_postsync; 221 : - 222 30 : logic postsync_stall; - 223 30 : logic ps_stall; + 222 0 : logic postsync_stall; + 223 0 : logic ps_stall; 224 : - 225 4304 : logic prior_inflight, prior_inflight_wb; + 225 976 : logic prior_inflight, prior_inflight_wb; 226 : - 227 18 : logic csr_clr_d, csr_set_d, csr_write_d; + 227 8 : logic csr_clr_d, csr_set_d, csr_write_d; 228 : 229 0 : logic csr_clr_x,csr_set_x,csr_write_x,csr_imm_x; 230 0 : logic [31:0] csr_mask_x; @@ -351,14 +351,14 @@ 247 0 : logic i0_div_prior_div_stall; 248 0 : logic nonblock_div_cancel; 249 : - 250 4271 : logic i0_legal; + 250 978 : logic i0_legal; 251 0 : logic shift_illegal; 252 0 : logic illegal_inst_en; 253 0 : logic illegal_lockout_in, illegal_lockout; - 254 4305 : logic i0_legal_decode_d; - 255 30 : logic i0_exulegal_decode_d, i0_exudecode_d, i0_exublock_d; + 254 978 : logic i0_legal_decode_d; + 255 0 : logic i0_exulegal_decode_d, i0_exudecode_d, i0_exublock_d; 256 : - 257 764 : logic [12:1] last_br_immed_d; + 257 200 : logic [12:1] last_br_immed_d; 258 0 : logic i0_rs1_depend_i0_x, i0_rs1_depend_i0_r; 259 0 : logic i0_rs2_depend_i0_x, i0_rs2_depend_i0_r; 260 : @@ -369,31 +369,31 @@ 265 0 : logic i0_load_stall_d; 266 0 : logic i0_store_stall_d; 267 : - 268 437 : logic i0_predict_nt, i0_predict_t; + 268 70 : logic i0_predict_nt, i0_predict_t; 269 : - 270 12 : logic i0_notbr_error, i0_br_toffset_error; - 271 4 : logic i0_ret_error; - 272 34 : logic i0_br_error; - 273 34 : logic i0_br_error_all; - 274 1071 : logic [11:0] i0_br_offset; + 270 0 : logic i0_notbr_error, i0_br_toffset_error; + 271 0 : logic i0_ret_error; + 272 0 : logic i0_br_error; + 273 0 : logic i0_br_error_all; + 274 238 : logic [11:0] i0_br_offset; 275 : - 276 640 : logic [20:1] i0_pcall_imm; // predicted jal's - 277 3911 : logic i0_pcall_12b_offset; - 278 64 : logic i0_pcall_raw; - 279 64 : logic i0_pcall_case; - 280 64 : logic i0_pcall; + 276 12 : logic [20:1] i0_pcall_imm; // predicted jal's + 277 956 : logic i0_pcall_12b_offset; + 278 8 : logic i0_pcall_raw; + 279 8 : logic i0_pcall_case; + 280 8 : logic i0_pcall; 281 : - 282 68 : logic i0_pja_raw; - 283 72 : logic i0_pja_case; - 284 68 : logic i0_pja; + 282 4 : logic i0_pja_raw; + 283 8 : logic i0_pja_case; + 284 4 : logic i0_pja; 285 : - 286 64 : logic i0_pret_case; - 287 64 : logic i0_pret_raw, i0_pret; + 286 8 : logic i0_pret_case; + 287 8 : logic i0_pret_raw, i0_pret; 288 : - 289 20 : logic i0_jal; // jal's that are not predicted + 289 0 : logic i0_jal; // jal's that are not predicted 290 : 291 : - 292 1113 : logic i0_predict_br; + 292 246 : logic i0_predict_br; 293 : 294 0 : logic store_data_bypass_d, store_data_bypass_m; 295 : @@ -402,9 +402,9 @@ 298 0 : el2_class_pkt_t i0_d_c, i0_x_c, i0_r_c; 299 : 300 : - 301 2237 : logic i0_ap_pc2, i0_ap_pc4; + 301 482 : logic i0_ap_pc2, i0_ap_pc4; 302 : - 303 2804 : logic i0_rd_en_d; + 303 528 : logic i0_rd_en_d; 304 : 305 0 : logic load_ldst_bypass_d; 306 : @@ -412,21 +412,21 @@ 308 0 : logic leak1_i1_stall_in, leak1_i1_stall; 309 0 : logic leak1_mode; 310 : - 311 18 : logic i0_csr_write_only_d; + 311 8 : logic i0_csr_write_only_d; 312 : - 313 4304 : logic prior_inflight_x, prior_inflight_eff; - 314 42 : logic any_csr_d; + 313 976 : logic prior_inflight_x, prior_inflight_eff; + 314 12 : logic any_csr_d; 315 : - 316 18 : logic prior_csr_write; + 316 8 : logic prior_csr_write; 317 : - 318 4304 : logic [3:0] i0_pipe_en; - 319 4304 : logic i0_r_ctl_en, i0_x_ctl_en, i0_wb_ctl_en; - 320 4304 : logic i0_x_data_en, i0_r_data_en, i0_wb_data_en; + 318 976 : logic [3:0] i0_pipe_en; + 319 976 : logic i0_r_ctl_en, i0_x_ctl_en, i0_wb_ctl_en; + 320 976 : logic i0_x_data_en, i0_r_data_en, i0_wb_data_en; 321 : 322 0 : logic debug_fence_i; 323 0 : logic debug_fence; 324 : - 325 18 : logic i0_csr_write; + 325 8 : logic i0_csr_write; 326 0 : logic presync_stall; 327 : 328 0 : logic i0_instr_error; @@ -436,19 +436,19 @@ 332 0 : logic pause_state_in, pause_state; 333 0 : logic pause_stall; 334 : - 335 780 : logic i0_brp_valid; - 336 382 : logic nonblock_load_cancel; - 337 969 : logic lsu_idle; + 335 208 : logic i0_brp_valid; + 336 12 : logic nonblock_load_cancel; + 337 236 : logic lsu_idle; 338 0 : logic lsu_pmu_misaligned_r; - 339 24 : logic csr_ren_qual_d; - 340 24 : logic csr_read_x; - 341 30 : logic i0_block_d; - 342 30 : logic i0_block_raw_d; // This is use to create the raw valid - 343 30 : logic ps_stall_in; - 344 144 : logic [31:0] i0_result_x; + 339 4 : logic csr_ren_qual_d; + 340 4 : logic csr_read_x; + 341 0 : logic i0_block_d; + 342 0 : logic i0_block_raw_d; // This is use to create the raw valid + 343 0 : logic ps_stall_in; + 344 20 : logic [31:0] i0_result_x; 345 : - 346 660 : el2_dest_pkt_t d_d, x_d, r_d, wbd; - 347 660 : el2_dest_pkt_t x_d_in, r_d_in; + 346 228 : el2_dest_pkt_t d_d, x_d, r_d, wbd; + 347 228 : el2_dest_pkt_t x_d_in, r_d_in; 348 : 349 0 : el2_trap_pkt_t d_t, x_t, x_t_in, r_t_in, r_t; 350 : @@ -456,16 +456,16 @@ 352 : 353 2 : logic [31:1] dec_i0_pc_r; 354 : - 355 16 : logic csr_read, csr_write; - 356 20 : logic i0_br_unpred; + 355 4 : logic csr_read, csr_write; + 356 0 : logic i0_br_unpred; 357 : - 358 660 : logic nonblock_load_valid_m_delay; - 359 2804 : logic i0_wen_r; + 358 228 : logic nonblock_load_valid_m_delay; + 359 528 : logic i0_wen_r; 360 : 361 0 : logic tlu_wr_pause_r1; 362 0 : logic tlu_wr_pause_r2; 363 : - 364 344 : logic flush_final_r; + 364 68 : logic flush_final_r; 365 : 366 2 : logic bitmanip_zbb_legal; 367 2 : logic bitmanip_zbs_legal; @@ -489,24 +489,24 @@ 385 : localparam NBLOAD_TAG_MSB = pt.LSU_NUM_NBLOAD_WIDTH-1; 386 : 387 : - 388 718 : logic cam_write, cam_inv_reset, cam_data_reset; - 389 36 : logic [NBLOAD_TAG_MSB:0] cam_write_tag, cam_inv_reset_tag, cam_data_reset_tag; - 390 0 : logic [NBLOAD_SIZE_MSB:0] cam_wen; + 388 232 : logic cam_write, cam_inv_reset, cam_data_reset; + 389 0 : logic [NBLOAD_TAG_MSB:0] cam_write_tag, cam_inv_reset_tag, cam_data_reset_tag; + 390 0 : logic [NBLOAD_SIZE_MSB:0] cam_wen; 391 : - 392 36 : logic [NBLOAD_TAG_MSB:0] load_data_tag; - 393 0 : logic [NBLOAD_SIZE_MSB:0] nonblock_load_write; + 392 0 : logic [NBLOAD_TAG_MSB:0] load_data_tag; + 393 0 : logic [NBLOAD_SIZE_MSB:0] nonblock_load_write; 394 : 395 0 : el2_load_cam_pkt_t [NBLOAD_SIZE_MSB:0] cam; 396 0 : el2_load_cam_pkt_t [NBLOAD_SIZE_MSB:0] cam_in; 397 0 : el2_load_cam_pkt_t [NBLOAD_SIZE_MSB:0] cam_raw; 398 : - 399 166 : logic [4:0] nonblock_load_rd; + 399 8 : logic [4:0] nonblock_load_rd; 400 0 : logic i0_nonblock_load_stall; 401 0 : logic i0_nonblock_boundary_stall; 402 : 403 0 : logic i0_rs1_nonblock_load_bypass_en_d, i0_rs2_nonblock_load_bypass_en_d; 404 : - 405 660 : logic i0_load_kill_wen_r; + 405 228 : logic i0_load_kill_wen_r; 406 : 407 2 : logic found; 408 : @@ -514,27 +514,27 @@ 410 : 411 0 : logic debug_fence_raw; 412 : - 413 18 : logic [31:0] i0_result_r_raw; - 414 18 : logic [31:0] i0_result_corr_r; + 413 16 : logic [31:0] i0_result_r_raw; + 414 16 : logic [31:0] i0_result_corr_r; 415 : - 416 633 : logic [12:1] last_br_immed_x; + 416 192 : logic [12:1] last_br_immed_x; 417 : - 418 592 : logic [31:0] i0_inst_d; - 419 471 : logic [31:0] i0_inst_x; - 420 471 : logic [31:0] i0_inst_r; - 421 471 : logic [31:0] i0_inst_wb_in; - 422 471 : logic [31:0] i0_inst_wb; + 418 8 : logic [31:0] i0_inst_d; + 419 8 : logic [31:0] i0_inst_x; + 420 8 : logic [31:0] i0_inst_r; + 421 8 : logic [31:0] i0_inst_wb_in; + 422 8 : logic [31:0] i0_inst_wb; 423 : 424 2 : logic [31:1] i0_pc_wb; 425 : - 426 4304 : logic i0_wb_en; + 426 976 : logic i0_wb_en; 427 : 428 2 : logic trace_enable; 429 : 430 0 : logic debug_valid_x; 431 : - 432 1133 : el2_inst_pkt_t i0_itype; - 433 886 : el2_reg_pkt_t i0r; + 432 246 : el2_inst_pkt_t i0_itype; + 433 12 : el2_reg_pkt_t i0r; 434 : 435 : 436 : rvdffie #(8) misc1ff (.*, @@ -631,14 +631,14 @@ 527 : 528 2 : always_comb begin 529 2 : i0_dp = i0_dp_raw; - 530 206 : if (i0_br_error_all | i0_instr_error) begin - 531 206 : i0_dp = '0; - 532 206 : i0_dp.alu = 1'b1; - 533 206 : i0_dp.rs1 = 1'b1; - 534 206 : i0_dp.rs2 = 1'b1; - 535 206 : i0_dp.lor = 1'b1; - 536 206 : i0_dp.legal = 1'b1; - 537 206 : i0_dp.postsync = 1'b1; + 530 1962 : if (i0_br_error_all | i0_instr_error) begin + 531 103 : i0_dp = '0; + 532 103 : i0_dp.alu = 1'b1; + 533 103 : i0_dp.rs1 = 1'b1; + 534 103 : i0_dp.rs2 = 1'b1; + 535 103 : i0_dp.lor = 1'b1; + 536 103 : i0_dp.legal = 1'b1; + 537 103 : i0_dp.postsync = 1'b1; 538 : end 539 : end 540 : @@ -709,16 +709,16 @@ 605 2 : found = 0; 606 2 : for (int i=0; i<NBLOAD_SIZE; i++) begin 607 2 : if (~found) begin - 608 3898 : if (~cam[i].valid) begin - 609 26972 : cam_wen[i] = cam_write; - 610 26972 : found = 1'b1; + 608 2351 : if (~cam[i].valid) begin + 609 15177 : cam_wen[i] = cam_write; + 610 15177 : found = 1'b1; 611 : end - 612 3898 : else begin - 613 3898 : cam_wen[i] = 0; + 612 2351 : else begin + 613 2351 : cam_wen[i] = 0; 614 : end 615 : end 616 : else - 617 106902 : cam_wen[i] = 0; + 617 60486 : cam_wen[i] = 0; 618 : end 619 : end 620 : @@ -756,28 +756,28 @@ 652 : 653 8 : cam[i] = cam_raw[i]; 654 : - 655 612 : if (cam_data_reset_val[i]) - 656 612 : cam[i].valid = 1'b0; + 655 365 : if (cam_data_reset_val[i]) + 656 365 : cam[i].valid = 1'b0; 657 : 658 8 : cam_in[i] = '0; 659 : - 660 1836 : if (cam_wen[i]) begin - 661 1836 : cam_in[i].valid = 1'b1; - 662 1836 : cam_in[i].wb = 1'b0; - 663 1836 : cam_in[i].tag[NBLOAD_TAG_MSB:0] = cam_write_tag[NBLOAD_TAG_MSB:0]; - 664 1836 : cam_in[i].rd[4:0] = nonblock_load_rd[4:0]; + 660 1095 : if (cam_wen[i]) begin + 661 1095 : cam_in[i].valid = 1'b1; + 662 1095 : cam_in[i].wb = 1'b0; + 663 1095 : cam_in[i].tag[NBLOAD_TAG_MSB:0] = cam_write_tag[NBLOAD_TAG_MSB:0]; + 664 1095 : cam_in[i].rd[4:0] = nonblock_load_rd[4:0]; 665 : end - 666 90 : else if ( (cam_inv_reset_val[i]) | + 666 46 : else if ( (cam_inv_reset_val[i]) | 667 : (i0_wen_r & (r_d_in.i0rd[4:0] == cam[i].rd[4:0]) & cam[i].wb) ) - 668 90 : cam_in[i].valid = 1'b0; + 668 46 : cam_in[i].valid = 1'b0; 669 : else - 670 140610 : cam_in[i] = cam[i]; + 670 79507 : cam_in[i] = cam[i]; 671 : - 672 1836 : if (nonblock_load_valid_m_delay & (lsu_nonblock_load_inv_tag_r[NBLOAD_TAG_MSB:0]==cam[i].tag[NBLOAD_TAG_MSB:0]) & cam[i].valid) - 673 1836 : cam_in[i].wb = 1'b1; + 672 1095 : if (nonblock_load_valid_m_delay & (lsu_nonblock_load_inv_tag_r[NBLOAD_TAG_MSB:0]==cam[i].tag[NBLOAD_TAG_MSB:0]) & cam[i].valid) + 673 1095 : cam_in[i].wb = 1'b1; 674 : 675 : // force debug halt forces cam valids to 0; highest priority - 676 114200 : if (dec_tlu_force_halt) + 676 64536 : if (dec_tlu_force_halt) 677 0 : cam_in[i].valid = 1'b0; 678 : end 679 : @@ -847,26 +847,26 @@ 743 2 : always_comb begin 744 2 : i0_itype = NULL_OP; 745 : - 746 6072 : if (i0_legal_decode_d) begin - 747 6072 : if (i0_dp.mul) i0_itype = MUL; - 748 828 : if (i0_dp.load) i0_itype = LOAD; - 749 1056 : if (i0_dp.store) i0_itype = STORE; - 750 2710 : if (i0_dp.pm_alu) i0_itype = ALU; - 751 6072 : if (i0_dp.zbb | i0_dp.zbs | + 746 3309 : if (i0_legal_decode_d) begin + 747 3309 : if (i0_dp.mul) i0_itype = MUL; + 748 479 : if (i0_dp.load) i0_itype = LOAD; + 749 592 : if (i0_dp.store) i0_itype = STORE; + 750 1430 : if (i0_dp.pm_alu) i0_itype = ALU; + 751 3309 : if (i0_dp.zbb | i0_dp.zbs | 752 : i0_dp.zbe | i0_dp.zbc | 753 : i0_dp.zbp | i0_dp.zbr | 754 : i0_dp.zbf | i0_dp.zba) 755 0 : i0_itype = BITMANIPU; - 756 26 : if ( csr_read & ~csr_write) i0_itype = CSRREAD; - 757 14 : if (~csr_read & csr_write) i0_itype = CSRWRITE; - 758 6072 : if ( csr_read & csr_write) i0_itype = CSRRW; - 759 6072 : if (i0_dp.ebreak) i0_itype = EBREAK; - 760 6072 : if (i0_dp.ecall) i0_itype = ECALL; - 761 6072 : if (i0_dp.fence) i0_itype = FENCE; - 762 6072 : if (i0_dp.fence_i) i0_itype = FENCEI; // fencei will set this even with fence attribute - 763 6072 : if (i0_dp.mret) i0_itype = MRET; - 764 1116 : if (i0_dp.condbr) i0_itype = CONDBR; - 765 322 : if (i0_dp.jal) i0_itype = JAL; + 756 16 : if ( csr_read & ~csr_write) i0_itype = CSRREAD; + 757 9 : if (~csr_read & csr_write) i0_itype = CSRWRITE; + 758 3309 : if ( csr_read & csr_write) i0_itype = CSRRW; + 759 3309 : if (i0_dp.ebreak) i0_itype = EBREAK; + 760 3309 : if (i0_dp.ecall) i0_itype = ECALL; + 761 3309 : if (i0_dp.fence) i0_itype = FENCE; + 762 3309 : if (i0_dp.fence_i) i0_itype = FENCEI; // fencei will set this even with fence attribute + 763 3309 : if (i0_dp.mret) i0_itype = MRET; + 764 615 : if (i0_dp.condbr) i0_itype = CONDBR; + 765 168 : if (i0_dp.jal) i0_itype = JAL; 766 : end 767 : end 768 : @@ -963,27 +963,27 @@ 859 2 : always_comb begin 860 2 : lsu_p = '0; 861 : - 862 28550 : if (dec_extint_stall) begin + 862 16134 : if (dec_extint_stall) begin 863 0 : lsu_p.load = 1'b1; 864 0 : lsu_p.word = 1'b1; 865 0 : lsu_p.fast_int = 1'b1; 866 0 : lsu_p.valid = 1'b1; 867 : end - 868 28550 : else begin - 869 28550 : lsu_p.valid = lsu_decode_d; + 868 16134 : else begin + 869 16134 : lsu_p.valid = lsu_decode_d; 870 : - 871 28550 : lsu_p.load = i0_dp.load ; - 872 28550 : lsu_p.store = i0_dp.store; - 873 28550 : lsu_p.by = i0_dp.by ; - 874 28550 : lsu_p.half = i0_dp.half ; - 875 28550 : lsu_p.word = i0_dp.word ; - 876 28550 : lsu_p.stack = (i0r.rs1[4:0]==5'd2); // stack reference + 871 16134 : lsu_p.load = i0_dp.load ; + 872 16134 : lsu_p.store = i0_dp.store; + 873 16134 : lsu_p.by = i0_dp.by ; + 874 16134 : lsu_p.half = i0_dp.half ; + 875 16134 : lsu_p.word = i0_dp.word ; + 876 16134 : lsu_p.stack = (i0r.rs1[4:0]==5'd2); // stack reference 877 : - 878 28550 : lsu_p.load_ldst_bypass_d = load_ldst_bypass_d ; - 879 28550 : lsu_p.store_data_bypass_d = store_data_bypass_d; - 880 28550 : lsu_p.store_data_bypass_m = store_data_bypass_m; + 878 16134 : lsu_p.load_ldst_bypass_d = load_ldst_bypass_d ; + 879 16134 : lsu_p.store_data_bypass_d = store_data_bypass_d; + 880 16134 : lsu_p.store_data_bypass_m = store_data_bypass_m; 881 : - 882 28550 : lsu_p.unsign = i0_dp.unsign; + 882 16134 : lsu_p.unsign = i0_dp.unsign; 883 : end 884 : end 885 : @@ -1614,11 +1614,11 @@ 1510 : module el2_dec_dec_ctl 1511 : import el2_pkg::*; 1512 : ( - 1513 132 : input logic [31:0] inst, + 1513 12 : input logic [31:0] inst, 1514 0 : output el2_dec_pkt_t out 1515 : ); 1516 : - 1517 132 : logic [31:0] i; + 1517 12 : logic [31:0] i; 1518 : 1519 : assign i[31:0] = inst[31:0]; 1520 : diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_dec_gpr_ctl.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_dec_gpr_ctl.sv.html index 43cc3b70517..f1da073dbdf 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_dec_gpr_ctl.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_dec_gpr_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -122,26 +122,26 @@ 18 : #( 19 : `include "el2_param.vh" 20 : ) ( - 21 886 : input logic [4:0] raddr0, // logical read addresses - 22 1136 : input logic [4:0] raddr1, + 21 12 : input logic [4:0] raddr0, // logical read addresses + 22 40 : input logic [4:0] raddr1, 23 : - 24 2226 : input logic wen0, // write enable - 25 1492 : input logic [4:0] waddr0, // write address - 26 18 : input logic [31:0] wd0, // write data + 24 304 : input logic wen0, // write enable + 25 240 : input logic [4:0] waddr0, // write address + 26 16 : input logic [31:0] wd0, // write data 27 : - 28 718 : input logic wen1, // write enable - 29 158 : input logic [4:0] waddr1, // write address - 30 14 : input logic [31:0] wd1, // write data + 28 232 : input logic wen1, // write enable + 29 4 : input logic [4:0] waddr1, // write address + 30 0 : input logic [31:0] wd1, // write data 31 : - 32 0 : input logic wen2, // write enable + 32 0 : input logic wen2, // write enable 33 0 : input logic [4:0] waddr2, // write address 34 0 : input logic [31:0] wd2, // write data 35 : - 36 66208 : input logic clk, + 36 14760 : input logic clk, 37 2 : input logic rst_l, 38 : - 39 12 : output logic [31:0] rd0, // read data - 40 18 : output logic [31:0] rd1, + 39 8 : output logic [31:0] rd0, // read data + 40 8 : output logic [31:0] rd1, 41 : 42 0 : input logic scan_mode 43 : ); @@ -149,7 +149,7 @@ 45 : logic [31:1] [31:0] gpr_out; // 31 x 32 bit GPRs 46 : logic [31:1] [31:0] gpr_in; 47 0 : logic [31:1] w0v,w1v,w2v; - 48 22 : logic [31:1] gpr_wr_en; + 48 4 : logic [31:1] gpr_wr_en; 49 : 50 : // GPR Write Enables 51 : assign gpr_wr_en[31:1] = (w0v[31:1] | w1v[31:1] | w2v[31:1]); diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_dec_ib_ctl.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_dec_ib_ctl.sv.html index 0a989b08ca1..2708523302e 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_dec_ib_ctl.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_dec_ib_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -129,36 +129,36 @@ 25 0 : input logic [1:0] dbg_cmd_type, // dbg type 26 0 : input logic [31:0] dbg_cmd_addr, // expand to 31:0 27 : - 28 62 : input el2_br_pkt_t i0_brp, // i0 branch packet from aligner - 29 122 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] ifu_i0_bp_index, // BP index - 30 554 : input logic [pt.BHT_GHR_SIZE-1:0] ifu_i0_bp_fghr, // BP FGHR + 28 12 : input el2_br_pkt_t i0_brp, // i0 branch packet from aligner + 29 20 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] ifu_i0_bp_index, // BP index + 30 10 : input logic [pt.BHT_GHR_SIZE-1:0] ifu_i0_bp_fghr, // BP FGHR 31 0 : input logic [pt.BTB_BTAG_SIZE-1:0] ifu_i0_bp_btag, // BP tag 32 0 : input logic [$clog2(pt.BTB_SIZE)-1:0] ifu_i0_fa_index, // Fully associt btb index 33 : - 34 2237 : input logic ifu_i0_pc4, // i0 is 4B inst else 2B - 35 4305 : input logic ifu_i0_valid, // i0 valid from ifu + 34 482 : input logic ifu_i0_pc4, // i0 is 4B inst else 2B + 35 978 : input logic ifu_i0_valid, // i0 valid from ifu 36 0 : input logic ifu_i0_icaf, // i0 instruction access fault 37 0 : input logic [1:0] ifu_i0_icaf_type, // i0 instruction access fault type 38 : 39 0 : input logic ifu_i0_icaf_second, // i0 has access fault on second 2B of 4B inst 40 0 : input logic ifu_i0_dbecc, // i0 double-bit error - 41 132 : input logic [31:0] ifu_i0_instr, // i0 instruction from the aligner + 41 12 : input logic [31:0] ifu_i0_instr, // i0 instruction from the aligner 42 10 : input logic [31:1] ifu_i0_pc, // i0 pc from the aligner 43 : 44 : - 45 4305 : output logic dec_ib0_valid_d, // ib0 valid + 45 978 : output logic dec_ib0_valid_d, // ib0 valid 46 0 : output logic dec_debug_valid_d, // Debug read or write at D-stage 47 : 48 : - 49 132 : output logic [31:0] dec_i0_instr_d, // i0 inst at decode + 49 12 : output logic [31:0] dec_i0_instr_d, // i0 inst at decode 50 : 51 10 : output logic [31:1] dec_i0_pc_d, // i0 pc at decode 52 : - 53 2237 : output logic dec_i0_pc4_d, // i0 is 4B inst else 2B + 53 482 : output logic dec_i0_pc4_d, // i0 is 4B inst else 2B 54 : - 55 62 : output el2_br_pkt_t dec_i0_brp, // i0 branch packet at decode - 56 122 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] dec_i0_bp_index, // i0 branch index - 57 554 : output logic [pt.BHT_GHR_SIZE-1:0] dec_i0_bp_fghr, // BP FGHR + 55 12 : output el2_br_pkt_t dec_i0_brp, // i0 branch packet at decode + 56 20 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] dec_i0_bp_index, // i0 branch index + 57 10 : output logic [pt.BHT_GHR_SIZE-1:0] dec_i0_bp_fghr, // BP FGHR 58 0 : output logic [pt.BTB_BTAG_SIZE-1:0] dec_i0_bp_btag, // BP tag 59 0 : output logic [$clog2(pt.BTB_SIZE)-1:0] dec_i0_bp_fa_index, // Fully associt btb index 60 : @@ -185,7 +185,7 @@ 81 0 : logic debug_read_csr; 82 0 : logic debug_write_csr; 83 : - 84 118 : logic [34:0] ifu_i0_pcdata, pc0; + 84 16 : logic [34:0] ifu_i0_pcdata, pc0; 85 : 86 : assign ifu_i0_pcdata[34:0] = { ifu_i0_icaf_second, ifu_i0_dbecc, ifu_i0_icaf, 87 : ifu_i0_pc[31:1], ifu_i0_pc4 }; diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_dec_pmp_ctl.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_dec_pmp_ctl.sv.html index 2139ae64f81..36c5ddfa826 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_dec_pmp_ctl.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_dec_pmp_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -133,11 +133,11 @@ 29 : `include "el2_param.vh" 30 : ) 31 : ( - 32 66208 : input logic clk, - 33 66208 : input logic free_l2clk, - 34 66208 : input logic csr_wr_clk, + 32 14760 : input logic clk, + 33 14760 : input logic free_l2clk, + 34 14760 : input logic csr_wr_clk, 35 2 : input logic rst_l, - 36 18 : input logic dec_csr_wen_r_mod, // csr write enable at wb + 36 8 : input logic dec_csr_wen_r_mod, // csr write enable at wb 37 8 : input logic [11:0] dec_csr_wraddr_r, // write address for csr 38 4 : input logic [31:0] dec_csr_wrdata_r, // csr write data at wb 39 8 : input logic [11:0] dec_csr_rdaddr_d, // read address for csr @@ -153,7 +153,7 @@ 49 0 : input logic internal_dbg_halt_timers, // debug halted 50 : 51 : `ifdef RV_SMEPMP - 52 0 : input el2_mseccfg_pkt_t mseccfg, + 52 : input el2_mseccfg_pkt_t mseccfg, 53 : `endif 54 : 55 0 : output logic [31:0] dec_pmp_rddata_d, // pmp CSR read data @@ -248,10 +248,10 @@ 144 : for (genvar entry_idx = 0; entry_idx < pt.PMP_ENTRIES; entry_idx++) begin : gen_pmpaddr_ff 145 : logic pmpaddr_lock; 146 : logic pmpaddr_lock_next; - 147 : assign pmpaddr_lock_next = ((entry_idx+1 < pt.PMP_ENTRIES) - 148 : ? (entry_lock_eff[entry_idx+1] - 149 : & pmp_pmpcfg[entry_idx+1].mode == TOR) - 150 : : 1'b0); + 147 : if (entry_idx+1 < pt.PMP_ENTRIES) + 148 : assign pmpaddr_lock_next = entry_lock_eff[entry_idx+1] & pmp_pmpcfg[entry_idx+1].mode == TOR; + 149 : else + 150 : assign pmpaddr_lock_next = 1'b0; 151 : assign pmpaddr_lock = entry_lock_eff[entry_idx] | pmpaddr_lock_next; 152 : assign pmp_pmpaddr[entry_idx][31:30] = 2'b00; 153 : rvdffe #(30) pmpaddr_ff (.*, .clk(free_l2clk), diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_dec_tlu_ctl.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_dec_tlu_ctl.sv.html index a78319ac471..33a3e21dae0 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_dec_tlu_ctl.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_dec_tlu_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -133,9 +133,9 @@ 29 : `include "el2_param.vh" 30 : ) 31 : ( - 32 66208 : input logic clk, - 33 66208 : input logic free_clk, - 34 66208 : input logic free_l2clk, + 32 14760 : input logic clk, + 33 14760 : input logic free_clk, + 34 14760 : input logic free_l2clk, 35 2 : input logic rst_l, 36 0 : input logic scan_mode, 37 : @@ -149,29 +149,29 @@ 45 : 46 : 47 : // perf counter inputs - 48 4305 : input logic ifu_pmu_instr_aligned, // aligned instructions - 49 272 : input logic ifu_pmu_fetch_stall, // fetch unit stalled - 50 4336 : input logic ifu_pmu_ic_miss, // icache miss + 48 978 : input logic ifu_pmu_instr_aligned, // aligned instructions + 49 58 : input logic ifu_pmu_fetch_stall, // fetch unit stalled + 50 988 : input logic ifu_pmu_ic_miss, // icache miss 51 0 : input logic ifu_pmu_ic_hit, // icache hit 52 0 : input logic ifu_pmu_bus_error, // Instruction side bus error 53 0 : input logic ifu_pmu_bus_busy, // Instruction side bus busy - 54 4336 : input logic ifu_pmu_bus_trxn, // Instruction side bus transaction - 55 4305 : input logic dec_pmu_instr_decoded, // decoded instructions + 54 988 : input logic ifu_pmu_bus_trxn, // Instruction side bus transaction + 55 978 : input logic dec_pmu_instr_decoded, // decoded instructions 56 0 : input logic dec_pmu_decode_stall, // decode stall 57 0 : input logic dec_pmu_presync_stall, // decode stall due to presync'd inst 58 0 : input logic dec_pmu_postsync_stall,// decode stall due to postsync'd inst 59 0 : input logic lsu_store_stall_any, // SB or WB is full, stall decode 60 0 : input logic dma_dccm_stall_any, // DMA stall of lsu 61 0 : input logic dma_iccm_stall_any, // DMA stall of ifu - 62 314 : input logic exu_pmu_i0_br_misp, // pipe 0 branch misp - 63 706 : input logic exu_pmu_i0_br_ataken, // pipe 0 branch actual taken - 64 930 : input logic exu_pmu_i0_pc4, // pipe 0 4 byte branch - 65 1548 : input logic lsu_pmu_bus_trxn, // D side bus transaction + 62 64 : input logic exu_pmu_i0_br_misp, // pipe 0 branch misp + 63 232 : input logic exu_pmu_i0_br_ataken, // pipe 0 branch actual taken + 64 242 : input logic exu_pmu_i0_pc4, // pipe 0 4 byte branch + 65 468 : input logic lsu_pmu_bus_trxn, // D side bus transaction 66 0 : input logic lsu_pmu_bus_misaligned, // D side bus misaligned 67 0 : input logic lsu_pmu_bus_error, // D side bus error 68 0 : input logic lsu_pmu_bus_busy, // D side bus busy - 69 660 : input logic lsu_pmu_load_external_m, // D side bus load - 70 760 : input logic lsu_pmu_store_external_m, // D side bus store + 69 228 : input logic lsu_pmu_load_external_m, // D side bus load + 70 232 : input logic lsu_pmu_store_external_m, // D side bus store 71 0 : input logic dma_pmu_dccm_read, // DMA DCCM read 72 0 : input logic dma_pmu_dccm_write, // DMA DCCM write 73 0 : input logic dma_pmu_any_read, // DMA read @@ -188,20 +188,20 @@ 84 0 : input logic dec_pause_state, // Pause counter not zero 85 0 : input logic lsu_imprecise_error_store_any, // store bus error 86 0 : input logic lsu_imprecise_error_load_any, // store bus error - 87 111 : input logic [31:0] lsu_imprecise_error_addr_any, // store bus error address + 87 220 : input logic [31:0] lsu_imprecise_error_addr_any, // store bus error address 88 : - 89 18 : input logic dec_csr_wen_unq_d, // valid csr with write - for csr legal - 90 42 : input logic dec_csr_any_unq_d, // valid csr - for csr legal + 89 8 : input logic dec_csr_wen_unq_d, // valid csr with write - for csr legal + 90 12 : input logic dec_csr_any_unq_d, // valid csr - for csr legal 91 8 : input logic [11:0] dec_csr_rdaddr_d, // read address for csr 92 : - 93 18 : input logic dec_csr_wen_r, // csr write enable at wb - 94 970 : input logic [11:0] dec_csr_rdaddr_r, // read address for csr + 93 8 : input logic dec_csr_wen_r, // csr write enable at wb + 94 36 : input logic [11:0] dec_csr_rdaddr_r, // read address for csr 95 8 : input logic [11:0] dec_csr_wraddr_r, // write address for csr 96 4 : input logic [31:0] dec_csr_wrdata_r, // csr write data at wb 97 : - 98 10 : input logic dec_csr_stall_int_ff, // csr is mie/mstatus + 98 0 : input logic dec_csr_stall_int_ff, // csr is mie/mstatus 99 : - 100 4304 : input logic dec_tlu_i0_valid_r, // pipe 0 op at e4 is valid + 100 976 : input logic dec_tlu_i0_valid_r, // pipe 0 op at e4 is valid 101 : 102 2 : input logic [31:1] exu_npc_r, // for NPC tracking 103 : @@ -210,21 +210,21 @@ 106 0 : input el2_trap_pkt_t dec_tlu_packet_r, // exceptions known at decode 107 : 108 0 : input logic [31:0] dec_illegal_inst, // For mtval - 109 4305 : input logic dec_i0_decode_d, // decode valid, used for clean icache diagnostics + 109 978 : input logic dec_i0_decode_d, // decode valid, used for clean icache diagnostics 110 : 111 : // branch info from pipe0 for errors or counter updates - 112 576 : input logic [1:0] exu_i0_br_hist_r, // history + 112 172 : input logic [1:0] exu_i0_br_hist_r, // history 113 0 : input logic exu_i0_br_error_r, // error 114 0 : input logic exu_i0_br_start_error_r, // start error - 115 746 : input logic exu_i0_br_valid_r, // valid - 116 314 : input logic exu_i0_br_mp_r, // mispredict - 117 1268 : input logic exu_i0_br_middle_r, // middle of bank + 115 208 : input logic exu_i0_br_valid_r, // valid + 116 64 : input logic exu_i0_br_mp_r, // mispredict + 117 268 : input logic exu_i0_br_middle_r, // middle of bank 118 : 119 : // branch info from pipe1 for errors or counter updates 120 : - 121 258 : input logic exu_i0_br_way_r, // way hit or repl + 121 8 : input logic exu_i0_br_way_r, // way hit or repl 122 : - 123 1280 : output logic dec_tlu_core_empty, // core is empty + 123 268 : output logic dec_tlu_core_empty, // core is empty 124 : // Debug start 125 0 : output logic dec_dbg_cmd_done, // abstract command done 126 0 : output logic dec_dbg_cmd_fail, // abstract command failed @@ -243,8 +243,8 @@ 139 : 140 0 : input logic dbg_halt_req, // DM requests a halt 141 0 : input logic dbg_resume_req, // DM requests a resume - 142 4336 : input logic ifu_miss_state_idle, // I-side miss buffer empty - 143 969 : input logic lsu_idle_any, // lsu is idle + 142 988 : input logic ifu_miss_state_idle, // I-side miss buffer empty + 143 236 : input logic lsu_idle_any, // lsu is idle 144 0 : input logic dec_div_active, // oop div is active 145 0 : output el2_trigger_pkt_t [3:0] trigger_pkt_any, // trigger info for trigger blocks 146 : @@ -284,14 +284,14 @@ 180 0 : output logic [3:0] dec_tlu_meipt, // to PIC 181 : 182 : - 183 41 : output logic [31:0] dec_csr_rddata_d, // csr read data at wb - 184 42 : output logic dec_csr_legal_d, // csr indicates legal operation + 183 0 : output logic [31:0] dec_csr_rddata_d, // csr read data at wb + 184 12 : output logic dec_csr_legal_d, // csr indicates legal operation 185 : - 186 258 : output el2_br_tlu_pkt_t dec_tlu_br0_r_pkt, // branch pkt to bp + 186 8 : output el2_br_tlu_pkt_t dec_tlu_br0_r_pkt, // branch pkt to bp 187 : 188 0 : output logic dec_tlu_i0_kill_writeb_wb, // I0 is flushed, don't writeback any results to arch state 189 4 : output logic dec_tlu_flush_lower_wb, // commit has a flush (exception, int, mispredict at e4) - 190 4304 : output logic dec_tlu_i0_commit_cmt, // committed an instruction + 190 976 : output logic dec_tlu_i0_commit_cmt, // committed an instruction 191 : 192 0 : output logic dec_tlu_i0_kill_writeb_r, // I0 is flushed, don't writeback any results to arch state 193 4 : output logic dec_tlu_flush_lower_r, // commit has a flush (exception, int) @@ -301,10 +301,10 @@ 197 0 : output logic dec_tlu_flush_pause_r, // Flush is due to pause 198 : 199 0 : output logic dec_tlu_presync_d, // CSR read needs to be presync'd - 200 30 : output logic dec_tlu_postsync_d, // CSR needs to be presync'd + 200 0 : output logic dec_tlu_postsync_d, // CSR needs to be presync'd 201 : 202 : - 203 0 : output logic [31:0] dec_tlu_mrac_ff, // CSR for memory region control + 203 0 : output logic [31:0] dec_tlu_mrac_ff, // CSR for memory region control 204 : 205 0 : output logic dec_tlu_force_halt, // halt has been forced 206 : @@ -314,7 +314,7 @@ 210 0 : output logic dec_tlu_perfcnt3, // toggles when pipe0 perf counter 3 has an event inc 211 : 212 0 : output logic dec_tlu_i0_exc_valid_wb1, // pipe 0 exception valid - 213 4304 : output logic dec_tlu_i0_valid_wb1, // pipe 0 valid + 213 976 : output logic dec_tlu_i0_valid_wb1, // pipe 0 valid 214 0 : output logic dec_tlu_int_valid_wb1, // pipe 2 int valid 215 0 : output logic [4:0] dec_tlu_exc_cause_wb1, // exception or int cause 216 0 : output logic [31:0] dec_tlu_mtval_wb1, // MTVAL value @@ -344,12 +344,12 @@ 240 : 241 : // Privilege mode 242 : // 0 - machine, 1 - user - 243 0 : output logic priv_mode, - 244 2 : output logic priv_mode_eff, - 245 0 : output logic priv_mode_ns, + 243 : output logic priv_mode, + 244 : output logic priv_mode_eff, + 245 : output logic priv_mode_ns, 246 : 247 : // mseccfg CSR content for PMP - 248 0 : output logic [2:0] mseccfg, + 248 : output logic [2:0] mseccfg, 249 : 250 : `endif 251 : @@ -376,12 +376,12 @@ 272 0 : logic set_mie_pmu_fw_halt, fw_halted_ns, fw_halted; 273 0 : logic wr_mcountinhibit_r; 274 : `ifdef RV_USER_MODE - 275 0 : logic wr_mcounteren_r; - 276 0 : logic [5:0] mcounteren; // HPM6, HPM5, HPM4, HPM3, IR, CY - 277 0 : logic wr_mseccfg_r; - 278 4 : logic [2:0] mseccfg_ns; + 275 : logic wr_mcounteren_r; + 276 : logic [5:0] mcounteren; // HPM6, HPM5, HPM4, HPM3, IR, CY + 277 : logic wr_mseccfg_r; + 278 : logic [2:0] mseccfg_ns; 279 : `endif - 280 0 : logic [6:0] mcountinhibit; + 280 0 : logic [6:0] mcountinhibit; 281 0 : logic wr_mtsel_r, wr_mtdata1_t0_r, wr_mtdata1_t1_r, wr_mtdata1_t2_r, wr_mtdata1_t3_r, wr_mtdata2_t0_r, wr_mtdata2_t1_r, wr_mtdata2_t2_r, wr_mtdata2_t3_r; 282 0 : logic [31:0] mtdata2_t0, mtdata2_t1, mtdata2_t2, mtdata2_t3, mtdata2_tsel_out, mtdata1_tsel_out; 283 0 : logic [9:0] mtdata1_t0_ns, mtdata1_t0, mtdata1_t1_ns, mtdata1_t1, mtdata1_t2_ns, mtdata1_t2, mtdata1_t3_ns, mtdata1_t3; @@ -389,9 +389,9 @@ 285 0 : logic [1:0] mtsel_ns, mtsel; 286 0 : logic tlu_i0_kill_writeb_r; 287 : `ifdef RV_USER_MODE - 288 1 : logic [3:0] mstatus_ns, mstatus; // MPRV, MPP (inverted! 0-M, 1-U), MPIE, MIE + 288 : logic [3:0] mstatus_ns, mstatus; // MPRV, MPP (inverted! 0-M, 1-U), MPIE, MIE 289 : `else - 290 0 : logic [1:0] mstatus_ns, mstatus; + 290 0 : logic [1:0] mstatus_ns, mstatus; 291 : `endif 292 0 : logic [1:0] mfdhs_ns, mfdhs; 293 0 : logic [31:0] force_halt_ctr, force_halt_ctr_f; @@ -402,10 +402,10 @@ 298 0 : logic [15:2] dcsr_ns, dcsr; 299 0 : logic [5:0] mip_ns, mip; 300 0 : logic [5:0] mie_ns, mie; - 301 30 : logic [31:0] mcyclel_ns, mcyclel; + 301 6 : logic [31:0] mcyclel_ns, mcyclel; 302 0 : logic [31:0] mcycleh_ns, mcycleh; - 303 4 : logic [31:0] minstretl_ns, minstretl; - 304 0 : logic [31:0] minstreth_ns, minstreth; + 303 0 : logic [31:0] minstretl_ns, minstretl; + 304 0 : logic [31:0] minstreth_ns, minstreth; 305 0 : logic [31:0] micect_ns, micect, miccmect_ns, miccmect, mdccmect_ns, mdccmect; 306 0 : logic [26:0] micect_inc, miccmect_inc, mdccmect_inc; 307 0 : logic [31:0] mscratch; @@ -428,8 +428,8 @@ 324 0 : logic dec_pause_state_f, dec_tlu_wr_pause_r_d1, pause_expired_r, pause_expired_wb; 325 4 : logic tlu_flush_lower_r, tlu_flush_lower_r_d1; 326 0 : logic [31:1] tlu_flush_path_r, tlu_flush_path_r_d1; - 327 4304 : logic i0_valid_wb; - 328 4304 : logic tlu_i0_commit_cmt; + 327 976 : logic i0_valid_wb; + 328 976 : logic tlu_i0_commit_cmt; 329 0 : logic [31:1] vectored_path, interrupt_path; 330 0 : logic [16:0] dicawics_ns, dicawics; 331 0 : logic wr_dicawics_r, wr_dicad0_r, wr_dicad1_r, wr_dicad0h_r; @@ -444,22 +444,22 @@ 340 0 : logic i0_exception_valid_r, interrupt_valid_r, i0_exception_valid_r_d1, interrupt_valid_r_d1, exc_or_int_valid_r, exc_or_int_valid_r_d1, mdccme_ce_req, miccme_ce_req, mice_ce_req; 341 0 : logic synchronous_flush_r; 342 0 : logic [4:0] exc_cause_r, exc_cause_wb; - 343 124 : logic mcyclel_cout, mcyclel_cout_f, mcyclela_cout; - 344 30 : logic [31:0] mcyclel_inc; + 343 28 : logic mcyclel_cout, mcyclel_cout_f, mcyclela_cout; + 344 6 : logic [31:0] mcyclel_inc; 345 0 : logic [31:0] mcycleh_inc; 346 : - 347 20 : logic minstretl_cout, minstretl_cout_f, minstret_enable, minstretl_cout_ns, minstretl_couta; + 347 4 : logic minstretl_cout, minstretl_cout_f, minstret_enable, minstretl_cout_ns, minstretl_couta; 348 : - 349 4 : logic [31:0] minstretl_inc, minstretl_read; - 350 0 : logic [31:0] minstreth_inc, minstreth_read; + 349 0 : logic [31:0] minstretl_inc, minstretl_read; + 350 0 : logic [31:0] minstreth_inc, minstreth_read; 351 2 : logic [31:1] pc_r, pc_r_d1, npc_r, npc_r_d1; - 352 42 : logic valid_csr; + 352 12 : logic valid_csr; 353 0 : logic rfpc_i0_r; 354 0 : logic lsu_i0_rfnpc_r; - 355 560 : logic dec_tlu_br0_error_r, dec_tlu_br0_start_error_r, dec_tlu_br0_v_r; + 355 176 : logic dec_tlu_br0_error_r, dec_tlu_br0_start_error_r, dec_tlu_br0_v_r; 356 0 : logic lsu_i0_exc_r, lsu_i0_exc_r_raw, lsu_exc_ma_r, lsu_exc_acc_r, lsu_exc_st_r, 357 0 : lsu_exc_valid_r, lsu_exc_valid_r_raw, lsu_exc_valid_r_d1, lsu_i0_exc_r_d1, block_interrupts; - 358 4304 : logic i0_trigger_eval_r; + 358 976 : logic i0_trigger_eval_r; 359 : 360 0 : logic request_debug_mode_r, request_debug_mode_r_d1, request_debug_mode_done, request_debug_mode_done_f; 361 4 : logic take_halt, halt_taken, halt_taken_f, internal_dbg_halt_mode, dbg_tlu_halted_f, take_reset, @@ -506,17 +506,17 @@ 402 8 : logic dec_pmp_read_d; 403 : 404 0 : logic nmi_int_sync, timer_int_sync, soft_int_sync, i_cpu_halt_req_sync, i_cpu_run_req_sync, mpc_debug_halt_req_sync, mpc_debug_run_req_sync, mpc_debug_halt_req_sync_raw; - 405 66208 : logic csr_wr_clk; + 405 14760 : logic csr_wr_clk; 406 0 : logic e4e5_clk, e4_valid, e5_valid, e4e5_valid, internal_dbg_halt_mode_f, internal_dbg_halt_mode_f2; - 407 660 : logic lsu_pmu_load_external_r, lsu_pmu_store_external_r; + 407 228 : logic lsu_pmu_load_external_r, lsu_pmu_store_external_r; 408 0 : logic dec_tlu_flush_noredir_r_d1, dec_tlu_flush_pause_r_d1; 409 0 : logic lsu_single_ecc_error_r; 410 0 : logic [31:0] lsu_error_pkt_addr_r; 411 2 : logic mcyclel_cout_in; - 412 4304 : logic i0_valid_no_ebreak_ecall_r; - 413 4304 : logic minstret_enable_f; + 412 976 : logic i0_valid_no_ebreak_ecall_r; + 413 976 : logic minstret_enable_f; 414 4 : logic sel_exu_npc_r, sel_flush_npc_r, sel_hold_npc_r; - 415 4304 : logic pc0_valid_r; + 415 976 : logic pc0_valid_r; 416 4 : logic [15:0] mfdc_int, mfdc_ns; 417 4 : logic [31:0] mrac_in; 418 4 : logic [31:27] csr_sat; @@ -535,13 +535,13 @@ 431 0 : logic mhpmc5h_wr_en0, mhpmc5h_wr_en; 432 0 : logic mhpmc6h_wr_en0, mhpmc6h_wr_en; 433 0 : logic [63:0] mhpmc3_incr, mhpmc4_incr, mhpmc5_incr, mhpmc6_incr; - 434 10 : logic perfcnt_halted_d1, zero_event_r; + 434 4 : logic perfcnt_halted_d1, zero_event_r; 435 0 : logic [3:0] perfcnt_during_sleep; 436 0 : logic [9:0] event_r; 437 : - 438 1132 : el2_inst_pkt_t pmu_i0_itype_qual; + 438 244 : el2_inst_pkt_t pmu_i0_itype_qual; 439 : - 440 18 : logic dec_csr_wen_r_mod; + 440 8 : logic dec_csr_wen_r_mod; 441 : 442 4 : logic flush_clkvalid; 443 0 : logic sel_fir_addr; @@ -584,9 +584,9 @@ 480 : 481 : `include "el2_dec_csr_equ_mu.svh" 482 : - 483 0 : logic csr_acc_r; // CSR access error - 484 15 : logic csr_wr_usr_r; // Write to an unprivileged/user-level CSR - 485 1143 : logic csr_rd_usr_r; // REad from an unprivileged/user-level CSR + 483 : logic csr_acc_r; // CSR access error + 484 : logic csr_wr_usr_r; // Write to an unprivileged/user-level CSR + 485 : logic csr_rd_usr_r; // REad from an unprivileged/user-level CSR 486 : 487 : `else 488 : @@ -1095,8 +1095,8 @@ 991 : 992 : // CSR access error 993 : // cycle and instret CSR unprivileged access is controller by bits in mcounteren CSR - 994 0 : logic csr_wr_acc_r; - 995 0 : logic csr_rd_acc_r; + 994 : logic csr_wr_acc_r; + 995 : logic csr_rd_acc_r; 996 : 997 : assign csr_wr_acc_r = csr_wr_usr_r & ( 998 : ((dec_csr_wraddr_r[11:0] == CYCLEL) & mcounteren[MCOUNTEREN_CY]) | @@ -1664,12 +1664,12 @@ 1560 : 1561 : // Detect if any PMP region is locked regardless of being enabled. This is 1562 : // necessary for mseccfg.RLB bit write behavior - 1563 0 : logic [pt.PMP_ENTRIES-1:0] pmp_region_locked; + 1563 : logic [pt.PMP_ENTRIES-1:0] pmp_region_locked; 1564 : for (genvar r = 0; r < pt.PMP_ENTRIES; r++) begin : g_regions 1565 : assign pmp_region_locked[r] = pmp_pmpcfg[r].lock; 1566 : end 1567 : - 1568 0 : logic pmp_any_region_locked; + 1568 : logic pmp_any_region_locked; 1569 : assign pmp_any_region_locked = |pmp_region_locked; 1570 : 1571 : // mseccfg @@ -2828,11 +2828,11 @@ 2724 : `include "el2_param.vh" 2725 : ) 2726 : ( - 2727 66208 : input logic clk, - 2728 66208 : input logic free_l2clk, - 2729 66208 : input logic csr_wr_clk, + 2727 14760 : input logic clk, + 2728 14760 : input logic free_l2clk, + 2729 14760 : input logic csr_wr_clk, 2730 2 : input logic rst_l, - 2731 18 : input logic dec_csr_wen_r_mod, // csr write enable at wb + 2731 8 : input logic dec_csr_wen_r_mod, // csr write enable at wb 2732 8 : input logic [11:0] dec_csr_wraddr_r, // write address for csr 2733 4 : input logic [31:0] dec_csr_wrdata_r, // csr write data at wb 2734 : @@ -2859,12 +2859,12 @@ 2755 : localparam MITCTL_ENABLE_HALTED = 1; 2756 : localparam MITCTL_ENABLE_PAUSED = 2; 2757 : - 2758 30 : logic [31:0] mitcnt0_ns, mitcnt0, mitcnt1_ns, mitcnt1, mitb0, mitb1, mitb0_b, mitb1_b, mitcnt0_inc, mitcnt1_inc; + 2758 6 : logic [31:0] mitcnt0_ns, mitcnt0, mitcnt1_ns, mitcnt1, mitb0, mitb1, mitb0_b, mitb1_b, mitcnt0_inc, mitcnt1_inc; 2759 0 : logic [2:0] mitctl0_ns, mitctl0; 2760 0 : logic [3:0] mitctl1_ns, mitctl1; 2761 0 : logic wr_mitcnt0_r, wr_mitcnt1_r, wr_mitb0_r, wr_mitb1_r, wr_mitctl0_r, wr_mitctl1_r; 2762 2 : logic mitcnt0_inc_ok, mitcnt1_inc_ok; - 2763 124 : logic mitcnt0_inc_cout, mitcnt1_inc_cout; + 2763 28 : logic mitcnt0_inc_cout, mitcnt1_inc_cout; 2764 0 : logic mit0_match_ns; 2765 0 : logic mit1_match_ns; 2766 0 : logic mitctl0_0_b_ns; diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_dec_trigger.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_dec_trigger.sv.html index b299897a9dc..2bea51b77a0 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_dec_trigger.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_dec_trigger.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_dma_ctrl.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_dma_ctrl.sv.html index 7eba344aa38..42e9b670e9a 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_dma_ctrl.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_dma_ctrl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -130,8 +130,8 @@ 26 : #( 27 : `include "el2_param.vh" 28 : )( - 29 66208 : input logic clk, - 30 66208 : input logic free_clk, + 29 14760 : input logic clk, + 30 14760 : input logic free_clk, 31 2 : input logic rst_l, 32 2 : input logic dma_bus_clk_en, // slave bus clock enable 33 0 : input logic clk_override, @@ -173,8 +173,8 @@ 69 0 : output logic dma_active, // DMA is busy 70 0 : output logic dma_dccm_stall_any, // stall dccm pipe (bubble) so that DMA can proceed 71 0 : output logic dma_iccm_stall_any, // stall iccm pipe (bubble) so that DMA can proceed - 72 1422 : input logic dccm_ready, // dccm ready to accept DMA request - 73 343 : input logic iccm_ready, // iccm ready to accept DMA request + 72 462 : input logic dccm_ready, // dccm ready to accept DMA request + 73 68 : input logic iccm_ready, // iccm ready to accept DMA request 74 2 : input logic [2:0] dec_tlu_dma_qos_prty, // DMA QoS priority coming from MFDC [18:15] 75 : 76 : // PMU signals @@ -286,8 +286,8 @@ 182 : 183 0 : logic dma_buffer_c1_clken; 184 0 : logic dma_free_clken; - 185 66208 : logic dma_buffer_c1_clk; - 186 66208 : logic dma_free_clk; + 185 14760 : logic dma_buffer_c1_clk; + 186 14760 : logic dma_free_clk; 187 0 : logic dma_bus_clk; 188 : 189 0 : logic bus_rsp_valid, bus_rsp_sent; diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_exu.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_exu.sv.html index 3290e4ce3db..6376149d3b3 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_exu.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_exu.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -124,46 +124,46 @@ 20 : `include "el2_param.vh" 21 : ) 22 : ( - 23 66208 : input logic clk, // Top level clock + 23 14760 : input logic clk, // Top level clock 24 2 : input logic rst_l, // Reset 25 0 : input logic scan_mode, // Scan control 26 : - 27 4304 : input logic [1:0] dec_data_en, // Clock enable {x,r}, one cycle pulse - 28 4304 : input logic [1:0] dec_ctl_en, // Clock enable {x,r}, two cycle pulse + 27 976 : input logic [1:0] dec_data_en, // Clock enable {x,r}, one cycle pulse + 28 976 : input logic [1:0] dec_ctl_en, // Clock enable {x,r}, two cycle pulse 29 0 : input logic [31:0] dbg_cmd_wrdata, // Debug data to primary I0 RS1 30 0 : input el2_alu_pkt_t i0_ap, // DEC alu {valid,predecodes} 31 : 32 0 : input logic dec_debug_wdata_rs1_d, // Debug select to primary I0 RS1 33 : - 34 232 : input el2_predict_pkt_t dec_i0_predict_p_d, // DEC branch predict packet - 35 554 : input logic [pt.BHT_GHR_SIZE-1:0] i0_predict_fghr_d, // DEC predict fghr - 36 122 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] i0_predict_index_d, // DEC predict index + 34 12 : input el2_predict_pkt_t dec_i0_predict_p_d, // DEC branch predict packet + 35 10 : input logic [pt.BHT_GHR_SIZE-1:0] i0_predict_fghr_d, // DEC predict fghr + 36 20 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] i0_predict_index_d, // DEC predict index 37 0 : input logic [pt.BTB_BTAG_SIZE-1:0] i0_predict_btag_d, // DEC predict branch tag 38 : 39 0 : input logic [31:0] lsu_result_m, // Load result M-stage - 40 14 : input logic [31:0] lsu_nonblock_load_data, // nonblock load data - 41 3562 : input logic dec_i0_rs1_en_d, // Qualify GPR RS1 data - 42 1556 : input logic dec_i0_rs2_en_d, // Qualify GPR RS2 data - 43 12 : input logic [31:0] gpr_i0_rs1_d, // DEC data gpr - 44 18 : input logic [31:0] gpr_i0_rs2_d, // DEC data gpr - 45 324 : input logic [31:0] dec_i0_immed_d, // DEC data immediate - 46 18 : input logic [31:0] dec_i0_result_r, // DEC result in R-stage - 47 238 : input logic [12:1] dec_i0_br_immed_d, // Branch immediate - 48 3113 : input logic dec_i0_alu_decode_d, // Valid to X-stage ALU - 49 1167 : input logic dec_i0_branch_d, // Branch in D-stage - 50 244 : input logic dec_i0_select_pc_d, // PC select to RS1 + 40 0 : input logic [31:0] lsu_nonblock_load_data, // nonblock load data + 41 924 : input logic dec_i0_rs1_en_d, // Qualify GPR RS1 data + 42 244 : input logic dec_i0_rs2_en_d, // Qualify GPR RS2 data + 43 8 : input logic [31:0] gpr_i0_rs1_d, // DEC data gpr + 44 8 : input logic [31:0] gpr_i0_rs2_d, // DEC data gpr + 45 16 : input logic [31:0] dec_i0_immed_d, // DEC data immediate + 46 16 : input logic [31:0] dec_i0_result_r, // DEC result in R-stage + 47 8 : input logic [12:1] dec_i0_br_immed_d, // Branch immediate + 48 530 : input logic dec_i0_alu_decode_d, // Valid to X-stage ALU + 49 246 : input logic dec_i0_branch_d, // Branch in D-stage + 50 20 : input logic dec_i0_select_pc_d, // PC select to RS1 51 10 : input logic [31:1] dec_i0_pc_d, // Instruction PC - 52 40 : input logic [3:0] dec_i0_rs1_bypass_en_d, // DEC bypass select 1 - X-stage, 0 - dec bypass data - 53 0 : input logic [3:0] dec_i0_rs2_bypass_en_d, // DEC bypass select 1 - X-stage, 0 - dec bypass data - 54 24 : input logic dec_csr_ren_d, // CSR read select - 55 41 : input logic [31:0] dec_csr_rddata_d, // CSR read data + 52 0 : input logic [3:0] dec_i0_rs1_bypass_en_d, // DEC bypass select 1 - X-stage, 0 - dec bypass data + 53 0 : input logic [3:0] dec_i0_rs2_bypass_en_d, // DEC bypass select 1 - X-stage, 0 - dec bypass data + 54 4 : input logic dec_csr_ren_d, // CSR read select + 55 0 : input logic [31:0] dec_csr_rddata_d, // CSR read data 56 : - 57 3081 : input logic dec_qual_lsu_d, // LSU instruction at D. Use to quiet LSU operands + 57 532 : input logic dec_qual_lsu_d, // LSU instruction at D. Use to quiet LSU operands 58 0 : input el2_mul_pkt_t mul_p, // DEC {valid, operand signs, low, operand bypass} 59 0 : input el2_div_pkt_t div_p, // DEC {valid, unsigned, rem} 60 0 : input logic dec_div_cancel, // Cancel the divide operation 61 : - 62 238 : input logic [31:1] pred_correct_npc_x, // DEC NPC for correctly predicted branch + 62 16 : input logic [31:1] pred_correct_npc_x, // DEC NPC for correctly predicted branch 63 : 64 4 : input logic dec_tlu_flush_lower_r, // Flush divide and secondary ALUs 65 0 : input logic [31:1] dec_tlu_flush_path_r, // Redirect target @@ -173,37 +173,37 @@ 69 0 : input logic [31:2] dec_tlu_meihap, // External stall mux data 70 : 71 : - 72 140 : output logic [31:0] exu_lsu_rs1_d, // LSU operand - 73 6 : output logic [31:0] exu_lsu_rs2_d, // LSU operand + 72 240 : output logic [31:0] exu_lsu_rs1_d, // LSU operand + 73 0 : output logic [31:0] exu_lsu_rs2_d, // LSU operand 74 : - 75 345 : output logic exu_flush_final, // Pipe is being flushed this cycle - 76 112 : output logic [31:1] exu_flush_path_final, // Target for the oldest flush source + 75 70 : output logic exu_flush_final, // Pipe is being flushed this cycle + 76 4 : output logic [31:1] exu_flush_path_final, // Target for the oldest flush source 77 : - 78 110 : output logic [31:0] exu_i0_result_x, // Primary ALU result to DEC + 78 16 : output logic [31:0] exu_i0_result_x, // Primary ALU result to DEC 79 2 : output logic [31:1] exu_i0_pc_x, // Primary PC result to DEC 80 0 : output logic [31:0] exu_csr_rs1_x, // RS1 source for a CSR instruction 81 : 82 2 : output logic [31:1] exu_npc_r, // Divide NPC - 83 576 : output logic [1:0] exu_i0_br_hist_r, // to DEC I0 branch history + 83 172 : output logic [1:0] exu_i0_br_hist_r, // to DEC I0 branch history 84 0 : output logic exu_i0_br_error_r, // to DEC I0 branch error 85 0 : output logic exu_i0_br_start_error_r, // to DEC I0 branch start error - 86 26 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_i0_br_index_r, // to DEC I0 branch index - 87 746 : output logic exu_i0_br_valid_r, // to DEC I0 branch valid - 88 314 : output logic exu_i0_br_mp_r, // to DEC I0 branch mispredict - 89 1268 : output logic exu_i0_br_middle_r, // to DEC I0 branch middle - 90 122 : output logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_r, // to DEC I0 branch fghr - 91 258 : output logic exu_i0_br_way_r, // to DEC I0 branch way + 86 4 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_i0_br_index_r, // to DEC I0 branch index + 87 208 : output logic exu_i0_br_valid_r, // to DEC I0 branch valid + 88 64 : output logic exu_i0_br_mp_r, // to DEC I0 branch mispredict + 89 268 : output logic exu_i0_br_middle_r, // to DEC I0 branch middle + 90 2 : output logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_r, // to DEC I0 branch fghr + 91 8 : output logic exu_i0_br_way_r, // to DEC I0 branch way 92 : - 93 2 : output el2_predict_pkt_t exu_mp_pkt, // Mispredict branch packet - 94 206 : output logic [pt.BHT_GHR_SIZE-1:0] exu_mp_eghr, // Mispredict global history - 95 122 : output logic [pt.BHT_GHR_SIZE-1:0] exu_mp_fghr, // Mispredict fghr - 96 108 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_mp_index, // Mispredict index + 93 0 : output el2_predict_pkt_t exu_mp_pkt, // Mispredict branch packet + 94 20 : output logic [pt.BHT_GHR_SIZE-1:0] exu_mp_eghr, // Mispredict global history + 95 2 : output logic [pt.BHT_GHR_SIZE-1:0] exu_mp_fghr, // Mispredict fghr + 96 4 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_mp_index, // Mispredict index 97 0 : output logic [pt.BTB_BTAG_SIZE-1:0] exu_mp_btag, // Mispredict btag 98 : 99 : - 100 314 : output logic exu_pmu_i0_br_misp, // to PMU - I0 E4 branch mispredict - 101 706 : output logic exu_pmu_i0_br_ataken, // to PMU - I0 E4 taken - 102 930 : output logic exu_pmu_i0_pc4, // to PMU - I0 E4 PC + 100 64 : output logic exu_pmu_i0_br_misp, // to PMU - I0 E4 branch mispredict + 101 232 : output logic exu_pmu_i0_br_ataken, // to PMU - I0 E4 taken + 102 242 : output logic exu_pmu_i0_pc4, // to PMU - I0 E4 PC 103 : 104 : 105 0 : output logic [31:0] exu_div_result, // Divide result @@ -214,49 +214,49 @@ 110 : 111 : 112 4 : logic [31:0] i0_rs1_bypass_data_d; - 113 4 : logic [31:0] i0_rs2_bypass_data_d; - 114 196 : logic i0_rs1_bypass_en_d; - 115 32 : logic i0_rs2_bypass_en_d; - 116 12 : logic [31:0] i0_rs1_d, i0_rs2_d; - 117 12 : logic [31:0] muldiv_rs1_d; - 118 238 : logic [31:1] pred_correct_npc_r; - 119 718 : logic i0_pred_correct_upper_r; + 113 0 : logic [31:0] i0_rs2_bypass_data_d; + 114 4 : logic i0_rs1_bypass_en_d; + 115 0 : logic i0_rs2_bypass_en_d; + 116 8 : logic [31:0] i0_rs1_d, i0_rs2_d; + 117 8 : logic [31:0] muldiv_rs1_d; + 118 16 : logic [31:1] pred_correct_npc_r; + 119 180 : logic i0_pred_correct_upper_r; 120 2 : logic [31:1] i0_flush_path_upper_r; - 121 24 : logic x_data_en, x_data_en_q1, x_data_en_q2, r_data_en, r_data_en_q2; - 122 4304 : logic x_ctl_en, r_ctl_en; + 121 4 : logic x_data_en, x_data_en_q1, x_data_en_q2, r_data_en, r_data_en_q2; + 122 976 : logic x_ctl_en, r_ctl_en; 123 : - 124 122 : logic [pt.BHT_GHR_SIZE-1:0] ghr_d_ns, ghr_d; - 125 122 : logic [pt.BHT_GHR_SIZE-1:0] ghr_x_ns, ghr_x; - 126 713 : logic i0_taken_d; - 127 712 : logic i0_taken_x; - 128 746 : logic i0_valid_d; - 129 746 : logic i0_valid_x; - 130 122 : logic [pt.BHT_GHR_SIZE-1:0] after_flush_eghr; + 124 2 : logic [pt.BHT_GHR_SIZE-1:0] ghr_d_ns, ghr_d; + 125 2 : logic [pt.BHT_GHR_SIZE-1:0] ghr_x_ns, ghr_x; + 126 234 : logic i0_taken_d; + 127 232 : logic i0_taken_x; + 128 208 : logic i0_valid_d; + 129 208 : logic i0_valid_x; + 130 2 : logic [pt.BHT_GHR_SIZE-1:0] after_flush_eghr; 131 : - 132 2 : el2_predict_pkt_t final_predict_mp; - 133 232 : el2_predict_pkt_t i0_predict_newp_d; + 132 0 : el2_predict_pkt_t final_predict_mp; + 133 12 : el2_predict_pkt_t i0_predict_newp_d; 134 : 135 0 : logic flush_in_d; - 136 110 : logic [31:0] alu_result_x; + 136 16 : logic [31:0] alu_result_x; 137 : 138 0 : logic mul_valid_x; 139 0 : logic [31:0] mul_result_x; 140 : - 141 118 : el2_predict_pkt_t i0_pp_r; + 141 8 : el2_predict_pkt_t i0_pp_r; 142 : - 143 341 : logic i0_flush_upper_d; + 143 66 : logic i0_flush_upper_d; 144 10 : logic [31:1] i0_flush_path_d; - 145 232 : el2_predict_pkt_t i0_predict_p_d; - 146 718 : logic i0_pred_correct_upper_d; + 145 12 : el2_predict_pkt_t i0_predict_p_d; + 146 180 : logic i0_pred_correct_upper_d; 147 : - 148 340 : logic i0_flush_upper_x; + 148 64 : logic i0_flush_upper_x; 149 2 : logic [31:1] i0_flush_path_x; - 150 118 : el2_predict_pkt_t i0_predict_p_x; - 151 718 : logic i0_pred_correct_upper_x; - 152 1166 : logic i0_branch_x; + 150 8 : el2_predict_pkt_t i0_predict_p_x; + 151 180 : logic i0_pred_correct_upper_x; + 152 244 : logic i0_branch_x; 153 : 154 : localparam PREDPIPESIZE = pt.BTB_ADDR_HI-pt.BTB_ADDR_LO+1+pt.BHT_GHR_SIZE+pt.BTB_BTAG_SIZE; - 155 110 : logic [PREDPIPESIZE-1:0] predpipe_d, predpipe_x, predpipe_r, final_predpipe_mp; + 155 8 : logic [PREDPIPESIZE-1:0] predpipe_d, predpipe_x, predpipe_r, final_predpipe_mp; 156 : 157 : 158 : diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_exu_alu_ctl.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_exu_alu_ctl.sv.html index 8aa8663c0a9..dfc17e07b7f 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_exu_alu_ctl.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_exu_alu_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -124,52 +124,52 @@ 20 : `include "el2_param.vh" 21 : ) 22 : ( - 23 66208 : input logic clk, // Top level clock + 23 14760 : input logic clk, // Top level clock 24 2 : input logic rst_l, // Reset 25 0 : input logic scan_mode, // Scan control 26 : - 27 340 : input logic flush_upper_x, // Branch flush from previous cycle + 27 64 : input logic flush_upper_x, // Branch flush from previous cycle 28 4 : input logic flush_lower_r, // Master flush of entire pipeline - 29 4305 : input logic enable, // Clock enable - 30 3113 : input logic valid_in, // Valid + 29 978 : input logic enable, // Clock enable + 30 530 : input logic valid_in, // Valid 31 0 : input el2_alu_pkt_t ap, // predecodes - 32 24 : input logic csr_ren_in, // CSR select - 33 41 : input logic [31:0] csr_rddata_in, // CSR data - 34 12 : input logic signed [31:0] a_in, // A operand - 35 348 : input logic [31:0] b_in, // B operand + 32 4 : input logic csr_ren_in, // CSR select + 33 0 : input logic [31:0] csr_rddata_in, // CSR data + 34 8 : input logic signed [31:0] a_in, // A operand + 35 24 : input logic [31:0] b_in, // B operand 36 10 : input logic [31:1] pc_in, // for pc=pc+2,4 calculations - 37 232 : input el2_predict_pkt_t pp_in, // Predicted branch structure - 38 238 : input logic [12:1] brimm_in, // Branch offset + 37 12 : input el2_predict_pkt_t pp_in, // Predicted branch structure + 38 8 : input logic [12:1] brimm_in, // Branch offset 39 : 40 : - 41 110 : output logic [31:0] result_ff, // final result - 42 341 : output logic flush_upper_out, // Branch flush - 43 345 : output logic flush_final_out, // Branch flush or flush entire pipeline + 41 16 : output logic [31:0] result_ff, // final result + 42 66 : output logic flush_upper_out, // Branch flush + 43 70 : output logic flush_final_out, // Branch flush or flush entire pipeline 44 10 : output logic [31:1] flush_path_out, // Branch flush PC 45 2 : output logic [31:1] pc_ff, // flopped PC - 46 718 : output logic pred_correct_out, // NPC control - 47 232 : output el2_predict_pkt_t predict_p_out // Predicted branch structure + 46 180 : output logic pred_correct_out, // NPC control + 47 12 : output el2_predict_pkt_t predict_p_out // Predicted branch structure 48 : ); 49 : 50 : - 51 12 : logic [31:0] zba_a_in; - 52 130 : logic [31:0] aout; - 53 120 : logic cout,ov,neg; + 51 8 : logic [31:0] zba_a_in; + 52 24 : logic [31:0] aout; + 53 4 : logic cout,ov,neg; 54 0 : logic [31:0] lout; - 55 12 : logic [31:0] sout; - 56 112 : logic sel_shift; - 57 2685 : logic sel_adder; + 55 8 : logic [31:0] sout; + 56 0 : logic sel_shift; + 57 494 : logic sel_adder; 58 0 : logic slt_one; - 59 713 : logic actual_taken; + 59 234 : logic actual_taken; 60 10 : logic [31:1] pcout; - 61 271 : logic cond_mispredict; - 62 62 : logic target_mispredict; - 63 2770 : logic eq, ne, lt, ge; - 64 216 : logic any_jal; - 65 651 : logic [1:0] newhist; - 66 216 : logic sel_pc; - 67 12 : logic [31:0] csr_write_data; - 68 122 : logic [31:0] result; + 61 66 : logic cond_mispredict; + 62 8 : logic target_mispredict; + 63 736 : logic eq, ne, lt, ge; + 64 20 : logic any_jal; + 65 68 : logic [1:0] newhist; + 66 20 : logic sel_pc; + 67 8 : logic [31:0] csr_write_data; + 68 24 : logic [31:0] result; 69 : 70 : 71 : @@ -348,7 +348,7 @@ 244 : ( {32{ ap_sh3add}} & {a_in[28:0],3'b0} ) | 245 : ( {32{~ap_zba }} & a_in[31:0] ); 246 : - 247 1263 : logic [31:0] bm; + 247 250 : logic [31:0] bm; 248 : 249 : assign bm[31:0] = ( ap.sub ) ? ~b_in[31:0] : b_in[31:0]; 250 : @@ -383,8 +383,8 @@ 279 : 280 0 : logic [5:0] shift_amount; 281 2 : logic [31:0] shift_mask; - 282 214 : logic [62:0] shift_extend; - 283 210 : logic [62:0] shift_long; + 282 12 : logic [62:0] shift_extend; + 283 12 : logic [62:0] shift_long; 284 : 285 : 286 : assign shift_amount[5:0] = ( { 6{ap.sll}} & (6'd32 - {1'b0,b_in[4:0]}) ) | // [5] unused @@ -416,7 +416,7 @@ 312 : // * * * * * * * * * * * * * * * * * * BitManip : CLZ,CTZ * * * * * * * * * * * * * * * * * * 313 : 314 0 : logic bitmanip_clz_ctz_sel; - 315 12 : logic [31:0] bitmanip_a_reverse_ff; + 315 8 : logic [31:0] bitmanip_a_reverse_ff; 316 0 : logic [31:0] bitmanip_lzd_in; 317 2 : logic [5:0] bitmanip_dw_lzd_enc; 318 0 : logic [5:0] bitmanip_clz_ctz_result; @@ -443,8 +443,8 @@ 339 : 340 2 : for (int i=0; i<32; i++) begin 341 0 : if (bitmanip_lzd_os[31] == 1'b0 && found == 0) begin - 342 1140288 : bitmanip_dw_lzd_enc[5:0]= bitmanip_dw_lzd_enc[5:0] + 6'b00_0001; - 343 1140288 : bitmanip_lzd_os[31:0] = bitmanip_lzd_os[31:0] << 1; + 342 645184 : bitmanip_dw_lzd_enc[5:0]= bitmanip_dw_lzd_enc[5:0] + 6'b00_0001; + 343 645184 : bitmanip_lzd_os[31:0] = bitmanip_lzd_os[31:0] << 1; 344 : end 345 : else 346 0 : found=1'b1; @@ -460,7 +460,7 @@ 356 : 357 : // * * * * * * * * * * * * * * * * * * BitManip : CPOP * * * * * * * * * * * * * * * * * * 358 : - 359 6 : logic [5:0] bitmanip_cpop; + 359 8 : logic [5:0] bitmanip_cpop; 360 0 : logic [5:0] bitmanip_cpop_result; 361 : 362 : @@ -499,7 +499,7 @@ 395 : 396 : assign bitmanip_minmax_sel = ap_min | ap_max; 397 : - 398 2772 : logic bitmanip_minmax_sel_a; + 398 738 : logic bitmanip_minmax_sel_a; 399 : 400 : assign bitmanip_minmax_sel_a = ge ^ ap_min; 401 : @@ -557,7 +557,7 @@ 453 : 454 : // * * * * * * * * * * * * * * * * * * BitManip : ZBSET, ZBCLR, ZBINV * * * * * * * * * * * * * * 455 : - 456 22 : logic [31:0] bitmanip_sb_1hot; + 456 4 : logic [31:0] bitmanip_sb_1hot; 457 0 : logic [31:0] bitmanip_sb_data; 458 : 459 : assign bitmanip_sb_1hot[31:0] = ( 32'h00000001 << b_in[4:0] ); diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_exu_div_ctl.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_exu_div_ctl.sv.html index f715c0ef9be..57cbf2bf2de 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_exu_div_ctl.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_exu_div_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -124,13 +124,13 @@ 20 : `include "el2_param.vh" 21 : ) 22 : ( - 23 66208 : input logic clk, // Top level clock + 23 14760 : input logic clk, // Top level clock 24 2 : input logic rst_l, // Reset 25 0 : input logic scan_mode, // Scan mode 26 : 27 0 : input el2_div_pkt_t dp, // valid, sign, rem - 28 12 : input logic [31:0] dividend, // Numerator - 29 348 : input logic [31:0] divisor, // Denominator + 28 8 : input logic [31:0] dividend, // Numerator + 29 24 : input logic [31:0] divisor, // Denominator 30 : 31 0 : input logic cancel, // Cancel divide 32 : @@ -1414,16 +1414,16 @@ 1310 : // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 1311 : module el2_exu_div_new_4bit_fullshortq 1312 : ( - 1313 66208 : input logic clk, // Top level clock + 1313 14760 : input logic clk, // Top level clock 1314 2 : input logic rst_l, // Reset 1315 0 : input logic scan_mode, // Scan mode 1316 : 1317 0 : input logic cancel, // Flush pipeline 1318 0 : input logic valid_in, - 1319 552 : input logic signed_in, + 1319 218 : input logic signed_in, 1320 0 : input logic rem_in, - 1321 12 : input logic [31:0] dividend_in, - 1322 348 : input logic [31:0] divisor_in, + 1321 8 : input logic [31:0] dividend_in, + 1322 24 : input logic [31:0] divisor_in, 1323 : 1324 0 : output logic valid_out, 1325 0 : output logic [31:0] data_out @@ -1446,7 +1446,7 @@ 1342 0 : logic [31:0] a_in, a_ff; 1343 : 1344 0 : logic b_enable, b_twos_comp; - 1345 348 : logic [32:0] b_in; + 1345 24 : logic [32:0] b_in; 1346 0 : logic [37:0] b_ff; 1347 : 1348 0 : logic [31:0] q_in, q_ff; diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_exu_mul_ctl.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_exu_mul_ctl.sv.html index 7f526530b10..7c22bf1dcf6 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_exu_mul_ctl.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_exu_mul_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -124,7 +124,7 @@ 20 : `include "el2_param.vh" 21 : ) 22 : ( - 23 66208 : input logic clk, // Top level clock + 23 14760 : input logic clk, // Top level clock 24 2 : input logic rst_l, // Reset 25 0 : input logic scan_mode, // Scan mode 26 : @@ -310,7 +310,7 @@ 206 2 : for (bcompress_i=0; bcompress_i<32; bcompress_i++) 207 64 : begin 208 64 : bcompress_test_bit_d = rs2_in[bcompress_i]; - 209 1140288 : if (bcompress_test_bit_d) + 209 645184 : if (bcompress_test_bit_d) 210 0 : begin 211 0 : bcompress_d[bcompress_j] = rs1_in[bcompress_i]; 212 0 : bcompress_j = bcompress_j + 1; @@ -337,7 +337,7 @@ 233 2 : for (bdecompress_i=0; bdecompress_i<32; bdecompress_i++) 234 64 : begin 235 64 : bdecompress_test_bit_d = rs2_in[bdecompress_i]; - 236 1140288 : if (bdecompress_test_bit_d) + 236 645184 : if (bdecompress_test_bit_d) 237 0 : begin 238 0 : bdecompress_d[bdecompress_i] = rs1_in[bdecompress_j]; 239 0 : bdecompress_j = bdecompress_j + 1; diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu.sv.html index 31ed3486716..a89f30dd69c 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -129,18 +129,18 @@ 25 : `include "el2_param.vh" 26 : ) 27 : ( - 28 66208 : input logic free_l2clk, // Clock always. Through one clock header. For flops with second header built in. - 29 66208 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. - 30 66208 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 28 14760 : input logic free_l2clk, // Clock always. Through one clock header. For flops with second header built in. + 29 14760 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 30 14760 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. 31 2 : input logic rst_l, // reset, active low 32 : - 33 4305 : input logic dec_i0_decode_d, // Valid instruction at D and not blocked + 33 978 : input logic dec_i0_decode_d, // Valid instruction at D and not blocked 34 : - 35 345 : input logic exu_flush_final, // flush, includes upper and lower - 36 4304 : input logic dec_tlu_i0_commit_cmt , // committed i0 + 35 70 : input logic exu_flush_final, // flush, includes upper and lower + 36 976 : input logic dec_tlu_i0_commit_cmt , // committed i0 37 0 : input logic dec_tlu_flush_err_wb , // flush due to parity error. 38 0 : input logic dec_tlu_flush_noredir_wb, // don't fetch, validated with exu_flush_final - 39 112 : input logic [31:1] exu_flush_path_final, // flush fetch address + 39 4 : input logic [31:1] exu_flush_path_final, // flush fetch address 40 : 41 0 : input logic [31:0] dec_tlu_mrac_ff ,// Side_effect , cacheable for each region 42 0 : input logic dec_tlu_fence_i_wb, // fence.i, invalidate icache, validated with exu_flush_final @@ -172,10 +172,10 @@ 68 0 : output logic ifu_axi_bready, 69 : 70 : // AXI Read Channels - 71 4336 : output logic ifu_axi_arvalid, - 72 4336 : input logic ifu_axi_arready, - 73 2620 : output logic [pt.IFU_BUS_TAG-1:0] ifu_axi_arid, - 74 1684 : output logic [31:0] ifu_axi_araddr, + 71 988 : output logic ifu_axi_arvalid, + 72 988 : input logic ifu_axi_arready, + 73 512 : output logic [pt.IFU_BUS_TAG-1:0] ifu_axi_arid, + 74 20 : output logic [31:0] ifu_axi_araddr, 75 2 : output logic [3:0] ifu_axi_arregion, 76 0 : output logic [7:0] ifu_axi_arlen, 77 0 : output logic [2:0] ifu_axi_arsize, @@ -185,10 +185,10 @@ 81 2 : output logic [2:0] ifu_axi_arprot, 82 0 : output logic [3:0] ifu_axi_arqos, 83 : - 84 8669 : input logic ifu_axi_rvalid, + 84 1974 : input logic ifu_axi_rvalid, 85 2 : output logic ifu_axi_rready, - 86 1120 : input logic [pt.IFU_BUS_TAG-1:0] ifu_axi_rid, - 87 576 : input logic [63:0] ifu_axi_rdata, + 86 446 : input logic [pt.IFU_BUS_TAG-1:0] ifu_axi_rid, + 87 16 : input logic [63:0] ifu_axi_rdata, 88 0 : input logic [1:0] ifu_axi_rresp, 89 : 90 2 : input logic ifu_bus_clk_en, @@ -206,10 +206,10 @@ 102 0 : output logic iccm_dma_rvalid, 103 0 : output logic [63:0] iccm_dma_rdata, 104 0 : output logic [2:0] iccm_dma_rtag, // Tag of the DMA req - 105 343 : output logic iccm_ready, + 105 68 : output logic iccm_ready, 106 : - 107 4305 : output logic ifu_pmu_instr_aligned, - 108 272 : output logic ifu_pmu_fetch_stall, + 107 978 : output logic ifu_pmu_instr_aligned, + 108 58 : output logic ifu_pmu_fetch_stall, 109 0 : output logic ifu_ic_error_start, // has all of the I$ ecc/parity for data/tag 110 : 111 : // I$ & ITAG Ports @@ -217,8 +217,8 @@ 113 0 : output logic [pt.ICACHE_NUM_WAYS-1:0] ic_wr_en, // Icache write enable, when filling the Icache. 114 0 : output logic ic_rd_en, // Icache read enable. 115 : - 116 150 : output logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data, // Data to fill to the Icache. With ECC - 117 962 : input logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC + 116 16 : output logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data, // Data to fill to the Icache. With ECC + 117 44 : input logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 118 0 : input logic [70:0] ic_debug_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 119 0 : input logic [25:0] ictag_debug_rd_data,// Debug icache tag. 120 0 : output logic [70:0] ic_debug_wr_data, // Debug wr cache. @@ -227,8 +227,8 @@ 123 : 124 0 : input logic [pt.ICACHE_BANKS_WAY-1:0] ic_eccerr, // 125 0 : input logic [pt.ICACHE_BANKS_WAY-1:0] ic_parerr, - 126 962 : output logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. - 127 3842 : output logic ic_sel_premux_data, // Select the premux data. + 126 44 : output logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. + 127 970 : output logic ic_sel_premux_data, // Select the premux data. 128 : 129 0 : output logic [pt.ICACHE_INDEX_HI:3] ic_debug_addr, // Read/Write addresss to the Icache. 130 0 : output logic ic_debug_rd_en, // Icache debug rd @@ -244,7 +244,7 @@ 140 : 141 : 142 : // ICCM ports - 143 26 : output logic [pt.ICCM_BITS-1:1] iccm_rw_addr, // ICCM read/write address. + 143 4 : output logic [pt.ICCM_BITS-1:1] iccm_rw_addr, // ICCM read/write address. 144 0 : output logic iccm_wren, // ICCM write enable (through the DMA) 145 0 : output logic iccm_rden, // ICCM read enable. 146 0 : output logic [77:0] iccm_wr_data, // ICCM write data. @@ -259,46 +259,46 @@ 155 0 : output logic ifu_iccm_rd_ecc_double_err, // This fetch has a double ICCM ECC error. 156 : 157 : // Perf counter sigs - 158 4336 : output logic ifu_pmu_ic_miss, // ic miss + 158 988 : output logic ifu_pmu_ic_miss, // ic miss 159 0 : output logic ifu_pmu_ic_hit, // ic hit 160 0 : output logic ifu_pmu_bus_error, // iside bus error 161 0 : output logic ifu_pmu_bus_busy, // iside bus busy - 162 4336 : output logic ifu_pmu_bus_trxn, // iside bus transactions + 162 988 : output logic ifu_pmu_bus_trxn, // iside bus transactions 163 : 164 : 165 0 : output logic ifu_i0_icaf, // Instruction 0 access fault. From Aligner to Decode 166 0 : output logic [1:0] ifu_i0_icaf_type, // Instruction 0 access fault type 167 : - 168 4305 : output logic ifu_i0_valid, // Instruction 0 valid. From Aligner to Decode + 168 978 : output logic ifu_i0_valid, // Instruction 0 valid. From Aligner to Decode 169 0 : output logic ifu_i0_icaf_second, // Instruction 0 has access fault on second 2B of 4B inst 170 0 : output logic ifu_i0_dbecc, // Instruction 0 has double bit ecc error 171 0 : output logic iccm_dma_sb_error, // Single Bit ECC error from a DMA access - 172 132 : output logic[31:0] ifu_i0_instr, // Instruction 0 . From Aligner to Decode + 172 12 : output logic[31:0] ifu_i0_instr, // Instruction 0 . From Aligner to Decode 173 10 : output logic[31:1] ifu_i0_pc, // Instruction 0 pc. From Aligner to Decode - 174 2237 : output logic ifu_i0_pc4, // Instruction 0 is 4 byte. From Aligner to Decode + 174 482 : output logic ifu_i0_pc4, // Instruction 0 is 4 byte. From Aligner to Decode 175 : - 176 4336 : output logic ifu_miss_state_idle, // There is no outstanding miss. Cache miss state is idle. + 176 988 : output logic ifu_miss_state_idle, // There is no outstanding miss. Cache miss state is idle. 177 : - 178 62 : output el2_br_pkt_t i0_brp, // Instruction 0 branch packet. From Aligner to Decode - 179 122 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] ifu_i0_bp_index, // BP index - 180 554 : output logic [pt.BHT_GHR_SIZE-1:0] ifu_i0_bp_fghr, // BP FGHR + 178 12 : output el2_br_pkt_t i0_brp, // Instruction 0 branch packet. From Aligner to Decode + 179 20 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] ifu_i0_bp_index, // BP index + 180 10 : output logic [pt.BHT_GHR_SIZE-1:0] ifu_i0_bp_fghr, // BP FGHR 181 0 : output logic [pt.BTB_BTAG_SIZE-1:0] ifu_i0_bp_btag, // BP tag 182 0 : output logic [$clog2(pt.BTB_SIZE)-1:0] ifu_i0_fa_index, // Fully associt btb index 183 : - 184 2 : input el2_predict_pkt_t exu_mp_pkt, // mispredict packet - 185 206 : input logic [pt.BHT_GHR_SIZE-1:0] exu_mp_eghr, // execute ghr - 186 122 : input logic [pt.BHT_GHR_SIZE-1:0] exu_mp_fghr, // Mispredict fghr - 187 108 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_mp_index, // Mispredict index + 184 0 : input el2_predict_pkt_t exu_mp_pkt, // mispredict packet + 185 20 : input logic [pt.BHT_GHR_SIZE-1:0] exu_mp_eghr, // execute ghr + 186 2 : input logic [pt.BHT_GHR_SIZE-1:0] exu_mp_fghr, // Mispredict fghr + 187 4 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_mp_index, // Mispredict index 188 0 : input logic [pt.BTB_BTAG_SIZE-1:0] exu_mp_btag, // Mispredict btag 189 : - 190 258 : input el2_br_tlu_pkt_t dec_tlu_br0_r_pkt, // slot0 update/error pkt - 191 122 : input logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_r, // fghr to bp - 192 26 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_i0_br_index_r, // bp index + 190 8 : input el2_br_tlu_pkt_t dec_tlu_br0_r_pkt, // slot0 update/error pkt + 191 2 : input logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_r, // fghr to bp + 192 4 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_i0_br_index_r, // bp index 193 0 : input logic [$clog2(pt.BTB_SIZE)-1:0] dec_fa_error_index, // Fully associt btb error index 194 : 195 4 : input dec_tlu_flush_lower_wb, 196 : - 197 704 : output logic [15:0] ifu_i0_cinst, + 197 232 : output logic [15:0] ifu_i0_cinst, 198 : 199 2 : output logic [31:1] ifu_pmp_addr, 200 0 : input logic ifu_pmp_error, @@ -315,12 +315,12 @@ 211 : localparam TAGWIDTH = 2 ; 212 : localparam IDWIDTH = 2 ; 213 : - 214 256 : logic ifu_fb_consume1, ifu_fb_consume2; + 214 208 : logic ifu_fb_consume1, ifu_fb_consume2; 215 2 : logic [31:1] ifc_fetch_addr_f; 216 2 : logic [31:1] ifc_fetch_addr_bf; 217 : assign ifu_pmp_addr = ifc_fetch_addr_bf; 218 : - 219 3820 : logic [1:0] ifu_fetch_val; // valids on a 2B boundary, left justified [7] implies valid fetch + 219 596 : logic [1:0] ifu_fetch_val; // valids on a 2B boundary, left justified [7] implies valid fetch 220 2 : logic [31:1] ifu_fetch_pc; // starting pc of fetch 221 : 222 0 : logic iccm_rd_ecc_single_err, iccm_dma_rd_ecc_single_err, ic_error_start; @@ -329,33 +329,33 @@ 225 : assign ifu_ic_error_start = ic_error_start; 226 : 227 : - 228 1848 : logic ic_write_stall; + 228 488 : logic ic_write_stall; 229 0 : logic ic_dma_active; - 230 347 : logic ifc_dma_access_ok; + 230 72 : logic ifc_dma_access_ok; 231 0 : logic [1:0] ic_access_fault_f; 232 0 : logic [1:0] ic_access_fault_type_f; - 233 4342 : logic ifu_ic_mb_empty; + 233 996 : logic ifu_ic_mb_empty; 234 : - 235 4328 : logic ic_hit_f; + 235 980 : logic ic_hit_f; 236 : - 237 546 : logic [1:0] ifu_bp_way_f; // way indication; right justified - 238 716 : logic ifu_bp_hit_taken_f; // kill next fetch; taken target found - 239 136 : logic [31:1] ifu_bp_btb_target_f; // predicted target PC - 240 440 : logic ifu_bp_inst_mask_f; // tell ic which valids to kill because of a taken branch; right justified - 241 380 : logic [1:0] ifu_bp_hist1_f; // history counters for all 4 potential branches; right justified - 242 306 : logic [1:0] ifu_bp_hist0_f; // history counters for all 4 potential branches; right justified - 243 340 : logic [11:0] ifu_bp_poffset_f; // predicted target - 244 16 : logic [1:0] ifu_bp_ret_f; // predicted ret ; right justified - 245 170 : logic [1:0] ifu_bp_pc4_f; // pc4 indication; right justified - 246 418 : logic [1:0] ifu_bp_valid_f; // branch valid, right justified - 247 122 : logic [pt.BHT_GHR_SIZE-1:0] ifu_bp_fghr_f; + 237 208 : logic [1:0] ifu_bp_way_f; // way indication; right justified + 238 352 : logic ifu_bp_hit_taken_f; // kill next fetch; taken target found + 239 0 : logic [31:1] ifu_bp_btb_target_f; // predicted target PC + 240 354 : logic ifu_bp_inst_mask_f; // tell ic which valids to kill because of a taken branch; right justified + 241 8 : logic [1:0] ifu_bp_hist1_f; // history counters for all 4 potential branches; right justified + 242 8 : logic [1:0] ifu_bp_hist0_f; // history counters for all 4 potential branches; right justified + 243 352 : logic [11:0] ifu_bp_poffset_f; // predicted target + 244 0 : logic [1:0] ifu_bp_ret_f; // predicted ret ; right justified + 245 0 : logic [1:0] ifu_bp_pc4_f; // pc4 indication; right justified + 246 0 : logic [1:0] ifu_bp_valid_f; // branch valid, right justified + 247 2 : logic [pt.BHT_GHR_SIZE-1:0] ifu_bp_fghr_f; 248 0 : logic [1:0] [$clog2(pt.BTB_SIZE)-1:0] ifu_bp_fa_index_f; 249 : 250 : - 251 3820 : logic [1:0] ic_fetch_val_f; - 252 1026 : logic [31:0] ic_data_f; - 253 1026 : logic [31:0] ifu_fetch_data_f; - 254 2154 : logic ifc_fetch_req_f; + 251 596 : logic [1:0] ic_fetch_val_f; + 252 44 : logic [31:0] ic_data_f; + 253 44 : logic [31:0] ifu_fetch_data_f; + 254 662 : logic ifc_fetch_req_f; 255 0 : logic ifc_fetch_req_f_raw; 256 0 : logic iccm_dma_rd_ecc_double_err; 257 0 : logic [1:0] iccm_rd_ecc_double_err; // This fetch has an iccm double error. @@ -369,7 +369,7 @@ 265 : assign ifu_fetch_pc[31:1] = ifc_fetch_addr_f[31:1]; 266 : 267 2 : logic ifc_fetch_uncacheable_bf; // The fetch request is uncacheable space. BF stage - 268 2154 : logic ifc_fetch_req_bf; // Fetch request. Comes with the address. BF stage + 268 662 : logic ifc_fetch_req_bf; // Fetch request. Comes with the address. BF stage 269 2 : logic ifc_fetch_req_bf_raw; // Fetch request without some qualifications. Used for clock-gating. BF stage 270 0 : logic ifc_iccm_access_bf; // This request is to the ICCM. Do not generate misses to the bus. 271 0 : logic ifc_region_acc_fault_bf; // Access fault. in ICCM region but offset is outside defined ICCM. diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu_aln_ctl.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu_aln_ctl.sv.html index 48d2ed580a8..2584c605ff0 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu_aln_ctl.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu_aln_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -131,8 +131,8 @@ 27 : 28 0 : input logic scan_mode, // Flop scan mode control 29 2 : input logic rst_l, // reset, active low - 30 66208 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 31 66208 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 30 14760 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 31 14760 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. 32 : 33 0 : input logic ifu_async_error_start, // ecc/parity related errors with current fetch - not sent down the pipe 34 : @@ -141,166 +141,166 @@ 37 0 : input logic [1:0] ic_access_fault_f, // Instruction access fault for the current fetch. 38 0 : input logic [1:0] ic_access_fault_type_f, // Instruction access fault types 39 : - 40 345 : input logic exu_flush_final, // Flush from the pipeline. + 40 70 : input logic exu_flush_final, // Flush from the pipeline. 41 : - 42 4305 : input logic dec_i0_decode_d, // Valid instruction at D-stage and not blocked + 42 978 : input logic dec_i0_decode_d, // Valid instruction at D-stage and not blocked 43 : - 44 1026 : input logic [31:0] ifu_fetch_data_f, // fetch data in memory format - not right justified + 44 44 : input logic [31:0] ifu_fetch_data_f, // fetch data in memory format - not right justified 45 : - 46 3820 : input logic [1:0] ifu_fetch_val, // valids on a 2B boundary, right justified + 46 596 : input logic [1:0] ifu_fetch_val, // valids on a 2B boundary, right justified 47 2 : input logic [31:1] ifu_fetch_pc, // starting pc of fetch 48 : 49 : 50 : - 51 4305 : output logic ifu_i0_valid, // Instruction 0 is valid + 51 978 : output logic ifu_i0_valid, // Instruction 0 is valid 52 0 : output logic ifu_i0_icaf, // Instruction 0 has access fault 53 0 : output logic [1:0] ifu_i0_icaf_type, // Instruction 0 access fault type 54 0 : output logic ifu_i0_icaf_second, // Instruction 0 has access fault on second 2B of 4B inst 55 : 56 0 : output logic ifu_i0_dbecc, // Instruction 0 has double bit ecc error - 57 132 : output logic [31:0] ifu_i0_instr, // Instruction 0 + 57 12 : output logic [31:0] ifu_i0_instr, // Instruction 0 58 10 : output logic [31:1] ifu_i0_pc, // Instruction 0 PC - 59 2237 : output logic ifu_i0_pc4, + 59 482 : output logic ifu_i0_pc4, 60 : - 61 3178 : output logic ifu_fb_consume1, // Consumed one buffer. To fetch control fetch for buffer mass balance - 62 256 : output logic ifu_fb_consume2, // Consumed two buffers.To fetch control fetch for buffer mass balance + 61 480 : output logic ifu_fb_consume1, // Consumed one buffer. To fetch control fetch for buffer mass balance + 62 208 : output logic ifu_fb_consume2, // Consumed two buffers.To fetch control fetch for buffer mass balance 63 : 64 : - 65 122 : input logic [pt.BHT_GHR_SIZE-1:0] ifu_bp_fghr_f, // fetch GHR - 66 136 : input logic [31:1] ifu_bp_btb_target_f, // predicted RET target - 67 340 : input logic [11:0] ifu_bp_poffset_f, // predicted target offset + 65 2 : input logic [pt.BHT_GHR_SIZE-1:0] ifu_bp_fghr_f, // fetch GHR + 66 0 : input logic [31:1] ifu_bp_btb_target_f, // predicted RET target + 67 352 : input logic [11:0] ifu_bp_poffset_f, // predicted target offset 68 0 : input logic [1:0] [$clog2(pt.BTB_SIZE)-1:0] ifu_bp_fa_index_f, // predicted branch index (fully associative option) 69 : - 70 306 : input logic [1:0] ifu_bp_hist0_f, // history counters for all 4 potential branches, bit 1, right justified - 71 380 : input logic [1:0] ifu_bp_hist1_f, // history counters for all 4 potential branches, bit 1, right justified - 72 170 : input logic [1:0] ifu_bp_pc4_f, // pc4 indication, right justified - 73 546 : input logic [1:0] ifu_bp_way_f, // way indication, right justified - 74 418 : input logic [1:0] ifu_bp_valid_f, // branch valid, right justified - 75 16 : input logic [1:0] ifu_bp_ret_f, // predicted ret indication, right justified + 70 8 : input logic [1:0] ifu_bp_hist0_f, // history counters for all 4 potential branches, bit 1, right justified + 71 8 : input logic [1:0] ifu_bp_hist1_f, // history counters for all 4 potential branches, bit 1, right justified + 72 0 : input logic [1:0] ifu_bp_pc4_f, // pc4 indication, right justified + 73 208 : input logic [1:0] ifu_bp_way_f, // way indication, right justified + 74 0 : input logic [1:0] ifu_bp_valid_f, // branch valid, right justified + 75 0 : input logic [1:0] ifu_bp_ret_f, // predicted ret indication, right justified 76 : 77 : - 78 62 : output el2_br_pkt_t i0_brp, // Branch packet for I0. - 79 122 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] ifu_i0_bp_index, // BP index - 80 554 : output logic [pt.BHT_GHR_SIZE-1:0] ifu_i0_bp_fghr, // BP FGHR + 78 12 : output el2_br_pkt_t i0_brp, // Branch packet for I0. + 79 20 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] ifu_i0_bp_index, // BP index + 80 10 : output logic [pt.BHT_GHR_SIZE-1:0] ifu_i0_bp_fghr, // BP FGHR 81 0 : output logic [pt.BTB_BTAG_SIZE-1:0] ifu_i0_bp_btag, // BP tag 82 : 83 0 : output logic [$clog2(pt.BTB_SIZE)-1:0] ifu_i0_fa_index, // Fully associt btb index 84 : - 85 4305 : output logic ifu_pmu_instr_aligned, // number of inst aligned this cycle + 85 978 : output logic ifu_pmu_instr_aligned, // number of inst aligned this cycle 86 : - 87 704 : output logic [15:0] ifu_i0_cinst // 16b compress inst for i0 + 87 232 : output logic [15:0] ifu_i0_cinst // 16b compress inst for i0 88 : ); 89 : 90 : 91 : - 92 4328 : logic ifvalid; + 92 980 : logic ifvalid; 93 0 : logic shift_f1_f0, shift_f2_f0, shift_f2_f1; 94 0 : logic fetch_to_f0, fetch_to_f1, fetch_to_f2; 95 : 96 0 : logic [1:0] f2val_in, f2val; - 97 861 : logic [1:0] f1val_in, f1val; - 98 2958 : logic [1:0] f0val_in, f0val; + 97 30 : logic [1:0] f1val_in, f1val; + 98 564 : logic [1:0] f0val_in, f0val; 99 0 : logic [1:0] sf1val, sf0val; 100 : - 101 613 : logic [31:0] aligndata; - 102 2237 : logic first4B, first2B; + 101 50 : logic [31:0] aligndata; + 102 482 : logic first4B, first2B; 103 : - 104 128 : logic [31:0] uncompress0; - 105 4305 : logic i0_shift; - 106 1783 : logic shift_2B, shift_4B; - 107 1125 : logic f1_shift_2B; - 108 861 : logic f2_valid, sf1_valid, sf0_valid; + 104 4 : logic [31:0] uncompress0; + 105 978 : logic i0_shift; + 106 494 : logic shift_2B, shift_4B; + 107 238 : logic f1_shift_2B; + 108 30 : logic f2_valid, sf1_valid, sf0_valid; 109 : - 110 613 : logic [31:0] ifirst; - 111 3201 : logic [1:0] alignval; - 112 1298 : logic [31:1] firstpc, secondpc; + 110 50 : logic [31:0] ifirst; + 111 738 : logic [1:0] alignval; + 112 16 : logic [31:1] firstpc, secondpc; 113 : - 114 136 : logic [11:0] f1poffset; - 115 332 : logic [11:0] f0poffset; - 116 146 : logic [pt.BHT_GHR_SIZE-1:0] f1fghr; - 117 450 : logic [pt.BHT_GHR_SIZE-1:0] f0fghr; - 118 329 : logic [1:0] f1hist1; - 119 630 : logic [1:0] f0hist1; - 120 299 : logic [1:0] f1hist0; - 121 514 : logic [1:0] f0hist0; + 114 0 : logic [11:0] f1poffset; + 115 348 : logic [11:0] f0poffset; + 116 2 : logic [pt.BHT_GHR_SIZE-1:0] f1fghr; + 117 6 : logic [pt.BHT_GHR_SIZE-1:0] f0fghr; + 118 4 : logic [1:0] f1hist1; + 119 4 : logic [1:0] f0hist1; + 120 4 : logic [1:0] f1hist0; + 121 0 : logic [1:0] f0hist0; 122 : - 123 0 : logic [1:0][$clog2(pt.BTB_SIZE)-1:0] f0index, f1index, alignindex; + 123 0 : logic [1:0][$clog2(pt.BTB_SIZE)-1:0] f0index, f1index, alignindex; 124 : 125 0 : logic [1:0] f1ictype; 126 0 : logic [1:0] f0ictype; 127 : - 128 152 : logic [1:0] f1pc4; - 129 356 : logic [1:0] f0pc4; + 128 0 : logic [1:0] f1pc4; + 129 0 : logic [1:0] f0pc4; 130 : - 131 0 : logic [1:0] f1ret; - 132 14 : logic [1:0] f0ret; - 133 112 : logic [1:0] f1way; - 134 388 : logic [1:0] f0way; + 131 0 : logic [1:0] f1ret; + 132 0 : logic [1:0] f0ret; + 133 0 : logic [1:0] f1way; + 134 208 : logic [1:0] f0way; 135 : - 136 213 : logic [1:0] f1brend; - 137 368 : logic [1:0] f0brend; + 136 0 : logic [1:0] f1brend; + 137 0 : logic [1:0] f0brend; 138 : - 139 284 : logic [1:0] alignbrend; - 140 358 : logic [1:0] alignpc4; + 139 0 : logic [1:0] alignbrend; + 140 0 : logic [1:0] alignpc4; 141 : - 142 22 : logic [1:0] alignret; - 143 336 : logic [1:0] alignway; - 144 422 : logic [1:0] alignhist1; - 145 344 : logic [1:0] alignhist0; - 146 1423 : logic [1:1] alignfromf1; - 147 575 : logic i0_ends_f1; + 142 0 : logic [1:0] alignret; + 143 8 : logic [1:0] alignway; + 144 4 : logic [1:0] alignhist1; + 145 0 : logic [1:0] alignhist0; + 146 438 : logic [1:1] alignfromf1; + 147 226 : logic i0_ends_f1; 148 0 : logic i0_br_start_error; 149 : - 150 112 : logic [31:1] f1prett; - 151 156 : logic [31:1] f0prett; - 152 0 : logic [1:0] f1dbecc; + 150 0 : logic [31:1] f1prett; + 151 0 : logic [31:1] f0prett; + 152 0 : logic [1:0] f1dbecc; 153 0 : logic [1:0] f0dbecc; 154 0 : logic [1:0] f1icaf; 155 0 : logic [1:0] f0icaf; 156 : 157 0 : logic [1:0] aligndbecc; 158 0 : logic [1:0] alignicaf; - 159 358 : logic i0_brp_pc4; + 159 0 : logic i0_brp_pc4; 160 : - 161 118 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] firstpc_hash, secondpc_hash; + 161 16 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] firstpc_hash, secondpc_hash; 162 : 163 0 : logic first_legal; 164 : - 165 1433 : logic [1:0] wrptr, wrptr_in; - 166 1245 : logic [1:0] rdptr, rdptr_in; - 167 1342 : logic [2:0] qwen; - 168 128 : logic [31:0] q2,q1,q0; - 169 829 : logic q2off_in, q2off; - 170 893 : logic q1off_in, q1off; - 171 940 : logic q0off_in, q0off; - 172 2643 : logic f0_shift_2B; + 165 312 : logic [1:0] wrptr, wrptr_in; + 166 220 : logic [1:0] rdptr, rdptr_in; + 167 308 : logic [2:0] qwen; + 168 4 : logic [31:0] q2,q1,q0; + 169 210 : logic q2off_in, q2off; + 170 234 : logic q1off_in, q1off; + 171 272 : logic q0off_in, q0off; + 172 722 : logic f0_shift_2B; 173 : - 174 788 : logic [31:0] q0eff; - 175 748 : logic [31:0] q0final; - 176 2273 : logic q0ptr; - 177 2273 : logic [1:0] q0sel; + 174 44 : logic [31:0] q0eff; + 175 36 : logic [31:0] q0final; + 176 698 : logic q0ptr; + 177 698 : logic [1:0] q0sel; 178 : - 179 526 : logic [31:0] q1eff; - 180 513 : logic [15:0] q1final; - 181 1164 : logic q1ptr; - 182 1164 : logic [1:0] q1sel; + 179 20 : logic [31:0] q1eff; + 180 22 : logic [15:0] q1final; + 181 244 : logic q1ptr; + 182 244 : logic [1:0] q1sel; 183 : - 184 1245 : logic [2:0] qren; + 184 220 : logic [2:0] qren; 185 : - 186 264 : logic consume_fb1, consume_fb0; + 186 208 : logic consume_fb1, consume_fb0; 187 0 : logic [1:0] icaf_eff; 188 : 189 : localparam BRDATA_SIZE = pt.BTB_ENABLE ? 16+($clog2(pt.BTB_SIZE)*2*pt.BTB_FULLYA) : 4; 190 : localparam BRDATA_WIDTH = pt.BTB_ENABLE ? 8+($clog2(pt.BTB_SIZE)*pt.BTB_FULLYA) : 2; - 191 73 : logic [BRDATA_SIZE-1:0] brdata_in, brdata2, brdata1, brdata0; - 192 24 : logic [BRDATA_SIZE-1:0] brdata1eff, brdata0eff; - 193 14 : logic [BRDATA_SIZE-1:0] brdata1final, brdata0final; + 191 0 : logic [BRDATA_SIZE-1:0] brdata_in, brdata2, brdata1, brdata0; + 192 0 : logic [BRDATA_SIZE-1:0] brdata1eff, brdata0eff; + 193 0 : logic [BRDATA_SIZE-1:0] brdata1final, brdata0final; 194 : 195 : localparam MHI = 1+(pt.BTB_ENABLE * (43+pt.BHT_GHR_SIZE)); 196 : localparam MSIZE = 2+(pt.BTB_ENABLE * (43+pt.BHT_GHR_SIZE)); 197 : - 198 67 : logic [MHI:0] misc_data_in, misc2, misc1, misc0; - 199 411 : logic [MHI:0] misc1eff, misc0eff; + 198 2 : logic [MHI:0] misc_data_in, misc2, misc1, misc0; + 199 6 : logic [MHI:0] misc1eff, misc0eff; 200 : 201 0 : logic [pt.BTB_BTAG_SIZE-1:0] firstbrtag_hash, secondbrtag_hash; 202 : diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu_bp_ctl.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu_bp_ctl.sv.html index 113ac93fc9e..fda4ce350eb 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu_bp_ctl.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu_bp_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -135,17 +135,17 @@ 31 : ) 32 : ( 33 : - 34 66208 : input logic clk, + 34 14760 : input logic clk, 35 2 : input logic rst_l, 36 : - 37 4328 : input logic ic_hit_f, // Icache hit, enables F address capture + 37 980 : input logic ic_hit_f, // Icache hit, enables F address capture 38 : 39 2 : input logic [31:1] ifc_fetch_addr_f, // look up btb address - 40 2154 : input logic ifc_fetch_req_f, // F1 valid + 40 662 : input logic ifc_fetch_req_f, // F1 valid 41 : - 42 258 : input el2_br_tlu_pkt_t dec_tlu_br0_r_pkt, // BP commit update packet, includes errors - 43 122 : input logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_r, // fghr to bp - 44 26 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_i0_br_index_r, // bp index + 42 8 : input el2_br_tlu_pkt_t dec_tlu_br0_r_pkt, // BP commit update packet, includes errors + 43 2 : input logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_r, // fghr to bp + 44 4 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_i0_br_index_r, // bp index 45 : 46 0 : input logic [$clog2(pt.BTB_SIZE)-1:0] dec_fa_error_index, // Fully associative btb error index 47 : @@ -154,28 +154,28 @@ 50 : 51 0 : input logic dec_tlu_bpred_disable, // disable all branch prediction 52 : - 53 2 : input el2_predict_pkt_t exu_mp_pkt, // mispredict packet + 53 0 : input el2_predict_pkt_t exu_mp_pkt, // mispredict packet 54 : - 55 206 : input logic [pt.BHT_GHR_SIZE-1:0] exu_mp_eghr, // execute ghr (for patching fghr) - 56 122 : input logic [pt.BHT_GHR_SIZE-1:0] exu_mp_fghr, // Mispredict fghr - 57 108 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_mp_index, // Mispredict index + 55 20 : input logic [pt.BHT_GHR_SIZE-1:0] exu_mp_eghr, // execute ghr (for patching fghr) + 56 2 : input logic [pt.BHT_GHR_SIZE-1:0] exu_mp_fghr, // Mispredict fghr + 57 4 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_mp_index, // Mispredict index 58 0 : input logic [pt.BTB_BTAG_SIZE-1:0] exu_mp_btag, // Mispredict btag 59 : - 60 345 : input logic exu_flush_final, // all flushes + 60 70 : input logic exu_flush_final, // all flushes 61 : - 62 716 : output logic ifu_bp_hit_taken_f, // btb hit, select target - 63 136 : output logic [31:1] ifu_bp_btb_target_f, // predicted target PC - 64 440 : output logic ifu_bp_inst_mask_f, // tell ic which valids to kill because of a taken branch, right justified + 62 352 : output logic ifu_bp_hit_taken_f, // btb hit, select target + 63 0 : output logic [31:1] ifu_bp_btb_target_f, // predicted target PC + 64 354 : output logic ifu_bp_inst_mask_f, // tell ic which valids to kill because of a taken branch, right justified 65 : - 66 122 : output logic [pt.BHT_GHR_SIZE-1:0] ifu_bp_fghr_f, // fetch ghr + 66 2 : output logic [pt.BHT_GHR_SIZE-1:0] ifu_bp_fghr_f, // fetch ghr 67 : - 68 546 : output logic [1:0] ifu_bp_way_f, // way - 69 16 : output logic [1:0] ifu_bp_ret_f, // predicted ret - 70 380 : output logic [1:0] ifu_bp_hist1_f, // history counters for all 4 potential branches, bit 1, right justified - 71 306 : output logic [1:0] ifu_bp_hist0_f, // history counters for all 4 potential branches, bit 0, right justified - 72 170 : output logic [1:0] ifu_bp_pc4_f, // pc4 indication, right justified - 73 418 : output logic [1:0] ifu_bp_valid_f, // branch valid, right justified - 74 340 : output logic [11:0] ifu_bp_poffset_f, // predicted target + 68 208 : output logic [1:0] ifu_bp_way_f, // way + 69 0 : output logic [1:0] ifu_bp_ret_f, // predicted ret + 70 8 : output logic [1:0] ifu_bp_hist1_f, // history counters for all 4 potential branches, bit 1, right justified + 71 8 : output logic [1:0] ifu_bp_hist0_f, // history counters for all 4 potential branches, bit 0, right justified + 72 0 : output logic [1:0] ifu_bp_pc4_f, // pc4 indication, right justified + 73 0 : output logic [1:0] ifu_bp_valid_f, // branch valid, right justified + 74 352 : output logic [11:0] ifu_bp_poffset_f, // predicted target 75 : 76 0 : output logic [1:0] [$clog2(pt.BTB_SIZE)-1:0] ifu_bp_fa_index_f, // predicted branch index (fully associative option) 77 : @@ -205,77 +205,77 @@ 101 : localparam BHT_NO_ADDR_MATCH = ( pt.BHT_ARRAY_DEPTH <= 16 ); 102 : 103 : - 104 100 : logic exu_mp_valid_write; - 105 306 : logic exu_mp_ataken; - 106 320 : logic exu_mp_valid; // conditional branch mispredict - 107 166 : logic exu_mp_boffset; // branch offsett - 108 96 : logic exu_mp_pc4; // branch is a 4B inst - 109 46 : logic exu_mp_call; // branch is a call inst - 110 62 : logic exu_mp_ret; // branch is a ret inst - 111 14 : logic exu_mp_ja; // branch is a jump always - 112 86 : logic [1:0] exu_mp_hist; // new history - 113 94 : logic [11:0] exu_mp_tgt; // target offset - 114 108 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_mp_addr; // BTB/BHT address - 115 560 : logic dec_tlu_br0_v_wb; // WB stage history update - 116 576 : logic [1:0] dec_tlu_br0_hist_wb; // new history - 117 26 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] dec_tlu_br0_addr_wb; // addr + 104 28 : logic exu_mp_valid_write; + 105 60 : logic exu_mp_ataken; + 106 64 : logic exu_mp_valid; // conditional branch mispredict + 107 12 : logic exu_mp_boffset; // branch offsett + 108 4 : logic exu_mp_pc4; // branch is a 4B inst + 109 8 : logic exu_mp_call; // branch is a call inst + 110 8 : logic exu_mp_ret; // branch is a ret inst + 111 4 : logic exu_mp_ja; // branch is a jump always + 112 64 : logic [1:0] exu_mp_hist; // new history + 113 8 : logic [11:0] exu_mp_tgt; // target offset + 114 4 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_mp_addr; // BTB/BHT address + 115 176 : logic dec_tlu_br0_v_wb; // WB stage history update + 116 172 : logic [1:0] dec_tlu_br0_hist_wb; // new history + 117 4 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] dec_tlu_br0_addr_wb; // addr 118 0 : logic dec_tlu_br0_error_wb; // error; invalidate bank 119 0 : logic dec_tlu_br0_start_error_wb; // error; invalidate all 4 banks in fg - 120 122 : logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_wb; + 120 2 : logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_wb; 121 : 122 0 : logic use_mp_way, use_mp_way_p1; 123 0 : logic [pt.RET_STACK_SIZE-1:0][31:0] rets_out, rets_in; - 124 36 : logic [pt.RET_STACK_SIZE-1:0] rsenable; + 124 0 : logic [pt.RET_STACK_SIZE-1:0] rsenable; 125 : 126 : - 127 340 : logic [11:0] btb_rd_tgt_f; - 128 108 : logic btb_rd_pc4_f, btb_rd_call_f, btb_rd_ret_f; - 129 675 : logic [1:1] bp_total_branch_offset_f; + 127 352 : logic [11:0] btb_rd_tgt_f; + 128 0 : logic btb_rd_pc4_f, btb_rd_call_f, btb_rd_ret_f; + 129 390 : logic [1:1] bp_total_branch_offset_f; 130 : 131 2 : logic [31:1] bp_btb_target_adder_f; 132 2 : logic [31:1] bp_rs_call_target_f; - 133 37 : logic rs_push, rs_pop, rs_hold; - 134 26 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] btb_rd_addr_p1_f, btb_wr_addr, btb_rd_addr_f; + 133 2 : logic rs_push, rs_pop, rs_hold; + 134 4 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] btb_rd_addr_p1_f, btb_wr_addr, btb_rd_addr_f; 135 0 : logic [pt.BTB_BTAG_SIZE-1:0] btb_wr_tag, fetch_rd_tag_f, fetch_rd_tag_p1_f; - 136 56 : logic [BTB_DWIDTH-1:0] btb_wr_data; - 137 2 : logic btb_wr_en_way0, btb_wr_en_way1; + 136 4 : logic [BTB_DWIDTH-1:0] btb_wr_data; + 137 0 : logic btb_wr_en_way0, btb_wr_en_way1; 138 : 139 : - 140 320 : logic dec_tlu_error_wb, btb_valid, dec_tlu_br0_middle_wb; - 141 26 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] btb_error_addr_wb; + 140 64 : logic dec_tlu_error_wb, btb_valid, dec_tlu_br0_middle_wb; + 141 4 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] btb_error_addr_wb; 142 0 : logic branch_error_collision_f, fetch_mp_collision_f, branch_error_collision_p1_f, fetch_mp_collision_p1_f; 143 : 144 0 : logic branch_error_bank_conflict_f; - 145 122 : logic [pt.BHT_GHR_SIZE-1:0] merged_ghr, fghr_ns, fghr; + 145 2 : logic [pt.BHT_GHR_SIZE-1:0] merged_ghr, fghr_ns, fghr; 146 0 : logic [1:0] num_valids; 147 0 : logic [LRU_SIZE-1:0] btb_lru_b0_f, btb_lru_b0_hold, btb_lru_b0_ns, 148 0 : fetch_wrindex_dec, fetch_wrindex_p1_dec, fetch_wrlru_b0, fetch_wrlru_p1_b0, 149 0 : mp_wrindex_dec, mp_wrlru_b0; - 150 666 : logic btb_lru_rd_f, btb_lru_rd_p1_f, lru_update_valid_f; + 150 208 : logic btb_lru_rd_f, btb_lru_rd_p1_f, lru_update_valid_f; 151 0 : logic tag_match_way0_f, tag_match_way1_f; - 152 262 : logic [1:0] way_raw, bht_dir_f, btb_sel_f, wayhit_f, vwayhit_f, wayhit_p1_f; - 153 84 : logic [1:0] bht_valid_f, bht_force_taken_f; + 152 0 : logic [1:0] way_raw, bht_dir_f, btb_sel_f, wayhit_f, vwayhit_f, wayhit_p1_f; + 153 0 : logic [1:0] bht_valid_f, bht_force_taken_f; 154 : - 155 0 : logic leak_one_f, leak_one_f_d1; + 155 0 : logic leak_one_f, leak_one_f_d1; 156 : 157 : logic [LRU_SIZE-1:0][BTB_DWIDTH-1:0] btb_bank0_rd_data_way0_out ; 158 : 159 : logic [LRU_SIZE-1:0][BTB_DWIDTH-1:0] btb_bank0_rd_data_way1_out ; 160 : - 161 250 : logic [BTB_DWIDTH-1:0] btb_bank0_rd_data_way0_f ; + 161 212 : logic [BTB_DWIDTH-1:0] btb_bank0_rd_data_way0_f ; 162 0 : logic [BTB_DWIDTH-1:0] btb_bank0_rd_data_way1_f ; 163 : - 164 210 : logic [BTB_DWIDTH-1:0] btb_bank0_rd_data_way0_p1_f ; + 164 208 : logic [BTB_DWIDTH-1:0] btb_bank0_rd_data_way0_p1_f ; 165 0 : logic [BTB_DWIDTH-1:0] btb_bank0_rd_data_way1_p1_f ; 166 : - 167 90 : logic [BTB_DWIDTH-1:0] btb_vbank0_rd_data_f, btb_vbank1_rd_data_f; + 167 0 : logic [BTB_DWIDTH-1:0] btb_vbank0_rd_data_f, btb_vbank1_rd_data_f; 168 : - 169 716 : logic final_h; - 170 38 : logic btb_fg_crossing_f; - 171 142 : logic middle_of_bank; + 169 352 : logic final_h; + 170 0 : logic btb_fg_crossing_f; + 171 8 : logic middle_of_bank; 172 : 173 : - 174 306 : logic [1:0] bht_vbank0_rd_data_f, bht_vbank1_rd_data_f; + 174 8 : logic [1:0] bht_vbank0_rd_data_f, bht_vbank1_rd_data_f; 175 0 : logic branch_error_bank_conflict_p1_f; 176 0 : logic tag_match_way0_p1_f, tag_match_way1_p1_f; 177 : @@ -283,17 +283,17 @@ 179 2 : logic [31:2] fetch_addr_p1_f; 180 : 181 : - 182 6 : logic exu_mp_way, exu_mp_way_f, dec_tlu_br0_way_wb, dec_tlu_way_wb; - 183 416 : logic [BTB_DWIDTH-1:0] btb_bank0e_rd_data_f, btb_bank0e_rd_data_p1_f; + 182 8 : logic exu_mp_way, exu_mp_way_f, dec_tlu_br0_way_wb, dec_tlu_way_wb; + 183 208 : logic [BTB_DWIDTH-1:0] btb_bank0e_rd_data_f, btb_bank0e_rd_data_p1_f; 184 : - 185 102 : logic [BTB_DWIDTH-1:0] btb_bank0o_rd_data_f; + 185 0 : logic [BTB_DWIDTH-1:0] btb_bank0o_rd_data_f; 186 : - 187 0 : logic [1:0] tag_match_way0_expanded_f, tag_match_way1_expanded_f; + 187 0 : logic [1:0] tag_match_way0_expanded_f, tag_match_way1_expanded_f; 188 : 189 : - 190 518 : logic [1:0] bht_bank0_rd_data_f; - 191 318 : logic [1:0] bht_bank1_rd_data_f; - 192 546 : logic [1:0] bht_bank0_rd_data_p1_f; + 190 180 : logic [1:0] bht_bank0_rd_data_f; + 191 0 : logic [1:0] bht_bank1_rd_data_f; + 192 184 : logic [1:0] bht_bank0_rd_data_p1_f; 193 : genvar j, i; 194 : 195 : assign exu_mp_valid = exu_mp_pkt.misp & ~leak_one_f; // conditional branch mispredict @@ -348,7 +348,7 @@ 244 : // set on leak one, hold until next flush without leak one 245 : assign leak_one_f = (dec_tlu_flush_leak_one_wb & dec_tlu_flush_lower_wb) | (leak_one_f_d1 & ~dec_tlu_flush_lower_wb); 246 : - 247 344 : logic exu_flush_final_d1; + 247 68 : logic exu_flush_final_d1; 248 : 249 : if(!pt.BTB_FULLYA) begin : genblock1 250 : assign fetch_mp_collision_f = ( (exu_mp_btag[pt.BTB_BTAG_SIZE-1:0] == fetch_rd_tag_f[pt.BTB_BTAG_SIZE-1:0]) & @@ -461,8 +461,8 @@ 357 : 358 : end // if (!pt.BTB_FULLYA) 359 : // Detect end of cache line and mask as needed - 360 388 : logic eoc_near; - 361 250 : logic eoc_mask; + 360 216 : logic eoc_near; + 361 210 : logic eoc_mask; 362 : assign eoc_near = &ifc_fetch_addr_f[pt.ICACHE_BEAT_ADDR_HI:3]; 363 : assign eoc_mask = ~eoc_near| (|(~ifc_fetch_addr_f[2:1])); 364 : @@ -473,7 +473,7 @@ 369 : 370 : // mux out critical hit bank for pc computation 371 : // This is only useful for the first taken branch in the fetch group - 372 284 : logic [16:1] btb_sel_data_f; + 372 352 : logic [16:1] btb_sel_data_f; 373 : 374 : assign btb_rd_tgt_f[11:0] = btb_sel_data_f[16:5]; 375 : assign btb_rd_pc4_f = btb_sel_data_f[4]; @@ -484,7 +484,7 @@ 380 : ({16{btb_sel_f[0]}} & btb_vbank0_rd_data_f[16:1]) ); 381 : 382 : - 383 16 : logic [1:0] hist0_raw, hist1_raw, pc4_raw, pret_raw; + 383 0 : logic [1:0] hist0_raw, hist1_raw, pc4_raw, pret_raw; 384 : 385 : // a valid taken target needs to kill the next fetch as we compute the target address 386 : assign ifu_bp_hit_taken_f = |(vwayhit_f[1:0] & hist1_raw[1:0]) & ifc_fetch_req_f & ~leak_one_f_d1 & ~dec_tlu_bpred_disable; @@ -561,7 +561,7 @@ 457 : ({pt.BHT_GHR_SIZE{num_valids[1:0] == 2'h1}} & {fghr[pt.BHT_GHR_SIZE-2:0], final_h}) | // PH 458 : ({pt.BHT_GHR_SIZE{num_valids[1:0] == 2'h0}} & {fghr[pt.BHT_GHR_SIZE-1:0]}) ); // PP 459 : - 460 122 : logic [pt.BHT_GHR_SIZE-1:0] exu_flush_ghr; + 460 2 : logic [pt.BHT_GHR_SIZE-1:0] exu_flush_ghr; 461 : assign exu_flush_ghr[pt.BHT_GHR_SIZE-1:0] = exu_mp_fghr[pt.BHT_GHR_SIZE-1:0]; 462 : 463 : assign fghr_ns[pt.BHT_GHR_SIZE-1:0] = ( ({pt.BHT_GHR_SIZE{exu_flush_final_d1}} & exu_flush_ghr[pt.BHT_GHR_SIZE-1:0]) | @@ -601,8 +601,8 @@ 497 : // -1 10 - 10 0 498 : // 10 10 0 01 1 499 : // 10 10 1 01 0 - 500 561 : logic [1:0] bloc_f; - 501 535 : logic use_fa_plus; + 500 388 : logic [1:0] bloc_f; + 501 212 : logic use_fa_plus; 502 : assign bloc_f[1] = (bht_dir_f[0] & ~fetch_start_f[0]) | (~bht_dir_f[0] 503 : & fetch_start_f[0]); 504 : assign bloc_f[0] = (bht_dir_f[0] & fetch_start_f[0]) | (~bht_dir_f[0] @@ -719,8 +719,8 @@ 615 : exu_mp_call | exu_mp_ja, exu_mp_ret | exu_mp_ja, btb_valid} ; 616 : 617 : assign exu_mp_valid_write = exu_mp_valid & exu_mp_ataken & ~exu_mp_pkt.valid; - 618 86 : logic [1:0] bht_wr_data0, bht_wr_data2; - 619 70 : logic [1:0] bht_wr_en0, bht_wr_en2; + 618 64 : logic [1:0] bht_wr_data0, bht_wr_data2; + 619 0 : logic [1:0] bht_wr_en0, bht_wr_en2; 620 : 621 : assign middle_of_bank = exu_mp_pc4 ^ exu_mp_boffset; 622 : assign bht_wr_en0[1:0] = {2{exu_mp_valid & ~exu_mp_call & ~exu_mp_ret & ~exu_mp_ja}} & {middle_of_bank, ~middle_of_bank}; @@ -732,9 +732,9 @@ 628 : 629 : 630 : - 631 125 : logic [pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] bht_rd_addr_f, bht_rd_addr_p1_f, bht_wr_addr0, bht_wr_addr2; + 631 6 : logic [pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] bht_rd_addr_f, bht_rd_addr_p1_f, bht_wr_addr0, bht_wr_addr2; 632 : - 633 125 : logic [pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] mp_hashed, br0_hashed_wb, bht_rd_addr_hashed_f, bht_rd_addr_hashed_p1_f; + 633 6 : logic [pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] mp_hashed, br0_hashed_wb, bht_rd_addr_hashed_f, bht_rd_addr_hashed_p1_f; 634 : el2_btb_ghr_hash #(.pt(pt)) mpghrhs (.hashin(exu_mp_addr[pt.BTB_ADDR_HI:pt.BTB_ADDR_LO]), .ghr(exu_mp_eghr[pt.BHT_GHR_SIZE-1:0]), .hash(mp_hashed[pt.BHT_ADDR_HI:pt.BHT_ADDR_LO])); 635 : el2_btb_ghr_hash #(.pt(pt)) br0ghrhs (.hashin(dec_tlu_br0_addr_wb[pt.BTB_ADDR_HI:pt.BTB_ADDR_LO]), .ghr(exu_i0_br_fghr_wb[pt.BHT_GHR_SIZE-1:0]), .hash(br0_hashed_wb[pt.BHT_ADDR_HI:pt.BHT_ADDR_LO])); 636 : el2_btb_ghr_hash #(.pt(pt)) fghrhs (.hashin(btb_rd_addr_f[pt.BTB_ADDR_HI:pt.BTB_ADDR_LO]), .ghr(fghr[pt.BHT_GHR_SIZE-1:0]), .hash(bht_rd_addr_hashed_f[pt.BHT_ADDR_HI:pt.BHT_ADDR_LO])); @@ -777,18 +777,18 @@ 673 2 : btb_bank0_rd_data_way1_p1_f[BTB_DWIDTH-1:0] = '0 ; 674 : 675 2 : for (int j=0; j< LRU_SIZE; j++) begin - 676 28550 : if (btb_rd_addr_f[pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] == (pt.BTB_ADDR_HI-pt.BTB_ADDR_LO+1)'(j)) begin + 676 16134 : if (btb_rd_addr_f[pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] == (pt.BTB_ADDR_HI-pt.BTB_ADDR_LO+1)'(j)) begin 677 : - 678 28550 : btb_bank0_rd_data_way0_f[BTB_DWIDTH-1:0] = btb_bank0_rd_data_way0_out[j]; - 679 28550 : btb_bank0_rd_data_way1_f[BTB_DWIDTH-1:0] = btb_bank0_rd_data_way1_out[j]; + 678 16134 : btb_bank0_rd_data_way0_f[BTB_DWIDTH-1:0] = btb_bank0_rd_data_way0_out[j]; + 679 16134 : btb_bank0_rd_data_way1_f[BTB_DWIDTH-1:0] = btb_bank0_rd_data_way1_out[j]; 680 : 681 : end 682 : end 683 2 : for (int j=0; j< LRU_SIZE; j++) begin - 684 28550 : if (btb_rd_addr_p1_f[pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] == (pt.BTB_ADDR_HI-pt.BTB_ADDR_LO+1)'(j)) begin + 684 16134 : if (btb_rd_addr_p1_f[pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] == (pt.BTB_ADDR_HI-pt.BTB_ADDR_LO+1)'(j)) begin 685 : - 686 28550 : btb_bank0_rd_data_way0_p1_f[BTB_DWIDTH-1:0] = btb_bank0_rd_data_way0_out[j]; - 687 28550 : btb_bank0_rd_data_way1_p1_f[BTB_DWIDTH-1:0] = btb_bank0_rd_data_way1_out[j]; + 686 16134 : btb_bank0_rd_data_way0_p1_f[BTB_DWIDTH-1:0] = btb_bank0_rd_data_way0_out[j]; + 687 16134 : btb_bank0_rd_data_way1_p1_f[BTB_DWIDTH-1:0] = btb_bank0_rd_data_way1_out[j]; 688 : 689 : end 690 : end @@ -933,8 +933,8 @@ 829 : 830 : // logic [1:0] [(pt.BHT_ARRAY_DEPTH/NUM_BHT_LOOP)-1:0][NUM_BHT_LOOP-1:0][1:0] bht_bank_wr_data ; 831 : logic [1:0] [pt.BHT_ARRAY_DEPTH-1:0] [1:0] bht_bank_rd_data_out ; - 832 26 : logic [1:0] [(pt.BHT_ARRAY_DEPTH/NUM_BHT_LOOP)-1:0] bht_bank_clken ; - 833 0 : logic [1:0] [(pt.BHT_ARRAY_DEPTH/NUM_BHT_LOOP)-1:0] bht_bank_clk ; + 832 0 : logic [1:0] [(pt.BHT_ARRAY_DEPTH/NUM_BHT_LOOP)-1:0] bht_bank_clken ; + 833 0 : logic [1:0] [(pt.BHT_ARRAY_DEPTH/NUM_BHT_LOOP)-1:0] bht_bank_clk ; 834 : // logic [1:0] [(pt.BHT_ARRAY_DEPTH/NUM_BHT_LOOP)-1:0][NUM_BHT_LOOP-1:0] bht_bank_sel ; 835 : 836 : for ( i=0; i<2; i++) begin : BANKS @@ -978,12 +978,12 @@ 874 2 : bht_bank1_rd_data_f[1:0] = '0 ; 875 2 : bht_bank0_rd_data_p1_f[1:0] = '0 ; 876 2 : for (int j=0; j< pt.BHT_ARRAY_DEPTH; j++) begin - 877 28550 : if (bht_rd_addr_f[pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] == (pt.BHT_ADDR_HI-pt.BHT_ADDR_LO+1)'(j)) begin - 878 28550 : bht_bank0_rd_data_f[1:0] = bht_bank_rd_data_out[0][j]; - 879 28550 : bht_bank1_rd_data_f[1:0] = bht_bank_rd_data_out[1][j]; + 877 16134 : if (bht_rd_addr_f[pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] == (pt.BHT_ADDR_HI-pt.BHT_ADDR_LO+1)'(j)) begin + 878 16134 : bht_bank0_rd_data_f[1:0] = bht_bank_rd_data_out[0][j]; + 879 16134 : bht_bank1_rd_data_f[1:0] = bht_bank_rd_data_out[1][j]; 880 : end - 881 28550 : if (bht_rd_addr_p1_f[pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] == (pt.BHT_ADDR_HI-pt.BHT_ADDR_LO+1)'(j)) begin - 882 28550 : bht_bank0_rd_data_p1_f[1:0] = bht_bank_rd_data_out[0][j]; + 881 16134 : if (bht_rd_addr_p1_f[pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] == (pt.BHT_ADDR_HI-pt.BHT_ADDR_LO+1)'(j)) begin + 882 16134 : bht_bank0_rd_data_p1_f[1:0] = bht_bank_rd_data_out[0][j]; 883 : end 884 : end 885 : end // block: BHT_rd_mux diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu_compress_ctl.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu_compress_ctl.sv.html index 7ef1ade653b..5cac93b1980 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu_compress_ctl.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu_compress_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -127,14 +127,14 @@ 23 : `include "el2_param.vh" 24 : ) 25 : ( - 26 410 : input logic [15:0] din, // 16-bit compressed instruction - 27 128 : output logic [31:0] dout // 32-bit uncompressed instruction + 26 36 : input logic [15:0] din, // 16-bit compressed instruction + 27 4 : output logic [31:0] dout // 32-bit uncompressed instruction 28 : ); 29 : 30 : - 31 1784 : logic legal; + 31 496 : logic legal; 32 : - 33 410 : logic [15:0] i; + 33 36 : logic [15:0] i; 34 : 35 2 : logic [31:0] o,l1,l2,l3; 36 : @@ -144,27 +144,27 @@ 40 : 41 0 : logic [4:0] rs2d,rdd,rdpd,rs2pd; 42 : - 43 1098 : logic rdrd; - 44 652 : logic rdrs1; - 45 626 : logic rs2rs2; - 46 76 : logic rdprd; - 47 378 : logic rdprs1; - 48 24 : logic rs2prs2; - 49 1766 : logic rs2prd; - 50 1786 : logic uimm9_2; - 51 40 : logic ulwimm6_2; - 52 130 : logic ulwspimm7_2; - 53 84 : logic rdeq2; - 54 64 : logic rdeq1; - 55 1472 : logic rs1eq2; - 56 320 : logic sbroffset8_1; - 57 84 : logic simm9_4; - 58 586 : logic simm5_0; - 59 132 : logic sjaloffset11_1; - 60 16 : logic sluimm17_12; - 61 92 : logic uimm5_0; - 62 0 : logic uswimm6_2; - 63 232 : logic uswspimm7_2; + 43 252 : logic rdrd; + 44 224 : logic rdrs1; + 45 20 : logic rs2rs2; + 46 4 : logic rdprd; + 47 224 : logic rdprs1; + 48 4 : logic rs2prs2; + 49 498 : logic rs2prd; + 50 498 : logic uimm9_2; + 51 0 : logic ulwimm6_2; + 52 12 : logic ulwspimm7_2; + 53 4 : logic rdeq2; + 54 8 : logic rdeq1; + 55 482 : logic rs1eq2; + 56 220 : logic sbroffset8_1; + 57 4 : logic simm9_4; + 58 236 : logic simm5_0; + 59 12 : logic sjaloffset11_1; + 60 0 : logic sluimm17_12; + 61 0 : logic uimm5_0; + 62 0 : logic uswimm6_2; + 63 12 : logic uswspimm7_2; 64 : 65 : 66 : @@ -216,16 +216,16 @@ 112 : 113 : assign l1[31:25] = o[31:25]; 114 : - 115 696 : logic [5:0] simm5d; - 116 696 : logic [9:2] uimm9d; + 115 220 : logic [5:0] simm5d; + 116 220 : logic [9:2] uimm9d; 117 : - 118 696 : logic [9:4] simm9d; - 119 696 : logic [6:2] ulwimm6d; - 120 696 : logic [7:2] ulwspimm7d; - 121 696 : logic [5:0] uimm5d; - 122 696 : logic [20:1] sjald; + 118 220 : logic [9:4] simm9d; + 119 220 : logic [6:2] ulwimm6d; + 120 220 : logic [7:2] ulwspimm7d; + 121 220 : logic [5:0] uimm5d; + 122 220 : logic [20:1] sjald; 123 : - 124 696 : logic [31:12] sluimmd; + 124 220 : logic [31:12] sluimmd; 125 : 126 : // merge in immediates + jal offset 127 : @@ -272,9 +272,9 @@ 168 : 169 : // merge in branch offset and store immediates 170 : - 171 696 : logic [8:1] sbr8d; - 172 696 : logic [6:2] uswimm6d; - 173 806 : logic [7:2] uswspimm7d; + 171 220 : logic [8:1] sbr8d; + 172 220 : logic [6:2] uswimm6d; + 173 220 : logic [7:2] uswspimm7d; 174 : 175 : 176 : assign sbr8d[8:1] = { i[12], i[6], i[5], i[2], i[11], i[10], i[4], i[3] }; diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu_ic_mem.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu_ic_mem.sv.html index b5e508f5d25..a084eb94b64 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu_ic_mem.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu_ic_mem.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -127,8 +127,8 @@ 23 : `include "el2_param.vh" 24 : ) 25 : ( - 26 66208 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 27 66208 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 26 14760 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 27 14760 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. 28 2 : input logic rst_l, // reset, active low 29 0 : input logic clk_override, // Override non-functional clock gating 30 0 : input logic dec_tlu_core_ecc_disable, // Disable ECC checking @@ -141,11 +141,11 @@ 37 0 : input logic ic_debug_wr_en, // Icache debug wr 38 0 : input logic ic_debug_tag_array, // Debug tag array 39 0 : input logic [pt.ICACHE_NUM_WAYS-1:0] ic_debug_way, // Debug way. Rd or Wr. - 40 962 : input logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. - 41 3842 : input logic ic_sel_premux_data, // Select the pre_muxed data + 40 44 : input logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. + 41 970 : input logic ic_sel_premux_data, // Select the pre_muxed data 42 : - 43 150 : input logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data, // Data to fill to the Icache. With ECC - 44 962 : output logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC + 43 16 : input logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data, // Data to fill to the Icache. With ECC + 44 44 : output logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 45 0 : output logic [70:0] ic_debug_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 46 0 : output logic [25:0] ictag_debug_rd_data,// Debug icache tag. 47 0 : input logic [70:0] ic_debug_wr_data, // Debug wr cache. @@ -192,8 +192,8 @@ 88 : `include "el2_param.vh" 89 : ) 90 : ( - 91 66208 : input logic clk, - 92 66208 : input logic active_clk, + 91 14760 : input logic clk, + 92 14760 : input logic active_clk, 93 2 : input logic rst_l, 94 0 : input logic clk_override, 95 : @@ -201,8 +201,8 @@ 97 0 : input logic [pt.ICACHE_NUM_WAYS-1:0]ic_wr_en, 98 0 : input logic ic_rd_en, // Read enable 99 : - 100 150 : input logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data, // Data to fill to the Icache. With ECC - 101 962 : output logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC + 100 16 : input logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data, // Data to fill to the Icache. With ECC + 101 44 : output logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 102 0 : input logic [70:0] ic_debug_wr_data, // Debug wr cache. 103 0 : output logic [70:0] ic_debug_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 104 0 : output logic [pt.ICACHE_BANKS_WAY-1:0] ic_parerr, @@ -212,8 +212,8 @@ 108 0 : input logic ic_debug_wr_en, // Icache debug wr 109 0 : input logic ic_debug_tag_array, // Debug tag array 110 0 : input logic [pt.ICACHE_NUM_WAYS-1:0] ic_debug_way, // Debug way. Rd or Wr. - 111 962 : input logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. - 112 3842 : input logic ic_sel_premux_data, // Select the pre_muxed data + 111 44 : input logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. + 112 970 : input logic ic_sel_premux_data, // Select the pre_muxed data 113 : 114 0 : input logic [pt.ICACHE_NUM_WAYS-1:0]ic_rd_hit, 115 0 : input el2_ic_data_ext_in_pkt_t [pt.ICACHE_NUM_WAYS-1:0][pt.ICACHE_BANKS_WAY-1:0] ic_data_ext_in_pkt, // this is being driven by the top level for soc testing/etc @@ -221,7 +221,7 @@ 117 : 118 : ) ; 119 : - 120 341 : logic [pt.ICACHE_TAG_INDEX_LO-1:1] ic_rw_addr_ff; + 120 212 : logic [pt.ICACHE_TAG_INDEX_LO-1:1] ic_rw_addr_ff; 121 0 : logic [pt.ICACHE_BANKS_WAY-1:0][pt.ICACHE_NUM_WAYS-1:0] ic_b_sb_wren; //bank x ways 122 0 : logic [pt.ICACHE_BANKS_WAY-1:0][pt.ICACHE_NUM_WAYS-1:0] ic_b_sb_rden; //bank x ways 123 : @@ -231,9 +231,9 @@ 127 0 : logic [pt.ICACHE_BANKS_WAY-1:0] ic_debug_sel_sb; 128 : 129 : logic [pt.ICACHE_NUM_WAYS-1:0][pt.ICACHE_BANKS_WAY-1:0][70:0] wb_dout ; // ways x bank - 130 150 : logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_sb_wr_data, ic_bank_wr_data, wb_dout_ecc_bank; + 130 16 : logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_sb_wr_data, ic_bank_wr_data, wb_dout_ecc_bank; 131 : logic [pt.ICACHE_NUM_WAYS-1:0] [141:0] wb_dout_way_pre; - 132 962 : logic [pt.ICACHE_NUM_WAYS-1:0] [63:0] wb_dout_way, wb_dout_way_with_premux; + 132 44 : logic [pt.ICACHE_NUM_WAYS-1:0] [63:0] wb_dout_way, wb_dout_way_with_premux; 133 0 : logic [141:0] wb_dout_ecc; 134 : 135 0 : logic [pt.ICACHE_BANKS_WAY-1:0] bank_check_en; @@ -245,11 +245,11 @@ 141 0 : logic [pt.ICACHE_NUM_WAYS-1:0] ic_debug_rd_way_en; // debug wr_way 142 0 : logic [pt.ICACHE_NUM_WAYS-1:0] ic_debug_rd_way_en_ff; // debug wr_way 143 0 : logic [pt.ICACHE_NUM_WAYS-1:0] ic_debug_wr_way_en; // debug wr_way - 144 26 : logic [pt.ICACHE_INDEX_HI:1] ic_rw_addr_q; + 144 4 : logic [pt.ICACHE_INDEX_HI:1] ic_rw_addr_q; 145 : - 146 26 : logic [pt.ICACHE_BANKS_WAY-1:0] [pt.ICACHE_INDEX_HI : pt.ICACHE_DATA_INDEX_LO] ic_rw_addr_bank_q; + 146 4 : logic [pt.ICACHE_BANKS_WAY-1:0] [pt.ICACHE_INDEX_HI : pt.ICACHE_DATA_INDEX_LO] ic_rw_addr_bank_q; 147 : - 148 32 : logic [pt.ICACHE_TAG_LO-1 : pt.ICACHE_DATA_INDEX_LO] ic_rw_addr_q_inc; + 148 4 : logic [pt.ICACHE_TAG_LO-1 : pt.ICACHE_DATA_INDEX_LO] ic_rw_addr_q_inc; 149 0 : logic [pt.ICACHE_NUM_WAYS-1:0] ic_rd_hit_q; 150 : 151 : @@ -278,7 +278,7 @@ 174 : 175 : 176 2 : logic [pt.ICACHE_BANKS_WAY-1:0] [31 : pt.ICACHE_DATA_INDEX_LO] ic_b_rw_addr; - 177 26 : logic [pt.ICACHE_BANKS_WAY-1:0] [31 : pt.ICACHE_DATA_INDEX_LO] ic_b_rw_addr_index_only; + 177 4 : logic [pt.ICACHE_BANKS_WAY-1:0] [31 : pt.ICACHE_DATA_INDEX_LO] ic_b_rw_addr_index_only; 178 : 179 0 : logic [pt.ICACHE_NUM_WAYS-1:0][pt.ICACHE_BANKS_WAY-1:0] [31 : pt.ICACHE_DATA_INDEX_LO] ic_b_rw_addr_up; 180 0 : logic [pt.ICACHE_NUM_WAYS-1:0][pt.ICACHE_BANKS_WAY-1:0] [31 : pt.ICACHE_DATA_INDEX_LO] ic_b_rw_addr_index_only_up; @@ -296,7 +296,7 @@ 192 : assign ic_debug_rd_way_en[pt.ICACHE_NUM_WAYS-1:0] = {pt.ICACHE_NUM_WAYS{ic_debug_rd_en & ~ic_debug_tag_array}} & ic_debug_way[pt.ICACHE_NUM_WAYS-1:0] ; 193 : assign ic_debug_wr_way_en[pt.ICACHE_NUM_WAYS-1:0] = {pt.ICACHE_NUM_WAYS{ic_debug_wr_en & ~ic_debug_tag_array}} & ic_debug_way[pt.ICACHE_NUM_WAYS-1:0] ; 194 : - 195 450 : logic end_of_cache_line; + 195 224 : logic end_of_cache_line; 196 : assign end_of_cache_line = (pt.ICACHE_LN_SZ==7'h40) ? (&ic_rw_addr_q[5:4]) : ic_rw_addr_q[4]; 197 2 : always_comb begin : clkens 198 2 : ic_bank_way_clken = '0; @@ -904,8 +904,8 @@ 800 : `include "el2_param.vh" 801 : ) 802 : ( - 803 66208 : input logic clk, - 804 66208 : input logic active_clk, + 803 14760 : input logic clk, + 804 14760 : input logic active_clk, 805 2 : input logic rst_l, 806 0 : input logic clk_override, 807 0 : input logic dec_tlu_core_ecc_disable, @@ -945,7 +945,7 @@ 841 0 : logic [pt.ICACHE_NUM_WAYS-1:0] ic_debug_rd_way_en ; 842 0 : logic [pt.ICACHE_NUM_WAYS-1:0] ic_debug_rd_way_en_ff ; 843 : - 844 26 : logic [pt.ICACHE_INDEX_HI: pt.ICACHE_TAG_INDEX_LO] ic_rw_addr_q; + 844 4 : logic [pt.ICACHE_INDEX_HI: pt.ICACHE_TAG_INDEX_LO] ic_rw_addr_q; 845 2 : logic [31:pt.ICACHE_TAG_LO] ic_rw_addr_ff; 846 0 : logic [pt.ICACHE_NUM_WAYS-1:0] ic_tag_rden_q; // way 847 0 : logic [pt.ICACHE_NUM_WAYS-1:0] ic_tag_wren; // way diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu_iccm_mem.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu_iccm_mem.sv.html index 5f3218b372d..928e3492486 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu_iccm_mem.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu_iccm_mem.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -129,14 +129,14 @@ 25 : #( 26 : `include "el2_param.vh" 27 : )( - 28 66208 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 29 66208 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 28 14760 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 29 14760 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. 30 2 : input logic rst_l, // reset, active low 31 0 : input logic clk_override, // Override non-functional clock gating 32 : 33 0 : input logic iccm_wren, // ICCM write enable 34 0 : input logic iccm_rden, // ICCM read enable - 35 26 : input logic [pt.ICCM_BITS-1:1] iccm_rw_addr, // ICCM read/write address + 35 4 : input logic [pt.ICCM_BITS-1:1] iccm_rw_addr, // ICCM read/write address 36 0 : input logic iccm_buf_correct_ecc, // ICCM is doing a single bit error correct cycle 37 0 : input logic iccm_correction_state, // ICCM under a correction - This is needed to guard replacements when hit 38 0 : input logic [2:0] iccm_wr_size, // ICCM write size @@ -154,13 +154,13 @@ 50 0 : logic [pt.ICCM_NUM_BANKS-1:0] wren_bank; 51 0 : logic [pt.ICCM_NUM_BANKS-1:0] rden_bank; 52 0 : logic [pt.ICCM_NUM_BANKS-1:0] iccm_clken; - 53 26 : logic [pt.ICCM_NUM_BANKS-1:0] [pt.ICCM_BITS-1:pt.ICCM_BANK_INDEX_LO] addr_bank; + 53 4 : logic [pt.ICCM_NUM_BANKS-1:0] [pt.ICCM_BITS-1:pt.ICCM_BANK_INDEX_LO] addr_bank; 54 : 55 0 : logic [pt.ICCM_NUM_BANKS-1:0] [38:0] iccm_bank_dout, iccm_bank_dout_fn; 56 0 : logic [pt.ICCM_NUM_BANKS-1:0] [38:0] iccm_bank_wr_data; - 57 28 : logic [pt.ICCM_BITS-1:1] addr_bank_inc; - 58 1115 : logic [pt.ICCM_BANK_HI : 2] iccm_rd_addr_hi_q; - 59 341 : logic [pt.ICCM_BANK_HI : 1] iccm_rd_addr_lo_q; + 57 4 : logic [pt.ICCM_BITS-1:1] addr_bank_inc; + 58 248 : logic [pt.ICCM_BANK_HI : 2] iccm_rd_addr_hi_q; + 59 212 : logic [pt.ICCM_BANK_HI : 1] iccm_rd_addr_lo_q; 60 0 : logic [63:0] iccm_rd_data_pre; 61 0 : logic [63:0] iccm_data; 62 0 : logic [1:0] addr_incr; diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu_ifc_ctl.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu_ifc_ctl.sv.html index a1c6e426e55..dac59cdbf0d 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu_ifc_ctl.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu_ifc_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -130,27 +130,27 @@ 26 : `include "el2_param.vh" 27 : ) 28 : ( - 29 66208 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 30 66208 : input logic free_l2clk, // Clock always. Through one clock header. For flops with second header built in. + 29 14760 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 30 14760 : input logic free_l2clk, // Clock always. Through one clock header. For flops with second header built in. 31 : 32 2 : input logic rst_l, // reset enable, from core pin 33 0 : input logic scan_mode, // scan 34 : - 35 4328 : input logic ic_hit_f, // Icache hit - 36 4342 : input logic ifu_ic_mb_empty, // Miss buffer empty + 35 980 : input logic ic_hit_f, // Icache hit + 36 996 : input logic ifu_ic_mb_empty, // Miss buffer empty 37 : - 38 3178 : input logic ifu_fb_consume1, // Aligner consumed 1 fetch buffer - 39 256 : input logic ifu_fb_consume2, // Aligner consumed 2 fetch buffers + 38 480 : input logic ifu_fb_consume1, // Aligner consumed 1 fetch buffer + 39 208 : input logic ifu_fb_consume2, // Aligner consumed 2 fetch buffers 40 : 41 0 : input logic dec_tlu_flush_noredir_wb, // Don't fetch on flush - 42 345 : input logic exu_flush_final, // FLush - 43 112 : input logic [31:1] exu_flush_path_final, // Flush path + 42 70 : input logic exu_flush_final, // FLush + 43 4 : input logic [31:1] exu_flush_path_final, // Flush path 44 : - 45 716 : input logic ifu_bp_hit_taken_f, // btb hit, select the target path - 46 136 : input logic [31:1] ifu_bp_btb_target_f, // predicted target PC + 45 352 : input logic ifu_bp_hit_taken_f, // btb hit, select the target path + 46 0 : input logic [31:1] ifu_bp_btb_target_f, // predicted target PC 47 : - 48 0 : input logic ic_dma_active, // IC DMA active, stop fetching - 49 1848 : input logic ic_write_stall, // IC is writing, stop fetching + 48 0 : input logic ic_dma_active, // IC DMA active, stop fetching + 49 488 : input logic ic_write_stall, // IC is writing, stop fetching 50 0 : input logic dma_iccm_stall_any, // force a stall in the fetch pipe for DMA ICCM access 51 : 52 0 : input logic [31:0] dec_tlu_mrac_ff , // side_effect and cacheable for each region @@ -158,34 +158,34 @@ 54 2 : output logic [31:1] ifc_fetch_addr_f, // fetch addr F 55 2 : output logic [31:1] ifc_fetch_addr_bf, // fetch addr BF 56 : - 57 2154 : output logic ifc_fetch_req_f, // fetch request valid F + 57 662 : output logic ifc_fetch_req_f, // fetch request valid F 58 : - 59 272 : output logic ifu_pmu_fetch_stall, // pmu event measuring fetch stall + 59 58 : output logic ifu_pmu_fetch_stall, // pmu event measuring fetch stall 60 : 61 2 : output logic ifc_fetch_uncacheable_bf, // The fetch request is uncacheable space. BF stage - 62 2154 : output logic ifc_fetch_req_bf, // Fetch request. Comes with the address. BF stage + 62 662 : output logic ifc_fetch_req_bf, // Fetch request. Comes with the address. BF stage 63 2 : output logic ifc_fetch_req_bf_raw, // Fetch request without some qualifications. Used for clock-gating. BF stage 64 0 : output logic ifc_iccm_access_bf, // This request is to the ICCM. Do not generate misses to the bus. 65 0 : output logic ifc_region_acc_fault_bf, // Access fault. in ICCM region but offset is outside defined ICCM. 66 : - 67 347 : output logic ifc_dma_access_ok // fetch is not accessing the ICCM, DMA can proceed + 67 72 : output logic ifc_dma_access_ok // fetch is not accessing the ICCM, DMA can proceed 68 : 69 : 70 : ); 71 : 72 2 : logic [31:1] fetch_addr_bf; 73 2 : logic [31:1] fetch_addr_next; - 74 304 : logic [3:0] fb_write_f, fb_write_ns; + 74 172 : logic [3:0] fb_write_f, fb_write_ns; 75 : - 76 304 : logic fb_full_f_ns, fb_full_f; + 76 172 : logic fb_full_f_ns, fb_full_f; 77 4 : logic fb_right, fb_right2, fb_left, wfm, idle; - 78 3838 : logic sel_last_addr_bf, sel_next_addr_bf; - 79 6247 : logic miss_f, miss_a; + 78 804 : logic sel_last_addr_bf, sel_next_addr_bf; + 79 1476 : logic miss_f, miss_a; 80 0 : logic flush_fb, dma_iccm_stall_any_f; 81 4 : logic mb_empty_mod, goto_idle, leave_idle; - 82 2146 : logic fetch_bf_en; - 83 370 : logic line_wrap; - 84 343 : logic fetch_addr_next_1; + 82 666 : logic fetch_bf_en; + 83 212 : logic line_wrap; + 84 212 : logic fetch_addr_next_1; 85 : 86 : // FSM assignment 87 : typedef enum logic [1:0] { IDLE = 2'b00 , diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu_mem_ctl.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu_mem_ctl.sv.html index cd7e40405fa..a45f9bd38f7 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu_mem_ctl.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_ifu_mem_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -131,40 +131,40 @@ 27 : `include "el2_param.vh" 28 : ) 29 : ( - 30 66208 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 31 66208 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. - 32 66208 : input logic free_l2clk, // Clock always. Through one clock header. For flops with second header built in. + 30 14760 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 31 14760 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 32 14760 : input logic free_l2clk, // Clock always. Through one clock header. For flops with second header built in. 33 2 : input logic rst_l, // reset, active low 34 : - 35 345 : input logic exu_flush_final, // Flush from the pipeline., includes flush lower + 35 70 : input logic exu_flush_final, // Flush from the pipeline., includes flush lower 36 4 : input logic dec_tlu_flush_lower_wb, // Flush lower from the pipeline. 37 0 : input logic dec_tlu_flush_err_wb, // Flush from the pipeline due to perr. - 38 4304 : input logic dec_tlu_i0_commit_cmt, // committed i0 instruction + 38 976 : input logic dec_tlu_i0_commit_cmt, // committed i0 instruction 39 0 : input logic dec_tlu_force_halt, // force halt. 40 : 41 2 : input logic [31:1] ifc_fetch_addr_bf, // Fetch Address byte aligned always. F1 stage. 42 2 : input logic ifc_fetch_uncacheable_bf, // The fetch request is uncacheable space. F1 stage - 43 2154 : input logic ifc_fetch_req_bf, // Fetch request. Comes with the address. F1 stage + 43 662 : input logic ifc_fetch_req_bf, // Fetch request. Comes with the address. F1 stage 44 2 : input logic ifc_fetch_req_bf_raw, // Fetch request without some qualifications. Used for clock-gating. F1 stage 45 0 : input logic ifc_iccm_access_bf, // This request is to the ICCM. Do not generate misses to the bus. 46 0 : input logic ifc_region_acc_fault_bf, // Access fault. in ICCM region but offset is outside defined ICCM. - 47 347 : input logic ifc_dma_access_ok, // It is OK to give dma access to the ICCM. (ICCM is not busy this cycle). + 47 72 : input logic ifc_dma_access_ok, // It is OK to give dma access to the ICCM. (ICCM is not busy this cycle). 48 0 : input logic dec_tlu_fence_i_wb, // Fence.i instruction is committing. Clear all Icache valids. - 49 716 : input logic ifu_bp_hit_taken_f, // Branch is predicted taken. Kill the fetch next cycle. + 49 352 : input logic ifu_bp_hit_taken_f, // Branch is predicted taken. Kill the fetch next cycle. 50 : - 51 440 : input logic ifu_bp_inst_mask_f, // tell ic which valids to kill because of a taken branch, right justified + 51 354 : input logic ifu_bp_inst_mask_f, // tell ic which valids to kill because of a taken branch, right justified 52 : - 53 4336 : output logic ifu_miss_state_idle, // No icache misses are outstanding. - 54 4342 : output logic ifu_ic_mb_empty, // Continue with normal fetching. This does not mean that miss is finished. + 53 988 : output logic ifu_miss_state_idle, // No icache misses are outstanding. + 54 996 : output logic ifu_ic_mb_empty, // Continue with normal fetching. This does not mean that miss is finished. 55 0 : output logic ic_dma_active , // In the middle of servicing dma request to ICCM. Do not make any new requests. - 56 1848 : output logic ic_write_stall, // Stall fetch the cycle we are writing the cache. + 56 488 : output logic ic_write_stall, // Stall fetch the cycle we are writing the cache. 57 : 58 : /// PMU signals - 59 4336 : output logic ifu_pmu_ic_miss, // IC miss event + 59 988 : output logic ifu_pmu_ic_miss, // IC miss event 60 0 : output logic ifu_pmu_ic_hit, // IC hit event 61 0 : output logic ifu_pmu_bus_error, // Bus error event 62 0 : output logic ifu_pmu_bus_busy, // Bus busy event - 63 4336 : output logic ifu_pmu_bus_trxn, // Bus transaction + 63 988 : output logic ifu_pmu_bus_trxn, // Bus transaction 64 : 65 : //-------------------------- IFU AXI signals-------------------------- 66 : // AXI Write Channels @@ -188,10 +188,10 @@ 84 0 : output logic ifu_axi_bready, 85 : 86 : // AXI Read Channels - 87 4336 : output logic ifu_axi_arvalid, - 88 4336 : input logic ifu_axi_arready, - 89 2620 : output logic [pt.IFU_BUS_TAG-1:0] ifu_axi_arid, - 90 1684 : output logic [31:0] ifu_axi_araddr, + 87 988 : output logic ifu_axi_arvalid, + 88 988 : input logic ifu_axi_arready, + 89 512 : output logic [pt.IFU_BUS_TAG-1:0] ifu_axi_arid, + 90 20 : output logic [31:0] ifu_axi_araddr, 91 2 : output logic [3:0] ifu_axi_arregion, 92 0 : output logic [7:0] ifu_axi_arlen, 93 0 : output logic [2:0] ifu_axi_arsize, @@ -201,10 +201,10 @@ 97 2 : output logic [2:0] ifu_axi_arprot, 98 0 : output logic [3:0] ifu_axi_arqos, 99 : - 100 8669 : input logic ifu_axi_rvalid, + 100 1974 : input logic ifu_axi_rvalid, 101 2 : output logic ifu_axi_rready, - 102 1120 : input logic [pt.IFU_BUS_TAG-1:0] ifu_axi_rid, - 103 576 : input logic [63:0] ifu_axi_rdata, + 102 446 : input logic [pt.IFU_BUS_TAG-1:0] ifu_axi_rid, + 103 16 : input logic [63:0] ifu_axi_rdata, 104 0 : input logic [1:0] ifu_axi_rresp, 105 : 106 2 : input logic ifu_bus_clk_en, @@ -221,7 +221,7 @@ 117 0 : output logic iccm_dma_rvalid, // Data read from iccm is valid 118 0 : output logic [63:0] iccm_dma_rdata, // dma data read from iccm 119 0 : output logic [2:0] iccm_dma_rtag, // Tag of the DMA req - 120 343 : output logic iccm_ready, // iccm ready to accept new command. + 120 68 : output logic iccm_ready, // iccm ready to accept new command. 121 : 122 : 123 : // I$ & ITAG Ports @@ -229,8 +229,8 @@ 125 0 : output logic [pt.ICACHE_NUM_WAYS-1:0] ic_wr_en, // Icache write enable, when filling the Icache. 126 0 : output logic ic_rd_en, // Icache read enable. 127 : - 128 150 : output logic [pt.ICACHE_BANKS_WAY-1:0] [70:0] ic_wr_data, // Data to fill to the Icache. With ECC - 129 962 : input logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC + 128 16 : output logic [pt.ICACHE_BANKS_WAY-1:0] [70:0] ic_wr_data, // Data to fill to the Icache. With ECC + 129 44 : input logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 130 0 : input logic [70:0] ic_debug_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 131 0 : input logic [25:0] ictag_debug_rd_data, // Debug icache tag. 132 0 : output logic [70:0] ic_debug_wr_data, // Debug wr cache. @@ -253,7 +253,7 @@ 149 0 : input logic ic_tag_perr, // Icache Tag parity error 150 : 151 : // ICCM ports - 152 26 : output logic [pt.ICCM_BITS-1:1] iccm_rw_addr, // ICCM read/write address. + 152 4 : output logic [pt.ICCM_BITS-1:1] iccm_rw_addr, // ICCM read/write address. 153 0 : output logic iccm_wren, // ICCM write enable (through the DMA) 154 0 : output logic iccm_rden, // ICCM read enable. 155 0 : output logic [77:0] iccm_wr_data, // ICCM write data. @@ -261,9 +261,9 @@ 157 : 158 0 : input logic [63:0] iccm_rd_data, // Data read from ICCM. 159 0 : input logic [77:0] iccm_rd_data_ecc, // Data + ECC read from ICCM. - 160 3820 : input logic [1:0] ifu_fetch_val, + 160 596 : input logic [1:0] ifu_fetch_val, 161 : // IFU control signals - 162 4328 : output logic ic_hit_f, // Hit in Icache(if Icache access) or ICCM access( ICCM always has ic_hit_f) + 162 980 : output logic ic_hit_f, // Hit in Icache(if Icache access) or ICCM access( ICCM always has ic_hit_f) 163 0 : output logic [1:0] ic_access_fault_f, // Access fault (bus error or ICCM access in region but out of offset range). 164 0 : output logic [1:0] ic_access_fault_type_f, // Access fault types 165 0 : output logic iccm_rd_ecc_single_err, // This fetch has a single ICCM ECC error. @@ -274,10 +274,10 @@ 170 : 171 0 : output logic ifu_async_error_start, // Or of the sb iccm, and all the icache errors sent to aligner to stop 172 0 : output logic iccm_dma_sb_error, // Single Bit ECC error from a DMA access - 173 3820 : output logic [1:0] ic_fetch_val_f, // valid bytes for fetch. To the Aligner. - 174 1026 : output logic [31:0] ic_data_f, // Data read from Icache or ICCM. To the Aligner. - 175 962 : output logic [63:0] ic_premux_data, // Premuxed data to be muxed with Icache data - 176 3842 : output logic ic_sel_premux_data, // Select premux data. + 173 596 : output logic [1:0] ic_fetch_val_f, // valid bytes for fetch. To the Aligner. + 174 44 : output logic [31:0] ic_data_f, // Data read from Icache or ICCM. To the Aligner. + 175 44 : output logic [63:0] ic_premux_data, // Premuxed data to be muxed with Icache data + 176 970 : output logic ic_sel_premux_data, // Select premux data. 177 : 178 : ///// Debug 179 0 : input el2_cache_debug_pkt_t dec_tlu_ic_diag_pkt , // Icache/tag debug read/write packet @@ -304,8 +304,8 @@ 200 : 201 : 202 : - 203 8669 : logic bus_ifu_wr_en ; - 204 8667 : logic bus_ifu_wr_en_ff ; + 203 1974 : logic bus_ifu_wr_en ; + 204 1972 : logic bus_ifu_wr_en_ff ; 205 0 : logic bus_ifu_wr_en_ff_q ; 206 0 : logic bus_ifu_wr_en_ff_wo_err ; 207 0 : logic [pt.ICACHE_NUM_WAYS-1:0] bus_ic_wr_en ; @@ -333,36 +333,36 @@ 229 0 : logic scnd_miss_index_match ; 230 : 231 : - 232 343 : logic ifc_dma_access_q_ok; + 232 68 : logic ifc_dma_access_q_ok; 233 0 : logic ifc_iccm_access_f ; 234 0 : logic ifc_region_acc_fault_f; 235 0 : logic ifc_region_acc_fault_final_f; 236 0 : logic [1:0] ifc_bus_acc_fault_f; - 237 4336 : logic ic_act_miss_f; + 237 988 : logic ic_act_miss_f; 238 0 : logic ic_miss_under_miss_f; - 239 220 : logic ic_ignore_2nd_miss_f; + 239 56 : logic ic_ignore_2nd_miss_f; 240 0 : logic ic_act_hit_f; - 241 4334 : logic miss_pending; + 241 986 : logic miss_pending; 242 2 : logic [31:1] imb_in , imb_ff ; 243 2 : logic [31:pt.ICACHE_BEAT_ADDR_HI+1] miss_addr_in , miss_addr ; - 244 670 : logic miss_wrap_f ; - 245 344 : logic flush_final_f; - 246 2469 : logic ifc_fetch_req_f; - 247 2154 : logic ifc_fetch_req_f_raw; - 248 4328 : logic fetch_req_f_qual ; - 249 2154 : logic ifc_fetch_req_qual_bf ; + 244 436 : logic miss_wrap_f ; + 245 68 : logic flush_final_f; + 246 724 : logic ifc_fetch_req_f; + 247 662 : logic ifc_fetch_req_f_raw; + 248 980 : logic fetch_req_f_qual ; + 249 662 : logic ifc_fetch_req_qual_bf ; 250 0 : logic [pt.ICACHE_NUM_WAYS-1:0] replace_way_mb_any; - 251 4332 : logic last_beat; - 252 6226 : logic reset_beat_cnt ; - 253 1913 : logic [pt.ICACHE_BEAT_ADDR_HI:3] ic_req_addr_bits_hi_3 ; - 254 3872 : logic [pt.ICACHE_BEAT_ADDR_HI:3] ic_wr_addr_bits_hi_3 ; + 251 984 : logic last_beat; + 252 1480 : logic reset_beat_cnt ; + 253 480 : logic [pt.ICACHE_BEAT_ADDR_HI:3] ic_req_addr_bits_hi_3 ; + 254 564 : logic [pt.ICACHE_BEAT_ADDR_HI:3] ic_wr_addr_bits_hi_3 ; 255 2 : logic [31:1] ifu_fetch_addr_int_f ; 256 2 : logic [31:1] ifu_ic_rw_int_addr ; - 257 4335 : logic crit_wd_byp_ok_ff ; - 258 4327 : logic ic_crit_wd_rdy_new_ff; - 259 504 : logic [79:0] ic_byp_data_only_pre_new; - 260 426 : logic [79:0] ic_byp_data_only_new; - 261 4328 : logic ic_byp_hit_f ; + 257 988 : logic crit_wd_byp_ok_ff ; + 258 978 : logic ic_crit_wd_rdy_new_ff; + 259 20 : logic [79:0] ic_byp_data_only_pre_new; + 260 16 : logic [79:0] ic_byp_data_only_new; + 261 980 : logic ic_byp_hit_f ; 262 2 : logic ic_valid ; 263 2 : logic ic_valid_ff; 264 0 : logic reset_all_tags; @@ -380,94 +380,94 @@ 276 : 277 0 : logic reset_ic_in ; 278 0 : logic reset_ic_ff ; - 279 341 : logic [pt.ICACHE_BEAT_ADDR_HI:1] vaddr_f ; + 279 212 : logic [pt.ICACHE_BEAT_ADDR_HI:1] vaddr_f ; 280 2 : logic [31:1] ifu_status_wr_addr; 281 0 : logic sel_mb_addr ; 282 0 : logic sel_mb_addr_ff ; 283 0 : logic sel_mb_status_addr ; - 284 962 : logic [63:0] ic_final_data; + 284 44 : logic [63:0] ic_final_data; 285 : 286 0 : logic [pt.ICACHE_STATUS_BITS-1:0] way_status_new_ff ; 287 0 : logic way_status_wr_en_ff ; 288 0 : logic [pt.ICACHE_TAG_DEPTH-1:0][pt.ICACHE_STATUS_BITS-1:0] way_status_out ; 289 0 : logic [1:0] ic_debug_way_enc; 290 : - 291 1120 : logic [pt.IFU_BUS_TAG-1:0] ifu_bus_rid_ff; + 291 446 : logic [pt.IFU_BUS_TAG-1:0] ifu_bus_rid_ff; 292 : - 293 2469 : logic fetch_req_icache_f; + 293 724 : logic fetch_req_icache_f; 294 0 : logic fetch_req_iccm_f; 295 0 : logic ic_iccm_hit_f; 296 2 : logic fetch_uncacheable_ff; 297 0 : logic way_status_wr_en; - 298 3842 : logic sel_byp_data; - 299 3844 : logic sel_ic_data; + 298 970 : logic sel_byp_data; + 299 972 : logic sel_ic_data; 300 0 : logic sel_iccm_data; 301 0 : logic ic_rd_parity_final_err; - 302 4336 : logic ic_act_miss_f_delayed; + 302 988 : logic ic_act_miss_f_delayed; 303 0 : logic bus_ifu_wr_data_error; 304 0 : logic bus_ifu_wr_data_error_ff; 305 0 : logic way_status_wr_en_w_debug; 306 0 : logic ic_debug_tag_val_rd_out; - 307 4336 : logic ifu_pmu_ic_miss_in; + 307 988 : logic ifu_pmu_ic_miss_in; 308 0 : logic ifu_pmu_ic_hit_in; 309 0 : logic ifu_pmu_bus_error_in; - 310 4336 : logic ifu_pmu_bus_trxn_in; + 310 988 : logic ifu_pmu_bus_trxn_in; 311 0 : logic ifu_pmu_bus_busy_in; 312 0 : logic ic_debug_ict_array_sel_in; 313 0 : logic ic_debug_ict_array_sel_ff; 314 0 : logic debug_data_clken; - 315 4332 : logic last_data_recieved_in ; - 316 4332 : logic last_data_recieved_ff ; + 315 984 : logic last_data_recieved_in ; + 316 984 : logic last_data_recieved_ff ; 317 : - 318 8669 : logic ifu_bus_rvalid ; - 319 8667 : logic ifu_bus_rvalid_ff ; - 320 8667 : logic ifu_bus_rvalid_unq_ff ; - 321 4336 : logic ifu_bus_arready_unq ; - 322 4335 : logic ifu_bus_arready_unq_ff ; - 323 4336 : logic ifu_bus_arvalid ; - 324 4336 : logic ifu_bus_arvalid_ff ; - 325 4336 : logic ifu_bus_arready ; - 326 4335 : logic ifu_bus_arready_ff ; - 327 576 : logic [63:0] ifu_bus_rdata_ff ; + 318 1974 : logic ifu_bus_rvalid ; + 319 1972 : logic ifu_bus_rvalid_ff ; + 320 1972 : logic ifu_bus_rvalid_unq_ff ; + 321 988 : logic ifu_bus_arready_unq ; + 322 988 : logic ifu_bus_arready_unq_ff ; + 323 988 : logic ifu_bus_arvalid ; + 324 988 : logic ifu_bus_arvalid_ff ; + 325 988 : logic ifu_bus_arready ; + 326 988 : logic ifu_bus_arready_ff ; + 327 16 : logic [63:0] ifu_bus_rdata_ff ; 328 0 : logic [1:0] ifu_bus_rresp_ff ; - 329 8669 : logic ifu_bus_rsp_valid ; + 329 1974 : logic ifu_bus_rsp_valid ; 330 2 : logic ifu_bus_rsp_ready ; - 331 1120 : logic [pt.IFU_BUS_TAG-1:0] ifu_bus_rsp_tag; - 332 576 : logic [63:0] ifu_bus_rsp_rdata; + 331 446 : logic [pt.IFU_BUS_TAG-1:0] ifu_bus_rsp_tag; + 332 16 : logic [63:0] ifu_bus_rsp_rdata; 333 0 : logic [1:0] ifu_bus_rsp_opc; 334 : - 335 860 : logic [pt.ICACHE_NUM_BEATS-1:0] write_fill_data; + 335 40 : logic [pt.ICACHE_NUM_BEATS-1:0] write_fill_data; 336 0 : logic [pt.ICACHE_NUM_BEATS-1:0] wr_data_c1_clk; - 337 859 : logic [pt.ICACHE_NUM_BEATS-1:0] ic_miss_buff_data_valid_in; - 338 859 : logic [pt.ICACHE_NUM_BEATS-1:0] ic_miss_buff_data_valid; + 337 38 : logic [pt.ICACHE_NUM_BEATS-1:0] ic_miss_buff_data_valid_in; + 338 38 : logic [pt.ICACHE_NUM_BEATS-1:0] ic_miss_buff_data_valid; 339 0 : logic [pt.ICACHE_NUM_BEATS-1:0] ic_miss_buff_data_error_in; 340 0 : logic [pt.ICACHE_NUM_BEATS-1:0] ic_miss_buff_data_error; - 341 341 : logic [pt.ICACHE_BEAT_ADDR_HI:1] byp_fetch_index; - 342 534 : logic [pt.ICACHE_BEAT_ADDR_HI:2] byp_fetch_index_0; + 341 212 : logic [pt.ICACHE_BEAT_ADDR_HI:1] byp_fetch_index; + 342 226 : logic [pt.ICACHE_BEAT_ADDR_HI:2] byp_fetch_index_0; 343 2 : logic [pt.ICACHE_BEAT_ADDR_HI:2] byp_fetch_index_1; - 344 330 : logic [pt.ICACHE_BEAT_ADDR_HI:3] byp_fetch_index_inc; - 345 330 : logic [pt.ICACHE_BEAT_ADDR_HI:2] byp_fetch_index_inc_0; + 344 14 : logic [pt.ICACHE_BEAT_ADDR_HI:3] byp_fetch_index_inc; + 345 14 : logic [pt.ICACHE_BEAT_ADDR_HI:2] byp_fetch_index_inc_0; 346 2 : logic [pt.ICACHE_BEAT_ADDR_HI:2] byp_fetch_index_inc_1; - 347 6145 : logic miss_buff_hit_unq_f ; + 347 1254 : logic miss_buff_hit_unq_f ; 348 0 : logic stream_hit_f ; 349 0 : logic stream_miss_f ; 350 0 : logic stream_eol_f ; - 351 4328 : logic crit_byp_hit_f ; - 352 1120 : logic [pt.IFU_BUS_TAG-1:0] other_tag ; + 351 980 : logic crit_byp_hit_f ; + 352 446 : logic [pt.IFU_BUS_TAG-1:0] other_tag ; 353 : logic [(2*pt.ICACHE_NUM_BEATS)-1:0] [31:0] ic_miss_buff_data; - 354 648 : logic [63:0] ic_miss_buff_half; + 354 24 : logic [63:0] ic_miss_buff_half; 355 0 : logic scnd_miss_req, scnd_miss_req_q; 356 0 : logic scnd_miss_req_in; 357 : 358 : 359 0 : logic [pt.ICCM_BITS-1:2] iccm_ecc_corr_index_ff; - 360 30 : logic [pt.ICCM_BITS-1:2] iccm_ecc_corr_index_in; + 360 4 : logic [pt.ICCM_BITS-1:2] iccm_ecc_corr_index_in; 361 0 : logic [38:0] iccm_ecc_corr_data_ff; 362 0 : logic iccm_ecc_write_status ; 363 0 : logic iccm_rd_ecc_single_err_ff ; 364 0 : logic iccm_error_start; // start the error fsm 365 0 : logic perr_state_en; - 366 9715 : logic miss_state_en; + 366 2390 : logic miss_state_en; 367 : 368 0 : logic busclk; 369 0 : logic busclk_force; @@ -475,46 +475,46 @@ 371 2 : logic bus_ifu_bus_clk_en_ff; 372 2 : logic bus_ifu_bus_clk_en ; 373 : - 374 4336 : logic ifc_bus_ic_req_ff_in; - 375 4336 : logic ifu_bus_cmd_valid ; - 376 4336 : logic ifu_bus_cmd_ready ; + 374 988 : logic ifc_bus_ic_req_ff_in; + 375 988 : logic ifu_bus_cmd_valid ; + 376 988 : logic ifu_bus_cmd_ready ; 377 : - 378 4335 : logic bus_inc_data_beat_cnt ; - 379 6226 : logic bus_reset_data_beat_cnt ; - 380 10563 : logic bus_hold_data_beat_cnt ; + 378 988 : logic bus_inc_data_beat_cnt ; + 379 1480 : logic bus_reset_data_beat_cnt ; + 380 2470 : logic bus_hold_data_beat_cnt ; 381 : - 382 4336 : logic bus_inc_cmd_beat_cnt ; + 382 988 : logic bus_inc_cmd_beat_cnt ; 383 0 : logic bus_reset_cmd_beat_cnt_0 ; - 384 4336 : logic bus_reset_cmd_beat_cnt_secondlast ; - 385 4338 : logic bus_hold_cmd_beat_cnt ; + 384 988 : logic bus_reset_cmd_beat_cnt_secondlast ; + 385 990 : logic bus_hold_cmd_beat_cnt ; 386 : 387 0 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_new_data_beat_count ; 388 0 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_data_beat_count ; 389 : - 390 4336 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_new_cmd_beat_count ; - 391 4336 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_cmd_beat_count ; + 390 988 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_new_cmd_beat_count ; + 391 988 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_cmd_beat_count ; 392 : 393 : - 394 1913 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_new_rd_addr_count; - 395 1913 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_rd_addr_count; + 394 480 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_new_rd_addr_count; + 395 480 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_rd_addr_count; 396 : 397 : - 398 4336 : logic bus_cmd_sent ; - 399 4333 : logic bus_last_data_beat ; + 398 988 : logic bus_cmd_sent ; + 399 986 : logic bus_last_data_beat ; 400 : 401 : 402 0 : logic [pt.ICACHE_NUM_WAYS-1:0] bus_wren ; 403 : 404 0 : logic [pt.ICACHE_NUM_WAYS-1:0] bus_wren_last ; 405 0 : logic [pt.ICACHE_NUM_WAYS-1:0] wren_reset_miss ; - 406 347 : logic ifc_dma_access_ok_d; - 407 346 : logic ifc_dma_access_ok_prev; + 406 72 : logic ifc_dma_access_ok_d; + 407 70 : logic ifc_dma_access_ok_prev; 408 : - 409 4336 : logic bus_cmd_req_in ; - 410 4336 : logic bus_cmd_req_hold ; + 409 988 : logic bus_cmd_req_in ; + 410 988 : logic bus_cmd_req_hold ; 411 : - 412 2118 : logic second_half_available ; - 413 2118 : logic write_ic_16_bytes ; + 412 496 : logic second_half_available ; + 413 496 : logic write_ic_16_bytes ; 414 : 415 0 : logic ifc_region_acc_fault_final_bf; 416 0 : logic ifc_region_acc_fault_memory_bf; @@ -523,21 +523,21 @@ 419 : 420 0 : logic iccm_correct_ecc; 421 0 : logic dma_sb_err_state, dma_sb_err_state_ff; - 422 2633 : logic two_byte_instr; + 422 742 : logic two_byte_instr; 423 : 424 : typedef enum logic [2:0] {IDLE=3'b000, CRIT_BYP_OK=3'b001, HIT_U_MISS=3'b010, MISS_WAIT=3'b011,CRIT_WRD_RDY=3'b100,SCND_MISS=3'b101,STREAM=3'b110 , STALL_SCND_MISS=3'b111} miss_state_t; - 425 6 : miss_state_t miss_state, miss_nxtstate; + 425 8 : miss_state_t miss_state, miss_nxtstate; 426 : 427 : typedef enum logic [1:0] {ERR_STOP_IDLE=2'b00, ERR_FETCH1=2'b01 , ERR_FETCH2=2'b10 , ERR_STOP_FETCH=2'b11} err_stop_state_t; 428 0 : err_stop_state_t err_stop_state, err_stop_nxtstate; 429 0 : logic err_stop_state_en ; 430 0 : logic err_stop_fetch ; 431 : - 432 4327 : logic ic_crit_wd_rdy; // Critical fetch is ready to be bypassed. + 432 978 : logic ic_crit_wd_rdy; // Critical fetch is ready to be bypassed. 433 : - 434 490 : logic ifu_bp_hit_taken_q_f; - 435 8669 : logic ifu_bus_rvalid_unq; - 436 4336 : logic bus_cmd_beat_en; + 434 176 : logic ifu_bp_hit_taken_q_f; + 435 1974 : logic ifu_bus_rvalid_unq; + 436 988 : logic bus_cmd_beat_en; 437 : 438 : 439 : // ---- Clock gating section ----- @@ -587,21 +587,21 @@ 483 2 : miss_nxtstate = IDLE; 484 2 : miss_state_en = 1'b0; 485 2 : case (miss_state) - 486 5502 : IDLE: begin : idle - 487 5502 : miss_nxtstate = (ic_act_miss_f & ~exu_flush_final) ? CRIT_BYP_OK : HIT_U_MISS ; - 488 5502 : miss_state_en = ic_act_miss_f & ~dec_tlu_force_halt ; + 486 3129 : IDLE: begin : idle + 487 3129 : miss_nxtstate = (ic_act_miss_f & ~exu_flush_final) ? CRIT_BYP_OK : HIT_U_MISS ; + 488 3129 : miss_state_en = ic_act_miss_f & ~dec_tlu_force_halt ; 489 : end - 490 16590 : CRIT_BYP_OK: begin : crit_byp_ok - 491 16590 : miss_nxtstate = (dec_tlu_force_halt ) ? IDLE : - 492 16590 : ( ic_byp_hit_f & (last_data_recieved_ff | (bus_ifu_wr_en_ff & last_beat)) & uncacheable_miss_ff) ? IDLE : - 493 16590 : ( ic_byp_hit_f & ~last_data_recieved_ff & uncacheable_miss_ff) ? MISS_WAIT : - 494 16590 : (~ic_byp_hit_f & ~exu_flush_final & (bus_ifu_wr_en_ff & last_beat) & uncacheable_miss_ff) ? CRIT_WRD_RDY : - 495 16590 : ( (bus_ifu_wr_en_ff & last_beat) & ~uncacheable_miss_ff) ? IDLE : - 496 16590 : ( ic_byp_hit_f & ~exu_flush_final & ~(bus_ifu_wr_en_ff & last_beat) & ~ifu_bp_hit_taken_q_f & ~uncacheable_miss_ff) ? STREAM : - 497 16590 : ( bus_ifu_wr_en_ff & ~exu_flush_final & ~(bus_ifu_wr_en_ff & last_beat) & ~ifu_bp_hit_taken_q_f & ~uncacheable_miss_ff) ? STREAM : - 498 16590 : (~ic_byp_hit_f & ~exu_flush_final & (bus_ifu_wr_en_ff & last_beat) & ~uncacheable_miss_ff) ? IDLE : - 499 16590 : ( (exu_flush_final | ifu_bp_hit_taken_q_f) & ~(bus_ifu_wr_en_ff & last_beat) ) ? HIT_U_MISS : IDLE; - 500 16590 : miss_state_en = dec_tlu_force_halt | exu_flush_final | ic_byp_hit_f | ifu_bp_hit_taken_q_f | (bus_ifu_wr_en_ff & last_beat) | (bus_ifu_wr_en_ff & ~uncacheable_miss_ff) ; + 490 9287 : CRIT_BYP_OK: begin : crit_byp_ok + 491 9287 : miss_nxtstate = (dec_tlu_force_halt ) ? IDLE : + 492 9287 : ( ic_byp_hit_f & (last_data_recieved_ff | (bus_ifu_wr_en_ff & last_beat)) & uncacheable_miss_ff) ? IDLE : + 493 9287 : ( ic_byp_hit_f & ~last_data_recieved_ff & uncacheable_miss_ff) ? MISS_WAIT : + 494 9287 : (~ic_byp_hit_f & ~exu_flush_final & (bus_ifu_wr_en_ff & last_beat) & uncacheable_miss_ff) ? CRIT_WRD_RDY : + 495 9287 : ( (bus_ifu_wr_en_ff & last_beat) & ~uncacheable_miss_ff) ? IDLE : + 496 9287 : ( ic_byp_hit_f & ~exu_flush_final & ~(bus_ifu_wr_en_ff & last_beat) & ~ifu_bp_hit_taken_q_f & ~uncacheable_miss_ff) ? STREAM : + 497 9287 : ( bus_ifu_wr_en_ff & ~exu_flush_final & ~(bus_ifu_wr_en_ff & last_beat) & ~ifu_bp_hit_taken_q_f & ~uncacheable_miss_ff) ? STREAM : + 498 9287 : (~ic_byp_hit_f & ~exu_flush_final & (bus_ifu_wr_en_ff & last_beat) & ~uncacheable_miss_ff) ? IDLE : + 499 9287 : ( (exu_flush_final | ifu_bp_hit_taken_q_f) & ~(bus_ifu_wr_en_ff & last_beat) ) ? HIT_U_MISS : IDLE; + 500 9287 : miss_state_en = dec_tlu_force_halt | exu_flush_final | ic_byp_hit_f | ifu_bp_hit_taken_q_f | (bus_ifu_wr_en_ff & last_beat) | (bus_ifu_wr_en_ff & ~uncacheable_miss_ff) ; 501 : end 502 0 : CRIT_WRD_RDY: begin : crit_wrd_rdy 503 0 : miss_nxtstate = IDLE ; @@ -611,24 +611,24 @@ 507 0 : miss_nxtstate = ((exu_flush_final | ifu_bp_hit_taken_q_f | stream_eol_f ) & ~(bus_ifu_wr_en_ff & last_beat) & ~dec_tlu_force_halt) ? HIT_U_MISS : IDLE ; 508 0 : miss_state_en = exu_flush_final | ifu_bp_hit_taken_q_f | stream_eol_f | (bus_ifu_wr_en_ff & last_beat) | dec_tlu_force_halt ; 509 : end - 510 6258 : MISS_WAIT: begin : miss_wait - 511 6258 : miss_nxtstate = (exu_flush_final & ~(bus_ifu_wr_en_ff & last_beat) & ~dec_tlu_force_halt) ? HIT_U_MISS : IDLE ; - 512 6258 : miss_state_en = exu_flush_final | (bus_ifu_wr_en_ff & last_beat) | dec_tlu_force_halt ; + 510 3596 : MISS_WAIT: begin : miss_wait + 511 3596 : miss_nxtstate = (exu_flush_final & ~(bus_ifu_wr_en_ff & last_beat) & ~dec_tlu_force_halt) ? HIT_U_MISS : IDLE ; + 512 3596 : miss_state_en = exu_flush_final | (bus_ifu_wr_en_ff & last_beat) | dec_tlu_force_halt ; 513 : end - 514 192 : HIT_U_MISS: begin : hit_u_miss - 515 192 : miss_nxtstate = ic_miss_under_miss_f & ~(bus_ifu_wr_en_ff & last_beat) & ~dec_tlu_force_halt ? SCND_MISS : - 516 192 : ic_ignore_2nd_miss_f & ~(bus_ifu_wr_en_ff & last_beat) & ~dec_tlu_force_halt ? STALL_SCND_MISS : IDLE ; - 517 192 : miss_state_en = (bus_ifu_wr_en_ff & last_beat) | ic_miss_under_miss_f | ic_ignore_2nd_miss_f | dec_tlu_force_halt; + 514 110 : HIT_U_MISS: begin : hit_u_miss + 515 110 : miss_nxtstate = ic_miss_under_miss_f & ~(bus_ifu_wr_en_ff & last_beat) & ~dec_tlu_force_halt ? SCND_MISS : + 516 110 : ic_ignore_2nd_miss_f & ~(bus_ifu_wr_en_ff & last_beat) & ~dec_tlu_force_halt ? STALL_SCND_MISS : IDLE ; + 517 110 : miss_state_en = (bus_ifu_wr_en_ff & last_beat) | ic_miss_under_miss_f | ic_ignore_2nd_miss_f | dec_tlu_force_halt; 518 : end 519 0 : SCND_MISS: begin : scnd_miss 520 0 : miss_nxtstate = dec_tlu_force_halt ? IDLE : 521 0 : exu_flush_final ? ((bus_ifu_wr_en_ff & last_beat) ? IDLE : HIT_U_MISS) : CRIT_BYP_OK; 522 0 : miss_state_en = (bus_ifu_wr_en_ff & last_beat) | exu_flush_final | dec_tlu_force_halt; 523 : end - 524 8 : STALL_SCND_MISS: begin : stall_scnd_miss - 525 8 : miss_nxtstate = dec_tlu_force_halt ? IDLE : - 526 8 : exu_flush_final ? ((bus_ifu_wr_en_ff & last_beat) ? IDLE : HIT_U_MISS) : IDLE; - 527 8 : miss_state_en = (bus_ifu_wr_en_ff & last_beat) | exu_flush_final | dec_tlu_force_halt; + 524 12 : STALL_SCND_MISS: begin : stall_scnd_miss + 525 12 : miss_nxtstate = dec_tlu_force_halt ? IDLE : + 526 12 : exu_flush_final ? ((bus_ifu_wr_en_ff & last_beat) ? IDLE : HIT_U_MISS) : IDLE; + 527 12 : miss_state_en = (bus_ifu_wr_en_ff & last_beat) | exu_flush_final | dec_tlu_force_halt; 528 : end 529 0 : default: begin : def_case 530 0 : miss_nxtstate = IDLE; @@ -638,7 +638,7 @@ 534 : end 535 : rvdffs #(($bits(miss_state_t))) miss_state_ff (.clk(active_clk), .din(miss_nxtstate), .dout({miss_state}), .en(miss_state_en), .*); 536 : - 537 4334 : logic sel_hold_imb ; + 537 986 : logic sel_hold_imb ; 538 : 539 : assign miss_pending = (miss_state != IDLE) ; 540 : assign crit_wd_byp_ok_ff = (miss_state == CRIT_BYP_OK) | ((miss_state == CRIT_WRD_RDY) & ~flush_final_f); @@ -902,7 +902,7 @@ 798 : ///////////////////////////////////////////////////////////////////////////////////// 799 : // Create full buffer... // 800 : ///////////////////////////////////////////////////////////////////////////////////// - 801 576 : logic [63:0] ic_miss_buff_data_in; + 801 16 : logic [63:0] ic_miss_buff_data_in; 802 : assign ic_miss_buff_data_in[63:0] = ifu_bus_rsp_rdata[63:0]; 803 : 804 : for (genvar i=0; i<pt.ICACHE_NUM_BEATS; i++) begin : wr_flop @@ -939,10 +939,10 @@ 835 : ///////////////////////////////////////////////////////////////////////////////////// 836 : // New bypass ready // 837 : ///////////////////////////////////////////////////////////////////////////////////// - 838 329 : logic [pt.ICACHE_BEAT_ADDR_HI:1] bypass_index; - 839 304 : logic [pt.ICACHE_BEAT_ADDR_HI:3] bypass_index_5_3_inc; - 840 4333 : logic bypass_data_ready_in; - 841 4328 : logic ic_crit_wd_rdy_new_in; + 838 212 : logic [pt.ICACHE_BEAT_ADDR_HI:1] bypass_index; + 839 10 : logic [pt.ICACHE_BEAT_ADDR_HI:3] bypass_index_5_3_inc; + 840 986 : logic bypass_data_ready_in; + 841 980 : logic ic_crit_wd_rdy_new_in; 842 : 843 : assign bypass_index[pt.ICACHE_BEAT_ADDR_HI:1] = imb_ff[pt.ICACHE_BEAT_ADDR_HI:1] ; 844 : assign bypass_index_5_3_inc[pt.ICACHE_BEAT_ADDR_HI:3] = bypass_index[pt.ICACHE_BEAT_ADDR_HI:3] + 1 ; @@ -1046,10 +1046,10 @@ 942 2 : perr_sb_write_status = 1'b0; 943 : 944 2 : case (perr_state) - 945 28550 : ERR_IDLE: begin : err_idle - 946 28550 : perr_nxtstate = iccm_dma_sb_error ? DMA_SB_ERR : (ic_error_start & ~exu_flush_final) ? IC_WFF : ECC_WFF; - 947 28550 : perr_state_en = (((iccm_error_start | ic_error_start) & ~dec_tlu_flush_lower_wb) | iccm_dma_sb_error) & ~dec_tlu_force_halt; - 948 28550 : perr_sb_write_status = perr_state_en; + 945 16134 : ERR_IDLE: begin : err_idle + 946 16134 : perr_nxtstate = iccm_dma_sb_error ? DMA_SB_ERR : (ic_error_start & ~exu_flush_final) ? IC_WFF : ECC_WFF; + 947 16134 : perr_state_en = (((iccm_error_start | ic_error_start) & ~dec_tlu_flush_lower_wb) | iccm_dma_sb_error) & ~dec_tlu_force_halt; + 948 16134 : perr_sb_write_status = perr_state_en; 949 : end 950 0 : IC_WFF: begin : icache_wff // All the I$ data and/or Tag errors ( parity/ECC ) will come to this state 951 0 : perr_nxtstate = ERR_IDLE; @@ -1091,9 +1091,9 @@ 987 2 : iccm_correction_state = 1'b0; 988 : 989 2 : case (err_stop_state) - 990 28550 : ERR_STOP_IDLE: begin : err_stop_idle - 991 28550 : err_stop_nxtstate = ERR_FETCH1; - 992 28550 : err_stop_state_en = dec_tlu_flush_err_wb & (perr_state == ECC_WFF) & ~dec_tlu_force_halt; + 990 16134 : ERR_STOP_IDLE: begin : err_stop_idle + 991 16134 : err_stop_nxtstate = ERR_FETCH1; + 992 16134 : err_stop_state_en = dec_tlu_flush_err_wb & (perr_state == ECC_WFF) & ~dec_tlu_force_halt; 993 : end 994 0 : ERR_FETCH1: begin : err_fetch1 // All the I$ data and/or Tag errors ( parity/ECC ) will come to this state 995 0 : err_stop_nxtstate = (dec_tlu_flush_lower_wb | dec_tlu_i0_commit_cmt | dec_tlu_force_halt) ? ERR_STOP_IDLE : ((ifu_fetch_val[1:0] == 2'b11) | (ifu_fetch_val[0] & two_byte_instr)) ? ERR_STOP_FETCH : ifu_fetch_val[0] ? ERR_FETCH2 : ERR_FETCH1; @@ -1469,7 +1469,7 @@ 1365 : ((miss_state == CRIT_BYP_OK) & miss_state_en & (miss_nxtstate == MISS_WAIT)) )) | 1366 : ( ifc_fetch_req_bf & exu_flush_final & ~ifc_fetch_uncacheable_bf & ~ifc_iccm_access_bf ) ; 1367 : - 1368 4517 : logic ic_real_rd_wp_unused; + 1368 1038 : logic ic_real_rd_wp_unused; 1369 : assign ic_real_rd_wp_unused = (ifc_fetch_req_bf & ~ifc_iccm_access_bf & ~ifc_region_acc_fault_final_bf & ~dec_tlu_fence_i_wb & ~stream_miss_f & ~ic_act_miss_f & 1370 : ~(((miss_state == STREAM) & ~miss_state_en) | 1371 : ((miss_state == CRIT_BYP_OK) & ~miss_state_en & ~(miss_nxtstate == MISS_WAIT)) | @@ -1547,8 +1547,8 @@ 1443 2 : always_comb begin : way_status_out_mux 1444 2 : way_status[pt.ICACHE_STATUS_BITS-1:0] = '0 ; 1445 2 : for (int j=0; j< pt.ICACHE_TAG_DEPTH; j++) begin : status_mux_loop - 1446 28550 : if (ifu_ic_rw_int_addr_ff[pt.ICACHE_INDEX_HI:pt.ICACHE_TAG_INDEX_LO] == (pt.ICACHE_TAG_LO-pt.ICACHE_TAG_INDEX_LO)'(j)) begin : mux_out - 1447 28550 : way_status[pt.ICACHE_STATUS_BITS-1:0] = way_status_out[j]; + 1446 16134 : if (ifu_ic_rw_int_addr_ff[pt.ICACHE_INDEX_HI:pt.ICACHE_TAG_INDEX_LO] == (pt.ICACHE_TAG_LO-pt.ICACHE_TAG_INDEX_LO)'(j)) begin : mux_out + 1447 16134 : way_status[pt.ICACHE_STATUS_BITS-1:0] = way_status_out[j]; 1448 : end 1449 : end 1450 : end @@ -1610,9 +1610,9 @@ 1506 2 : always_comb begin : tag_valid_out_mux 1507 2 : ic_tag_valid_unq[pt.ICACHE_NUM_WAYS-1:0] = '0; 1508 2 : for (int j=0; j< pt.ICACHE_TAG_DEPTH; j++) begin : tag_valid_loop - 1509 28550 : if (ifu_ic_rw_int_addr_ff[pt.ICACHE_INDEX_HI:pt.ICACHE_TAG_INDEX_LO] == (pt.ICACHE_TAG_LO-pt.ICACHE_TAG_INDEX_LO)'(j)) begin : valid_out - 1510 28550 : for ( int k=0; k<pt.ICACHE_NUM_WAYS; k++) begin - 1511 57100 : ic_tag_valid_unq[k] |= ic_tag_valid_out[k][j]; + 1509 16134 : if (ifu_ic_rw_int_addr_ff[pt.ICACHE_INDEX_HI:pt.ICACHE_TAG_INDEX_LO] == (pt.ICACHE_TAG_LO-pt.ICACHE_TAG_INDEX_LO)'(j)) begin : valid_out + 1510 16134 : for ( int k=0; k<pt.ICACHE_NUM_WAYS; k++) begin + 1511 32268 : ic_tag_valid_unq[k] |= ic_tag_valid_out[k][j]; 1512 : end 1513 : end 1514 : end diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lib.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lib.sv.html index 33633aa176a..ea1876eda05 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lib.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lib.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -136,8 +136,8 @@ 32 : #( 33 : `include "el2_param.vh" 34 : )( - 35 1800 : input logic [pt.BTB_INDEX3_HI:pt.BTB_INDEX1_LO] pc, - 36 1800 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] hash + 35 48 : input logic [pt.BTB_INDEX3_HI:pt.BTB_INDEX1_LO] pc, + 36 48 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] hash 37 : ); 38 : 39 : @@ -158,9 +158,9 @@ 54 : #( 55 : `include "el2_param.vh" 56 : )( - 57 240 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] hashin, - 58 572 : input logic [pt.BHT_GHR_SIZE-1:0] ghr, - 59 560 : output logic [pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] hash + 57 16 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] hashin, + 58 26 : input logic [pt.BHT_GHR_SIZE-1:0] ghr, + 59 42 : output logic [pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] hash 60 : ); 61 : 62 : // The hash function is too complex to write in verilog for all cases. diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu.sv.html index efdb6f9b8c3..c7533808998 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -147,12 +147,12 @@ 43 0 : input logic dec_tlu_sideeffect_posted_disable, // disable the posted sideeffect load store to the bus 44 0 : input logic dec_tlu_core_ecc_disable, // disable the generation of the ecc 45 : - 46 140 : input logic [31:0] exu_lsu_rs1_d, // address rs operand - 47 6 : input logic [31:0] exu_lsu_rs2_d, // store data - 48 52 : input logic [11:0] dec_lsu_offset_d, // address offset operand + 46 240 : input logic [31:0] exu_lsu_rs1_d, // address rs operand + 47 0 : input logic [31:0] exu_lsu_rs2_d, // store data + 48 0 : input logic [11:0] dec_lsu_offset_d, // address offset operand 49 : - 50 402 : input el2_lsu_pkt_t lsu_p, // lsu control packet - 51 1420 : input logic dec_lsu_valid_raw_d, // Raw valid for address computation + 50 24 : input el2_lsu_pkt_t lsu_p, // lsu control packet + 51 460 : input logic dec_lsu_valid_raw_d, // Raw valid for address computation 52 0 : input logic [31:0] dec_tlu_mrac_ff, // CSR for memory region control 53 : 54 0 : output logic [31:0] lsu_result_m, // lsu load data @@ -160,8 +160,8 @@ 56 0 : output logic lsu_load_stall_any, // This is for blocking loads in the decode 57 0 : output logic lsu_store_stall_any, // This is for blocking stores in the decode 58 0 : output logic lsu_fastint_stall_any, // Stall the fastint in decode-1 stage - 59 969 : output logic lsu_idle_any, // lsu buffers are empty and no instruction in the pipeline. Doesn't include DMA - 60 967 : output logic lsu_active, // Used to turn off top level clk + 59 236 : output logic lsu_idle_any, // lsu buffers are empty and no instruction in the pipeline. Doesn't include DMA + 60 234 : output logic lsu_active, // Used to turn off top level clk 61 : 62 0 : output logic [31:1] lsu_fir_addr, // fast interrupt address 63 0 : output logic [1:0] lsu_fir_error, // Error during fast interrupt lookup @@ -170,22 +170,22 @@ 66 0 : output el2_lsu_error_pkt_t lsu_error_pkt_r, // lsu exception packet 67 0 : output logic lsu_imprecise_error_load_any, // bus load imprecise error 68 0 : output logic lsu_imprecise_error_store_any, // bus store imprecise error - 69 111 : output logic [31:0] lsu_imprecise_error_addr_any, // bus store imprecise error address + 69 220 : output logic [31:0] lsu_imprecise_error_addr_any, // bus store imprecise error address 70 : 71 : // Non-blocking loads - 72 660 : output logic lsu_nonblock_load_valid_m, // there is an external load -> put in the cam - 73 202 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_tag_m, // the tag of the external non block load + 72 228 : output logic lsu_nonblock_load_valid_m, // there is an external load -> put in the cam + 73 20 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_tag_m, // the tag of the external non block load 74 0 : output logic lsu_nonblock_load_inv_r, // invalidate signal for the cam entry for non block loads - 75 202 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_inv_tag_r, // tag of the enrty which needs to be invalidated - 76 718 : output logic lsu_nonblock_load_data_valid, // the non block is valid - sending information back to the cam + 75 20 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_inv_tag_r, // tag of the enrty which needs to be invalidated + 76 232 : output logic lsu_nonblock_load_data_valid, // the non block is valid - sending information back to the cam 77 0 : output logic lsu_nonblock_load_data_error, // non block load has an error - 78 36 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_data_tag, // the tag of the non block load sending the data/error - 79 14 : output logic [31:0] lsu_nonblock_load_data, // Data of the non block load + 78 0 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_data_tag, // the tag of the non block load sending the data/error + 79 0 : output logic [31:0] lsu_nonblock_load_data, // Data of the non block load 80 : - 81 660 : output logic lsu_pmu_load_external_m, // PMU : Bus loads - 82 760 : output logic lsu_pmu_store_external_m, // PMU : Bus loads + 81 228 : output logic lsu_pmu_load_external_m, // PMU : Bus loads + 82 232 : output logic lsu_pmu_store_external_m, // PMU : Bus loads 83 0 : output logic lsu_pmu_misaligned_m, // PMU : misaligned - 84 1548 : output logic lsu_pmu_bus_trxn, // PMU : bus transaction + 84 468 : output logic lsu_pmu_bus_trxn, // PMU : bus transaction 85 0 : output logic lsu_pmu_bus_misaligned, // PMU : misaligned access going to the bus 86 0 : output logic lsu_pmu_bus_error, // PMU : bus sending error back 87 0 : output logic lsu_pmu_bus_busy, // PMU : bus is not ready @@ -199,8 +199,8 @@ 95 0 : output logic dccm_rden, // DCCM read enable 96 0 : output logic [pt.DCCM_BITS-1:0] dccm_wr_addr_lo, // DCCM write address low bank 97 0 : output logic [pt.DCCM_BITS-1:0] dccm_wr_addr_hi, // DCCM write address hi bank - 98 140 : output logic [pt.DCCM_BITS-1:0] dccm_rd_addr_lo, // DCCM read address low bank - 99 140 : output logic [pt.DCCM_BITS-1:0] dccm_rd_addr_hi, // DCCM read address hi bank (hi and low same if aligned read) + 98 240 : output logic [pt.DCCM_BITS-1:0] dccm_rd_addr_lo, // DCCM read address low bank + 99 240 : output logic [pt.DCCM_BITS-1:0] dccm_rd_addr_hi, // DCCM read address hi bank (hi and low same if aligned read) 100 0 : output logic [pt.DCCM_FDATA_WIDTH-1:0] dccm_wr_data_lo, // DCCM write data for lo bank 101 0 : output logic [pt.DCCM_FDATA_WIDTH-1:0] dccm_wr_data_hi, // DCCM write data for hi bank 102 : @@ -211,16 +211,16 @@ 107 0 : output logic picm_wren, // PIC memory write enable 108 0 : output logic picm_rden, // PIC memory read enable 109 0 : output logic picm_mken, // Need to read the mask for stores to determine which bits to write/forward - 110 121 : output logic [31:0] picm_rdaddr, // address for pic read access - 111 121 : output logic [31:0] picm_wraddr, // address for pic write access - 112 6 : output logic [31:0] picm_wr_data, // PIC memory write data - 113 0 : input logic [31:0] picm_rd_data, // PIC memory read/mask data + 110 240 : output logic [31:0] picm_rdaddr, // address for pic read access + 111 240 : output logic [31:0] picm_wraddr, // address for pic write access + 112 0 : output logic [31:0] picm_wr_data, // PIC memory write data + 113 0 : input logic [31:0] picm_rd_data, // PIC memory read/mask data 114 : 115 : // AXI Write Channels - 116 888 : output logic lsu_axi_awvalid, - 117 1549 : input logic lsu_axi_awready, + 116 240 : output logic lsu_axi_awvalid, + 117 468 : input logic lsu_axi_awready, 118 0 : output logic [pt.LSU_BUS_TAG-1:0] lsu_axi_awid, - 119 111 : output logic [31:0] lsu_axi_awaddr, + 119 220 : output logic [31:0] lsu_axi_awaddr, 120 2 : output logic [3:0] lsu_axi_awregion, 121 0 : output logic [7:0] lsu_axi_awlen, 122 0 : output logic [2:0] lsu_axi_awsize, @@ -230,22 +230,22 @@ 126 0 : output logic [2:0] lsu_axi_awprot, 127 0 : output logic [3:0] lsu_axi_awqos, 128 : - 129 888 : output logic lsu_axi_wvalid, - 130 1549 : input logic lsu_axi_wready, + 129 240 : output logic lsu_axi_wvalid, + 130 468 : input logic lsu_axi_wready, 131 0 : output logic [63:0] lsu_axi_wdata, - 132 148 : output logic [7:0] lsu_axi_wstrb, + 132 8 : output logic [7:0] lsu_axi_wstrb, 133 2 : output logic lsu_axi_wlast, 134 : - 135 886 : input logic lsu_axi_bvalid, + 135 236 : input logic lsu_axi_bvalid, 136 2 : output logic lsu_axi_bready, 137 0 : input logic [1:0] lsu_axi_bresp, 138 0 : input logic [pt.LSU_BUS_TAG-1:0] lsu_axi_bid, 139 : 140 : // AXI Read Channels - 141 660 : output logic lsu_axi_arvalid, - 142 1549 : input logic lsu_axi_arready, + 141 228 : output logic lsu_axi_arvalid, + 142 468 : input logic lsu_axi_arready, 143 0 : output logic [pt.LSU_BUS_TAG-1:0] lsu_axi_arid, - 144 111 : output logic [31:0] lsu_axi_araddr, + 144 220 : output logic [31:0] lsu_axi_araddr, 145 2 : output logic [3:0] lsu_axi_arregion, 146 0 : output logic [7:0] lsu_axi_arlen, 147 0 : output logic [2:0] lsu_axi_arsize, @@ -255,10 +255,10 @@ 151 0 : output logic [2:0] lsu_axi_arprot, 152 0 : output logic [3:0] lsu_axi_arqos, 153 : - 154 718 : input logic lsu_axi_rvalid, + 154 232 : input logic lsu_axi_rvalid, 155 2 : output logic lsu_axi_rready, 156 0 : input logic [pt.LSU_BUS_TAG-1:0] lsu_axi_rid, - 157 34 : input logic [63:0] lsu_axi_rdata, + 157 8 : input logic [63:0] lsu_axi_rdata, 158 0 : input logic [1:0] lsu_axi_rresp, 159 2 : input logic lsu_axi_rlast, 160 : @@ -276,33 +276,33 @@ 172 0 : output logic dccm_dma_ecc_error, // DMA load had ecc error 173 0 : output logic [2:0] dccm_dma_rtag, // DMA request tag 174 0 : output logic [63:0] dccm_dma_rdata, // lsu data for DMA dccm read - 175 1422 : output logic dccm_ready, // lsu ready for DMA access + 175 462 : output logic dccm_ready, // lsu ready for DMA access 176 : 177 : // DCCM ECC status 178 0 : output logic lsu_dccm_rd_ecc_single_err, 179 0 : output logic lsu_dccm_rd_ecc_double_err, 180 : 181 0 : input logic scan_mode, // scan mode - 182 66208 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 183 66208 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 182 14760 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 183 14760 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. 184 2 : input logic rst_l, // reset, active low 185 : - 186 140 : output logic [31:0] lsu_pmp_addr_start, - 187 140 : output logic [31:0] lsu_pmp_addr_end, - 188 190 : input logic lsu_pmp_error_start, - 189 190 : input logic lsu_pmp_error_end, - 190 760 : output logic lsu_pmp_we, - 191 660 : output logic lsu_pmp_re + 186 240 : output logic [31:0] lsu_pmp_addr_start, + 187 240 : output logic [31:0] lsu_pmp_addr_end, + 188 0 : input logic lsu_pmp_error_start, + 189 0 : input logic lsu_pmp_error_end, + 190 232 : output logic lsu_pmp_we, + 191 228 : output logic lsu_pmp_re 192 : 193 : ); 194 : 195 0 : logic lsu_dccm_rden_m; 196 0 : logic lsu_dccm_rden_r; - 197 6 : logic [31:0] store_data_m; - 198 6 : logic [31:0] store_data_r; - 199 6 : logic [31:0] store_data_hi_r, store_data_lo_r; - 200 6 : logic [31:0] store_datafn_hi_r, store_datafn_lo_r; - 201 0 : logic [31:0] sec_data_lo_m, sec_data_hi_m; + 197 0 : logic [31:0] store_data_m; + 198 0 : logic [31:0] store_data_r; + 199 0 : logic [31:0] store_data_hi_r, store_data_lo_r; + 200 0 : logic [31:0] store_datafn_hi_r, store_datafn_lo_r; + 201 0 : logic [31:0] sec_data_lo_m, sec_data_hi_m; 202 0 : logic [31:0] sec_data_lo_r, sec_data_hi_r; 203 : 204 0 : logic [31:0] lsu_ld_data_m; @@ -324,12 +324,12 @@ 220 : 221 0 : logic [31:0] picm_mask_data_m; 222 : - 223 140 : logic [31:0] lsu_addr_d, lsu_addr_m, lsu_addr_r; - 224 140 : logic [31:0] end_addr_d, end_addr_m, end_addr_r; + 223 240 : logic [31:0] lsu_addr_d, lsu_addr_m, lsu_addr_r; + 224 240 : logic [31:0] end_addr_d, end_addr_m, end_addr_r; 225 : assign lsu_pmp_addr_start = lsu_addr_d; 226 : assign lsu_pmp_addr_end = end_addr_d; 227 : - 228 394 : el2_lsu_pkt_t lsu_pkt_d, lsu_pkt_m, lsu_pkt_r; + 228 24 : el2_lsu_pkt_t lsu_pkt_d, lsu_pkt_m, lsu_pkt_r; 229 0 : logic lsu_i0_valid_d, lsu_i0_valid_m, lsu_i0_valid_r; 230 : assign lsu_pmp_we = lsu_pkt_d.store & lsu_pkt_d.valid; 231 : assign lsu_pmp_re = lsu_pkt_d.load & lsu_pkt_d.valid; @@ -338,7 +338,7 @@ 234 0 : logic store_stbuf_reqvld_r; 235 0 : logic ldst_stbuf_reqvld_r; 236 : - 237 1420 : logic lsu_commit_r; + 237 460 : logic lsu_commit_r; 238 0 : logic lsu_exc_m; 239 : 240 0 : logic addr_in_dccm_d, addr_in_dccm_m, addr_in_dccm_r; @@ -365,11 +365,11 @@ 261 0 : logic lsu_stbuf_full_any; 262 : 263 : // Bus signals - 264 1420 : logic lsu_busreq_r; - 265 840 : logic lsu_bus_buffer_pend_any; - 266 1281 : logic lsu_bus_buffer_empty_any; + 264 460 : logic lsu_busreq_r; + 265 232 : logic lsu_bus_buffer_pend_any; + 266 456 : logic lsu_bus_buffer_empty_any; 267 0 : logic lsu_bus_buffer_full_any; - 268 1420 : logic lsu_busreq_m; + 268 460 : logic lsu_busreq_m; 269 0 : logic [31:0] bus_read_data_m; 270 : 271 0 : logic flush_m_up, flush_r; @@ -381,16 +381,16 @@ 277 0 : logic [pt.DCCM_ECC_WIDTH-1:0] dma_dccm_wdata_ecc_lo, dma_dccm_wdata_ecc_hi; 278 : 279 : // Clocks - 280 1009 : logic lsu_busm_clken; - 281 2180 : logic lsu_bus_obuf_c1_clken; - 282 66208 : logic lsu_c1_m_clk, lsu_c1_r_clk; - 283 66208 : logic lsu_c2_m_clk, lsu_c2_r_clk; - 284 66208 : logic lsu_store_c1_m_clk, lsu_store_c1_r_clk; + 280 234 : logic lsu_busm_clken; + 281 692 : logic lsu_bus_obuf_c1_clken; + 282 14760 : logic lsu_c1_m_clk, lsu_c1_r_clk; + 283 14760 : logic lsu_c2_m_clk, lsu_c2_r_clk; + 284 14760 : logic lsu_store_c1_m_clk, lsu_store_c1_r_clk; 285 : - 286 66208 : logic lsu_stbuf_c1_clk; - 287 66208 : logic lsu_bus_ibuf_c1_clk, lsu_bus_obuf_c1_clk, lsu_bus_buf_c1_clk; + 286 14760 : logic lsu_stbuf_c1_clk; + 287 14760 : logic lsu_bus_ibuf_c1_clk, lsu_bus_obuf_c1_clk, lsu_bus_buf_c1_clk; 288 0 : logic lsu_busm_clk; - 289 66208 : logic lsu_free_c2_clk; + 289 14760 : logic lsu_free_c2_clk; 290 : 291 0 : logic lsu_raw_fwd_lo_m, lsu_raw_fwd_hi_m; 292 0 : logic lsu_raw_fwd_lo_r, lsu_raw_fwd_hi_r; diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_addrcheck.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_addrcheck.sv.html index a3acdcdb690..fabbb02a898 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_addrcheck.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_addrcheck.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -131,16 +131,16 @@ 27 : #( 28 : `include "el2_param.vh" 29 : )( - 30 66208 : input logic lsu_c2_m_clk, // clock + 30 14760 : input logic lsu_c2_m_clk, // clock 31 2 : input logic rst_l, // reset 32 : - 33 140 : input logic [31:0] start_addr_d, // start address for lsu - 34 140 : input logic [31:0] end_addr_d, // end address for lsu - 35 394 : input el2_lsu_pkt_t lsu_pkt_d, // packet in d + 33 240 : input logic [31:0] start_addr_d, // start address for lsu + 34 240 : input logic [31:0] end_addr_d, // end address for lsu + 35 24 : input el2_lsu_pkt_t lsu_pkt_d, // packet in d 36 0 : input logic [31:0] dec_tlu_mrac_ff, // CSR read - 37 476 : input logic [3:0] rs1_region_d, // address rs operand [31:28] + 37 220 : input logic [3:0] rs1_region_d, // address rs operand [31:28] 38 : - 39 140 : input logic [31:0] rs1_d, // address rs operand + 39 240 : input logic [31:0] rs1_d, // address rs operand 40 : 41 0 : output logic is_sideeffects_m, // is sideffects space 42 0 : output logic addr_in_dccm_d, // address in dccm @@ -154,10 +154,10 @@ 50 0 : output logic fir_dccm_access_error_d, // Fast interrupt dccm access error 51 0 : output logic fir_nondccm_access_error_d,// Fast interrupt dccm access error 52 : - 53 190 : input logic lsu_pmp_error_start, - 54 190 : input logic lsu_pmp_error_end, + 53 0 : input logic lsu_pmp_error_start, + 54 0 : input logic lsu_pmp_error_end, 55 : - 56 0 : input logic scan_mode // Scan mode + 56 0 : input logic scan_mode // Scan mode 57 : ); 58 : 59 : @@ -167,7 +167,7 @@ 63 0 : logic start_addr_in_dccm_region_d, end_addr_in_dccm_region_d; 64 0 : logic start_addr_in_pic_d, end_addr_in_pic_d; 65 0 : logic start_addr_in_pic_region_d, end_addr_in_pic_region_d; - 66 476 : logic [4:0] csr_idx; + 66 220 : logic [4:0] csr_idx; 67 0 : logic addr_in_iccm; 68 0 : logic start_addr_dccm_or_pic; 69 0 : logic base_reg_dccm_or_pic; diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_bus_buffer.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_bus_buffer.sv.html index 64c09e672d6..4443c10dc5e 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_bus_buffer.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_bus_buffer.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -132,7 +132,7 @@ 28 : #( 29 : `include "el2_param.vh" 30 : )( - 31 66208 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 31 14760 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. 32 0 : input logic clk_override, // Override non-functional clock gating 33 2 : input logic rst_l, // reset, active low 34 0 : input logic scan_mode, // scan mode @@ -142,34 +142,34 @@ 38 0 : input logic dec_tlu_force_halt, 39 : 40 : // various clocks needed for the bus reads and writes - 41 2180 : input logic lsu_bus_obuf_c1_clken, - 42 1009 : input logic lsu_busm_clken, - 43 66208 : input logic lsu_c2_r_clk, - 44 66208 : input logic lsu_bus_ibuf_c1_clk, + 41 692 : input logic lsu_bus_obuf_c1_clken, + 42 234 : input logic lsu_busm_clken, + 43 14760 : input logic lsu_c2_r_clk, + 44 14760 : input logic lsu_bus_ibuf_c1_clk, 45 0 : input logic lsu_bus_obuf_c1_clk, - 46 66208 : input logic lsu_bus_buf_c1_clk, - 47 66208 : input logic lsu_free_c2_clk, + 46 14760 : input logic lsu_bus_buf_c1_clk, + 47 14760 : input logic lsu_free_c2_clk, 48 0 : input logic lsu_busm_clk, 49 : 50 : - 51 1420 : input logic dec_lsu_valid_raw_d, // Raw valid for address computation - 52 394 : input el2_lsu_pkt_t lsu_pkt_m, // lsu packet flowing down the pipe - 53 394 : input el2_lsu_pkt_t lsu_pkt_r, // lsu packet flowing down the pipe + 51 460 : input logic dec_lsu_valid_raw_d, // Raw valid for address computation + 52 24 : input el2_lsu_pkt_t lsu_pkt_m, // lsu packet flowing down the pipe + 53 24 : input el2_lsu_pkt_t lsu_pkt_r, // lsu packet flowing down the pipe 54 : - 55 140 : input logic [31:0] lsu_addr_m, // lsu address flowing down the pipe - 56 140 : input logic [31:0] end_addr_m, // lsu address flowing down the pipe - 57 140 : input logic [31:0] lsu_addr_r, // lsu address flowing down the pipe - 58 140 : input logic [31:0] end_addr_r, // lsu address flowing down the pipe - 59 6 : input logic [31:0] store_data_r, // store data flowing down the pipe + 55 240 : input logic [31:0] lsu_addr_m, // lsu address flowing down the pipe + 56 240 : input logic [31:0] end_addr_m, // lsu address flowing down the pipe + 57 240 : input logic [31:0] lsu_addr_r, // lsu address flowing down the pipe + 58 240 : input logic [31:0] end_addr_r, // lsu address flowing down the pipe + 59 0 : input logic [31:0] store_data_r, // store data flowing down the pipe 60 : - 61 198 : input logic no_word_merge_r, // r store doesn't need to wait in ibuf since it will not coalesce - 62 118 : input logic no_dword_merge_r, // r store doesn't need to wait in ibuf since it will not coalesce - 63 1420 : input logic lsu_busreq_m, // bus request is in m - 64 1420 : output logic lsu_busreq_r, // bus request is in r + 61 16 : input logic no_word_merge_r, // r store doesn't need to wait in ibuf since it will not coalesce + 62 16 : input logic no_dword_merge_r, // r store doesn't need to wait in ibuf since it will not coalesce + 63 460 : input logic lsu_busreq_m, // bus request is in m + 64 460 : output logic lsu_busreq_r, // bus request is in r 65 0 : input logic ld_full_hit_m, // load can get all its byte from a write buffer entry 66 4 : input logic flush_m_up, // flush 67 0 : input logic flush_r, // flush - 68 1420 : input logic lsu_commit_r, // lsu instruction in r commits + 68 460 : input logic lsu_commit_r, // lsu instruction in r commits 69 0 : input logic is_sideeffects_r, // lsu attribute is side_effects 70 0 : input logic ldst_dual_d, // load/store is unaligned at 32 bit boundary 71 0 : input logic ldst_dual_m, // load/store is unaligned at 32 bit boundary @@ -177,38 +177,38 @@ 73 : 74 0 : input logic [7:0] ldst_byteen_ext_m, // HI and LO signals 75 : - 76 840 : output logic lsu_bus_buffer_pend_any, // bus buffer has a pending bus entry + 76 232 : output logic lsu_bus_buffer_pend_any, // bus buffer has a pending bus entry 77 0 : output logic lsu_bus_buffer_full_any, // bus buffer is full - 78 1281 : output logic lsu_bus_buffer_empty_any, // bus buffer is empty + 78 456 : output logic lsu_bus_buffer_empty_any, // bus buffer is empty 79 : 80 0 : output logic [3:0] ld_byte_hit_buf_lo, ld_byte_hit_buf_hi, // Byte enables for forwarding data 81 0 : output logic [31:0] ld_fwddata_buf_lo, ld_fwddata_buf_hi, // load forwarding data 82 : 83 0 : output logic lsu_imprecise_error_load_any, // imprecise load bus error 84 0 : output logic lsu_imprecise_error_store_any, // imprecise store bus error - 85 111 : output logic [31:0] lsu_imprecise_error_addr_any, // address of the imprecise error + 85 220 : output logic [31:0] lsu_imprecise_error_addr_any, // address of the imprecise error 86 : 87 : // Non-blocking loads - 88 660 : output logic lsu_nonblock_load_valid_m, // there is an external load -> put in the cam - 89 202 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_tag_m, // the tag of the external non block load + 88 228 : output logic lsu_nonblock_load_valid_m, // there is an external load -> put in the cam + 89 20 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_tag_m, // the tag of the external non block load 90 0 : output logic lsu_nonblock_load_inv_r, // invalidate signal for the cam entry for non block loads - 91 202 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_inv_tag_r, // tag of the enrty which needs to be invalidated - 92 718 : output logic lsu_nonblock_load_data_valid, // the non block is valid - sending information back to the cam + 91 20 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_inv_tag_r, // tag of the enrty which needs to be invalidated + 92 232 : output logic lsu_nonblock_load_data_valid, // the non block is valid - sending information back to the cam 93 0 : output logic lsu_nonblock_load_data_error, // non block load has an error - 94 36 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_data_tag, // the tag of the non block load sending the data/error - 95 14 : output logic [31:0] lsu_nonblock_load_data, // Data of the non block load + 94 0 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_data_tag, // the tag of the non block load sending the data/error + 95 0 : output logic [31:0] lsu_nonblock_load_data, // Data of the non block load 96 : 97 : // PMU events - 98 1548 : output logic lsu_pmu_bus_trxn, + 98 468 : output logic lsu_pmu_bus_trxn, 99 0 : output logic lsu_pmu_bus_misaligned, 100 0 : output logic lsu_pmu_bus_error, 101 0 : output logic lsu_pmu_bus_busy, 102 : 103 : // AXI Write Channels - 104 888 : output logic lsu_axi_awvalid, - 105 1549 : input logic lsu_axi_awready, + 104 240 : output logic lsu_axi_awvalid, + 105 468 : input logic lsu_axi_awready, 106 0 : output logic [pt.LSU_BUS_TAG-1:0] lsu_axi_awid, - 107 111 : output logic [31:0] lsu_axi_awaddr, + 107 220 : output logic [31:0] lsu_axi_awaddr, 108 2 : output logic [3:0] lsu_axi_awregion, 109 0 : output logic [7:0] lsu_axi_awlen, 110 0 : output logic [2:0] lsu_axi_awsize, @@ -218,22 +218,22 @@ 114 0 : output logic [2:0] lsu_axi_awprot, 115 0 : output logic [3:0] lsu_axi_awqos, 116 : - 117 888 : output logic lsu_axi_wvalid, - 118 1549 : input logic lsu_axi_wready, + 117 240 : output logic lsu_axi_wvalid, + 118 468 : input logic lsu_axi_wready, 119 0 : output logic [63:0] lsu_axi_wdata, - 120 148 : output logic [7:0] lsu_axi_wstrb, + 120 8 : output logic [7:0] lsu_axi_wstrb, 121 2 : output logic lsu_axi_wlast, 122 : - 123 886 : input logic lsu_axi_bvalid, + 123 236 : input logic lsu_axi_bvalid, 124 2 : output logic lsu_axi_bready, 125 0 : input logic [1:0] lsu_axi_bresp, 126 0 : input logic [pt.LSU_BUS_TAG-1:0] lsu_axi_bid, 127 : 128 : // AXI Read Channels - 129 660 : output logic lsu_axi_arvalid, - 130 1549 : input logic lsu_axi_arready, + 129 228 : output logic lsu_axi_arvalid, + 130 468 : input logic lsu_axi_arready, 131 0 : output logic [pt.LSU_BUS_TAG-1:0] lsu_axi_arid, - 132 111 : output logic [31:0] lsu_axi_araddr, + 132 220 : output logic [31:0] lsu_axi_araddr, 133 2 : output logic [3:0] lsu_axi_arregion, 134 0 : output logic [7:0] lsu_axi_arlen, 135 0 : output logic [2:0] lsu_axi_arsize, @@ -243,10 +243,10 @@ 139 0 : output logic [2:0] lsu_axi_arprot, 140 0 : output logic [3:0] lsu_axi_arqos, 141 : - 142 718 : input logic lsu_axi_rvalid, + 142 232 : input logic lsu_axi_rvalid, 143 2 : output logic lsu_axi_rready, 144 0 : input logic [pt.LSU_BUS_TAG-1:0] lsu_axi_rid, - 145 34 : input logic [63:0] lsu_axi_rdata, + 145 8 : input logic [63:0] lsu_axi_rdata, 146 0 : input logic [1:0] lsu_axi_rresp, 147 : 148 2 : input logic lsu_bus_clk_en, @@ -264,7 +264,7 @@ 160 : localparam TIMER_MAX = TIMER - 1; // Maximum value of timer 161 : localparam TIMER_LOG2 = (TIMER < 2) ? 1 : $clog2(TIMER); 162 : - 163 325 : logic [3:0] ldst_byteen_hi_m, ldst_byteen_lo_m; + 163 76 : logic [3:0] ldst_byteen_hi_m, ldst_byteen_lo_m; 164 0 : logic [DEPTH-1:0] ld_addr_hitvec_lo, ld_addr_hitvec_hi; 165 0 : logic [3:0][DEPTH-1:0] ld_byte_hitvec_lo, ld_byte_hitvec_hi; 166 0 : logic [3:0][DEPTH-1:0] ld_byte_hitvecfn_lo, ld_byte_hitvecfn_hi; @@ -273,37 +273,37 @@ 169 0 : logic [3:0] ld_byte_ibuf_hit_lo, ld_byte_ibuf_hit_hi; 170 : 171 2 : logic [3:0] ldst_byteen_r; - 172 325 : logic [3:0] ldst_byteen_hi_r, ldst_byteen_lo_r; - 173 6 : logic [31:0] store_data_hi_r, store_data_lo_r; - 174 2 : logic is_aligned_r; // Aligned load/store + 172 76 : logic [3:0] ldst_byteen_hi_r, ldst_byteen_lo_r; + 173 0 : logic [31:0] store_data_hi_r, store_data_lo_r; + 174 2 : logic is_aligned_r; // Aligned load/store 175 2 : logic ldst_samedw_r; 176 : - 177 660 : logic lsu_nonblock_load_valid_r; - 178 48 : logic [31:0] lsu_nonblock_load_data_hi, lsu_nonblock_load_data_lo, lsu_nonblock_data_unalgn; - 179 194 : logic [1:0] lsu_nonblock_addr_offset; - 180 78 : logic [1:0] lsu_nonblock_sz; - 181 410 : logic lsu_nonblock_unsign; - 182 718 : logic lsu_nonblock_load_data_ready; + 177 228 : logic lsu_nonblock_load_valid_r; + 178 68 : logic [31:0] lsu_nonblock_load_data_hi, lsu_nonblock_load_data_lo, lsu_nonblock_data_unalgn; + 179 104 : logic [1:0] lsu_nonblock_addr_offset; + 180 8 : logic [1:0] lsu_nonblock_sz; + 181 216 : logic lsu_nonblock_unsign; + 182 232 : logic lsu_nonblock_load_data_ready; 183 : 184 0 : logic [DEPTH-1:0] CmdPtr0Dec, CmdPtr1Dec; 185 0 : logic [DEPTH-1:0] RspPtrDec; 186 0 : logic [DEPTH_LOG2-1:0] CmdPtr0, CmdPtr1; 187 0 : logic [DEPTH_LOG2-1:0] RspPtr; - 188 202 : logic [DEPTH_LOG2-1:0] WrPtr0_m, WrPtr0_r; - 189 414 : logic [DEPTH_LOG2-1:0] WrPtr1_m, WrPtr1_r; + 188 20 : logic [DEPTH_LOG2-1:0] WrPtr0_m, WrPtr0_r; + 189 228 : logic [DEPTH_LOG2-1:0] WrPtr1_m, WrPtr1_r; 190 0 : logic found_wrptr0, found_wrptr1, found_cmdptr0, found_cmdptr1; 191 0 : logic [3:0] buf_numvld_any, buf_numvld_wrcmd_any, buf_numvld_cmd_any, buf_numvld_pend_any; - 192 12 : logic any_done_wait_state; + 192 4 : logic any_done_wait_state; 193 0 : logic bus_sideeffect_pend; 194 2 : logic bus_coalescing_disable; 195 : - 196 92 : logic bus_addr_match_pending; - 197 1548 : logic bus_cmd_sent, bus_cmd_ready; - 198 888 : logic bus_wcmd_sent, bus_wdata_sent; - 199 718 : logic bus_rsp_read, bus_rsp_write; + 196 4 : logic bus_addr_match_pending; + 197 468 : logic bus_cmd_sent, bus_cmd_ready; + 198 240 : logic bus_wcmd_sent, bus_wdata_sent; + 199 232 : logic bus_rsp_read, bus_rsp_write; 200 0 : logic [pt.LSU_BUS_TAG-1:0] bus_rsp_read_tag, bus_rsp_write_tag; 201 0 : logic bus_rsp_read_error, bus_rsp_write_error; - 202 34 : logic [63:0] bus_rsp_rdata; + 202 8 : logic [63:0] bus_rsp_rdata; 203 : 204 : // Bus buffer signals 205 0 : state_t [DEPTH-1:0] buf_state; @@ -333,21 +333,21 @@ 229 0 : logic [DEPTH-1:0] buf_state_bus_en; 230 0 : logic [DEPTH-1:0] buf_dual_in; 231 2 : logic [DEPTH-1:0] buf_samedw_in; - 232 118 : logic [DEPTH-1:0] buf_nomerge_in; + 232 16 : logic [DEPTH-1:0] buf_nomerge_in; 233 0 : logic [DEPTH-1:0] buf_sideeffect_in; - 234 490 : logic [DEPTH-1:0] buf_unsign_in; - 235 402 : logic [DEPTH-1:0][1:0] buf_sz_in; - 236 760 : logic [DEPTH-1:0] buf_write_in; + 234 216 : logic [DEPTH-1:0] buf_unsign_in; + 235 24 : logic [DEPTH-1:0][1:0] buf_sz_in; + 236 232 : logic [DEPTH-1:0] buf_write_in; 237 0 : logic [DEPTH-1:0] buf_wr_en; 238 0 : logic [DEPTH-1:0] buf_dualhi_in; - 239 414 : logic [DEPTH-1:0][DEPTH_LOG2-1:0] buf_dualtag_in; + 239 228 : logic [DEPTH-1:0][DEPTH_LOG2-1:0] buf_dualtag_in; 240 0 : logic [DEPTH-1:0] buf_ldfwd_en; 241 0 : logic [DEPTH-1:0] buf_ldfwd_in; 242 0 : logic [DEPTH-1:0][DEPTH_LOG2-1:0] buf_ldfwdtag_in; - 243 325 : logic [DEPTH-1:0][3:0] buf_byteen_in; - 244 140 : logic [DEPTH-1:0][31:0] buf_addr_in; - 245 6 : logic [DEPTH-1:0][31:0] buf_data_in; - 246 0 : logic [DEPTH-1:0] buf_error_en; + 243 76 : logic [DEPTH-1:0][3:0] buf_byteen_in; + 244 240 : logic [DEPTH-1:0][31:0] buf_addr_in; + 245 0 : logic [DEPTH-1:0][31:0] buf_data_in; + 246 0 : logic [DEPTH-1:0] buf_error_en; 247 0 : logic [DEPTH-1:0] buf_data_en; 248 0 : logic [DEPTH-1:0][DEPTH-1:0] buf_age_in; 249 0 : logic [DEPTH-1:0][DEPTH-1:0] buf_ageQ; @@ -356,69 +356,69 @@ 252 0 : logic [DEPTH-1:0][DEPTH-1:0] buf_rspageQ; 253 : 254 : // Input buffer signals - 255 760 : logic ibuf_valid; + 255 232 : logic ibuf_valid; 256 0 : logic ibuf_dual; 257 2 : logic ibuf_samedw; 258 0 : logic ibuf_nomerge; - 259 40 : logic [DEPTH_LOG2-1:0] ibuf_tag; - 260 40 : logic [DEPTH_LOG2-1:0] ibuf_dualtag; - 261 0 : logic ibuf_sideeffect; + 259 0 : logic [DEPTH_LOG2-1:0] ibuf_tag; + 260 0 : logic [DEPTH_LOG2-1:0] ibuf_dualtag; + 261 0 : logic ibuf_sideeffect; 262 0 : logic ibuf_unsign; 263 2 : logic ibuf_write; - 264 24 : logic [1:0] ibuf_sz; - 265 12 : logic [3:0] ibuf_byteen; - 266 44 : logic [31:0] ibuf_addr; - 267 6 : logic [31:0] ibuf_data; - 268 762 : logic [TIMER_LOG2-1:0] ibuf_timer; + 264 4 : logic [1:0] ibuf_sz; + 265 2 : logic [3:0] ibuf_byteen; + 266 4 : logic [31:0] ibuf_addr; + 267 0 : logic [31:0] ibuf_data; + 268 234 : logic [TIMER_LOG2-1:0] ibuf_timer; 269 : - 270 788 : logic ibuf_byp; - 271 760 : logic ibuf_wr_en; - 272 760 : logic ibuf_rst; + 270 236 : logic ibuf_byp; + 271 232 : logic ibuf_wr_en; + 272 232 : logic ibuf_rst; 273 0 : logic ibuf_force_drain; - 274 760 : logic ibuf_drain_vld; + 274 232 : logic ibuf_drain_vld; 275 0 : logic [DEPTH-1:0] ibuf_drainvec_vld; - 276 202 : logic [DEPTH_LOG2-1:0] ibuf_tag_in; - 277 202 : logic [DEPTH_LOG2-1:0] ibuf_dualtag_in; - 278 402 : logic [1:0] ibuf_sz_in; - 279 140 : logic [31:0] ibuf_addr_in; - 280 325 : logic [3:0] ibuf_byteen_in; - 281 6 : logic [31:0] ibuf_data_in; - 282 762 : logic [TIMER_LOG2-1:0] ibuf_timer_in; - 283 12 : logic [3:0] ibuf_byteen_out; - 284 6 : logic [31:0] ibuf_data_out; - 285 2 : logic ibuf_merge_en, ibuf_merge_in; + 276 20 : logic [DEPTH_LOG2-1:0] ibuf_tag_in; + 277 20 : logic [DEPTH_LOG2-1:0] ibuf_dualtag_in; + 278 24 : logic [1:0] ibuf_sz_in; + 279 240 : logic [31:0] ibuf_addr_in; + 280 76 : logic [3:0] ibuf_byteen_in; + 281 0 : logic [31:0] ibuf_data_in; + 282 234 : logic [TIMER_LOG2-1:0] ibuf_timer_in; + 283 2 : logic [3:0] ibuf_byteen_out; + 284 0 : logic [31:0] ibuf_data_out; + 285 2 : logic ibuf_merge_en, ibuf_merge_in; 286 : 287 : // Output buffer signals - 288 1548 : logic obuf_valid; - 289 426 : logic obuf_write; - 290 12 : logic obuf_nosend; - 291 660 : logic obuf_rdrsp_pend; + 288 468 : logic obuf_valid; + 289 222 : logic obuf_write; + 290 4 : logic obuf_nosend; + 291 228 : logic obuf_rdrsp_pend; 292 0 : logic obuf_sideeffect; - 293 111 : logic [31:0] obuf_addr; + 293 220 : logic [31:0] obuf_addr; 294 0 : logic [63:0] obuf_data; - 295 78 : logic [1:0] obuf_sz; - 296 288 : logic [7:0] obuf_byteen; + 295 8 : logic [1:0] obuf_sz; + 296 40 : logic [7:0] obuf_byteen; 297 0 : logic obuf_merge; 298 0 : logic obuf_cmd_done, obuf_data_done; 299 0 : logic [pt.LSU_BUS_TAG-1:0] obuf_tag0; 300 0 : logic [pt.LSU_BUS_TAG-1:0] obuf_tag1; 301 0 : logic [pt.LSU_BUS_TAG-1:0] obuf_rdrsp_tag; 302 : - 303 708 : logic ibuf_buf_byp; + 303 236 : logic ibuf_buf_byp; 304 0 : logic obuf_force_wr_en; 305 0 : logic obuf_wr_wait; - 306 1548 : logic obuf_wr_en, obuf_wr_enQ; - 307 1548 : logic obuf_rst; - 308 426 : logic obuf_write_in; - 309 400 : logic obuf_nosend_in; + 306 468 : logic obuf_wr_en, obuf_wr_enQ; + 307 468 : logic obuf_rst; + 308 222 : logic obuf_write_in; + 309 12 : logic obuf_nosend_in; 310 2 : logic obuf_rdrsp_pend_en; - 311 660 : logic obuf_rdrsp_pend_in; + 311 228 : logic obuf_rdrsp_pend_in; 312 0 : logic obuf_sideeffect_in; 313 2 : logic obuf_aligned_in; - 314 111 : logic [31:0] obuf_addr_in; - 315 1 : logic [63:0] obuf_data_in; - 316 78 : logic [1:0] obuf_sz_in; - 317 308 : logic [7:0] obuf_byteen_in; + 314 220 : logic [31:0] obuf_addr_in; + 315 0 : logic [63:0] obuf_data_in; + 316 8 : logic [1:0] obuf_sz_in; + 317 40 : logic [7:0] obuf_byteen_in; 318 0 : logic obuf_merge_in; 319 0 : logic obuf_cmd_done_in, obuf_data_done_in; 320 0 : logic [pt.LSU_BUS_TAG-1:0] obuf_tag0_in; @@ -427,33 +427,33 @@ 323 : 324 0 : logic obuf_merge_en; 325 0 : logic [TIMER_LOG2-1:0] obuf_wr_timer, obuf_wr_timer_in; - 326 158 : logic [7:0] obuf_byteen0_in, obuf_byteen1_in; - 327 1 : logic [63:0] obuf_data0_in, obuf_data1_in; + 326 4 : logic [7:0] obuf_byteen0_in, obuf_byteen1_in; + 327 0 : logic [63:0] obuf_data0_in, obuf_data1_in; 328 : - 329 888 : logic lsu_axi_awvalid_q, lsu_axi_awready_q; - 330 888 : logic lsu_axi_wvalid_q, lsu_axi_wready_q; - 331 660 : logic lsu_axi_arvalid_q, lsu_axi_arready_q; + 329 240 : logic lsu_axi_awvalid_q, lsu_axi_awready_q; + 330 240 : logic lsu_axi_wvalid_q, lsu_axi_wready_q; + 331 228 : logic lsu_axi_arvalid_q, lsu_axi_arready_q; 332 2 : logic lsu_axi_bvalid_q, lsu_axi_bready_q; 333 2 : logic lsu_axi_rvalid_q, lsu_axi_rready_q; 334 0 : logic [pt.LSU_BUS_TAG-1:0] lsu_axi_bid_q, lsu_axi_rid_q; 335 0 : logic [1:0] lsu_axi_bresp_q, lsu_axi_rresp_q; 336 0 : logic [pt.LSU_BUS_TAG-1:0] lsu_imprecise_error_store_tag; - 337 34 : logic [63:0] lsu_axi_rdata_q; + 337 8 : logic [63:0] lsu_axi_rdata_q; 338 : 339 : //------------------------------------------------------------------------------ 340 : // Load forwarding logic start 341 : //------------------------------------------------------------------------------ 342 : 343 : // Function to do 8 to 3 bit encoding - 344 96618 : function automatic logic [2:0] f_Enc8to3; + 344 54826 : function automatic logic [2:0] f_Enc8to3; 345 : input logic [7:0] Dec_value; 346 : 347 : logic [2:0] Enc_value; - 348 96618 : Enc_value[0] = Dec_value[1] | Dec_value[3] | Dec_value[5] | Dec_value[7]; - 349 96618 : Enc_value[1] = Dec_value[2] | Dec_value[3] | Dec_value[6] | Dec_value[7]; - 350 96618 : Enc_value[2] = Dec_value[4] | Dec_value[5] | Dec_value[6] | Dec_value[7]; + 348 54826 : Enc_value[0] = Dec_value[1] | Dec_value[3] | Dec_value[5] | Dec_value[7]; + 349 54826 : Enc_value[1] = Dec_value[2] | Dec_value[3] | Dec_value[6] | Dec_value[7]; + 350 54826 : Enc_value[2] = Dec_value[4] | Dec_value[5] | Dec_value[6] | Dec_value[7]; 351 : - 352 96618 : return Enc_value[2:0]; + 352 54826 : return Enc_value[2:0]; 353 : endfunction // f_Enc8to3 354 : 355 : // Buffer hit logic for bus load forwarding @@ -758,51 +758,51 @@ 654 8 : buf_ldfwdtag_in[i] = '0; 655 : 656 8 : case (buf_state[i]) - 657 107240 : IDLE: begin - 658 107240 : buf_nxtstate[i] = lsu_bus_clk_en ? CMD : START_WAIT; - 659 107240 : buf_state_en[i] = (lsu_busreq_r & lsu_commit_r & (((ibuf_byp | ldst_dual_r) & ~ibuf_merge_en & (i == WrPtr0_r)) | (ibuf_byp & ldst_dual_r & (i == WrPtr1_r)))) | - 660 107240 : (ibuf_drain_vld & (i == ibuf_tag)); - 661 107240 : buf_wr_en[i] = buf_state_en[i]; - 662 107240 : buf_data_en[i] = buf_state_en[i]; - 663 107240 : buf_data_in[i] = (ibuf_drain_vld & (i == ibuf_tag)) ? ibuf_data_out[31:0] : store_data_lo_r[31:0]; - 664 107240 : buf_cmd_state_bus_en[i] = '0; + 657 60465 : IDLE: begin + 658 60465 : buf_nxtstate[i] = lsu_bus_clk_en ? CMD : START_WAIT; + 659 60465 : buf_state_en[i] = (lsu_busreq_r & lsu_commit_r & (((ibuf_byp | ldst_dual_r) & ~ibuf_merge_en & (i == WrPtr0_r)) | (ibuf_byp & ldst_dual_r & (i == WrPtr1_r)))) | + 660 60465 : (ibuf_drain_vld & (i == ibuf_tag)); + 661 60465 : buf_wr_en[i] = buf_state_en[i]; + 662 60465 : buf_data_en[i] = buf_state_en[i]; + 663 60465 : buf_data_in[i] = (ibuf_drain_vld & (i == ibuf_tag)) ? ibuf_data_out[31:0] : store_data_lo_r[31:0]; + 664 60465 : buf_cmd_state_bus_en[i] = '0; 665 : end 666 0 : START_WAIT: begin 667 0 : buf_nxtstate[i] = dec_tlu_force_halt ? IDLE : CMD; 668 0 : buf_state_en[i] = lsu_bus_clk_en | dec_tlu_force_halt; 669 0 : buf_cmd_state_bus_en[i] = '0; 670 : end - 671 2104 : CMD: begin - 672 2104 : buf_nxtstate[i] = dec_tlu_force_halt ? IDLE : (obuf_nosend & bus_rsp_read & (bus_rsp_read_tag == obuf_rdrsp_tag)) ? DONE_WAIT : RESP; - 673 2104 : buf_cmd_state_bus_en[i] = ((obuf_tag0 == i) | (obuf_merge & (obuf_tag1 == i))) & obuf_valid & obuf_wr_enQ; // Just use the recently written obuf_valid - 674 2104 : buf_state_bus_en[i] = buf_cmd_state_bus_en[i]; - 675 2104 : buf_state_en[i] = (buf_state_bus_en[i] & lsu_bus_clk_en) | dec_tlu_force_halt; - 676 2104 : buf_ldfwd_in[i] = 1'b1; - 677 2104 : buf_ldfwd_en[i] = buf_state_en[i] & ~buf_write[i] & obuf_nosend & ~dec_tlu_force_halt; - 678 2104 : buf_ldfwdtag_in[i] = DEPTH_LOG2'(obuf_rdrsp_tag[pt.LSU_BUS_TAG-2:0]); - 679 2104 : buf_data_en[i] = buf_state_bus_en[i] & lsu_bus_clk_en & obuf_nosend & bus_rsp_read; - 680 2104 : buf_error_en[i] = buf_state_bus_en[i] & lsu_bus_clk_en & obuf_nosend & bus_rsp_read_error; - 681 2104 : buf_data_in[i] = buf_error_en[i] ? bus_rsp_rdata[31:0] : (buf_addr[i][2] ? bus_rsp_rdata[63:32] : bus_rsp_rdata[31:0]); + 671 1229 : CMD: begin + 672 1229 : buf_nxtstate[i] = dec_tlu_force_halt ? IDLE : (obuf_nosend & bus_rsp_read & (bus_rsp_read_tag == obuf_rdrsp_tag)) ? DONE_WAIT : RESP; + 673 1229 : buf_cmd_state_bus_en[i] = ((obuf_tag0 == i) | (obuf_merge & (obuf_tag1 == i))) & obuf_valid & obuf_wr_enQ; // Just use the recently written obuf_valid + 674 1229 : buf_state_bus_en[i] = buf_cmd_state_bus_en[i]; + 675 1229 : buf_state_en[i] = (buf_state_bus_en[i] & lsu_bus_clk_en) | dec_tlu_force_halt; + 676 1229 : buf_ldfwd_in[i] = 1'b1; + 677 1229 : buf_ldfwd_en[i] = buf_state_en[i] & ~buf_write[i] & obuf_nosend & ~dec_tlu_force_halt; + 678 1229 : buf_ldfwdtag_in[i] = DEPTH_LOG2'(obuf_rdrsp_tag[pt.LSU_BUS_TAG-2:0]); + 679 1229 : buf_data_en[i] = buf_state_bus_en[i] & lsu_bus_clk_en & obuf_nosend & bus_rsp_read; + 680 1229 : buf_error_en[i] = buf_state_bus_en[i] & lsu_bus_clk_en & obuf_nosend & bus_rsp_read_error; + 681 1229 : buf_data_in[i] = buf_error_en[i] ? bus_rsp_rdata[31:0] : (buf_addr[i][2] ? bus_rsp_rdata[63:32] : bus_rsp_rdata[31:0]); 682 : end - 683 4234 : RESP: begin - 684 4234 : buf_nxtstate[i] = (dec_tlu_force_halt | (buf_write[i] & ~bus_rsp_write_error)) ? IDLE : // Side-effect writes will be non-posted - 685 4234 : (buf_dual[i] & ~buf_samedw[i] & ~buf_write[i] & (buf_state[buf_dualtag[i]] != DONE_PARTIAL)) ? DONE_PARTIAL : // Goto DONE_PARTIAL if this is the first return of dual - 686 4234 : (buf_ldfwd[i] | any_done_wait_state | - 687 4234 : (buf_dual[i] & ~buf_samedw[i] & ~buf_write[i] & buf_ldfwd[buf_dualtag[i]] & - 688 4234 : (buf_state[buf_dualtag[i]] == DONE_PARTIAL) & any_done_wait_state)) ? DONE_WAIT : DONE; - 689 4234 : buf_resp_state_bus_en[i] = (bus_rsp_write & (bus_rsp_write_tag == (pt.LSU_BUS_TAG)'(i))) | - 690 4234 : (bus_rsp_read & ((bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(i)) | - 691 4234 : (buf_ldfwd[i] & (bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(buf_ldfwdtag[i]))) | - 692 4234 : (buf_dual[i] & buf_dualhi[i] & ~buf_write[i] & buf_samedw[i] & (bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(buf_dualtag[i]))))); - 693 4234 : buf_state_bus_en[i] = buf_resp_state_bus_en[i]; - 694 4234 : buf_state_en[i] = (buf_state_bus_en[i] & lsu_bus_clk_en) | dec_tlu_force_halt; - 695 4234 : buf_data_en[i] = buf_state_bus_en[i] & bus_rsp_read & lsu_bus_clk_en; + 683 2471 : RESP: begin + 684 2471 : buf_nxtstate[i] = (dec_tlu_force_halt | (buf_write[i] & ~bus_rsp_write_error)) ? IDLE : // Side-effect writes will be non-posted + 685 2471 : (buf_dual[i] & ~buf_samedw[i] & ~buf_write[i] & (buf_state[buf_dualtag[i]] != DONE_PARTIAL)) ? DONE_PARTIAL : // Goto DONE_PARTIAL if this is the first return of dual + 686 2471 : (buf_ldfwd[i] | any_done_wait_state | + 687 2471 : (buf_dual[i] & ~buf_samedw[i] & ~buf_write[i] & buf_ldfwd[buf_dualtag[i]] & + 688 2471 : (buf_state[buf_dualtag[i]] == DONE_PARTIAL) & any_done_wait_state)) ? DONE_WAIT : DONE; + 689 2471 : buf_resp_state_bus_en[i] = (bus_rsp_write & (bus_rsp_write_tag == (pt.LSU_BUS_TAG)'(i))) | + 690 2471 : (bus_rsp_read & ((bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(i)) | + 691 2471 : (buf_ldfwd[i] & (bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(buf_ldfwdtag[i]))) | + 692 2471 : (buf_dual[i] & buf_dualhi[i] & ~buf_write[i] & buf_samedw[i] & (bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(buf_dualtag[i]))))); + 693 2471 : buf_state_bus_en[i] = buf_resp_state_bus_en[i]; + 694 2471 : buf_state_en[i] = (buf_state_bus_en[i] & lsu_bus_clk_en) | dec_tlu_force_halt; + 695 2471 : buf_data_en[i] = buf_state_bus_en[i] & bus_rsp_read & lsu_bus_clk_en; 696 : // Need to capture the error for stores as well for AXI - 697 4234 : buf_error_en[i] = buf_state_bus_en[i] & lsu_bus_clk_en & ((bus_rsp_read_error & (bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(i))) | - 698 4234 : (bus_rsp_read_error & buf_ldfwd[i] & (bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(buf_ldfwdtag[i]))) | - 699 4234 : (bus_rsp_write_error & (bus_rsp_write_tag == (pt.LSU_BUS_TAG)'(i)))); - 700 4234 : buf_data_in[i][31:0] = (buf_state_en[i] & ~buf_error_en[i]) ? (buf_addr[i][2] ? bus_rsp_rdata[63:32] : bus_rsp_rdata[31:0]) : bus_rsp_rdata[31:0]; - 701 4234 : buf_cmd_state_bus_en[i] = '0; + 697 2471 : buf_error_en[i] = buf_state_bus_en[i] & lsu_bus_clk_en & ((bus_rsp_read_error & (bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(i))) | + 698 2471 : (bus_rsp_read_error & buf_ldfwd[i] & (bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(buf_ldfwdtag[i]))) | + 699 2471 : (bus_rsp_write_error & (bus_rsp_write_tag == (pt.LSU_BUS_TAG)'(i)))); + 700 2471 : buf_data_in[i][31:0] = (buf_state_en[i] & ~buf_error_en[i]) ? (buf_addr[i][2] ? bus_rsp_rdata[63:32] : bus_rsp_rdata[31:0]) : bus_rsp_rdata[31:0]; + 701 2471 : buf_cmd_state_bus_en[i] = '0; 702 : end 703 0 : DONE_PARTIAL: begin // Other part of dual load hasn't returned 704 0 : buf_nxtstate[i] = dec_tlu_force_halt ? IDLE : (buf_ldfwd[i] | buf_ldfwd[buf_dualtag[i]] | any_done_wait_state) ? DONE_WAIT : DONE; @@ -811,18 +811,18 @@ 707 0 : buf_state_en[i] = (buf_state_bus_en[i] & lsu_bus_clk_en) | dec_tlu_force_halt; 708 0 : buf_cmd_state_bus_en[i] = '0; 709 : end - 710 10 : DONE_WAIT: begin // START_WAIT state if there are multiple outstanding nb returns - 711 10 : buf_nxtstate[i] = dec_tlu_force_halt ? IDLE : DONE; - 712 10 : buf_state_en[i] = ((RspPtr == DEPTH_LOG2'(i)) | (buf_dual[i] & (buf_dualtag[i] == RspPtr))) | dec_tlu_force_halt; - 713 10 : buf_cmd_state_bus_en[i] = '0; + 710 6 : DONE_WAIT: begin // START_WAIT state if there are multiple outstanding nb returns + 711 6 : buf_nxtstate[i] = dec_tlu_force_halt ? IDLE : DONE; + 712 6 : buf_state_en[i] = ((RspPtr == DEPTH_LOG2'(i)) | (buf_dual[i] & (buf_dualtag[i] == RspPtr))) | dec_tlu_force_halt; + 713 6 : buf_cmd_state_bus_en[i] = '0; 714 : end - 715 612 : DONE: begin - 716 612 : buf_nxtstate[i] = IDLE; - 717 612 : buf_rst[i] = 1'b1; - 718 612 : buf_state_en[i] = 1'b1; - 719 612 : buf_ldfwd_in[i] = 1'b0; - 720 612 : buf_ldfwd_en[i] = buf_state_en[i]; - 721 612 : buf_cmd_state_bus_en[i] = '0; + 715 365 : DONE: begin + 716 365 : buf_nxtstate[i] = IDLE; + 717 365 : buf_rst[i] = 1'b1; + 718 365 : buf_state_en[i] = 1'b1; + 719 365 : buf_ldfwd_in[i] = 1'b0; + 720 365 : buf_ldfwd_en[i] = buf_state_en[i]; + 721 365 : buf_cmd_state_bus_en[i] = '0; 722 : end 723 0 : default : begin 724 0 : buf_nxtstate[i] = IDLE; diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_bus_intf.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_bus_intf.sv.html index e68b2f13646..70e028e5a75 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_bus_intf.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_bus_intf.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -131,7 +131,7 @@ 27 : #( 28 : `include "el2_param.vh" 29 : )( - 30 66208 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 30 14760 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. 31 0 : input logic clk_override, // Override non-functional clock gating 32 2 : input logic rst_l, // reset, active low 33 0 : input logic scan_mode, // scan mode @@ -140,71 +140,71 @@ 36 0 : input logic dec_tlu_sideeffect_posted_disable, // disable the posted sideeffect load store to the bus 37 : 38 : // various clocks needed for the bus reads and writes - 39 2180 : input logic lsu_bus_obuf_c1_clken, // obuf clock enable - 40 1009 : input logic lsu_busm_clken, // bus clock enable + 39 692 : input logic lsu_bus_obuf_c1_clken, // obuf clock enable + 40 234 : input logic lsu_busm_clken, // bus clock enable 41 : - 42 66208 : input logic lsu_c1_r_clk, // r pipe single pulse clock - 43 66208 : input logic lsu_c2_r_clk, // r pipe double pulse clock - 44 66208 : input logic lsu_bus_ibuf_c1_clk, // ibuf single pulse clock + 42 14760 : input logic lsu_c1_r_clk, // r pipe single pulse clock + 43 14760 : input logic lsu_c2_r_clk, // r pipe double pulse clock + 44 14760 : input logic lsu_bus_ibuf_c1_clk, // ibuf single pulse clock 45 0 : input logic lsu_bus_obuf_c1_clk, // obuf single pulse clock - 46 66208 : input logic lsu_bus_buf_c1_clk, // buf single pulse clock - 47 66208 : input logic lsu_free_c2_clk, // free clock double pulse clock - 48 66208 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 46 14760 : input logic lsu_bus_buf_c1_clk, // buf single pulse clock + 47 14760 : input logic lsu_free_c2_clk, // free clock double pulse clock + 48 14760 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. 49 0 : input logic lsu_busm_clk, // bus clock 50 : - 51 1420 : input logic dec_lsu_valid_raw_d, // Raw valid for address computation - 52 1420 : input logic lsu_busreq_m, // bus request is in m + 51 460 : input logic dec_lsu_valid_raw_d, // Raw valid for address computation + 52 460 : input logic lsu_busreq_m, // bus request is in m 53 : - 54 394 : input el2_lsu_pkt_t lsu_pkt_m, // lsu packet flowing down the pipe - 55 394 : input el2_lsu_pkt_t lsu_pkt_r, // lsu packet flowing down the pipe + 54 24 : input el2_lsu_pkt_t lsu_pkt_m, // lsu packet flowing down the pipe + 55 24 : input el2_lsu_pkt_t lsu_pkt_r, // lsu packet flowing down the pipe 56 : - 57 140 : input logic [31:0] lsu_addr_m, // lsu address flowing down the pipe - 58 140 : input logic [31:0] lsu_addr_r, // lsu address flowing down the pipe + 57 240 : input logic [31:0] lsu_addr_m, // lsu address flowing down the pipe + 58 240 : input logic [31:0] lsu_addr_r, // lsu address flowing down the pipe 59 : - 60 140 : input logic [31:0] end_addr_m, // lsu address flowing down the pipe - 61 140 : input logic [31:0] end_addr_r, // lsu address flowing down the pipe + 60 240 : input logic [31:0] end_addr_m, // lsu address flowing down the pipe + 61 240 : input logic [31:0] end_addr_r, // lsu address flowing down the pipe 62 : - 63 6 : input logic [31:0] store_data_r, // store data flowing down the pipe - 64 0 : input logic dec_tlu_force_halt, + 63 0 : input logic [31:0] store_data_r, // store data flowing down the pipe + 64 0 : input logic dec_tlu_force_halt, 65 : - 66 1420 : input logic lsu_commit_r, // lsu instruction in r commits + 66 460 : input logic lsu_commit_r, // lsu instruction in r commits 67 0 : input logic is_sideeffects_m, // lsu attribute is side_effects 68 4 : input logic flush_m_up, // flush 69 0 : input logic flush_r, // flush 70 0 : input logic ldst_dual_d, ldst_dual_m, ldst_dual_r, 71 : - 72 1420 : output logic lsu_busreq_r, // bus request is in r - 73 840 : output logic lsu_bus_buffer_pend_any, // bus buffer has a pending bus entry + 72 460 : output logic lsu_busreq_r, // bus request is in r + 73 232 : output logic lsu_bus_buffer_pend_any, // bus buffer has a pending bus entry 74 0 : output logic lsu_bus_buffer_full_any, // write buffer is full - 75 1281 : output logic lsu_bus_buffer_empty_any, // write buffer is empty + 75 456 : output logic lsu_bus_buffer_empty_any, // write buffer is empty 76 0 : output logic [31:0] bus_read_data_m, // the bus return data 77 : 78 : 79 0 : output logic lsu_imprecise_error_load_any, // imprecise load bus error 80 0 : output logic lsu_imprecise_error_store_any, // imprecise store bus error - 81 111 : output logic [31:0] lsu_imprecise_error_addr_any, // address of the imprecise error + 81 220 : output logic [31:0] lsu_imprecise_error_addr_any, // address of the imprecise error 82 : 83 : // Non-blocking loads - 84 660 : output logic lsu_nonblock_load_valid_m, // there is an external load -> put in the cam - 85 202 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_tag_m, // the tag of the external non block load + 84 228 : output logic lsu_nonblock_load_valid_m, // there is an external load -> put in the cam + 85 20 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_tag_m, // the tag of the external non block load 86 0 : output logic lsu_nonblock_load_inv_r, // invalidate signal for the cam entry for non block loads - 87 202 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_inv_tag_r, // tag of the enrty which needs to be invalidated - 88 718 : output logic lsu_nonblock_load_data_valid,// the non block is valid - sending information back to the cam + 87 20 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_inv_tag_r, // tag of the enrty which needs to be invalidated + 88 232 : output logic lsu_nonblock_load_data_valid,// the non block is valid - sending information back to the cam 89 0 : output logic lsu_nonblock_load_data_error,// non block load has an error - 90 36 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_data_tag, // the tag of the non block load sending the data/error - 91 14 : output logic [31:0] lsu_nonblock_load_data, // Data of the non block load + 90 0 : output logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_data_tag, // the tag of the non block load sending the data/error + 91 0 : output logic [31:0] lsu_nonblock_load_data, // Data of the non block load 92 : 93 : // PMU events - 94 1548 : output logic lsu_pmu_bus_trxn, + 94 468 : output logic lsu_pmu_bus_trxn, 95 0 : output logic lsu_pmu_bus_misaligned, 96 0 : output logic lsu_pmu_bus_error, 97 0 : output logic lsu_pmu_bus_busy, 98 : 99 : // AXI Write Channels - 100 888 : output logic lsu_axi_awvalid, - 101 1549 : input logic lsu_axi_awready, + 100 240 : output logic lsu_axi_awvalid, + 101 468 : input logic lsu_axi_awready, 102 0 : output logic [pt.LSU_BUS_TAG-1:0] lsu_axi_awid, - 103 111 : output logic [31:0] lsu_axi_awaddr, + 103 220 : output logic [31:0] lsu_axi_awaddr, 104 2 : output logic [3:0] lsu_axi_awregion, 105 0 : output logic [7:0] lsu_axi_awlen, 106 0 : output logic [2:0] lsu_axi_awsize, @@ -214,22 +214,22 @@ 110 0 : output logic [2:0] lsu_axi_awprot, 111 0 : output logic [3:0] lsu_axi_awqos, 112 : - 113 888 : output logic lsu_axi_wvalid, - 114 1549 : input logic lsu_axi_wready, + 113 240 : output logic lsu_axi_wvalid, + 114 468 : input logic lsu_axi_wready, 115 0 : output logic [63:0] lsu_axi_wdata, - 116 148 : output logic [7:0] lsu_axi_wstrb, + 116 8 : output logic [7:0] lsu_axi_wstrb, 117 2 : output logic lsu_axi_wlast, 118 : - 119 886 : input logic lsu_axi_bvalid, + 119 236 : input logic lsu_axi_bvalid, 120 2 : output logic lsu_axi_bready, 121 0 : input logic [1:0] lsu_axi_bresp, 122 0 : input logic [pt.LSU_BUS_TAG-1:0] lsu_axi_bid, 123 : 124 : // AXI Read Channels - 125 660 : output logic lsu_axi_arvalid, - 126 1549 : input logic lsu_axi_arready, + 125 228 : output logic lsu_axi_arvalid, + 126 468 : input logic lsu_axi_arready, 127 0 : output logic [pt.LSU_BUS_TAG-1:0] lsu_axi_arid, - 128 111 : output logic [31:0] lsu_axi_araddr, + 128 220 : output logic [31:0] lsu_axi_araddr, 129 2 : output logic [3:0] lsu_axi_arregion, 130 0 : output logic [7:0] lsu_axi_arlen, 131 0 : output logic [2:0] lsu_axi_arsize, @@ -239,10 +239,10 @@ 135 0 : output logic [2:0] lsu_axi_arprot, 136 0 : output logic [3:0] lsu_axi_arqos, 137 : - 138 718 : input logic lsu_axi_rvalid, + 138 232 : input logic lsu_axi_rvalid, 139 2 : output logic lsu_axi_rready, 140 0 : input logic [pt.LSU_BUS_TAG-1:0] lsu_axi_rid, - 141 34 : input logic [63:0] lsu_axi_rdata, + 141 8 : input logic [63:0] lsu_axi_rdata, 142 0 : input logic [1:0] lsu_axi_rresp, 143 : 144 2 : input logic lsu_bus_clk_en @@ -256,16 +256,16 @@ 152 2 : logic [3:0] ldst_byteen_m, ldst_byteen_r; 153 0 : logic [7:0] ldst_byteen_ext_m, ldst_byteen_ext_r; 154 0 : logic [3:0] ldst_byteen_hi_m, ldst_byteen_hi_r; - 155 325 : logic [3:0] ldst_byteen_lo_m, ldst_byteen_lo_r; + 155 76 : logic [3:0] ldst_byteen_lo_m, ldst_byteen_lo_r; 156 0 : logic is_sideeffects_r; 157 : - 158 18 : logic [63:0] store_data_ext_r; - 159 0 : logic [31:0] store_data_hi_r; - 160 6 : logic [31:0] store_data_lo_r; + 158 0 : logic [63:0] store_data_ext_r; + 159 0 : logic [31:0] store_data_hi_r; + 160 0 : logic [31:0] store_data_lo_r; 161 : - 162 1514 : logic addr_match_dw_lo_r_m; - 163 1422 : logic addr_match_word_lo_r_m; - 164 118 : logic no_word_merge_r, no_dword_merge_r; + 162 466 : logic addr_match_dw_lo_r_m; + 163 462 : logic addr_match_word_lo_r_m; + 164 16 : logic no_word_merge_r, no_dword_merge_r; 165 : 166 0 : logic ld_addr_rhit_lo_lo, ld_addr_rhit_hi_lo, ld_addr_rhit_lo_hi, ld_addr_rhit_hi_hi; 167 0 : logic [3:0] ld_byte_rhit_lo_lo, ld_byte_rhit_hi_lo, ld_byte_rhit_lo_hi, ld_byte_rhit_hi_hi; diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_clkdomain.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_clkdomain.sv.html index b25afcdb46d..60d7cc3333b 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_clkdomain.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_clkdomain.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -132,8 +132,8 @@ 28 : #( 29 : `include "el2_param.vh" 30 : )( - 31 66208 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 32 66208 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 31 14760 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 32 14760 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. 33 2 : input logic rst_l, // reset, active low 34 0 : input logic dec_tlu_force_halt, // This will be high till TLU goes to debug halt 35 : @@ -144,52 +144,52 @@ 40 : 41 0 : input logic stbuf_reqvld_any, // stbuf is draining 42 0 : input logic stbuf_reqvld_flushed_any, // instruction going to stbuf is flushed - 43 1420 : input logic lsu_busreq_r, // busreq in r - 44 840 : input logic lsu_bus_buffer_pend_any, // bus buffer has a pending bus entry - 45 1281 : input logic lsu_bus_buffer_empty_any, // external bus buffer is empty + 43 460 : input logic lsu_busreq_r, // busreq in r + 44 232 : input logic lsu_bus_buffer_pend_any, // bus buffer has a pending bus entry + 45 456 : input logic lsu_bus_buffer_empty_any, // external bus buffer is empty 46 2 : input logic lsu_stbuf_empty_any, // stbuf is empty 47 : 48 2 : input logic lsu_bus_clk_en, // bus clock enable 49 : - 50 402 : input el2_lsu_pkt_t lsu_p, // lsu packet in decode - 51 394 : input el2_lsu_pkt_t lsu_pkt_d, // lsu packet in d - 52 394 : input el2_lsu_pkt_t lsu_pkt_m, // lsu packet in m - 53 394 : input el2_lsu_pkt_t lsu_pkt_r, // lsu packet in r + 50 24 : input el2_lsu_pkt_t lsu_p, // lsu packet in decode + 51 24 : input el2_lsu_pkt_t lsu_pkt_d, // lsu packet in d + 52 24 : input el2_lsu_pkt_t lsu_pkt_m, // lsu packet in m + 53 24 : input el2_lsu_pkt_t lsu_pkt_r, // lsu packet in r 54 : 55 : // Outputs - 56 2180 : output logic lsu_bus_obuf_c1_clken, // obuf clock enable - 57 1009 : output logic lsu_busm_clken, // bus clock enable + 56 692 : output logic lsu_bus_obuf_c1_clken, // obuf clock enable + 57 234 : output logic lsu_busm_clken, // bus clock enable 58 : - 59 66208 : output logic lsu_c1_m_clk, // m pipe single pulse clock - 60 66208 : output logic lsu_c1_r_clk, // r pipe single pulse clock + 59 14760 : output logic lsu_c1_m_clk, // m pipe single pulse clock + 60 14760 : output logic lsu_c1_r_clk, // r pipe single pulse clock 61 : - 62 66208 : output logic lsu_c2_m_clk, // m pipe double pulse clock - 63 66208 : output logic lsu_c2_r_clk, // r pipe double pulse clock + 62 14760 : output logic lsu_c2_m_clk, // m pipe double pulse clock + 63 14760 : output logic lsu_c2_r_clk, // r pipe double pulse clock 64 : - 65 66208 : output logic lsu_store_c1_m_clk, // store in m - 66 66208 : output logic lsu_store_c1_r_clk, // store in r + 65 14760 : output logic lsu_store_c1_m_clk, // store in m + 66 14760 : output logic lsu_store_c1_r_clk, // store in r 67 : - 68 66208 : output logic lsu_stbuf_c1_clk, + 68 14760 : output logic lsu_stbuf_c1_clk, 69 0 : output logic lsu_bus_obuf_c1_clk, // ibuf clock - 70 66208 : output logic lsu_bus_ibuf_c1_clk, // ibuf clock - 71 66208 : output logic lsu_bus_buf_c1_clk, // ibuf clock + 70 14760 : output logic lsu_bus_ibuf_c1_clk, // ibuf clock + 71 14760 : output logic lsu_bus_buf_c1_clk, // ibuf clock 72 0 : output logic lsu_busm_clk, // bus clock 73 : - 74 66208 : output logic lsu_free_c2_clk, // free double pulse clock + 74 14760 : output logic lsu_free_c2_clk, // free double pulse clock 75 : 76 0 : input logic scan_mode // Scan mode 77 : ); 78 : - 79 1420 : logic lsu_c1_m_clken, lsu_c1_r_clken; - 80 1420 : logic lsu_c2_m_clken, lsu_c2_r_clken; - 81 1420 : logic lsu_c1_m_clken_q, lsu_c1_r_clken_q; - 82 760 : logic lsu_store_c1_m_clken, lsu_store_c1_r_clken; + 79 460 : logic lsu_c1_m_clken, lsu_c1_r_clken; + 80 460 : logic lsu_c2_m_clken, lsu_c2_r_clken; + 81 460 : logic lsu_c1_m_clken_q, lsu_c1_r_clken_q; + 82 232 : logic lsu_store_c1_m_clken, lsu_store_c1_r_clken; 83 : 84 : 85 0 : logic lsu_stbuf_c1_clken; - 86 1009 : logic lsu_bus_ibuf_c1_clken, lsu_bus_buf_c1_clken; + 86 234 : logic lsu_bus_ibuf_c1_clken, lsu_bus_buf_c1_clken; 87 : - 88 927 : logic lsu_free_c1_clken, lsu_free_c1_clken_q, lsu_free_c2_clken; + 88 230 : logic lsu_free_c1_clken, lsu_free_c1_clken_q, lsu_free_c2_clken; 89 : 90 : //------------------------------------------------------------------------------------------- 91 : // Clock Enable logic diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_dccm_ctl.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_dccm_ctl.sv.html index ef8c0a8229e..a8cae1ba448 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_dccm_ctl.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_dccm_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -136,37 +136,37 @@ 32 : `include "el2_param.vh" 33 : ) 34 : ( - 35 66208 : input logic lsu_c2_m_clk, // clocks - 36 66208 : input logic lsu_c2_r_clk, // clocks - 37 66208 : input logic lsu_c1_r_clk, // clocks - 38 66208 : input logic lsu_store_c1_r_clk, // clocks - 39 66208 : input logic lsu_free_c2_clk, // clocks + 35 14760 : input logic lsu_c2_m_clk, // clocks + 36 14760 : input logic lsu_c2_r_clk, // clocks + 37 14760 : input logic lsu_c1_r_clk, // clocks + 38 14760 : input logic lsu_store_c1_r_clk, // clocks + 39 14760 : input logic lsu_free_c2_clk, // clocks 40 0 : input logic clk_override, // Override non-functional clock gating - 41 66208 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 41 14760 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. 42 : 43 2 : input logic rst_l, // reset, active low 44 : - 45 394 : input el2_lsu_pkt_t lsu_pkt_r,// lsu packets - 46 394 : input el2_lsu_pkt_t lsu_pkt_m,// lsu packets - 47 394 : input el2_lsu_pkt_t lsu_pkt_d,// lsu packets + 45 24 : input el2_lsu_pkt_t lsu_pkt_r,// lsu packets + 46 24 : input el2_lsu_pkt_t lsu_pkt_m,// lsu packets + 47 24 : input el2_lsu_pkt_t lsu_pkt_d,// lsu packets 48 0 : input logic addr_in_dccm_d, // address maps to dccm 49 0 : input logic addr_in_pic_d, // address maps to pic 50 0 : input logic addr_in_pic_m, // address maps to pic 51 0 : input logic addr_in_dccm_m, addr_in_dccm_r, // address in dccm per pipe stage 52 0 : input logic addr_in_pic_r, // address in pic per pipe stage 53 0 : input logic lsu_raw_fwd_lo_r, lsu_raw_fwd_hi_r, - 54 1420 : input logic lsu_commit_r, // lsu instruction in r commits + 54 460 : input logic lsu_commit_r, // lsu instruction in r commits 55 0 : input logic ldst_dual_m, ldst_dual_r,// load/store is unaligned at 32 bit boundary per pipe stage 56 : 57 : // lsu address down the pipe - 58 140 : input logic [31:0] lsu_addr_d, - 59 140 : input logic [pt.DCCM_BITS-1:0] lsu_addr_m, - 60 140 : input logic [31:0] lsu_addr_r, + 58 240 : input logic [31:0] lsu_addr_d, + 59 240 : input logic [pt.DCCM_BITS-1:0] lsu_addr_m, + 60 240 : input logic [31:0] lsu_addr_r, 61 : 62 : // lsu address down the pipe - needed to check unaligned - 63 140 : input logic [pt.DCCM_BITS-1:0] end_addr_d, - 64 140 : input logic [pt.DCCM_BITS-1:0] end_addr_m, - 65 140 : input logic [pt.DCCM_BITS-1:0] end_addr_r, + 63 240 : input logic [pt.DCCM_BITS-1:0] end_addr_d, + 64 240 : input logic [pt.DCCM_BITS-1:0] end_addr_m, + 65 240 : input logic [pt.DCCM_BITS-1:0] end_addr_r, 66 : 67 : 68 0 : input logic stbuf_reqvld_any, // write enable @@ -206,8 +206,8 @@ 102 0 : input logic [pt.DCCM_DATA_WIDTH-1:0] sec_data_hi_m, // corrected dccm data 103 0 : input logic [pt.DCCM_DATA_WIDTH-1:0] sec_data_lo_m, // corrected dccm data 104 : - 105 6 : input logic [31:0] store_data_m, // Store data M-stage - 106 0 : input logic dma_dccm_wen, // Perform DMA writes only for word/dword + 105 0 : input logic [31:0] store_data_m, // Store data M-stage + 106 0 : input logic dma_dccm_wen, // Perform DMA writes only for word/dword 107 0 : input logic dma_pic_wen, // Perform PIC writes 108 0 : input logic [2:0] dma_mem_tag_m, // DMA Buffer entry number M-stage 109 0 : input logic [31:0] dma_mem_addr, // DMA request address @@ -218,11 +218,11 @@ 114 0 : input logic [pt.DCCM_ECC_WIDTH-1:0] dma_dccm_wdata_ecc_lo, // ECC bits for the DMA wdata 115 : 116 0 : output logic [pt.DCCM_DATA_WIDTH-1:0] store_data_hi_r, - 117 6 : output logic [pt.DCCM_DATA_WIDTH-1:0] store_data_lo_r, - 118 0 : output logic [pt.DCCM_DATA_WIDTH-1:0] store_datafn_hi_r, // data from the dccm - 119 6 : output logic [pt.DCCM_DATA_WIDTH-1:0] store_datafn_lo_r, // data from the dccm - 120 6 : output logic [31:0] store_data_r, // raw store data to be sent to bus - 121 0 : output logic ld_single_ecc_error_r, + 117 0 : output logic [pt.DCCM_DATA_WIDTH-1:0] store_data_lo_r, + 118 0 : output logic [pt.DCCM_DATA_WIDTH-1:0] store_datafn_hi_r, // data from the dccm + 119 0 : output logic [pt.DCCM_DATA_WIDTH-1:0] store_datafn_lo_r, // data from the dccm + 120 0 : output logic [31:0] store_data_r, // raw store data to be sent to bus + 121 0 : output logic ld_single_ecc_error_r, 122 0 : output logic ld_single_ecc_error_r_ff, 123 : 124 0 : output logic [31:0] picm_mask_data_m, // pic data to stbuf @@ -240,8 +240,8 @@ 136 0 : output logic dccm_rden, // dccm interface -- write 137 0 : output logic [pt.DCCM_BITS-1:0] dccm_wr_addr_lo, // dccm interface -- wr addr for lo bank 138 0 : output logic [pt.DCCM_BITS-1:0] dccm_wr_addr_hi, // dccm interface -- wr addr for hi bank - 139 140 : output logic [pt.DCCM_BITS-1:0] dccm_rd_addr_lo, // dccm interface -- read address for lo bank - 140 140 : output logic [pt.DCCM_BITS-1:0] dccm_rd_addr_hi, // dccm interface -- read address for hi bank + 139 240 : output logic [pt.DCCM_BITS-1:0] dccm_rd_addr_lo, // dccm interface -- read address for lo bank + 140 240 : output logic [pt.DCCM_BITS-1:0] dccm_rd_addr_hi, // dccm interface -- read address for hi bank 141 0 : output logic [pt.DCCM_FDATA_WIDTH-1:0] dccm_wr_data_lo, // dccm write data for lo bank 142 0 : output logic [pt.DCCM_FDATA_WIDTH-1:0] dccm_wr_data_hi, // dccm write data for hi bank 143 : @@ -252,10 +252,10 @@ 148 0 : output logic picm_wren, // write to pic 149 0 : output logic picm_rden, // read to pick 150 0 : output logic picm_mken, // write to pic need a mask - 151 121 : output logic [31:0] picm_rdaddr, // address for pic read access - 152 121 : output logic [31:0] picm_wraddr, // address for pic write access - 153 6 : output logic [31:0] picm_wr_data, // write data - 154 0 : input logic [31:0] picm_rd_data, // read data + 151 240 : output logic [31:0] picm_rdaddr, // address for pic read access + 152 240 : output logic [31:0] picm_wraddr, // address for pic write access + 153 0 : output logic [31:0] picm_wr_data, // write data + 154 0 : input logic [31:0] picm_rd_data, // read data 155 : 156 0 : input logic scan_mode // scan mode 157 : ); @@ -277,7 +277,7 @@ 173 0 : logic kill_ecc_corr_lo_r, kill_ecc_corr_hi_r; 174 : 175 : // byte_en flowing down - 176 232 : logic [3:0] store_byteen_m ,store_byteen_r; + 176 12 : logic [3:0] store_byteen_m ,store_byteen_r; 177 0 : logic [7:0] store_byteen_ext_m, store_byteen_ext_r; 178 : 179 : if (pt.LOAD_TO_USE_PLUS1 == 1) begin: L2U_Plus1_1 diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_dccm_mem.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_dccm_mem.sv.html index bad804c6b6e..a78b0654794 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_dccm_mem.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_dccm_mem.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -136,8 +136,8 @@ 32 : #( 33 : `include "el2_param.vh" 34 : )( - 35 66208 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 36 66208 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 35 14760 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 36 14760 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. 37 2 : input logic rst_l, // reset, active low 38 0 : input logic clk_override, // Override non-functional clock gating 39 : @@ -145,8 +145,8 @@ 41 0 : input logic dccm_rden, // read enable 42 0 : input logic [pt.DCCM_BITS-1:0] dccm_wr_addr_lo, // write address 43 0 : input logic [pt.DCCM_BITS-1:0] dccm_wr_addr_hi, // write address - 44 140 : input logic [pt.DCCM_BITS-1:0] dccm_rd_addr_lo, // read address - 45 140 : input logic [pt.DCCM_BITS-1:0] dccm_rd_addr_hi, // read address for the upper bank in case of a misaligned access + 44 240 : input logic [pt.DCCM_BITS-1:0] dccm_rd_addr_lo, // read address + 45 240 : input logic [pt.DCCM_BITS-1:0] dccm_rd_addr_hi, // read address for the upper bank in case of a misaligned access 46 0 : input logic [pt.DCCM_FDATA_WIDTH-1:0] dccm_wr_data_lo, // write data 47 0 : input logic [pt.DCCM_FDATA_WIDTH-1:0] dccm_wr_data_hi, // write data 48 : el2_mem_if.veer_dccm dccm_mem_export, // RAM repositioned in testbench and connected by this interface @@ -164,7 +164,7 @@ 60 : 61 0 : logic [pt.DCCM_NUM_BANKS-1:0] wren_bank; 62 0 : logic [pt.DCCM_NUM_BANKS-1:0] rden_bank; - 63 140 : logic [pt.DCCM_NUM_BANKS-1:0] [pt.DCCM_BITS-1:(pt.DCCM_BANK_BITS+2)] addr_bank; + 63 240 : logic [pt.DCCM_NUM_BANKS-1:0] [pt.DCCM_BITS-1:(pt.DCCM_BANK_BITS+2)] addr_bank; 64 0 : logic [pt.DCCM_BITS-1:(pt.DCCM_BANK_BITS+DCCM_WIDTH_BITS)] rd_addr_even, rd_addr_odd; 65 0 : logic rd_unaligned, wr_unaligned; 66 0 : logic [pt.DCCM_NUM_BANKS-1:0] [pt.DCCM_FDATA_WIDTH-1:0] dccm_bank_dout; @@ -172,8 +172,8 @@ 68 : 69 0 : logic [pt.DCCM_NUM_BANKS-1:0][pt.DCCM_FDATA_WIDTH-1:0] wr_data_bank; 70 : - 71 594 : logic [(DCCM_WIDTH_BITS+pt.DCCM_BANK_BITS-1):DCCM_WIDTH_BITS] dccm_rd_addr_lo_q; - 72 594 : logic [(DCCM_WIDTH_BITS+pt.DCCM_BANK_BITS-1):DCCM_WIDTH_BITS] dccm_rd_addr_hi_q; + 71 124 : logic [(DCCM_WIDTH_BITS+pt.DCCM_BANK_BITS-1):DCCM_WIDTH_BITS] dccm_rd_addr_lo_q; + 72 124 : logic [(DCCM_WIDTH_BITS+pt.DCCM_BANK_BITS-1):DCCM_WIDTH_BITS] dccm_rd_addr_hi_q; 73 : 74 0 : logic [pt.DCCM_NUM_BANKS-1:0] dccm_clken; 75 : diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_ecc.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_ecc.sv.html index a5ced5f1f29..123e23412fb 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_ecc.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_ecc.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -135,22 +135,22 @@ 31 : `include "el2_param.vh" 32 : ) 33 : ( - 34 66208 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 35 66208 : input logic lsu_c2_r_clk, // clock + 34 14760 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 35 14760 : input logic lsu_c2_r_clk, // clock 36 0 : input logic clk_override, // Override non-functional clock gating 37 2 : input logic rst_l, // reset, active low 38 0 : input logic scan_mode, // scan mode 39 : - 40 394 : input el2_lsu_pkt_t lsu_pkt_m, // packet in m - 41 394 : input el2_lsu_pkt_t lsu_pkt_r, // packet in r + 40 24 : input el2_lsu_pkt_t lsu_pkt_m, // packet in m + 41 24 : input el2_lsu_pkt_t lsu_pkt_r, // packet in r 42 0 : input logic [pt.DCCM_DATA_WIDTH-1:0] stbuf_data_any, 43 : 44 0 : input logic dec_tlu_core_ecc_disable, // disables the ecc computation and error flagging 45 : 46 0 : input logic lsu_dccm_rden_r, // dccm rden 47 0 : input logic addr_in_dccm_r, // address in dccm - 48 140 : input logic [pt.DCCM_BITS-1:0] lsu_addr_r, // start address - 49 140 : input logic [pt.DCCM_BITS-1:0] end_addr_r, // end address + 48 240 : input logic [pt.DCCM_BITS-1:0] lsu_addr_r, // start address + 49 240 : input logic [pt.DCCM_BITS-1:0] end_addr_r, // end address 50 0 : input logic [pt.DCCM_DATA_WIDTH-1:0] dccm_rdata_hi_r, // data from the dccm 51 0 : input logic [pt.DCCM_DATA_WIDTH-1:0] dccm_rdata_lo_r, // data from the dccm 52 0 : input logic [pt.DCCM_ECC_WIDTH-1:0] dccm_data_ecc_hi_r, // data from the dccm + ecc @@ -164,8 +164,8 @@ 60 0 : input logic ld_single_ecc_error_r_ff, // ld has a single ecc error 61 0 : input logic lsu_dccm_rden_m, // dccm rden 62 0 : input logic addr_in_dccm_m, // address in dccm - 63 140 : input logic [pt.DCCM_BITS-1:0] lsu_addr_m, // start address - 64 140 : input logic [pt.DCCM_BITS-1:0] end_addr_m, // end address + 63 240 : input logic [pt.DCCM_BITS-1:0] lsu_addr_m, // start address + 64 240 : input logic [pt.DCCM_BITS-1:0] end_addr_m, // end address 65 0 : input logic [pt.DCCM_DATA_WIDTH-1:0] dccm_rdata_hi_m, // raw data from mem 66 0 : input logic [pt.DCCM_DATA_WIDTH-1:0] dccm_rdata_lo_m, // raw data from mem 67 0 : input logic [pt.DCCM_ECC_WIDTH-1:0] dccm_data_ecc_hi_m, // ecc read out from mem diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_lsc_ctl.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_lsc_ctl.sv.html index ca299f28da3..cb4f4023840 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_lsc_ctl.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_lsc_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -136,14 +136,14 @@ 32 : )( 33 2 : input logic rst_l, // reset, active low 34 0 : input logic clk_override, // Override non-functional clock gating - 35 66208 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 35 14760 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. 36 : 37 : // clocks per pipe - 38 66208 : input logic lsu_c1_m_clk, - 39 66208 : input logic lsu_c1_r_clk, - 40 66208 : input logic lsu_c2_m_clk, - 41 66208 : input logic lsu_c2_r_clk, - 42 66208 : input logic lsu_store_c1_m_clk, + 38 14760 : input logic lsu_c1_m_clk, + 39 14760 : input logic lsu_c1_r_clk, + 40 14760 : input logic lsu_c2_m_clk, + 41 14760 : input logic lsu_c2_r_clk, + 42 14760 : input logic lsu_store_c1_m_clk, 43 : 44 0 : input logic [31:0] lsu_ld_data_r, // Load data R-stage 45 0 : input logic [31:0] lsu_ld_data_corr_r, // ECC corrected data R-stage @@ -160,32 +160,32 @@ 56 0 : input logic ldst_dual_m, // load/store is unaligned at 32 bit boundary M-stage 57 0 : input logic ldst_dual_r, // load/store is unaligned at 32 bit boundary R-stage 58 : - 59 140 : input logic [31:0] exu_lsu_rs1_d, // address - 60 6 : input logic [31:0] exu_lsu_rs2_d, // store data + 59 240 : input logic [31:0] exu_lsu_rs1_d, // address + 60 0 : input logic [31:0] exu_lsu_rs2_d, // store data 61 : - 62 402 : input el2_lsu_pkt_t lsu_p, // lsu control packet - 63 1420 : input logic dec_lsu_valid_raw_d, // Raw valid for address computation - 64 52 : input logic [11:0] dec_lsu_offset_d, // 12b offset for load/store addresses + 62 24 : input el2_lsu_pkt_t lsu_p, // lsu control packet + 63 460 : input logic dec_lsu_valid_raw_d, // Raw valid for address computation + 64 0 : input logic [11:0] dec_lsu_offset_d, // 12b offset for load/store addresses 65 : - 66 0 : input logic [31:0] picm_mask_data_m, // PIC data M-stage + 66 0 : input logic [31:0] picm_mask_data_m, // PIC data M-stage 67 0 : input logic [31:0] bus_read_data_m, // the bus return data 68 0 : output logic [31:0] lsu_result_m, // lsu load data 69 0 : output logic [31:0] lsu_result_corr_r, // This is the ECC corrected data going to RF 70 : // lsu address down the pipe - 71 140 : output logic [31:0] lsu_addr_d, - 72 140 : output logic [31:0] lsu_addr_m, - 73 140 : output logic [31:0] lsu_addr_r, + 71 240 : output logic [31:0] lsu_addr_d, + 72 240 : output logic [31:0] lsu_addr_m, + 73 240 : output logic [31:0] lsu_addr_r, 74 : // lsu address down the pipe - needed to check unaligned - 75 140 : output logic [31:0] end_addr_d, - 76 140 : output logic [31:0] end_addr_m, - 77 140 : output logic [31:0] end_addr_r, + 75 240 : output logic [31:0] end_addr_d, + 76 240 : output logic [31:0] end_addr_m, + 77 240 : output logic [31:0] end_addr_r, 78 : // store data down the pipe - 79 6 : output logic [31:0] store_data_m, + 79 0 : output logic [31:0] store_data_m, 80 : - 81 0 : input logic [31:0] dec_tlu_mrac_ff, // CSR for memory region control + 81 0 : input logic [31:0] dec_tlu_mrac_ff, // CSR for memory region control 82 0 : output logic lsu_exc_m, // Access or misaligned fault 83 0 : output logic is_sideeffects_m, // is sideffects space - 84 1420 : output logic lsu_commit_r, // lsu instruction in r commits + 84 460 : output logic lsu_commit_r, // lsu instruction in r commits 85 0 : output logic lsu_single_ecc_error_incr,// LSU inc SB error counter 86 0 : output el2_lsu_error_pkt_t lsu_error_pkt_r, // lsu exception packet 87 : @@ -211,26 +211,26 @@ 107 0 : input logic [63:0] dma_mem_wdata, 108 : 109 : // Store buffer related signals - 110 394 : output el2_lsu_pkt_t lsu_pkt_d, - 111 394 : output el2_lsu_pkt_t lsu_pkt_m, - 112 394 : output el2_lsu_pkt_t lsu_pkt_r, + 110 24 : output el2_lsu_pkt_t lsu_pkt_d, + 111 24 : output el2_lsu_pkt_t lsu_pkt_m, + 112 24 : output el2_lsu_pkt_t lsu_pkt_r, 113 : - 114 190 : input logic lsu_pmp_error_start, - 115 190 : input logic lsu_pmp_error_end, + 114 0 : input logic lsu_pmp_error_start, + 115 0 : input logic lsu_pmp_error_end, 116 : - 117 0 : input logic scan_mode // Scan mode + 117 0 : input logic scan_mode // Scan mode 118 : 119 : ); 120 : 121 0 : logic [31:3] end_addr_pre_m, end_addr_pre_r; - 122 140 : logic [31:0] full_addr_d; - 123 140 : logic [31:0] full_end_addr_d; - 124 140 : logic [31:0] lsu_rs1_d; - 125 52 : logic [11:0] lsu_offset_d; - 126 140 : logic [31:0] rs1_d; - 127 52 : logic [11:0] offset_d; - 128 52 : logic [12:0] end_addr_offset_d; - 129 0 : logic [2:0] addr_offset_d; + 122 240 : logic [31:0] full_addr_d; + 123 240 : logic [31:0] full_end_addr_d; + 124 240 : logic [31:0] lsu_rs1_d; + 125 0 : logic [11:0] lsu_offset_d; + 126 240 : logic [31:0] rs1_d; + 127 0 : logic [11:0] offset_d; + 128 0 : logic [12:0] end_addr_offset_d; + 129 0 : logic [2:0] addr_offset_d; 130 : 131 0 : logic [63:0] dma_mem_wdata_shifted; 132 2 : logic addr_external_d; @@ -242,12 +242,12 @@ 138 0 : logic fir_dccm_access_error_m, fir_nondccm_access_error_m; 139 : 140 0 : logic [3:0] exc_mscause_d, exc_mscause_m; - 141 140 : logic [31:0] rs1_d_raw; - 142 6 : logic [31:0] store_data_d, store_data_pre_m, store_data_m_in; - 143 0 : logic [31:0] bus_read_data_r; + 141 240 : logic [31:0] rs1_d_raw; + 142 0 : logic [31:0] store_data_d, store_data_pre_m, store_data_m_in; + 143 0 : logic [31:0] bus_read_data_r; 144 : 145 0 : el2_lsu_pkt_t dma_pkt_d; - 146 394 : el2_lsu_pkt_t lsu_pkt_m_in, lsu_pkt_r_in; + 146 24 : el2_lsu_pkt_t lsu_pkt_m_in, lsu_pkt_r_in; 147 0 : el2_lsu_error_pkt_t lsu_error_pkt_m; 148 : 149 : diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_stbuf.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_stbuf.sv.html index e1542b6119a..3c29627e88c 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_stbuf.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_stbuf.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -137,23 +137,23 @@ 33 : `include "el2_param.vh" 34 : ) 35 : ( - 36 66208 : input logic clk, // core clock + 36 14760 : input logic clk, // core clock 37 2 : input logic rst_l, // reset 38 : - 39 66208 : input logic lsu_stbuf_c1_clk, // stbuf clock - 40 66208 : input logic lsu_free_c2_clk, // free clk + 39 14760 : input logic lsu_stbuf_c1_clk, // stbuf clock + 40 14760 : input logic lsu_free_c2_clk, // free clk 41 : 42 : // Store Buffer input 43 0 : input logic store_stbuf_reqvld_r, // core instruction goes to stbuf - 44 1420 : input logic lsu_commit_r, // lsu commits - 45 1420 : input logic dec_lsu_valid_raw_d, // Speculative decode valid + 44 460 : input logic lsu_commit_r, // lsu commits + 45 460 : input logic dec_lsu_valid_raw_d, // Speculative decode valid 46 0 : input logic [pt.DCCM_DATA_WIDTH-1:0] store_data_hi_r, // merged data from the dccm for stores. This is used for fwding - 47 6 : input logic [pt.DCCM_DATA_WIDTH-1:0] store_data_lo_r, // merged data from the dccm for stores. This is used for fwding - 48 0 : input logic [pt.DCCM_DATA_WIDTH-1:0] store_datafn_hi_r, // merged data from the dccm for stores - 49 6 : input logic [pt.DCCM_DATA_WIDTH-1:0] store_datafn_lo_r, // merged data from the dccm for stores + 47 0 : input logic [pt.DCCM_DATA_WIDTH-1:0] store_data_lo_r, // merged data from the dccm for stores. This is used for fwding + 48 0 : input logic [pt.DCCM_DATA_WIDTH-1:0] store_datafn_hi_r, // merged data from the dccm for stores + 49 0 : input logic [pt.DCCM_DATA_WIDTH-1:0] store_datafn_lo_r, // merged data from the dccm for stores 50 : 51 : // Store Buffer output - 52 0 : output logic stbuf_reqvld_any, // stbuf is draining + 52 0 : output logic stbuf_reqvld_any, // stbuf is draining 53 0 : output logic stbuf_reqvld_flushed_any, // Top entry is flushed 54 0 : output logic [pt.LSU_SB_BITS-1:0] stbuf_addr_any, // address 55 0 : output logic [pt.DCCM_DATA_WIDTH-1:0] stbuf_data_any, // stbuf data @@ -163,13 +163,13 @@ 59 2 : output logic lsu_stbuf_empty_any, // stbuf is empty 60 0 : output logic ldst_stbuf_reqvld_r, // needed for clocking 61 : - 62 140 : input logic [pt.LSU_SB_BITS-1:0] lsu_addr_d, // lsu address D-stage - 63 140 : input logic [31:0] lsu_addr_m, // lsu address M-stage - 64 140 : input logic [31:0] lsu_addr_r, // lsu address R-stage + 62 240 : input logic [pt.LSU_SB_BITS-1:0] lsu_addr_d, // lsu address D-stage + 63 240 : input logic [31:0] lsu_addr_m, // lsu address M-stage + 64 240 : input logic [31:0] lsu_addr_r, // lsu address R-stage 65 : - 66 140 : input logic [pt.LSU_SB_BITS-1:0] end_addr_d, // lsu end address D-stage - needed to check unaligned - 67 140 : input logic [31:0] end_addr_m, // lsu end address M-stage - needed to check unaligned - 68 140 : input logic [31:0] end_addr_r, // lsu end address R-stage - needed to check unaligned + 66 240 : input logic [pt.LSU_SB_BITS-1:0] end_addr_d, // lsu end address D-stage - needed to check unaligned + 67 240 : input logic [31:0] end_addr_m, // lsu end address M-stage - needed to check unaligned + 68 240 : input logic [31:0] end_addr_r, // lsu end address R-stage - needed to check unaligned 69 : 70 0 : input logic ldst_dual_d, ldst_dual_m, ldst_dual_r, 71 0 : input logic addr_in_dccm_m, // address is in dccm @@ -177,8 +177,8 @@ 73 : 74 : // Forwarding signals 75 0 : input logic lsu_cmpen_m, // needed for forwarding stbuf - load - 76 394 : input el2_lsu_pkt_t lsu_pkt_m, // LSU packet M-stage - 77 394 : input el2_lsu_pkt_t lsu_pkt_r, // LSU packet R-stage + 76 24 : input el2_lsu_pkt_t lsu_pkt_m, // LSU packet M-stage + 77 24 : input el2_lsu_pkt_t lsu_pkt_r, // LSU packet R-stage 78 : 79 0 : output logic [pt.DCCM_DATA_WIDTH-1:0] stbuf_fwddata_hi_m, // stbuf data 80 0 : output logic [pt.DCCM_DATA_WIDTH-1:0] stbuf_fwddata_lo_m, // stbuf data @@ -206,13 +206,13 @@ 102 0 : logic [DEPTH-1:0] stbuf_wr_en; 103 0 : logic [DEPTH-1:0] stbuf_dma_kill_en; 104 0 : logic [DEPTH-1:0] stbuf_reset; - 105 140 : logic [DEPTH-1:0][pt.LSU_SB_BITS-1:0] stbuf_addrin; + 105 240 : logic [DEPTH-1:0][pt.LSU_SB_BITS-1:0] stbuf_addrin; 106 0 : logic [DEPTH-1:0][DATA_WIDTH-1:0] stbuf_datain; 107 0 : logic [DEPTH-1:0][BYTE_WIDTH-1:0] stbuf_byteenin; 108 : 109 0 : logic [7:0] store_byteen_ext_r; 110 0 : logic [BYTE_WIDTH-1:0] store_byteen_hi_r; - 111 240 : logic [BYTE_WIDTH-1:0] store_byteen_lo_r; + 111 12 : logic [BYTE_WIDTH-1:0] store_byteen_lo_r; 112 : 113 0 : logic WrPtrEn, RdPtrEn; 114 0 : logic [DEPTH_LOG2-1:0] WrPtr, RdPtr; @@ -225,7 +225,7 @@ 121 0 : logic [3:0] stbuf_numvld_any, stbuf_specvld_any; 122 0 : logic [1:0] stbuf_specvld_m, stbuf_specvld_r; 123 : - 124 140 : logic [pt.LSU_SB_BITS-1:$clog2(BYTE_WIDTH)] cmpaddr_hi_m, cmpaddr_lo_m; + 124 240 : logic [pt.LSU_SB_BITS-1:$clog2(BYTE_WIDTH)] cmpaddr_hi_m, cmpaddr_lo_m; 125 : 126 : // variables to detect matching from the store queue 127 0 : logic [DEPTH-1:0] stbuf_match_hi, stbuf_match_lo; @@ -241,7 +241,7 @@ 137 0 : logic [BYTE_WIDTH-1:0] ld_byte_hit_hi, ld_byte_rhit_hi; 138 : 139 0 : logic [BYTE_WIDTH-1:0] ldst_byteen_hi_r; - 140 325 : logic [BYTE_WIDTH-1:0] ldst_byteen_lo_r; + 140 76 : logic [BYTE_WIDTH-1:0] ldst_byteen_lo_r; 141 : // byte_en flowing down 142 0 : logic [7:0] ldst_byteen_r; 143 0 : logic [7:0] ldst_byteen_ext_r; diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_trigger.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_trigger.sv.html index 07086465d97..c82878b5132 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_trigger.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_lsu_trigger.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -132,11 +132,11 @@ 28 : `include "el2_param.vh" 29 : )( 30 0 : input el2_trigger_pkt_t [3:0] trigger_pkt_any, // trigger packet from dec - 31 394 : input el2_lsu_pkt_t lsu_pkt_m, // lsu packet - 32 140 : input logic [31:0] lsu_addr_m, // address - 33 6 : input logic [31:0] store_data_m, // store data + 31 24 : input el2_lsu_pkt_t lsu_pkt_m, // lsu packet + 32 240 : input logic [31:0] lsu_addr_m, // address + 33 0 : input logic [31:0] store_data_m, // store data 34 : - 35 0 : output logic [3:0] lsu_trigger_match_m // match result + 35 0 : output logic [3:0] lsu_trigger_match_m // match result 36 : ); 37 : 38 0 : logic trigger_enable; diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_mem.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_mem.sv.html index 27b47497094..3f8a1387fc6 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_mem.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_mem.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -126,7 +126,7 @@ 22 : `include "el2_param.vh" 23 : ) 24 : ( - 25 66208 : input logic clk, + 25 14760 : input logic clk, 26 2 : input logic rst_l, 27 0 : input logic dccm_clk_override, 28 0 : input logic icm_clk_override, @@ -137,8 +137,8 @@ 33 0 : input logic dccm_rden, 34 0 : input logic [pt.DCCM_BITS-1:0] dccm_wr_addr_lo, 35 0 : input logic [pt.DCCM_BITS-1:0] dccm_wr_addr_hi, - 36 140 : input logic [pt.DCCM_BITS-1:0] dccm_rd_addr_lo, - 37 140 : input logic [pt.DCCM_BITS-1:0] dccm_rd_addr_hi, + 36 240 : input logic [pt.DCCM_BITS-1:0] dccm_rd_addr_lo, + 37 240 : input logic [pt.DCCM_BITS-1:0] dccm_rd_addr_hi, 38 0 : input logic [pt.DCCM_FDATA_WIDTH-1:0] dccm_wr_data_lo, 39 0 : input logic [pt.DCCM_FDATA_WIDTH-1:0] dccm_wr_data_hi, 40 : @@ -147,7 +147,7 @@ 43 0 : output logic [pt.DCCM_FDATA_WIDTH-1:0] dccm_rd_data_hi, 44 : 45 : //ICCM ports - 46 26 : input logic [pt.ICCM_BITS-1:1] iccm_rw_addr, + 46 4 : input logic [pt.ICCM_BITS-1:1] iccm_rw_addr, 47 0 : input logic iccm_buf_correct_ecc, // ICCM is doing a single bit error correct cycle 48 0 : input logic iccm_correction_state, // ICCM is doing a single bit error correct cycle 49 0 : input logic iccm_wren, @@ -164,12 +164,12 @@ 60 0 : input logic [pt.ICACHE_NUM_WAYS-1:0] ic_tag_valid, 61 0 : input logic [pt.ICACHE_NUM_WAYS-1:0] ic_wr_en, 62 0 : input logic ic_rd_en, - 63 962 : input logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. - 64 3842 : input logic ic_sel_premux_data, // Premux data sel + 63 44 : input logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. + 64 970 : input logic ic_sel_premux_data, // Premux data sel 65 0 : input el2_ic_data_ext_in_pkt_t [pt.ICACHE_NUM_WAYS-1:0][pt.ICACHE_BANKS_WAY-1:0] ic_data_ext_in_pkt, 66 0 : input el2_ic_tag_ext_in_pkt_t [pt.ICACHE_NUM_WAYS-1:0] ic_tag_ext_in_pkt, 67 : - 68 150 : input logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data, // Data to fill to the Icache. With ECC + 68 16 : input logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data, // Data to fill to the Icache. With ECC 69 0 : input logic [70:0] ic_debug_wr_data, // Debug wr cache. 70 0 : output logic [70:0] ic_debug_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 71 0 : input logic [pt.ICACHE_INDEX_HI:3] ic_debug_addr, // Read/Write addresss to the Icache. @@ -178,7 +178,7 @@ 74 0 : input logic ic_debug_tag_array, // Debug tag array 75 0 : input logic [pt.ICACHE_NUM_WAYS-1:0] ic_debug_way, // Debug way. Rd or Wr. 76 : - 77 962 : output logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC + 77 44 : output logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 78 0 : output logic [25:0] ictag_debug_rd_data,// Debug icache tag. 79 : 80 : @@ -193,7 +193,7 @@ 89 : 90 : ); 91 : - 92 66208 : logic active_clk; + 92 14760 : logic active_clk; 93 : rvoclkhdr active_cg ( .en(1'b1), .l1clk(active_clk), .* ); 94 : 95 : el2_mem_if mem_export_local (); diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_mem_if.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_mem_if.sv.html index 80253f17d1b..652f6518e5e 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_mem_if.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_mem_if.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -130,14 +130,14 @@ 26 : 27 : ////////////////////////////////////////// 28 : // Clock - 29 96804 : logic clk; + 29 22308 : logic clk; 30 : 31 : 32 : ////////////////////////////////////////// 33 : // ICCM 34 0 : logic [pt.ICCM_NUM_BANKS-1:0] iccm_clken; 35 0 : logic [pt.ICCM_NUM_BANKS-1:0] iccm_wren_bank; - 36 78 : logic [pt.ICCM_NUM_BANKS-1:0][pt.ICCM_BITS-1:pt.ICCM_BANK_INDEX_LO] iccm_addr_bank; + 36 12 : logic [pt.ICCM_NUM_BANKS-1:0][pt.ICCM_BITS-1:pt.ICCM_BANK_INDEX_LO] iccm_addr_bank; 37 : 38 0 : logic [pt.ICCM_NUM_BANKS-1:0][ 31:0] iccm_bank_wr_data; 39 0 : logic [pt.ICCM_NUM_BANKS-1:0][ pt.ICCM_ECC_WIDTH-1:0] iccm_bank_wr_ecc; @@ -149,7 +149,7 @@ 45 : // DCCM 46 0 : logic [pt.DCCM_NUM_BANKS-1:0] dccm_clken; 47 0 : logic [pt.DCCM_NUM_BANKS-1:0] dccm_wren_bank; - 48 420 : logic [pt.DCCM_NUM_BANKS-1:0][pt.DCCM_BITS-1:(pt.DCCM_BANK_BITS+2)] dccm_addr_bank; + 48 720 : logic [pt.DCCM_NUM_BANKS-1:0][pt.DCCM_BITS-1:(pt.DCCM_BANK_BITS+2)] dccm_addr_bank; 49 0 : logic [pt.DCCM_NUM_BANKS-1:0][ pt.DCCM_DATA_WIDTH-1:0] dccm_wr_data_bank; 50 0 : logic [pt.DCCM_NUM_BANKS-1:0][ DCCM_ECC_WIDTH-1:0] dccm_wr_ecc_bank; 51 0 : logic [pt.DCCM_NUM_BANKS-1:0][ pt.DCCM_DATA_WIDTH-1:0] dccm_bank_dout; diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_pic_ctrl.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_pic_ctrl.sv.html index e2379cd1c69..5272b96afcd 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_pic_ctrl.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_pic_ctrl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -131,16 +131,16 @@ 27 : ) 28 : ( 29 : - 30 66208 : input logic clk, // Core clock - 31 66208 : input logic free_clk, // free clock + 30 14760 : input logic clk, // Core clock + 31 14760 : input logic free_clk, // free clock 32 2 : input logic rst_l, // Reset for all flops 33 0 : input logic clk_override, // Clock over-ride for gating 34 2 : input logic io_clk_override, // PIC IO Clock over-ride for gating 35 0 : input logic [pt.PIC_TOTAL_INT_PLUS1-1:0] extintsrc_req, // Interrupt requests - 36 121 : input logic [31:0] picm_rdaddr, // Address of the register - 37 121 : input logic [31:0] picm_wraddr, // Address of the register - 38 6 : input logic [31:0] picm_wr_data, // Data to be written to the register - 39 0 : input logic picm_wren, // Write enable to the register + 36 240 : input logic [31:0] picm_rdaddr, // Address of the register + 37 240 : input logic [31:0] picm_wraddr, // Address of the register + 38 0 : input logic [31:0] picm_wr_data, // Data to be written to the register + 39 0 : input logic picm_wren, // Write enable to the register 40 0 : input logic picm_rden, // Read enable for the register 41 0 : input logic picm_mken, // Read the Mask for the register 42 0 : input logic [3:0] meicurpl, // Current Priority Level @@ -185,11 +185,11 @@ 81 : 82 0 : logic raddr_config_pic_match ; 83 0 : logic raddr_intenable_base_match; - 84 946 : logic raddr_intpriority_base_match; + 84 242 : logic raddr_intpriority_base_match; 85 0 : logic raddr_config_gw_base_match ; 86 : 87 0 : logic waddr_config_pic_match ; - 88 946 : logic waddr_intpriority_base_match; + 88 242 : logic waddr_intpriority_base_match; 89 0 : logic waddr_intenable_base_match; 90 0 : logic waddr_config_gw_base_match ; 91 0 : logic addr_clear_gw_base_match ; @@ -228,16 +228,16 @@ 124 0 : logic intpriord; 125 0 : logic config_reg_we ; 126 0 : logic config_reg_re ; - 127 216 : logic config_reg_in ; + 127 100 : logic config_reg_in ; 128 0 : logic prithresh_reg_write , prithresh_reg_read; 129 0 : logic intpriority_reg_read ; 130 0 : logic intenable_reg_read ; 131 0 : logic gw_config_reg_read ; 132 0 : logic picm_wren_ff , picm_rden_ff ; - 133 121 : logic [31:0] picm_raddr_ff; - 134 121 : logic [31:0] picm_waddr_ff; - 135 6 : logic [31:0] picm_wr_data_ff; - 136 0 : logic [3:0] mask; + 133 240 : logic [31:0] picm_raddr_ff; + 134 240 : logic [31:0] picm_waddr_ff; + 135 0 : logic [31:0] picm_wr_data_ff; + 136 0 : logic [3:0] mask; 137 0 : logic picm_mken_ff; 138 0 : logic [ID_BITS-1:0] claimid_in ; 139 0 : logic [INTPRIORITY_BITS-1:0] pl_in ; @@ -256,11 +256,11 @@ 152 0 : logic gw_config_c1_clken; 153 : 154 : // clocks - 155 66208 : logic pic_raddr_c1_clk; - 156 66208 : logic pic_data_c1_clk; - 157 66208 : logic pic_pri_c1_clk; - 158 66208 : logic pic_int_c1_clk; - 159 66208 : logic gw_config_c1_clk; + 155 14760 : logic pic_raddr_c1_clk; + 156 14760 : logic pic_data_c1_clk; + 157 14760 : logic pic_pri_c1_clk; + 158 14760 : logic pic_int_c1_clk; + 159 14760 : logic gw_config_c1_clk; 160 : 161 : // ---- Clock gating section ------ 162 : // c1 clock enables @@ -601,13 +601,13 @@ 497 2 : intpriority_rd_out = '0 ; 498 2 : gw_config_rd_out = '0 ; 499 2 : for (int i=0; i<pt.PIC_TOTAL_INT_PLUS1; i++) begin - 500 913600 : if (intenable_reg_re[i]) begin + 500 516288 : if (intenable_reg_re[i]) begin 501 0 : intenable_rd_out = intenable_reg[i] ; 502 : end - 503 913600 : if (intpriority_reg_re[i]) begin + 503 516288 : if (intpriority_reg_re[i]) begin 504 0 : intpriority_rd_out = intpriority_reg[i] ; 505 : end - 506 913600 : if (gw_config_reg_re[i]) begin + 506 516288 : if (gw_config_reg_re[i]) begin 507 0 : gw_config_rd_out = gw_config_reg[i] ; 508 : end 509 : end @@ -627,7 +627,7 @@ 523 : 524 : assign picm_rd_data[31:0] = picm_bypass_ff ? picm_wr_data_ff[31:0] : picm_rd_data_in[31:0] ; 525 : - 526 140 : logic [14:0] address; + 526 240 : logic [14:0] address; 527 : 528 : assign address[14:0] = picm_raddr_ff[14:0]; 529 : @@ -663,7 +663,7 @@ 559 : 560 : module el2_configurable_gw ( 561 0 : input logic gw_clk, - 562 1000308 : input logic rawclk, + 562 230516 : input logic rawclk, 563 62 : input logic clken, 564 62 : input logic rst_l, 565 0 : input logic extintsrc_req , diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_pmp.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_pmp.sv.html index f7d12fd097b..4f969b434fb 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_pmp.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_pmp.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -127,29 +127,29 @@ 23 : parameter PMP_GRANULARITY = 0, // TODO: Move to veer.config 24 : `include "el2_param.vh" 25 : ) ( - 26 66208 : input logic clk, // Top level clock + 26 14760 : input logic clk, // Top level clock 27 2 : input logic rst_l, // Reset 28 0 : input logic scan_mode, // Scan mode 29 : 30 : `ifdef RV_SMEPMP - 31 0 : input el2_mseccfg_pkt_t mseccfg, // mseccfg CSR content, RLB, MMWP and MML bits + 31 : input el2_mseccfg_pkt_t mseccfg, // mseccfg CSR content, RLB, MMWP and MML bits 32 : `endif 33 : 34 : `ifdef RV_USER_MODE - 35 0 : input logic priv_mode_ns, // operating privilege mode (next clock cycle) - 36 2 : input logic priv_mode_eff, // operating effective privilege mode + 35 : input logic priv_mode_ns, // operating privilege mode (next clock cycle) + 36 : input logic priv_mode_eff, // operating effective privilege mode 37 : `endif 38 : - 39 0 : input el2_pmp_cfg_pkt_t pmp_pmpcfg [pt.PMP_ENTRIES], + 39 0 : input el2_pmp_cfg_pkt_t pmp_pmpcfg [pt.PMP_ENTRIES], 40 : input logic [31:0] pmp_pmpaddr[pt.PMP_ENTRIES], 41 : - 42 140 : input logic [31:0] pmp_chan_addr[PMP_CHANNELS], + 42 240 : input logic [31:0] pmp_chan_addr[PMP_CHANNELS], 43 0 : input el2_pmp_type_pkt_t pmp_chan_type[PMP_CHANNELS], - 44 190 : output logic pmp_chan_err [PMP_CHANNELS] + 44 0 : output logic pmp_chan_err [PMP_CHANNELS] 45 : ); 46 : 47 : logic [ 33:0] csr_pmp_addr_i [pt.PMP_ENTRIES]; - 48 140 : logic [ 33:0] pmp_req_addr_i [ PMP_CHANNELS]; + 48 240 : logic [ 33:0] pmp_req_addr_i [ PMP_CHANNELS]; 49 : 50 : logic [ 33:0] region_start_addr [pt.PMP_ENTRIES]; 51 : logic [33:PMP_GRANULARITY+2] region_addr_mask [pt.PMP_ENTRIES]; @@ -161,7 +161,7 @@ 57 2 : logic [ PMP_CHANNELS-1:0][pt.PMP_ENTRIES-1:0] region_perm_check; 58 : 59 : `ifdef RV_USER_MODE - 60 1 : logic any_region_enabled; + 60 : logic any_region_enabled; 61 : `endif 62 : 63 : /////////////////////// @@ -234,13 +234,13 @@ 130 : 131 : // Compute permissions checks that apply when MSECCFG.MML is unset. This is the original PMP 132 : // behaviour before Smepmp was added. - 133 1710432 : function automatic logic orig_perm_check(logic pmp_cfg_lock, + 133 967776 : function automatic logic orig_perm_check(logic pmp_cfg_lock, 134 : logic priv_mode, 135 : logic permission_check); 136 : // For M-mode, any region which matches with the L-bit clear, or with sufficient 137 : // access permissions will be allowed. 138 : // For other modes, the lock bit doesn't matter - 139 1710432 : return priv_mode ? (permission_check) : (~pmp_cfg_lock | permission_check); + 139 967776 : return priv_mode ? (permission_check) : (~pmp_cfg_lock | permission_check); 140 : endfunction 141 : 142 : // Access fault determination / prioritization @@ -255,14 +255,14 @@ 151 : `ifdef RV_SMEPMP 152 : // When MSECCFG.MMWP is set default deny always, otherwise allow for M-mode, deny for other 153 : // modes. Also deny unmatched for M-mode when MSECCFG.MML is set and request type is EXEC. - 154 6 : logic access_fail = csr_pmp_mseccfg.MMWP | priv_mode | - 155 6 : (csr_pmp_mseccfg.MML && (req_type == EXEC)); + 154 3 : logic access_fail = csr_pmp_mseccfg.MMWP | priv_mode | + 155 3 : (csr_pmp_mseccfg.MML && (req_type == EXEC)); 156 : `else 157 : // When in user mode and at least one PMP region is enabled deny access by default. 158 : logic access_fail = any_region_enabled & priv_mode; 159 : `endif 160 : `else - 161 : logic access_fail = 1'b0; + 161 3 : logic access_fail = 1'b0; 162 : `endif 163 : 164 6 : logic matched = 1'b0; @@ -270,9 +270,9 @@ 166 : // PMP entries are statically prioritized, from 0 to N-1 167 : // The lowest-numbered PMP entry which matches an address determines accessibility 168 6 : for (int r = 0; r < pt.PMP_ENTRIES; r++) begin - 169 109734 : if (!matched && match_all[r]) begin - 170 109734 : access_fail = ~final_perm_check[r]; - 171 109734 : matched = 1'b1; + 169 62370 : if (!matched && match_all[r]) begin + 170 62370 : access_fail = ~final_perm_check[r]; + 171 62370 : matched = 1'b1; 172 : end 173 : end 174 6 : return access_fail; @@ -283,7 +283,7 @@ 179 : // --------------- 180 : 181 : `ifdef RV_USER_MODE - 182 0 : logic [pt.PMP_ENTRIES-1:0] region_enabled; + 182 : logic [pt.PMP_ENTRIES-1:0] region_enabled; 183 : for (genvar r = 0; r < pt.PMP_ENTRIES; r++) begin : g_reg_ena 184 : assign region_enabled[r] = pmp_pmpcfg[r].mode != OFF; 185 : end @@ -324,7 +324,7 @@ 220 : end 221 : 222 : `ifdef RV_USER_MODE - 223 2 : logic [PMP_CHANNELS-1:0] pmp_priv_mode_eff; + 223 : logic [PMP_CHANNELS-1:0] pmp_priv_mode_eff; 224 : for (genvar c = 0; c < PMP_CHANNELS; c++) begin : g_priv_mode_eff 225 : assign pmp_priv_mode_eff[c] = ( 226 : ((pmp_chan_type[c] == EXEC) & priv_mode_ns) | @@ -348,12 +348,12 @@ 244 96 : always_comb begin 245 96 : region_match_all[c][r] = 1'b0; 246 96 : unique case (pmp_pmpcfg[r].mode) - 247 1285074 : OFF: region_match_all[c][r] = 1'b0; + 247 726354 : OFF: region_match_all[c][r] = 1'b0; 248 0 : NA4: region_match_all[c][r] = region_match_eq[c][r]; 249 0 : NAPOT: region_match_all[c][r] = region_match_eq[c][r]; - 250 85326 : TOR: begin - 251 85326 : region_match_all[c][r] = (region_match_eq[c][r] | region_match_gt[c][r]) & - 252 85326 : region_match_lt[c][r]; + 250 48078 : TOR: begin + 251 48078 : region_match_all[c][r] = (region_match_eq[c][r] | region_match_gt[c][r]) & + 252 48078 : region_match_lt[c][r]; 253 : end 254 0 : default: region_match_all[c][r] = 1'b0; 255 : endcase diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_veer.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_veer.sv.html index 5da31fc5f40..42199ae88be 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_veer.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_veer.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -130,7 +130,7 @@ 26 : `include "el2_param.vh" 27 : ) 28 : ( - 29 66208 : input logic clk, + 29 14760 : input logic clk, 30 2 : input logic rst_l, 31 2 : input logic dbg_rst_l, 32 0 : input logic [31:1] rst_vec, @@ -138,12 +138,12 @@ 34 0 : input logic [31:1] nmi_vec, 35 2 : output logic core_rst_l, // This is "rst_l | dbg_rst_l" 36 : - 37 66208 : output logic active_l2clk, - 38 66208 : output logic free_l2clk, + 37 14760 : output logic active_l2clk, + 38 14760 : output logic free_l2clk, 39 : - 40 471 : output logic [31:0] trace_rv_i_insn_ip, + 40 8 : output logic [31:0] trace_rv_i_insn_ip, 41 2 : output logic [31:0] trace_rv_i_address_ip, - 42 4304 : output logic trace_rv_i_valid_ip, + 42 976 : output logic trace_rv_i_valid_ip, 43 0 : output logic trace_rv_i_exception_ip, 44 0 : output logic [4:0] trace_rv_i_ecause_ip, 45 0 : output logic trace_rv_i_interrupt_ip, @@ -182,8 +182,8 @@ 78 0 : output logic dccm_rden, 79 0 : output logic [pt.DCCM_BITS-1:0] dccm_wr_addr_lo, 80 0 : output logic [pt.DCCM_BITS-1:0] dccm_wr_addr_hi, - 81 140 : output logic [pt.DCCM_BITS-1:0] dccm_rd_addr_lo, - 82 140 : output logic [pt.DCCM_BITS-1:0] dccm_rd_addr_hi, + 81 240 : output logic [pt.DCCM_BITS-1:0] dccm_rd_addr_lo, + 82 240 : output logic [pt.DCCM_BITS-1:0] dccm_rd_addr_hi, 83 0 : output logic [pt.DCCM_FDATA_WIDTH-1:0] dccm_wr_data_lo, 84 0 : output logic [pt.DCCM_FDATA_WIDTH-1:0] dccm_wr_data_hi, 85 : @@ -191,7 +191,7 @@ 87 0 : input logic [pt.DCCM_FDATA_WIDTH-1:0] dccm_rd_data_hi, 88 : 89 : // ICCM ports - 90 26 : output logic [pt.ICCM_BITS-1:1] iccm_rw_addr, + 90 4 : output logic [pt.ICCM_BITS-1:1] iccm_rw_addr, 91 0 : output logic iccm_wren, 92 0 : output logic iccm_rden, 93 0 : output logic [2:0] iccm_wr_size, @@ -208,16 +208,16 @@ 104 0 : output logic [pt.ICACHE_NUM_WAYS-1:0] ic_wr_en, 105 0 : output logic ic_rd_en, 106 : - 107 150 : output logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data, // Data to fill to the Icache. With ECC - 108 962 : input logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC + 107 16 : output logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data, // Data to fill to the Icache. With ECC + 108 44 : input logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 109 0 : input logic [70:0] ic_debug_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 110 0 : input logic [25:0] ictag_debug_rd_data,// Debug icache tag. 111 0 : output logic [70:0] ic_debug_wr_data, // Debug wr cache. 112 : 113 0 : input logic [pt.ICACHE_BANKS_WAY-1:0] ic_eccerr, 114 0 : input logic [pt.ICACHE_BANKS_WAY-1:0] ic_parerr, - 115 962 : output logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. - 116 3842 : output logic ic_sel_premux_data, // Select premux data + 115 44 : output logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. + 116 970 : output logic ic_sel_premux_data, // Select premux data 117 : 118 : 119 0 : output logic [pt.ICACHE_INDEX_HI:3] ic_debug_addr, // Read/Write addresss to the Icache. @@ -233,10 +233,10 @@ 129 : 130 : //-------------------------- LSU AXI signals-------------------------- 131 : // AXI Write Channels - 132 888 : output logic lsu_axi_awvalid, + 132 240 : output logic lsu_axi_awvalid, 133 0 : input logic lsu_axi_awready, 134 0 : output logic [pt.LSU_BUS_TAG-1:0] lsu_axi_awid, - 135 111 : output logic [31:0] lsu_axi_awaddr, + 135 220 : output logic [31:0] lsu_axi_awaddr, 136 2 : output logic [3:0] lsu_axi_awregion, 137 0 : output logic [7:0] lsu_axi_awlen, 138 0 : output logic [2:0] lsu_axi_awsize, @@ -246,10 +246,10 @@ 142 0 : output logic [2:0] lsu_axi_awprot, 143 0 : output logic [3:0] lsu_axi_awqos, 144 : - 145 888 : output logic lsu_axi_wvalid, + 145 240 : output logic lsu_axi_wvalid, 146 0 : input logic lsu_axi_wready, 147 0 : output logic [63:0] lsu_axi_wdata, - 148 148 : output logic [7:0] lsu_axi_wstrb, + 148 8 : output logic [7:0] lsu_axi_wstrb, 149 2 : output logic lsu_axi_wlast, 150 : 151 0 : input logic lsu_axi_bvalid, @@ -258,10 +258,10 @@ 154 0 : input logic [pt.LSU_BUS_TAG-1:0] lsu_axi_bid, 155 : 156 : // AXI Read Channels - 157 660 : output logic lsu_axi_arvalid, + 157 228 : output logic lsu_axi_arvalid, 158 0 : input logic lsu_axi_arready, 159 0 : output logic [pt.LSU_BUS_TAG-1:0] lsu_axi_arid, - 160 111 : output logic [31:0] lsu_axi_araddr, + 160 220 : output logic [31:0] lsu_axi_araddr, 161 2 : output logic [3:0] lsu_axi_arregion, 162 0 : output logic [7:0] lsu_axi_arlen, 163 0 : output logic [2:0] lsu_axi_arsize, @@ -305,10 +305,10 @@ 201 0 : input logic [pt.IFU_BUS_TAG-1:0] ifu_axi_bid, 202 : 203 : // AXI Read Channels - 204 4336 : output logic ifu_axi_arvalid, + 204 988 : output logic ifu_axi_arvalid, 205 0 : input logic ifu_axi_arready, - 206 2620 : output logic [pt.IFU_BUS_TAG-1:0] ifu_axi_arid, - 207 1684 : output logic [31:0] ifu_axi_araddr, + 206 512 : output logic [pt.IFU_BUS_TAG-1:0] ifu_axi_arid, + 207 20 : output logic [31:0] ifu_axi_araddr, 208 2 : output logic [3:0] ifu_axi_arregion, 209 0 : output logic [7:0] ifu_axi_arlen, 210 0 : output logic [2:0] ifu_axi_arsize, @@ -419,24 +419,24 @@ 315 0 : output logic hmastlock, 316 0 : output logic [3:0] hprot, 317 0 : output logic [2:0] hsize, - 318 4336 : output logic [1:0] htrans, + 318 988 : output logic [1:0] htrans, 319 0 : output logic hwrite, 320 : - 321 576 : input logic [63:0] hrdata, + 321 16 : input logic [63:0] hrdata, 322 2 : input logic hready, 323 0 : input logic hresp, 324 : 325 : // LSU AHB Master - 326 111 : output logic [31:0] lsu_haddr, + 326 220 : output logic [31:0] lsu_haddr, 327 0 : output logic [2:0] lsu_hburst, 328 0 : output logic lsu_hmastlock, 329 0 : output logic [3:0] lsu_hprot, 330 0 : output logic [2:0] lsu_hsize, - 331 1548 : output logic [1:0] lsu_htrans, - 332 426 : output logic lsu_hwrite, - 333 25 : output logic [63:0] lsu_hwdata, + 331 468 : output logic [1:0] lsu_htrans, + 332 222 : output logic lsu_hwrite, + 333 48 : output logic [63:0] lsu_hwdata, 334 : - 335 34 : input logic [63:0] lsu_hrdata, + 335 8 : input logic [63:0] lsu_hrdata, 336 2 : input logic lsu_hready, 337 0 : input logic lsu_hresp, 338 : @@ -496,12 +496,12 @@ 392 : 393 : 394 : - 395 386 : logic [63:0] hwdata_nc; + 395 12 : logic [63:0] hwdata_nc; 396 : //---------------------------------------------------------------------- 397 : // 398 : //---------------------------------------------------------------------- 399 : - 400 4305 : logic ifu_pmu_instr_aligned; + 400 978 : logic ifu_pmu_instr_aligned; 401 0 : logic ifu_ic_error_start; 402 0 : logic ifu_iccm_dma_rd_ecc_single_err; 403 0 : logic ifu_iccm_rd_ecc_single_err; @@ -509,55 +509,55 @@ 405 0 : logic lsu_dccm_rd_ecc_single_err; 406 0 : logic lsu_dccm_rd_ecc_double_err; 407 : - 408 1549 : logic lsu_axi_awready_ahb; - 409 1549 : logic lsu_axi_wready_ahb; - 410 886 : logic lsu_axi_bvalid_ahb; + 408 468 : logic lsu_axi_awready_ahb; + 409 468 : logic lsu_axi_wready_ahb; + 410 236 : logic lsu_axi_bvalid_ahb; 411 0 : logic lsu_axi_bready_ahb; 412 0 : logic [1:0] lsu_axi_bresp_ahb; 413 0 : logic [pt.LSU_BUS_TAG-1:0] lsu_axi_bid_ahb; - 414 1549 : logic lsu_axi_arready_ahb; - 415 718 : logic lsu_axi_rvalid_ahb; + 414 468 : logic lsu_axi_arready_ahb; + 415 232 : logic lsu_axi_rvalid_ahb; 416 0 : logic [pt.LSU_BUS_TAG-1:0] lsu_axi_rid_ahb; - 417 34 : logic [63:0] lsu_axi_rdata_ahb; + 417 8 : logic [63:0] lsu_axi_rdata_ahb; 418 0 : logic [1:0] lsu_axi_rresp_ahb; 419 2 : logic lsu_axi_rlast_ahb; 420 : - 421 1549 : logic lsu_axi_awready_int; - 422 1549 : logic lsu_axi_wready_int; - 423 886 : logic lsu_axi_bvalid_int; + 421 468 : logic lsu_axi_awready_int; + 422 468 : logic lsu_axi_wready_int; + 423 236 : logic lsu_axi_bvalid_int; 424 0 : logic lsu_axi_bready_int; 425 0 : logic [1:0] lsu_axi_bresp_int; 426 0 : logic [pt.LSU_BUS_TAG-1:0] lsu_axi_bid_int; - 427 1549 : logic lsu_axi_arready_int; - 428 718 : logic lsu_axi_rvalid_int; + 427 468 : logic lsu_axi_arready_int; + 428 232 : logic lsu_axi_rvalid_int; 429 0 : logic [pt.LSU_BUS_TAG-1:0] lsu_axi_rid_int; - 430 34 : logic [63:0] lsu_axi_rdata_int; + 430 8 : logic [63:0] lsu_axi_rdata_int; 431 0 : logic [1:0] lsu_axi_rresp_int; 432 2 : logic lsu_axi_rlast_int; 433 : - 434 4336 : logic ifu_axi_awready_ahb; - 435 4336 : logic ifu_axi_wready_ahb; + 434 988 : logic ifu_axi_awready_ahb; + 435 988 : logic ifu_axi_wready_ahb; 436 0 : logic ifu_axi_bvalid_ahb; 437 0 : logic ifu_axi_bready_ahb; 438 0 : logic [1:0] ifu_axi_bresp_ahb; - 439 1120 : logic [pt.IFU_BUS_TAG-1:0] ifu_axi_bid_ahb; - 440 4336 : logic ifu_axi_arready_ahb; - 441 8669 : logic ifu_axi_rvalid_ahb; - 442 1120 : logic [pt.IFU_BUS_TAG-1:0] ifu_axi_rid_ahb; - 443 576 : logic [63:0] ifu_axi_rdata_ahb; + 439 446 : logic [pt.IFU_BUS_TAG-1:0] ifu_axi_bid_ahb; + 440 988 : logic ifu_axi_arready_ahb; + 441 1974 : logic ifu_axi_rvalid_ahb; + 442 446 : logic [pt.IFU_BUS_TAG-1:0] ifu_axi_rid_ahb; + 443 16 : logic [63:0] ifu_axi_rdata_ahb; 444 0 : logic [1:0] ifu_axi_rresp_ahb; 445 2 : logic ifu_axi_rlast_ahb; 446 : - 447 4336 : logic ifu_axi_awready_int; - 448 4336 : logic ifu_axi_wready_int; + 447 988 : logic ifu_axi_awready_int; + 448 988 : logic ifu_axi_wready_int; 449 0 : logic ifu_axi_bvalid_int; 450 0 : logic ifu_axi_bready_int; 451 0 : logic [1:0] ifu_axi_bresp_int; - 452 1120 : logic [pt.IFU_BUS_TAG-1:0] ifu_axi_bid_int; - 453 4336 : logic ifu_axi_arready_int; - 454 8669 : logic ifu_axi_rvalid_int; - 455 1120 : logic [pt.IFU_BUS_TAG-1:0] ifu_axi_rid_int; - 456 576 : logic [63:0] ifu_axi_rdata_int; + 452 446 : logic [pt.IFU_BUS_TAG-1:0] ifu_axi_bid_int; + 453 988 : logic ifu_axi_arready_int; + 454 1974 : logic ifu_axi_rvalid_int; + 455 446 : logic [pt.IFU_BUS_TAG-1:0] ifu_axi_rid_int; + 456 16 : logic [63:0] ifu_axi_rdata_int; 457 0 : logic [1:0] ifu_axi_rresp_int; 458 2 : logic ifu_axi_rlast_int; 459 : @@ -636,13 +636,13 @@ 532 0 : el2_cache_debug_pkt_t dec_tlu_ic_diag_pkt; // packet of DICAWICS, DICAD0/1, DICAGO info for icache diagnostics 533 : 534 : - 535 3562 : logic dec_i0_rs1_en_d; - 536 1556 : logic dec_i0_rs2_en_d; - 537 12 : logic [31:0] gpr_i0_rs1_d; - 538 18 : logic [31:0] gpr_i0_rs2_d; + 535 924 : logic dec_i0_rs1_en_d; + 536 244 : logic dec_i0_rs2_en_d; + 537 8 : logic [31:0] gpr_i0_rs1_d; + 538 8 : logic [31:0] gpr_i0_rs2_d; 539 : - 540 18 : logic [31:0] dec_i0_result_r; - 541 110 : logic [31:0] exu_i0_result_x; + 540 16 : logic [31:0] dec_i0_result_r; + 541 16 : logic [31:0] exu_i0_result_x; 542 2 : logic [31:1] exu_i0_pc_x; 543 2 : logic [31:1] exu_npc_r; 544 : @@ -653,70 +653,70 @@ 549 0 : logic [3:0] lsu_trigger_match_m; 550 : 551 : - 552 324 : logic [31:0] dec_i0_immed_d; - 553 238 : logic [12:1] dec_i0_br_immed_d; - 554 244 : logic dec_i0_select_pc_d; + 552 16 : logic [31:0] dec_i0_immed_d; + 553 8 : logic [12:1] dec_i0_br_immed_d; + 554 20 : logic dec_i0_select_pc_d; 555 : 556 10 : logic [31:1] dec_i0_pc_d; - 557 40 : logic [3:0] dec_i0_rs1_bypass_en_d; - 558 0 : logic [3:0] dec_i0_rs2_bypass_en_d; + 557 0 : logic [3:0] dec_i0_rs1_bypass_en_d; + 558 0 : logic [3:0] dec_i0_rs2_bypass_en_d; 559 : - 560 3113 : logic dec_i0_alu_decode_d; - 561 1167 : logic dec_i0_branch_d; + 560 530 : logic dec_i0_alu_decode_d; + 561 246 : logic dec_i0_branch_d; 562 : - 563 4336 : logic ifu_miss_state_idle; + 563 988 : logic ifu_miss_state_idle; 564 0 : logic dec_tlu_flush_noredir_r; 565 0 : logic dec_tlu_flush_leak_one_r; 566 0 : logic dec_tlu_flush_err_r; - 567 4305 : logic ifu_i0_valid; - 568 132 : logic [31:0] ifu_i0_instr; + 567 978 : logic ifu_i0_valid; + 568 12 : logic [31:0] ifu_i0_instr; 569 10 : logic [31:1] ifu_i0_pc; 570 : - 571 345 : logic exu_flush_final; + 571 70 : logic exu_flush_final; 572 : - 573 112 : logic [31:1] exu_flush_path_final; + 573 4 : logic [31:1] exu_flush_path_final; 574 : - 575 140 : logic [31:0] exu_lsu_rs1_d; - 576 6 : logic [31:0] exu_lsu_rs2_d; + 575 240 : logic [31:0] exu_lsu_rs1_d; + 576 0 : logic [31:0] exu_lsu_rs2_d; 577 : 578 : - 579 402 : el2_lsu_pkt_t lsu_p; - 580 3081 : logic dec_qual_lsu_d; + 579 24 : el2_lsu_pkt_t lsu_p; + 580 532 : logic dec_qual_lsu_d; 581 : - 582 1420 : logic dec_lsu_valid_raw_d; - 583 52 : logic [11:0] dec_lsu_offset_d; + 582 460 : logic dec_lsu_valid_raw_d; + 583 0 : logic [11:0] dec_lsu_offset_d; 584 : - 585 0 : logic [31:0] lsu_result_m; + 585 0 : logic [31:0] lsu_result_m; 586 0 : logic [31:0] lsu_result_corr_r; // This is the ECC corrected data going to RF 587 0 : logic lsu_single_ecc_error_incr; // Increment the ecc counter 588 0 : el2_lsu_error_pkt_t lsu_error_pkt_r; 589 0 : logic lsu_imprecise_error_load_any; 590 0 : logic lsu_imprecise_error_store_any; - 591 111 : logic [31:0] lsu_imprecise_error_addr_any; + 591 220 : logic [31:0] lsu_imprecise_error_addr_any; 592 0 : logic lsu_load_stall_any; // This is for blocking loads 593 0 : logic lsu_store_stall_any; // This is for blocking stores - 594 969 : logic lsu_idle_any; // doesn't include DMA - 595 967 : logic lsu_active; // lsu is active. used for clock + 594 236 : logic lsu_idle_any; // doesn't include DMA + 595 234 : logic lsu_active; // lsu is active. used for clock 596 : 597 : 598 0 : logic [31:1] lsu_fir_addr; // fast interrupt address 599 0 : logic [1:0] lsu_fir_error; // Error during fast interrupt lookup 600 : 601 : // Non-blocking loads - 602 660 : logic lsu_nonblock_load_valid_m; - 603 202 : logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_tag_m; + 602 228 : logic lsu_nonblock_load_valid_m; + 603 20 : logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_tag_m; 604 0 : logic lsu_nonblock_load_inv_r; - 605 202 : logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_inv_tag_r; - 606 718 : logic lsu_nonblock_load_data_valid; - 607 36 : logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_data_tag; - 608 14 : logic [31:0] lsu_nonblock_load_data; + 605 20 : logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_inv_tag_r; + 606 232 : logic lsu_nonblock_load_data_valid; + 607 0 : logic [pt.LSU_NUM_NBLOAD_WIDTH-1:0] lsu_nonblock_load_data_tag; + 608 0 : logic [31:0] lsu_nonblock_load_data; 609 : - 610 24 : logic dec_csr_ren_d; - 611 41 : logic [31:0] dec_csr_rddata_d; + 610 4 : logic dec_csr_ren_d; + 611 0 : logic [31:0] dec_csr_rddata_d; 612 : - 613 0 : logic [31:0] exu_csr_rs1_x; + 613 0 : logic [31:0] exu_csr_rs1_x; 614 : - 615 4304 : logic dec_tlu_i0_commit_cmt; + 615 976 : logic dec_tlu_i0_commit_cmt; 616 4 : logic dec_tlu_flush_lower_r; 617 4 : logic dec_tlu_flush_lower_wb; 618 0 : logic dec_tlu_i0_kill_writeb_r; // I0 is flushed, don't writeback any results to arch state @@ -725,7 +725,7 @@ 621 0 : logic [31:1] dec_tlu_flush_path_r; 622 0 : logic [31:0] dec_tlu_mrac_ff; // CSR for memory region control 623 : - 624 2237 : logic ifu_i0_pc4; + 624 482 : logic ifu_i0_pc4; 625 : 626 0 : el2_mul_pkt_t mul_p; 627 : @@ -735,30 +735,30 @@ 631 0 : logic [31:0] exu_div_result; 632 0 : logic exu_div_wren; 633 : - 634 4305 : logic dec_i0_decode_d; + 634 978 : logic dec_i0_decode_d; 635 : 636 : - 637 238 : logic [31:1] pred_correct_npc_x; + 637 16 : logic [31:1] pred_correct_npc_x; 638 : - 639 258 : el2_br_tlu_pkt_t dec_tlu_br0_r_pkt; + 639 8 : el2_br_tlu_pkt_t dec_tlu_br0_r_pkt; 640 : - 641 2 : el2_predict_pkt_t exu_mp_pkt; - 642 206 : logic [pt.BHT_GHR_SIZE-1:0] exu_mp_eghr; - 643 122 : logic [pt.BHT_GHR_SIZE-1:0] exu_mp_fghr; - 644 108 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_mp_index; + 641 0 : el2_predict_pkt_t exu_mp_pkt; + 642 20 : logic [pt.BHT_GHR_SIZE-1:0] exu_mp_eghr; + 643 2 : logic [pt.BHT_GHR_SIZE-1:0] exu_mp_fghr; + 644 4 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_mp_index; 645 0 : logic [pt.BTB_BTAG_SIZE-1:0] exu_mp_btag; 646 : - 647 122 : logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_r; - 648 576 : logic [1:0] exu_i0_br_hist_r; + 647 2 : logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_r; + 648 172 : logic [1:0] exu_i0_br_hist_r; 649 0 : logic exu_i0_br_error_r; 650 0 : logic exu_i0_br_start_error_r; - 651 746 : logic exu_i0_br_valid_r; - 652 314 : logic exu_i0_br_mp_r; - 653 1268 : logic exu_i0_br_middle_r; + 651 208 : logic exu_i0_br_valid_r; + 652 64 : logic exu_i0_br_mp_r; + 653 268 : logic exu_i0_br_middle_r; 654 : - 655 258 : logic exu_i0_br_way_r; + 655 8 : logic exu_i0_br_way_r; 656 : - 657 26 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_i0_br_index_r; + 657 4 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_i0_br_index_r; 658 : 659 0 : logic dma_dccm_req; 660 0 : logic dma_iccm_req; @@ -779,8 +779,8 @@ 675 : 676 0 : logic dma_dccm_stall_any; // Stall the ld/st in decode if asserted 677 0 : logic dma_iccm_stall_any; // Stall the fetch - 678 1422 : logic dccm_ready; - 679 343 : logic iccm_ready; + 678 462 : logic dccm_ready; + 679 68 : logic iccm_ready; 680 : 681 0 : logic dma_pmu_dccm_read; 682 0 : logic dma_pmu_dccm_write; @@ -795,29 +795,29 @@ 691 0 : logic ifu_i0_dbecc; 692 0 : logic iccm_dma_sb_error; 693 : - 694 62 : el2_br_pkt_t i0_brp; - 695 122 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] ifu_i0_bp_index; - 696 554 : logic [pt.BHT_GHR_SIZE-1:0] ifu_i0_bp_fghr; + 694 12 : el2_br_pkt_t i0_brp; + 695 20 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] ifu_i0_bp_index; + 696 10 : logic [pt.BHT_GHR_SIZE-1:0] ifu_i0_bp_fghr; 697 0 : logic [pt.BTB_BTAG_SIZE-1:0] ifu_i0_bp_btag; 698 : 699 0 : logic [$clog2(pt.BTB_SIZE)-1:0] ifu_i0_fa_index; 700 0 : logic [$clog2(pt.BTB_SIZE)-1:0] dec_fa_error_index; // Fully associative btb error index 701 : 702 : - 703 232 : el2_predict_pkt_t dec_i0_predict_p_d; + 703 12 : el2_predict_pkt_t dec_i0_predict_p_d; 704 : - 705 554 : logic [pt.BHT_GHR_SIZE-1:0] i0_predict_fghr_d; // DEC predict fghr - 706 122 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] i0_predict_index_d; // DEC predict index + 705 10 : logic [pt.BHT_GHR_SIZE-1:0] i0_predict_fghr_d; // DEC predict fghr + 706 20 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] i0_predict_index_d; // DEC predict index 707 0 : logic [pt.BTB_BTAG_SIZE-1:0] i0_predict_btag_d; // DEC predict branch tag 708 : 709 : // PIC ports 710 0 : logic picm_wren; 711 0 : logic picm_rden; 712 0 : logic picm_mken; - 713 121 : logic [31:0] picm_rdaddr; - 714 121 : logic [31:0] picm_wraddr; - 715 6 : logic [31:0] picm_wr_data; - 716 0 : logic [31:0] picm_rd_data; + 713 240 : logic [31:0] picm_rdaddr; + 714 240 : logic [31:0] picm_wraddr; + 715 0 : logic [31:0] picm_wr_data; + 716 0 : logic [31:0] picm_rd_data; 717 : 718 : // feature disable from mfdc 719 0 : logic dec_tlu_external_ldfwd_disable; // disable external load forwarding @@ -843,18 +843,18 @@ 739 : // PMP Signals 740 0 : el2_pmp_cfg_pkt_t pmp_pmpcfg [pt.PMP_ENTRIES]; 741 : logic [31:0] pmp_pmpaddr [pt.PMP_ENTRIES]; - 742 140 : logic [31:0] pmp_chan_addr [3]; + 742 240 : logic [31:0] pmp_chan_addr [3]; 743 0 : el2_pmp_type_pkt_t pmp_chan_type [3]; - 744 190 : logic pmp_chan_err [3]; + 744 0 : logic pmp_chan_err [3]; 745 : - 746 2 : logic [31:1] ifu_pmp_addr; + 746 2 : logic [31:1] ifu_pmp_addr; 747 0 : logic ifu_pmp_error; - 748 140 : logic [31:0] lsu_pmp_addr_start; - 749 190 : logic lsu_pmp_error_start; - 750 140 : logic [31:0] lsu_pmp_addr_end; - 751 190 : logic lsu_pmp_error_end; - 752 760 : logic lsu_pmp_we; - 753 660 : logic lsu_pmp_re; + 748 240 : logic [31:0] lsu_pmp_addr_start; + 749 0 : logic lsu_pmp_error_start; + 750 240 : logic [31:0] lsu_pmp_addr_end; + 751 0 : logic lsu_pmp_error_end; + 752 232 : logic lsu_pmp_we; + 753 228 : logic lsu_pmp_re; 754 : 755 : // -----------------------DEBUG START ------------------------------- 756 : @@ -870,7 +870,7 @@ 766 : 767 0 : logic core_dbg_cmd_done; // Final muxed cmd done to debug 768 0 : logic core_dbg_cmd_fail; // Final muxed cmd done to debug - 769 18 : logic [31:0] core_dbg_rddata; // Final muxed cmd done to debug + 769 16 : logic [31:0] core_dbg_rddata; // Final muxed cmd done to debug 770 : 771 0 : logic dma_dbg_cmd_done; // Abstarct memory command sent to dma is done 772 0 : logic dma_dbg_cmd_fail; // Abstarct memory command sent to dma failed @@ -879,7 +879,7 @@ 775 0 : logic dbg_dma_bubble; // Debug needs a bubble to send a valid 776 0 : logic dma_dbg_ready; // DMA is ready to accept debug request 777 : - 778 18 : logic [31:0] dec_dbg_rddata; // The core drives this data ( intercepts the pipe and sends it here ) + 778 16 : logic [31:0] dec_dbg_rddata; // The core drives this data ( intercepts the pipe and sends it here ) 779 0 : logic dec_dbg_cmd_done; // This will be treated like a valid signal 780 0 : logic dec_dbg_cmd_fail; // Abstract command failed 781 0 : logic dec_tlu_mpc_halted_only; // Only halted due to MPC @@ -889,43 +889,43 @@ 785 0 : logic dec_debug_wdata_rs1_d; 786 0 : logic dec_tlu_force_halt; // halt has been forced 787 : - 788 4304 : logic [1:0] dec_data_en; - 789 4304 : logic [1:0] dec_ctl_en; + 788 976 : logic [1:0] dec_data_en; + 789 976 : logic [1:0] dec_ctl_en; 790 : 791 : // PMU Signals - 792 314 : logic exu_pmu_i0_br_misp; - 793 706 : logic exu_pmu_i0_br_ataken; - 794 930 : logic exu_pmu_i0_pc4; + 792 64 : logic exu_pmu_i0_br_misp; + 793 232 : logic exu_pmu_i0_br_ataken; + 794 242 : logic exu_pmu_i0_pc4; 795 : - 796 660 : logic lsu_pmu_load_external_m; - 797 760 : logic lsu_pmu_store_external_m; + 796 228 : logic lsu_pmu_load_external_m; + 797 232 : logic lsu_pmu_store_external_m; 798 0 : logic lsu_pmu_misaligned_m; - 799 1548 : logic lsu_pmu_bus_trxn; + 799 468 : logic lsu_pmu_bus_trxn; 800 0 : logic lsu_pmu_bus_misaligned; 801 0 : logic lsu_pmu_bus_error; 802 0 : logic lsu_pmu_bus_busy; 803 : - 804 272 : logic ifu_pmu_fetch_stall; - 805 4336 : logic ifu_pmu_ic_miss; + 804 58 : logic ifu_pmu_fetch_stall; + 805 988 : logic ifu_pmu_ic_miss; 806 0 : logic ifu_pmu_ic_hit; 807 0 : logic ifu_pmu_bus_error; 808 0 : logic ifu_pmu_bus_busy; - 809 4336 : logic ifu_pmu_bus_trxn; + 809 988 : logic ifu_pmu_bus_trxn; 810 : 811 2 : logic active_state; - 812 66208 : logic free_clk; - 813 66208 : logic active_clk; + 812 14760 : logic free_clk; + 813 14760 : logic active_clk; 814 0 : logic dec_pause_state_cg; 815 : 816 0 : logic lsu_nonblock_load_data_error; 817 : - 818 704 : logic [15:0] ifu_i0_cinst; + 818 232 : logic [15:0] ifu_i0_cinst; 819 : 820 : // fast interrupt 821 0 : logic [31:2] dec_tlu_meihap; 822 0 : logic dec_extint_stall; 823 : - 824 4304 : el2_trace_pkt_t trace_rv_trace_pkt; + 824 976 : el2_trace_pkt_t trace_rv_trace_pkt; 825 : 826 : 827 0 : logic lsu_fastint_stall_any; @@ -941,7 +941,7 @@ 837 0 : logic pause_state; 838 0 : logic halt_state; 839 : - 840 1280 : logic dec_tlu_core_empty; + 840 268 : logic dec_tlu_core_empty; 841 : 842 : assign pause_state = dec_pause_state_cg & ~(dma_active | lsu_active) & dec_tlu_core_empty; 843 : @@ -991,13 +991,13 @@ 887 : `ifdef RV_USER_MODE 888 : 889 : // Operating privilege mode, 0 - machine, 1 - user - 890 0 : logic priv_mode; + 890 : logic priv_mode; 891 : // Effective privilege mode, 0 - machine, 1 - user (driven in el2_dec_tlu_ctl.sv) - 892 2 : logic priv_mode_eff; + 892 : logic priv_mode_eff; 893 : // Next privilege mode - 894 0 : logic priv_mode_ns; + 894 : logic priv_mode_ns; 895 : - 896 0 : el2_mseccfg_pkt_t mseccfg; // mseccfg CSR for PMP + 896 : el2_mseccfg_pkt_t mseccfg; // mseccfg CSR for PMP 897 : 898 : `endif 899 : diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_veer_wrapper.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_veer_wrapper.sv.html index 674305f1fdf..b3d000fa237 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_veer_wrapper.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_el2_veer_wrapper.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -131,7 +131,7 @@ 27 : `include "el2_param.vh" 28 : ) 29 : ( - 30 66208 : input logic clk, + 30 14760 : input logic clk, 31 2 : input logic rst_l, 32 2 : input logic dbg_rst_l, 33 0 : input logic [31:1] rst_vec, @@ -140,9 +140,9 @@ 36 0 : input logic [31:1] jtag_id, 37 : 38 : - 39 471 : output logic [31:0] trace_rv_i_insn_ip, + 39 8 : output logic [31:0] trace_rv_i_insn_ip, 40 2 : output logic [31:0] trace_rv_i_address_ip, - 41 4304 : output logic trace_rv_i_valid_ip, + 41 976 : output logic trace_rv_i_valid_ip, 42 0 : output logic trace_rv_i_exception_ip, 43 0 : output logic [4:0] trace_rv_i_ecause_ip, 44 0 : output logic trace_rv_i_interrupt_ip, @@ -339,24 +339,24 @@ 235 0 : output logic hmastlock, 236 0 : output logic [3:0] hprot, 237 0 : output logic [2:0] hsize, - 238 4336 : output logic [1:0] htrans, + 238 988 : output logic [1:0] htrans, 239 0 : output logic hwrite, 240 : - 241 576 : input logic [63:0] hrdata, + 241 16 : input logic [63:0] hrdata, 242 2 : input logic hready, 243 0 : input logic hresp, 244 : 245 : // LSU AHB Master - 246 111 : output logic [31:0] lsu_haddr, + 246 220 : output logic [31:0] lsu_haddr, 247 0 : output logic [2:0] lsu_hburst, 248 0 : output logic lsu_hmastlock, 249 0 : output logic [3:0] lsu_hprot, 250 0 : output logic [2:0] lsu_hsize, - 251 1548 : output logic [1:0] lsu_htrans, - 252 426 : output logic lsu_hwrite, - 253 25 : output logic [63:0] lsu_hwdata, + 251 468 : output logic [1:0] lsu_htrans, + 252 222 : output logic lsu_hwrite, + 253 48 : output logic [63:0] lsu_hwdata, 254 : - 255 34 : input logic [63:0] lsu_hrdata, + 255 8 : input logic [63:0] lsu_hrdata, 256 2 : input logic lsu_hready, 257 0 : input logic lsu_hresp, 258 : // Debug Syster Bus AHB @@ -454,16 +454,16 @@ 350 0 : input logic [31:0] dmi_uncore_rdata 351 : ); 352 : - 353 66208 : logic active_l2clk; - 354 66208 : logic free_l2clk; + 353 14760 : logic active_l2clk; + 354 14760 : logic free_l2clk; 355 : 356 : // DCCM ports 357 0 : logic dccm_wren; 358 0 : logic dccm_rden; 359 0 : logic [pt.DCCM_BITS-1:0] dccm_wr_addr_lo; 360 0 : logic [pt.DCCM_BITS-1:0] dccm_wr_addr_hi; - 361 140 : logic [pt.DCCM_BITS-1:0] dccm_rd_addr_lo; - 362 140 : logic [pt.DCCM_BITS-1:0] dccm_rd_addr_hi; + 361 240 : logic [pt.DCCM_BITS-1:0] dccm_rd_addr_lo; + 362 240 : logic [pt.DCCM_BITS-1:0] dccm_rd_addr_hi; 363 0 : logic [pt.DCCM_FDATA_WIDTH-1:0] dccm_wr_data_lo; 364 0 : logic [pt.DCCM_FDATA_WIDTH-1:0] dccm_wr_data_hi; 365 : @@ -490,19 +490,19 @@ 386 0 : logic [pt.ICACHE_NUM_WAYS-1:0] ic_debug_way; // Debug way. Rd or Wr. 387 : 388 0 : logic [25:0] ictag_debug_rd_data; // Debug icache tag. - 389 150 : logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data; - 390 962 : logic [63:0] ic_rd_data; + 389 16 : logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data; + 390 44 : logic [63:0] ic_rd_data; 391 0 : logic [70:0] ic_debug_rd_data; // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 392 0 : logic [70:0] ic_debug_wr_data; // Debug wr cache. 393 : 394 0 : logic [pt.ICACHE_BANKS_WAY-1:0] ic_eccerr; // ecc error per bank 395 0 : logic [pt.ICACHE_BANKS_WAY-1:0] ic_parerr; // parity error per bank 396 : - 397 962 : logic [63:0] ic_premux_data; - 398 3842 : logic ic_sel_premux_data; + 397 44 : logic [63:0] ic_premux_data; + 398 970 : logic ic_sel_premux_data; 399 : 400 : // ICCM ports - 401 26 : logic [pt.ICCM_BITS-1:1] iccm_rw_addr; + 401 4 : logic [pt.ICCM_BITS-1:1] iccm_rw_addr; 402 0 : logic iccm_wren; 403 0 : logic iccm_rden; 404 0 : logic [2:0] iccm_wr_size; @@ -610,10 +610,10 @@ 506 : 507 : 508 : `ifdef RV_BUILD_AHB_LITE - 509 888 : wire lsu_axi_awvalid; + 509 240 : wire lsu_axi_awvalid; 510 0 : wire lsu_axi_awready; 511 0 : wire [pt.LSU_BUS_TAG-1:0] lsu_axi_awid; - 512 111 : wire [31:0] lsu_axi_awaddr; + 512 220 : wire [31:0] lsu_axi_awaddr; 513 2 : wire [3:0] lsu_axi_awregion; 514 0 : wire [7:0] lsu_axi_awlen; 515 0 : wire [2:0] lsu_axi_awsize; @@ -624,10 +624,10 @@ 520 0 : wire [3:0] lsu_axi_awqos; 521 : 522 : - 523 888 : wire lsu_axi_wvalid; + 523 240 : wire lsu_axi_wvalid; 524 0 : wire lsu_axi_wready; 525 0 : wire [63:0] lsu_axi_wdata; - 526 148 : wire [7:0] lsu_axi_wstrb; + 526 8 : wire [7:0] lsu_axi_wstrb; 527 2 : wire lsu_axi_wlast; 528 : 529 0 : wire lsu_axi_bvalid; @@ -636,10 +636,10 @@ 532 0 : wire [pt.LSU_BUS_TAG-1:0] lsu_axi_bid; 533 : 534 : // AXI Read Channels - 535 660 : wire lsu_axi_arvalid; + 535 228 : wire lsu_axi_arvalid; 536 0 : wire lsu_axi_arready; 537 0 : wire [pt.LSU_BUS_TAG-1:0] lsu_axi_arid; - 538 111 : wire [31:0] lsu_axi_araddr; + 538 220 : wire [31:0] lsu_axi_araddr; 539 2 : wire [3:0] lsu_axi_arregion; 540 0 : wire [7:0] lsu_axi_arlen; 541 0 : wire [2:0] lsu_axi_arsize; @@ -694,10 +694,10 @@ 590 0 : wire [pt.IFU_BUS_TAG-1:0] ifu_axi_bid; 591 : 592 : // AXI Read Channels - 593 4336 : wire ifu_axi_arvalid; + 593 988 : wire ifu_axi_arvalid; 594 0 : wire ifu_axi_arready; - 595 2620 : wire [pt.IFU_BUS_TAG-1:0] ifu_axi_arid; - 596 1684 : wire [31:0] ifu_axi_araddr; + 595 512 : wire [pt.IFU_BUS_TAG-1:0] ifu_axi_arid; + 596 20 : wire [31:0] ifu_axi_araddr; 597 2 : wire [3:0] ifu_axi_arregion; 598 0 : wire [7:0] ifu_axi_arlen; 599 0 : wire [2:0] ifu_axi_arsize; diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_mem_lib.sv.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_mem_lib.sv.html index d0f19096fc0..09f1f6321e6 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_mem_lib.sv.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_mem_lib.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -212,7 +212,7 @@ 108 : `EL2_RAM(32768, 39) 109 : `EL2_RAM(16384, 39) 110 : `EL2_RAM(8192, 39) - 111 456768 : `EL2_RAM(4096, 39) + 111 258112 : `EL2_RAM(4096, 39) 112 : `EL2_RAM(3072, 39) 113 : `EL2_RAM(2048, 39) 114 : `EL2_RAM(1536, 39) // need this for the 48KB DCCM option) @@ -276,7 +276,7 @@ 172 : `EL2_RAM_BE(4096, 142) 173 : `EL2_RAM_BE(2048, 142) 174 : `EL2_RAM_BE(1024, 142) - 175 114192 : `EL2_RAM_BE(512, 142) + 175 64528 : `EL2_RAM_BE(512, 142) 176 : `EL2_RAM_BE(256, 142) 177 : `EL2_RAM_BE(128, 142) 178 : `EL2_RAM_BE(64, 142) @@ -309,7 +309,7 @@ 205 : `EL2_RAM_BE(1024, 52) 206 : `EL2_RAM_BE(512, 52) 207 : `EL2_RAM_BE(256, 52) - 208 57096 : `EL2_RAM_BE(128, 52) + 208 32264 : `EL2_RAM_BE(128, 52) 209 : `EL2_RAM_BE(64, 52) 210 : `EL2_RAM_BE(32, 52) 211 : `EL2_RAM_BE(4096, 104) diff --git a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_rvjtag_tap.v.html b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_rvjtag_tap.v.html index b3ac8a66d19..aefdd920efe 100644 --- a/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_rvjtag_tap.v.html +++ b/html/main/coverage_dashboard/all_ahb_csr_mstatus/index_rvjtag_tap.v.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_ahb_dhry/index.html b/html/main/coverage_dashboard/all_ahb_dhry/index.html index cf41f91f0ff..6324d1ee60c 100644 --- a/html/main/coverage_dashboard/all_ahb_dhry/index.html +++ b/html/main/coverage_dashboard/all_ahb_dhry/index.html @@ -51,21 +51,21 @@ @@ -80,13 +80,13 @@ Branch Test Date: - 19-09-2024 + 25-09-2024 Toggle -- 42.3% + + 42.5% - 2269 + 2259 - 5364 + 5317
Line data Source code
- 1 0 : logic csr_misa; - 2 0 : logic csr_mvendorid; + 1 4 : logic csr_misa; + 2 0 : logic csr_mvendorid; 3 0 : logic csr_marchid; 4 0 : logic csr_mimpid; 5 0 : logic csr_mhartid; - 6 27 : logic csr_mstatus; - 7 6 : logic csr_mtvec; + 6 18 : logic csr_mstatus; + 7 4 : logic csr_mtvec; 8 0 : logic csr_mip; 9 0 : logic csr_mie; - 10 12 : logic csr_mcyclel; - 11 0 : logic csr_mcycleh; + 10 0 : logic csr_mcyclel; + 11 0 : logic csr_mcycleh; 12 0 : logic csr_minstretl; 13 0 : logic csr_minstreth; 14 0 : logic csr_mscratch; @@ -120,8 +120,8 @@ 16 0 : logic csr_mcause; 17 0 : logic csr_mscause; 18 0 : logic csr_mtval; - 19 6 : logic csr_mrac; - 20 0 : logic csr_dmst; + 19 0 : logic csr_mrac; + 20 0 : logic csr_dmst; 21 0 : logic csr_mdseac; 22 0 : logic csr_meihap; 23 0 : logic csr_meivt; @@ -177,14 +177,14 @@ 73 0 : logic csr_dicad0; 74 0 : logic csr_dicad1; 75 0 : logic csr_dicago; - 76 0 : logic csr_pmpcfg; - 77 0 : logic csr_pmpaddr0; - 78 0 : logic csr_pmpaddr16; + 76 4 : logic csr_pmpcfg; + 77 4 : logic csr_pmpaddr0; + 78 0 : logic csr_pmpaddr16; 79 0 : logic csr_pmpaddr32; 80 0 : logic csr_pmpaddr48; 81 0 : logic valid_only; 82 0 : logic presync; - 83 15 : logic postsync; + 83 14 : logic postsync; 84 : assign csr_misa = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] 85 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); 86 : @@ -471,7 +471,7 @@ 367 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[7] 368 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); 369 : - 370 24 : logic legal; + 370 16 : logic legal; 371 : assign legal = (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] 372 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] 373 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] diff --git a/html/main/coverage_dashboard/all_ahb_insns/index_el2_dec_csr_equ_mu.svh.html b/html/main/coverage_dashboard/all_ahb_insns/index_el2_dec_csr_equ_mu.svh.html deleted file mode 100644 index 86e11499d2f..00000000000 --- a/html/main/coverage_dashboard/all_ahb_insns/index_el2_dec_csr_equ_mu.svh.html +++ /dev/null @@ -1,666 +0,0 @@ - - - - - -- Full - coverage report - - - - - - -
-
|
-
Current view: | -- Cores-VeeR-EL2—Cores-VeeR-EL2—design—include—el2_dec_csr_equ_mu.svh - | -- | - | Coverage | -Hit | -Total | -
Test Date: | -- 19-09-2024 - | -- - | - Toggle - | -- 9.9% - | -- 10 - | -- 101 - | - -
Test: | -- ahb_insns - | -- - | - Branch - | -- 0.0% - | -- 0 - | -- 0 - | - -
-Line data Source code- - 1 4 : logic csr_misa; - 2 0 : logic csr_mvendorid; - 3 0 : logic csr_marchid; - 4 0 : logic csr_mimpid; - 5 0 : logic csr_mhartid; - 6 162 : logic csr_mstatus; - 7 4 : logic csr_mtvec; - 8 0 : logic csr_mip; - 9 0 : logic csr_mie; - 10 0 : logic csr_mcyclel; - 11 0 : logic csr_mcycleh; - 12 0 : logic csr_minstretl; - 13 0 : logic csr_minstreth; - 14 0 : logic csr_mscratch; - 15 88 : logic csr_mepc; - 16 56 : logic csr_mcause; - 17 0 : logic csr_mscause; - 18 0 : logic csr_mtval; - 19 0 : logic csr_mrac; - 20 0 : logic csr_dmst; - 21 0 : logic csr_mdseac; - 22 0 : logic csr_meihap; - 23 0 : logic csr_meivt; - 24 0 : logic csr_meipt; - 25 0 : logic csr_meicurpl; - 26 0 : logic csr_meicidpl; - 27 0 : logic csr_dcsr; - 28 0 : logic csr_mcgc; - 29 0 : logic csr_mfdc; - 30 0 : logic csr_dpc; - 31 0 : logic csr_mtsel; - 32 0 : logic csr_mtdata1; - 33 0 : logic csr_mtdata2; - 34 0 : logic csr_mhpmc3; - 35 0 : logic csr_mhpmc4; - 36 0 : logic csr_mhpmc5; - 37 0 : logic csr_mhpmc6; - 38 0 : logic csr_mhpmc3h; - 39 0 : logic csr_mhpmc4h; - 40 0 : logic csr_mhpmc5h; - 41 0 : logic csr_mhpmc6h; - 42 0 : logic csr_mhpme3; - 43 0 : logic csr_mhpme4; - 44 0 : logic csr_mhpme5; - 45 0 : logic csr_mhpme6; - 46 0 : logic csr_mcounteren; - 47 0 : logic csr_mcountinhibit; - 48 0 : logic csr_mitctl0; - 49 0 : logic csr_mitctl1; - 50 0 : logic csr_mitb0; - 51 0 : logic csr_mitb1; - 52 0 : logic csr_mitcnt0; - 53 0 : logic csr_mitcnt1; - 54 0 : logic csr_perfva; - 55 0 : logic csr_perfvb; - 56 0 : logic csr_perfvc; - 57 0 : logic csr_perfvd; - 58 0 : logic csr_perfve; - 59 0 : logic csr_perfvf; - 60 0 : logic csr_perfvg; - 61 0 : logic csr_perfvh; - 62 0 : logic csr_perfvi; - 63 0 : logic csr_mpmc; - 64 0 : logic csr_mcpc; - 65 0 : logic csr_meicpct; - 66 0 : logic csr_mdeau; - 67 0 : logic csr_micect; - 68 0 : logic csr_miccmect; - 69 0 : logic csr_mdccmect; - 70 0 : logic csr_mfdht; - 71 0 : logic csr_mfdhs; - 72 0 : logic csr_dicawics; - 73 0 : logic csr_dicad0h; - 74 0 : logic csr_dicad0; - 75 0 : logic csr_dicad1; - 76 0 : logic csr_dicago; - 77 0 : logic csr_menvcfg; - 78 0 : logic csr_menvcfgh; - 79 4 : logic csr_pmpcfg; - 80 4 : logic csr_pmpaddr0; - 81 0 : logic csr_pmpaddr16; - 82 0 : logic csr_pmpaddr32; - 83 0 : logic csr_pmpaddr48; - 84 198 : logic csr_cyclel; - 85 0 : logic csr_cycleh; - 86 0 : logic csr_instretl; - 87 0 : logic csr_instreth; - 88 0 : logic csr_hpmc3; - 89 0 : logic csr_hpmc4; - 90 0 : logic csr_hpmc5; - 91 0 : logic csr_hpmc6; - 92 0 : logic csr_hpmc3h; - 93 0 : logic csr_hpmc4h; - 94 0 : logic csr_hpmc5h; - 95 0 : logic csr_hpmc6h; - 96 0 : logic csr_mseccfgl; - 97 0 : logic csr_mseccfgh; - 98 0 : logic valid_only; - 99 0 : logic presync; - 100 70 : logic postsync; - 101 : assign csr_misa = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] - 102 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); - 103 : - 104 : assign csr_mvendorid = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[7] - 105 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 106 : - 107 : assign csr_marchid = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[7] - 108 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 109 : - 110 : assign csr_mimpid = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[6] - 111 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 112 : - 113 : assign csr_mhartid = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] - 114 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[2]); - 115 : - 116 : assign csr_mstatus = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] - 117 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1] - 118 : &!dec_csr_rdaddr_d[0]); - 119 : - 120 : assign csr_mtvec = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] - 121 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); - 122 : - 123 : assign csr_mip = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[2] - 124 : &!dec_csr_rdaddr_d[0]); - 125 : - 126 : assign csr_mie = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 127 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 128 : - 129 : assign csr_mcyclel = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[8] - 130 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 131 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); - 132 : - 133 : assign csr_mcycleh = (!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[7] - 134 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] - 135 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); - 136 : - 137 : assign csr_minstretl = (dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] - 138 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 139 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 140 : - 141 : assign csr_minstreth = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 142 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 143 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 144 : - 145 : assign csr_mscratch = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] - 146 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 147 : - 148 : assign csr_mepc = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[1] - 149 : &dec_csr_rdaddr_d[0]); - 150 : - 151 : assign csr_mcause = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] - 152 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 153 : - 154 : assign csr_mscause = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[5] - 155 : &dec_csr_rdaddr_d[2]); - 156 : - 157 : assign csr_mtval = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[2] - 158 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 159 : - 160 : assign csr_mrac = (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] - 161 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] - 162 : &!dec_csr_rdaddr_d[1]); - 163 : - 164 : assign csr_dmst = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[4] - 165 : &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); - 166 : - 167 : assign csr_mdseac = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] - 168 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[3]); - 169 : - 170 : assign csr_meihap = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] - 171 : &dec_csr_rdaddr_d[3]); - 172 : - 173 : assign csr_meivt = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 174 : &dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] - 175 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 176 : - 177 : assign csr_meipt = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[1] - 178 : &dec_csr_rdaddr_d[0]); - 179 : - 180 : assign csr_meicurpl = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[6] - 181 : &dec_csr_rdaddr_d[2]); - 182 : - 183 : assign csr_meicidpl = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[6] - 184 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 185 : - 186 : assign csr_dcsr = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] - 187 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[0]); - 188 : - 189 : assign csr_mcgc = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3] - 190 : &!dec_csr_rdaddr_d[0]); - 191 : - 192 : assign csr_mfdc = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3] - 193 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 194 : - 195 : assign csr_dpc = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] - 196 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[0]); - 197 : - 198 : assign csr_mtsel = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] - 199 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 200 : - 201 : assign csr_mtdata1 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[5] - 202 : &!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[0]); - 203 : - 204 : assign csr_mtdata2 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[5] - 205 : &!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[1]); - 206 : - 207 : assign csr_mhpmc3 = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[8] - 208 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 209 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); - 210 : - 211 : assign csr_mhpmc4 = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[8] - 212 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 213 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 214 : - 215 : assign csr_mhpmc5 = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[8] - 216 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 217 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 218 : - 219 : assign csr_mhpmc6 = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[8] - 220 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 221 : &dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 222 : - 223 : assign csr_mhpmc3h = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 224 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 225 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); - 226 : - 227 : assign csr_mhpmc4h = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 228 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 229 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 230 : - 231 : assign csr_mhpmc5h = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 232 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 233 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 234 : - 235 : assign csr_mhpmc6h = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 236 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 237 : &dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 238 : - 239 : assign csr_mhpme3 = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] - 240 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] - 241 : &dec_csr_rdaddr_d[0]); - 242 : - 243 : assign csr_mhpme4 = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] - 244 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] - 245 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 246 : - 247 : assign csr_mhpme5 = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] - 248 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1] - 249 : &dec_csr_rdaddr_d[0]); - 250 : - 251 : assign csr_mhpme6 = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] - 252 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[1] - 253 : &!dec_csr_rdaddr_d[0]); - 254 : - 255 : assign csr_mcounteren = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] - 256 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]); - 257 : - 258 : assign csr_mcountinhibit = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] - 259 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] - 260 : &!dec_csr_rdaddr_d[0]); - 261 : - 262 : assign csr_mitctl0 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6] - 263 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1] - 264 : &!dec_csr_rdaddr_d[0]); - 265 : - 266 : assign csr_mitctl1 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[7] - 267 : &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1] - 268 : &dec_csr_rdaddr_d[0]); - 269 : - 270 : assign csr_mitb0 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[3] - 271 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 272 : - 273 : assign csr_mitb1 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[2] - 274 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 275 : - 276 : assign csr_mitcnt0 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6] - 277 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[2] - 278 : &!dec_csr_rdaddr_d[0]); - 279 : - 280 : assign csr_mitcnt1 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4] - 281 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 282 : - 283 : assign csr_perfva = 1'b0; - 284 : - 285 : assign csr_perfvb = 1'b0; - 286 : - 287 : assign csr_perfvc = 1'b0; - 288 : - 289 : assign csr_perfvd = 1'b0; - 290 : - 291 : assign csr_perfve = 1'b0; - 292 : - 293 : assign csr_perfvf = 1'b0; - 294 : - 295 : assign csr_perfvg = 1'b0; - 296 : - 297 : assign csr_perfvh = 1'b0; - 298 : - 299 : assign csr_perfvi = 1'b0; - 300 : - 301 : assign csr_mpmc = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] - 302 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] - 303 : &dec_csr_rdaddr_d[1]); - 304 : - 305 : assign csr_mcpc = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[4] - 306 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]); - 307 : - 308 : assign csr_meicpct = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[6] - 309 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 310 : - 311 : assign csr_mdeau = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 312 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[3]); - 313 : - 314 : assign csr_micect = (dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4] - 315 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 316 : - 317 : assign csr_miccmect = (dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] - 318 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[0]); - 319 : - 320 : assign csr_mdccmect = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[5] - 321 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 322 : - 323 : assign csr_mfdht = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] - 324 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 325 : - 326 : assign csr_mfdhs = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[4] - 327 : &dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); - 328 : - 329 : assign csr_dicawics = (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] - 330 : &!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] - 331 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 332 : - 333 : assign csr_dicad0h = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[3] - 334 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); - 335 : - 336 : assign csr_dicad0 = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[4] - 337 : &dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 338 : - 339 : assign csr_dicad1 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[3] - 340 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 341 : - 342 : assign csr_dicago = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[3] - 343 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 344 : - 345 : assign csr_menvcfg = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] - 346 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3]); - 347 : - 348 : assign csr_menvcfgh = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] - 349 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]); - 350 : - 351 : assign csr_pmpcfg = (!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[7] - 352 : &!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]); - 353 : - 354 : assign csr_pmpaddr0 = (!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[7] - 355 : &dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]); - 356 : - 357 : assign csr_pmpaddr16 = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 358 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]); - 359 : - 360 : assign csr_pmpaddr32 = (!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6] - 361 : &dec_csr_rdaddr_d[4]); - 362 : - 363 : assign csr_pmpaddr48 = (dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] - 364 : &!dec_csr_rdaddr_d[4]); - 365 : - 366 : assign csr_cyclel = (!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] - 367 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); - 368 : - 369 : assign csr_cycleh = (!dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 370 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); - 371 : - 372 : assign csr_instretl = (!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] - 373 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 374 : - 375 : assign csr_instreth = (!dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 376 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 377 : - 378 : assign csr_hpmc3 = (!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] - 379 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 380 : - 381 : assign csr_hpmc4 = (!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] - 382 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 383 : - 384 : assign csr_hpmc5 = (!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] - 385 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 386 : - 387 : assign csr_hpmc6 = (!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] - 388 : &dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]); - 389 : - 390 : assign csr_hpmc3h = (!dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 391 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 392 : - 393 : assign csr_hpmc4h = (!dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 394 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 395 : - 396 : assign csr_hpmc5h = (!dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 397 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 398 : - 399 : assign csr_hpmc6h = (!dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 400 : &dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]); - 401 : - 402 : assign csr_mseccfgl = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[7] - 403 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[4]); - 404 : - 405 : assign csr_mseccfgh = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] - 406 : &dec_csr_rdaddr_d[4]); - 407 : - 408 : assign valid_only = (!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 409 : &dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | ( - 410 : !dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[2] - 411 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[7] - 412 : &dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]) | (!dec_csr_rdaddr_d[7] - 413 : &dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[3]) | (dec_csr_rdaddr_d[11] - 414 : &!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[3]) | (dec_csr_rdaddr_d[11] - 415 : &!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]); - 416 : - 417 : assign presync = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3] - 418 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[7] - 419 : &dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 420 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[10] - 421 : &dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[0]) | ( - 422 : dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 423 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]) | (dec_csr_rdaddr_d[11] - 424 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1] - 425 : &dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[4] - 426 : &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]) | ( - 427 : dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] - 428 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]); - 429 : - 430 : assign postsync = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3] - 431 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11] - 432 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[2] - 433 : &dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[7] - 434 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 435 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[10] - 436 : &dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[0]) | ( - 437 : !dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[5] - 438 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1]) | ( - 439 : dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[4] - 440 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]) | ( - 441 : !dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[1] - 442 : &dec_csr_rdaddr_d[0]); - 443 : - 444 196 : logic legal; - 445 : assign legal = (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] - 446 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] - 447 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] - 448 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[10] - 449 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 450 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] - 451 : &dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | ( - 452 : !dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 453 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 454 : &dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1] - 455 : &!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 456 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] - 457 : &dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | ( - 458 : !dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 459 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 460 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] - 461 : &!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 462 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[6] - 463 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 464 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[10] - 465 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 466 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] - 467 : &dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]) | (dec_csr_rdaddr_d[11] - 468 : &!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 469 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[0]) | ( - 470 : !dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] - 471 : &dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6] - 472 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 473 : &!dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 474 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] - 475 : &dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[2]) | (!dec_csr_rdaddr_d[11] - 476 : &!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 477 : &dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]) | ( - 478 : dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[9] - 479 : &!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 480 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] - 481 : &!dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] - 482 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 483 : &dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4] - 484 : &dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1] - 485 : &dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] - 486 : &!dec_csr_rdaddr_d[9]&!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] - 487 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 488 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]) | (dec_csr_rdaddr_d[11] - 489 : &dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[9]&!dec_csr_rdaddr_d[8] - 490 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] - 491 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11] - 492 : &dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 493 : &dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] - 494 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]) | ( - 495 : !dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 496 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] - 497 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]) | ( - 498 : !dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 499 : &dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 500 : &!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[1]) | ( - 501 : dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 502 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 503 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] - 504 : &dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9] - 505 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] - 506 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 507 : &dec_csr_rdaddr_d[2]) | (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9] - 508 : &dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6] - 509 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 510 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | ( - 511 : !dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] - 512 : &dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] - 513 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11] - 514 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 515 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4] - 516 : &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[11] - 517 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 518 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] - 519 : &dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]) | (dec_csr_rdaddr_d[11] - 520 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] - 521 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4] - 522 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]) | ( - 523 : !dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 524 : &dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 525 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[9] - 526 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] - 527 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[2] - 528 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11] - 529 : &dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 530 : &!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 531 : &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1] - 532 : &dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 533 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] - 534 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[2]) | (!dec_csr_rdaddr_d[11] - 535 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 536 : &!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] - 537 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]) | ( - 538 : !dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] - 539 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 540 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]) | ( - 541 : dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] - 542 : &dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 543 : &dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 544 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] - 545 : &dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[3]) | (!dec_csr_rdaddr_d[11] - 546 : &!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 547 : &!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]) | ( - 548 : dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] - 549 : &dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 550 : &dec_csr_rdaddr_d[3]) | (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 551 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] - 552 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]) | (!dec_csr_rdaddr_d[11] - 553 : &!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 554 : &dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]); - 555 : -- |
-
+
|
+
Current view: | ++ Cores-VeeR-EL2—Cores-VeeR-EL2—design—include—el2_dec_csr_equ_m.svh + | ++ | + | Coverage | +Hit | +Total | +
Test Date: | ++ 25-09-2024 + | ++ + | + Toggle + | ++ 11.9% + | ++ 10 + | ++ 84 + | + +
Test: | ++ ahb_irq + | ++ + | + Branch + | ++ 0.0% + | ++ 0 + | ++ 0 + | + +
+Line data Source code+ + 1 4 : logic csr_misa; + 2 0 : logic csr_mvendorid; + 3 0 : logic csr_marchid; + 4 0 : logic csr_mimpid; + 5 0 : logic csr_mhartid; + 6 66 : logic csr_mstatus; + 7 4 : logic csr_mtvec; + 8 0 : logic csr_mip; + 9 8 : logic csr_mie; + 10 0 : logic csr_mcyclel; + 11 0 : logic csr_mcycleh; + 12 0 : logic csr_minstretl; + 13 0 : logic csr_minstreth; + 14 0 : logic csr_mscratch; + 15 16 : logic csr_mepc; + 16 24 : logic csr_mcause; + 17 0 : logic csr_mscause; + 18 0 : logic csr_mtval; + 19 0 : logic csr_mrac; + 20 0 : logic csr_dmst; + 21 0 : logic csr_mdseac; + 22 0 : logic csr_meihap; + 23 0 : logic csr_meivt; + 24 0 : logic csr_meipt; + 25 0 : logic csr_meicurpl; + 26 0 : logic csr_meicidpl; + 27 0 : logic csr_dcsr; + 28 0 : logic csr_mcgc; + 29 0 : logic csr_mfdc; + 30 0 : logic csr_dpc; + 31 0 : logic csr_mtsel; + 32 0 : logic csr_mtdata1; + 33 0 : logic csr_mtdata2; + 34 0 : logic csr_mhpmc3; + 35 0 : logic csr_mhpmc4; + 36 0 : logic csr_mhpmc5; + 37 0 : logic csr_mhpmc6; + 38 0 : logic csr_mhpmc3h; + 39 0 : logic csr_mhpmc4h; + 40 0 : logic csr_mhpmc5h; + 41 0 : logic csr_mhpmc6h; + 42 0 : logic csr_mhpme3; + 43 0 : logic csr_mhpme4; + 44 0 : logic csr_mhpme5; + 45 0 : logic csr_mhpme6; + 46 0 : logic csr_mcountinhibit; + 47 0 : logic csr_mitctl0; + 48 0 : logic csr_mitctl1; + 49 0 : logic csr_mitb0; + 50 0 : logic csr_mitb1; + 51 0 : logic csr_mitcnt0; + 52 0 : logic csr_mitcnt1; + 53 0 : logic csr_perfva; + 54 0 : logic csr_perfvb; + 55 0 : logic csr_perfvc; + 56 0 : logic csr_perfvd; + 57 0 : logic csr_perfve; + 58 0 : logic csr_perfvf; + 59 0 : logic csr_perfvg; + 60 0 : logic csr_perfvh; + 61 0 : logic csr_perfvi; + 62 0 : logic csr_mpmc; + 63 0 : logic csr_mcpc; + 64 0 : logic csr_meicpct; + 65 0 : logic csr_mdeau; + 66 0 : logic csr_micect; + 67 0 : logic csr_miccmect; + 68 0 : logic csr_mdccmect; + 69 0 : logic csr_mfdht; + 70 0 : logic csr_mfdhs; + 71 0 : logic csr_dicawics; + 72 0 : logic csr_dicad0h; + 73 0 : logic csr_dicad0; + 74 0 : logic csr_dicad1; + 75 0 : logic csr_dicago; + 76 4 : logic csr_pmpcfg; + 77 4 : logic csr_pmpaddr0; + 78 0 : logic csr_pmpaddr16; + 79 0 : logic csr_pmpaddr32; + 80 0 : logic csr_pmpaddr48; + 81 0 : logic valid_only; + 82 0 : logic presync; + 83 46 : logic postsync; + 84 : assign csr_misa = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] + 85 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); + 86 : + 87 : assign csr_mvendorid = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[7] + 88 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 89 : + 90 : assign csr_marchid = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[7] + 91 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 92 : + 93 : assign csr_mimpid = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[6] + 94 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 95 : + 96 : assign csr_mhartid = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[7] + 97 : &dec_csr_rdaddr_d[2]); + 98 : + 99 : assign csr_mstatus = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] + 100 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]); + 101 : + 102 : assign csr_mtvec = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] + 103 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); + 104 : + 105 : assign csr_mip = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[2]); + 106 : + 107 : assign csr_mie = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] + 108 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]); + 109 : + 110 : assign csr_mcyclel = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[7] + 111 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 112 : &!dec_csr_rdaddr_d[1]); + 113 : + 114 : assign csr_mcycleh = (dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6] + 115 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 116 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); + 117 : + 118 : assign csr_minstretl = (!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6] + 119 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 120 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 121 : + 122 : assign csr_minstreth = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[7] + 123 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 124 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 125 : + 126 : assign csr_mscratch = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] + 127 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 128 : + 129 : assign csr_mepc = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[1] + 130 : &dec_csr_rdaddr_d[0]); + 131 : + 132 : assign csr_mcause = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] + 133 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 134 : + 135 : assign csr_mscause = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[5] + 136 : &dec_csr_rdaddr_d[2]); + 137 : + 138 : assign csr_mtval = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[1] + 139 : &dec_csr_rdaddr_d[0]); + 140 : + 141 : assign csr_mrac = (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] + 142 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 143 : &!dec_csr_rdaddr_d[1]); + 144 : + 145 : assign csr_dmst = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 146 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); + 147 : + 148 : assign csr_mdseac = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] + 149 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]); + 150 : + 151 : assign csr_meihap = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] + 152 : &dec_csr_rdaddr_d[3]); + 153 : + 154 : assign csr_meivt = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 155 : &dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 156 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 157 : + 158 : assign csr_meipt = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[1] + 159 : &dec_csr_rdaddr_d[0]); + 160 : + 161 : assign csr_meicurpl = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[6] + 162 : &dec_csr_rdaddr_d[2]); + 163 : + 164 : assign csr_meicidpl = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[6] + 165 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 166 : + 167 : assign csr_dcsr = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] + 168 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[0]); + 169 : + 170 : assign csr_mcgc = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3] + 171 : &!dec_csr_rdaddr_d[0]); + 172 : + 173 : assign csr_mfdc = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3] + 174 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 175 : + 176 : assign csr_dpc = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] + 177 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[0]); + 178 : + 179 : assign csr_mtsel = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] + 180 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 181 : + 182 : assign csr_mtdata1 = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[4] + 183 : &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[0]); + 184 : + 185 : assign csr_mtdata2 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[5] + 186 : &!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[1]); + 187 : + 188 : assign csr_mhpmc3 = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[7] + 189 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 190 : &dec_csr_rdaddr_d[0]); + 191 : + 192 : assign csr_mhpmc4 = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[7] + 193 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] + 194 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 195 : + 196 : assign csr_mhpmc5 = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[7] + 197 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1] + 198 : &dec_csr_rdaddr_d[0]); + 199 : + 200 : assign csr_mhpmc6 = (!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[5] + 201 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] + 202 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 203 : + 204 : assign csr_mhpmc3h = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[7] + 205 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 206 : &dec_csr_rdaddr_d[0]); + 207 : + 208 : assign csr_mhpmc4h = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[7] + 209 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] + 210 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 211 : + 212 : assign csr_mhpmc5h = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[7] + 213 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1] + 214 : &dec_csr_rdaddr_d[0]); + 215 : + 216 : assign csr_mhpmc6h = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[7] + 217 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] + 218 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 219 : + 220 : assign csr_mhpme3 = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] + 221 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 222 : &dec_csr_rdaddr_d[0]); + 223 : + 224 : assign csr_mhpme4 = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] + 225 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] + 226 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 227 : + 228 : assign csr_mhpme5 = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] + 229 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1] + 230 : &dec_csr_rdaddr_d[0]); + 231 : + 232 : assign csr_mhpme6 = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] + 233 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[1] + 234 : &!dec_csr_rdaddr_d[0]); + 235 : + 236 : assign csr_mcountinhibit = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] + 237 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 238 : &!dec_csr_rdaddr_d[0]); + 239 : + 240 : assign csr_mitctl0 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6] + 241 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1] + 242 : &!dec_csr_rdaddr_d[0]); + 243 : + 244 : assign csr_mitctl1 = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[3] + 245 : &dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 246 : + 247 : assign csr_mitb0 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[3] + 248 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 249 : + 250 : assign csr_mitb1 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[2] + 251 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 252 : + 253 : assign csr_mitcnt0 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6] + 254 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[2] + 255 : &!dec_csr_rdaddr_d[0]); + 256 : + 257 : assign csr_mitcnt1 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[2] + 258 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 259 : + 260 : assign csr_perfva = 1'b0; + 261 : + 262 : assign csr_perfvb = 1'b0; + 263 : + 264 : assign csr_perfvc = 1'b0; + 265 : + 266 : assign csr_perfvd = 1'b0; + 267 : + 268 : assign csr_perfve = 1'b0; + 269 : + 270 : assign csr_perfvf = 1'b0; + 271 : + 272 : assign csr_perfvg = 1'b0; + 273 : + 274 : assign csr_perfvh = 1'b0; + 275 : + 276 : assign csr_perfvi = 1'b0; + 277 : + 278 : assign csr_mpmc = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 279 : &dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]); + 280 : + 281 : assign csr_mcpc = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] + 282 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]); + 283 : + 284 : assign csr_meicpct = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[6] + 285 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 286 : + 287 : assign csr_mdeau = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 288 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[3]); + 289 : + 290 : assign csr_micect = (dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4] + 291 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 292 : + 293 : assign csr_miccmect = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6] + 294 : &dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[0]); + 295 : + 296 : assign csr_mdccmect = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[5] + 297 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 298 : + 299 : assign csr_mfdht = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] + 300 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 301 : + 302 : assign csr_mfdhs = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[4] + 303 : &dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); + 304 : + 305 : assign csr_dicawics = (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] + 306 : &!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 307 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 308 : + 309 : assign csr_dicad0h = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[3] + 310 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); + 311 : + 312 : assign csr_dicad0 = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[4] + 313 : &dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 314 : + 315 : assign csr_dicad1 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[3] + 316 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 317 : + 318 : assign csr_dicago = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[3] + 319 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 320 : + 321 : assign csr_pmpcfg = (!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[7] + 322 : &!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]); + 323 : + 324 : assign csr_pmpaddr0 = (!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[7] + 325 : &dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]); + 326 : + 327 : assign csr_pmpaddr16 = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 328 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]); + 329 : + 330 : assign csr_pmpaddr32 = (!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6] + 331 : &dec_csr_rdaddr_d[4]); + 332 : + 333 : assign csr_pmpaddr48 = (dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] + 334 : &!dec_csr_rdaddr_d[4]); + 335 : + 336 : assign valid_only = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[2] + 337 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[7] + 338 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]) | ( + 339 : !dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[4]) | ( + 340 : !dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[3]) | ( + 341 : !dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1] + 342 : &dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[3]); + 343 : + 344 : assign presync = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3] + 345 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[10] + 346 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 347 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[7] + 348 : &dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 349 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[10] + 350 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[0]) | ( + 351 : dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 352 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[11] + 353 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] + 354 : &!dec_csr_rdaddr_d[1]) | (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[4] + 355 : &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 356 : + 357 : assign postsync = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3] + 358 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11] + 359 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[2] + 360 : &dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[7] + 361 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 362 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[10] + 363 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[0]) | ( + 364 : !dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[5] + 365 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1]) | ( + 366 : dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 367 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[7] + 368 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 369 : + 370 96 : logic legal; + 371 : assign legal = (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] + 372 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] + 373 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 374 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[10] + 375 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 376 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] + 377 : &dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | ( + 378 : !dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] + 379 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] + 380 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1] + 381 : &!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 382 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] + 383 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] + 384 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1]) | (dec_csr_rdaddr_d[11] + 385 : &!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] + 386 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[0]) | ( + 387 : !dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] + 388 : &dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] + 389 : &!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]) | ( + 390 : !dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] + 391 : &dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6] + 392 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1] + 393 : &!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 394 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 395 : &dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]) | (!dec_csr_rdaddr_d[11] + 396 : &dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] + 397 : &dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] + 398 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] + 399 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11] + 400 : &dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] + 401 : &dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] + 402 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]) | ( + 403 : dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] + 404 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] + 405 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 406 : &dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9] + 407 : &dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6] + 408 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 409 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | ( + 410 : dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] + 411 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] + 412 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 413 : &dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9] + 414 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6] + 415 : &dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 416 : &!dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 417 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] + 418 : &dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[2]) | (!dec_csr_rdaddr_d[11] + 419 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 420 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4] + 421 : &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]) | (!dec_csr_rdaddr_d[11] + 422 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 423 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] + 424 : &dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[11] + 425 : &!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] + 426 : &!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[1] + 427 : &dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 428 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] + 429 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[2]) | (!dec_csr_rdaddr_d[11] + 430 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 431 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4] + 432 : &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[1]) | (dec_csr_rdaddr_d[9] + 433 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] + 434 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[2] + 435 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11] + 436 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 437 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] + 438 : &!dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 439 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] + 440 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[11] + 441 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 442 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] + 443 : &dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]) | (!dec_csr_rdaddr_d[11] + 444 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 445 : &!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] + 446 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]) | ( + 447 : !dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] + 448 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] + 449 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]) | ( + 450 : !dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] + 451 : &dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] + 452 : &dec_csr_rdaddr_d[3]) | (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 453 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] + 454 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[3]) | (!dec_csr_rdaddr_d[11] + 455 : &!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] + 456 : &!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]) | ( + 457 : dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] + 458 : &dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] + 459 : &dec_csr_rdaddr_d[4]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 460 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 461 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]); + 462 : ++ |
+
-
|
-
Current view: | -- Cores-VeeR-EL2—Cores-VeeR-EL2—design—include—el2_dec_csr_equ_mu.svh - | -- | - | Coverage | -Hit | -Total | -
Test Date: | -- 19-09-2024 - | -- - | - Toggle - | -- 10.9% - | -- 11 - | -- 101 - | - -
Test: | -- ahb_irq - | -- - | - Branch - | -- 0.0% - | -- 0 - | -- 0 - | - -
-Line data Source code- - 1 4 : logic csr_misa; - 2 0 : logic csr_mvendorid; - 3 0 : logic csr_marchid; - 4 0 : logic csr_mimpid; - 5 0 : logic csr_mhartid; - 6 102 : logic csr_mstatus; - 7 4 : logic csr_mtvec; - 8 0 : logic csr_mip; - 9 8 : logic csr_mie; - 10 0 : logic csr_mcyclel; - 11 0 : logic csr_mcycleh; - 12 0 : logic csr_minstretl; - 13 0 : logic csr_minstreth; - 14 0 : logic csr_mscratch; - 15 32 : logic csr_mepc; - 16 44 : logic csr_mcause; - 17 0 : logic csr_mscause; - 18 0 : logic csr_mtval; - 19 0 : logic csr_mrac; - 20 0 : logic csr_dmst; - 21 0 : logic csr_mdseac; - 22 0 : logic csr_meihap; - 23 0 : logic csr_meivt; - 24 0 : logic csr_meipt; - 25 0 : logic csr_meicurpl; - 26 0 : logic csr_meicidpl; - 27 0 : logic csr_dcsr; - 28 0 : logic csr_mcgc; - 29 0 : logic csr_mfdc; - 30 0 : logic csr_dpc; - 31 0 : logic csr_mtsel; - 32 0 : logic csr_mtdata1; - 33 0 : logic csr_mtdata2; - 34 0 : logic csr_mhpmc3; - 35 0 : logic csr_mhpmc4; - 36 0 : logic csr_mhpmc5; - 37 0 : logic csr_mhpmc6; - 38 0 : logic csr_mhpmc3h; - 39 0 : logic csr_mhpmc4h; - 40 0 : logic csr_mhpmc5h; - 41 0 : logic csr_mhpmc6h; - 42 0 : logic csr_mhpme3; - 43 0 : logic csr_mhpme4; - 44 0 : logic csr_mhpme5; - 45 0 : logic csr_mhpme6; - 46 0 : logic csr_mcounteren; - 47 0 : logic csr_mcountinhibit; - 48 0 : logic csr_mitctl0; - 49 0 : logic csr_mitctl1; - 50 0 : logic csr_mitb0; - 51 0 : logic csr_mitb1; - 52 0 : logic csr_mitcnt0; - 53 0 : logic csr_mitcnt1; - 54 0 : logic csr_perfva; - 55 0 : logic csr_perfvb; - 56 0 : logic csr_perfvc; - 57 0 : logic csr_perfvd; - 58 0 : logic csr_perfve; - 59 0 : logic csr_perfvf; - 60 0 : logic csr_perfvg; - 61 0 : logic csr_perfvh; - 62 0 : logic csr_perfvi; - 63 0 : logic csr_mpmc; - 64 0 : logic csr_mcpc; - 65 0 : logic csr_meicpct; - 66 0 : logic csr_mdeau; - 67 0 : logic csr_micect; - 68 0 : logic csr_miccmect; - 69 0 : logic csr_mdccmect; - 70 0 : logic csr_mfdht; - 71 0 : logic csr_mfdhs; - 72 0 : logic csr_dicawics; - 73 0 : logic csr_dicad0h; - 74 0 : logic csr_dicad0; - 75 0 : logic csr_dicad1; - 76 0 : logic csr_dicago; - 77 0 : logic csr_menvcfg; - 78 0 : logic csr_menvcfgh; - 79 4 : logic csr_pmpcfg; - 80 4 : logic csr_pmpaddr0; - 81 0 : logic csr_pmpaddr16; - 82 0 : logic csr_pmpaddr32; - 83 0 : logic csr_pmpaddr48; - 84 162 : logic csr_cyclel; - 85 0 : logic csr_cycleh; - 86 0 : logic csr_instretl; - 87 0 : logic csr_instreth; - 88 0 : logic csr_hpmc3; - 89 0 : logic csr_hpmc4; - 90 0 : logic csr_hpmc5; - 91 0 : logic csr_hpmc6; - 92 0 : logic csr_hpmc3h; - 93 0 : logic csr_hpmc4h; - 94 0 : logic csr_hpmc5h; - 95 0 : logic csr_hpmc6h; - 96 0 : logic csr_mseccfgl; - 97 0 : logic csr_mseccfgh; - 98 0 : logic valid_only; - 99 0 : logic presync; - 100 66 : logic postsync; - 101 : assign csr_misa = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] - 102 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); - 103 : - 104 : assign csr_mvendorid = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[7] - 105 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 106 : - 107 : assign csr_marchid = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[7] - 108 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 109 : - 110 : assign csr_mimpid = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[6] - 111 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 112 : - 113 : assign csr_mhartid = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] - 114 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[2]); - 115 : - 116 : assign csr_mstatus = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] - 117 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1] - 118 : &!dec_csr_rdaddr_d[0]); - 119 : - 120 : assign csr_mtvec = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] - 121 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); - 122 : - 123 : assign csr_mip = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[2] - 124 : &!dec_csr_rdaddr_d[0]); - 125 : - 126 : assign csr_mie = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 127 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 128 : - 129 : assign csr_mcyclel = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[8] - 130 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 131 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); - 132 : - 133 : assign csr_mcycleh = (!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[7] - 134 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] - 135 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); - 136 : - 137 : assign csr_minstretl = (dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] - 138 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 139 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 140 : - 141 : assign csr_minstreth = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 142 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 143 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 144 : - 145 : assign csr_mscratch = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] - 146 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 147 : - 148 : assign csr_mepc = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[1] - 149 : &dec_csr_rdaddr_d[0]); - 150 : - 151 : assign csr_mcause = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] - 152 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 153 : - 154 : assign csr_mscause = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[5] - 155 : &dec_csr_rdaddr_d[2]); - 156 : - 157 : assign csr_mtval = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[2] - 158 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 159 : - 160 : assign csr_mrac = (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] - 161 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] - 162 : &!dec_csr_rdaddr_d[1]); - 163 : - 164 : assign csr_dmst = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[4] - 165 : &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); - 166 : - 167 : assign csr_mdseac = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] - 168 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[3]); - 169 : - 170 : assign csr_meihap = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] - 171 : &dec_csr_rdaddr_d[3]); - 172 : - 173 : assign csr_meivt = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 174 : &dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] - 175 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 176 : - 177 : assign csr_meipt = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[1] - 178 : &dec_csr_rdaddr_d[0]); - 179 : - 180 : assign csr_meicurpl = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[6] - 181 : &dec_csr_rdaddr_d[2]); - 182 : - 183 : assign csr_meicidpl = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[6] - 184 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 185 : - 186 : assign csr_dcsr = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] - 187 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[0]); - 188 : - 189 : assign csr_mcgc = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3] - 190 : &!dec_csr_rdaddr_d[0]); - 191 : - 192 : assign csr_mfdc = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3] - 193 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 194 : - 195 : assign csr_dpc = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] - 196 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[0]); - 197 : - 198 : assign csr_mtsel = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] - 199 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 200 : - 201 : assign csr_mtdata1 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[5] - 202 : &!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[0]); - 203 : - 204 : assign csr_mtdata2 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[5] - 205 : &!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[1]); - 206 : - 207 : assign csr_mhpmc3 = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[8] - 208 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 209 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); - 210 : - 211 : assign csr_mhpmc4 = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[8] - 212 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 213 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 214 : - 215 : assign csr_mhpmc5 = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[8] - 216 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 217 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 218 : - 219 : assign csr_mhpmc6 = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[8] - 220 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 221 : &dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 222 : - 223 : assign csr_mhpmc3h = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 224 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 225 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); - 226 : - 227 : assign csr_mhpmc4h = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 228 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 229 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 230 : - 231 : assign csr_mhpmc5h = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 232 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 233 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 234 : - 235 : assign csr_mhpmc6h = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 236 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 237 : &dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 238 : - 239 : assign csr_mhpme3 = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] - 240 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] - 241 : &dec_csr_rdaddr_d[0]); - 242 : - 243 : assign csr_mhpme4 = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] - 244 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] - 245 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 246 : - 247 : assign csr_mhpme5 = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] - 248 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1] - 249 : &dec_csr_rdaddr_d[0]); - 250 : - 251 : assign csr_mhpme6 = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] - 252 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[1] - 253 : &!dec_csr_rdaddr_d[0]); - 254 : - 255 : assign csr_mcounteren = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] - 256 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]); - 257 : - 258 : assign csr_mcountinhibit = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] - 259 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] - 260 : &!dec_csr_rdaddr_d[0]); - 261 : - 262 : assign csr_mitctl0 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6] - 263 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1] - 264 : &!dec_csr_rdaddr_d[0]); - 265 : - 266 : assign csr_mitctl1 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[7] - 267 : &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1] - 268 : &dec_csr_rdaddr_d[0]); - 269 : - 270 : assign csr_mitb0 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[3] - 271 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 272 : - 273 : assign csr_mitb1 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[2] - 274 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 275 : - 276 : assign csr_mitcnt0 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6] - 277 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[2] - 278 : &!dec_csr_rdaddr_d[0]); - 279 : - 280 : assign csr_mitcnt1 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4] - 281 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 282 : - 283 : assign csr_perfva = 1'b0; - 284 : - 285 : assign csr_perfvb = 1'b0; - 286 : - 287 : assign csr_perfvc = 1'b0; - 288 : - 289 : assign csr_perfvd = 1'b0; - 290 : - 291 : assign csr_perfve = 1'b0; - 292 : - 293 : assign csr_perfvf = 1'b0; - 294 : - 295 : assign csr_perfvg = 1'b0; - 296 : - 297 : assign csr_perfvh = 1'b0; - 298 : - 299 : assign csr_perfvi = 1'b0; - 300 : - 301 : assign csr_mpmc = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] - 302 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] - 303 : &dec_csr_rdaddr_d[1]); - 304 : - 305 : assign csr_mcpc = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[4] - 306 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]); - 307 : - 308 : assign csr_meicpct = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[6] - 309 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 310 : - 311 : assign csr_mdeau = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 312 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[3]); - 313 : - 314 : assign csr_micect = (dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4] - 315 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 316 : - 317 : assign csr_miccmect = (dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] - 318 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[0]); - 319 : - 320 : assign csr_mdccmect = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[5] - 321 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 322 : - 323 : assign csr_mfdht = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] - 324 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 325 : - 326 : assign csr_mfdhs = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[4] - 327 : &dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); - 328 : - 329 : assign csr_dicawics = (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] - 330 : &!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] - 331 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 332 : - 333 : assign csr_dicad0h = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[3] - 334 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); - 335 : - 336 : assign csr_dicad0 = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[4] - 337 : &dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 338 : - 339 : assign csr_dicad1 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[3] - 340 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 341 : - 342 : assign csr_dicago = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[3] - 343 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 344 : - 345 : assign csr_menvcfg = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] - 346 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3]); - 347 : - 348 : assign csr_menvcfgh = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] - 349 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]); - 350 : - 351 : assign csr_pmpcfg = (!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[7] - 352 : &!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]); - 353 : - 354 : assign csr_pmpaddr0 = (!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[7] - 355 : &dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]); - 356 : - 357 : assign csr_pmpaddr16 = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 358 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]); - 359 : - 360 : assign csr_pmpaddr32 = (!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6] - 361 : &dec_csr_rdaddr_d[4]); - 362 : - 363 : assign csr_pmpaddr48 = (dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] - 364 : &!dec_csr_rdaddr_d[4]); - 365 : - 366 : assign csr_cyclel = (!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] - 367 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); - 368 : - 369 : assign csr_cycleh = (!dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 370 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); - 371 : - 372 : assign csr_instretl = (!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] - 373 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 374 : - 375 : assign csr_instreth = (!dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 376 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 377 : - 378 : assign csr_hpmc3 = (!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] - 379 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 380 : - 381 : assign csr_hpmc4 = (!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] - 382 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 383 : - 384 : assign csr_hpmc5 = (!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] - 385 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 386 : - 387 : assign csr_hpmc6 = (!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] - 388 : &dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]); - 389 : - 390 : assign csr_hpmc3h = (!dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 391 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 392 : - 393 : assign csr_hpmc4h = (!dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 394 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 395 : - 396 : assign csr_hpmc5h = (!dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 397 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 398 : - 399 : assign csr_hpmc6h = (!dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 400 : &dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]); - 401 : - 402 : assign csr_mseccfgl = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[7] - 403 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[4]); - 404 : - 405 : assign csr_mseccfgh = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] - 406 : &dec_csr_rdaddr_d[4]); - 407 : - 408 : assign valid_only = (!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 409 : &dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | ( - 410 : !dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[2] - 411 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[7] - 412 : &dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]) | (!dec_csr_rdaddr_d[7] - 413 : &dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[3]) | (dec_csr_rdaddr_d[11] - 414 : &!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[3]) | (dec_csr_rdaddr_d[11] - 415 : &!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]); - 416 : - 417 : assign presync = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3] - 418 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[7] - 419 : &dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 420 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[10] - 421 : &dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[0]) | ( - 422 : dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 423 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]) | (dec_csr_rdaddr_d[11] - 424 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1] - 425 : &dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[4] - 426 : &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]) | ( - 427 : dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] - 428 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]); - 429 : - 430 : assign postsync = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3] - 431 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11] - 432 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[2] - 433 : &dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[7] - 434 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 435 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[10] - 436 : &dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[0]) | ( - 437 : !dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[5] - 438 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1]) | ( - 439 : dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[4] - 440 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]) | ( - 441 : !dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[1] - 442 : &dec_csr_rdaddr_d[0]); - 443 : - 444 160 : logic legal; - 445 : assign legal = (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] - 446 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] - 447 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] - 448 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[10] - 449 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 450 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] - 451 : &dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | ( - 452 : !dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 453 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 454 : &dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1] - 455 : &!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 456 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] - 457 : &dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | ( - 458 : !dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 459 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 460 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] - 461 : &!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 462 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[6] - 463 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 464 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[10] - 465 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 466 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] - 467 : &dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]) | (dec_csr_rdaddr_d[11] - 468 : &!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 469 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[0]) | ( - 470 : !dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] - 471 : &dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6] - 472 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 473 : &!dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 474 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] - 475 : &dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[2]) | (!dec_csr_rdaddr_d[11] - 476 : &!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 477 : &dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]) | ( - 478 : dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[9] - 479 : &!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 480 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] - 481 : &!dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] - 482 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 483 : &dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4] - 484 : &dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1] - 485 : &dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] - 486 : &!dec_csr_rdaddr_d[9]&!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] - 487 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 488 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]) | (dec_csr_rdaddr_d[11] - 489 : &dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[9]&!dec_csr_rdaddr_d[8] - 490 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] - 491 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11] - 492 : &dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 493 : &dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] - 494 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]) | ( - 495 : !dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 496 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] - 497 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]) | ( - 498 : !dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 499 : &dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 500 : &!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[1]) | ( - 501 : dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 502 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 503 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] - 504 : &dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9] - 505 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] - 506 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 507 : &dec_csr_rdaddr_d[2]) | (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9] - 508 : &dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6] - 509 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 510 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | ( - 511 : !dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] - 512 : &dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] - 513 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11] - 514 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 515 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4] - 516 : &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[11] - 517 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 518 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] - 519 : &dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]) | (dec_csr_rdaddr_d[11] - 520 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] - 521 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4] - 522 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]) | ( - 523 : !dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 524 : &dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 525 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[9] - 526 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] - 527 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[2] - 528 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11] - 529 : &dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 530 : &!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 531 : &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1] - 532 : &dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 533 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] - 534 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[2]) | (!dec_csr_rdaddr_d[11] - 535 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 536 : &!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] - 537 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]) | ( - 538 : !dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] - 539 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 540 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]) | ( - 541 : dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] - 542 : &dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 543 : &dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 544 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] - 545 : &dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[3]) | (!dec_csr_rdaddr_d[11] - 546 : &!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 547 : &!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]) | ( - 548 : dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] - 549 : &dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 550 : &dec_csr_rdaddr_d[3]) | (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 551 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] - 552 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]) | (!dec_csr_rdaddr_d[11] - 553 : &!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 554 : &dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]); - 555 : -- |
-
+
|
+
Current view: | ++ Cores-VeeR-EL2—Cores-VeeR-EL2—design—include—el2_dec_csr_equ_m.svh + | ++ | + | Coverage | +Hit | +Total | +
Test Date: | ++ 25-09-2024 + | ++ + | + Toggle + | ++ 8.3% + | ++ 7 + | ++ 84 + | + +
Test: | ++ ahb_modesw + | ++ + | + Branch + | ++ 0.0% + | ++ 0 + | ++ 0 + | + +
+Line data Source code+ + 1 4 : logic csr_misa; + 2 0 : logic csr_mvendorid; + 3 0 : logic csr_marchid; + 4 0 : logic csr_mimpid; + 5 0 : logic csr_mhartid; + 6 18 : logic csr_mstatus; + 7 4 : logic csr_mtvec; + 8 0 : logic csr_mip; + 9 0 : logic csr_mie; + 10 0 : logic csr_mcyclel; + 11 0 : logic csr_mcycleh; + 12 0 : logic csr_minstretl; + 13 0 : logic csr_minstreth; + 14 0 : logic csr_mscratch; + 15 0 : logic csr_mepc; + 16 0 : logic csr_mcause; + 17 0 : logic csr_mscause; + 18 0 : logic csr_mtval; + 19 0 : logic csr_mrac; + 20 0 : logic csr_dmst; + 21 0 : logic csr_mdseac; + 22 0 : logic csr_meihap; + 23 0 : logic csr_meivt; + 24 0 : logic csr_meipt; + 25 0 : logic csr_meicurpl; + 26 0 : logic csr_meicidpl; + 27 0 : logic csr_dcsr; + 28 0 : logic csr_mcgc; + 29 0 : logic csr_mfdc; + 30 0 : logic csr_dpc; + 31 0 : logic csr_mtsel; + 32 0 : logic csr_mtdata1; + 33 0 : logic csr_mtdata2; + 34 0 : logic csr_mhpmc3; + 35 0 : logic csr_mhpmc4; + 36 0 : logic csr_mhpmc5; + 37 0 : logic csr_mhpmc6; + 38 0 : logic csr_mhpmc3h; + 39 0 : logic csr_mhpmc4h; + 40 0 : logic csr_mhpmc5h; + 41 0 : logic csr_mhpmc6h; + 42 0 : logic csr_mhpme3; + 43 0 : logic csr_mhpme4; + 44 0 : logic csr_mhpme5; + 45 0 : logic csr_mhpme6; + 46 0 : logic csr_mcountinhibit; + 47 0 : logic csr_mitctl0; + 48 0 : logic csr_mitctl1; + 49 0 : logic csr_mitb0; + 50 0 : logic csr_mitb1; + 51 0 : logic csr_mitcnt0; + 52 0 : logic csr_mitcnt1; + 53 0 : logic csr_perfva; + 54 0 : logic csr_perfvb; + 55 0 : logic csr_perfvc; + 56 0 : logic csr_perfvd; + 57 0 : logic csr_perfve; + 58 0 : logic csr_perfvf; + 59 0 : logic csr_perfvg; + 60 0 : logic csr_perfvh; + 61 0 : logic csr_perfvi; + 62 0 : logic csr_mpmc; + 63 0 : logic csr_mcpc; + 64 0 : logic csr_meicpct; + 65 0 : logic csr_mdeau; + 66 0 : logic csr_micect; + 67 0 : logic csr_miccmect; + 68 0 : logic csr_mdccmect; + 69 0 : logic csr_mfdht; + 70 0 : logic csr_mfdhs; + 71 0 : logic csr_dicawics; + 72 0 : logic csr_dicad0h; + 73 0 : logic csr_dicad0; + 74 0 : logic csr_dicad1; + 75 0 : logic csr_dicago; + 76 4 : logic csr_pmpcfg; + 77 4 : logic csr_pmpaddr0; + 78 0 : logic csr_pmpaddr16; + 79 0 : logic csr_pmpaddr32; + 80 0 : logic csr_pmpaddr48; + 81 0 : logic valid_only; + 82 0 : logic presync; + 83 14 : logic postsync; + 84 : assign csr_misa = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] + 85 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); + 86 : + 87 : assign csr_mvendorid = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[7] + 88 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 89 : + 90 : assign csr_marchid = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[7] + 91 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 92 : + 93 : assign csr_mimpid = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[6] + 94 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 95 : + 96 : assign csr_mhartid = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[7] + 97 : &dec_csr_rdaddr_d[2]); + 98 : + 99 : assign csr_mstatus = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] + 100 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]); + 101 : + 102 : assign csr_mtvec = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] + 103 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); + 104 : + 105 : assign csr_mip = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[2]); + 106 : + 107 : assign csr_mie = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] + 108 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]); + 109 : + 110 : assign csr_mcyclel = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[7] + 111 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 112 : &!dec_csr_rdaddr_d[1]); + 113 : + 114 : assign csr_mcycleh = (dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6] + 115 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 116 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); + 117 : + 118 : assign csr_minstretl = (!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6] + 119 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 120 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 121 : + 122 : assign csr_minstreth = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[7] + 123 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 124 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 125 : + 126 : assign csr_mscratch = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] + 127 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 128 : + 129 : assign csr_mepc = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[1] + 130 : &dec_csr_rdaddr_d[0]); + 131 : + 132 : assign csr_mcause = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] + 133 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 134 : + 135 : assign csr_mscause = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[5] + 136 : &dec_csr_rdaddr_d[2]); + 137 : + 138 : assign csr_mtval = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[1] + 139 : &dec_csr_rdaddr_d[0]); + 140 : + 141 : assign csr_mrac = (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] + 142 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 143 : &!dec_csr_rdaddr_d[1]); + 144 : + 145 : assign csr_dmst = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 146 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); + 147 : + 148 : assign csr_mdseac = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] + 149 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]); + 150 : + 151 : assign csr_meihap = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] + 152 : &dec_csr_rdaddr_d[3]); + 153 : + 154 : assign csr_meivt = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 155 : &dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 156 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 157 : + 158 : assign csr_meipt = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[1] + 159 : &dec_csr_rdaddr_d[0]); + 160 : + 161 : assign csr_meicurpl = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[6] + 162 : &dec_csr_rdaddr_d[2]); + 163 : + 164 : assign csr_meicidpl = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[6] + 165 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 166 : + 167 : assign csr_dcsr = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] + 168 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[0]); + 169 : + 170 : assign csr_mcgc = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3] + 171 : &!dec_csr_rdaddr_d[0]); + 172 : + 173 : assign csr_mfdc = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3] + 174 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 175 : + 176 : assign csr_dpc = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] + 177 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[0]); + 178 : + 179 : assign csr_mtsel = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] + 180 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 181 : + 182 : assign csr_mtdata1 = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[4] + 183 : &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[0]); + 184 : + 185 : assign csr_mtdata2 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[5] + 186 : &!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[1]); + 187 : + 188 : assign csr_mhpmc3 = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[7] + 189 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 190 : &dec_csr_rdaddr_d[0]); + 191 : + 192 : assign csr_mhpmc4 = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[7] + 193 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] + 194 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 195 : + 196 : assign csr_mhpmc5 = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[7] + 197 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1] + 198 : &dec_csr_rdaddr_d[0]); + 199 : + 200 : assign csr_mhpmc6 = (!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[5] + 201 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] + 202 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 203 : + 204 : assign csr_mhpmc3h = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[7] + 205 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 206 : &dec_csr_rdaddr_d[0]); + 207 : + 208 : assign csr_mhpmc4h = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[7] + 209 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] + 210 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 211 : + 212 : assign csr_mhpmc5h = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[7] + 213 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1] + 214 : &dec_csr_rdaddr_d[0]); + 215 : + 216 : assign csr_mhpmc6h = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[7] + 217 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] + 218 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 219 : + 220 : assign csr_mhpme3 = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] + 221 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 222 : &dec_csr_rdaddr_d[0]); + 223 : + 224 : assign csr_mhpme4 = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] + 225 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] + 226 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 227 : + 228 : assign csr_mhpme5 = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] + 229 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1] + 230 : &dec_csr_rdaddr_d[0]); + 231 : + 232 : assign csr_mhpme6 = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] + 233 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[1] + 234 : &!dec_csr_rdaddr_d[0]); + 235 : + 236 : assign csr_mcountinhibit = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] + 237 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 238 : &!dec_csr_rdaddr_d[0]); + 239 : + 240 : assign csr_mitctl0 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6] + 241 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1] + 242 : &!dec_csr_rdaddr_d[0]); + 243 : + 244 : assign csr_mitctl1 = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[3] + 245 : &dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 246 : + 247 : assign csr_mitb0 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[3] + 248 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 249 : + 250 : assign csr_mitb1 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[2] + 251 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 252 : + 253 : assign csr_mitcnt0 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6] + 254 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[2] + 255 : &!dec_csr_rdaddr_d[0]); + 256 : + 257 : assign csr_mitcnt1 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[2] + 258 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 259 : + 260 : assign csr_perfva = 1'b0; + 261 : + 262 : assign csr_perfvb = 1'b0; + 263 : + 264 : assign csr_perfvc = 1'b0; + 265 : + 266 : assign csr_perfvd = 1'b0; + 267 : + 268 : assign csr_perfve = 1'b0; + 269 : + 270 : assign csr_perfvf = 1'b0; + 271 : + 272 : assign csr_perfvg = 1'b0; + 273 : + 274 : assign csr_perfvh = 1'b0; + 275 : + 276 : assign csr_perfvi = 1'b0; + 277 : + 278 : assign csr_mpmc = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 279 : &dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]); + 280 : + 281 : assign csr_mcpc = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] + 282 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]); + 283 : + 284 : assign csr_meicpct = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[6] + 285 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 286 : + 287 : assign csr_mdeau = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 288 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[3]); + 289 : + 290 : assign csr_micect = (dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4] + 291 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 292 : + 293 : assign csr_miccmect = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6] + 294 : &dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[0]); + 295 : + 296 : assign csr_mdccmect = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[5] + 297 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 298 : + 299 : assign csr_mfdht = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] + 300 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 301 : + 302 : assign csr_mfdhs = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[4] + 303 : &dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); + 304 : + 305 : assign csr_dicawics = (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] + 306 : &!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 307 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 308 : + 309 : assign csr_dicad0h = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[3] + 310 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); + 311 : + 312 : assign csr_dicad0 = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[4] + 313 : &dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 314 : + 315 : assign csr_dicad1 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[3] + 316 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 317 : + 318 : assign csr_dicago = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[3] + 319 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 320 : + 321 : assign csr_pmpcfg = (!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[7] + 322 : &!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]); + 323 : + 324 : assign csr_pmpaddr0 = (!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[7] + 325 : &dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]); + 326 : + 327 : assign csr_pmpaddr16 = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 328 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]); + 329 : + 330 : assign csr_pmpaddr32 = (!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6] + 331 : &dec_csr_rdaddr_d[4]); + 332 : + 333 : assign csr_pmpaddr48 = (dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] + 334 : &!dec_csr_rdaddr_d[4]); + 335 : + 336 : assign valid_only = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[2] + 337 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[7] + 338 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]) | ( + 339 : !dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[4]) | ( + 340 : !dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[3]) | ( + 341 : !dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1] + 342 : &dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[3]); + 343 : + 344 : assign presync = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3] + 345 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[10] + 346 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 347 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[7] + 348 : &dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 349 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[10] + 350 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[0]) | ( + 351 : dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 352 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[11] + 353 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] + 354 : &!dec_csr_rdaddr_d[1]) | (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[4] + 355 : &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 356 : + 357 : assign postsync = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3] + 358 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11] + 359 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[2] + 360 : &dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[7] + 361 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 362 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[10] + 363 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[0]) | ( + 364 : !dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[5] + 365 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1]) | ( + 366 : dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 367 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[7] + 368 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 369 : + 370 16 : logic legal; + 371 : assign legal = (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] + 372 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] + 373 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 374 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[10] + 375 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 376 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] + 377 : &dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | ( + 378 : !dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] + 379 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] + 380 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1] + 381 : &!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 382 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] + 383 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] + 384 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1]) | (dec_csr_rdaddr_d[11] + 385 : &!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] + 386 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[0]) | ( + 387 : !dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] + 388 : &dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] + 389 : &!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]) | ( + 390 : !dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] + 391 : &dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6] + 392 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1] + 393 : &!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 394 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 395 : &dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]) | (!dec_csr_rdaddr_d[11] + 396 : &dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] + 397 : &dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] + 398 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] + 399 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11] + 400 : &dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] + 401 : &dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] + 402 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]) | ( + 403 : dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] + 404 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] + 405 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 406 : &dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9] + 407 : &dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6] + 408 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 409 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | ( + 410 : dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] + 411 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] + 412 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 413 : &dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9] + 414 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6] + 415 : &dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 416 : &!dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 417 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] + 418 : &dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[2]) | (!dec_csr_rdaddr_d[11] + 419 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 420 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4] + 421 : &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]) | (!dec_csr_rdaddr_d[11] + 422 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 423 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] + 424 : &dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[11] + 425 : &!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] + 426 : &!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[1] + 427 : &dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 428 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] + 429 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[2]) | (!dec_csr_rdaddr_d[11] + 430 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 431 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4] + 432 : &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[1]) | (dec_csr_rdaddr_d[9] + 433 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] + 434 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[2] + 435 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11] + 436 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 437 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] + 438 : &!dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 439 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] + 440 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[11] + 441 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 442 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] + 443 : &dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]) | (!dec_csr_rdaddr_d[11] + 444 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 445 : &!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] + 446 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]) | ( + 447 : !dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] + 448 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] + 449 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]) | ( + 450 : !dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] + 451 : &dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] + 452 : &dec_csr_rdaddr_d[3]) | (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 453 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] + 454 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[3]) | (!dec_csr_rdaddr_d[11] + 455 : &!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] + 456 : &!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]) | ( + 457 : dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] + 458 : &dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] + 459 : &dec_csr_rdaddr_d[4]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 460 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 461 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]); + 462 : ++ |
+
-
|
-
Current view: | -- Cores-VeeR-EL2—Cores-VeeR-EL2—design—include—el2_dec_csr_equ_mu.svh - | -- | - | Coverage | -Hit | -Total | -
Test Date: | -- 19-09-2024 - | -- - | - Toggle - | -- 9.9% - | -- 10 - | -- 101 - | - -
Test: | -- ahb_modesw - | -- - | - Branch - | -- 0.0% - | -- 0 - | -- 0 - | - -
-Line data Source code- - 1 4 : logic csr_misa; - 2 0 : logic csr_mvendorid; - 3 0 : logic csr_marchid; - 4 0 : logic csr_mimpid; - 5 0 : logic csr_mhartid; - 6 166 : logic csr_mstatus; - 7 4 : logic csr_mtvec; - 8 0 : logic csr_mip; - 9 0 : logic csr_mie; - 10 0 : logic csr_mcyclel; - 11 0 : logic csr_mcycleh; - 12 0 : logic csr_minstretl; - 13 0 : logic csr_minstreth; - 14 0 : logic csr_mscratch; - 15 76 : logic csr_mepc; - 16 72 : logic csr_mcause; - 17 0 : logic csr_mscause; - 18 0 : logic csr_mtval; - 19 0 : logic csr_mrac; - 20 0 : logic csr_dmst; - 21 0 : logic csr_mdseac; - 22 0 : logic csr_meihap; - 23 0 : logic csr_meivt; - 24 0 : logic csr_meipt; - 25 0 : logic csr_meicurpl; - 26 0 : logic csr_meicidpl; - 27 0 : logic csr_dcsr; - 28 0 : logic csr_mcgc; - 29 0 : logic csr_mfdc; - 30 0 : logic csr_dpc; - 31 0 : logic csr_mtsel; - 32 0 : logic csr_mtdata1; - 33 0 : logic csr_mtdata2; - 34 0 : logic csr_mhpmc3; - 35 0 : logic csr_mhpmc4; - 36 0 : logic csr_mhpmc5; - 37 0 : logic csr_mhpmc6; - 38 0 : logic csr_mhpmc3h; - 39 0 : logic csr_mhpmc4h; - 40 0 : logic csr_mhpmc5h; - 41 0 : logic csr_mhpmc6h; - 42 0 : logic csr_mhpme3; - 43 0 : logic csr_mhpme4; - 44 0 : logic csr_mhpme5; - 45 0 : logic csr_mhpme6; - 46 0 : logic csr_mcounteren; - 47 0 : logic csr_mcountinhibit; - 48 0 : logic csr_mitctl0; - 49 0 : logic csr_mitctl1; - 50 0 : logic csr_mitb0; - 51 0 : logic csr_mitb1; - 52 0 : logic csr_mitcnt0; - 53 0 : logic csr_mitcnt1; - 54 0 : logic csr_perfva; - 55 0 : logic csr_perfvb; - 56 0 : logic csr_perfvc; - 57 0 : logic csr_perfvd; - 58 0 : logic csr_perfve; - 59 0 : logic csr_perfvf; - 60 0 : logic csr_perfvg; - 61 0 : logic csr_perfvh; - 62 0 : logic csr_perfvi; - 63 0 : logic csr_mpmc; - 64 0 : logic csr_mcpc; - 65 0 : logic csr_meicpct; - 66 0 : logic csr_mdeau; - 67 0 : logic csr_micect; - 68 0 : logic csr_miccmect; - 69 0 : logic csr_mdccmect; - 70 0 : logic csr_mfdht; - 71 0 : logic csr_mfdhs; - 72 0 : logic csr_dicawics; - 73 0 : logic csr_dicad0h; - 74 0 : logic csr_dicad0; - 75 0 : logic csr_dicad1; - 76 0 : logic csr_dicago; - 77 0 : logic csr_menvcfg; - 78 0 : logic csr_menvcfgh; - 79 4 : logic csr_pmpcfg; - 80 4 : logic csr_pmpaddr0; - 81 0 : logic csr_pmpaddr16; - 82 0 : logic csr_pmpaddr32; - 83 0 : logic csr_pmpaddr48; - 84 234 : logic csr_cyclel; - 85 0 : logic csr_cycleh; - 86 0 : logic csr_instretl; - 87 0 : logic csr_instreth; - 88 0 : logic csr_hpmc3; - 89 0 : logic csr_hpmc4; - 90 0 : logic csr_hpmc5; - 91 0 : logic csr_hpmc6; - 92 0 : logic csr_hpmc3h; - 93 0 : logic csr_hpmc4h; - 94 0 : logic csr_hpmc5h; - 95 0 : logic csr_hpmc6h; - 96 0 : logic csr_mseccfgl; - 97 0 : logic csr_mseccfgh; - 98 0 : logic valid_only; - 99 0 : logic presync; - 100 86 : logic postsync; - 101 : assign csr_misa = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] - 102 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); - 103 : - 104 : assign csr_mvendorid = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[7] - 105 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 106 : - 107 : assign csr_marchid = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[7] - 108 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 109 : - 110 : assign csr_mimpid = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[6] - 111 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 112 : - 113 : assign csr_mhartid = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] - 114 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[2]); - 115 : - 116 : assign csr_mstatus = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] - 117 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1] - 118 : &!dec_csr_rdaddr_d[0]); - 119 : - 120 : assign csr_mtvec = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] - 121 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); - 122 : - 123 : assign csr_mip = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[2] - 124 : &!dec_csr_rdaddr_d[0]); - 125 : - 126 : assign csr_mie = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 127 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 128 : - 129 : assign csr_mcyclel = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[8] - 130 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 131 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); - 132 : - 133 : assign csr_mcycleh = (!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[7] - 134 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] - 135 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); - 136 : - 137 : assign csr_minstretl = (dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] - 138 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 139 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 140 : - 141 : assign csr_minstreth = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 142 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 143 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 144 : - 145 : assign csr_mscratch = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] - 146 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 147 : - 148 : assign csr_mepc = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[1] - 149 : &dec_csr_rdaddr_d[0]); - 150 : - 151 : assign csr_mcause = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] - 152 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 153 : - 154 : assign csr_mscause = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[5] - 155 : &dec_csr_rdaddr_d[2]); - 156 : - 157 : assign csr_mtval = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[2] - 158 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 159 : - 160 : assign csr_mrac = (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] - 161 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] - 162 : &!dec_csr_rdaddr_d[1]); - 163 : - 164 : assign csr_dmst = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[4] - 165 : &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); - 166 : - 167 : assign csr_mdseac = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] - 168 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[3]); - 169 : - 170 : assign csr_meihap = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] - 171 : &dec_csr_rdaddr_d[3]); - 172 : - 173 : assign csr_meivt = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 174 : &dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] - 175 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 176 : - 177 : assign csr_meipt = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[1] - 178 : &dec_csr_rdaddr_d[0]); - 179 : - 180 : assign csr_meicurpl = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[6] - 181 : &dec_csr_rdaddr_d[2]); - 182 : - 183 : assign csr_meicidpl = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[6] - 184 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 185 : - 186 : assign csr_dcsr = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] - 187 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[0]); - 188 : - 189 : assign csr_mcgc = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3] - 190 : &!dec_csr_rdaddr_d[0]); - 191 : - 192 : assign csr_mfdc = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3] - 193 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 194 : - 195 : assign csr_dpc = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] - 196 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[0]); - 197 : - 198 : assign csr_mtsel = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] - 199 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 200 : - 201 : assign csr_mtdata1 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[5] - 202 : &!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[0]); - 203 : - 204 : assign csr_mtdata2 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[5] - 205 : &!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[1]); - 206 : - 207 : assign csr_mhpmc3 = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[8] - 208 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 209 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); - 210 : - 211 : assign csr_mhpmc4 = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[8] - 212 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 213 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 214 : - 215 : assign csr_mhpmc5 = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[8] - 216 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 217 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 218 : - 219 : assign csr_mhpmc6 = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[8] - 220 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 221 : &dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 222 : - 223 : assign csr_mhpmc3h = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 224 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 225 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); - 226 : - 227 : assign csr_mhpmc4h = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 228 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 229 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 230 : - 231 : assign csr_mhpmc5h = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 232 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 233 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 234 : - 235 : assign csr_mhpmc6h = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 236 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 237 : &dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 238 : - 239 : assign csr_mhpme3 = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] - 240 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] - 241 : &dec_csr_rdaddr_d[0]); - 242 : - 243 : assign csr_mhpme4 = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] - 244 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] - 245 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 246 : - 247 : assign csr_mhpme5 = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] - 248 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1] - 249 : &dec_csr_rdaddr_d[0]); - 250 : - 251 : assign csr_mhpme6 = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] - 252 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[1] - 253 : &!dec_csr_rdaddr_d[0]); - 254 : - 255 : assign csr_mcounteren = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] - 256 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]); - 257 : - 258 : assign csr_mcountinhibit = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] - 259 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] - 260 : &!dec_csr_rdaddr_d[0]); - 261 : - 262 : assign csr_mitctl0 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6] - 263 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1] - 264 : &!dec_csr_rdaddr_d[0]); - 265 : - 266 : assign csr_mitctl1 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[7] - 267 : &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1] - 268 : &dec_csr_rdaddr_d[0]); - 269 : - 270 : assign csr_mitb0 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[3] - 271 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 272 : - 273 : assign csr_mitb1 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[2] - 274 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 275 : - 276 : assign csr_mitcnt0 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6] - 277 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[2] - 278 : &!dec_csr_rdaddr_d[0]); - 279 : - 280 : assign csr_mitcnt1 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4] - 281 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 282 : - 283 : assign csr_perfva = 1'b0; - 284 : - 285 : assign csr_perfvb = 1'b0; - 286 : - 287 : assign csr_perfvc = 1'b0; - 288 : - 289 : assign csr_perfvd = 1'b0; - 290 : - 291 : assign csr_perfve = 1'b0; - 292 : - 293 : assign csr_perfvf = 1'b0; - 294 : - 295 : assign csr_perfvg = 1'b0; - 296 : - 297 : assign csr_perfvh = 1'b0; - 298 : - 299 : assign csr_perfvi = 1'b0; - 300 : - 301 : assign csr_mpmc = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] - 302 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] - 303 : &dec_csr_rdaddr_d[1]); - 304 : - 305 : assign csr_mcpc = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[4] - 306 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]); - 307 : - 308 : assign csr_meicpct = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[6] - 309 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 310 : - 311 : assign csr_mdeau = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 312 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[3]); - 313 : - 314 : assign csr_micect = (dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4] - 315 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 316 : - 317 : assign csr_miccmect = (dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] - 318 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[0]); - 319 : - 320 : assign csr_mdccmect = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[5] - 321 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 322 : - 323 : assign csr_mfdht = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] - 324 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 325 : - 326 : assign csr_mfdhs = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[4] - 327 : &dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); - 328 : - 329 : assign csr_dicawics = (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] - 330 : &!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] - 331 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 332 : - 333 : assign csr_dicad0h = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[3] - 334 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); - 335 : - 336 : assign csr_dicad0 = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[4] - 337 : &dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 338 : - 339 : assign csr_dicad1 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[3] - 340 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 341 : - 342 : assign csr_dicago = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[3] - 343 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 344 : - 345 : assign csr_menvcfg = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] - 346 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3]); - 347 : - 348 : assign csr_menvcfgh = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] - 349 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]); - 350 : - 351 : assign csr_pmpcfg = (!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[7] - 352 : &!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]); - 353 : - 354 : assign csr_pmpaddr0 = (!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[7] - 355 : &dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]); - 356 : - 357 : assign csr_pmpaddr16 = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 358 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]); - 359 : - 360 : assign csr_pmpaddr32 = (!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6] - 361 : &dec_csr_rdaddr_d[4]); - 362 : - 363 : assign csr_pmpaddr48 = (dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] - 364 : &!dec_csr_rdaddr_d[4]); - 365 : - 366 : assign csr_cyclel = (!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] - 367 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); - 368 : - 369 : assign csr_cycleh = (!dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 370 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); - 371 : - 372 : assign csr_instretl = (!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] - 373 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 374 : - 375 : assign csr_instreth = (!dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 376 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 377 : - 378 : assign csr_hpmc3 = (!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] - 379 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 380 : - 381 : assign csr_hpmc4 = (!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] - 382 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 383 : - 384 : assign csr_hpmc5 = (!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] - 385 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 386 : - 387 : assign csr_hpmc6 = (!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] - 388 : &dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]); - 389 : - 390 : assign csr_hpmc3h = (!dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 391 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 392 : - 393 : assign csr_hpmc4h = (!dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 394 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); - 395 : - 396 : assign csr_hpmc5h = (!dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 397 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); - 398 : - 399 : assign csr_hpmc6h = (!dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 400 : &dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]); - 401 : - 402 : assign csr_mseccfgl = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[7] - 403 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[4]); - 404 : - 405 : assign csr_mseccfgh = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] - 406 : &dec_csr_rdaddr_d[4]); - 407 : - 408 : assign valid_only = (!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 409 : &dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | ( - 410 : !dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[2] - 411 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[7] - 412 : &dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]) | (!dec_csr_rdaddr_d[7] - 413 : &dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[3]) | (dec_csr_rdaddr_d[11] - 414 : &!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[3]) | (dec_csr_rdaddr_d[11] - 415 : &!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]); - 416 : - 417 : assign presync = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3] - 418 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[7] - 419 : &dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 420 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[10] - 421 : &dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[0]) | ( - 422 : dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 423 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]) | (dec_csr_rdaddr_d[11] - 424 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1] - 425 : &dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[4] - 426 : &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]) | ( - 427 : dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] - 428 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]); - 429 : - 430 : assign postsync = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3] - 431 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11] - 432 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[2] - 433 : &dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[7] - 434 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 435 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[10] - 436 : &dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[0]) | ( - 437 : !dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[5] - 438 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1]) | ( - 439 : dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[4] - 440 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]) | ( - 441 : !dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[1] - 442 : &dec_csr_rdaddr_d[0]); - 443 : - 444 232 : logic legal; - 445 : assign legal = (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] - 446 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] - 447 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] - 448 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[10] - 449 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 450 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] - 451 : &dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | ( - 452 : !dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 453 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 454 : &dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1] - 455 : &!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 456 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] - 457 : &dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | ( - 458 : !dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 459 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 460 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] - 461 : &!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 462 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[6] - 463 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 464 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[10] - 465 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 466 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] - 467 : &dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]) | (dec_csr_rdaddr_d[11] - 468 : &!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 469 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[0]) | ( - 470 : !dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] - 471 : &dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6] - 472 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 473 : &!dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 474 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] - 475 : &dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[2]) | (!dec_csr_rdaddr_d[11] - 476 : &!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 477 : &dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]) | ( - 478 : dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[9] - 479 : &!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 480 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] - 481 : &!dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] - 482 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 483 : &dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4] - 484 : &dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1] - 485 : &dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] - 486 : &!dec_csr_rdaddr_d[9]&!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] - 487 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 488 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]) | (dec_csr_rdaddr_d[11] - 489 : &dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[9]&!dec_csr_rdaddr_d[8] - 490 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] - 491 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11] - 492 : &dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 493 : &dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] - 494 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]) | ( - 495 : !dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 496 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] - 497 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]) | ( - 498 : !dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 499 : &dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 500 : &!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[1]) | ( - 501 : dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 502 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 503 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] - 504 : &dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9] - 505 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] - 506 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 507 : &dec_csr_rdaddr_d[2]) | (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9] - 508 : &dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6] - 509 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] - 510 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | ( - 511 : !dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] - 512 : &dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] - 513 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11] - 514 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 515 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4] - 516 : &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[11] - 517 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 518 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] - 519 : &dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]) | (dec_csr_rdaddr_d[11] - 520 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] - 521 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4] - 522 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]) | ( - 523 : !dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 524 : &dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 525 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[9] - 526 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] - 527 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[2] - 528 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11] - 529 : &dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 530 : &!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 531 : &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1] - 532 : &dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 533 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] - 534 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[2]) | (!dec_csr_rdaddr_d[11] - 535 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] - 536 : &!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] - 537 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]) | ( - 538 : !dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] - 539 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 540 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]) | ( - 541 : dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] - 542 : &dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 543 : &dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 544 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] - 545 : &dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[3]) | (!dec_csr_rdaddr_d[11] - 546 : &!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 547 : &!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]) | ( - 548 : dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] - 549 : &dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] - 550 : &dec_csr_rdaddr_d[3]) | (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] - 551 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] - 552 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]) | (!dec_csr_rdaddr_d[11] - 553 : &!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] - 554 : &dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]); - 555 : -- |
-
+
|
+
Current view: | ++ Cores-VeeR-EL2—Cores-VeeR-EL2—design—include—el2_dec_csr_equ_mu.svh + | ++ | + | Coverage | +Hit | +Total | +
Test Date: | ++ 25-09-2024 + | ++ + | + Toggle + | ++ 6.9% + | ++ 7 + | ++ 101 + | + +
Test: | ++ axi_cmark + | ++ + | + Branch + | ++ 0.0% + | ++ 0 + | ++ 0 + | + +
+Line data Source code+ + 1 0 : logic csr_misa; + 2 0 : logic csr_mvendorid; + 3 0 : logic csr_marchid; + 4 0 : logic csr_mimpid; + 5 0 : logic csr_mhartid; + 6 36 : logic csr_mstatus; + 7 8 : logic csr_mtvec; + 8 0 : logic csr_mip; + 9 0 : logic csr_mie; + 10 16 : logic csr_mcyclel; + 11 0 : logic csr_mcycleh; + 12 0 : logic csr_minstretl; + 13 0 : logic csr_minstreth; + 14 0 : logic csr_mscratch; + 15 0 : logic csr_mepc; + 16 0 : logic csr_mcause; + 17 0 : logic csr_mscause; + 18 0 : logic csr_mtval; + 19 8 : logic csr_mrac; + 20 0 : logic csr_dmst; + 21 0 : logic csr_mdseac; + 22 0 : logic csr_meihap; + 23 0 : logic csr_meivt; + 24 0 : logic csr_meipt; + 25 0 : logic csr_meicurpl; + 26 0 : logic csr_meicidpl; + 27 0 : logic csr_dcsr; + 28 0 : logic csr_mcgc; + 29 0 : logic csr_mfdc; + 30 0 : logic csr_dpc; + 31 0 : logic csr_mtsel; + 32 0 : logic csr_mtdata1; + 33 0 : logic csr_mtdata2; + 34 0 : logic csr_mhpmc3; + 35 0 : logic csr_mhpmc4; + 36 0 : logic csr_mhpmc5; + 37 0 : logic csr_mhpmc6; + 38 0 : logic csr_mhpmc3h; + 39 0 : logic csr_mhpmc4h; + 40 0 : logic csr_mhpmc5h; + 41 0 : logic csr_mhpmc6h; + 42 0 : logic csr_mhpme3; + 43 0 : logic csr_mhpme4; + 44 0 : logic csr_mhpme5; + 45 0 : logic csr_mhpme6; + 46 0 : logic csr_mcounteren; + 47 0 : logic csr_mcountinhibit; + 48 0 : logic csr_mitctl0; + 49 0 : logic csr_mitctl1; + 50 0 : logic csr_mitb0; + 51 0 : logic csr_mitb1; + 52 0 : logic csr_mitcnt0; + 53 0 : logic csr_mitcnt1; + 54 0 : logic csr_perfva; + 55 0 : logic csr_perfvb; + 56 0 : logic csr_perfvc; + 57 0 : logic csr_perfvd; + 58 0 : logic csr_perfve; + 59 0 : logic csr_perfvf; + 60 0 : logic csr_perfvg; + 61 0 : logic csr_perfvh; + 62 0 : logic csr_perfvi; + 63 0 : logic csr_mpmc; + 64 0 : logic csr_mcpc; + 65 0 : logic csr_meicpct; + 66 0 : logic csr_mdeau; + 67 0 : logic csr_micect; + 68 0 : logic csr_miccmect; + 69 0 : logic csr_mdccmect; + 70 0 : logic csr_mfdht; + 71 0 : logic csr_mfdhs; + 72 0 : logic csr_dicawics; + 73 0 : logic csr_dicad0h; + 74 0 : logic csr_dicad0; + 75 0 : logic csr_dicad1; + 76 0 : logic csr_dicago; + 77 0 : logic csr_menvcfg; + 78 0 : logic csr_menvcfgh; + 79 0 : logic csr_pmpcfg; + 80 0 : logic csr_pmpaddr0; + 81 0 : logic csr_pmpaddr16; + 82 0 : logic csr_pmpaddr32; + 83 0 : logic csr_pmpaddr48; + 84 36 : logic csr_cyclel; + 85 0 : logic csr_cycleh; + 86 0 : logic csr_instretl; + 87 0 : logic csr_instreth; + 88 0 : logic csr_hpmc3; + 89 0 : logic csr_hpmc4; + 90 0 : logic csr_hpmc5; + 91 0 : logic csr_hpmc6; + 92 0 : logic csr_hpmc3h; + 93 0 : logic csr_hpmc4h; + 94 0 : logic csr_hpmc5h; + 95 0 : logic csr_hpmc6h; + 96 0 : logic csr_mseccfgl; + 97 0 : logic csr_mseccfgh; + 98 0 : logic valid_only; + 99 0 : logic presync; + 100 20 : logic postsync; + 101 : assign csr_misa = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] + 102 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); + 103 : + 104 : assign csr_mvendorid = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[7] + 105 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 106 : + 107 : assign csr_marchid = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[7] + 108 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 109 : + 110 : assign csr_mimpid = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[6] + 111 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 112 : + 113 : assign csr_mhartid = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] + 114 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[2]); + 115 : + 116 : assign csr_mstatus = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] + 117 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1] + 118 : &!dec_csr_rdaddr_d[0]); + 119 : + 120 : assign csr_mtvec = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] + 121 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); + 122 : + 123 : assign csr_mip = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[2] + 124 : &!dec_csr_rdaddr_d[0]); + 125 : + 126 : assign csr_mie = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] + 127 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 128 : + 129 : assign csr_mcyclel = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[8] + 130 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 131 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); + 132 : + 133 : assign csr_mcycleh = (!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[7] + 134 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] + 135 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); + 136 : + 137 : assign csr_minstretl = (dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] + 138 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 139 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 140 : + 141 : assign csr_minstreth = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 142 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 143 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 144 : + 145 : assign csr_mscratch = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] + 146 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 147 : + 148 : assign csr_mepc = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[1] + 149 : &dec_csr_rdaddr_d[0]); + 150 : + 151 : assign csr_mcause = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] + 152 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 153 : + 154 : assign csr_mscause = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[5] + 155 : &dec_csr_rdaddr_d[2]); + 156 : + 157 : assign csr_mtval = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[2] + 158 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 159 : + 160 : assign csr_mrac = (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] + 161 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 162 : &!dec_csr_rdaddr_d[1]); + 163 : + 164 : assign csr_dmst = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[4] + 165 : &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); + 166 : + 167 : assign csr_mdseac = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] + 168 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[3]); + 169 : + 170 : assign csr_meihap = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] + 171 : &dec_csr_rdaddr_d[3]); + 172 : + 173 : assign csr_meivt = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 174 : &dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 175 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 176 : + 177 : assign csr_meipt = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[1] + 178 : &dec_csr_rdaddr_d[0]); + 179 : + 180 : assign csr_meicurpl = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[6] + 181 : &dec_csr_rdaddr_d[2]); + 182 : + 183 : assign csr_meicidpl = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[6] + 184 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 185 : + 186 : assign csr_dcsr = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] + 187 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[0]); + 188 : + 189 : assign csr_mcgc = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3] + 190 : &!dec_csr_rdaddr_d[0]); + 191 : + 192 : assign csr_mfdc = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3] + 193 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 194 : + 195 : assign csr_dpc = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] + 196 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[0]); + 197 : + 198 : assign csr_mtsel = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] + 199 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 200 : + 201 : assign csr_mtdata1 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[5] + 202 : &!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[0]); + 203 : + 204 : assign csr_mtdata2 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[5] + 205 : &!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[1]); + 206 : + 207 : assign csr_mhpmc3 = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[8] + 208 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 209 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); + 210 : + 211 : assign csr_mhpmc4 = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[8] + 212 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 213 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 214 : + 215 : assign csr_mhpmc5 = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[8] + 216 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 217 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 218 : + 219 : assign csr_mhpmc6 = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[8] + 220 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 221 : &dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 222 : + 223 : assign csr_mhpmc3h = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 224 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 225 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); + 226 : + 227 : assign csr_mhpmc4h = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 228 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 229 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 230 : + 231 : assign csr_mhpmc5h = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 232 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 233 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 234 : + 235 : assign csr_mhpmc6h = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 236 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 237 : &dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 238 : + 239 : assign csr_mhpme3 = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] + 240 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 241 : &dec_csr_rdaddr_d[0]); + 242 : + 243 : assign csr_mhpme4 = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] + 244 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] + 245 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 246 : + 247 : assign csr_mhpme5 = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] + 248 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1] + 249 : &dec_csr_rdaddr_d[0]); + 250 : + 251 : assign csr_mhpme6 = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] + 252 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[1] + 253 : &!dec_csr_rdaddr_d[0]); + 254 : + 255 : assign csr_mcounteren = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] + 256 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]); + 257 : + 258 : assign csr_mcountinhibit = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5] + 259 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 260 : &!dec_csr_rdaddr_d[0]); + 261 : + 262 : assign csr_mitctl0 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6] + 263 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1] + 264 : &!dec_csr_rdaddr_d[0]); + 265 : + 266 : assign csr_mitctl1 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[7] + 267 : &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1] + 268 : &dec_csr_rdaddr_d[0]); + 269 : + 270 : assign csr_mitb0 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[3] + 271 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 272 : + 273 : assign csr_mitb1 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[2] + 274 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 275 : + 276 : assign csr_mitcnt0 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6] + 277 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[2] + 278 : &!dec_csr_rdaddr_d[0]); + 279 : + 280 : assign csr_mitcnt1 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4] + 281 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 282 : + 283 : assign csr_perfva = 1'b0; + 284 : + 285 : assign csr_perfvb = 1'b0; + 286 : + 287 : assign csr_perfvc = 1'b0; + 288 : + 289 : assign csr_perfvd = 1'b0; + 290 : + 291 : assign csr_perfve = 1'b0; + 292 : + 293 : assign csr_perfvf = 1'b0; + 294 : + 295 : assign csr_perfvg = 1'b0; + 296 : + 297 : assign csr_perfvh = 1'b0; + 298 : + 299 : assign csr_perfvi = 1'b0; + 300 : + 301 : assign csr_mpmc = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] + 302 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] + 303 : &dec_csr_rdaddr_d[1]); + 304 : + 305 : assign csr_mcpc = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[4] + 306 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]); + 307 : + 308 : assign csr_meicpct = (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[6] + 309 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 310 : + 311 : assign csr_mdeau = (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 312 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[3]); + 313 : + 314 : assign csr_micect = (dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4] + 315 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 316 : + 317 : assign csr_miccmect = (dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] + 318 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[0]); + 319 : + 320 : assign csr_mdccmect = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[5] + 321 : &dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 322 : + 323 : assign csr_mfdht = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] + 324 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 325 : + 326 : assign csr_mfdhs = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[4] + 327 : &dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); + 328 : + 329 : assign csr_dicawics = (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] + 330 : &!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 331 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 332 : + 333 : assign csr_dicad0h = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[3] + 334 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); + 335 : + 336 : assign csr_dicad0 = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[4] + 337 : &dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 338 : + 339 : assign csr_dicad1 = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[3] + 340 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 341 : + 342 : assign csr_dicago = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[3] + 343 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 344 : + 345 : assign csr_menvcfg = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] + 346 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3]); + 347 : + 348 : assign csr_menvcfgh = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] + 349 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]); + 350 : + 351 : assign csr_pmpcfg = (!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[7] + 352 : &!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]); + 353 : + 354 : assign csr_pmpaddr0 = (!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[7] + 355 : &dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]); + 356 : + 357 : assign csr_pmpaddr16 = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 358 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]); + 359 : + 360 : assign csr_pmpaddr32 = (!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[6] + 361 : &dec_csr_rdaddr_d[4]); + 362 : + 363 : assign csr_pmpaddr48 = (dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] + 364 : &!dec_csr_rdaddr_d[4]); + 365 : + 366 : assign csr_cyclel = (!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] + 367 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); + 368 : + 369 : assign csr_cycleh = (!dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 370 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]); + 371 : + 372 : assign csr_instretl = (!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] + 373 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 374 : + 375 : assign csr_instreth = (!dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 376 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 377 : + 378 : assign csr_hpmc3 = (!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] + 379 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 380 : + 381 : assign csr_hpmc4 = (!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] + 382 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 383 : + 384 : assign csr_hpmc5 = (!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] + 385 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 386 : + 387 : assign csr_hpmc6 = (!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] + 388 : &dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]); + 389 : + 390 : assign csr_hpmc3h = (!dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 391 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 392 : + 393 : assign csr_hpmc4h = (!dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 394 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]); + 395 : + 396 : assign csr_hpmc5h = (!dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 397 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]); + 398 : + 399 : assign csr_hpmc6h = (!dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 400 : &dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]); + 401 : + 402 : assign csr_mseccfgl = (dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[7] + 403 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[4]); + 404 : + 405 : assign csr_mseccfgh = (!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] + 406 : &dec_csr_rdaddr_d[4]); + 407 : + 408 : assign valid_only = (!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] + 409 : &dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | ( + 410 : !dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[2] + 411 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[7] + 412 : &dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]) | (!dec_csr_rdaddr_d[7] + 413 : &dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[3]) | (dec_csr_rdaddr_d[11] + 414 : &!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[3]) | (dec_csr_rdaddr_d[11] + 415 : &!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]); + 416 : + 417 : assign presync = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3] + 418 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[7] + 419 : &dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 420 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[10] + 421 : &dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[0]) | ( + 422 : dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 423 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]) | (dec_csr_rdaddr_d[11] + 424 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1] + 425 : &dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[4] + 426 : &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]) | ( + 427 : dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] + 428 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]); + 429 : + 430 : assign postsync = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3] + 431 : &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11] + 432 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[2] + 433 : &dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[7] + 434 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 435 : &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[10] + 436 : &dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[0]) | ( + 437 : !dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[5] + 438 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1]) | ( + 439 : dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[4] + 440 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]) | ( + 441 : !dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[1] + 442 : &dec_csr_rdaddr_d[0]); + 443 : + 444 32 : logic legal; + 445 : assign legal = (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] + 446 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] + 447 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 448 : &dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[10] + 449 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 450 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] + 451 : &dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | ( + 452 : !dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] + 453 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] + 454 : &dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1] + 455 : &!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 456 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] + 457 : &dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | ( + 458 : !dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] + 459 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] + 460 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] + 461 : &!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 462 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[6] + 463 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 464 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[10] + 465 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 466 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] + 467 : &dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]) | (dec_csr_rdaddr_d[11] + 468 : &!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] + 469 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[0]) | ( + 470 : !dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] + 471 : &dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6] + 472 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 473 : &!dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 474 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] + 475 : &dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[2]) | (!dec_csr_rdaddr_d[11] + 476 : &!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] + 477 : &dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]) | ( + 478 : dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[9] + 479 : &!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] + 480 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2] + 481 : &!dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] + 482 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 483 : &dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4] + 484 : &dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1] + 485 : &dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10] + 486 : &!dec_csr_rdaddr_d[9]&!dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] + 487 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 488 : &!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]) | (dec_csr_rdaddr_d[11] + 489 : &dec_csr_rdaddr_d[10]&!dec_csr_rdaddr_d[9]&!dec_csr_rdaddr_d[8] + 490 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] + 491 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11] + 492 : &dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] + 493 : &dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] + 494 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]) | ( + 495 : !dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] + 496 : &dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] + 497 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]) | ( + 498 : !dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] + 499 : &dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] + 500 : &!dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[1]) | ( + 501 : dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] + 502 : &!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] + 503 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] + 504 : &dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9] + 505 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] + 506 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 507 : &dec_csr_rdaddr_d[2]) | (dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9] + 508 : &dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[6] + 509 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3] + 510 : &dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | ( + 511 : !dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] + 512 : &dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5] + 513 : &dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11] + 514 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 515 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4] + 516 : &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[11] + 517 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 518 : &dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] + 519 : &dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]) | (dec_csr_rdaddr_d[11] + 520 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[7] + 521 : &!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4] + 522 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]) | ( + 523 : !dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] + 524 : &dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] + 525 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[9] + 526 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] + 527 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[2] + 528 : &!dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[11] + 529 : &dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] + 530 : &!dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] + 531 : &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1] + 532 : &dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 533 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] + 534 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[2]) | (!dec_csr_rdaddr_d[11] + 535 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7] + 536 : &!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4] + 537 : &!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]) | ( + 538 : !dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] + 539 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] + 540 : &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]) | ( + 541 : dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] + 542 : &dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] + 543 : &dec_csr_rdaddr_d[1]) | (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 544 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] + 545 : &dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[3]) | (!dec_csr_rdaddr_d[11] + 546 : &!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] + 547 : &!dec_csr_rdaddr_d[6]&dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]) | ( + 548 : dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] + 549 : &dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5] + 550 : &dec_csr_rdaddr_d[3]) | (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[10] + 551 : &dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8]&!dec_csr_rdaddr_d[6] + 552 : &!dec_csr_rdaddr_d[5]&dec_csr_rdaddr_d[4]) | (!dec_csr_rdaddr_d[11] + 553 : &!dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9]&dec_csr_rdaddr_d[8] + 554 : &dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[5]); + 555 : ++ |
+
Line data Source code
- 1 4 : logic csr_misa; + 1 2 : logic csr_misa; 2 0 : logic csr_mvendorid; 3 0 : logic csr_marchid; 4 0 : logic csr_mimpid; 5 0 : logic csr_mhartid; - 6 6 : logic csr_mstatus; + 6 3 : logic csr_mstatus; 7 0 : logic csr_mtvec; 8 0 : logic csr_mip; 9 0 : logic csr_mie; @@ -185,7 +185,7 @@ 81 0 : logic csr_pmpaddr16; 82 0 : logic csr_pmpaddr32; 83 0 : logic csr_pmpaddr48; - 84 6 : logic csr_cyclel; + 84 3 : logic csr_cyclel; 85 0 : logic csr_cycleh; 86 0 : logic csr_instretl; 87 0 : logic csr_instreth; @@ -201,7 +201,7 @@ 97 0 : logic csr_mseccfgh; 98 0 : logic valid_only; 99 0 : logic presync; - 100 6 : logic postsync; + 100 3 : logic postsync; 101 : assign csr_misa = (!dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[6] 102 : &!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[0]); 103 : @@ -545,7 +545,7 @@ 441 : !dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6]&!dec_csr_rdaddr_d[1] 442 : &dec_csr_rdaddr_d[0]); 443 : - 444 4 : logic legal; + 444 2 : logic legal; 445 : assign legal = (!dec_csr_rdaddr_d[11]&dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[9] 446 : &dec_csr_rdaddr_d[8]&dec_csr_rdaddr_d[7]&dec_csr_rdaddr_d[6] 447 : &dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2] diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_dec_decode_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_dec_decode_ctl.sv.html index 5a53741efbe..0fc1a825d85 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_dec_decode_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_dec_decode_ctl.sv.html @@ -51,7 +51,7 @@Test Date: - 19-09-2024 + 25-09-2024 @@ -170,11 +170,11 @@ 66 : 67 144 : input el2_br_pkt_t dec_i0_brp, // branch packet 68 32 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] dec_i0_bp_index, // i0 branch index - 69 218 : input logic [pt.BHT_GHR_SIZE-1:0] dec_i0_bp_fghr, // BP FGHR + 69 202 : input logic [pt.BHT_GHR_SIZE-1:0] dec_i0_bp_fghr, // BP FGHR 70 0 : input logic [pt.BTB_BTAG_SIZE-1:0] dec_i0_bp_btag, // BP tag 71 0 : input logic [$clog2(pt.BTB_SIZE)-1:0] dec_i0_bp_fa_index, // Fully associt btb index 72 : - 73 572 : input logic lsu_idle_any, // lsu idle: if fence instr & ~lsu_idle then stall decode + 73 456 : input logic lsu_idle_any, // lsu idle: if fence instr & ~lsu_idle then stall decode 74 : 75 8 : input logic lsu_load_stall_any, // stall any load at decode 76 8 : input logic lsu_store_stall_any, // stall any store at decode @@ -190,9 +190,9 @@ 86 0 : input logic dec_tlu_presync_d, // CSR read needs to be presync'd 87 0 : input logic dec_tlu_postsync_d, // CSR ops that need to be postsync'd 88 : - 89 1788 : input logic dec_i0_pc4_d, // inst is 4B inst else 2B + 89 1322 : input logic dec_i0_pc4_d, // inst is 4B inst else 2B 90 : - 91 16 : input logic [31:0] dec_csr_rddata_d, // csr read data at wb + 91 8 : input logic [31:0] dec_csr_rddata_d, // csr read data at wb 92 4 : input logic dec_csr_legal_d, // csr indicates legal operation 93 : 94 0 : input logic [31:0] exu_csr_rs1_x, // rs1 for csr instr @@ -200,55 +200,55 @@ 96 0 : input logic [31:0] lsu_result_m, // load result 97 0 : input logic [31:0] lsu_result_corr_r, // load result - corrected data for writing gpr's, not for bypassing 98 : - 99 204 : input logic exu_flush_final, // lower flush or i0 flush at X or D + 99 190 : input logic exu_flush_final, // lower flush or i0 flush at X or D 100 : 101 2 : input logic [31:1] exu_i0_pc_x, // pcs at e1 102 : 103 36 : input logic [31:0] dec_i0_instr_d, // inst at decode 104 : - 105 2764 : input logic dec_ib0_valid_d, // inst valid at decode + 105 2306 : input logic dec_ib0_valid_d, // inst valid at decode 106 : - 107 88 : input logic [31:0] exu_i0_result_x, // from primary alu's + 107 94 : input logic [31:0] exu_i0_result_x, // from primary alu's 108 : - 109 17932 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 110 17932 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. - 111 17932 : input logic free_l2clk, // Clock always. Through one clock header. For flops with second header built in. + 109 14934 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 110 14934 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 111 14934 : input logic free_l2clk, // Clock always. Through one clock header. For flops with second header built in. 112 : 113 0 : input logic clk_override, // Override non-functional clock gating 114 2 : input logic rst_l, // Flop reset 115 : 116 : 117 : - 118 2068 : output logic dec_i0_rs1_en_d, // rs1 enable at decode - 119 1080 : output logic dec_i0_rs2_en_d, // rs2 enable at decode + 118 1838 : output logic dec_i0_rs1_en_d, // rs1 enable at decode + 119 964 : output logic dec_i0_rs2_en_d, // rs2 enable at decode 120 : - 121 788 : output logic [4:0] dec_i0_rs1_d, // rs1 logical source + 121 704 : output logic [4:0] dec_i0_rs1_d, // rs1 logical source 122 640 : output logic [4:0] dec_i0_rs2_d, // rs2 logical source 123 : - 124 272 : output logic [31:0] dec_i0_immed_d, // 32b immediate data decode + 124 198 : output logic [31:0] dec_i0_immed_d, // 32b immediate data decode 125 : 126 : - 127 112 : output logic [12:1] dec_i0_br_immed_d, // 12b branch immediate + 127 100 : output logic [12:1] dec_i0_br_immed_d, // 12b branch immediate 128 : 129 0 : output el2_alu_pkt_t i0_ap, // alu packets 130 : - 131 2764 : output logic dec_i0_decode_d, // i0 decode + 131 2306 : output logic dec_i0_decode_d, // i0 decode 132 : - 133 2116 : output logic dec_i0_alu_decode_d, // decode to D-stage alu - 134 768 : output logic dec_i0_branch_d, // Branch in D-stage + 133 1774 : output logic dec_i0_alu_decode_d, // decode to D-stage alu + 134 652 : output logic dec_i0_branch_d, // Branch in D-stage 135 : - 136 916 : output logic [4:0] dec_i0_waddr_r, // i0 logical source to write to gpr's - 137 1520 : output logic dec_i0_wen_r, // i0 write enable - 138 4 : output logic [31:0] dec_i0_wdata_r, // i0 write data + 136 818 : output logic [4:0] dec_i0_waddr_r, // i0 logical source to write to gpr's + 137 1292 : output logic dec_i0_wen_r, // i0 write enable + 138 8 : output logic [31:0] dec_i0_wdata_r, // i0 write data 139 : - 140 276 : output logic dec_i0_select_pc_d, // i0 select pc for rs1 - branches + 140 162 : output logic dec_i0_select_pc_d, // i0 select pc for rs1 - branches 141 : 142 0 : output logic [3:0] dec_i0_rs1_bypass_en_d, // i0 rs1 bypass enable 143 0 : output logic [3:0] dec_i0_rs2_bypass_en_d, // i0 rs2 bypass enable - 144 4 : output logic [31:0] dec_i0_result_r, // Result R-stage + 144 8 : output logic [31:0] dec_i0_result_r, // Result R-stage 145 : 146 100 : output el2_lsu_pkt_t lsu_p, // load/store packet - 147 2066 : output logic dec_qual_lsu_d, // LSU instruction at D. Use to quiet LSU operands + 147 1724 : output logic dec_qual_lsu_d, // LSU instruction at D. Use to quiet LSU operands 148 : 149 0 : output el2_mul_pkt_t mul_p, // multiply packet 150 : @@ -256,7 +256,7 @@ 152 0 : output logic [4:0] div_waddr_wb, // DIV write address to GPR 153 0 : output logic dec_div_cancel, // cancel the divide operation 154 : - 155 708 : output logic dec_lsu_valid_raw_d, + 155 592 : output logic dec_lsu_valid_raw_d, 156 64 : output logic [11:0] dec_lsu_offset_d, 157 : 158 4 : output logic dec_csr_ren_d, // valid csr decode @@ -264,31 +264,31 @@ 160 4 : output logic dec_csr_any_unq_d, // valid csr - for csr legal 161 4 : output logic [11:0] dec_csr_rdaddr_d, // read address for csr 162 0 : output logic dec_csr_wen_r, // csr write enable at r - 163 640 : output logic [11:0] dec_csr_rdaddr_r, // read address for csr + 163 540 : output logic [11:0] dec_csr_rdaddr_r, // read address for csr 164 0 : output logic [11:0] dec_csr_wraddr_r, // write address for csr 165 0 : output logic [31:0] dec_csr_wrdata_r, // csr write data at r 166 0 : output logic dec_csr_stall_int_ff, // csr is mie/mstatus 167 : - 168 2764 : output dec_tlu_i0_valid_r, // i0 valid inst at c + 168 2304 : output dec_tlu_i0_valid_r, // i0 valid inst at c 169 : 170 0 : output el2_trap_pkt_t dec_tlu_packet_r, // trap packet 171 : 172 2 : output logic [31:1] dec_tlu_i0_pc_r, // i0 trap pc 173 : 174 0 : output logic [31:0] dec_illegal_inst, // illegal inst - 175 264 : output logic [31:1] pred_correct_npc_x, // npc e2 if the prediction is correct + 175 149 : output logic [31:1] pred_correct_npc_x, // npc e2 if the prediction is correct 176 : 177 144 : output el2_predict_pkt_t dec_i0_predict_p_d, // i0 predict packet decode - 178 218 : output logic [pt.BHT_GHR_SIZE-1:0] i0_predict_fghr_d, // i0 predict fghr + 178 202 : output logic [pt.BHT_GHR_SIZE-1:0] i0_predict_fghr_d, // i0 predict fghr 179 32 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] i0_predict_index_d, // i0 predict index 180 0 : output logic [pt.BTB_BTAG_SIZE-1:0] i0_predict_btag_d, // i0_predict branch tag 181 : 182 0 : output logic [$clog2(pt.BTB_SIZE)-1:0] dec_fa_error_index, // Fully associt btb error index 183 : - 184 2764 : output logic [1:0] dec_data_en, // clock-gating logic - 185 2764 : output logic [1:0] dec_ctl_en, + 184 2305 : output logic [1:0] dec_data_en, // clock-gating logic + 185 2305 : output logic [1:0] dec_ctl_en, 186 : - 187 2764 : output logic dec_pmu_instr_decoded, // number of instructions decode this cycle encoded + 187 2306 : output logic dec_pmu_instr_decoded, // number of instructions decode this cycle encoded 188 0 : output logic dec_pmu_decode_stall, // decode is stalled 189 0 : output logic dec_pmu_presync_stall, // decode has presync stall 190 0 : output logic dec_pmu_postsync_stall, // decode has postsync stall @@ -309,24 +309,24 @@ 205 0 : el2_dec_pkt_t i0_dp_raw, i0_dp; 206 : 207 36 : logic [31:0] i0; - 208 2764 : logic i0_valid_d; + 208 2306 : logic i0_valid_d; 209 : - 210 4 : logic [31:0] i0_result_r; + 210 8 : logic [31:0] i0_result_r; 211 : 212 8 : logic [2:0] i0_rs1bypass, i0_rs2bypass; 213 : 214 36 : logic i0_jalimm20; - 215 260 : logic i0_uiimm20; + 215 146 : logic i0_uiimm20; 216 : - 217 708 : logic lsu_decode_d; - 218 272 : logic [31:0] i0_immed_d; + 217 592 : logic lsu_decode_d; + 218 198 : logic [31:0] i0_immed_d; 219 0 : logic i0_presync; 220 52 : logic i0_postsync; 221 : 222 0 : logic postsync_stall; 223 0 : logic ps_stall; 224 : - 225 2764 : logic prior_inflight, prior_inflight_wb; + 225 2304 : logic prior_inflight, prior_inflight_wb; 226 : 227 0 : logic csr_clr_d, csr_set_d, csr_write_d; 228 : @@ -351,14 +351,14 @@ 247 0 : logic i0_div_prior_div_stall; 248 0 : logic nonblock_div_cancel; 249 : - 250 2712 : logic i0_legal; + 250 2254 : logic i0_legal; 251 0 : logic shift_illegal; 252 0 : logic illegal_inst_en; 253 0 : logic illegal_lockout_in, illegal_lockout; - 254 2764 : logic i0_legal_decode_d; + 254 2306 : logic i0_legal_decode_d; 255 0 : logic i0_exulegal_decode_d, i0_exudecode_d, i0_exublock_d; 256 : - 257 720 : logic [12:1] last_br_immed_d; + 257 502 : logic [12:1] last_br_immed_d; 258 0 : logic i0_rs1_depend_i0_x, i0_rs1_depend_i0_r; 259 0 : logic i0_rs2_depend_i0_x, i0_rs2_depend_i0_r; 260 : @@ -369,16 +369,16 @@ 265 8 : logic i0_load_stall_d; 266 0 : logic i0_store_stall_d; 267 : - 268 312 : logic i0_predict_nt, i0_predict_t; + 268 208 : logic i0_predict_nt, i0_predict_t; 269 : 270 44 : logic i0_notbr_error, i0_br_toffset_error; 271 0 : logic i0_ret_error; 272 52 : logic i0_br_error; 273 52 : logic i0_br_error_all; - 274 904 : logic [11:0] i0_br_offset; + 274 674 : logic [11:0] i0_br_offset; 275 : 276 232 : logic [20:1] i0_pcall_imm; // predicted jal's - 277 2570 : logic i0_pcall_12b_offset; + 277 2110 : logic i0_pcall_12b_offset; 278 12 : logic i0_pcall_raw; 279 12 : logic i0_pcall_case; 280 12 : logic i0_pcall; @@ -393,7 +393,7 @@ 289 8 : logic i0_jal; // jal's that are not predicted 290 : 291 : - 292 708 : logic i0_predict_br; + 292 592 : logic i0_predict_br; 293 : 294 0 : logic store_data_bypass_d, store_data_bypass_m; 295 : @@ -402,9 +402,9 @@ 298 0 : el2_class_pkt_t i0_d_c, i0_x_c, i0_r_c; 299 : 300 : - 301 1788 : logic i0_ap_pc2, i0_ap_pc4; + 301 1322 : logic i0_ap_pc2, i0_ap_pc4; 302 : - 303 1708 : logic i0_rd_en_d; + 303 1482 : logic i0_rd_en_d; 304 : 305 0 : logic load_ldst_bypass_d; 306 : @@ -414,14 +414,14 @@ 310 : 311 0 : logic i0_csr_write_only_d; 312 : - 313 2764 : logic prior_inflight_x, prior_inflight_eff; + 313 2305 : logic prior_inflight_x, prior_inflight_eff; 314 4 : logic any_csr_d; 315 : 316 0 : logic prior_csr_write; 317 : - 318 2764 : logic [3:0] i0_pipe_en; - 319 2764 : logic i0_r_ctl_en, i0_x_ctl_en, i0_wb_ctl_en; - 320 2764 : logic i0_x_data_en, i0_r_data_en, i0_wb_data_en; + 318 2304 : logic [3:0] i0_pipe_en; + 319 2304 : logic i0_r_ctl_en, i0_x_ctl_en, i0_wb_ctl_en; + 320 2304 : logic i0_x_data_en, i0_r_data_en, i0_wb_data_en; 321 : 322 0 : logic debug_fence_i; 323 0 : logic debug_fence; @@ -436,16 +436,16 @@ 332 0 : logic pause_state_in, pause_state; 333 0 : logic pause_stall; 334 : - 335 524 : logic i0_brp_valid; + 335 408 : logic i0_brp_valid; 336 132 : logic nonblock_load_cancel; - 337 572 : logic lsu_idle; + 337 456 : logic lsu_idle; 338 0 : logic lsu_pmu_misaligned_r; 339 4 : logic csr_ren_qual_d; 340 4 : logic csr_read_x; 341 8 : logic i0_block_d; 342 0 : logic i0_block_raw_d; // This is use to create the raw valid 343 0 : logic ps_stall_in; - 344 144 : logic [31:0] i0_result_x; + 344 150 : logic [31:0] i0_result_x; 345 : 346 224 : el2_dest_pkt_t d_d, x_d, r_d, wbd; 347 224 : el2_dest_pkt_t x_d_in, r_d_in; @@ -460,12 +460,12 @@ 356 8 : logic i0_br_unpred; 357 : 358 216 : logic nonblock_load_valid_m_delay; - 359 1708 : logic i0_wen_r; + 359 1480 : logic i0_wen_r; 360 : 361 0 : logic tlu_wr_pause_r1; 362 0 : logic tlu_wr_pause_r2; 363 : - 364 204 : logic flush_final_r; + 364 190 : logic flush_final_r; 365 : 366 2 : logic bitmanip_zbb_legal; 367 2 : logic bitmanip_zbs_legal; @@ -514,10 +514,10 @@ 410 : 411 0 : logic debug_fence_raw; 412 : - 413 4 : logic [31:0] i0_result_r_raw; - 414 4 : logic [31:0] i0_result_corr_r; + 413 8 : logic [31:0] i0_result_r_raw; + 414 8 : logic [31:0] i0_result_corr_r; 415 : - 416 416 : logic [12:1] last_br_immed_x; + 416 345 : logic [12:1] last_br_immed_x; 417 : 418 240 : logic [31:0] i0_inst_d; 419 220 : logic [31:0] i0_inst_x; @@ -527,14 +527,14 @@ 423 : 424 2 : logic [31:1] i0_pc_wb; 425 : - 426 2764 : logic i0_wb_en; + 426 2304 : logic i0_wb_en; 427 : 428 2 : logic trace_enable; 429 : 430 0 : logic debug_valid_x; 431 : - 432 716 : el2_inst_pkt_t i0_itype; - 433 640 : el2_reg_pkt_t i0r; + 432 600 : el2_inst_pkt_t i0_itype; + 433 630 : el2_reg_pkt_t i0r; 434 : 435 : 436 : rvdffie #(8) misc1ff (.*, @@ -710,15 +710,15 @@ 606 2 : for (int i=0; i<NBLOAD_SIZE; i++) begin 607 2 : if (~found) begin 608 554 : if (~cam[i].valid) begin - 609 8860 : cam_wen[i] = cam_write; - 610 8860 : found = 1'b1; + 609 5862 : cam_wen[i] = cam_write; + 610 5862 : found = 1'b1; 611 : end 612 554 : else begin 613 554 : cam_wen[i] = 0; 614 : end 615 : end 616 : else - 617 28242 : cam_wen[i] = 0; + 617 19248 : cam_wen[i] = 0; 618 : end 619 : end 620 : @@ -771,13 +771,13 @@ 667 : (i0_wen_r & (r_d_in.i0rd[4:0] == cam[i].rd[4:0]) & cam[i].wb) ) 668 4 : cam_in[i].valid = 1'b0; 669 : else - 670 37310 : cam_in[i] = cam[i]; + 670 25318 : cam_in[i] = cam[i]; 671 : 672 342 : if (nonblock_load_valid_m_delay & (lsu_nonblock_load_inv_tag_r[NBLOAD_TAG_MSB:0]==cam[i].tag[NBLOAD_TAG_MSB:0]) & cam[i].valid) 673 342 : cam_in[i].wb = 1'b1; 674 : 675 : // force debug halt forces cam valids to 0; highest priority - 676 35864 : if (dec_tlu_force_halt) + 676 23872 : if (dec_tlu_force_halt) 677 0 : cam_in[i].valid = 1'b0; 678 : end 679 : @@ -847,25 +847,25 @@ 743 2 : always_comb begin 744 2 : i0_itype = NULL_OP; 745 : - 746 1608 : if (i0_legal_decode_d) begin - 747 1608 : if (i0_dp.mul) i0_itype = MUL; + 746 1150 : if (i0_legal_decode_d) begin + 747 1150 : if (i0_dp.mul) i0_itype = MUL; 748 130 : if (i0_dp.load) i0_itype = LOAD; - 749 254 : if (i0_dp.store) i0_itype = STORE; - 750 744 : if (i0_dp.pm_alu) i0_itype = ALU; - 751 1608 : if (i0_dp.zbb | i0_dp.zbs | + 749 138 : if (i0_dp.store) i0_itype = STORE; + 750 512 : if (i0_dp.pm_alu) i0_itype = ALU; + 751 1150 : if (i0_dp.zbb | i0_dp.zbs | 752 : i0_dp.zbe | i0_dp.zbc | 753 : i0_dp.zbp | i0_dp.zbr | 754 : i0_dp.zbf | i0_dp.zba) 755 0 : i0_itype = BITMANIPU; 756 2 : if ( csr_read & ~csr_write) i0_itype = CSRREAD; - 757 1608 : if (~csr_read & csr_write) i0_itype = CSRWRITE; - 758 1608 : if ( csr_read & csr_write) i0_itype = CSRRW; - 759 1608 : if (i0_dp.ebreak) i0_itype = EBREAK; - 760 1608 : if (i0_dp.ecall) i0_itype = ECALL; - 761 1608 : if (i0_dp.fence) i0_itype = FENCE; - 762 1608 : if (i0_dp.fence_i) i0_itype = FENCEI; // fencei will set this even with fence attribute - 763 1608 : if (i0_dp.mret) i0_itype = MRET; - 764 330 : if (i0_dp.condbr) i0_itype = CONDBR; + 757 1150 : if (~csr_read & csr_write) i0_itype = CSRWRITE; + 758 1150 : if ( csr_read & csr_write) i0_itype = CSRRW; + 759 1150 : if (i0_dp.ebreak) i0_itype = EBREAK; + 760 1150 : if (i0_dp.ecall) i0_itype = ECALL; + 761 1150 : if (i0_dp.fence) i0_itype = FENCE; + 762 1150 : if (i0_dp.fence_i) i0_itype = FENCEI; // fencei will set this even with fence attribute + 763 1150 : if (i0_dp.mret) i0_itype = MRET; + 764 214 : if (i0_dp.condbr) i0_itype = CONDBR; 765 28 : if (i0_dp.jal) i0_itype = JAL; 766 : end 767 : end @@ -963,27 +963,27 @@ 859 2 : always_comb begin 860 2 : lsu_p = '0; 861 : - 862 8966 : if (dec_extint_stall) begin + 862 5968 : if (dec_extint_stall) begin 863 0 : lsu_p.load = 1'b1; 864 0 : lsu_p.word = 1'b1; 865 0 : lsu_p.fast_int = 1'b1; 866 0 : lsu_p.valid = 1'b1; 867 : end - 868 8966 : else begin - 869 8966 : lsu_p.valid = lsu_decode_d; + 868 5968 : else begin + 869 5968 : lsu_p.valid = lsu_decode_d; 870 : - 871 8966 : lsu_p.load = i0_dp.load ; - 872 8966 : lsu_p.store = i0_dp.store; - 873 8966 : lsu_p.by = i0_dp.by ; - 874 8966 : lsu_p.half = i0_dp.half ; - 875 8966 : lsu_p.word = i0_dp.word ; - 876 8966 : lsu_p.stack = (i0r.rs1[4:0]==5'd2); // stack reference + 871 5968 : lsu_p.load = i0_dp.load ; + 872 5968 : lsu_p.store = i0_dp.store; + 873 5968 : lsu_p.by = i0_dp.by ; + 874 5968 : lsu_p.half = i0_dp.half ; + 875 5968 : lsu_p.word = i0_dp.word ; + 876 5968 : lsu_p.stack = (i0r.rs1[4:0]==5'd2); // stack reference 877 : - 878 8966 : lsu_p.load_ldst_bypass_d = load_ldst_bypass_d ; - 879 8966 : lsu_p.store_data_bypass_d = store_data_bypass_d; - 880 8966 : lsu_p.store_data_bypass_m = store_data_bypass_m; + 878 5968 : lsu_p.load_ldst_bypass_d = load_ldst_bypass_d ; + 879 5968 : lsu_p.store_data_bypass_d = store_data_bypass_d; + 880 5968 : lsu_p.store_data_bypass_m = store_data_bypass_m; 881 : - 882 8966 : lsu_p.unsign = i0_dp.unsign; + 882 5968 : lsu_p.unsign = i0_dp.unsign; 883 : end 884 : end 885 : diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_dec_gpr_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_dec_gpr_ctl.sv.html index c5709d1731c..e0ccd07cd4b 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_dec_gpr_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_dec_gpr_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -122,12 +122,12 @@ 18 : #( 19 : `include "el2_param.vh" 20 : ) ( - 21 788 : input logic [4:0] raddr0, // logical read addresses + 21 704 : input logic [4:0] raddr0, // logical read addresses 22 640 : input logic [4:0] raddr1, 23 : - 24 1520 : input logic wen0, // write enable - 25 916 : input logic [4:0] waddr0, // write address - 26 4 : input logic [31:0] wd0, // write data + 24 1292 : input logic wen0, // write enable + 25 818 : input logic [4:0] waddr0, // write address + 26 8 : input logic [31:0] wd0, // write data 27 : 28 228 : input logic wen1, // write enable 29 32 : input logic [4:0] waddr1, // write address @@ -137,11 +137,11 @@ 33 0 : input logic [4:0] waddr2, // write address 34 0 : input logic [31:0] wd2, // write data 35 : - 36 17932 : input logic clk, + 36 14934 : input logic clk, 37 2 : input logic rst_l, 38 : - 39 4 : output logic [31:0] rd0, // read data - 40 268 : output logic [31:0] rd1, + 39 6 : output logic [31:0] rd0, // read data + 40 136 : output logic [31:0] rd1, 41 : 42 0 : input logic scan_mode 43 : ); diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_dec_ib_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_dec_ib_ctl.sv.html index cf6f11adb0e..7c791bfcd3b 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_dec_ib_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_dec_ib_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -131,12 +131,12 @@ 27 : 28 144 : input el2_br_pkt_t i0_brp, // i0 branch packet from aligner 29 32 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] ifu_i0_bp_index, // BP index - 30 218 : input logic [pt.BHT_GHR_SIZE-1:0] ifu_i0_bp_fghr, // BP FGHR + 30 202 : input logic [pt.BHT_GHR_SIZE-1:0] ifu_i0_bp_fghr, // BP FGHR 31 0 : input logic [pt.BTB_BTAG_SIZE-1:0] ifu_i0_bp_btag, // BP tag 32 0 : input logic [$clog2(pt.BTB_SIZE)-1:0] ifu_i0_fa_index, // Fully associt btb index 33 : - 34 1788 : input logic ifu_i0_pc4, // i0 is 4B inst else 2B - 35 2764 : input logic ifu_i0_valid, // i0 valid from ifu + 34 1322 : input logic ifu_i0_pc4, // i0 is 4B inst else 2B + 35 2306 : input logic ifu_i0_valid, // i0 valid from ifu 36 0 : input logic ifu_i0_icaf, // i0 instruction access fault 37 0 : input logic [1:0] ifu_i0_icaf_type, // i0 instruction access fault type 38 : @@ -146,7 +146,7 @@ 42 10 : input logic [31:1] ifu_i0_pc, // i0 pc from the aligner 43 : 44 : - 45 2764 : output logic dec_ib0_valid_d, // ib0 valid + 45 2306 : output logic dec_ib0_valid_d, // ib0 valid 46 0 : output logic dec_debug_valid_d, // Debug read or write at D-stage 47 : 48 : @@ -154,11 +154,11 @@ 50 : 51 10 : output logic [31:1] dec_i0_pc_d, // i0 pc at decode 52 : - 53 1788 : output logic dec_i0_pc4_d, // i0 is 4B inst else 2B + 53 1322 : output logic dec_i0_pc4_d, // i0 is 4B inst else 2B 54 : 55 144 : output el2_br_pkt_t dec_i0_brp, // i0 branch packet at decode 56 32 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] dec_i0_bp_index, // i0 branch index - 57 218 : output logic [pt.BHT_GHR_SIZE-1:0] dec_i0_bp_fghr, // BP FGHR + 57 202 : output logic [pt.BHT_GHR_SIZE-1:0] dec_i0_bp_fghr, // BP FGHR 58 0 : output logic [pt.BTB_BTAG_SIZE-1:0] dec_i0_bp_btag, // BP tag 59 0 : output logic [$clog2(pt.BTB_SIZE)-1:0] dec_i0_bp_fa_index, // Fully associt btb index 60 : diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_dec_pmp_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_dec_pmp_ctl.sv.html index 96d79ed559d..54a98cc40a1 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_dec_pmp_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_dec_pmp_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -133,9 +133,9 @@ 29 : `include "el2_param.vh" 30 : ) 31 : ( - 32 17932 : input logic clk, - 33 17932 : input logic free_l2clk, - 34 17932 : input logic csr_wr_clk, + 32 14934 : input logic clk, + 33 14934 : input logic free_l2clk, + 34 14934 : input logic csr_wr_clk, 35 2 : input logic rst_l, 36 0 : input logic dec_csr_wen_r_mod, // csr write enable at wb 37 0 : input logic [11:0] dec_csr_wraddr_r, // write address for csr @@ -248,10 +248,10 @@ 144 : for (genvar entry_idx = 0; entry_idx < pt.PMP_ENTRIES; entry_idx++) begin : gen_pmpaddr_ff 145 : logic pmpaddr_lock; 146 : logic pmpaddr_lock_next; - 147 : assign pmpaddr_lock_next = ((entry_idx+1 < pt.PMP_ENTRIES) - 148 : ? (entry_lock_eff[entry_idx+1] - 149 : & pmp_pmpcfg[entry_idx+1].mode == TOR) - 150 : : 1'b0); + 147 : if (entry_idx+1 < pt.PMP_ENTRIES) + 148 : assign pmpaddr_lock_next = entry_lock_eff[entry_idx+1] & pmp_pmpcfg[entry_idx+1].mode == TOR; + 149 : else + 150 : assign pmpaddr_lock_next = 1'b0; 151 : assign pmpaddr_lock = entry_lock_eff[entry_idx] | pmpaddr_lock_next; 152 : assign pmp_pmpaddr[entry_idx][31:30] = 2'b00; 153 : rvdffe #(30) pmpaddr_ff (.*, .clk(free_l2clk), diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_dec_tlu_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_dec_tlu_ctl.sv.html index 407dbef0ab7..3b2a8e93025 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_dec_tlu_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_dec_tlu_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -133,9 +133,9 @@ 29 : `include "el2_param.vh" 30 : ) 31 : ( - 32 17932 : input logic clk, - 33 17932 : input logic free_clk, - 34 17932 : input logic free_l2clk, + 32 14934 : input logic clk, + 33 14934 : input logic free_clk, + 34 14934 : input logic free_l2clk, 35 2 : input logic rst_l, 36 0 : input logic scan_mode, 37 : @@ -149,29 +149,29 @@ 45 : 46 : 47 : // perf counter inputs - 48 2764 : input logic ifu_pmu_instr_aligned, // aligned instructions - 49 170 : input logic ifu_pmu_fetch_stall, // fetch unit stalled - 50 2780 : input logic ifu_pmu_ic_miss, // icache miss + 48 2306 : input logic ifu_pmu_instr_aligned, // aligned instructions + 49 158 : input logic ifu_pmu_fetch_stall, // fetch unit stalled + 50 2318 : input logic ifu_pmu_ic_miss, // icache miss 51 0 : input logic ifu_pmu_ic_hit, // icache hit 52 0 : input logic ifu_pmu_bus_error, // Instruction side bus error - 53 2776 : input logic ifu_pmu_bus_busy, // Instruction side bus busy - 54 5554 : input logic ifu_pmu_bus_trxn, // Instruction side bus transaction - 55 2764 : input logic dec_pmu_instr_decoded, // decoded instructions + 53 2316 : input logic ifu_pmu_bus_busy, // Instruction side bus busy + 54 4633 : input logic ifu_pmu_bus_trxn, // Instruction side bus transaction + 55 2306 : input logic dec_pmu_instr_decoded, // decoded instructions 56 0 : input logic dec_pmu_decode_stall, // decode stall 57 0 : input logic dec_pmu_presync_stall, // decode stall due to presync'd inst 58 0 : input logic dec_pmu_postsync_stall,// decode stall due to postsync'd inst 59 8 : input logic lsu_store_stall_any, // SB or WB is full, stall decode 60 0 : input logic dma_dccm_stall_any, // DMA stall of lsu 61 0 : input logic dma_iccm_stall_any, // DMA stall of ifu - 62 192 : input logic exu_pmu_i0_br_misp, // pipe 0 branch misp - 63 494 : input logic exu_pmu_i0_br_ataken, // pipe 0 branch actual taken + 62 178 : input logic exu_pmu_i0_br_misp, // pipe 0 branch misp + 63 377 : input logic exu_pmu_i0_br_ataken, // pipe 0 branch actual taken 64 398 : input logic exu_pmu_i0_pc4, // pipe 0 4 byte branch - 65 668 : input logic lsu_pmu_bus_trxn, // D side bus transaction + 65 553 : input logic lsu_pmu_bus_trxn, // D side bus transaction 66 0 : input logic lsu_pmu_bus_misaligned, // D side bus misaligned 67 0 : input logic lsu_pmu_bus_error, // D side bus error 68 12 : input logic lsu_pmu_bus_busy, // D side bus busy 69 224 : input logic lsu_pmu_load_external_m, // D side bus load - 70 484 : input logic lsu_pmu_store_external_m, // D side bus store + 70 368 : input logic lsu_pmu_store_external_m, // D side bus store 71 0 : input logic dma_pmu_dccm_read, // DMA DCCM read 72 0 : input logic dma_pmu_dccm_write, // DMA DCCM write 73 0 : input logic dma_pmu_any_read, // DMA read @@ -195,13 +195,13 @@ 91 4 : input logic [11:0] dec_csr_rdaddr_d, // read address for csr 92 : 93 0 : input logic dec_csr_wen_r, // csr write enable at wb - 94 640 : input logic [11:0] dec_csr_rdaddr_r, // read address for csr + 94 540 : input logic [11:0] dec_csr_rdaddr_r, // read address for csr 95 0 : input logic [11:0] dec_csr_wraddr_r, // write address for csr 96 0 : input logic [31:0] dec_csr_wrdata_r, // csr write data at wb 97 : 98 0 : input logic dec_csr_stall_int_ff, // csr is mie/mstatus 99 : - 100 2764 : input logic dec_tlu_i0_valid_r, // pipe 0 op at e4 is valid + 100 2304 : input logic dec_tlu_i0_valid_r, // pipe 0 op at e4 is valid 101 : 102 2 : input logic [31:1] exu_npc_r, // for NPC tracking 103 : @@ -210,21 +210,21 @@ 106 0 : input el2_trap_pkt_t dec_tlu_packet_r, // exceptions known at decode 107 : 108 0 : input logic [31:0] dec_illegal_inst, // For mtval - 109 2764 : input logic dec_i0_decode_d, // decode valid, used for clean icache diagnostics + 109 2306 : input logic dec_i0_decode_d, // decode valid, used for clean icache diagnostics 110 : 111 : // branch info from pipe0 for errors or counter updates - 112 346 : input logic [1:0] exu_i0_br_hist_r, // history + 112 243 : input logic [1:0] exu_i0_br_hist_r, // history 113 0 : input logic exu_i0_br_error_r, // error 114 0 : input logic exu_i0_br_start_error_r, // start error - 115 470 : input logic exu_i0_br_valid_r, // valid - 116 192 : input logic exu_i0_br_mp_r, // mispredict + 115 355 : input logic exu_i0_br_valid_r, // valid + 116 178 : input logic exu_i0_br_mp_r, // mispredict 117 514 : input logic exu_i0_br_middle_r, // middle of bank 118 : 119 : // branch info from pipe1 for errors or counter updates 120 : 121 84 : input logic exu_i0_br_way_r, // way hit or repl 122 : - 123 496 : output logic dec_tlu_core_empty, // core is empty + 123 494 : output logic dec_tlu_core_empty, // core is empty 124 : // Debug start 125 0 : output logic dec_dbg_cmd_done, // abstract command done 126 0 : output logic dec_dbg_cmd_fail, // abstract command failed @@ -243,8 +243,8 @@ 139 : 140 0 : input logic dbg_halt_req, // DM requests a halt 141 0 : input logic dbg_resume_req, // DM requests a resume - 142 2780 : input logic ifu_miss_state_idle, // I-side miss buffer empty - 143 572 : input logic lsu_idle_any, // lsu is idle + 142 2318 : input logic ifu_miss_state_idle, // I-side miss buffer empty + 143 456 : input logic lsu_idle_any, // lsu is idle 144 0 : input logic dec_div_active, // oop div is active 145 0 : output el2_trigger_pkt_t [3:0] trigger_pkt_any, // trigger info for trigger blocks 146 : @@ -284,14 +284,14 @@ 180 0 : output logic [3:0] dec_tlu_meipt, // to PIC 181 : 182 : - 183 16 : output logic [31:0] dec_csr_rddata_d, // csr read data at wb + 183 8 : output logic [31:0] dec_csr_rddata_d, // csr read data at wb 184 4 : output logic dec_csr_legal_d, // csr indicates legal operation 185 : 186 84 : output el2_br_tlu_pkt_t dec_tlu_br0_r_pkt, // branch pkt to bp 187 : 188 0 : output logic dec_tlu_i0_kill_writeb_wb, // I0 is flushed, don't writeback any results to arch state 189 4 : output logic dec_tlu_flush_lower_wb, // commit has a flush (exception, int, mispredict at e4) - 190 2764 : output logic dec_tlu_i0_commit_cmt, // committed an instruction + 190 2304 : output logic dec_tlu_i0_commit_cmt, // committed an instruction 191 : 192 0 : output logic dec_tlu_i0_kill_writeb_r, // I0 is flushed, don't writeback any results to arch state 193 4 : output logic dec_tlu_flush_lower_r, // commit has a flush (exception, int) @@ -314,7 +314,7 @@ 210 0 : output logic dec_tlu_perfcnt3, // toggles when pipe0 perf counter 3 has an event inc 211 : 212 0 : output logic dec_tlu_i0_exc_valid_wb1, // pipe 0 exception valid - 213 2764 : output logic dec_tlu_i0_valid_wb1, // pipe 0 valid + 213 2304 : output logic dec_tlu_i0_valid_wb1, // pipe 0 valid 214 0 : output logic dec_tlu_int_valid_wb1, // pipe 2 int valid 215 0 : output logic [4:0] dec_tlu_exc_cause_wb1, // exception or int cause 216 0 : output logic [31:0] dec_tlu_mtval_wb1, // MTVAL value @@ -391,7 +391,7 @@ 287 : `ifdef RV_USER_MODE 288 0 : logic [3:0] mstatus_ns, mstatus; // MPRV, MPP (inverted! 0-M, 1-U), MPIE, MIE 289 : `else - 290 : logic [1:0] mstatus_ns, mstatus; + 290 0 : logic [1:0] mstatus_ns, mstatus; 291 : `endif 292 0 : logic [1:0] mfdhs_ns, mfdhs; 293 0 : logic [31:0] force_halt_ctr, force_halt_ctr_f; @@ -402,7 +402,7 @@ 298 0 : logic [15:2] dcsr_ns, dcsr; 299 0 : logic [5:0] mip_ns, mip; 300 0 : logic [5:0] mie_ns, mie; - 301 16 : logic [31:0] mcyclel_ns, mcyclel; + 301 13 : logic [31:0] mcyclel_ns, mcyclel; 302 0 : logic [31:0] mcycleh_ns, mcycleh; 303 2 : logic [31:0] minstretl_ns, minstretl; 304 0 : logic [31:0] minstreth_ns, minstreth; @@ -428,8 +428,8 @@ 324 0 : logic dec_pause_state_f, dec_tlu_wr_pause_r_d1, pause_expired_r, pause_expired_wb; 325 4 : logic tlu_flush_lower_r, tlu_flush_lower_r_d1; 326 0 : logic [31:1] tlu_flush_path_r, tlu_flush_path_r_d1; - 327 2764 : logic i0_valid_wb; - 328 2764 : logic tlu_i0_commit_cmt; + 327 2304 : logic i0_valid_wb; + 328 2304 : logic tlu_i0_commit_cmt; 329 0 : logic [31:1] vectored_path, interrupt_path; 330 0 : logic [16:0] dicawics_ns, dicawics; 331 0 : logic wr_dicawics_r, wr_dicad0_r, wr_dicad1_r, wr_dicad0h_r; @@ -444,11 +444,11 @@ 340 0 : logic i0_exception_valid_r, interrupt_valid_r, i0_exception_valid_r_d1, interrupt_valid_r_d1, exc_or_int_valid_r, exc_or_int_valid_r_d1, mdccme_ce_req, miccme_ce_req, mice_ce_req; 341 0 : logic synchronous_flush_r; 342 0 : logic [4:0] exc_cause_r, exc_cause_wb; - 343 68 : logic mcyclel_cout, mcyclel_cout_f, mcyclela_cout; - 344 16 : logic [31:0] mcyclel_inc; + 343 56 : logic mcyclel_cout, mcyclel_cout_f, mcyclela_cout; + 344 13 : logic [31:0] mcyclel_inc; 345 0 : logic [31:0] mcycleh_inc; 346 : - 347 12 : logic minstretl_cout, minstretl_cout_f, minstret_enable, minstretl_cout_ns, minstretl_couta; + 347 10 : logic minstretl_cout, minstretl_cout_f, minstret_enable, minstretl_cout_ns, minstretl_couta; 348 : 349 2 : logic [31:0] minstretl_inc, minstretl_read; 350 0 : logic [31:0] minstreth_inc, minstreth_read; @@ -456,10 +456,10 @@ 352 4 : logic valid_csr; 353 0 : logic rfpc_i0_r; 354 0 : logic lsu_i0_rfnpc_r; - 355 356 : logic dec_tlu_br0_error_r, dec_tlu_br0_start_error_r, dec_tlu_br0_v_r; + 355 252 : logic dec_tlu_br0_error_r, dec_tlu_br0_start_error_r, dec_tlu_br0_v_r; 356 0 : logic lsu_i0_exc_r, lsu_i0_exc_r_raw, lsu_exc_ma_r, lsu_exc_acc_r, lsu_exc_st_r, 357 0 : lsu_exc_valid_r, lsu_exc_valid_r_raw, lsu_exc_valid_r_d1, lsu_i0_exc_r_d1, block_interrupts; - 358 2764 : logic i0_trigger_eval_r; + 358 2304 : logic i0_trigger_eval_r; 359 : 360 0 : logic request_debug_mode_r, request_debug_mode_r_d1, request_debug_mode_done, request_debug_mode_done_f; 361 4 : logic take_halt, halt_taken, halt_taken_f, internal_dbg_halt_mode, dbg_tlu_halted_f, take_reset, @@ -506,17 +506,17 @@ 402 0 : logic dec_pmp_read_d; 403 : 404 0 : logic nmi_int_sync, timer_int_sync, soft_int_sync, i_cpu_halt_req_sync, i_cpu_run_req_sync, mpc_debug_halt_req_sync, mpc_debug_run_req_sync, mpc_debug_halt_req_sync_raw; - 405 17932 : logic csr_wr_clk; + 405 14934 : logic csr_wr_clk; 406 0 : logic e4e5_clk, e4_valid, e5_valid, e4e5_valid, internal_dbg_halt_mode_f, internal_dbg_halt_mode_f2; 407 224 : logic lsu_pmu_load_external_r, lsu_pmu_store_external_r; 408 0 : logic dec_tlu_flush_noredir_r_d1, dec_tlu_flush_pause_r_d1; 409 0 : logic lsu_single_ecc_error_r; 410 0 : logic [31:0] lsu_error_pkt_addr_r; 411 2 : logic mcyclel_cout_in; - 412 2764 : logic i0_valid_no_ebreak_ecall_r; - 413 2764 : logic minstret_enable_f; + 412 2304 : logic i0_valid_no_ebreak_ecall_r; + 413 2304 : logic minstret_enable_f; 414 4 : logic sel_exu_npc_r, sel_flush_npc_r, sel_hold_npc_r; - 415 2764 : logic pc0_valid_r; + 415 2304 : logic pc0_valid_r; 416 0 : logic [15:0] mfdc_int, mfdc_ns; 417 0 : logic [31:0] mrac_in; 418 0 : logic [31:27] csr_sat; @@ -539,7 +539,7 @@ 435 0 : logic [3:0] perfcnt_during_sleep; 436 0 : logic [9:0] event_r; 437 : - 438 716 : el2_inst_pkt_t pmu_i0_itype_qual; + 438 600 : el2_inst_pkt_t pmu_i0_itype_qual; 439 : 440 0 : logic dec_csr_wen_r_mod; 441 : @@ -585,8 +585,8 @@ 481 : `include "el2_dec_csr_equ_mu.svh" 482 : 483 0 : logic csr_acc_r; // CSR access error - 484 2 : logic csr_wr_usr_r; // Write to an unprivileged/user-level CSR - 485 1158 : logic csr_rd_usr_r; // REad from an unprivileged/user-level CSR + 484 1 : logic csr_wr_usr_r; // Write to an unprivileged/user-level CSR + 485 579 : logic csr_rd_usr_r; // REad from an unprivileged/user-level CSR 486 : 487 : `else 488 : @@ -2828,9 +2828,9 @@ 2724 : `include "el2_param.vh" 2725 : ) 2726 : ( - 2727 17932 : input logic clk, - 2728 17932 : input logic free_l2clk, - 2729 17932 : input logic csr_wr_clk, + 2727 14934 : input logic clk, + 2728 14934 : input logic free_l2clk, + 2729 14934 : input logic csr_wr_clk, 2730 2 : input logic rst_l, 2731 0 : input logic dec_csr_wen_r_mod, // csr write enable at wb 2732 0 : input logic [11:0] dec_csr_wraddr_r, // write address for csr @@ -2859,12 +2859,12 @@ 2755 : localparam MITCTL_ENABLE_HALTED = 1; 2756 : localparam MITCTL_ENABLE_PAUSED = 2; 2757 : - 2758 16 : logic [31:0] mitcnt0_ns, mitcnt0, mitcnt1_ns, mitcnt1, mitb0, mitb1, mitb0_b, mitb1_b, mitcnt0_inc, mitcnt1_inc; + 2758 13 : logic [31:0] mitcnt0_ns, mitcnt0, mitcnt1_ns, mitcnt1, mitb0, mitb1, mitb0_b, mitb1_b, mitcnt0_inc, mitcnt1_inc; 2759 0 : logic [2:0] mitctl0_ns, mitctl0; 2760 0 : logic [3:0] mitctl1_ns, mitctl1; 2761 0 : logic wr_mitcnt0_r, wr_mitcnt1_r, wr_mitb0_r, wr_mitb1_r, wr_mitctl0_r, wr_mitctl1_r; 2762 2 : logic mitcnt0_inc_ok, mitcnt1_inc_ok; - 2763 68 : logic mitcnt0_inc_cout, mitcnt1_inc_cout; + 2763 56 : logic mitcnt0_inc_cout, mitcnt1_inc_cout; 2764 0 : logic mit0_match_ns; 2765 0 : logic mit1_match_ns; 2766 0 : logic mitctl0_0_b_ns; diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_dec_trigger.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_dec_trigger.sv.html index 0c93cee73b0..64a844dbbe3 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_dec_trigger.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_dec_trigger.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_dma_ctrl.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_dma_ctrl.sv.html index 18c141e3dec..645a7675f5b 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_dma_ctrl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_dma_ctrl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -130,8 +130,8 @@ 26 : #( 27 : `include "el2_param.vh" 28 : )( - 29 17932 : input logic clk, - 30 17932 : input logic free_clk, + 29 14934 : input logic clk, + 30 14934 : input logic free_clk, 31 2 : input logic rst_l, 32 2 : input logic dma_bus_clk_en, // slave bus clock enable 33 0 : input logic clk_override, @@ -173,8 +173,8 @@ 69 0 : output logic dma_active, // DMA is busy 70 0 : output logic dma_dccm_stall_any, // stall dccm pipe (bubble) so that DMA can proceed 71 0 : output logic dma_iccm_stall_any, // stall iccm pipe (bubble) so that DMA can proceed - 72 710 : input logic dccm_ready, // dccm ready to accept DMA request - 73 202 : input logic iccm_ready, // iccm ready to accept DMA request + 72 594 : input logic dccm_ready, // dccm ready to accept DMA request + 73 188 : input logic iccm_ready, // iccm ready to accept DMA request 74 2 : input logic [2:0] dec_tlu_dma_qos_prty, // DMA QoS priority coming from MFDC [18:15] 75 : 76 : // PMU signals @@ -286,8 +286,8 @@ 182 : 183 0 : logic dma_buffer_c1_clken; 184 0 : logic dma_free_clken; - 185 17932 : logic dma_buffer_c1_clk; - 186 17932 : logic dma_free_clk; + 185 14934 : logic dma_buffer_c1_clk; + 186 14934 : logic dma_free_clk; 187 0 : logic dma_bus_clk; 188 : 189 0 : logic bus_rsp_valid, bus_rsp_sent; diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_exu.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_exu.sv.html index b1b15b54c7a..4c501eabbe7 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_exu.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_exu.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -124,46 +124,46 @@ 20 : `include "el2_param.vh" 21 : ) 22 : ( - 23 17932 : input logic clk, // Top level clock + 23 14934 : input logic clk, // Top level clock 24 2 : input logic rst_l, // Reset 25 0 : input logic scan_mode, // Scan control 26 : - 27 2764 : input logic [1:0] dec_data_en, // Clock enable {x,r}, one cycle pulse - 28 2764 : input logic [1:0] dec_ctl_en, // Clock enable {x,r}, two cycle pulse + 27 2305 : input logic [1:0] dec_data_en, // Clock enable {x,r}, one cycle pulse + 28 2305 : input logic [1:0] dec_ctl_en, // Clock enable {x,r}, two cycle pulse 29 0 : input logic [31:0] dbg_cmd_wrdata, // Debug data to primary I0 RS1 30 0 : input el2_alu_pkt_t i0_ap, // DEC alu {valid,predecodes} 31 : 32 0 : input logic dec_debug_wdata_rs1_d, // Debug select to primary I0 RS1 33 : 34 144 : input el2_predict_pkt_t dec_i0_predict_p_d, // DEC branch predict packet - 35 218 : input logic [pt.BHT_GHR_SIZE-1:0] i0_predict_fghr_d, // DEC predict fghr + 35 202 : input logic [pt.BHT_GHR_SIZE-1:0] i0_predict_fghr_d, // DEC predict fghr 36 32 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] i0_predict_index_d, // DEC predict index 37 0 : input logic [pt.BTB_BTAG_SIZE-1:0] i0_predict_btag_d, // DEC predict branch tag 38 : 39 0 : input logic [31:0] lsu_result_m, // Load result M-stage 40 0 : input logic [31:0] lsu_nonblock_load_data, // nonblock load data - 41 2068 : input logic dec_i0_rs1_en_d, // Qualify GPR RS1 data - 42 1080 : input logic dec_i0_rs2_en_d, // Qualify GPR RS2 data - 43 4 : input logic [31:0] gpr_i0_rs1_d, // DEC data gpr - 44 268 : input logic [31:0] gpr_i0_rs2_d, // DEC data gpr - 45 272 : input logic [31:0] dec_i0_immed_d, // DEC data immediate - 46 4 : input logic [31:0] dec_i0_result_r, // DEC result in R-stage - 47 112 : input logic [12:1] dec_i0_br_immed_d, // Branch immediate - 48 2116 : input logic dec_i0_alu_decode_d, // Valid to X-stage ALU - 49 768 : input logic dec_i0_branch_d, // Branch in D-stage - 50 276 : input logic dec_i0_select_pc_d, // PC select to RS1 + 41 1838 : input logic dec_i0_rs1_en_d, // Qualify GPR RS1 data + 42 964 : input logic dec_i0_rs2_en_d, // Qualify GPR RS2 data + 43 6 : input logic [31:0] gpr_i0_rs1_d, // DEC data gpr + 44 136 : input logic [31:0] gpr_i0_rs2_d, // DEC data gpr + 45 198 : input logic [31:0] dec_i0_immed_d, // DEC data immediate + 46 8 : input logic [31:0] dec_i0_result_r, // DEC result in R-stage + 47 100 : input logic [12:1] dec_i0_br_immed_d, // Branch immediate + 48 1774 : input logic dec_i0_alu_decode_d, // Valid to X-stage ALU + 49 652 : input logic dec_i0_branch_d, // Branch in D-stage + 50 162 : input logic dec_i0_select_pc_d, // PC select to RS1 51 10 : input logic [31:1] dec_i0_pc_d, // Instruction PC 52 0 : input logic [3:0] dec_i0_rs1_bypass_en_d, // DEC bypass select 1 - X-stage, 0 - dec bypass data 53 0 : input logic [3:0] dec_i0_rs2_bypass_en_d, // DEC bypass select 1 - X-stage, 0 - dec bypass data 54 4 : input logic dec_csr_ren_d, // CSR read select - 55 16 : input logic [31:0] dec_csr_rddata_d, // CSR read data + 55 8 : input logic [31:0] dec_csr_rddata_d, // CSR read data 56 : - 57 2066 : input logic dec_qual_lsu_d, // LSU instruction at D. Use to quiet LSU operands + 57 1724 : input logic dec_qual_lsu_d, // LSU instruction at D. Use to quiet LSU operands 58 0 : input el2_mul_pkt_t mul_p, // DEC {valid, operand signs, low, operand bypass} 59 0 : input el2_div_pkt_t div_p, // DEC {valid, unsigned, rem} 60 0 : input logic dec_div_cancel, // Cancel the divide operation 61 : - 62 264 : input logic [31:1] pred_correct_npc_x, // DEC NPC for correctly predicted branch + 62 149 : input logic [31:1] pred_correct_npc_x, // DEC NPC for correctly predicted branch 63 : 64 4 : input logic dec_tlu_flush_lower_r, // Flush divide and secondary ALUs 65 0 : input logic [31:1] dec_tlu_flush_path_r, // Redirect target @@ -176,33 +176,33 @@ 72 104 : output logic [31:0] exu_lsu_rs1_d, // LSU operand 73 0 : output logic [31:0] exu_lsu_rs2_d, // LSU operand 74 : - 75 204 : output logic exu_flush_final, // Pipe is being flushed this cycle + 75 190 : output logic exu_flush_final, // Pipe is being flushed this cycle 76 8 : output logic [31:1] exu_flush_path_final, // Target for the oldest flush source 77 : - 78 88 : output logic [31:0] exu_i0_result_x, // Primary ALU result to DEC + 78 94 : output logic [31:0] exu_i0_result_x, // Primary ALU result to DEC 79 2 : output logic [31:1] exu_i0_pc_x, // Primary PC result to DEC 80 0 : output logic [31:0] exu_csr_rs1_x, // RS1 source for a CSR instruction 81 : 82 2 : output logic [31:1] exu_npc_r, // Divide NPC - 83 346 : output logic [1:0] exu_i0_br_hist_r, // to DEC I0 branch history + 83 243 : output logic [1:0] exu_i0_br_hist_r, // to DEC I0 branch history 84 0 : output logic exu_i0_br_error_r, // to DEC I0 branch error 85 0 : output logic exu_i0_br_start_error_r, // to DEC I0 branch start error 86 8 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_i0_br_index_r, // to DEC I0 branch index - 87 470 : output logic exu_i0_br_valid_r, // to DEC I0 branch valid - 88 192 : output logic exu_i0_br_mp_r, // to DEC I0 branch mispredict + 87 355 : output logic exu_i0_br_valid_r, // to DEC I0 branch valid + 88 178 : output logic exu_i0_br_mp_r, // to DEC I0 branch mispredict 89 514 : output logic exu_i0_br_middle_r, // to DEC I0 branch middle - 90 46 : output logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_r, // to DEC I0 branch fghr + 90 42 : output logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_r, // to DEC I0 branch fghr 91 84 : output logic exu_i0_br_way_r, // to DEC I0 branch way 92 : 93 0 : output el2_predict_pkt_t exu_mp_pkt, // Mispredict branch packet - 94 132 : output logic [pt.BHT_GHR_SIZE-1:0] exu_mp_eghr, // Mispredict global history - 95 46 : output logic [pt.BHT_GHR_SIZE-1:0] exu_mp_fghr, // Mispredict fghr + 94 120 : output logic [pt.BHT_GHR_SIZE-1:0] exu_mp_eghr, // Mispredict global history + 95 42 : output logic [pt.BHT_GHR_SIZE-1:0] exu_mp_fghr, // Mispredict fghr 96 8 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_mp_index, // Mispredict index 97 0 : output logic [pt.BTB_BTAG_SIZE-1:0] exu_mp_btag, // Mispredict btag 98 : 99 : - 100 192 : output logic exu_pmu_i0_br_misp, // to PMU - I0 E4 branch mispredict - 101 494 : output logic exu_pmu_i0_br_ataken, // to PMU - I0 E4 taken + 100 178 : output logic exu_pmu_i0_br_misp, // to PMU - I0 E4 branch mispredict + 101 377 : output logic exu_pmu_i0_br_ataken, // to PMU - I0 E4 taken 102 398 : output logic exu_pmu_i0_pc4, // to PMU - I0 E4 PC 103 : 104 : @@ -217,46 +217,46 @@ 113 8 : logic [31:0] i0_rs2_bypass_data_d; 114 144 : logic i0_rs1_bypass_en_d; 115 8 : logic i0_rs2_bypass_en_d; - 116 4 : logic [31:0] i0_rs1_d, i0_rs2_d; - 117 4 : logic [31:0] muldiv_rs1_d; - 118 264 : logic [31:1] pred_correct_npc_r; - 119 504 : logic i0_pred_correct_upper_r; + 116 6 : logic [31:0] i0_rs1_d, i0_rs2_d; + 117 6 : logic [31:0] muldiv_rs1_d; + 118 149 : logic [31:1] pred_correct_npc_r; + 119 402 : logic i0_pred_correct_upper_r; 120 2 : logic [31:1] i0_flush_path_upper_r; 121 4 : logic x_data_en, x_data_en_q1, x_data_en_q2, r_data_en, r_data_en_q2; - 122 2764 : logic x_ctl_en, r_ctl_en; + 122 2305 : logic x_ctl_en, r_ctl_en; 123 : - 124 46 : logic [pt.BHT_GHR_SIZE-1:0] ghr_d_ns, ghr_d; - 125 46 : logic [pt.BHT_GHR_SIZE-1:0] ghr_x_ns, ghr_x; - 126 496 : logic i0_taken_d; - 127 496 : logic i0_taken_x; - 128 472 : logic i0_valid_d; - 129 472 : logic i0_valid_x; - 130 46 : logic [pt.BHT_GHR_SIZE-1:0] after_flush_eghr; + 124 42 : logic [pt.BHT_GHR_SIZE-1:0] ghr_d_ns, ghr_d; + 125 42 : logic [pt.BHT_GHR_SIZE-1:0] ghr_x_ns, ghr_x; + 126 378 : logic i0_taken_d; + 127 378 : logic i0_taken_x; + 128 356 : logic i0_valid_d; + 129 356 : logic i0_valid_x; + 130 42 : logic [pt.BHT_GHR_SIZE-1:0] after_flush_eghr; 131 : 132 0 : el2_predict_pkt_t final_predict_mp; 133 144 : el2_predict_pkt_t i0_predict_newp_d; 134 : 135 0 : logic flush_in_d; - 136 88 : logic [31:0] alu_result_x; + 136 94 : logic [31:0] alu_result_x; 137 : 138 0 : logic mul_valid_x; 139 0 : logic [31:0] mul_result_x; 140 : 141 84 : el2_predict_pkt_t i0_pp_r; 142 : - 143 200 : logic i0_flush_upper_d; + 143 186 : logic i0_flush_upper_d; 144 10 : logic [31:1] i0_flush_path_d; 145 144 : el2_predict_pkt_t i0_predict_p_d; - 146 504 : logic i0_pred_correct_upper_d; + 146 402 : logic i0_pred_correct_upper_d; 147 : - 148 200 : logic i0_flush_upper_x; + 148 186 : logic i0_flush_upper_x; 149 2 : logic [31:1] i0_flush_path_x; 150 84 : el2_predict_pkt_t i0_predict_p_x; - 151 504 : logic i0_pred_correct_upper_x; - 152 768 : logic i0_branch_x; + 151 402 : logic i0_pred_correct_upper_x; + 152 652 : logic i0_branch_x; 153 : 154 : localparam PREDPIPESIZE = pt.BTB_ADDR_HI-pt.BTB_ADDR_LO+1+pt.BHT_GHR_SIZE+pt.BTB_BTAG_SIZE; - 155 64 : logic [PREDPIPESIZE-1:0] predpipe_d, predpipe_x, predpipe_r, final_predpipe_mp; + 155 62 : logic [PREDPIPESIZE-1:0] predpipe_d, predpipe_x, predpipe_r, final_predpipe_mp; 156 : 157 : 158 : diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_exu_alu_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_exu_alu_ctl.sv.html index fc26ce3f005..c4bd83d01c9 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_exu_alu_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_exu_alu_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -124,52 +124,52 @@ 20 : `include "el2_param.vh" 21 : ) 22 : ( - 23 17932 : input logic clk, // Top level clock + 23 14934 : input logic clk, // Top level clock 24 2 : input logic rst_l, // Reset 25 0 : input logic scan_mode, // Scan control 26 : - 27 200 : input logic flush_upper_x, // Branch flush from previous cycle + 27 186 : input logic flush_upper_x, // Branch flush from previous cycle 28 4 : input logic flush_lower_r, // Master flush of entire pipeline - 29 2764 : input logic enable, // Clock enable - 30 2116 : input logic valid_in, // Valid + 29 2306 : input logic enable, // Clock enable + 30 1774 : input logic valid_in, // Valid 31 0 : input el2_alu_pkt_t ap, // predecodes 32 4 : input logic csr_ren_in, // CSR select - 33 16 : input logic [31:0] csr_rddata_in, // CSR data - 34 4 : input logic signed [31:0] a_in, // A operand - 35 352 : input logic [31:0] b_in, // B operand + 33 8 : input logic [31:0] csr_rddata_in, // CSR data + 34 6 : input logic signed [31:0] a_in, // A operand + 35 240 : input logic [31:0] b_in, // B operand 36 10 : input logic [31:1] pc_in, // for pc=pc+2,4 calculations 37 144 : input el2_predict_pkt_t pp_in, // Predicted branch structure - 38 112 : input logic [12:1] brimm_in, // Branch offset + 38 100 : input logic [12:1] brimm_in, // Branch offset 39 : 40 : - 41 88 : output logic [31:0] result_ff, // final result - 42 200 : output logic flush_upper_out, // Branch flush - 43 204 : output logic flush_final_out, // Branch flush or flush entire pipeline + 41 94 : output logic [31:0] result_ff, // final result + 42 186 : output logic flush_upper_out, // Branch flush + 43 190 : output logic flush_final_out, // Branch flush or flush entire pipeline 44 10 : output logic [31:1] flush_path_out, // Branch flush PC 45 2 : output logic [31:1] pc_ff, // flopped PC - 46 504 : output logic pred_correct_out, // NPC control + 46 402 : output logic pred_correct_out, // NPC control 47 144 : output el2_predict_pkt_t predict_p_out // Predicted branch structure 48 : ); 49 : 50 : - 51 4 : logic [31:0] zba_a_in; - 52 92 : logic [31:0] aout; + 51 6 : logic [31:0] zba_a_in; + 52 98 : logic [31:0] aout; 53 12 : logic cout,ov,neg; 54 0 : logic [31:0] lout; - 55 4 : logic [31:0] sout; + 55 6 : logic [31:0] sout; 56 88 : logic sel_shift; - 57 1956 : logic sel_adder; - 58 0 : logic slt_one; - 59 496 : logic actual_taken; + 57 1614 : logic sel_adder; + 58 2 : logic slt_one; + 59 378 : logic actual_taken; 60 10 : logic [31:1] pcout; - 61 192 : logic cond_mispredict; + 61 178 : logic cond_mispredict; 62 12 : logic target_mispredict; - 63 1692 : logic eq, ne, lt, ge; + 63 1354 : logic eq, ne, lt, ge; 64 56 : logic any_jal; - 65 374 : logic [1:0] newhist; + 65 353 : logic [1:0] newhist; 66 56 : logic sel_pc; - 67 4 : logic [31:0] csr_write_data; - 68 88 : logic [31:0] result; + 67 6 : logic [31:0] csr_write_data; + 68 94 : logic [31:0] result; 69 : 70 : 71 : @@ -348,7 +348,7 @@ 244 : ( {32{ ap_sh3add}} & {a_in[28:0],3'b0} ) | 245 : ( {32{~ap_zba }} & a_in[31:0] ); 246 : - 247 996 : logic [31:0] bm; + 247 768 : logic [31:0] bm; 248 : 249 : assign bm[31:0] = ( ap.sub ) ? ~b_in[31:0] : b_in[31:0]; 250 : @@ -383,8 +383,8 @@ 279 : 280 0 : logic [5:0] shift_amount; 281 2 : logic [31:0] shift_mask; - 282 288 : logic [62:0] shift_extend; - 283 288 : logic [62:0] shift_long; + 282 290 : logic [62:0] shift_extend; + 283 290 : logic [62:0] shift_long; 284 : 285 : 286 : assign shift_amount[5:0] = ( { 6{ap.sll}} & (6'd32 - {1'b0,b_in[4:0]}) ) | // [5] unused @@ -416,7 +416,7 @@ 312 : // * * * * * * * * * * * * * * * * * * BitManip : CLZ,CTZ * * * * * * * * * * * * * * * * * * 313 : 314 0 : logic bitmanip_clz_ctz_sel; - 315 4 : logic [31:0] bitmanip_a_reverse_ff; + 315 6 : logic [31:0] bitmanip_a_reverse_ff; 316 0 : logic [31:0] bitmanip_lzd_in; 317 2 : logic [5:0] bitmanip_dw_lzd_enc; 318 0 : logic [5:0] bitmanip_clz_ctz_result; @@ -443,8 +443,8 @@ 339 : 340 2 : for (int i=0; i<32; i++) begin 341 0 : if (bitmanip_lzd_os[31] == 1'b0 && found == 0) begin - 342 301248 : bitmanip_dw_lzd_enc[5:0]= bitmanip_dw_lzd_enc[5:0] + 6'b00_0001; - 343 301248 : bitmanip_lzd_os[31:0] = bitmanip_lzd_os[31:0] << 1; + 342 205312 : bitmanip_dw_lzd_enc[5:0]= bitmanip_dw_lzd_enc[5:0] + 6'b00_0001; + 343 205312 : bitmanip_lzd_os[31:0] = bitmanip_lzd_os[31:0] << 1; 344 : end 345 : else 346 0 : found=1'b1; @@ -460,8 +460,8 @@ 356 : 357 : // * * * * * * * * * * * * * * * * * * BitManip : CPOP * * * * * * * * * * * * * * * * * * 358 : - 359 0 : logic [5:0] bitmanip_cpop; - 360 0 : logic [5:0] bitmanip_cpop_result; + 359 2 : logic [5:0] bitmanip_cpop; + 360 0 : logic [5:0] bitmanip_cpop_result; 361 : 362 : 363 : integer bitmanip_cpop_i; @@ -499,7 +499,7 @@ 395 : 396 : assign bitmanip_minmax_sel = ap_min | ap_max; 397 : - 398 1694 : logic bitmanip_minmax_sel_a; + 398 1356 : logic bitmanip_minmax_sel_a; 399 : 400 : assign bitmanip_minmax_sel_a = ge ^ ap_min; 401 : diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_exu_div_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_exu_div_ctl.sv.html index b275f595f84..84fddcf069d 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_exu_div_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_exu_div_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -124,13 +124,13 @@ 20 : `include "el2_param.vh" 21 : ) 22 : ( - 23 17932 : input logic clk, // Top level clock + 23 14934 : input logic clk, // Top level clock 24 2 : input logic rst_l, // Reset 25 0 : input logic scan_mode, // Scan mode 26 : 27 0 : input el2_div_pkt_t dp, // valid, sign, rem - 28 4 : input logic [31:0] dividend, // Numerator - 29 352 : input logic [31:0] divisor, // Denominator + 28 6 : input logic [31:0] dividend, // Numerator + 29 240 : input logic [31:0] divisor, // Denominator 30 : 31 0 : input logic cancel, // Cancel divide 32 : @@ -1414,7 +1414,7 @@ 1310 : // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 1311 : module el2_exu_div_new_4bit_fullshortq 1312 : ( - 1313 17932 : input logic clk, // Top level clock + 1313 14934 : input logic clk, // Top level clock 1314 2 : input logic rst_l, // Reset 1315 0 : input logic scan_mode, // Scan mode 1316 : @@ -1422,8 +1422,8 @@ 1318 0 : input logic valid_in, 1319 206 : input logic signed_in, 1320 0 : input logic rem_in, - 1321 4 : input logic [31:0] dividend_in, - 1322 352 : input logic [31:0] divisor_in, + 1321 6 : input logic [31:0] dividend_in, + 1322 240 : input logic [31:0] divisor_in, 1323 : 1324 0 : output logic valid_out, 1325 0 : output logic [31:0] data_out @@ -1446,7 +1446,7 @@ 1342 0 : logic [31:0] a_in, a_ff; 1343 : 1344 0 : logic b_enable, b_twos_comp; - 1345 352 : logic [32:0] b_in; + 1345 240 : logic [32:0] b_in; 1346 0 : logic [37:0] b_ff; 1347 : 1348 0 : logic [31:0] q_in, q_ff; diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_exu_mul_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_exu_mul_ctl.sv.html index bcdce7f1908..f0f937437d0 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_exu_mul_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_exu_mul_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -124,7 +124,7 @@ 20 : `include "el2_param.vh" 21 : ) 22 : ( - 23 17932 : input logic clk, // Top level clock + 23 14934 : input logic clk, // Top level clock 24 2 : input logic rst_l, // Reset 25 0 : input logic scan_mode, // Scan mode 26 : @@ -310,7 +310,7 @@ 206 2 : for (bcompress_i=0; bcompress_i<32; bcompress_i++) 207 64 : begin 208 64 : bcompress_test_bit_d = rs2_in[bcompress_i]; - 209 301248 : if (bcompress_test_bit_d) + 209 205312 : if (bcompress_test_bit_d) 210 0 : begin 211 0 : bcompress_d[bcompress_j] = rs1_in[bcompress_i]; 212 0 : bcompress_j = bcompress_j + 1; @@ -337,7 +337,7 @@ 233 2 : for (bdecompress_i=0; bdecompress_i<32; bdecompress_i++) 234 64 : begin 235 64 : bdecompress_test_bit_d = rs2_in[bdecompress_i]; - 236 301248 : if (bdecompress_test_bit_d) + 236 205312 : if (bdecompress_test_bit_d) 237 0 : begin 238 0 : bdecompress_d[bdecompress_i] = rs1_in[bdecompress_j]; 239 0 : bdecompress_j = bdecompress_j + 1; diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu.sv.html index 5767ee1a353..b1d02a8a83c 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -129,15 +129,15 @@ 25 : `include "el2_param.vh" 26 : ) 27 : ( - 28 17932 : input logic free_l2clk, // Clock always. Through one clock header. For flops with second header built in. - 29 17932 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. - 30 17932 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 28 14934 : input logic free_l2clk, // Clock always. Through one clock header. For flops with second header built in. + 29 14934 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 30 14934 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. 31 2 : input logic rst_l, // reset, active low 32 : - 33 2764 : input logic dec_i0_decode_d, // Valid instruction at D and not blocked + 33 2306 : input logic dec_i0_decode_d, // Valid instruction at D and not blocked 34 : - 35 204 : input logic exu_flush_final, // flush, includes upper and lower - 36 2764 : input logic dec_tlu_i0_commit_cmt , // committed i0 + 35 190 : input logic exu_flush_final, // flush, includes upper and lower + 36 2304 : input logic dec_tlu_i0_commit_cmt , // committed i0 37 0 : input logic dec_tlu_flush_err_wb , // flush due to parity error. 38 0 : input logic dec_tlu_flush_noredir_wb, // don't fetch, validated with exu_flush_final 39 8 : input logic [31:1] exu_flush_path_final, // flush fetch address @@ -172,9 +172,9 @@ 68 0 : output logic ifu_axi_bready, 69 : 70 : // AXI Read Channels - 71 2778 : output logic ifu_axi_arvalid, - 72 5556 : input logic ifu_axi_arready, - 73 1724 : output logic [pt.IFU_BUS_TAG-1:0] ifu_axi_arid, + 71 2317 : output logic ifu_axi_arvalid, + 72 4635 : input logic ifu_axi_arready, + 73 1378 : output logic [pt.IFU_BUS_TAG-1:0] ifu_axi_arid, 74 36 : output logic [31:0] ifu_axi_araddr, 75 2 : output logic [3:0] ifu_axi_arregion, 76 0 : output logic [7:0] ifu_axi_arlen, @@ -185,10 +185,10 @@ 81 2 : output logic [2:0] ifu_axi_arprot, 82 0 : output logic [3:0] ifu_axi_arqos, 83 : - 84 5554 : input logic ifu_axi_rvalid, + 84 4633 : input logic ifu_axi_rvalid, 85 2 : output logic ifu_axi_rready, - 86 960 : input logic [pt.IFU_BUS_TAG-1:0] ifu_axi_rid, - 87 200 : input logic [63:0] ifu_axi_rdata, + 86 729 : input logic [pt.IFU_BUS_TAG-1:0] ifu_axi_rid, + 87 188 : input logic [63:0] ifu_axi_rdata, 88 0 : input logic [1:0] ifu_axi_rresp, 89 : 90 2 : input logic ifu_bus_clk_en, @@ -206,10 +206,10 @@ 102 0 : output logic iccm_dma_rvalid, 103 0 : output logic [63:0] iccm_dma_rdata, 104 0 : output logic [2:0] iccm_dma_rtag, // Tag of the DMA req - 105 202 : output logic iccm_ready, + 105 188 : output logic iccm_ready, 106 : - 107 2764 : output logic ifu_pmu_instr_aligned, - 108 170 : output logic ifu_pmu_fetch_stall, + 107 2306 : output logic ifu_pmu_instr_aligned, + 108 158 : output logic ifu_pmu_fetch_stall, 109 0 : output logic ifu_ic_error_start, // has all of the I$ ecc/parity for data/tag 110 : 111 : // I$ & ITAG Ports @@ -218,7 +218,7 @@ 114 0 : output logic ic_rd_en, // Icache read enable. 115 : 116 96 : output logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data, // Data to fill to the Icache. With ECC - 117 496 : input logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC + 117 474 : input logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 118 0 : input logic [70:0] ic_debug_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 119 0 : input logic [25:0] ictag_debug_rd_data,// Debug icache tag. 120 0 : output logic [70:0] ic_debug_wr_data, // Debug wr cache. @@ -227,8 +227,8 @@ 123 : 124 0 : input logic [pt.ICACHE_BANKS_WAY-1:0] ic_eccerr, // 125 0 : input logic [pt.ICACHE_BANKS_WAY-1:0] ic_parerr, - 126 496 : output logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. - 127 2514 : output logic ic_sel_premux_data, // Select the premux data. + 126 474 : output logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. + 127 2049 : output logic ic_sel_premux_data, // Select the premux data. 128 : 129 0 : output logic [pt.ICACHE_INDEX_HI:3] ic_debug_addr, // Read/Write addresss to the Icache. 130 0 : output logic ic_debug_rd_en, // Icache debug rd @@ -259,40 +259,40 @@ 155 0 : output logic ifu_iccm_rd_ecc_double_err, // This fetch has a double ICCM ECC error. 156 : 157 : // Perf counter sigs - 158 2780 : output logic ifu_pmu_ic_miss, // ic miss + 158 2318 : output logic ifu_pmu_ic_miss, // ic miss 159 0 : output logic ifu_pmu_ic_hit, // ic hit 160 0 : output logic ifu_pmu_bus_error, // iside bus error - 161 2776 : output logic ifu_pmu_bus_busy, // iside bus busy - 162 5554 : output logic ifu_pmu_bus_trxn, // iside bus transactions + 161 2316 : output logic ifu_pmu_bus_busy, // iside bus busy + 162 4633 : output logic ifu_pmu_bus_trxn, // iside bus transactions 163 : 164 : 165 0 : output logic ifu_i0_icaf, // Instruction 0 access fault. From Aligner to Decode 166 0 : output logic [1:0] ifu_i0_icaf_type, // Instruction 0 access fault type 167 : - 168 2764 : output logic ifu_i0_valid, // Instruction 0 valid. From Aligner to Decode + 168 2306 : output logic ifu_i0_valid, // Instruction 0 valid. From Aligner to Decode 169 0 : output logic ifu_i0_icaf_second, // Instruction 0 has access fault on second 2B of 4B inst 170 0 : output logic ifu_i0_dbecc, // Instruction 0 has double bit ecc error 171 0 : output logic iccm_dma_sb_error, // Single Bit ECC error from a DMA access 172 36 : output logic[31:0] ifu_i0_instr, // Instruction 0 . From Aligner to Decode 173 10 : output logic[31:1] ifu_i0_pc, // Instruction 0 pc. From Aligner to Decode - 174 1788 : output logic ifu_i0_pc4, // Instruction 0 is 4 byte. From Aligner to Decode + 174 1322 : output logic ifu_i0_pc4, // Instruction 0 is 4 byte. From Aligner to Decode 175 : - 176 2780 : output logic ifu_miss_state_idle, // There is no outstanding miss. Cache miss state is idle. + 176 2318 : output logic ifu_miss_state_idle, // There is no outstanding miss. Cache miss state is idle. 177 : 178 144 : output el2_br_pkt_t i0_brp, // Instruction 0 branch packet. From Aligner to Decode 179 32 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] ifu_i0_bp_index, // BP index - 180 218 : output logic [pt.BHT_GHR_SIZE-1:0] ifu_i0_bp_fghr, // BP FGHR + 180 202 : output logic [pt.BHT_GHR_SIZE-1:0] ifu_i0_bp_fghr, // BP FGHR 181 0 : output logic [pt.BTB_BTAG_SIZE-1:0] ifu_i0_bp_btag, // BP tag 182 0 : output logic [$clog2(pt.BTB_SIZE)-1:0] ifu_i0_fa_index, // Fully associt btb index 183 : 184 0 : input el2_predict_pkt_t exu_mp_pkt, // mispredict packet - 185 132 : input logic [pt.BHT_GHR_SIZE-1:0] exu_mp_eghr, // execute ghr - 186 46 : input logic [pt.BHT_GHR_SIZE-1:0] exu_mp_fghr, // Mispredict fghr + 185 120 : input logic [pt.BHT_GHR_SIZE-1:0] exu_mp_eghr, // execute ghr + 186 42 : input logic [pt.BHT_GHR_SIZE-1:0] exu_mp_fghr, // Mispredict fghr 187 8 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_mp_index, // Mispredict index 188 0 : input logic [pt.BTB_BTAG_SIZE-1:0] exu_mp_btag, // Mispredict btag 189 : 190 84 : input el2_br_tlu_pkt_t dec_tlu_br0_r_pkt, // slot0 update/error pkt - 191 46 : input logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_r, // fghr to bp + 191 42 : input logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_r, // fghr to bp 192 8 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_i0_br_index_r, // bp index 193 0 : input logic [$clog2(pt.BTB_SIZE)-1:0] dec_fa_error_index, // Fully associt btb error index 194 : @@ -320,7 +320,7 @@ 216 2 : logic [31:1] ifc_fetch_addr_bf; 217 : assign ifu_pmp_addr = ifc_fetch_addr_bf; 218 : - 219 2712 : logic [1:0] ifu_fetch_val; // valids on a 2B boundary, left justified [7] implies valid fetch + 219 2254 : logic [1:0] ifu_fetch_val; // valids on a 2B boundary, left justified [7] implies valid fetch 220 2 : logic [31:1] ifu_fetch_pc; // starting pc of fetch 221 : 222 0 : logic iccm_rd_ecc_single_err, iccm_dma_rd_ecc_single_err, ic_error_start; @@ -329,33 +329,33 @@ 225 : assign ifu_ic_error_start = ic_error_start; 226 : 227 : - 228 1224 : logic ic_write_stall; + 228 992 : logic ic_write_stall; 229 0 : logic ic_dma_active; - 230 206 : logic ifc_dma_access_ok; + 230 192 : logic ifc_dma_access_ok; 231 0 : logic [1:0] ic_access_fault_f; 232 0 : logic [1:0] ic_access_fault_type_f; - 233 2784 : logic ifu_ic_mb_empty; + 233 2320 : logic ifu_ic_mb_empty; 234 : - 235 2772 : logic ic_hit_f; + 235 2314 : logic ic_hit_f; 236 : - 237 196 : logic [1:0] ifu_bp_way_f; // way indication; right justified - 238 368 : logic ifu_bp_hit_taken_f; // kill next fetch; taken target found + 237 174 : logic [1:0] ifu_bp_way_f; // way indication; right justified + 238 264 : logic ifu_bp_hit_taken_f; // kill next fetch; taken target found 239 0 : logic [31:1] ifu_bp_btb_target_f; // predicted target PC 240 46 : logic ifu_bp_inst_mask_f; // tell ic which valids to kill because of a taken branch; right justified 241 104 : logic [1:0] ifu_bp_hist1_f; // history counters for all 4 potential branches; right justified - 242 44 : logic [1:0] ifu_bp_hist0_f; // history counters for all 4 potential branches; right justified - 243 136 : logic [11:0] ifu_bp_poffset_f; // predicted target + 242 38 : logic [1:0] ifu_bp_hist0_f; // history counters for all 4 potential branches; right justified + 243 108 : logic [11:0] ifu_bp_poffset_f; // predicted target 244 0 : logic [1:0] ifu_bp_ret_f; // predicted ret ; right justified - 245 128 : logic [1:0] ifu_bp_pc4_f; // pc4 indication; right justified + 245 84 : logic [1:0] ifu_bp_pc4_f; // pc4 indication; right justified 246 132 : logic [1:0] ifu_bp_valid_f; // branch valid, right justified - 247 46 : logic [pt.BHT_GHR_SIZE-1:0] ifu_bp_fghr_f; + 247 42 : logic [pt.BHT_GHR_SIZE-1:0] ifu_bp_fghr_f; 248 0 : logic [1:0] [$clog2(pt.BTB_SIZE)-1:0] ifu_bp_fa_index_f; 249 : 250 : - 251 2712 : logic [1:0] ic_fetch_val_f; - 252 496 : logic [31:0] ic_data_f; - 253 496 : logic [31:0] ifu_fetch_data_f; - 254 1290 : logic ifc_fetch_req_f; + 251 2254 : logic [1:0] ic_fetch_val_f; + 252 500 : logic [31:0] ic_data_f; + 253 500 : logic [31:0] ifu_fetch_data_f; + 254 1058 : logic ifc_fetch_req_f; 255 0 : logic ifc_fetch_req_f_raw; 256 0 : logic iccm_dma_rd_ecc_double_err; 257 0 : logic [1:0] iccm_rd_ecc_double_err; // This fetch has an iccm double error. @@ -369,7 +369,7 @@ 265 : assign ifu_fetch_pc[31:1] = ifc_fetch_addr_f[31:1]; 266 : 267 2 : logic ifc_fetch_uncacheable_bf; // The fetch request is uncacheable space. BF stage - 268 1290 : logic ifc_fetch_req_bf; // Fetch request. Comes with the address. BF stage + 268 1058 : logic ifc_fetch_req_bf; // Fetch request. Comes with the address. BF stage 269 2 : logic ifc_fetch_req_bf_raw; // Fetch request without some qualifications. Used for clock-gating. BF stage 270 0 : logic ifc_iccm_access_bf; // This request is to the ICCM. Do not generate misses to the bus. 271 0 : logic ifc_region_acc_fault_bf; // Access fault. in ICCM region but offset is outside defined ICCM. diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu_aln_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu_aln_ctl.sv.html index 64e53a0dd18..0abbb381adf 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu_aln_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu_aln_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -131,8 +131,8 @@ 27 : 28 0 : input logic scan_mode, // Flop scan mode control 29 2 : input logic rst_l, // reset, active low - 30 17932 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 31 17932 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 30 14934 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 31 14934 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. 32 : 33 0 : input logic ifu_async_error_start, // ecc/parity related errors with current fetch - not sent down the pipe 34 : @@ -141,18 +141,18 @@ 37 0 : input logic [1:0] ic_access_fault_f, // Instruction access fault for the current fetch. 38 0 : input logic [1:0] ic_access_fault_type_f, // Instruction access fault types 39 : - 40 204 : input logic exu_flush_final, // Flush from the pipeline. + 40 190 : input logic exu_flush_final, // Flush from the pipeline. 41 : - 42 2764 : input logic dec_i0_decode_d, // Valid instruction at D-stage and not blocked + 42 2306 : input logic dec_i0_decode_d, // Valid instruction at D-stage and not blocked 43 : - 44 496 : input logic [31:0] ifu_fetch_data_f, // fetch data in memory format - not right justified + 44 500 : input logic [31:0] ifu_fetch_data_f, // fetch data in memory format - not right justified 45 : - 46 2712 : input logic [1:0] ifu_fetch_val, // valids on a 2B boundary, right justified + 46 2254 : input logic [1:0] ifu_fetch_val, // valids on a 2B boundary, right justified 47 2 : input logic [31:1] ifu_fetch_pc, // starting pc of fetch 48 : 49 : 50 : - 51 2764 : output logic ifu_i0_valid, // Instruction 0 is valid + 51 2306 : output logic ifu_i0_valid, // Instruction 0 is valid 52 0 : output logic ifu_i0_icaf, // Instruction 0 has access fault 53 0 : output logic [1:0] ifu_i0_icaf_type, // Instruction 0 access fault type 54 0 : output logic ifu_i0_icaf_second, // Instruction 0 has access fault on second 2B of 4B inst @@ -160,95 +160,95 @@ 56 0 : output logic ifu_i0_dbecc, // Instruction 0 has double bit ecc error 57 36 : output logic [31:0] ifu_i0_instr, // Instruction 0 58 10 : output logic [31:1] ifu_i0_pc, // Instruction 0 PC - 59 1788 : output logic ifu_i0_pc4, + 59 1322 : output logic ifu_i0_pc4, 60 : - 61 2284 : output logic ifu_fb_consume1, // Consumed one buffer. To fetch control fetch for buffer mass balance + 61 1836 : output logic ifu_fb_consume1, // Consumed one buffer. To fetch control fetch for buffer mass balance 62 40 : output logic ifu_fb_consume2, // Consumed two buffers.To fetch control fetch for buffer mass balance 63 : 64 : - 65 46 : input logic [pt.BHT_GHR_SIZE-1:0] ifu_bp_fghr_f, // fetch GHR + 65 42 : input logic [pt.BHT_GHR_SIZE-1:0] ifu_bp_fghr_f, // fetch GHR 66 0 : input logic [31:1] ifu_bp_btb_target_f, // predicted RET target - 67 136 : input logic [11:0] ifu_bp_poffset_f, // predicted target offset + 67 108 : input logic [11:0] ifu_bp_poffset_f, // predicted target offset 68 0 : input logic [1:0] [$clog2(pt.BTB_SIZE)-1:0] ifu_bp_fa_index_f, // predicted branch index (fully associative option) 69 : - 70 44 : input logic [1:0] ifu_bp_hist0_f, // history counters for all 4 potential branches, bit 1, right justified + 70 38 : input logic [1:0] ifu_bp_hist0_f, // history counters for all 4 potential branches, bit 1, right justified 71 104 : input logic [1:0] ifu_bp_hist1_f, // history counters for all 4 potential branches, bit 1, right justified - 72 128 : input logic [1:0] ifu_bp_pc4_f, // pc4 indication, right justified - 73 196 : input logic [1:0] ifu_bp_way_f, // way indication, right justified + 72 84 : input logic [1:0] ifu_bp_pc4_f, // pc4 indication, right justified + 73 174 : input logic [1:0] ifu_bp_way_f, // way indication, right justified 74 132 : input logic [1:0] ifu_bp_valid_f, // branch valid, right justified 75 0 : input logic [1:0] ifu_bp_ret_f, // predicted ret indication, right justified 76 : 77 : 78 144 : output el2_br_pkt_t i0_brp, // Branch packet for I0. 79 32 : output logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] ifu_i0_bp_index, // BP index - 80 218 : output logic [pt.BHT_GHR_SIZE-1:0] ifu_i0_bp_fghr, // BP FGHR + 80 202 : output logic [pt.BHT_GHR_SIZE-1:0] ifu_i0_bp_fghr, // BP FGHR 81 0 : output logic [pt.BTB_BTAG_SIZE-1:0] ifu_i0_bp_btag, // BP tag 82 : 83 0 : output logic [$clog2(pt.BTB_SIZE)-1:0] ifu_i0_fa_index, // Fully associt btb index 84 : - 85 2764 : output logic ifu_pmu_instr_aligned, // number of inst aligned this cycle + 85 2306 : output logic ifu_pmu_instr_aligned, // number of inst aligned this cycle 86 : 87 240 : output logic [15:0] ifu_i0_cinst // 16b compress inst for i0 88 : ); 89 : 90 : 91 : - 92 2772 : logic ifvalid; + 92 2314 : logic ifvalid; 93 0 : logic shift_f1_f0, shift_f2_f0, shift_f2_f1; 94 0 : logic fetch_to_f0, fetch_to_f1, fetch_to_f2; 95 : 96 0 : logic [1:0] f2val_in, f2val; - 97 660 : logic [1:0] f1val_in, f1val; - 98 2052 : logic [1:0] f0val_in, f0val; + 97 668 : logic [1:0] f1val_in, f1val; + 98 1586 : logic [1:0] f0val_in, f0val; 99 0 : logic [1:0] sf1val, sf0val; 100 : 101 240 : logic [31:0] aligndata; - 102 1788 : logic first4B, first2B; + 102 1322 : logic first4B, first2B; 103 : 104 36 : logic [31:0] uncompress0; - 105 2764 : logic i0_shift; - 106 664 : logic shift_2B, shift_4B; - 107 700 : logic f1_shift_2B; - 108 660 : logic f2_valid, sf1_valid, sf0_valid; + 105 2306 : logic i0_shift; + 106 666 : logic shift_2B, shift_4B; + 107 708 : logic f1_shift_2B; + 108 668 : logic f2_valid, sf1_valid, sf0_valid; 109 : 110 240 : logic [31:0] ifirst; - 111 2072 : logic [1:0] alignval; + 111 1606 : logic [1:0] alignval; 112 36 : logic [31:1] firstpc, secondpc; 113 : 114 88 : logic [11:0] f1poffset; - 115 88 : logic [11:0] f0poffset; - 116 50 : logic [pt.BHT_GHR_SIZE-1:0] f1fghr; - 117 194 : logic [pt.BHT_GHR_SIZE-1:0] f0fghr; - 118 168 : logic [1:0] f1hist1; - 119 212 : logic [1:0] f0hist1; - 120 100 : logic [1:0] f1hist0; - 121 124 : logic [1:0] f0hist0; + 115 82 : logic [11:0] f0poffset; + 116 46 : logic [pt.BHT_GHR_SIZE-1:0] f1fghr; + 117 174 : logic [pt.BHT_GHR_SIZE-1:0] f0fghr; + 118 114 : logic [1:0] f1hist1; + 119 156 : logic [1:0] f0hist1; + 120 76 : logic [1:0] f1hist0; + 121 104 : logic [1:0] f0hist0; 122 : 123 0 : logic [1:0][$clog2(pt.BTB_SIZE)-1:0] f0index, f1index, alignindex; 124 : 125 0 : logic [1:0] f1ictype; 126 0 : logic [1:0] f0ictype; 127 : - 128 128 : logic [1:0] f1pc4; - 129 524 : logic [1:0] f0pc4; + 128 84 : logic [1:0] f1pc4; + 129 300 : logic [1:0] f0pc4; 130 : 131 0 : logic [1:0] f1ret; 132 0 : logic [1:0] f0ret; 133 68 : logic [1:0] f1way; 134 72 : logic [1:0] f0way; 135 : - 136 196 : logic [1:0] f1brend; + 136 120 : logic [1:0] f1brend; 137 88 : logic [1:0] f0brend; 138 : 139 72 : logic [1:0] alignbrend; - 140 400 : logic [1:0] alignpc4; + 140 284 : logic [1:0] alignpc4; 141 : 142 0 : logic [1:0] alignret; 143 108 : logic [1:0] alignway; - 144 176 : logic [1:0] alignhist1; - 145 100 : logic [1:0] alignhist0; - 146 508 : logic [1:1] alignfromf1; - 147 256 : logic i0_ends_f1; + 144 174 : logic [1:0] alignhist1; + 145 96 : logic [1:0] alignhist0; + 146 510 : logic [1:1] alignfromf1; + 147 258 : logic i0_ends_f1; 148 0 : logic i0_br_start_error; 149 : 150 0 : logic [31:1] f1prett; @@ -260,47 +260,47 @@ 156 : 157 0 : logic [1:0] aligndbecc; 158 0 : logic [1:0] alignicaf; - 159 400 : logic i0_brp_pc4; + 159 284 : logic i0_brp_pc4; 160 : 161 28 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] firstpc_hash, secondpc_hash; 162 : 163 0 : logic first_legal; 164 : - 165 916 : logic [1:0] wrptr, wrptr_in; - 166 836 : logic [1:0] rdptr, rdptr_in; - 167 844 : logic [2:0] qwen; + 165 763 : logic [1:0] wrptr, wrptr_in; + 166 691 : logic [1:0] rdptr, rdptr_in; + 167 698 : logic [2:0] qwen; 168 36 : logic [31:0] q2,q1,q0; - 169 420 : logic q2off_in, q2off; - 170 380 : logic q1off_in, q1off; - 171 440 : logic q0off_in, q0off; - 172 1232 : logic f0_shift_2B; + 169 423 : logic q2off_in, q2off; + 170 382 : logic q1off_in, q1off; + 171 444 : logic q0off_in, q0off; + 172 1242 : logic f0_shift_2B; 173 : - 174 260 : logic [31:0] q0eff; + 174 266 : logic [31:0] q0eff; 175 288 : logic [31:0] q0final; - 176 892 : logic q0ptr; - 177 892 : logic [1:0] q0sel; + 176 893 : logic q0ptr; + 177 893 : logic [1:0] q0sel; 178 : - 179 280 : logic [31:0] q1eff; - 180 336 : logic [15:0] q1final; - 181 664 : logic q1ptr; - 182 664 : logic [1:0] q1sel; + 179 270 : logic [31:0] q1eff; + 180 338 : logic [15:0] q1final; + 181 672 : logic q1ptr; + 182 672 : logic [1:0] q1sel; 183 : - 184 836 : logic [2:0] qren; + 184 691 : logic [2:0] qren; 185 : 186 40 : logic consume_fb1, consume_fb0; 187 0 : logic [1:0] icaf_eff; 188 : 189 : localparam BRDATA_SIZE = pt.BTB_ENABLE ? 16+($clog2(pt.BTB_SIZE)*2*pt.BTB_FULLYA) : 4; 190 : localparam BRDATA_WIDTH = pt.BTB_ENABLE ? 8+($clog2(pt.BTB_SIZE)*pt.BTB_FULLYA) : 2; - 191 94 : logic [BRDATA_SIZE-1:0] brdata_in, brdata2, brdata1, brdata0; - 192 608 : logic [BRDATA_SIZE-1:0] brdata1eff, brdata0eff; - 193 588 : logic [BRDATA_SIZE-1:0] brdata1final, brdata0final; + 191 49 : logic [BRDATA_SIZE-1:0] brdata_in, brdata2, brdata1, brdata0; + 192 384 : logic [BRDATA_SIZE-1:0] brdata1eff, brdata0eff; + 193 364 : logic [BRDATA_SIZE-1:0] brdata1final, brdata0final; 194 : 195 : localparam MHI = 1+(pt.BTB_ENABLE * (43+pt.BHT_GHR_SIZE)); 196 : localparam MSIZE = 2+(pt.BTB_ENABLE * (43+pt.BHT_GHR_SIZE)); 197 : - 198 20 : logic [MHI:0] misc_data_in, misc2, misc1, misc0; - 199 152 : logic [MHI:0] misc1eff, misc0eff; + 198 18 : logic [MHI:0] misc_data_in, misc2, misc1, misc0; + 199 150 : logic [MHI:0] misc1eff, misc0eff; 200 : 201 0 : logic [pt.BTB_BTAG_SIZE-1:0] firstbrtag_hash, secondbrtag_hash; 202 : diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu_bp_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu_bp_ctl.sv.html index 9d9b57e7f43..14dfa692774 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu_bp_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu_bp_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -135,16 +135,16 @@ 31 : ) 32 : ( 33 : - 34 17932 : input logic clk, + 34 14934 : input logic clk, 35 2 : input logic rst_l, 36 : - 37 2772 : input logic ic_hit_f, // Icache hit, enables F address capture + 37 2314 : input logic ic_hit_f, // Icache hit, enables F address capture 38 : 39 2 : input logic [31:1] ifc_fetch_addr_f, // look up btb address - 40 1290 : input logic ifc_fetch_req_f, // F1 valid + 40 1058 : input logic ifc_fetch_req_f, // F1 valid 41 : 42 84 : input el2_br_tlu_pkt_t dec_tlu_br0_r_pkt, // BP commit update packet, includes errors - 43 46 : input logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_r, // fghr to bp + 43 42 : input logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_r, // fghr to bp 44 8 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_i0_br_index_r, // bp index 45 : 46 0 : input logic [$clog2(pt.BTB_SIZE)-1:0] dec_fa_error_index, // Fully associative btb error index @@ -156,26 +156,26 @@ 52 : 53 0 : input el2_predict_pkt_t exu_mp_pkt, // mispredict packet 54 : - 55 132 : input logic [pt.BHT_GHR_SIZE-1:0] exu_mp_eghr, // execute ghr (for patching fghr) - 56 46 : input logic [pt.BHT_GHR_SIZE-1:0] exu_mp_fghr, // Mispredict fghr + 55 120 : input logic [pt.BHT_GHR_SIZE-1:0] exu_mp_eghr, // execute ghr (for patching fghr) + 56 42 : input logic [pt.BHT_GHR_SIZE-1:0] exu_mp_fghr, // Mispredict fghr 57 8 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_mp_index, // Mispredict index 58 0 : input logic [pt.BTB_BTAG_SIZE-1:0] exu_mp_btag, // Mispredict btag 59 : - 60 204 : input logic exu_flush_final, // all flushes + 60 190 : input logic exu_flush_final, // all flushes 61 : - 62 368 : output logic ifu_bp_hit_taken_f, // btb hit, select target + 62 264 : output logic ifu_bp_hit_taken_f, // btb hit, select target 63 0 : output logic [31:1] ifu_bp_btb_target_f, // predicted target PC 64 46 : output logic ifu_bp_inst_mask_f, // tell ic which valids to kill because of a taken branch, right justified 65 : - 66 46 : output logic [pt.BHT_GHR_SIZE-1:0] ifu_bp_fghr_f, // fetch ghr + 66 42 : output logic [pt.BHT_GHR_SIZE-1:0] ifu_bp_fghr_f, // fetch ghr 67 : - 68 196 : output logic [1:0] ifu_bp_way_f, // way + 68 174 : output logic [1:0] ifu_bp_way_f, // way 69 0 : output logic [1:0] ifu_bp_ret_f, // predicted ret 70 104 : output logic [1:0] ifu_bp_hist1_f, // history counters for all 4 potential branches, bit 1, right justified - 71 44 : output logic [1:0] ifu_bp_hist0_f, // history counters for all 4 potential branches, bit 0, right justified - 72 128 : output logic [1:0] ifu_bp_pc4_f, // pc4 indication, right justified + 71 38 : output logic [1:0] ifu_bp_hist0_f, // history counters for all 4 potential branches, bit 0, right justified + 72 84 : output logic [1:0] ifu_bp_pc4_f, // pc4 indication, right justified 73 132 : output logic [1:0] ifu_bp_valid_f, // branch valid, right justified - 74 136 : output logic [11:0] ifu_bp_poffset_f, // predicted target + 74 108 : output logic [11:0] ifu_bp_poffset_f, // predicted target 75 : 76 0 : output logic [1:0] [$clog2(pt.BTB_SIZE)-1:0] ifu_bp_fa_index_f, // predicted branch index (fully associative option) 77 : @@ -205,32 +205,32 @@ 101 : localparam BHT_NO_ADDR_MATCH = ( pt.BHT_ARRAY_DEPTH <= 16 ); 102 : 103 : - 104 68 : logic exu_mp_valid_write; - 105 192 : logic exu_mp_ataken; - 106 192 : logic exu_mp_valid; // conditional branch mispredict + 104 66 : logic exu_mp_valid_write; + 105 178 : logic exu_mp_ataken; + 106 178 : logic exu_mp_valid; // conditional branch mispredict 107 88 : logic exu_mp_boffset; // branch offsett - 108 132 : logic exu_mp_pc4; // branch is a 4B inst + 108 120 : logic exu_mp_pc4; // branch is a 4B inst 109 12 : logic exu_mp_call; // branch is a call inst 110 12 : logic exu_mp_ret; // branch is a ret inst 111 12 : logic exu_mp_ja; // branch is a jump always - 112 192 : logic [1:0] exu_mp_hist; // new history - 113 84 : logic [11:0] exu_mp_tgt; // target offset + 112 178 : logic [1:0] exu_mp_hist; // new history + 113 76 : logic [11:0] exu_mp_tgt; // target offset 114 8 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_mp_addr; // BTB/BHT address - 115 356 : logic dec_tlu_br0_v_wb; // WB stage history update - 116 346 : logic [1:0] dec_tlu_br0_hist_wb; // new history + 115 252 : logic dec_tlu_br0_v_wb; // WB stage history update + 116 243 : logic [1:0] dec_tlu_br0_hist_wb; // new history 117 8 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] dec_tlu_br0_addr_wb; // addr 118 0 : logic dec_tlu_br0_error_wb; // error; invalidate bank 119 0 : logic dec_tlu_br0_start_error_wb; // error; invalidate all 4 banks in fg - 120 46 : logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_wb; + 120 42 : logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_wb; 121 : 122 0 : logic use_mp_way, use_mp_way_p1; 123 0 : logic [pt.RET_STACK_SIZE-1:0][31:0] rets_out, rets_in; 124 0 : logic [pt.RET_STACK_SIZE-1:0] rsenable; 125 : 126 : - 127 136 : logic [11:0] btb_rd_tgt_f; + 127 108 : logic [11:0] btb_rd_tgt_f; 128 16 : logic btb_rd_pc4_f, btb_rd_call_f, btb_rd_ret_f; - 129 314 : logic [1:1] bp_total_branch_offset_f; + 129 198 : logic [1:1] bp_total_branch_offset_f; 130 : 131 2 : logic [31:1] bp_btb_target_adder_f; 132 2 : logic [31:1] bp_rs_call_target_f; @@ -241,17 +241,17 @@ 137 0 : logic btb_wr_en_way0, btb_wr_en_way1; 138 : 139 : - 140 192 : logic dec_tlu_error_wb, btb_valid, dec_tlu_br0_middle_wb; + 140 178 : logic dec_tlu_error_wb, btb_valid, dec_tlu_br0_middle_wb; 141 8 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] btb_error_addr_wb; 142 0 : logic branch_error_collision_f, fetch_mp_collision_f, branch_error_collision_p1_f, fetch_mp_collision_p1_f; 143 : 144 0 : logic branch_error_bank_conflict_f; - 145 46 : logic [pt.BHT_GHR_SIZE-1:0] merged_ghr, fghr_ns, fghr; + 145 42 : logic [pt.BHT_GHR_SIZE-1:0] merged_ghr, fghr_ns, fghr; 146 0 : logic [1:0] num_valids; 147 0 : logic [LRU_SIZE-1:0] btb_lru_b0_f, btb_lru_b0_hold, btb_lru_b0_ns, - 148 232 : fetch_wrindex_dec, fetch_wrindex_p1_dec, fetch_wrlru_b0, fetch_wrlru_p1_b0, + 148 116 : fetch_wrindex_dec, fetch_wrindex_p1_dec, fetch_wrlru_b0, fetch_wrlru_p1_b0, 149 0 : mp_wrindex_dec, mp_wrlru_b0; - 150 468 : logic btb_lru_rd_f, btb_lru_rd_p1_f, lru_update_valid_f; + 150 353 : logic btb_lru_rd_f, btb_lru_rd_p1_f, lru_update_valid_f; 151 0 : logic tag_match_way0_f, tag_match_way1_f; 152 44 : logic [1:0] way_raw, bht_dir_f, btb_sel_f, wayhit_f, vwayhit_f, wayhit_p1_f; 153 4 : logic [1:0] bht_valid_f, bht_force_taken_f; @@ -270,12 +270,12 @@ 166 : 167 12 : logic [BTB_DWIDTH-1:0] btb_vbank0_rd_data_f, btb_vbank1_rd_data_f; 168 : - 169 368 : logic final_h; + 169 264 : logic final_h; 170 28 : logic btb_fg_crossing_f; - 171 132 : logic middle_of_bank; + 171 120 : logic middle_of_bank; 172 : 173 : - 174 44 : logic [1:0] bht_vbank0_rd_data_f, bht_vbank1_rd_data_f; + 174 38 : logic [1:0] bht_vbank0_rd_data_f, bht_vbank1_rd_data_f; 175 0 : logic branch_error_bank_conflict_p1_f; 176 0 : logic tag_match_way0_p1_f, tag_match_way1_p1_f; 177 : @@ -291,9 +291,9 @@ 187 0 : logic [1:0] tag_match_way0_expanded_f, tag_match_way1_expanded_f; 188 : 189 : - 190 44 : logic [1:0] bht_bank0_rd_data_f; - 191 284 : logic [1:0] bht_bank1_rd_data_f; - 192 56 : logic [1:0] bht_bank0_rd_data_p1_f; + 190 38 : logic [1:0] bht_bank0_rd_data_f; + 191 186 : logic [1:0] bht_bank1_rd_data_f; + 192 50 : logic [1:0] bht_bank0_rd_data_p1_f; 193 : genvar j, i; 194 : 195 : assign exu_mp_valid = exu_mp_pkt.misp & ~leak_one_f; // conditional branch mispredict @@ -348,7 +348,7 @@ 244 : // set on leak one, hold until next flush without leak one 245 : assign leak_one_f = (dec_tlu_flush_leak_one_wb & dec_tlu_flush_lower_wb) | (leak_one_f_d1 & ~dec_tlu_flush_lower_wb); 246 : - 247 204 : logic exu_flush_final_d1; + 247 190 : logic exu_flush_final_d1; 248 : 249 : if(!pt.BTB_FULLYA) begin : genblock1 250 : assign fetch_mp_collision_f = ( (exu_mp_btag[pt.BTB_BTAG_SIZE-1:0] == fetch_rd_tag_f[pt.BTB_BTAG_SIZE-1:0]) & @@ -561,7 +561,7 @@ 457 : ({pt.BHT_GHR_SIZE{num_valids[1:0] == 2'h1}} & {fghr[pt.BHT_GHR_SIZE-2:0], final_h}) | // PH 458 : ({pt.BHT_GHR_SIZE{num_valids[1:0] == 2'h0}} & {fghr[pt.BHT_GHR_SIZE-1:0]}) ); // PP 459 : - 460 46 : logic [pt.BHT_GHR_SIZE-1:0] exu_flush_ghr; + 460 42 : logic [pt.BHT_GHR_SIZE-1:0] exu_flush_ghr; 461 : assign exu_flush_ghr[pt.BHT_GHR_SIZE-1:0] = exu_mp_fghr[pt.BHT_GHR_SIZE-1:0]; 462 : 463 : assign fghr_ns[pt.BHT_GHR_SIZE-1:0] = ( ({pt.BHT_GHR_SIZE{exu_flush_final_d1}} & exu_flush_ghr[pt.BHT_GHR_SIZE-1:0]) | @@ -719,8 +719,8 @@ 615 : exu_mp_call | exu_mp_ja, exu_mp_ret | exu_mp_ja, btb_valid} ; 616 : 617 : assign exu_mp_valid_write = exu_mp_valid & exu_mp_ataken & ~exu_mp_pkt.valid; - 618 192 : logic [1:0] bht_wr_data0, bht_wr_data2; - 619 48 : logic [1:0] bht_wr_en0, bht_wr_en2; + 618 166 : logic [1:0] bht_wr_data0, bht_wr_data2; + 619 46 : logic [1:0] bht_wr_en0, bht_wr_en2; 620 : 621 : assign middle_of_bank = exu_mp_pc4 ^ exu_mp_boffset; 622 : assign bht_wr_en0[1:0] = {2{exu_mp_valid & ~exu_mp_call & ~exu_mp_ret & ~exu_mp_ja}} & {middle_of_bank, ~middle_of_bank}; @@ -732,9 +732,9 @@ 628 : 629 : 630 : - 631 54 : logic [pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] bht_rd_addr_f, bht_rd_addr_p1_f, bht_wr_addr0, bht_wr_addr2; + 631 50 : logic [pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] bht_rd_addr_f, bht_rd_addr_p1_f, bht_wr_addr0, bht_wr_addr2; 632 : - 633 54 : logic [pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] mp_hashed, br0_hashed_wb, bht_rd_addr_hashed_f, bht_rd_addr_hashed_p1_f; + 633 50 : logic [pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] mp_hashed, br0_hashed_wb, bht_rd_addr_hashed_f, bht_rd_addr_hashed_p1_f; 634 : el2_btb_ghr_hash #(.pt(pt)) mpghrhs (.hashin(exu_mp_addr[pt.BTB_ADDR_HI:pt.BTB_ADDR_LO]), .ghr(exu_mp_eghr[pt.BHT_GHR_SIZE-1:0]), .hash(mp_hashed[pt.BHT_ADDR_HI:pt.BHT_ADDR_LO])); 635 : el2_btb_ghr_hash #(.pt(pt)) br0ghrhs (.hashin(dec_tlu_br0_addr_wb[pt.BTB_ADDR_HI:pt.BTB_ADDR_LO]), .ghr(exu_i0_br_fghr_wb[pt.BHT_GHR_SIZE-1:0]), .hash(br0_hashed_wb[pt.BHT_ADDR_HI:pt.BHT_ADDR_LO])); 636 : el2_btb_ghr_hash #(.pt(pt)) fghrhs (.hashin(btb_rd_addr_f[pt.BTB_ADDR_HI:pt.BTB_ADDR_LO]), .ghr(fghr[pt.BHT_GHR_SIZE-1:0]), .hash(bht_rd_addr_hashed_f[pt.BHT_ADDR_HI:pt.BHT_ADDR_LO])); @@ -777,18 +777,18 @@ 673 2 : btb_bank0_rd_data_way1_p1_f[BTB_DWIDTH-1:0] = '0 ; 674 : 675 2 : for (int j=0; j< LRU_SIZE; j++) begin - 676 8966 : if (btb_rd_addr_f[pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] == (pt.BTB_ADDR_HI-pt.BTB_ADDR_LO+1)'(j)) begin + 676 5968 : if (btb_rd_addr_f[pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] == (pt.BTB_ADDR_HI-pt.BTB_ADDR_LO+1)'(j)) begin 677 : - 678 8966 : btb_bank0_rd_data_way0_f[BTB_DWIDTH-1:0] = btb_bank0_rd_data_way0_out[j]; - 679 8966 : btb_bank0_rd_data_way1_f[BTB_DWIDTH-1:0] = btb_bank0_rd_data_way1_out[j]; + 678 5968 : btb_bank0_rd_data_way0_f[BTB_DWIDTH-1:0] = btb_bank0_rd_data_way0_out[j]; + 679 5968 : btb_bank0_rd_data_way1_f[BTB_DWIDTH-1:0] = btb_bank0_rd_data_way1_out[j]; 680 : 681 : end 682 : end 683 2 : for (int j=0; j< LRU_SIZE; j++) begin - 684 8966 : if (btb_rd_addr_p1_f[pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] == (pt.BTB_ADDR_HI-pt.BTB_ADDR_LO+1)'(j)) begin + 684 5968 : if (btb_rd_addr_p1_f[pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] == (pt.BTB_ADDR_HI-pt.BTB_ADDR_LO+1)'(j)) begin 685 : - 686 8966 : btb_bank0_rd_data_way0_p1_f[BTB_DWIDTH-1:0] = btb_bank0_rd_data_way0_out[j]; - 687 8966 : btb_bank0_rd_data_way1_p1_f[BTB_DWIDTH-1:0] = btb_bank0_rd_data_way1_out[j]; + 686 5968 : btb_bank0_rd_data_way0_p1_f[BTB_DWIDTH-1:0] = btb_bank0_rd_data_way0_out[j]; + 687 5968 : btb_bank0_rd_data_way1_p1_f[BTB_DWIDTH-1:0] = btb_bank0_rd_data_way1_out[j]; 688 : 689 : end 690 : end @@ -933,7 +933,7 @@ 829 : 830 : // logic [1:0] [(pt.BHT_ARRAY_DEPTH/NUM_BHT_LOOP)-1:0][NUM_BHT_LOOP-1:0][1:0] bht_bank_wr_data ; 831 : logic [1:0] [pt.BHT_ARRAY_DEPTH-1:0] [1:0] bht_bank_rd_data_out ; - 832 4 : logic [1:0] [(pt.BHT_ARRAY_DEPTH/NUM_BHT_LOOP)-1:0] bht_bank_clken ; + 832 8 : logic [1:0] [(pt.BHT_ARRAY_DEPTH/NUM_BHT_LOOP)-1:0] bht_bank_clken ; 833 0 : logic [1:0] [(pt.BHT_ARRAY_DEPTH/NUM_BHT_LOOP)-1:0] bht_bank_clk ; 834 : // logic [1:0] [(pt.BHT_ARRAY_DEPTH/NUM_BHT_LOOP)-1:0][NUM_BHT_LOOP-1:0] bht_bank_sel ; 835 : @@ -978,12 +978,12 @@ 874 2 : bht_bank1_rd_data_f[1:0] = '0 ; 875 2 : bht_bank0_rd_data_p1_f[1:0] = '0 ; 876 2 : for (int j=0; j< pt.BHT_ARRAY_DEPTH; j++) begin - 877 8966 : if (bht_rd_addr_f[pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] == (pt.BHT_ADDR_HI-pt.BHT_ADDR_LO+1)'(j)) begin - 878 8966 : bht_bank0_rd_data_f[1:0] = bht_bank_rd_data_out[0][j]; - 879 8966 : bht_bank1_rd_data_f[1:0] = bht_bank_rd_data_out[1][j]; + 877 5968 : if (bht_rd_addr_f[pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] == (pt.BHT_ADDR_HI-pt.BHT_ADDR_LO+1)'(j)) begin + 878 5968 : bht_bank0_rd_data_f[1:0] = bht_bank_rd_data_out[0][j]; + 879 5968 : bht_bank1_rd_data_f[1:0] = bht_bank_rd_data_out[1][j]; 880 : end - 881 8966 : if (bht_rd_addr_p1_f[pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] == (pt.BHT_ADDR_HI-pt.BHT_ADDR_LO+1)'(j)) begin - 882 8966 : bht_bank0_rd_data_p1_f[1:0] = bht_bank_rd_data_out[0][j]; + 881 5968 : if (bht_rd_addr_p1_f[pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] == (pt.BHT_ADDR_HI-pt.BHT_ADDR_LO+1)'(j)) begin + 882 5968 : bht_bank0_rd_data_p1_f[1:0] = bht_bank_rd_data_out[0][j]; 883 : end 884 : end 885 : end // block: BHT_rd_mux diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu_compress_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu_compress_ctl.sv.html index 6567e0cde07..6460d6f9b99 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu_compress_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu_compress_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -132,7 +132,7 @@ 28 : ); 29 : 30 : - 31 664 : logic legal; + 31 666 : logic legal; 32 : 33 116 : logic [15:0] i; 34 : @@ -144,22 +144,22 @@ 40 : 41 0 : logic [4:0] rs2d,rdd,rdpd,rs2pd; 42 : - 43 492 : logic rdrd; + 43 494 : logic rdrd; 44 292 : logic rdrs1; 45 372 : logic rs2rs2; 46 64 : logic rdprd; 47 92 : logic rdprs1; 48 0 : logic rs2prs2; - 49 658 : logic rs2prd; - 50 666 : logic uimm9_2; + 49 660 : logic rs2prd; + 50 668 : logic uimm9_2; 51 16 : logic ulwimm6_2; 52 32 : logic ulwspimm7_2; 53 16 : logic rdeq2; 54 12 : logic rdeq1; - 55 598 : logic rs1eq2; + 55 600 : logic rs1eq2; 56 76 : logic sbroffset8_1; 57 16 : logic simm9_4; - 58 200 : logic simm5_0; + 58 202 : logic simm5_0; 59 36 : logic sjaloffset11_1; 60 0 : logic sluimm17_12; 61 80 : logic uimm5_0; diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu_ic_mem.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu_ic_mem.sv.html index 2c271ca6bd2..546260a5489 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu_ic_mem.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu_ic_mem.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -127,8 +127,8 @@ 23 : `include "el2_param.vh" 24 : ) 25 : ( - 26 17932 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 27 17932 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 26 14934 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 27 14934 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. 28 2 : input logic rst_l, // reset, active low 29 0 : input logic clk_override, // Override non-functional clock gating 30 0 : input logic dec_tlu_core_ecc_disable, // Disable ECC checking @@ -141,11 +141,11 @@ 37 0 : input logic ic_debug_wr_en, // Icache debug wr 38 0 : input logic ic_debug_tag_array, // Debug tag array 39 0 : input logic [pt.ICACHE_NUM_WAYS-1:0] ic_debug_way, // Debug way. Rd or Wr. - 40 496 : input logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. - 41 2514 : input logic ic_sel_premux_data, // Select the pre_muxed data + 40 474 : input logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. + 41 2049 : input logic ic_sel_premux_data, // Select the pre_muxed data 42 : 43 96 : input logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data, // Data to fill to the Icache. With ECC - 44 496 : output logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC + 44 474 : output logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 45 0 : output logic [70:0] ic_debug_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 46 0 : output logic [25:0] ictag_debug_rd_data,// Debug icache tag. 47 0 : input logic [70:0] ic_debug_wr_data, // Debug wr cache. @@ -192,8 +192,8 @@ 88 : `include "el2_param.vh" 89 : ) 90 : ( - 91 17932 : input logic clk, - 92 17932 : input logic active_clk, + 91 14934 : input logic clk, + 92 14934 : input logic active_clk, 93 2 : input logic rst_l, 94 0 : input logic clk_override, 95 : @@ -202,7 +202,7 @@ 98 0 : input logic ic_rd_en, // Read enable 99 : 100 96 : input logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data, // Data to fill to the Icache. With ECC - 101 496 : output logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC + 101 474 : output logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 102 0 : input logic [70:0] ic_debug_wr_data, // Debug wr cache. 103 0 : output logic [70:0] ic_debug_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 104 0 : output logic [pt.ICACHE_BANKS_WAY-1:0] ic_parerr, @@ -212,8 +212,8 @@ 108 0 : input logic ic_debug_wr_en, // Icache debug wr 109 0 : input logic ic_debug_tag_array, // Debug tag array 110 0 : input logic [pt.ICACHE_NUM_WAYS-1:0] ic_debug_way, // Debug way. Rd or Wr. - 111 496 : input logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. - 112 2514 : input logic ic_sel_premux_data, // Select the pre_muxed data + 111 474 : input logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. + 112 2049 : input logic ic_sel_premux_data, // Select the pre_muxed data 113 : 114 0 : input logic [pt.ICACHE_NUM_WAYS-1:0]ic_rd_hit, 115 0 : input el2_ic_data_ext_in_pkt_t [pt.ICACHE_NUM_WAYS-1:0][pt.ICACHE_BANKS_WAY-1:0] ic_data_ext_in_pkt, // this is being driven by the top level for soc testing/etc @@ -233,7 +233,7 @@ 129 : logic [pt.ICACHE_NUM_WAYS-1:0][pt.ICACHE_BANKS_WAY-1:0][70:0] wb_dout ; // ways x bank 130 96 : logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_sb_wr_data, ic_bank_wr_data, wb_dout_ecc_bank; 131 : logic [pt.ICACHE_NUM_WAYS-1:0] [141:0] wb_dout_way_pre; - 132 496 : logic [pt.ICACHE_NUM_WAYS-1:0] [63:0] wb_dout_way, wb_dout_way_with_premux; + 132 474 : logic [pt.ICACHE_NUM_WAYS-1:0] [63:0] wb_dout_way, wb_dout_way_with_premux; 133 0 : logic [141:0] wb_dout_ecc; 134 : 135 0 : logic [pt.ICACHE_BANKS_WAY-1:0] bank_check_en; @@ -904,8 +904,8 @@ 800 : `include "el2_param.vh" 801 : ) 802 : ( - 803 17932 : input logic clk, - 804 17932 : input logic active_clk, + 803 14934 : input logic clk, + 804 14934 : input logic active_clk, 805 2 : input logic rst_l, 806 0 : input logic clk_override, 807 0 : input logic dec_tlu_core_ecc_disable, diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu_iccm_mem.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu_iccm_mem.sv.html index 51237d3c83d..df0837599a1 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu_iccm_mem.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu_iccm_mem.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -129,8 +129,8 @@ 25 : #( 26 : `include "el2_param.vh" 27 : )( - 28 17932 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 29 17932 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 28 14934 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 29 14934 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. 30 2 : input logic rst_l, // reset, active low 31 0 : input logic clk_override, // Override non-functional clock gating 32 : @@ -159,7 +159,7 @@ 55 0 : logic [pt.ICCM_NUM_BANKS-1:0] [38:0] iccm_bank_dout, iccm_bank_dout_fn; 56 0 : logic [pt.ICCM_NUM_BANKS-1:0] [38:0] iccm_bank_wr_data; 57 8 : logic [pt.ICCM_BITS-1:1] addr_bank_inc; - 58 696 : logic [pt.ICCM_BANK_HI : 2] iccm_rd_addr_hi_q; + 58 583 : logic [pt.ICCM_BANK_HI : 2] iccm_rd_addr_hi_q; 59 40 : logic [pt.ICCM_BANK_HI : 1] iccm_rd_addr_lo_q; 60 0 : logic [63:0] iccm_rd_data_pre; 61 0 : logic [63:0] iccm_data; diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu_ifc_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu_ifc_ctl.sv.html index c9bbbe4066e..db90213ffc3 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu_ifc_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu_ifc_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -130,27 +130,27 @@ 26 : `include "el2_param.vh" 27 : ) 28 : ( - 29 17932 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 30 17932 : input logic free_l2clk, // Clock always. Through one clock header. For flops with second header built in. + 29 14934 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 30 14934 : input logic free_l2clk, // Clock always. Through one clock header. For flops with second header built in. 31 : 32 2 : input logic rst_l, // reset enable, from core pin 33 0 : input logic scan_mode, // scan 34 : - 35 2772 : input logic ic_hit_f, // Icache hit - 36 2784 : input logic ifu_ic_mb_empty, // Miss buffer empty + 35 2314 : input logic ic_hit_f, // Icache hit + 36 2320 : input logic ifu_ic_mb_empty, // Miss buffer empty 37 : - 38 2284 : input logic ifu_fb_consume1, // Aligner consumed 1 fetch buffer + 38 1836 : input logic ifu_fb_consume1, // Aligner consumed 1 fetch buffer 39 40 : input logic ifu_fb_consume2, // Aligner consumed 2 fetch buffers 40 : 41 0 : input logic dec_tlu_flush_noredir_wb, // Don't fetch on flush - 42 204 : input logic exu_flush_final, // FLush + 42 190 : input logic exu_flush_final, // FLush 43 8 : input logic [31:1] exu_flush_path_final, // Flush path 44 : - 45 368 : input logic ifu_bp_hit_taken_f, // btb hit, select the target path + 45 264 : input logic ifu_bp_hit_taken_f, // btb hit, select the target path 46 0 : input logic [31:1] ifu_bp_btb_target_f, // predicted target PC 47 : 48 0 : input logic ic_dma_active, // IC DMA active, stop fetching - 49 1224 : input logic ic_write_stall, // IC is writing, stop fetching + 49 992 : input logic ic_write_stall, // IC is writing, stop fetching 50 0 : input logic dma_iccm_stall_any, // force a stall in the fetch pipe for DMA ICCM access 51 : 52 0 : input logic [31:0] dec_tlu_mrac_ff , // side_effect and cacheable for each region @@ -158,17 +158,17 @@ 54 2 : output logic [31:1] ifc_fetch_addr_f, // fetch addr F 55 2 : output logic [31:1] ifc_fetch_addr_bf, // fetch addr BF 56 : - 57 1290 : output logic ifc_fetch_req_f, // fetch request valid F + 57 1058 : output logic ifc_fetch_req_f, // fetch request valid F 58 : - 59 170 : output logic ifu_pmu_fetch_stall, // pmu event measuring fetch stall + 59 158 : output logic ifu_pmu_fetch_stall, // pmu event measuring fetch stall 60 : 61 2 : output logic ifc_fetch_uncacheable_bf, // The fetch request is uncacheable space. BF stage - 62 1290 : output logic ifc_fetch_req_bf, // Fetch request. Comes with the address. BF stage + 62 1058 : output logic ifc_fetch_req_bf, // Fetch request. Comes with the address. BF stage 63 2 : output logic ifc_fetch_req_bf_raw, // Fetch request without some qualifications. Used for clock-gating. BF stage 64 0 : output logic ifc_iccm_access_bf, // This request is to the ICCM. Do not generate misses to the bus. 65 0 : output logic ifc_region_acc_fault_bf, // Access fault. in ICCM region but offset is outside defined ICCM. 66 : - 67 206 : output logic ifc_dma_access_ok // fetch is not accessing the ICCM, DMA can proceed + 67 192 : output logic ifc_dma_access_ok // fetch is not accessing the ICCM, DMA can proceed 68 : 69 : 70 : ); @@ -179,11 +179,11 @@ 75 : 76 64 : logic fb_full_f_ns, fb_full_f; 77 4 : logic fb_right, fb_right2, fb_left, wfm, idle; - 78 2460 : logic sel_last_addr_bf, sel_next_addr_bf; - 79 4030 : logic miss_f, miss_a; + 78 2106 : logic sel_last_addr_bf, sel_next_addr_bf; + 79 3338 : logic miss_f, miss_a; 80 0 : logic flush_fb, dma_iccm_stall_any_f; 81 4 : logic mb_empty_mod, goto_idle, leave_idle; - 82 1282 : logic fetch_bf_en; + 82 1050 : logic fetch_bf_en; 83 92 : logic line_wrap; 84 40 : logic fetch_addr_next_1; 85 : diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu_mem_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu_mem_ctl.sv.html index b31bfca0e6a..a1f454e1e8b 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu_mem_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_ifu_mem_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -79,11 +79,11 @@ Branch -- 53.6% + + 50.0% - 59 + 55 110 @@ -131,40 +131,40 @@ 27 : `include "el2_param.vh" 28 : ) 29 : ( - 30 17932 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 31 17932 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. - 32 17932 : input logic free_l2clk, // Clock always. Through one clock header. For flops with second header built in. + 30 14934 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 31 14934 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 32 14934 : input logic free_l2clk, // Clock always. Through one clock header. For flops with second header built in. 33 2 : input logic rst_l, // reset, active low 34 : - 35 204 : input logic exu_flush_final, // Flush from the pipeline., includes flush lower + 35 190 : input logic exu_flush_final, // Flush from the pipeline., includes flush lower 36 4 : input logic dec_tlu_flush_lower_wb, // Flush lower from the pipeline. 37 0 : input logic dec_tlu_flush_err_wb, // Flush from the pipeline due to perr. - 38 2764 : input logic dec_tlu_i0_commit_cmt, // committed i0 instruction + 38 2304 : input logic dec_tlu_i0_commit_cmt, // committed i0 instruction 39 0 : input logic dec_tlu_force_halt, // force halt. 40 : 41 2 : input logic [31:1] ifc_fetch_addr_bf, // Fetch Address byte aligned always. F1 stage. 42 2 : input logic ifc_fetch_uncacheable_bf, // The fetch request is uncacheable space. F1 stage - 43 1290 : input logic ifc_fetch_req_bf, // Fetch request. Comes with the address. F1 stage + 43 1058 : input logic ifc_fetch_req_bf, // Fetch request. Comes with the address. F1 stage 44 2 : input logic ifc_fetch_req_bf_raw, // Fetch request without some qualifications. Used for clock-gating. F1 stage 45 0 : input logic ifc_iccm_access_bf, // This request is to the ICCM. Do not generate misses to the bus. 46 0 : input logic ifc_region_acc_fault_bf, // Access fault. in ICCM region but offset is outside defined ICCM. - 47 206 : input logic ifc_dma_access_ok, // It is OK to give dma access to the ICCM. (ICCM is not busy this cycle). + 47 192 : input logic ifc_dma_access_ok, // It is OK to give dma access to the ICCM. (ICCM is not busy this cycle). 48 0 : input logic dec_tlu_fence_i_wb, // Fence.i instruction is committing. Clear all Icache valids. - 49 368 : input logic ifu_bp_hit_taken_f, // Branch is predicted taken. Kill the fetch next cycle. + 49 264 : input logic ifu_bp_hit_taken_f, // Branch is predicted taken. Kill the fetch next cycle. 50 : 51 46 : input logic ifu_bp_inst_mask_f, // tell ic which valids to kill because of a taken branch, right justified 52 : - 53 2780 : output logic ifu_miss_state_idle, // No icache misses are outstanding. - 54 2784 : output logic ifu_ic_mb_empty, // Continue with normal fetching. This does not mean that miss is finished. + 53 2318 : output logic ifu_miss_state_idle, // No icache misses are outstanding. + 54 2320 : output logic ifu_ic_mb_empty, // Continue with normal fetching. This does not mean that miss is finished. 55 0 : output logic ic_dma_active , // In the middle of servicing dma request to ICCM. Do not make any new requests. - 56 1224 : output logic ic_write_stall, // Stall fetch the cycle we are writing the cache. + 56 992 : output logic ic_write_stall, // Stall fetch the cycle we are writing the cache. 57 : 58 : /// PMU signals - 59 2780 : output logic ifu_pmu_ic_miss, // IC miss event + 59 2318 : output logic ifu_pmu_ic_miss, // IC miss event 60 0 : output logic ifu_pmu_ic_hit, // IC hit event 61 0 : output logic ifu_pmu_bus_error, // Bus error event - 62 2776 : output logic ifu_pmu_bus_busy, // Bus busy event - 63 5554 : output logic ifu_pmu_bus_trxn, // Bus transaction + 62 2316 : output logic ifu_pmu_bus_busy, // Bus busy event + 63 4633 : output logic ifu_pmu_bus_trxn, // Bus transaction 64 : 65 : //-------------------------- IFU AXI signals-------------------------- 66 : // AXI Write Channels @@ -188,9 +188,9 @@ 84 0 : output logic ifu_axi_bready, 85 : 86 : // AXI Read Channels - 87 2778 : output logic ifu_axi_arvalid, - 88 5556 : input logic ifu_axi_arready, - 89 1724 : output logic [pt.IFU_BUS_TAG-1:0] ifu_axi_arid, + 87 2317 : output logic ifu_axi_arvalid, + 88 4635 : input logic ifu_axi_arready, + 89 1378 : output logic [pt.IFU_BUS_TAG-1:0] ifu_axi_arid, 90 36 : output logic [31:0] ifu_axi_araddr, 91 2 : output logic [3:0] ifu_axi_arregion, 92 0 : output logic [7:0] ifu_axi_arlen, @@ -201,10 +201,10 @@ 97 2 : output logic [2:0] ifu_axi_arprot, 98 0 : output logic [3:0] ifu_axi_arqos, 99 : - 100 5554 : input logic ifu_axi_rvalid, + 100 4633 : input logic ifu_axi_rvalid, 101 2 : output logic ifu_axi_rready, - 102 960 : input logic [pt.IFU_BUS_TAG-1:0] ifu_axi_rid, - 103 200 : input logic [63:0] ifu_axi_rdata, + 102 729 : input logic [pt.IFU_BUS_TAG-1:0] ifu_axi_rid, + 103 188 : input logic [63:0] ifu_axi_rdata, 104 0 : input logic [1:0] ifu_axi_rresp, 105 : 106 2 : input logic ifu_bus_clk_en, @@ -221,7 +221,7 @@ 117 0 : output logic iccm_dma_rvalid, // Data read from iccm is valid 118 0 : output logic [63:0] iccm_dma_rdata, // dma data read from iccm 119 0 : output logic [2:0] iccm_dma_rtag, // Tag of the DMA req - 120 202 : output logic iccm_ready, // iccm ready to accept new command. + 120 188 : output logic iccm_ready, // iccm ready to accept new command. 121 : 122 : 123 : // I$ & ITAG Ports @@ -230,7 +230,7 @@ 126 0 : output logic ic_rd_en, // Icache read enable. 127 : 128 96 : output logic [pt.ICACHE_BANKS_WAY-1:0] [70:0] ic_wr_data, // Data to fill to the Icache. With ECC - 129 496 : input logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC + 129 474 : input logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 130 0 : input logic [70:0] ic_debug_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 131 0 : input logic [25:0] ictag_debug_rd_data, // Debug icache tag. 132 0 : output logic [70:0] ic_debug_wr_data, // Debug wr cache. @@ -261,9 +261,9 @@ 157 : 158 0 : input logic [63:0] iccm_rd_data, // Data read from ICCM. 159 0 : input logic [77:0] iccm_rd_data_ecc, // Data + ECC read from ICCM. - 160 2712 : input logic [1:0] ifu_fetch_val, + 160 2254 : input logic [1:0] ifu_fetch_val, 161 : // IFU control signals - 162 2772 : output logic ic_hit_f, // Hit in Icache(if Icache access) or ICCM access( ICCM always has ic_hit_f) + 162 2314 : output logic ic_hit_f, // Hit in Icache(if Icache access) or ICCM access( ICCM always has ic_hit_f) 163 0 : output logic [1:0] ic_access_fault_f, // Access fault (bus error or ICCM access in region but out of offset range). 164 0 : output logic [1:0] ic_access_fault_type_f, // Access fault types 165 0 : output logic iccm_rd_ecc_single_err, // This fetch has a single ICCM ECC error. @@ -274,10 +274,10 @@ 170 : 171 0 : output logic ifu_async_error_start, // Or of the sb iccm, and all the icache errors sent to aligner to stop 172 0 : output logic iccm_dma_sb_error, // Single Bit ECC error from a DMA access - 173 2712 : output logic [1:0] ic_fetch_val_f, // valid bytes for fetch. To the Aligner. - 174 496 : output logic [31:0] ic_data_f, // Data read from Icache or ICCM. To the Aligner. - 175 496 : output logic [63:0] ic_premux_data, // Premuxed data to be muxed with Icache data - 176 2514 : output logic ic_sel_premux_data, // Select premux data. + 173 2254 : output logic [1:0] ic_fetch_val_f, // valid bytes for fetch. To the Aligner. + 174 500 : output logic [31:0] ic_data_f, // Data read from Icache or ICCM. To the Aligner. + 175 474 : output logic [63:0] ic_premux_data, // Premuxed data to be muxed with Icache data + 176 2049 : output logic ic_sel_premux_data, // Select premux data. 177 : 178 : ///// Debug 179 0 : input el2_cache_debug_pkt_t dec_tlu_ic_diag_pkt , // Icache/tag debug read/write packet @@ -304,8 +304,8 @@ 200 : 201 : 202 : - 203 5554 : logic bus_ifu_wr_en ; - 204 5552 : logic bus_ifu_wr_en_ff ; + 203 4633 : logic bus_ifu_wr_en ; + 204 4631 : logic bus_ifu_wr_en_ff ; 205 0 : logic bus_ifu_wr_en_ff_q ; 206 0 : logic bus_ifu_wr_en_ff_wo_err ; 207 0 : logic [pt.ICACHE_NUM_WAYS-1:0] bus_ic_wr_en ; @@ -333,36 +333,36 @@ 229 0 : logic scnd_miss_index_match ; 230 : 231 : - 232 202 : logic ifc_dma_access_q_ok; + 232 188 : logic ifc_dma_access_q_ok; 233 0 : logic ifc_iccm_access_f ; 234 0 : logic ifc_region_acc_fault_f; 235 0 : logic ifc_region_acc_fault_final_f; 236 0 : logic [1:0] ifc_bus_acc_fault_f; - 237 2780 : logic ic_act_miss_f; + 237 2318 : logic ic_act_miss_f; 238 0 : logic ic_miss_under_miss_f; - 239 160 : logic ic_ignore_2nd_miss_f; + 239 146 : logic ic_ignore_2nd_miss_f; 240 0 : logic ic_act_hit_f; - 241 2778 : logic miss_pending; + 241 2316 : logic miss_pending; 242 2 : logic [31:1] imb_in , imb_ff ; 243 2 : logic [31:pt.ICACHE_BEAT_ADDR_HI+1] miss_addr_in , miss_addr ; 244 172 : logic miss_wrap_f ; - 245 204 : logic flush_final_f; - 246 1474 : logic ifc_fetch_req_f; - 247 1290 : logic ifc_fetch_req_f_raw; - 248 2772 : logic fetch_req_f_qual ; - 249 1290 : logic ifc_fetch_req_qual_bf ; + 245 190 : logic flush_final_f; + 246 1228 : logic ifc_fetch_req_f; + 247 1058 : logic ifc_fetch_req_f_raw; + 248 2314 : logic fetch_req_f_qual ; + 249 1058 : logic ifc_fetch_req_qual_bf ; 250 0 : logic [pt.ICACHE_NUM_WAYS-1:0] replace_way_mb_any; - 251 2776 : logic last_beat; - 252 4012 : logic reset_beat_cnt ; - 253 1696 : logic [pt.ICACHE_BEAT_ADDR_HI:3] ic_req_addr_bits_hi_3 ; - 254 2468 : logic [pt.ICACHE_BEAT_ADDR_HI:3] ic_wr_addr_bits_hi_3 ; + 251 2315 : logic last_beat; + 252 3319 : logic reset_beat_cnt ; + 253 1351 : logic [pt.ICACHE_BEAT_ADDR_HI:3] ic_req_addr_bits_hi_3 ; + 254 2005 : logic [pt.ICACHE_BEAT_ADDR_HI:3] ic_wr_addr_bits_hi_3 ; 255 2 : logic [31:1] ifu_fetch_addr_int_f ; 256 2 : logic [31:1] ifu_ic_rw_int_addr ; - 257 2778 : logic crit_wd_byp_ok_ff ; - 258 2772 : logic ic_crit_wd_rdy_new_ff; + 257 2317 : logic crit_wd_byp_ok_ff ; + 258 2314 : logic ic_crit_wd_rdy_new_ff; 259 256 : logic [79:0] ic_byp_data_only_pre_new; - 260 212 : logic [79:0] ic_byp_data_only_new; - 261 2772 : logic ic_byp_hit_f ; + 260 208 : logic [79:0] ic_byp_data_only_new; + 261 2314 : logic ic_byp_hit_f ; 262 2 : logic ic_valid ; 263 2 : logic ic_valid_ff; 264 0 : logic reset_all_tags; @@ -385,75 +385,75 @@ 281 0 : logic sel_mb_addr ; 282 0 : logic sel_mb_addr_ff ; 283 0 : logic sel_mb_status_addr ; - 284 496 : logic [63:0] ic_final_data; + 284 474 : logic [63:0] ic_final_data; 285 : 286 0 : logic [pt.ICACHE_STATUS_BITS-1:0] way_status_new_ff ; 287 0 : logic way_status_wr_en_ff ; 288 0 : logic [pt.ICACHE_TAG_DEPTH-1:0][pt.ICACHE_STATUS_BITS-1:0] way_status_out ; 289 0 : logic [1:0] ic_debug_way_enc; 290 : - 291 958 : logic [pt.IFU_BUS_TAG-1:0] ifu_bus_rid_ff; + 291 728 : logic [pt.IFU_BUS_TAG-1:0] ifu_bus_rid_ff; 292 : - 293 1474 : logic fetch_req_icache_f; + 293 1228 : logic fetch_req_icache_f; 294 0 : logic fetch_req_iccm_f; 295 0 : logic ic_iccm_hit_f; 296 2 : logic fetch_uncacheable_ff; 297 0 : logic way_status_wr_en; - 298 2514 : logic sel_byp_data; - 299 2516 : logic sel_ic_data; + 298 2049 : logic sel_byp_data; + 299 2050 : logic sel_ic_data; 300 0 : logic sel_iccm_data; 301 0 : logic ic_rd_parity_final_err; - 302 2780 : logic ic_act_miss_f_delayed; + 302 2318 : logic ic_act_miss_f_delayed; 303 0 : logic bus_ifu_wr_data_error; 304 0 : logic bus_ifu_wr_data_error_ff; 305 0 : logic way_status_wr_en_w_debug; 306 0 : logic ic_debug_tag_val_rd_out; - 307 2780 : logic ifu_pmu_ic_miss_in; + 307 2318 : logic ifu_pmu_ic_miss_in; 308 0 : logic ifu_pmu_ic_hit_in; 309 0 : logic ifu_pmu_bus_error_in; - 310 5556 : logic ifu_pmu_bus_trxn_in; - 311 2776 : logic ifu_pmu_bus_busy_in; + 310 4634 : logic ifu_pmu_bus_trxn_in; + 311 2316 : logic ifu_pmu_bus_busy_in; 312 0 : logic ic_debug_ict_array_sel_in; 313 0 : logic ic_debug_ict_array_sel_ff; 314 0 : logic debug_data_clken; - 315 2776 : logic last_data_recieved_in ; - 316 2776 : logic last_data_recieved_ff ; + 315 2315 : logic last_data_recieved_in ; + 316 2314 : logic last_data_recieved_ff ; 317 : - 318 5554 : logic ifu_bus_rvalid ; - 319 5552 : logic ifu_bus_rvalid_ff ; - 320 5552 : logic ifu_bus_rvalid_unq_ff ; - 321 5556 : logic ifu_bus_arready_unq ; - 322 5554 : logic ifu_bus_arready_unq_ff ; - 323 2778 : logic ifu_bus_arvalid ; - 324 2778 : logic ifu_bus_arvalid_ff ; - 325 5556 : logic ifu_bus_arready ; - 326 5554 : logic ifu_bus_arready_ff ; - 327 200 : logic [63:0] ifu_bus_rdata_ff ; + 318 4633 : logic ifu_bus_rvalid ; + 319 4631 : logic ifu_bus_rvalid_ff ; + 320 4631 : logic ifu_bus_rvalid_unq_ff ; + 321 4635 : logic ifu_bus_arready_unq ; + 322 4633 : logic ifu_bus_arready_unq_ff ; + 323 2317 : logic ifu_bus_arvalid ; + 324 2317 : logic ifu_bus_arvalid_ff ; + 325 4635 : logic ifu_bus_arready ; + 326 4633 : logic ifu_bus_arready_ff ; + 327 188 : logic [63:0] ifu_bus_rdata_ff ; 328 0 : logic [1:0] ifu_bus_rresp_ff ; - 329 5554 : logic ifu_bus_rsp_valid ; + 329 4633 : logic ifu_bus_rsp_valid ; 330 2 : logic ifu_bus_rsp_ready ; - 331 960 : logic [pt.IFU_BUS_TAG-1:0] ifu_bus_rsp_tag; - 332 200 : logic [63:0] ifu_bus_rsp_rdata; + 331 729 : logic [pt.IFU_BUS_TAG-1:0] ifu_bus_rsp_tag; + 332 188 : logic [63:0] ifu_bus_rsp_rdata; 333 0 : logic [1:0] ifu_bus_rsp_opc; 334 : - 335 364 : logic [pt.ICACHE_NUM_BEATS-1:0] write_fill_data; + 335 348 : logic [pt.ICACHE_NUM_BEATS-1:0] write_fill_data; 336 0 : logic [pt.ICACHE_NUM_BEATS-1:0] wr_data_c1_clk; - 337 364 : logic [pt.ICACHE_NUM_BEATS-1:0] ic_miss_buff_data_valid_in; - 338 364 : logic [pt.ICACHE_NUM_BEATS-1:0] ic_miss_buff_data_valid; + 337 348 : logic [pt.ICACHE_NUM_BEATS-1:0] ic_miss_buff_data_valid_in; + 338 348 : logic [pt.ICACHE_NUM_BEATS-1:0] ic_miss_buff_data_valid; 339 0 : logic [pt.ICACHE_NUM_BEATS-1:0] ic_miss_buff_data_error_in; 340 0 : logic [pt.ICACHE_NUM_BEATS-1:0] ic_miss_buff_data_error; 341 40 : logic [pt.ICACHE_BEAT_ADDR_HI:1] byp_fetch_index; - 342 452 : logic [pt.ICACHE_BEAT_ADDR_HI:2] byp_fetch_index_0; + 342 336 : logic [pt.ICACHE_BEAT_ADDR_HI:2] byp_fetch_index_0; 343 2 : logic [pt.ICACHE_BEAT_ADDR_HI:2] byp_fetch_index_1; - 344 472 : logic [pt.ICACHE_BEAT_ADDR_HI:3] byp_fetch_index_inc; - 345 472 : logic [pt.ICACHE_BEAT_ADDR_HI:2] byp_fetch_index_inc_0; + 344 357 : logic [pt.ICACHE_BEAT_ADDR_HI:3] byp_fetch_index_inc; + 345 357 : logic [pt.ICACHE_BEAT_ADDR_HI:2] byp_fetch_index_inc_0; 346 2 : logic [pt.ICACHE_BEAT_ADDR_HI:2] byp_fetch_index_inc_1; - 347 4024 : logic miss_buff_hit_unq_f ; + 347 3333 : logic miss_buff_hit_unq_f ; 348 0 : logic stream_hit_f ; 349 0 : logic stream_miss_f ; 350 0 : logic stream_eol_f ; - 351 2772 : logic crit_byp_hit_f ; - 352 958 : logic [pt.IFU_BUS_TAG-1:0] other_tag ; + 351 2314 : logic crit_byp_hit_f ; + 352 728 : logic [pt.IFU_BUS_TAG-1:0] other_tag ; 353 : logic [(2*pt.ICACHE_NUM_BEATS)-1:0] [31:0] ic_miss_buff_data; 354 196 : logic [63:0] ic_miss_buff_half; 355 0 : logic scnd_miss_req, scnd_miss_req_q; @@ -467,7 +467,7 @@ 363 0 : logic iccm_rd_ecc_single_err_ff ; 364 0 : logic iccm_error_start; // start the error fsm 365 0 : logic perr_state_en; - 366 6356 : logic miss_state_en; + 366 5213 : logic miss_state_en; 367 : 368 0 : logic busclk; 369 0 : logic busclk_force; @@ -475,46 +475,46 @@ 371 2 : logic bus_ifu_bus_clk_en_ff; 372 2 : logic bus_ifu_bus_clk_en ; 373 : - 374 2778 : logic ifc_bus_ic_req_ff_in; - 375 2778 : logic ifu_bus_cmd_valid ; - 376 5556 : logic ifu_bus_cmd_ready ; + 374 2317 : logic ifc_bus_ic_req_ff_in; + 375 2317 : logic ifu_bus_cmd_valid ; + 376 4635 : logic ifu_bus_cmd_ready ; 377 : - 378 2776 : logic bus_inc_data_beat_cnt ; - 379 4012 : logic bus_reset_data_beat_cnt ; - 380 6790 : logic bus_hold_data_beat_cnt ; + 378 2316 : logic bus_inc_data_beat_cnt ; + 379 3319 : logic bus_reset_data_beat_cnt ; + 380 5637 : logic bus_hold_data_beat_cnt ; 381 : - 382 5556 : logic bus_inc_cmd_beat_cnt ; + 382 4634 : logic bus_inc_cmd_beat_cnt ; 383 0 : logic bus_reset_cmd_beat_cnt_0 ; - 384 2780 : logic bus_reset_cmd_beat_cnt_secondlast ; - 385 5558 : logic bus_hold_cmd_beat_cnt ; + 384 2318 : logic bus_reset_cmd_beat_cnt_secondlast ; + 385 4636 : logic bus_hold_cmd_beat_cnt ; 386 : 387 0 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_new_data_beat_count ; 388 0 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_data_beat_count ; 389 : - 390 2778 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_new_cmd_beat_count ; - 391 2778 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_cmd_beat_count ; + 390 2317 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_new_cmd_beat_count ; + 391 2317 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_cmd_beat_count ; 392 : 393 : - 394 1696 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_new_rd_addr_count; - 395 1696 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_rd_addr_count; + 394 1351 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_new_rd_addr_count; + 395 1351 : logic [pt.ICACHE_BEAT_BITS-1:0] bus_rd_addr_count; 396 : 397 : - 398 5556 : logic bus_cmd_sent ; - 399 2776 : logic bus_last_data_beat ; + 398 4634 : logic bus_cmd_sent ; + 399 2315 : logic bus_last_data_beat ; 400 : 401 : 402 0 : logic [pt.ICACHE_NUM_WAYS-1:0] bus_wren ; 403 : 404 0 : logic [pt.ICACHE_NUM_WAYS-1:0] bus_wren_last ; 405 0 : logic [pt.ICACHE_NUM_WAYS-1:0] wren_reset_miss ; - 406 206 : logic ifc_dma_access_ok_d; - 407 206 : logic ifc_dma_access_ok_prev; + 406 192 : logic ifc_dma_access_ok_d; + 407 192 : logic ifc_dma_access_ok_prev; 408 : - 409 2780 : logic bus_cmd_req_in ; - 410 2780 : logic bus_cmd_req_hold ; + 409 2318 : logic bus_cmd_req_in ; + 410 2318 : logic bus_cmd_req_hold ; 411 : - 412 1320 : logic second_half_available ; - 413 1320 : logic write_ic_16_bytes ; + 412 1090 : logic second_half_available ; + 413 1090 : logic write_ic_16_bytes ; 414 : 415 0 : logic ifc_region_acc_fault_final_bf; 416 0 : logic ifc_region_acc_fault_memory_bf; @@ -523,21 +523,21 @@ 419 : 420 0 : logic iccm_correct_ecc; 421 0 : logic dma_sb_err_state, dma_sb_err_state_ff; - 422 2016 : logic two_byte_instr; + 422 1547 : logic two_byte_instr; 423 : 424 : typedef enum logic [2:0] {IDLE=3'b000, CRIT_BYP_OK=3'b001, HIT_U_MISS=3'b010, MISS_WAIT=3'b011,CRIT_WRD_RDY=3'b100,SCND_MISS=3'b101,STREAM=3'b110 , STALL_SCND_MISS=3'b111} miss_state_t; - 425 4 : miss_state_t miss_state, miss_nxtstate; + 425 2 : miss_state_t miss_state, miss_nxtstate; 426 : 427 : typedef enum logic [1:0] {ERR_STOP_IDLE=2'b00, ERR_FETCH1=2'b01 , ERR_FETCH2=2'b10 , ERR_STOP_FETCH=2'b11} err_stop_state_t; 428 0 : err_stop_state_t err_stop_state, err_stop_nxtstate; 429 0 : logic err_stop_state_en ; 430 0 : logic err_stop_fetch ; 431 : - 432 2774 : logic ic_crit_wd_rdy; // Critical fetch is ready to be bypassed. + 432 2315 : logic ic_crit_wd_rdy; // Critical fetch is ready to be bypassed. 433 : - 434 312 : logic ifu_bp_hit_taken_q_f; - 435 5554 : logic ifu_bus_rvalid_unq; - 436 5556 : logic bus_cmd_beat_en; + 434 208 : logic ifu_bp_hit_taken_q_f; + 435 4633 : logic ifu_bus_rvalid_unq; + 436 4634 : logic bus_cmd_beat_en; 437 : 438 : 439 : // ---- Clock gating section ----- @@ -587,21 +587,21 @@ 483 2 : miss_nxtstate = IDLE; 484 2 : miss_state_en = 1'b0; 485 2 : case (miss_state) - 486 2022 : IDLE: begin : idle - 487 2022 : miss_nxtstate = (ic_act_miss_f & ~exu_flush_final) ? CRIT_BYP_OK : HIT_U_MISS ; - 488 2022 : miss_state_en = ic_act_miss_f & ~dec_tlu_force_halt ; + 486 1328 : IDLE: begin : idle + 487 1328 : miss_nxtstate = (ic_act_miss_f & ~exu_flush_final) ? CRIT_BYP_OK : HIT_U_MISS ; + 488 1328 : miss_state_en = ic_act_miss_f & ~dec_tlu_force_halt ; 489 : end - 490 4436 : CRIT_BYP_OK: begin : crit_byp_ok - 491 4436 : miss_nxtstate = (dec_tlu_force_halt ) ? IDLE : - 492 4436 : ( ic_byp_hit_f & (last_data_recieved_ff | (bus_ifu_wr_en_ff & last_beat)) & uncacheable_miss_ff) ? IDLE : - 493 4436 : ( ic_byp_hit_f & ~last_data_recieved_ff & uncacheable_miss_ff) ? MISS_WAIT : - 494 4436 : (~ic_byp_hit_f & ~exu_flush_final & (bus_ifu_wr_en_ff & last_beat) & uncacheable_miss_ff) ? CRIT_WRD_RDY : - 495 4436 : ( (bus_ifu_wr_en_ff & last_beat) & ~uncacheable_miss_ff) ? IDLE : - 496 4436 : ( ic_byp_hit_f & ~exu_flush_final & ~(bus_ifu_wr_en_ff & last_beat) & ~ifu_bp_hit_taken_q_f & ~uncacheable_miss_ff) ? STREAM : - 497 4436 : ( bus_ifu_wr_en_ff & ~exu_flush_final & ~(bus_ifu_wr_en_ff & last_beat) & ~ifu_bp_hit_taken_q_f & ~uncacheable_miss_ff) ? STREAM : - 498 4436 : (~ic_byp_hit_f & ~exu_flush_final & (bus_ifu_wr_en_ff & last_beat) & ~uncacheable_miss_ff) ? IDLE : - 499 4436 : ( (exu_flush_final | ifu_bp_hit_taken_q_f) & ~(bus_ifu_wr_en_ff & last_beat) ) ? HIT_U_MISS : IDLE; - 500 4436 : miss_state_en = dec_tlu_force_halt | exu_flush_final | ic_byp_hit_f | ifu_bp_hit_taken_q_f | (bus_ifu_wr_en_ff & last_beat) | (bus_ifu_wr_en_ff & ~uncacheable_miss_ff) ; + 490 3064 : CRIT_BYP_OK: begin : crit_byp_ok + 491 3064 : miss_nxtstate = (dec_tlu_force_halt ) ? IDLE : + 492 3064 : ( ic_byp_hit_f & (last_data_recieved_ff | (bus_ifu_wr_en_ff & last_beat)) & uncacheable_miss_ff) ? IDLE : + 493 3064 : ( ic_byp_hit_f & ~last_data_recieved_ff & uncacheable_miss_ff) ? MISS_WAIT : + 494 3064 : (~ic_byp_hit_f & ~exu_flush_final & (bus_ifu_wr_en_ff & last_beat) & uncacheable_miss_ff) ? CRIT_WRD_RDY : + 495 3064 : ( (bus_ifu_wr_en_ff & last_beat) & ~uncacheable_miss_ff) ? IDLE : + 496 3064 : ( ic_byp_hit_f & ~exu_flush_final & ~(bus_ifu_wr_en_ff & last_beat) & ~ifu_bp_hit_taken_q_f & ~uncacheable_miss_ff) ? STREAM : + 497 3064 : ( bus_ifu_wr_en_ff & ~exu_flush_final & ~(bus_ifu_wr_en_ff & last_beat) & ~ifu_bp_hit_taken_q_f & ~uncacheable_miss_ff) ? STREAM : + 498 3064 : (~ic_byp_hit_f & ~exu_flush_final & (bus_ifu_wr_en_ff & last_beat) & ~uncacheable_miss_ff) ? IDLE : + 499 3064 : ( (exu_flush_final | ifu_bp_hit_taken_q_f) & ~(bus_ifu_wr_en_ff & last_beat) ) ? HIT_U_MISS : IDLE; + 500 3064 : miss_state_en = dec_tlu_force_halt | exu_flush_final | ic_byp_hit_f | ifu_bp_hit_taken_q_f | (bus_ifu_wr_en_ff & last_beat) | (bus_ifu_wr_en_ff & ~uncacheable_miss_ff) ; 501 : end 502 0 : CRIT_WRD_RDY: begin : crit_wrd_rdy 503 0 : miss_nxtstate = IDLE ; @@ -611,26 +611,26 @@ 507 0 : miss_nxtstate = ((exu_flush_final | ifu_bp_hit_taken_q_f | stream_eol_f ) & ~(bus_ifu_wr_en_ff & last_beat) & ~dec_tlu_force_halt) ? HIT_U_MISS : IDLE ; 508 0 : miss_state_en = exu_flush_final | ifu_bp_hit_taken_q_f | stream_eol_f | (bus_ifu_wr_en_ff & last_beat) | dec_tlu_force_halt ; 509 : end - 510 2422 : MISS_WAIT: begin : miss_wait - 511 2422 : miss_nxtstate = (exu_flush_final & ~(bus_ifu_wr_en_ff & last_beat) & ~dec_tlu_force_halt) ? HIT_U_MISS : IDLE ; - 512 2422 : miss_state_en = exu_flush_final | (bus_ifu_wr_en_ff & last_beat) | dec_tlu_force_halt ; + 510 1510 : MISS_WAIT: begin : miss_wait + 511 1510 : miss_nxtstate = (exu_flush_final & ~(bus_ifu_wr_en_ff & last_beat) & ~dec_tlu_force_halt) ? HIT_U_MISS : IDLE ; + 512 1510 : miss_state_en = exu_flush_final | (bus_ifu_wr_en_ff & last_beat) | dec_tlu_force_halt ; 513 : end - 514 80 : HIT_U_MISS: begin : hit_u_miss - 515 80 : miss_nxtstate = ic_miss_under_miss_f & ~(bus_ifu_wr_en_ff & last_beat) & ~dec_tlu_force_halt ? SCND_MISS : - 516 80 : ic_ignore_2nd_miss_f & ~(bus_ifu_wr_en_ff & last_beat) & ~dec_tlu_force_halt ? STALL_SCND_MISS : IDLE ; - 517 80 : miss_state_en = (bus_ifu_wr_en_ff & last_beat) | ic_miss_under_miss_f | ic_ignore_2nd_miss_f | dec_tlu_force_halt; + 514 66 : HIT_U_MISS: begin : hit_u_miss + 515 66 : miss_nxtstate = ic_miss_under_miss_f & ~(bus_ifu_wr_en_ff & last_beat) & ~dec_tlu_force_halt ? SCND_MISS : + 516 66 : ic_ignore_2nd_miss_f & ~(bus_ifu_wr_en_ff & last_beat) & ~dec_tlu_force_halt ? STALL_SCND_MISS : IDLE ; + 517 66 : miss_state_en = (bus_ifu_wr_en_ff & last_beat) | ic_miss_under_miss_f | ic_ignore_2nd_miss_f | dec_tlu_force_halt; 518 : end 519 0 : SCND_MISS: begin : scnd_miss 520 0 : miss_nxtstate = dec_tlu_force_halt ? IDLE : 521 0 : exu_flush_final ? ((bus_ifu_wr_en_ff & last_beat) ? IDLE : HIT_U_MISS) : CRIT_BYP_OK; 522 0 : miss_state_en = (bus_ifu_wr_en_ff & last_beat) | exu_flush_final | dec_tlu_force_halt; 523 : end - 524 6 : STALL_SCND_MISS: begin : stall_scnd_miss - 525 6 : miss_nxtstate = dec_tlu_force_halt ? IDLE : - 526 6 : exu_flush_final ? ((bus_ifu_wr_en_ff & last_beat) ? IDLE : HIT_U_MISS) : IDLE; - 527 6 : miss_state_en = (bus_ifu_wr_en_ff & last_beat) | exu_flush_final | dec_tlu_force_halt; + 524 0 : STALL_SCND_MISS: begin : stall_scnd_miss + 525 0 : miss_nxtstate = dec_tlu_force_halt ? IDLE : + 526 0 : exu_flush_final ? ((bus_ifu_wr_en_ff & last_beat) ? IDLE : HIT_U_MISS) : IDLE; + 527 0 : miss_state_en = (bus_ifu_wr_en_ff & last_beat) | exu_flush_final | dec_tlu_force_halt; 528 : end - 529 0 : default: begin : def_case + 529 0 : default: begin : def_case 530 0 : miss_nxtstate = IDLE; 531 0 : miss_state_en = 1'b0; 532 : end @@ -638,7 +638,7 @@ 534 : end 535 : rvdffs #(($bits(miss_state_t))) miss_state_ff (.clk(active_clk), .din(miss_nxtstate), .dout({miss_state}), .en(miss_state_en), .*); 536 : - 537 2778 : logic sel_hold_imb ; + 537 2317 : logic sel_hold_imb ; 538 : 539 : assign miss_pending = (miss_state != IDLE) ; 540 : assign crit_wd_byp_ok_ff = (miss_state == CRIT_BYP_OK) | ((miss_state == CRIT_WRD_RDY) & ~flush_final_f); @@ -902,7 +902,7 @@ 798 : ///////////////////////////////////////////////////////////////////////////////////// 799 : // Create full buffer... // 800 : ///////////////////////////////////////////////////////////////////////////////////// - 801 200 : logic [63:0] ic_miss_buff_data_in; + 801 188 : logic [63:0] ic_miss_buff_data_in; 802 : assign ic_miss_buff_data_in[63:0] = ifu_bus_rsp_rdata[63:0]; 803 : 804 : for (genvar i=0; i<pt.ICACHE_NUM_BEATS; i++) begin : wr_flop @@ -940,9 +940,9 @@ 836 : // New bypass ready // 837 : ///////////////////////////////////////////////////////////////////////////////////// 838 40 : logic [pt.ICACHE_BEAT_ADDR_HI:1] bypass_index; - 839 464 : logic [pt.ICACHE_BEAT_ADDR_HI:3] bypass_index_5_3_inc; - 840 2778 : logic bypass_data_ready_in; - 841 2774 : logic ic_crit_wd_rdy_new_in; + 839 349 : logic [pt.ICACHE_BEAT_ADDR_HI:3] bypass_index_5_3_inc; + 840 2316 : logic bypass_data_ready_in; + 841 2315 : logic ic_crit_wd_rdy_new_in; 842 : 843 : assign bypass_index[pt.ICACHE_BEAT_ADDR_HI:1] = imb_ff[pt.ICACHE_BEAT_ADDR_HI:1] ; 844 : assign bypass_index_5_3_inc[pt.ICACHE_BEAT_ADDR_HI:3] = bypass_index[pt.ICACHE_BEAT_ADDR_HI:3] + 1 ; @@ -1046,10 +1046,10 @@ 942 2 : perr_sb_write_status = 1'b0; 943 : 944 2 : case (perr_state) - 945 8966 : ERR_IDLE: begin : err_idle - 946 8966 : perr_nxtstate = iccm_dma_sb_error ? DMA_SB_ERR : (ic_error_start & ~exu_flush_final) ? IC_WFF : ECC_WFF; - 947 8966 : perr_state_en = (((iccm_error_start | ic_error_start) & ~dec_tlu_flush_lower_wb) | iccm_dma_sb_error) & ~dec_tlu_force_halt; - 948 8966 : perr_sb_write_status = perr_state_en; + 945 5968 : ERR_IDLE: begin : err_idle + 946 5968 : perr_nxtstate = iccm_dma_sb_error ? DMA_SB_ERR : (ic_error_start & ~exu_flush_final) ? IC_WFF : ECC_WFF; + 947 5968 : perr_state_en = (((iccm_error_start | ic_error_start) & ~dec_tlu_flush_lower_wb) | iccm_dma_sb_error) & ~dec_tlu_force_halt; + 948 5968 : perr_sb_write_status = perr_state_en; 949 : end 950 0 : IC_WFF: begin : icache_wff // All the I$ data and/or Tag errors ( parity/ECC ) will come to this state 951 0 : perr_nxtstate = ERR_IDLE; @@ -1091,9 +1091,9 @@ 987 2 : iccm_correction_state = 1'b0; 988 : 989 2 : case (err_stop_state) - 990 8966 : ERR_STOP_IDLE: begin : err_stop_idle - 991 8966 : err_stop_nxtstate = ERR_FETCH1; - 992 8966 : err_stop_state_en = dec_tlu_flush_err_wb & (perr_state == ECC_WFF) & ~dec_tlu_force_halt; + 990 5968 : ERR_STOP_IDLE: begin : err_stop_idle + 991 5968 : err_stop_nxtstate = ERR_FETCH1; + 992 5968 : err_stop_state_en = dec_tlu_flush_err_wb & (perr_state == ECC_WFF) & ~dec_tlu_force_halt; 993 : end 994 0 : ERR_FETCH1: begin : err_fetch1 // All the I$ data and/or Tag errors ( parity/ECC ) will come to this state 995 0 : err_stop_nxtstate = (dec_tlu_flush_lower_wb | dec_tlu_i0_commit_cmt | dec_tlu_force_halt) ? ERR_STOP_IDLE : ((ifu_fetch_val[1:0] == 2'b11) | (ifu_fetch_val[0] & two_byte_instr)) ? ERR_STOP_FETCH : ifu_fetch_val[0] ? ERR_FETCH2 : ERR_FETCH1; @@ -1469,7 +1469,7 @@ 1365 : ((miss_state == CRIT_BYP_OK) & miss_state_en & (miss_nxtstate == MISS_WAIT)) )) | 1366 : ( ifc_fetch_req_bf & exu_flush_final & ~ifc_fetch_uncacheable_bf & ~ifc_iccm_access_bf ) ; 1367 : - 1368 2896 : logic ic_real_rd_wp_unused; + 1368 2421 : logic ic_real_rd_wp_unused; 1369 : assign ic_real_rd_wp_unused = (ifc_fetch_req_bf & ~ifc_iccm_access_bf & ~ifc_region_acc_fault_final_bf & ~dec_tlu_fence_i_wb & ~stream_miss_f & ~ic_act_miss_f & 1370 : ~(((miss_state == STREAM) & ~miss_state_en) | 1371 : ((miss_state == CRIT_BYP_OK) & ~miss_state_en & ~(miss_nxtstate == MISS_WAIT)) | @@ -1547,8 +1547,8 @@ 1443 2 : always_comb begin : way_status_out_mux 1444 2 : way_status[pt.ICACHE_STATUS_BITS-1:0] = '0 ; 1445 2 : for (int j=0; j< pt.ICACHE_TAG_DEPTH; j++) begin : status_mux_loop - 1446 8966 : if (ifu_ic_rw_int_addr_ff[pt.ICACHE_INDEX_HI:pt.ICACHE_TAG_INDEX_LO] == (pt.ICACHE_TAG_LO-pt.ICACHE_TAG_INDEX_LO)'(j)) begin : mux_out - 1447 8966 : way_status[pt.ICACHE_STATUS_BITS-1:0] = way_status_out[j]; + 1446 5968 : if (ifu_ic_rw_int_addr_ff[pt.ICACHE_INDEX_HI:pt.ICACHE_TAG_INDEX_LO] == (pt.ICACHE_TAG_LO-pt.ICACHE_TAG_INDEX_LO)'(j)) begin : mux_out + 1447 5968 : way_status[pt.ICACHE_STATUS_BITS-1:0] = way_status_out[j]; 1448 : end 1449 : end 1450 : end @@ -1610,9 +1610,9 @@ 1506 2 : always_comb begin : tag_valid_out_mux 1507 2 : ic_tag_valid_unq[pt.ICACHE_NUM_WAYS-1:0] = '0; 1508 2 : for (int j=0; j< pt.ICACHE_TAG_DEPTH; j++) begin : tag_valid_loop - 1509 8966 : if (ifu_ic_rw_int_addr_ff[pt.ICACHE_INDEX_HI:pt.ICACHE_TAG_INDEX_LO] == (pt.ICACHE_TAG_LO-pt.ICACHE_TAG_INDEX_LO)'(j)) begin : valid_out - 1510 8966 : for ( int k=0; k<pt.ICACHE_NUM_WAYS; k++) begin - 1511 17932 : ic_tag_valid_unq[k] |= ic_tag_valid_out[k][j]; + 1509 5968 : if (ifu_ic_rw_int_addr_ff[pt.ICACHE_INDEX_HI:pt.ICACHE_TAG_INDEX_LO] == (pt.ICACHE_TAG_LO-pt.ICACHE_TAG_INDEX_LO)'(j)) begin : valid_out + 1510 5968 : for ( int k=0; k<pt.ICACHE_NUM_WAYS; k++) begin + 1511 11936 : ic_tag_valid_unq[k] |= ic_tag_valid_out[k][j]; 1512 : end 1513 : end 1514 : end diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lib.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lib.sv.html index 35045927d99..5e44892573a 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lib.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lib.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -159,8 +159,8 @@ 55 : `include "el2_param.vh" 56 : )( 57 32 : input logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] hashin, - 58 270 : input logic [pt.BHT_GHR_SIZE-1:0] ghr, - 59 258 : output logic [pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] hash + 58 246 : input logic [pt.BHT_GHR_SIZE-1:0] ghr, + 59 236 : output logic [pt.BHT_ADDR_HI:pt.BHT_ADDR_LO] hash 60 : ); 61 : 62 : // The hash function is too complex to write in verilog for all cases. diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu.sv.html index 3b609170f67..a2be59b7277 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -152,7 +152,7 @@ 48 64 : input logic [11:0] dec_lsu_offset_d, // address offset operand 49 : 50 100 : input el2_lsu_pkt_t lsu_p, // lsu control packet - 51 708 : input logic dec_lsu_valid_raw_d, // Raw valid for address computation + 51 592 : input logic dec_lsu_valid_raw_d, // Raw valid for address computation 52 0 : input logic [31:0] dec_tlu_mrac_ff, // CSR for memory region control 53 : 54 0 : output logic [31:0] lsu_result_m, // lsu load data @@ -160,8 +160,8 @@ 56 8 : output logic lsu_load_stall_any, // This is for blocking loads in the decode 57 8 : output logic lsu_store_stall_any, // This is for blocking stores in the decode 58 0 : output logic lsu_fastint_stall_any, // Stall the fastint in decode-1 stage - 59 572 : output logic lsu_idle_any, // lsu buffers are empty and no instruction in the pipeline. Doesn't include DMA - 60 570 : output logic lsu_active, // Used to turn off top level clk + 59 456 : output logic lsu_idle_any, // lsu buffers are empty and no instruction in the pipeline. Doesn't include DMA + 60 454 : output logic lsu_active, // Used to turn off top level clk 61 : 62 0 : output logic [31:1] lsu_fir_addr, // fast interrupt address 63 0 : output logic [1:0] lsu_fir_error, // Error during fast interrupt lookup @@ -183,9 +183,9 @@ 79 0 : output logic [31:0] lsu_nonblock_load_data, // Data of the non block load 80 : 81 224 : output logic lsu_pmu_load_external_m, // PMU : Bus loads - 82 484 : output logic lsu_pmu_store_external_m, // PMU : Bus loads + 82 368 : output logic lsu_pmu_store_external_m, // PMU : Bus loads 83 0 : output logic lsu_pmu_misaligned_m, // PMU : misaligned - 84 668 : output logic lsu_pmu_bus_trxn, // PMU : bus transaction + 84 553 : output logic lsu_pmu_bus_trxn, // PMU : bus transaction 85 0 : output logic lsu_pmu_bus_misaligned, // PMU : misaligned access going to the bus 86 0 : output logic lsu_pmu_bus_error, // PMU : bus sending error back 87 12 : output logic lsu_pmu_bus_busy, // PMU : bus is not ready @@ -217,8 +217,8 @@ 113 0 : input logic [31:0] picm_rd_data, // PIC memory read/mask data 114 : 115 : // AXI Write Channels - 116 504 : output logic lsu_axi_awvalid, - 117 506 : input logic lsu_axi_awready, + 116 389 : output logic lsu_axi_awvalid, + 117 390 : input logic lsu_axi_awready, 118 0 : output logic [pt.LSU_BUS_TAG-1:0] lsu_axi_awid, 119 2 : output logic [31:0] lsu_axi_awaddr, 120 2 : output logic [3:0] lsu_axi_awregion, @@ -230,13 +230,13 @@ 126 0 : output logic [2:0] lsu_axi_awprot, 127 0 : output logic [3:0] lsu_axi_awqos, 128 : - 129 504 : output logic lsu_axi_wvalid, - 130 506 : input logic lsu_axi_wready, + 129 389 : output logic lsu_axi_wvalid, + 130 390 : input logic lsu_axi_wready, 131 0 : output logic [63:0] lsu_axi_wdata, 132 40 : output logic [7:0] lsu_axi_wstrb, 133 2 : output logic lsu_axi_wlast, 134 : - 135 504 : input logic lsu_axi_bvalid, + 135 388 : input logic lsu_axi_bvalid, 136 2 : output logic lsu_axi_bready, 137 0 : input logic [1:0] lsu_axi_bresp, 138 0 : input logic [pt.LSU_BUS_TAG-1:0] lsu_axi_bid, @@ -276,22 +276,22 @@ 172 0 : output logic dccm_dma_ecc_error, // DMA load had ecc error 173 0 : output logic [2:0] dccm_dma_rtag, // DMA request tag 174 0 : output logic [63:0] dccm_dma_rdata, // lsu data for DMA dccm read - 175 710 : output logic dccm_ready, // lsu ready for DMA access + 175 594 : output logic dccm_ready, // lsu ready for DMA access 176 : 177 : // DCCM ECC status 178 0 : output logic lsu_dccm_rd_ecc_single_err, 179 0 : output logic lsu_dccm_rd_ecc_double_err, 180 : 181 0 : input logic scan_mode, // scan mode - 182 17932 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 183 17932 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 182 14934 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 183 14934 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. 184 2 : input logic rst_l, // reset, active low 185 : 186 72 : output logic [31:0] lsu_pmp_addr_start, 187 72 : output logic [31:0] lsu_pmp_addr_end, 188 0 : input logic lsu_pmp_error_start, 189 0 : input logic lsu_pmp_error_end, - 190 484 : output logic lsu_pmp_we, + 190 368 : output logic lsu_pmp_we, 191 224 : output logic lsu_pmp_re 192 : 193 : ); @@ -338,7 +338,7 @@ 234 0 : logic store_stbuf_reqvld_r; 235 0 : logic ldst_stbuf_reqvld_r; 236 : - 237 708 : logic lsu_commit_r; + 237 592 : logic lsu_commit_r; 238 0 : logic lsu_exc_m; 239 : 240 0 : logic addr_in_dccm_d, addr_in_dccm_m, addr_in_dccm_r; @@ -365,11 +365,11 @@ 261 0 : logic lsu_stbuf_full_any; 262 : 263 : // Bus signals - 264 700 : logic lsu_busreq_r; - 265 470 : logic lsu_bus_buffer_pend_any; - 266 588 : logic lsu_bus_buffer_empty_any; + 264 584 : logic lsu_busreq_r; + 265 355 : logic lsu_bus_buffer_pend_any; + 266 472 : logic lsu_bus_buffer_empty_any; 267 8 : logic lsu_bus_buffer_full_any; - 268 708 : logic lsu_busreq_m; + 268 592 : logic lsu_busreq_m; 269 0 : logic [31:0] bus_read_data_m; 270 : 271 0 : logic flush_m_up, flush_r; @@ -381,16 +381,16 @@ 277 0 : logic [pt.DCCM_ECC_WIDTH-1:0] dma_dccm_wdata_ecc_lo, dma_dccm_wdata_ecc_hi; 278 : 279 : // Clocks - 280 570 : logic lsu_busm_clken; - 281 1066 : logic lsu_bus_obuf_c1_clken; - 282 17932 : logic lsu_c1_m_clk, lsu_c1_r_clk; - 283 17932 : logic lsu_c2_m_clk, lsu_c2_r_clk; - 284 17932 : logic lsu_store_c1_m_clk, lsu_store_c1_r_clk; + 280 454 : logic lsu_busm_clken; + 281 835 : logic lsu_bus_obuf_c1_clken; + 282 14934 : logic lsu_c1_m_clk, lsu_c1_r_clk; + 283 14934 : logic lsu_c2_m_clk, lsu_c2_r_clk; + 284 14934 : logic lsu_store_c1_m_clk, lsu_store_c1_r_clk; 285 : - 286 17932 : logic lsu_stbuf_c1_clk; - 287 17932 : logic lsu_bus_ibuf_c1_clk, lsu_bus_obuf_c1_clk, lsu_bus_buf_c1_clk; + 286 14934 : logic lsu_stbuf_c1_clk; + 287 14934 : logic lsu_bus_ibuf_c1_clk, lsu_bus_obuf_c1_clk, lsu_bus_buf_c1_clk; 288 0 : logic lsu_busm_clk; - 289 17932 : logic lsu_free_c2_clk; + 289 14934 : logic lsu_free_c2_clk; 290 : 291 0 : logic lsu_raw_fwd_lo_m, lsu_raw_fwd_hi_m; 292 0 : logic lsu_raw_fwd_lo_r, lsu_raw_fwd_hi_r; diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_addrcheck.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_addrcheck.sv.html index 88338ecc464..b867c6f29a5 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_addrcheck.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_addrcheck.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -131,14 +131,14 @@ 27 : #( 28 : `include "el2_param.vh" 29 : )( - 30 17932 : input logic lsu_c2_m_clk, // clock + 30 14934 : input logic lsu_c2_m_clk, // clock 31 2 : input logic rst_l, // reset 32 : 33 72 : input logic [31:0] start_addr_d, // start address for lsu 34 72 : input logic [31:0] end_addr_d, // end address for lsu 35 100 : input el2_lsu_pkt_t lsu_pkt_d, // packet in d 36 0 : input logic [31:0] dec_tlu_mrac_ff, // CSR read - 37 368 : input logic [3:0] rs1_region_d, // address rs operand [31:28] + 37 252 : input logic [3:0] rs1_region_d, // address rs operand [31:28] 38 : 39 104 : input logic [31:0] rs1_d, // address rs operand 40 : @@ -167,7 +167,7 @@ 63 0 : logic start_addr_in_dccm_region_d, end_addr_in_dccm_region_d; 64 0 : logic start_addr_in_pic_d, end_addr_in_pic_d; 65 0 : logic start_addr_in_pic_region_d, end_addr_in_pic_region_d; - 66 368 : logic [4:0] csr_idx; + 66 252 : logic [4:0] csr_idx; 67 0 : logic addr_in_iccm; 68 0 : logic start_addr_dccm_or_pic; 69 0 : logic base_reg_dccm_or_pic; diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_bus_buffer.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_bus_buffer.sv.html index 791ce4a80e4..eebb9f189e2 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_bus_buffer.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_bus_buffer.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -132,7 +132,7 @@ 28 : #( 29 : `include "el2_param.vh" 30 : )( - 31 17932 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 31 14934 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. 32 0 : input logic clk_override, // Override non-functional clock gating 33 2 : input logic rst_l, // reset, active low 34 0 : input logic scan_mode, // scan mode @@ -142,17 +142,17 @@ 38 0 : input logic dec_tlu_force_halt, 39 : 40 : // various clocks needed for the bus reads and writes - 41 1066 : input logic lsu_bus_obuf_c1_clken, - 42 570 : input logic lsu_busm_clken, - 43 17932 : input logic lsu_c2_r_clk, - 44 17932 : input logic lsu_bus_ibuf_c1_clk, + 41 835 : input logic lsu_bus_obuf_c1_clken, + 42 454 : input logic lsu_busm_clken, + 43 14934 : input logic lsu_c2_r_clk, + 44 14934 : input logic lsu_bus_ibuf_c1_clk, 45 0 : input logic lsu_bus_obuf_c1_clk, - 46 17932 : input logic lsu_bus_buf_c1_clk, - 47 17932 : input logic lsu_free_c2_clk, + 46 14934 : input logic lsu_bus_buf_c1_clk, + 47 14934 : input logic lsu_free_c2_clk, 48 0 : input logic lsu_busm_clk, 49 : 50 : - 51 708 : input logic dec_lsu_valid_raw_d, // Raw valid for address computation + 51 592 : input logic dec_lsu_valid_raw_d, // Raw valid for address computation 52 100 : input el2_lsu_pkt_t lsu_pkt_m, // lsu packet flowing down the pipe 53 100 : input el2_lsu_pkt_t lsu_pkt_r, // lsu packet flowing down the pipe 54 : @@ -164,12 +164,12 @@ 60 : 61 36 : input logic no_word_merge_r, // r store doesn't need to wait in ibuf since it will not coalesce 62 20 : input logic no_dword_merge_r, // r store doesn't need to wait in ibuf since it will not coalesce - 63 708 : input logic lsu_busreq_m, // bus request is in m - 64 700 : output logic lsu_busreq_r, // bus request is in r + 63 592 : input logic lsu_busreq_m, // bus request is in m + 64 584 : output logic lsu_busreq_r, // bus request is in r 65 8 : input logic ld_full_hit_m, // load can get all its byte from a write buffer entry 66 4 : input logic flush_m_up, // flush 67 0 : input logic flush_r, // flush - 68 708 : input logic lsu_commit_r, // lsu instruction in r commits + 68 592 : input logic lsu_commit_r, // lsu instruction in r commits 69 0 : input logic is_sideeffects_r, // lsu attribute is side_effects 70 0 : input logic ldst_dual_d, // load/store is unaligned at 32 bit boundary 71 0 : input logic ldst_dual_m, // load/store is unaligned at 32 bit boundary @@ -177,9 +177,9 @@ 73 : 74 0 : input logic [7:0] ldst_byteen_ext_m, // HI and LO signals 75 : - 76 470 : output logic lsu_bus_buffer_pend_any, // bus buffer has a pending bus entry + 76 355 : output logic lsu_bus_buffer_pend_any, // bus buffer has a pending bus entry 77 8 : output logic lsu_bus_buffer_full_any, // bus buffer is full - 78 588 : output logic lsu_bus_buffer_empty_any, // bus buffer is empty + 78 472 : output logic lsu_bus_buffer_empty_any, // bus buffer is empty 79 : 80 0 : output logic [3:0] ld_byte_hit_buf_lo, ld_byte_hit_buf_hi, // Byte enables for forwarding data 81 0 : output logic [31:0] ld_fwddata_buf_lo, ld_fwddata_buf_hi, // load forwarding data @@ -199,14 +199,14 @@ 95 0 : output logic [31:0] lsu_nonblock_load_data, // Data of the non block load 96 : 97 : // PMU events - 98 668 : output logic lsu_pmu_bus_trxn, + 98 553 : output logic lsu_pmu_bus_trxn, 99 0 : output logic lsu_pmu_bus_misaligned, 100 0 : output logic lsu_pmu_bus_error, 101 12 : output logic lsu_pmu_bus_busy, 102 : 103 : // AXI Write Channels - 104 504 : output logic lsu_axi_awvalid, - 105 506 : input logic lsu_axi_awready, + 104 389 : output logic lsu_axi_awvalid, + 105 390 : input logic lsu_axi_awready, 106 0 : output logic [pt.LSU_BUS_TAG-1:0] lsu_axi_awid, 107 2 : output logic [31:0] lsu_axi_awaddr, 108 2 : output logic [3:0] lsu_axi_awregion, @@ -218,13 +218,13 @@ 114 0 : output logic [2:0] lsu_axi_awprot, 115 0 : output logic [3:0] lsu_axi_awqos, 116 : - 117 504 : output logic lsu_axi_wvalid, - 118 506 : input logic lsu_axi_wready, + 117 389 : output logic lsu_axi_wvalid, + 118 390 : input logic lsu_axi_wready, 119 0 : output logic [63:0] lsu_axi_wdata, 120 40 : output logic [7:0] lsu_axi_wstrb, 121 2 : output logic lsu_axi_wlast, 122 : - 123 504 : input logic lsu_axi_bvalid, + 123 388 : input logic lsu_axi_bvalid, 124 2 : output logic lsu_axi_bready, 125 0 : input logic [1:0] lsu_axi_bresp, 126 0 : input logic [pt.LSU_BUS_TAG-1:0] lsu_axi_bid, @@ -298,8 +298,8 @@ 194 0 : logic bus_coalescing_disable; 195 : 196 20 : logic bus_addr_match_pending; - 197 668 : logic bus_cmd_sent, bus_cmd_ready; - 198 504 : logic bus_wcmd_sent, bus_wdata_sent; + 197 553 : logic bus_cmd_sent, bus_cmd_ready; + 198 389 : logic bus_wcmd_sent, bus_wdata_sent; 199 228 : logic bus_rsp_read, bus_rsp_write; 200 0 : logic [pt.LSU_BUS_TAG-1:0] bus_rsp_read_tag, bus_rsp_write_tag; 201 0 : logic bus_rsp_read_error, bus_rsp_write_error; @@ -337,7 +337,7 @@ 233 0 : logic [DEPTH-1:0] buf_sideeffect_in; 234 176 : logic [DEPTH-1:0] buf_unsign_in; 235 100 : logic [DEPTH-1:0][1:0] buf_sz_in; - 236 484 : logic [DEPTH-1:0] buf_write_in; + 236 368 : logic [DEPTH-1:0] buf_write_in; 237 4 : logic [DEPTH-1:0] buf_wr_en; 238 0 : logic [DEPTH-1:0] buf_dualhi_in; 239 136 : logic [DEPTH-1:0][DEPTH_LOG2-1:0] buf_dualtag_in; @@ -356,7 +356,7 @@ 252 0 : logic [DEPTH-1:0][DEPTH-1:0] buf_rspageQ; 253 : 254 : // Input buffer signals - 255 484 : logic ibuf_valid; + 255 368 : logic ibuf_valid; 256 0 : logic ibuf_dual; 257 2 : logic ibuf_samedw; 258 0 : logic ibuf_nomerge; @@ -369,13 +369,13 @@ 265 18 : logic [3:0] ibuf_byteen; 266 2 : logic [31:0] ibuf_addr; 267 0 : logic [31:0] ibuf_data; - 268 486 : logic [TIMER_LOG2-1:0] ibuf_timer; + 268 370 : logic [TIMER_LOG2-1:0] ibuf_timer; 269 : 270 240 : logic ibuf_byp; - 271 484 : logic ibuf_wr_en; - 272 484 : logic ibuf_rst; + 271 368 : logic ibuf_wr_en; + 272 368 : logic ibuf_rst; 273 40 : logic ibuf_force_drain; - 274 484 : logic ibuf_drain_vld; + 274 368 : logic ibuf_drain_vld; 275 4 : logic [DEPTH-1:0] ibuf_drainvec_vld; 276 116 : logic [DEPTH_LOG2-1:0] ibuf_tag_in; 277 116 : logic [DEPTH_LOG2-1:0] ibuf_dualtag_in; @@ -383,13 +383,13 @@ 279 72 : logic [31:0] ibuf_addr_in; 280 152 : logic [3:0] ibuf_byteen_in; 281 0 : logic [31:0] ibuf_data_in; - 282 486 : logic [TIMER_LOG2-1:0] ibuf_timer_in; + 282 370 : logic [TIMER_LOG2-1:0] ibuf_timer_in; 283 18 : logic [3:0] ibuf_byteen_out; 284 0 : logic [31:0] ibuf_data_out; 285 2 : logic ibuf_merge_en, ibuf_merge_in; 286 : 287 : // Output buffer signals - 288 636 : logic obuf_valid; + 288 521 : logic obuf_valid; 289 142 : logic obuf_write; 290 0 : logic obuf_nosend; 291 228 : logic obuf_rdrsp_pend; @@ -406,9 +406,9 @@ 302 : 303 216 : logic ibuf_buf_byp; 304 64 : logic obuf_force_wr_en; - 305 458 : logic obuf_wr_wait; - 306 636 : logic obuf_wr_en, obuf_wr_enQ; - 307 636 : logic obuf_rst; + 305 343 : logic obuf_wr_wait; + 306 521 : logic obuf_wr_en, obuf_wr_enQ; + 307 521 : logic obuf_rst; 308 146 : logic obuf_write_in; 309 132 : logic obuf_nosend_in; 310 2 : logic obuf_rdrsp_pend_en; @@ -426,12 +426,12 @@ 322 0 : logic [pt.LSU_BUS_TAG-1:0] obuf_rdrsp_tag_in; 323 : 324 0 : logic obuf_merge_en; - 325 396 : logic [TIMER_LOG2-1:0] obuf_wr_timer, obuf_wr_timer_in; + 325 282 : logic [TIMER_LOG2-1:0] obuf_wr_timer, obuf_wr_timer_in; 326 60 : logic [7:0] obuf_byteen0_in, obuf_byteen1_in; 327 0 : logic [63:0] obuf_data0_in, obuf_data1_in; 328 : - 329 504 : logic lsu_axi_awvalid_q, lsu_axi_awready_q; - 330 504 : logic lsu_axi_wvalid_q, lsu_axi_wready_q; + 329 388 : logic lsu_axi_awvalid_q, lsu_axi_awready_q; + 330 388 : logic lsu_axi_wvalid_q, lsu_axi_wready_q; 331 216 : logic lsu_axi_arvalid_q, lsu_axi_arready_q; 332 2 : logic lsu_axi_bvalid_q, lsu_axi_bready_q; 333 2 : logic lsu_axi_rvalid_q, lsu_axi_rready_q; @@ -445,15 +445,15 @@ 341 : //------------------------------------------------------------------------------ 342 : 343 : // Function to do 8 to 3 bit encoding - 344 26906 : function automatic logic [2:0] f_Enc8to3; + 344 17912 : function automatic logic [2:0] f_Enc8to3; 345 : input logic [7:0] Dec_value; 346 : 347 : logic [2:0] Enc_value; - 348 26906 : Enc_value[0] = Dec_value[1] | Dec_value[3] | Dec_value[5] | Dec_value[7]; - 349 26906 : Enc_value[1] = Dec_value[2] | Dec_value[3] | Dec_value[6] | Dec_value[7]; - 350 26906 : Enc_value[2] = Dec_value[4] | Dec_value[5] | Dec_value[6] | Dec_value[7]; + 348 17912 : Enc_value[0] = Dec_value[1] | Dec_value[3] | Dec_value[5] | Dec_value[7]; + 349 17912 : Enc_value[1] = Dec_value[2] | Dec_value[3] | Dec_value[6] | Dec_value[7]; + 350 17912 : Enc_value[2] = Dec_value[4] | Dec_value[5] | Dec_value[6] | Dec_value[7]; 351 : - 352 26906 : return Enc_value[2:0]; + 352 17912 : return Enc_value[2:0]; 353 : endfunction // f_Enc8to3 354 : 355 : // Buffer hit logic for bus load forwarding @@ -758,51 +758,51 @@ 654 8 : buf_ldfwdtag_in[i] = '0; 655 : 656 8 : case (buf_state[i]) - 657 33306 : IDLE: begin - 658 33306 : buf_nxtstate[i] = lsu_bus_clk_en ? CMD : START_WAIT; - 659 33306 : buf_state_en[i] = (lsu_busreq_r & lsu_commit_r & (((ibuf_byp | ldst_dual_r) & ~ibuf_merge_en & (i == WrPtr0_r)) | (ibuf_byp & ldst_dual_r & (i == WrPtr1_r)))) | - 660 33306 : (ibuf_drain_vld & (i == ibuf_tag)); - 661 33306 : buf_wr_en[i] = buf_state_en[i]; - 662 33306 : buf_data_en[i] = buf_state_en[i]; - 663 33306 : buf_data_in[i] = (ibuf_drain_vld & (i == ibuf_tag)) ? ibuf_data_out[31:0] : store_data_lo_r[31:0]; - 664 33306 : buf_cmd_state_bus_en[i] = '0; + 657 22458 : IDLE: begin + 658 22458 : buf_nxtstate[i] = lsu_bus_clk_en ? CMD : START_WAIT; + 659 22458 : buf_state_en[i] = (lsu_busreq_r & lsu_commit_r & (((ibuf_byp | ldst_dual_r) & ~ibuf_merge_en & (i == WrPtr0_r)) | (ibuf_byp & ldst_dual_r & (i == WrPtr1_r)))) | + 660 22458 : (ibuf_drain_vld & (i == ibuf_tag)); + 661 22458 : buf_wr_en[i] = buf_state_en[i]; + 662 22458 : buf_data_en[i] = buf_state_en[i]; + 663 22458 : buf_data_in[i] = (ibuf_drain_vld & (i == ibuf_tag)) ? ibuf_data_out[31:0] : store_data_lo_r[31:0]; + 664 22458 : buf_cmd_state_bus_en[i] = '0; 665 : end 666 0 : START_WAIT: begin 667 0 : buf_nxtstate[i] = dec_tlu_force_halt ? IDLE : CMD; 668 0 : buf_state_en[i] = lsu_bus_clk_en | dec_tlu_force_halt; 669 0 : buf_cmd_state_bus_en[i] = '0; 670 : end - 671 2062 : CMD: begin - 672 2062 : buf_nxtstate[i] = dec_tlu_force_halt ? IDLE : (obuf_nosend & bus_rsp_read & (bus_rsp_read_tag == obuf_rdrsp_tag)) ? DONE_WAIT : RESP; - 673 2062 : buf_cmd_state_bus_en[i] = ((obuf_tag0 == i) | (obuf_merge & (obuf_tag1 == i))) & obuf_valid & obuf_wr_enQ; // Just use the recently written obuf_valid - 674 2062 : buf_state_bus_en[i] = buf_cmd_state_bus_en[i]; - 675 2062 : buf_state_en[i] = (buf_state_bus_en[i] & lsu_bus_clk_en) | dec_tlu_force_halt; - 676 2062 : buf_ldfwd_in[i] = 1'b1; - 677 2062 : buf_ldfwd_en[i] = buf_state_en[i] & ~buf_write[i] & obuf_nosend & ~dec_tlu_force_halt; - 678 2062 : buf_ldfwdtag_in[i] = DEPTH_LOG2'(obuf_rdrsp_tag[pt.LSU_BUS_TAG-2:0]); - 679 2062 : buf_data_en[i] = buf_state_bus_en[i] & lsu_bus_clk_en & obuf_nosend & bus_rsp_read; - 680 2062 : buf_error_en[i] = buf_state_bus_en[i] & lsu_bus_clk_en & obuf_nosend & bus_rsp_read_error; - 681 2062 : buf_data_in[i] = buf_error_en[i] ? bus_rsp_rdata[31:0] : (buf_addr[i][2] ? bus_rsp_rdata[63:32] : bus_rsp_rdata[31:0]); + 671 1034 : CMD: begin + 672 1034 : buf_nxtstate[i] = dec_tlu_force_halt ? IDLE : (obuf_nosend & bus_rsp_read & (bus_rsp_read_tag == obuf_rdrsp_tag)) ? DONE_WAIT : RESP; + 673 1034 : buf_cmd_state_bus_en[i] = ((obuf_tag0 == i) | (obuf_merge & (obuf_tag1 == i))) & obuf_valid & obuf_wr_enQ; // Just use the recently written obuf_valid + 674 1034 : buf_state_bus_en[i] = buf_cmd_state_bus_en[i]; + 675 1034 : buf_state_en[i] = (buf_state_bus_en[i] & lsu_bus_clk_en) | dec_tlu_force_halt; + 676 1034 : buf_ldfwd_in[i] = 1'b1; + 677 1034 : buf_ldfwd_en[i] = buf_state_en[i] & ~buf_write[i] & obuf_nosend & ~dec_tlu_force_halt; + 678 1034 : buf_ldfwdtag_in[i] = DEPTH_LOG2'(obuf_rdrsp_tag[pt.LSU_BUS_TAG-2:0]); + 679 1034 : buf_data_en[i] = buf_state_bus_en[i] & lsu_bus_clk_en & obuf_nosend & bus_rsp_read; + 680 1034 : buf_error_en[i] = buf_state_bus_en[i] & lsu_bus_clk_en & obuf_nosend & bus_rsp_read_error; + 681 1034 : buf_data_in[i] = buf_error_en[i] ? bus_rsp_rdata[31:0] : (buf_addr[i][2] ? bus_rsp_rdata[63:32] : bus_rsp_rdata[31:0]); 682 : end - 683 382 : RESP: begin - 684 382 : buf_nxtstate[i] = (dec_tlu_force_halt | (buf_write[i] & ~bus_rsp_write_error)) ? IDLE : // Side-effect writes will be non-posted - 685 382 : (buf_dual[i] & ~buf_samedw[i] & ~buf_write[i] & (buf_state[buf_dualtag[i]] != DONE_PARTIAL)) ? DONE_PARTIAL : // Goto DONE_PARTIAL if this is the first return of dual - 686 382 : (buf_ldfwd[i] | any_done_wait_state | - 687 382 : (buf_dual[i] & ~buf_samedw[i] & ~buf_write[i] & buf_ldfwd[buf_dualtag[i]] & - 688 382 : (buf_state[buf_dualtag[i]] == DONE_PARTIAL) & any_done_wait_state)) ? DONE_WAIT : DONE; - 689 382 : buf_resp_state_bus_en[i] = (bus_rsp_write & (bus_rsp_write_tag == (pt.LSU_BUS_TAG)'(i))) | - 690 382 : (bus_rsp_read & ((bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(i)) | - 691 382 : (buf_ldfwd[i] & (bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(buf_ldfwdtag[i]))) | - 692 382 : (buf_dual[i] & buf_dualhi[i] & ~buf_write[i] & buf_samedw[i] & (bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(buf_dualtag[i]))))); - 693 382 : buf_state_bus_en[i] = buf_resp_state_bus_en[i]; - 694 382 : buf_state_en[i] = (buf_state_bus_en[i] & lsu_bus_clk_en) | dec_tlu_force_halt; - 695 382 : buf_data_en[i] = buf_state_bus_en[i] & bus_rsp_read & lsu_bus_clk_en; + 683 266 : RESP: begin + 684 266 : buf_nxtstate[i] = (dec_tlu_force_halt | (buf_write[i] & ~bus_rsp_write_error)) ? IDLE : // Side-effect writes will be non-posted + 685 266 : (buf_dual[i] & ~buf_samedw[i] & ~buf_write[i] & (buf_state[buf_dualtag[i]] != DONE_PARTIAL)) ? DONE_PARTIAL : // Goto DONE_PARTIAL if this is the first return of dual + 686 266 : (buf_ldfwd[i] | any_done_wait_state | + 687 266 : (buf_dual[i] & ~buf_samedw[i] & ~buf_write[i] & buf_ldfwd[buf_dualtag[i]] & + 688 266 : (buf_state[buf_dualtag[i]] == DONE_PARTIAL) & any_done_wait_state)) ? DONE_WAIT : DONE; + 689 266 : buf_resp_state_bus_en[i] = (bus_rsp_write & (bus_rsp_write_tag == (pt.LSU_BUS_TAG)'(i))) | + 690 266 : (bus_rsp_read & ((bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(i)) | + 691 266 : (buf_ldfwd[i] & (bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(buf_ldfwdtag[i]))) | + 692 266 : (buf_dual[i] & buf_dualhi[i] & ~buf_write[i] & buf_samedw[i] & (bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(buf_dualtag[i]))))); + 693 266 : buf_state_bus_en[i] = buf_resp_state_bus_en[i]; + 694 266 : buf_state_en[i] = (buf_state_bus_en[i] & lsu_bus_clk_en) | dec_tlu_force_halt; + 695 266 : buf_data_en[i] = buf_state_bus_en[i] & bus_rsp_read & lsu_bus_clk_en; 696 : // Need to capture the error for stores as well for AXI - 697 382 : buf_error_en[i] = buf_state_bus_en[i] & lsu_bus_clk_en & ((bus_rsp_read_error & (bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(i))) | - 698 382 : (bus_rsp_read_error & buf_ldfwd[i] & (bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(buf_ldfwdtag[i]))) | - 699 382 : (bus_rsp_write_error & (bus_rsp_write_tag == (pt.LSU_BUS_TAG)'(i)))); - 700 382 : buf_data_in[i][31:0] = (buf_state_en[i] & ~buf_error_en[i]) ? (buf_addr[i][2] ? bus_rsp_rdata[63:32] : bus_rsp_rdata[31:0]) : bus_rsp_rdata[31:0]; - 701 382 : buf_cmd_state_bus_en[i] = '0; + 697 266 : buf_error_en[i] = buf_state_bus_en[i] & lsu_bus_clk_en & ((bus_rsp_read_error & (bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(i))) | + 698 266 : (bus_rsp_read_error & buf_ldfwd[i] & (bus_rsp_read_tag == (pt.LSU_BUS_TAG)'(buf_ldfwdtag[i]))) | + 699 266 : (bus_rsp_write_error & (bus_rsp_write_tag == (pt.LSU_BUS_TAG)'(i)))); + 700 266 : buf_data_in[i][31:0] = (buf_state_en[i] & ~buf_error_en[i]) ? (buf_addr[i][2] ? bus_rsp_rdata[63:32] : bus_rsp_rdata[31:0]) : bus_rsp_rdata[31:0]; + 701 266 : buf_cmd_state_bus_en[i] = '0; 702 : end 703 0 : DONE_PARTIAL: begin // Other part of dual load hasn't returned 704 0 : buf_nxtstate[i] = dec_tlu_force_halt ? IDLE : (buf_ldfwd[i] | buf_ldfwd[buf_dualtag[i]] | any_done_wait_state) ? DONE_WAIT : DONE; diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_bus_intf.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_bus_intf.sv.html index 75eaeb46804..431ea4cb08e 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_bus_intf.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_bus_intf.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -131,7 +131,7 @@ 27 : #( 28 : `include "el2_param.vh" 29 : )( - 30 17932 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 30 14934 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. 31 0 : input logic clk_override, // Override non-functional clock gating 32 2 : input logic rst_l, // reset, active low 33 0 : input logic scan_mode, // scan mode @@ -140,20 +140,20 @@ 36 2 : input logic dec_tlu_sideeffect_posted_disable, // disable the posted sideeffect load store to the bus 37 : 38 : // various clocks needed for the bus reads and writes - 39 1066 : input logic lsu_bus_obuf_c1_clken, // obuf clock enable - 40 570 : input logic lsu_busm_clken, // bus clock enable + 39 835 : input logic lsu_bus_obuf_c1_clken, // obuf clock enable + 40 454 : input logic lsu_busm_clken, // bus clock enable 41 : - 42 17932 : input logic lsu_c1_r_clk, // r pipe single pulse clock - 43 17932 : input logic lsu_c2_r_clk, // r pipe double pulse clock - 44 17932 : input logic lsu_bus_ibuf_c1_clk, // ibuf single pulse clock + 42 14934 : input logic lsu_c1_r_clk, // r pipe single pulse clock + 43 14934 : input logic lsu_c2_r_clk, // r pipe double pulse clock + 44 14934 : input logic lsu_bus_ibuf_c1_clk, // ibuf single pulse clock 45 0 : input logic lsu_bus_obuf_c1_clk, // obuf single pulse clock - 46 17932 : input logic lsu_bus_buf_c1_clk, // buf single pulse clock - 47 17932 : input logic lsu_free_c2_clk, // free clock double pulse clock - 48 17932 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 46 14934 : input logic lsu_bus_buf_c1_clk, // buf single pulse clock + 47 14934 : input logic lsu_free_c2_clk, // free clock double pulse clock + 48 14934 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. 49 0 : input logic lsu_busm_clk, // bus clock 50 : - 51 708 : input logic dec_lsu_valid_raw_d, // Raw valid for address computation - 52 708 : input logic lsu_busreq_m, // bus request is in m + 51 592 : input logic dec_lsu_valid_raw_d, // Raw valid for address computation + 52 592 : input logic lsu_busreq_m, // bus request is in m 53 : 54 100 : input el2_lsu_pkt_t lsu_pkt_m, // lsu packet flowing down the pipe 55 100 : input el2_lsu_pkt_t lsu_pkt_r, // lsu packet flowing down the pipe @@ -167,16 +167,16 @@ 63 0 : input logic [31:0] store_data_r, // store data flowing down the pipe 64 0 : input logic dec_tlu_force_halt, 65 : - 66 708 : input logic lsu_commit_r, // lsu instruction in r commits + 66 592 : input logic lsu_commit_r, // lsu instruction in r commits 67 0 : input logic is_sideeffects_m, // lsu attribute is side_effects 68 4 : input logic flush_m_up, // flush 69 0 : input logic flush_r, // flush 70 0 : input logic ldst_dual_d, ldst_dual_m, ldst_dual_r, 71 : - 72 700 : output logic lsu_busreq_r, // bus request is in r - 73 470 : output logic lsu_bus_buffer_pend_any, // bus buffer has a pending bus entry + 72 584 : output logic lsu_busreq_r, // bus request is in r + 73 355 : output logic lsu_bus_buffer_pend_any, // bus buffer has a pending bus entry 74 8 : output logic lsu_bus_buffer_full_any, // write buffer is full - 75 588 : output logic lsu_bus_buffer_empty_any, // write buffer is empty + 75 472 : output logic lsu_bus_buffer_empty_any, // write buffer is empty 76 0 : output logic [31:0] bus_read_data_m, // the bus return data 77 : 78 : @@ -195,14 +195,14 @@ 91 0 : output logic [31:0] lsu_nonblock_load_data, // Data of the non block load 92 : 93 : // PMU events - 94 668 : output logic lsu_pmu_bus_trxn, + 94 553 : output logic lsu_pmu_bus_trxn, 95 0 : output logic lsu_pmu_bus_misaligned, 96 0 : output logic lsu_pmu_bus_error, 97 12 : output logic lsu_pmu_bus_busy, 98 : 99 : // AXI Write Channels - 100 504 : output logic lsu_axi_awvalid, - 101 506 : input logic lsu_axi_awready, + 100 389 : output logic lsu_axi_awvalid, + 101 390 : input logic lsu_axi_awready, 102 0 : output logic [pt.LSU_BUS_TAG-1:0] lsu_axi_awid, 103 2 : output logic [31:0] lsu_axi_awaddr, 104 2 : output logic [3:0] lsu_axi_awregion, @@ -214,13 +214,13 @@ 110 0 : output logic [2:0] lsu_axi_awprot, 111 0 : output logic [3:0] lsu_axi_awqos, 112 : - 113 504 : output logic lsu_axi_wvalid, - 114 506 : input logic lsu_axi_wready, + 113 389 : output logic lsu_axi_wvalid, + 114 390 : input logic lsu_axi_wready, 115 0 : output logic [63:0] lsu_axi_wdata, 116 40 : output logic [7:0] lsu_axi_wstrb, 117 2 : output logic lsu_axi_wlast, 118 : - 119 504 : input logic lsu_axi_bvalid, + 119 388 : input logic lsu_axi_bvalid, 120 2 : output logic lsu_axi_bready, 121 0 : input logic [1:0] lsu_axi_bresp, 122 0 : input logic [pt.LSU_BUS_TAG-1:0] lsu_axi_bid, @@ -263,8 +263,8 @@ 159 0 : logic [31:0] store_data_hi_r; 160 0 : logic [31:0] store_data_lo_r; 161 : - 162 726 : logic addr_match_dw_lo_r_m; - 163 710 : logic addr_match_word_lo_r_m; + 162 610 : logic addr_match_dw_lo_r_m; + 163 594 : logic addr_match_word_lo_r_m; 164 20 : logic no_word_merge_r, no_dword_merge_r; 165 : 166 0 : logic ld_addr_rhit_lo_lo, ld_addr_rhit_hi_lo, ld_addr_rhit_lo_hi, ld_addr_rhit_hi_hi; diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_clkdomain.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_clkdomain.sv.html index bc29a73c4e5..7838d035728 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_clkdomain.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_clkdomain.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -132,8 +132,8 @@ 28 : #( 29 : `include "el2_param.vh" 30 : )( - 31 17932 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 32 17932 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 31 14934 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 32 14934 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. 33 2 : input logic rst_l, // reset, active low 34 0 : input logic dec_tlu_force_halt, // This will be high till TLU goes to debug halt 35 : @@ -144,9 +144,9 @@ 40 : 41 0 : input logic stbuf_reqvld_any, // stbuf is draining 42 0 : input logic stbuf_reqvld_flushed_any, // instruction going to stbuf is flushed - 43 700 : input logic lsu_busreq_r, // busreq in r - 44 470 : input logic lsu_bus_buffer_pend_any, // bus buffer has a pending bus entry - 45 588 : input logic lsu_bus_buffer_empty_any, // external bus buffer is empty + 43 584 : input logic lsu_busreq_r, // busreq in r + 44 355 : input logic lsu_bus_buffer_pend_any, // bus buffer has a pending bus entry + 45 472 : input logic lsu_bus_buffer_empty_any, // external bus buffer is empty 46 2 : input logic lsu_stbuf_empty_any, // stbuf is empty 47 : 48 2 : input logic lsu_bus_clk_en, // bus clock enable @@ -157,39 +157,39 @@ 53 100 : input el2_lsu_pkt_t lsu_pkt_r, // lsu packet in r 54 : 55 : // Outputs - 56 1066 : output logic lsu_bus_obuf_c1_clken, // obuf clock enable - 57 570 : output logic lsu_busm_clken, // bus clock enable + 56 835 : output logic lsu_bus_obuf_c1_clken, // obuf clock enable + 57 454 : output logic lsu_busm_clken, // bus clock enable 58 : - 59 17932 : output logic lsu_c1_m_clk, // m pipe single pulse clock - 60 17932 : output logic lsu_c1_r_clk, // r pipe single pulse clock + 59 14934 : output logic lsu_c1_m_clk, // m pipe single pulse clock + 60 14934 : output logic lsu_c1_r_clk, // r pipe single pulse clock 61 : - 62 17932 : output logic lsu_c2_m_clk, // m pipe double pulse clock - 63 17932 : output logic lsu_c2_r_clk, // r pipe double pulse clock + 62 14934 : output logic lsu_c2_m_clk, // m pipe double pulse clock + 63 14934 : output logic lsu_c2_r_clk, // r pipe double pulse clock 64 : - 65 17932 : output logic lsu_store_c1_m_clk, // store in m - 66 17932 : output logic lsu_store_c1_r_clk, // store in r + 65 14934 : output logic lsu_store_c1_m_clk, // store in m + 66 14934 : output logic lsu_store_c1_r_clk, // store in r 67 : - 68 17932 : output logic lsu_stbuf_c1_clk, + 68 14934 : output logic lsu_stbuf_c1_clk, 69 0 : output logic lsu_bus_obuf_c1_clk, // ibuf clock - 70 17932 : output logic lsu_bus_ibuf_c1_clk, // ibuf clock - 71 17932 : output logic lsu_bus_buf_c1_clk, // ibuf clock + 70 14934 : output logic lsu_bus_ibuf_c1_clk, // ibuf clock + 71 14934 : output logic lsu_bus_buf_c1_clk, // ibuf clock 72 0 : output logic lsu_busm_clk, // bus clock 73 : - 74 17932 : output logic lsu_free_c2_clk, // free double pulse clock + 74 14934 : output logic lsu_free_c2_clk, // free double pulse clock 75 : 76 0 : input logic scan_mode // Scan mode 77 : ); 78 : - 79 708 : logic lsu_c1_m_clken, lsu_c1_r_clken; - 80 708 : logic lsu_c2_m_clken, lsu_c2_r_clken; - 81 708 : logic lsu_c1_m_clken_q, lsu_c1_r_clken_q; - 82 484 : logic lsu_store_c1_m_clken, lsu_store_c1_r_clken; + 79 592 : logic lsu_c1_m_clken, lsu_c1_r_clken; + 80 592 : logic lsu_c2_m_clken, lsu_c2_r_clken; + 81 592 : logic lsu_c1_m_clken_q, lsu_c1_r_clken_q; + 82 368 : logic lsu_store_c1_m_clken, lsu_store_c1_r_clken; 83 : 84 : 85 0 : logic lsu_stbuf_c1_clken; - 86 570 : logic lsu_bus_ibuf_c1_clken, lsu_bus_buf_c1_clken; + 86 454 : logic lsu_bus_ibuf_c1_clken, lsu_bus_buf_c1_clken; 87 : - 88 566 : logic lsu_free_c1_clken, lsu_free_c1_clken_q, lsu_free_c2_clken; + 88 450 : logic lsu_free_c1_clken, lsu_free_c1_clken_q, lsu_free_c2_clken; 89 : 90 : //------------------------------------------------------------------------------------------- 91 : // Clock Enable logic diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_dccm_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_dccm_ctl.sv.html index e6220f578e4..3b6a42b1d6e 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_dccm_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_dccm_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -136,13 +136,13 @@ 32 : `include "el2_param.vh" 33 : ) 34 : ( - 35 17932 : input logic lsu_c2_m_clk, // clocks - 36 17932 : input logic lsu_c2_r_clk, // clocks - 37 17932 : input logic lsu_c1_r_clk, // clocks - 38 17932 : input logic lsu_store_c1_r_clk, // clocks - 39 17932 : input logic lsu_free_c2_clk, // clocks + 35 14934 : input logic lsu_c2_m_clk, // clocks + 36 14934 : input logic lsu_c2_r_clk, // clocks + 37 14934 : input logic lsu_c1_r_clk, // clocks + 38 14934 : input logic lsu_store_c1_r_clk, // clocks + 39 14934 : input logic lsu_free_c2_clk, // clocks 40 0 : input logic clk_override, // Override non-functional clock gating - 41 17932 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 41 14934 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. 42 : 43 2 : input logic rst_l, // reset, active low 44 : @@ -155,7 +155,7 @@ 51 0 : input logic addr_in_dccm_m, addr_in_dccm_r, // address in dccm per pipe stage 52 0 : input logic addr_in_pic_r, // address in pic per pipe stage 53 0 : input logic lsu_raw_fwd_lo_r, lsu_raw_fwd_hi_r, - 54 708 : input logic lsu_commit_r, // lsu instruction in r commits + 54 592 : input logic lsu_commit_r, // lsu instruction in r commits 55 0 : input logic ldst_dual_m, ldst_dual_r,// load/store is unaligned at 32 bit boundary per pipe stage 56 : 57 : // lsu address down the pipe diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_dccm_mem.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_dccm_mem.sv.html index 227e09f75fe..74742b411f9 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_dccm_mem.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_dccm_mem.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -136,8 +136,8 @@ 32 : #( 33 : `include "el2_param.vh" 34 : )( - 35 17932 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 36 17932 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. + 35 14934 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 36 14934 : input logic active_clk, // Clock only while core active. Through two clock headers. For flops without second clock header built in. 37 2 : input logic rst_l, // reset, active low 38 0 : input logic clk_override, // Override non-functional clock gating 39 : diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_ecc.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_ecc.sv.html index f3a571d5d5a..e141705cca2 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_ecc.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_ecc.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -135,8 +135,8 @@ 31 : `include "el2_param.vh" 32 : ) 33 : ( - 34 17932 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. - 35 17932 : input logic lsu_c2_r_clk, // clock + 34 14934 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 35 14934 : input logic lsu_c2_r_clk, // clock 36 0 : input logic clk_override, // Override non-functional clock gating 37 2 : input logic rst_l, // reset, active low 38 0 : input logic scan_mode, // scan mode diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_lsc_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_lsc_ctl.sv.html index cb2f7f29ae1..5e0902bf42e 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_lsc_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_lsc_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -136,14 +136,14 @@ 32 : )( 33 2 : input logic rst_l, // reset, active low 34 0 : input logic clk_override, // Override non-functional clock gating - 35 17932 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. + 35 14934 : input logic clk, // Clock only while core active. Through one clock header. For flops with second clock header built in. Connected to ACTIVE_L2CLK. 36 : 37 : // clocks per pipe - 38 17932 : input logic lsu_c1_m_clk, - 39 17932 : input logic lsu_c1_r_clk, - 40 17932 : input logic lsu_c2_m_clk, - 41 17932 : input logic lsu_c2_r_clk, - 42 17932 : input logic lsu_store_c1_m_clk, + 38 14934 : input logic lsu_c1_m_clk, + 39 14934 : input logic lsu_c1_r_clk, + 40 14934 : input logic lsu_c2_m_clk, + 41 14934 : input logic lsu_c2_r_clk, + 42 14934 : input logic lsu_store_c1_m_clk, 43 : 44 0 : input logic [31:0] lsu_ld_data_r, // Load data R-stage 45 0 : input logic [31:0] lsu_ld_data_corr_r, // ECC corrected data R-stage @@ -164,7 +164,7 @@ 60 0 : input logic [31:0] exu_lsu_rs2_d, // store data 61 : 62 100 : input el2_lsu_pkt_t lsu_p, // lsu control packet - 63 708 : input logic dec_lsu_valid_raw_d, // Raw valid for address computation + 63 592 : input logic dec_lsu_valid_raw_d, // Raw valid for address computation 64 64 : input logic [11:0] dec_lsu_offset_d, // 12b offset for load/store addresses 65 : 66 0 : input logic [31:0] picm_mask_data_m, // PIC data M-stage @@ -185,7 +185,7 @@ 81 0 : input logic [31:0] dec_tlu_mrac_ff, // CSR for memory region control 82 0 : output logic lsu_exc_m, // Access or misaligned fault 83 0 : output logic is_sideeffects_m, // is sideffects space - 84 708 : output logic lsu_commit_r, // lsu instruction in r commits + 84 592 : output logic lsu_commit_r, // lsu instruction in r commits 85 0 : output logic lsu_single_ecc_error_incr,// LSU inc SB error counter 86 0 : output el2_lsu_error_pkt_t lsu_error_pkt_r, // lsu exception packet 87 : diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_stbuf.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_stbuf.sv.html index ce3da0b0077..dcddd762e42 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_stbuf.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_stbuf.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -137,16 +137,16 @@ 33 : `include "el2_param.vh" 34 : ) 35 : ( - 36 17932 : input logic clk, // core clock + 36 14934 : input logic clk, // core clock 37 2 : input logic rst_l, // reset 38 : - 39 17932 : input logic lsu_stbuf_c1_clk, // stbuf clock - 40 17932 : input logic lsu_free_c2_clk, // free clk + 39 14934 : input logic lsu_stbuf_c1_clk, // stbuf clock + 40 14934 : input logic lsu_free_c2_clk, // free clk 41 : 42 : // Store Buffer input 43 0 : input logic store_stbuf_reqvld_r, // core instruction goes to stbuf - 44 708 : input logic lsu_commit_r, // lsu commits - 45 708 : input logic dec_lsu_valid_raw_d, // Speculative decode valid + 44 592 : input logic lsu_commit_r, // lsu commits + 45 592 : input logic dec_lsu_valid_raw_d, // Speculative decode valid 46 0 : input logic [pt.DCCM_DATA_WIDTH-1:0] store_data_hi_r, // merged data from the dccm for stores. This is used for fwding 47 0 : input logic [pt.DCCM_DATA_WIDTH-1:0] store_data_lo_r, // merged data from the dccm for stores. This is used for fwding 48 0 : input logic [pt.DCCM_DATA_WIDTH-1:0] store_datafn_hi_r, // merged data from the dccm for stores diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_trigger.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_trigger.sv.html index 70652f5f159..7c2236295c6 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_trigger.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_lsu_trigger.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_mem.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_mem.sv.html index d184cb39381..06f57c3e66f 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_mem.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_mem.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -126,7 +126,7 @@ 22 : `include "el2_param.vh" 23 : ) 24 : ( - 25 17932 : input logic clk, + 25 14934 : input logic clk, 26 2 : input logic rst_l, 27 0 : input logic dccm_clk_override, 28 0 : input logic icm_clk_override, @@ -164,8 +164,8 @@ 60 0 : input logic [pt.ICACHE_NUM_WAYS-1:0] ic_tag_valid, 61 0 : input logic [pt.ICACHE_NUM_WAYS-1:0] ic_wr_en, 62 0 : input logic ic_rd_en, - 63 496 : input logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. - 64 2514 : input logic ic_sel_premux_data, // Premux data sel + 63 474 : input logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. + 64 2049 : input logic ic_sel_premux_data, // Premux data sel 65 0 : input el2_ic_data_ext_in_pkt_t [pt.ICACHE_NUM_WAYS-1:0][pt.ICACHE_BANKS_WAY-1:0] ic_data_ext_in_pkt, 66 0 : input el2_ic_tag_ext_in_pkt_t [pt.ICACHE_NUM_WAYS-1:0] ic_tag_ext_in_pkt, 67 : @@ -178,7 +178,7 @@ 74 0 : input logic ic_debug_tag_array, // Debug tag array 75 0 : input logic [pt.ICACHE_NUM_WAYS-1:0] ic_debug_way, // Debug way. Rd or Wr. 76 : - 77 496 : output logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC + 77 474 : output logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 78 0 : output logic [25:0] ictag_debug_rd_data,// Debug icache tag. 79 : 80 : @@ -193,7 +193,7 @@ 89 : 90 : ); 91 : - 92 17932 : logic active_clk; + 92 14934 : logic active_clk; 93 : rvoclkhdr active_cg ( .en(1'b1), .l1clk(active_clk), .* ); 94 : 95 : el2_mem_if mem_export_local (); diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_mem_if.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_mem_if.sv.html index 2dd490b9fe3..3feb155dc90 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_mem_if.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_mem_if.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -130,7 +130,7 @@ 26 : 27 : ////////////////////////////////////////// 28 : // Clock - 29 53796 : logic clk; + 29 44802 : logic clk; 30 : 31 : 32 : ////////////////////////////////////////// diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_pic_ctrl.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_pic_ctrl.sv.html index 8d43b496d65..b62e9ea2adc 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_pic_ctrl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_pic_ctrl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -131,8 +131,8 @@ 27 : ) 28 : ( 29 : - 30 17932 : input logic clk, // Core clock - 31 17932 : input logic free_clk, // free clock + 30 14934 : input logic clk, // Core clock + 31 14934 : input logic free_clk, // free clock 32 2 : input logic rst_l, // Reset for all flops 33 0 : input logic clk_override, // Clock over-ride for gating 34 2 : input logic io_clk_override, // PIC IO Clock over-ride for gating @@ -228,7 +228,7 @@ 124 0 : logic intpriord; 125 0 : logic config_reg_we ; 126 0 : logic config_reg_re ; - 127 284 : logic config_reg_in ; + 127 166 : logic config_reg_in ; 128 0 : logic prithresh_reg_write , prithresh_reg_read; 129 0 : logic intpriority_reg_read ; 130 0 : logic intenable_reg_read ; @@ -256,11 +256,11 @@ 152 0 : logic gw_config_c1_clken; 153 : 154 : // clocks - 155 17932 : logic pic_raddr_c1_clk; - 156 17932 : logic pic_data_c1_clk; - 157 17932 : logic pic_pri_c1_clk; - 158 17932 : logic pic_int_c1_clk; - 159 17932 : logic gw_config_c1_clk; + 155 14934 : logic pic_raddr_c1_clk; + 156 14934 : logic pic_data_c1_clk; + 157 14934 : logic pic_pri_c1_clk; + 158 14934 : logic pic_int_c1_clk; + 159 14934 : logic gw_config_c1_clk; 160 : 161 : // ---- Clock gating section ------ 162 : // c1 clock enables @@ -601,13 +601,13 @@ 497 2 : intpriority_rd_out = '0 ; 498 2 : gw_config_rd_out = '0 ; 499 2 : for (int i=0; i<pt.PIC_TOTAL_INT_PLUS1; i++) begin - 500 286912 : if (intenable_reg_re[i]) begin + 500 190976 : if (intenable_reg_re[i]) begin 501 0 : intenable_rd_out = intenable_reg[i] ; 502 : end - 503 286912 : if (intpriority_reg_re[i]) begin + 503 190976 : if (intpriority_reg_re[i]) begin 504 0 : intpriority_rd_out = intpriority_reg[i] ; 505 : end - 506 286912 : if (gw_config_reg_re[i]) begin + 506 190976 : if (gw_config_reg_re[i]) begin 507 0 : gw_config_rd_out = gw_config_reg[i] ; 508 : end 509 : end @@ -663,7 +663,7 @@ 559 : 560 : module el2_configurable_gw ( 561 0 : input logic gw_clk, - 562 555892 : input logic rawclk, + 562 462954 : input logic rawclk, 563 62 : input logic clken, 564 62 : input logic rst_l, 565 0 : input logic extintsrc_req , diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_pmp.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_pmp.sv.html index 8faed70c596..8c0afff3cb2 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_pmp.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_pmp.sv.html @@ -51,7 +51,7 @@ @@ -127,7 +127,7 @@ 23 : parameter PMP_GRANULARITY = 0, // TODO: Move to veer.config 24 : `include "el2_param.vh" 25 : ) ( - 26 17932 : input logic clk, // Top level clock + 26 14934 : input logic clk, // Top level clock 27 2 : input logic rst_l, // Reset 28 0 : input logic scan_mode, // Scan mode 29 : @@ -234,13 +234,13 @@ 130 : 131 : // Compute permissions checks that apply when MSECCFG.MML is unset. This is the original PMP 132 : // behaviour before Smepmp was added. - 133 451872 : function automatic logic orig_perm_check(logic pmp_cfg_lock, + 133 307968 : function automatic logic orig_perm_check(logic pmp_cfg_lock, 134 : logic priv_mode, 135 : logic permission_check); 136 : // For M-mode, any region which matches with the L-bit clear, or with sufficient 137 : // access permissions will be allowed. 138 : // For other modes, the lock bit doesn't matter - 139 451872 : return priv_mode ? (permission_check) : (~pmp_cfg_lock | permission_check); + 139 307968 : return priv_mode ? (permission_check) : (~pmp_cfg_lock | permission_check); 140 : endfunction 141 : 142 : // Access fault determination / prioritization @@ -255,14 +255,14 @@ 151 : `ifdef RV_SMEPMP 152 : // When MSECCFG.MMWP is set default deny always, otherwise allow for M-mode, deny for other 153 : // modes. Also deny unmatched for M-mode when MSECCFG.MML is set and request type is EXEC. - 154 6 : logic access_fail = csr_pmp_mseccfg.MMWP | priv_mode | - 155 6 : (csr_pmp_mseccfg.MML && (req_type == EXEC)); + 154 : logic access_fail = csr_pmp_mseccfg.MMWP | priv_mode | + 155 : (csr_pmp_mseccfg.MML && (req_type == EXEC)); 156 : `else 157 : // When in user mode and at least one PMP region is enabled deny access by default. 158 : logic access_fail = any_region_enabled & priv_mode; 159 : `endif 160 : `else - 161 : logic access_fail = 1'b0; + 161 6 : logic access_fail = 1'b0; 162 : `endif 163 : 164 6 : logic matched = 1'b0; @@ -270,7 +270,7 @@ 166 : // PMP entries are statically prioritized, from 0 to N-1 167 : // The lowest-numbered PMP entry which matches an address determines accessibility 168 6 : for (int r = 0; r < pt.PMP_ENTRIES; r++) begin - 169 460704 : if (!matched && match_all[r]) begin + 169 316800 : if (!matched && match_all[r]) begin 170 0 : access_fail = ~final_perm_check[r]; 171 0 : matched = 1'b1; 172 : end @@ -348,7 +348,7 @@ 244 96 : always_comb begin 245 96 : region_match_all[c][r] = 1'b0; 246 96 : unique case (pmp_pmpcfg[r].mode) - 247 430368 : OFF: region_match_all[c][r] = 1'b0; + 247 286464 : OFF: region_match_all[c][r] = 1'b0; 248 0 : NA4: region_match_all[c][r] = region_match_eq[c][r]; 249 0 : NAPOT: region_match_all[c][r] = region_match_eq[c][r]; 250 0 : TOR: begin diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_veer.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_veer.sv.html index a48f930f645..9d44bdf323b 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_veer.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_veer.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -79,14 +79,14 @@ Branch -- 40.4% + + 39.2% - 21 + 20 - 52 + 51 Test Date: - 19-09-2024 + 25-09-2024 @@ -130,7 +130,7 @@ 26 : `include "el2_param.vh" 27 : ) 28 : ( - 29 17932 : input logic clk, + 29 14934 : input logic clk, 30 2 : input logic rst_l, 31 2 : input logic dbg_rst_l, 32 0 : input logic [31:1] rst_vec, @@ -138,12 +138,12 @@ 34 0 : input logic [31:1] nmi_vec, 35 2 : output logic core_rst_l, // This is "rst_l | dbg_rst_l" 36 : - 37 17932 : output logic active_l2clk, - 38 17932 : output logic free_l2clk, + 37 14934 : output logic active_l2clk, + 38 14934 : output logic free_l2clk, 39 : 40 220 : output logic [31:0] trace_rv_i_insn_ip, 41 2 : output logic [31:0] trace_rv_i_address_ip, - 42 2764 : output logic trace_rv_i_valid_ip, + 42 2304 : output logic trace_rv_i_valid_ip, 43 0 : output logic trace_rv_i_exception_ip, 44 0 : output logic [4:0] trace_rv_i_ecause_ip, 45 0 : output logic trace_rv_i_interrupt_ip, @@ -209,15 +209,15 @@ 105 0 : output logic ic_rd_en, 106 : 107 96 : output logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data, // Data to fill to the Icache. With ECC - 108 496 : input logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC + 108 474 : input logic [63:0] ic_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 109 0 : input logic [70:0] ic_debug_rd_data , // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 110 0 : input logic [25:0] ictag_debug_rd_data,// Debug icache tag. 111 0 : output logic [70:0] ic_debug_wr_data, // Debug wr cache. 112 : 113 0 : input logic [pt.ICACHE_BANKS_WAY-1:0] ic_eccerr, 114 0 : input logic [pt.ICACHE_BANKS_WAY-1:0] ic_parerr, - 115 496 : output logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. - 116 2514 : output logic ic_sel_premux_data, // Select premux data + 115 474 : output logic [63:0] ic_premux_data, // Premux data to be muxed with each way of the Icache. + 116 2049 : output logic ic_sel_premux_data, // Select premux data 117 : 118 : 119 0 : output logic [pt.ICACHE_INDEX_HI:3] ic_debug_addr, // Read/Write addresss to the Icache. @@ -233,8 +233,8 @@ 129 : 130 : //-------------------------- LSU AXI signals-------------------------- 131 : // AXI Write Channels - 132 504 : output logic lsu_axi_awvalid, - 133 506 : input logic lsu_axi_awready, + 132 389 : output logic lsu_axi_awvalid, + 133 390 : input logic lsu_axi_awready, 134 0 : output logic [pt.LSU_BUS_TAG-1:0] lsu_axi_awid, 135 2 : output logic [31:0] lsu_axi_awaddr, 136 2 : output logic [3:0] lsu_axi_awregion, @@ -246,13 +246,13 @@ 142 0 : output logic [2:0] lsu_axi_awprot, 143 0 : output logic [3:0] lsu_axi_awqos, 144 : - 145 504 : output logic lsu_axi_wvalid, - 146 506 : input logic lsu_axi_wready, + 145 389 : output logic lsu_axi_wvalid, + 146 390 : input logic lsu_axi_wready, 147 0 : output logic [63:0] lsu_axi_wdata, 148 40 : output logic [7:0] lsu_axi_wstrb, 149 2 : output logic lsu_axi_wlast, 150 : - 151 504 : input logic lsu_axi_bvalid, + 151 388 : input logic lsu_axi_bvalid, 152 2 : output logic lsu_axi_bready, 153 0 : input logic [1:0] lsu_axi_bresp, 154 0 : input logic [pt.LSU_BUS_TAG-1:0] lsu_axi_bid, @@ -305,9 +305,9 @@ 201 0 : input logic [pt.IFU_BUS_TAG-1:0] ifu_axi_bid, 202 : 203 : // AXI Read Channels - 204 2778 : output logic ifu_axi_arvalid, - 205 5556 : input logic ifu_axi_arready, - 206 1724 : output logic [pt.IFU_BUS_TAG-1:0] ifu_axi_arid, + 204 2317 : output logic ifu_axi_arvalid, + 205 4635 : input logic ifu_axi_arready, + 206 1378 : output logic [pt.IFU_BUS_TAG-1:0] ifu_axi_arid, 207 36 : output logic [31:0] ifu_axi_araddr, 208 2 : output logic [3:0] ifu_axi_arregion, 209 0 : output logic [7:0] ifu_axi_arlen, @@ -318,12 +318,12 @@ 214 2 : output logic [2:0] ifu_axi_arprot, 215 0 : output logic [3:0] ifu_axi_arqos, 216 : - 217 5554 : input logic ifu_axi_rvalid, + 217 4633 : input logic ifu_axi_rvalid, 218 2 : output logic ifu_axi_rready, - 219 960 : input logic [pt.IFU_BUS_TAG-1:0] ifu_axi_rid, - 220 200 : input logic [63:0] ifu_axi_rdata, + 219 729 : input logic [pt.IFU_BUS_TAG-1:0] ifu_axi_rid, + 220 188 : input logic [63:0] ifu_axi_rdata, 221 0 : input logic [1:0] ifu_axi_rresp, - 222 5554 : input logic ifu_axi_rlast, + 222 4633 : input logic ifu_axi_rlast, 223 : 224 : //-------------------------- SB AXI signals-------------------------- 225 : // AXI Write Channels @@ -501,7 +501,7 @@ 397 : // 398 : //---------------------------------------------------------------------- 399 : - 400 2764 : logic ifu_pmu_instr_aligned; + 400 2306 : logic ifu_pmu_instr_aligned; 401 0 : logic ifu_ic_error_start; 402 0 : logic ifu_iccm_dma_rd_ecc_single_err; 403 0 : logic ifu_iccm_rd_ecc_single_err; @@ -522,9 +522,9 @@ 418 0 : logic [1:0] lsu_axi_rresp_ahb; 419 0 : logic lsu_axi_rlast_ahb; 420 : - 421 506 : logic lsu_axi_awready_int; - 422 506 : logic lsu_axi_wready_int; - 423 504 : logic lsu_axi_bvalid_int; + 421 390 : logic lsu_axi_awready_int; + 422 390 : logic lsu_axi_wready_int; + 423 388 : logic lsu_axi_bvalid_int; 424 2 : logic lsu_axi_bready_int; 425 0 : logic [1:0] lsu_axi_bresp_int; 426 0 : logic [pt.LSU_BUS_TAG-1:0] lsu_axi_bid_int; @@ -554,12 +554,12 @@ 450 0 : logic ifu_axi_bready_int; 451 0 : logic [1:0] ifu_axi_bresp_int; 452 0 : logic [pt.IFU_BUS_TAG-1:0] ifu_axi_bid_int; - 453 5556 : logic ifu_axi_arready_int; - 454 5554 : logic ifu_axi_rvalid_int; - 455 960 : logic [pt.IFU_BUS_TAG-1:0] ifu_axi_rid_int; - 456 200 : logic [63:0] ifu_axi_rdata_int; + 453 4635 : logic ifu_axi_arready_int; + 454 4633 : logic ifu_axi_rvalid_int; + 455 729 : logic [pt.IFU_BUS_TAG-1:0] ifu_axi_rid_int; + 456 188 : logic [63:0] ifu_axi_rdata_int; 457 0 : logic [1:0] ifu_axi_rresp_int; - 458 5554 : logic ifu_axi_rlast_int; + 458 4633 : logic ifu_axi_rlast_int; 459 : 460 0 : logic sb_axi_awready_ahb; 461 0 : logic sb_axi_wready_ahb; @@ -636,13 +636,13 @@ 532 0 : el2_cache_debug_pkt_t dec_tlu_ic_diag_pkt; // packet of DICAWICS, DICAD0/1, DICAGO info for icache diagnostics 533 : 534 : - 535 2068 : logic dec_i0_rs1_en_d; - 536 1080 : logic dec_i0_rs2_en_d; - 537 4 : logic [31:0] gpr_i0_rs1_d; - 538 268 : logic [31:0] gpr_i0_rs2_d; + 535 1838 : logic dec_i0_rs1_en_d; + 536 964 : logic dec_i0_rs2_en_d; + 537 6 : logic [31:0] gpr_i0_rs1_d; + 538 136 : logic [31:0] gpr_i0_rs2_d; 539 : - 540 4 : logic [31:0] dec_i0_result_r; - 541 88 : logic [31:0] exu_i0_result_x; + 540 8 : logic [31:0] dec_i0_result_r; + 541 94 : logic [31:0] exu_i0_result_x; 542 2 : logic [31:1] exu_i0_pc_x; 543 2 : logic [31:1] exu_npc_r; 544 : @@ -653,26 +653,26 @@ 549 0 : logic [3:0] lsu_trigger_match_m; 550 : 551 : - 552 272 : logic [31:0] dec_i0_immed_d; - 553 112 : logic [12:1] dec_i0_br_immed_d; - 554 276 : logic dec_i0_select_pc_d; + 552 198 : logic [31:0] dec_i0_immed_d; + 553 100 : logic [12:1] dec_i0_br_immed_d; + 554 162 : logic dec_i0_select_pc_d; 555 : 556 10 : logic [31:1] dec_i0_pc_d; 557 0 : logic [3:0] dec_i0_rs1_bypass_en_d; 558 0 : logic [3:0] dec_i0_rs2_bypass_en_d; 559 : - 560 2116 : logic dec_i0_alu_decode_d; - 561 768 : logic dec_i0_branch_d; + 560 1774 : logic dec_i0_alu_decode_d; + 561 652 : logic dec_i0_branch_d; 562 : - 563 2780 : logic ifu_miss_state_idle; + 563 2318 : logic ifu_miss_state_idle; 564 0 : logic dec_tlu_flush_noredir_r; 565 0 : logic dec_tlu_flush_leak_one_r; 566 0 : logic dec_tlu_flush_err_r; - 567 2764 : logic ifu_i0_valid; + 567 2306 : logic ifu_i0_valid; 568 36 : logic [31:0] ifu_i0_instr; 569 10 : logic [31:1] ifu_i0_pc; 570 : - 571 204 : logic exu_flush_final; + 571 190 : logic exu_flush_final; 572 : 573 8 : logic [31:1] exu_flush_path_final; 574 : @@ -681,9 +681,9 @@ 577 : 578 : 579 100 : el2_lsu_pkt_t lsu_p; - 580 2066 : logic dec_qual_lsu_d; + 580 1724 : logic dec_qual_lsu_d; 581 : - 582 708 : logic dec_lsu_valid_raw_d; + 582 592 : logic dec_lsu_valid_raw_d; 583 64 : logic [11:0] dec_lsu_offset_d; 584 : 585 0 : logic [31:0] lsu_result_m; @@ -695,8 +695,8 @@ 591 2 : logic [31:0] lsu_imprecise_error_addr_any; 592 8 : logic lsu_load_stall_any; // This is for blocking loads 593 8 : logic lsu_store_stall_any; // This is for blocking stores - 594 572 : logic lsu_idle_any; // doesn't include DMA - 595 570 : logic lsu_active; // lsu is active. used for clock + 594 456 : logic lsu_idle_any; // doesn't include DMA + 595 454 : logic lsu_active; // lsu is active. used for clock 596 : 597 : 598 0 : logic [31:1] lsu_fir_addr; // fast interrupt address @@ -712,11 +712,11 @@ 608 0 : logic [31:0] lsu_nonblock_load_data; 609 : 610 4 : logic dec_csr_ren_d; - 611 16 : logic [31:0] dec_csr_rddata_d; + 611 8 : logic [31:0] dec_csr_rddata_d; 612 : 613 0 : logic [31:0] exu_csr_rs1_x; 614 : - 615 2764 : logic dec_tlu_i0_commit_cmt; + 615 2304 : logic dec_tlu_i0_commit_cmt; 616 4 : logic dec_tlu_flush_lower_r; 617 4 : logic dec_tlu_flush_lower_wb; 618 0 : logic dec_tlu_i0_kill_writeb_r; // I0 is flushed, don't writeback any results to arch state @@ -725,7 +725,7 @@ 621 0 : logic [31:1] dec_tlu_flush_path_r; 622 0 : logic [31:0] dec_tlu_mrac_ff; // CSR for memory region control 623 : - 624 1788 : logic ifu_i0_pc4; + 624 1322 : logic ifu_i0_pc4; 625 : 626 0 : el2_mul_pkt_t mul_p; 627 : @@ -735,25 +735,25 @@ 631 0 : logic [31:0] exu_div_result; 632 0 : logic exu_div_wren; 633 : - 634 2764 : logic dec_i0_decode_d; + 634 2306 : logic dec_i0_decode_d; 635 : 636 : - 637 264 : logic [31:1] pred_correct_npc_x; + 637 149 : logic [31:1] pred_correct_npc_x; 638 : 639 84 : el2_br_tlu_pkt_t dec_tlu_br0_r_pkt; 640 : 641 0 : el2_predict_pkt_t exu_mp_pkt; - 642 132 : logic [pt.BHT_GHR_SIZE-1:0] exu_mp_eghr; - 643 46 : logic [pt.BHT_GHR_SIZE-1:0] exu_mp_fghr; + 642 120 : logic [pt.BHT_GHR_SIZE-1:0] exu_mp_eghr; + 643 42 : logic [pt.BHT_GHR_SIZE-1:0] exu_mp_fghr; 644 8 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] exu_mp_index; 645 0 : logic [pt.BTB_BTAG_SIZE-1:0] exu_mp_btag; 646 : - 647 46 : logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_r; - 648 346 : logic [1:0] exu_i0_br_hist_r; + 647 42 : logic [pt.BHT_GHR_SIZE-1:0] exu_i0_br_fghr_r; + 648 243 : logic [1:0] exu_i0_br_hist_r; 649 0 : logic exu_i0_br_error_r; 650 0 : logic exu_i0_br_start_error_r; - 651 470 : logic exu_i0_br_valid_r; - 652 192 : logic exu_i0_br_mp_r; + 651 355 : logic exu_i0_br_valid_r; + 652 178 : logic exu_i0_br_mp_r; 653 514 : logic exu_i0_br_middle_r; 654 : 655 84 : logic exu_i0_br_way_r; @@ -779,8 +779,8 @@ 675 : 676 0 : logic dma_dccm_stall_any; // Stall the ld/st in decode if asserted 677 0 : logic dma_iccm_stall_any; // Stall the fetch - 678 710 : logic dccm_ready; - 679 202 : logic iccm_ready; + 678 594 : logic dccm_ready; + 679 188 : logic iccm_ready; 680 : 681 0 : logic dma_pmu_dccm_read; 682 0 : logic dma_pmu_dccm_write; @@ -797,7 +797,7 @@ 693 : 694 144 : el2_br_pkt_t i0_brp; 695 32 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] ifu_i0_bp_index; - 696 218 : logic [pt.BHT_GHR_SIZE-1:0] ifu_i0_bp_fghr; + 696 202 : logic [pt.BHT_GHR_SIZE-1:0] ifu_i0_bp_fghr; 697 0 : logic [pt.BTB_BTAG_SIZE-1:0] ifu_i0_bp_btag; 698 : 699 0 : logic [$clog2(pt.BTB_SIZE)-1:0] ifu_i0_fa_index; @@ -806,7 +806,7 @@ 702 : 703 144 : el2_predict_pkt_t dec_i0_predict_p_d; 704 : - 705 218 : logic [pt.BHT_GHR_SIZE-1:0] i0_predict_fghr_d; // DEC predict fghr + 705 202 : logic [pt.BHT_GHR_SIZE-1:0] i0_predict_fghr_d; // DEC predict fghr 706 32 : logic [pt.BTB_ADDR_HI:pt.BTB_ADDR_LO] i0_predict_index_d; // DEC predict index 707 0 : logic [pt.BTB_BTAG_SIZE-1:0] i0_predict_btag_d; // DEC predict branch tag 708 : @@ -853,7 +853,7 @@ 749 0 : logic lsu_pmp_error_start; 750 72 : logic [31:0] lsu_pmp_addr_end; 751 0 : logic lsu_pmp_error_end; - 752 484 : logic lsu_pmp_we; + 752 368 : logic lsu_pmp_we; 753 224 : logic lsu_pmp_re; 754 : 755 : // -----------------------DEBUG START ------------------------------- @@ -870,7 +870,7 @@ 766 : 767 0 : logic core_dbg_cmd_done; // Final muxed cmd done to debug 768 0 : logic core_dbg_cmd_fail; // Final muxed cmd done to debug - 769 4 : logic [31:0] core_dbg_rddata; // Final muxed cmd done to debug + 769 8 : logic [31:0] core_dbg_rddata; // Final muxed cmd done to debug 770 : 771 0 : logic dma_dbg_cmd_done; // Abstarct memory command sent to dma is done 772 0 : logic dma_dbg_cmd_fail; // Abstarct memory command sent to dma failed @@ -879,7 +879,7 @@ 775 0 : logic dbg_dma_bubble; // Debug needs a bubble to send a valid 776 0 : logic dma_dbg_ready; // DMA is ready to accept debug request 777 : - 778 4 : logic [31:0] dec_dbg_rddata; // The core drives this data ( intercepts the pipe and sends it here ) + 778 8 : logic [31:0] dec_dbg_rddata; // The core drives this data ( intercepts the pipe and sends it here ) 779 0 : logic dec_dbg_cmd_done; // This will be treated like a valid signal 780 0 : logic dec_dbg_cmd_fail; // Abstract command failed 781 0 : logic dec_tlu_mpc_halted_only; // Only halted due to MPC @@ -889,32 +889,32 @@ 785 0 : logic dec_debug_wdata_rs1_d; 786 0 : logic dec_tlu_force_halt; // halt has been forced 787 : - 788 2764 : logic [1:0] dec_data_en; - 789 2764 : logic [1:0] dec_ctl_en; + 788 2305 : logic [1:0] dec_data_en; + 789 2305 : logic [1:0] dec_ctl_en; 790 : 791 : // PMU Signals - 792 192 : logic exu_pmu_i0_br_misp; - 793 494 : logic exu_pmu_i0_br_ataken; + 792 178 : logic exu_pmu_i0_br_misp; + 793 377 : logic exu_pmu_i0_br_ataken; 794 398 : logic exu_pmu_i0_pc4; 795 : 796 224 : logic lsu_pmu_load_external_m; - 797 484 : logic lsu_pmu_store_external_m; + 797 368 : logic lsu_pmu_store_external_m; 798 0 : logic lsu_pmu_misaligned_m; - 799 668 : logic lsu_pmu_bus_trxn; + 799 553 : logic lsu_pmu_bus_trxn; 800 0 : logic lsu_pmu_bus_misaligned; 801 0 : logic lsu_pmu_bus_error; 802 12 : logic lsu_pmu_bus_busy; 803 : - 804 170 : logic ifu_pmu_fetch_stall; - 805 2780 : logic ifu_pmu_ic_miss; + 804 158 : logic ifu_pmu_fetch_stall; + 805 2318 : logic ifu_pmu_ic_miss; 806 0 : logic ifu_pmu_ic_hit; 807 0 : logic ifu_pmu_bus_error; - 808 2776 : logic ifu_pmu_bus_busy; - 809 5554 : logic ifu_pmu_bus_trxn; + 808 2316 : logic ifu_pmu_bus_busy; + 809 4633 : logic ifu_pmu_bus_trxn; 810 : 811 2 : logic active_state; - 812 17932 : logic free_clk; - 813 17932 : logic active_clk; + 812 14934 : logic free_clk; + 813 14934 : logic active_clk; 814 0 : logic dec_pause_state_cg; 815 : 816 0 : logic lsu_nonblock_load_data_error; @@ -925,7 +925,7 @@ 821 0 : logic [31:2] dec_tlu_meihap; 822 0 : logic dec_extint_stall; 823 : - 824 2764 : el2_trace_pkt_t trace_rv_trace_pkt; + 824 2304 : el2_trace_pkt_t trace_rv_trace_pkt; 825 : 826 : 827 0 : logic lsu_fastint_stall_any; @@ -941,7 +941,7 @@ 837 0 : logic pause_state; 838 0 : logic halt_state; 839 : - 840 496 : logic dec_tlu_core_empty; + 840 494 : logic dec_tlu_core_empty; 841 : 842 : assign pause_state = dec_pause_state_cg & ~(dma_active | lsu_active) & dec_tlu_core_empty; 843 : diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_veer_wrapper.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_veer_wrapper.sv.html index 4f06034ce6c..d29840833d6 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_veer_wrapper.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_el2_veer_wrapper.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -131,7 +131,7 @@ 27 : `include "el2_param.vh" 28 : ) 29 : ( - 30 17932 : input logic clk, + 30 14934 : input logic clk, 31 2 : input logic rst_l, 32 2 : input logic dbg_rst_l, 33 0 : input logic [31:1] rst_vec, @@ -142,7 +142,7 @@ 38 : 39 220 : output logic [31:0] trace_rv_i_insn_ip, 40 2 : output logic [31:0] trace_rv_i_address_ip, - 41 2764 : output logic trace_rv_i_valid_ip, + 41 2304 : output logic trace_rv_i_valid_ip, 42 0 : output logic trace_rv_i_exception_ip, 43 0 : output logic [4:0] trace_rv_i_ecause_ip, 44 0 : output logic trace_rv_i_interrupt_ip, @@ -152,8 +152,8 @@ 48 : `ifdef RV_BUILD_AXI4 49 : //-------------------------- LSU AXI signals-------------------------- 50 : // AXI Write Channels - 51 504 : output logic lsu_axi_awvalid, - 52 506 : input logic lsu_axi_awready, + 51 389 : output logic lsu_axi_awvalid, + 52 390 : input logic lsu_axi_awready, 53 0 : output logic [pt.LSU_BUS_TAG-1:0] lsu_axi_awid, 54 2 : output logic [31:0] lsu_axi_awaddr, 55 2 : output logic [3:0] lsu_axi_awregion, @@ -165,13 +165,13 @@ 61 0 : output logic [2:0] lsu_axi_awprot, 62 0 : output logic [3:0] lsu_axi_awqos, 63 : - 64 504 : output logic lsu_axi_wvalid, - 65 506 : input logic lsu_axi_wready, + 64 389 : output logic lsu_axi_wvalid, + 65 390 : input logic lsu_axi_wready, 66 0 : output logic [63:0] lsu_axi_wdata, 67 40 : output logic [7:0] lsu_axi_wstrb, 68 2 : output logic lsu_axi_wlast, 69 : - 70 504 : input logic lsu_axi_bvalid, + 70 388 : input logic lsu_axi_bvalid, 71 2 : output logic lsu_axi_bready, 72 0 : input logic [1:0] lsu_axi_bresp, 73 0 : input logic [pt.LSU_BUS_TAG-1:0] lsu_axi_bid, @@ -224,9 +224,9 @@ 120 0 : input logic [pt.IFU_BUS_TAG-1:0] ifu_axi_bid, 121 : 122 : // AXI Read Channels - 123 2778 : output logic ifu_axi_arvalid, - 124 5556 : input logic ifu_axi_arready, - 125 1724 : output logic [pt.IFU_BUS_TAG-1:0] ifu_axi_arid, + 123 2317 : output logic ifu_axi_arvalid, + 124 4635 : input logic ifu_axi_arready, + 125 1378 : output logic [pt.IFU_BUS_TAG-1:0] ifu_axi_arid, 126 36 : output logic [31:0] ifu_axi_araddr, 127 2 : output logic [3:0] ifu_axi_arregion, 128 0 : output logic [7:0] ifu_axi_arlen, @@ -237,12 +237,12 @@ 133 2 : output logic [2:0] ifu_axi_arprot, 134 0 : output logic [3:0] ifu_axi_arqos, 135 : - 136 5554 : input logic ifu_axi_rvalid, + 136 4633 : input logic ifu_axi_rvalid, 137 2 : output logic ifu_axi_rready, - 138 960 : input logic [pt.IFU_BUS_TAG-1:0] ifu_axi_rid, - 139 200 : input logic [63:0] ifu_axi_rdata, + 138 729 : input logic [pt.IFU_BUS_TAG-1:0] ifu_axi_rid, + 139 188 : input logic [63:0] ifu_axi_rdata, 140 0 : input logic [1:0] ifu_axi_rresp, - 141 5554 : input logic ifu_axi_rlast, + 141 4633 : input logic ifu_axi_rlast, 142 : 143 : //-------------------------- SB AXI signals-------------------------- 144 : // AXI Write Channels @@ -454,8 +454,8 @@ 350 0 : input logic [31:0] dmi_uncore_rdata 351 : ); 352 : - 353 17932 : logic active_l2clk; - 354 17932 : logic free_l2clk; + 353 14934 : logic active_l2clk; + 354 14934 : logic free_l2clk; 355 : 356 : // DCCM ports 357 0 : logic dccm_wren; @@ -491,15 +491,15 @@ 387 : 388 0 : logic [25:0] ictag_debug_rd_data; // Debug icache tag. 389 96 : logic [pt.ICACHE_BANKS_WAY-1:0][70:0] ic_wr_data; - 390 496 : logic [63:0] ic_rd_data; + 390 474 : logic [63:0] ic_rd_data; 391 0 : logic [70:0] ic_debug_rd_data; // Data read from Icache. 2x64bits + parity bits. F2 stage. With ECC 392 0 : logic [70:0] ic_debug_wr_data; // Debug wr cache. 393 : 394 0 : logic [pt.ICACHE_BANKS_WAY-1:0] ic_eccerr; // ecc error per bank 395 0 : logic [pt.ICACHE_BANKS_WAY-1:0] ic_parerr; // parity error per bank 396 : - 397 496 : logic [63:0] ic_premux_data; - 398 2514 : logic ic_sel_premux_data; + 397 474 : logic [63:0] ic_premux_data; + 398 2049 : logic ic_sel_premux_data; 399 : 400 : // ICCM ports 401 8 : logic [pt.ICCM_BITS-1:1] iccm_rw_addr; diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_mem_lib.sv.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_mem_lib.sv.html index 803428ff025..b9998072925 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_mem_lib.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_mem_lib.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -212,7 +212,7 @@ 108 : `EL2_RAM(32768, 39) 109 : `EL2_RAM(16384, 39) 110 : `EL2_RAM(8192, 39) - 111 143424 : `EL2_RAM(4096, 39) + 111 95456 : `EL2_RAM(4096, 39) 112 : `EL2_RAM(3072, 39) 113 : `EL2_RAM(2048, 39) 114 : `EL2_RAM(1536, 39) // need this for the 48KB DCCM option) @@ -276,7 +276,7 @@ 172 : `EL2_RAM_BE(4096, 142) 173 : `EL2_RAM_BE(2048, 142) 174 : `EL2_RAM_BE(1024, 142) - 175 35856 : `EL2_RAM_BE(512, 142) + 175 23864 : `EL2_RAM_BE(512, 142) 176 : `EL2_RAM_BE(256, 142) 177 : `EL2_RAM_BE(128, 142) 178 : `EL2_RAM_BE(64, 142) @@ -309,7 +309,7 @@ 205 : `EL2_RAM_BE(1024, 52) 206 : `EL2_RAM_BE(512, 52) 207 : `EL2_RAM_BE(256, 52) - 208 17928 : `EL2_RAM_BE(128, 52) + 208 11932 : `EL2_RAM_BE(128, 52) 209 : `EL2_RAM_BE(64, 52) 210 : `EL2_RAM_BE(32, 52) 211 : `EL2_RAM_BE(4096, 104) diff --git a/html/main/coverage_dashboard/all_axi_csr_misa/index_rvjtag_tap.v.html b/html/main/coverage_dashboard/all_axi_csr_misa/index_rvjtag_tap.v.html index 0344e6d9d64..61292e2e8ef 100644 --- a/html/main/coverage_dashboard/all_axi_csr_misa/index_rvjtag_tap.v.html +++ b/html/main/coverage_dashboard/all_axi_csr_misa/index_rvjtag_tap.v.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index.html index 5ebc19a27c6..0dc8686ae08 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design.html index 743756d5a8c..207d43d486c 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_dbg.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_dbg.html index fc53866136a..f44ba985679 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_dbg.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_dbg.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_dec.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_dec.html index 8648a08236c..6b3fd216477 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_dec.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_dec.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_dmi.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_dmi.html index 18b8f85784c..4af8efca7de 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_dmi.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_dmi.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_exu.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_exu.html index c9cae732438..fb9d13a8073 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_exu.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_exu.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_ifu.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_ifu.html index 5c4d9e7a747..46939052bd4 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_ifu.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_ifu.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_include.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_include.html index c152508d316..a9103cc9b7a 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_include.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_include.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_lib.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_lib.html index d20c0a882a2..a7a84ec8e1c 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_lib.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_lib.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_lsu.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_lsu.html index 34639a04610..be7aa919ef0 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_lsu.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_Cores-VeeR-EL2_design_lsu.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_beh_lib.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_beh_lib.sv.html index 4b8c6b547bd..6df0113dca8 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_beh_lib.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_beh_lib.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_dmi_jtag_to_core_sync.v.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_dmi_jtag_to_core_sync.v.html index f364d42de4c..b02d1f0d1d8 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_dmi_jtag_to_core_sync.v.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_dmi_jtag_to_core_sync.v.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_dmi_mux.v.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_dmi_mux.v.html index c6099a1dd64..b125a44fbea 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_dmi_mux.v.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_dmi_mux.v.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_dmi_wrapper.v.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_dmi_wrapper.v.html index 018b735cb93..8ba04a1a5a4 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_dmi_wrapper.v.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_dmi_wrapper.v.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dbg.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dbg.sv.html index cc5eb0f5c20..05f25bd59c1 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dbg.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dbg.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec.sv.html index 67476b26ffb..601168c1222 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec_csr_equ_mu.svh.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec_csr_equ_mu.svh.html index d57b6763eb8..f55affb0951 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec_csr_equ_mu.svh.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec_csr_equ_mu.svh.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec_decode_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec_decode_ctl.sv.html index 9dca7ccd1e2..a4582f9f320 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec_decode_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec_decode_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec_gpr_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec_gpr_ctl.sv.html index 677be4471e5..e42982489ae 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec_gpr_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec_gpr_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec_ib_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec_ib_ctl.sv.html index 9ed83f57a8c..18f6f9d2e8b 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec_ib_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec_ib_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec_pmp_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec_pmp_ctl.sv.html index 85c3c27f6e1..6329ba6bf5e 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec_pmp_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec_pmp_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -248,10 +248,10 @@ 144 : for (genvar entry_idx = 0; entry_idx < pt.PMP_ENTRIES; entry_idx++) begin : gen_pmpaddr_ff 145 : logic pmpaddr_lock; 146 : logic pmpaddr_lock_next; - 147 : assign pmpaddr_lock_next = ((entry_idx+1 < pt.PMP_ENTRIES) - 148 : ? (entry_lock_eff[entry_idx+1] - 149 : & pmp_pmpcfg[entry_idx+1].mode == TOR) - 150 : : 1'b0); + 147 : if (entry_idx+1 < pt.PMP_ENTRIES) + 148 : assign pmpaddr_lock_next = entry_lock_eff[entry_idx+1] & pmp_pmpcfg[entry_idx+1].mode == TOR; + 149 : else + 150 : assign pmpaddr_lock_next = 1'b0; 151 : assign pmpaddr_lock = entry_lock_eff[entry_idx] | pmpaddr_lock_next; 152 : assign pmp_pmpaddr[entry_idx][31:30] = 2'b00; 153 : rvdffe #(30) pmpaddr_ff (.*, .clk(free_l2clk), diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec_tlu_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec_tlu_ctl.sv.html index 10878c131f5..5bd7a31545b 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec_tlu_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec_tlu_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec_trigger.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec_trigger.sv.html index c1f3d5d74ed..ba394d4b68a 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec_trigger.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dec_trigger.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dma_ctrl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dma_ctrl.sv.html index 9918eaa04d3..3c6bda0c6c5 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dma_ctrl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_dma_ctrl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_exu.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_exu.sv.html index ca5618ddac9..742c4524b04 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_exu.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_exu.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_exu_alu_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_exu_alu_ctl.sv.html index 2a81d487179..bb20f020f11 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_exu_alu_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_exu_alu_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_exu_div_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_exu_div_ctl.sv.html index d463b30b668..155284676db 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_exu_div_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_exu_div_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_exu_mul_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_exu_mul_ctl.sv.html index 72ffe42d935..43df54bca14 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_exu_mul_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_exu_mul_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu.sv.html index 857ac1dc4b0..54398bd87bb 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu_aln_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu_aln_ctl.sv.html index 03e838fd15d..9fa56144799 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu_aln_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu_aln_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu_bp_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu_bp_ctl.sv.html index 6d230b336c9..adcd74614a5 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu_bp_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu_bp_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu_compress_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu_compress_ctl.sv.html index 51660aefe4a..6799ca88c10 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu_compress_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu_compress_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu_ic_mem.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu_ic_mem.sv.html index 62561a6c323..99eb18e0fa3 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu_ic_mem.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu_ic_mem.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu_iccm_mem.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu_iccm_mem.sv.html index 49f4d724f50..7630b651781 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu_iccm_mem.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu_iccm_mem.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu_ifc_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu_ifc_ctl.sv.html index 4848444cbf3..2d105a8e78b 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu_ifc_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu_ifc_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu_mem_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu_mem_ctl.sv.html index c54e6fc90bc..b06524f71d6 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu_mem_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_ifu_mem_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lib.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lib.sv.html index dad3d3e297b..78265692f44 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lib.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lib.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu.sv.html index b5fc09ffcf0..7047414409e 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_addrcheck.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_addrcheck.sv.html index 9c3b90551e9..201c745ff0b 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_addrcheck.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_addrcheck.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_bus_buffer.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_bus_buffer.sv.html index 9c8db51059e..9f553df5947 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_bus_buffer.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_bus_buffer.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_bus_intf.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_bus_intf.sv.html index d2f0d92fc8b..aceb10fb9b0 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_bus_intf.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_bus_intf.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_clkdomain.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_clkdomain.sv.html index 5cdf5c281a7..d445ca0446c 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_clkdomain.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_clkdomain.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_dccm_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_dccm_ctl.sv.html index a592a26c65a..fea843fd182 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_dccm_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_dccm_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_dccm_mem.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_dccm_mem.sv.html index b08c76e5c3b..91753a83638 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_dccm_mem.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_dccm_mem.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_ecc.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_ecc.sv.html index fcc7cc050af..d86d29d401f 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_ecc.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_ecc.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_lsc_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_lsc_ctl.sv.html index ea85ca11a73..04b4a046352 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_lsc_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_lsc_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_stbuf.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_stbuf.sv.html index c520be59f8c..992edc5633a 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_stbuf.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_stbuf.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_trigger.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_trigger.sv.html index 9192199277e..edbf9ff7562 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_trigger.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_lsu_trigger.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_mem.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_mem.sv.html index dc76dc849b9..ff57eca29f7 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_mem.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_mem.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_mem_if.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_mem_if.sv.html index f21b2193a93..f2260dc2bdc 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_mem_if.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_mem_if.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_pic_ctrl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_pic_ctrl.sv.html index 97d764bc36c..95e6ddbc269 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_pic_ctrl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_pic_ctrl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_pmp.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_pmp.sv.html index 7ab6c5e9fc0..bf150f161aa 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_pmp.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_pmp.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_veer.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_veer.sv.html index c775dc44508..d97f23499ed 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_veer.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_veer.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_veer_wrapper.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_veer_wrapper.sv.html index e0359483946..3dbd43e89bf 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_veer_wrapper.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_el2_veer_wrapper.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_mem_lib.sv.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_mem_lib.sv.html index 4a60a3b14dc..862072c6be7 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_mem_lib.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_mem_lib.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_rvjtag_tap.v.html b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_rvjtag_tap.v.html index d601d3e6d63..6c42576b9aa 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_rvjtag_tap.v.html +++ b/html/main/coverage_dashboard/all_axi_csr_mseccfg/index_rvjtag_tap.v.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index.html index 8ded5b5bfe2..1cb53fa86f0 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design.html index f28aeabdb4e..2e2852a7b43 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_dbg.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_dbg.html index daad7416186..d798fb1863f 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_dbg.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_dbg.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_dec.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_dec.html index 04b83d36450..bd1cf9684d2 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_dec.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_dec.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_dmi.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_dmi.html index 383df2efcf1..28a95fe4100 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_dmi.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_dmi.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_exu.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_exu.html index d8618983b78..c064ccd6900 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_exu.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_exu.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_ifu.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_ifu.html index f4841b44a2c..cad53d4f566 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_ifu.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_ifu.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_include.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_include.html index 13d03627dda..f54aec3fc35 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_include.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_include.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_lib.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_lib.html index d6c283ac7f8..ce8299fb059 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_lib.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_lib.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_lsu.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_lsu.html index 7db9da85802..2d73685cf78 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_lsu.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_Cores-VeeR-EL2_design_lsu.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_beh_lib.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_beh_lib.sv.html index c7ec6c0576a..49bef463472 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_beh_lib.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_beh_lib.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_dmi_jtag_to_core_sync.v.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_dmi_jtag_to_core_sync.v.html index 99ff3f3ce7e..b4f21a6b5fc 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_dmi_jtag_to_core_sync.v.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_dmi_jtag_to_core_sync.v.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_dmi_mux.v.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_dmi_mux.v.html index f663822bff6..17b9311d388 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_dmi_mux.v.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_dmi_mux.v.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_dmi_wrapper.v.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_dmi_wrapper.v.html index 434fa4f2aa2..fd68940a4d7 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_dmi_wrapper.v.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_dmi_wrapper.v.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dbg.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dbg.sv.html index 347a22abd03..17b872be223 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dbg.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dbg.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec.sv.html index 2362a18b175..e4be791237b 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec_csr_equ_mu.svh.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec_csr_equ_mu.svh.html index bf85bb59c2a..30cabebc4eb 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec_csr_equ_mu.svh.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec_csr_equ_mu.svh.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec_decode_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec_decode_ctl.sv.html index d9785ca0d4a..e2f7853eaf5 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec_decode_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec_decode_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec_gpr_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec_gpr_ctl.sv.html index d65dc275305..d267cfce8a5 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec_gpr_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec_gpr_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec_ib_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec_ib_ctl.sv.html index 10649053913..1694df52e5c 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec_ib_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec_ib_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec_pmp_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec_pmp_ctl.sv.html index 0a8d16490c3..4863028412c 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec_pmp_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec_pmp_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 @@ -248,10 +248,10 @@ 144 : for (genvar entry_idx = 0; entry_idx < pt.PMP_ENTRIES; entry_idx++) begin : gen_pmpaddr_ff 145 : logic pmpaddr_lock; 146 : logic pmpaddr_lock_next; - 147 : assign pmpaddr_lock_next = ((entry_idx+1 < pt.PMP_ENTRIES) - 148 : ? (entry_lock_eff[entry_idx+1] - 149 : & pmp_pmpcfg[entry_idx+1].mode == TOR) - 150 : : 1'b0); + 147 : if (entry_idx+1 < pt.PMP_ENTRIES) + 148 : assign pmpaddr_lock_next = entry_lock_eff[entry_idx+1] & pmp_pmpcfg[entry_idx+1].mode == TOR; + 149 : else + 150 : assign pmpaddr_lock_next = 1'b0; 151 : assign pmpaddr_lock = entry_lock_eff[entry_idx] | pmpaddr_lock_next; 152 : assign pmp_pmpaddr[entry_idx][31:30] = 2'b00; 153 : rvdffe #(30) pmpaddr_ff (.*, .clk(free_l2clk), diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec_tlu_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec_tlu_ctl.sv.html index a8f8b013db3..45003d877c8 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec_tlu_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec_tlu_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec_trigger.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec_trigger.sv.html index d2a557691c3..018dedda3bd 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec_trigger.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dec_trigger.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dma_ctrl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dma_ctrl.sv.html index f49b912829f..55b7ecee0b0 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dma_ctrl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_dma_ctrl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_exu.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_exu.sv.html index eea90a73d21..fd6b69c0d2d 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_exu.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_exu.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_exu_alu_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_exu_alu_ctl.sv.html index ad3f78f6089..1afc74770a4 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_exu_alu_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_exu_alu_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_exu_div_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_exu_div_ctl.sv.html index 6baf40c4652..38314d9cf1c 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_exu_div_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_exu_div_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_exu_mul_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_exu_mul_ctl.sv.html index a9134cd1f38..47007e14036 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_exu_mul_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_exu_mul_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu.sv.html index a93a848b4bb..03d3a66c39a 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu_aln_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu_aln_ctl.sv.html index 6b51f164657..8aecfa1769a 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu_aln_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu_aln_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu_bp_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu_bp_ctl.sv.html index e4b1f9808e4..acecd6d2e5b 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu_bp_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu_bp_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu_compress_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu_compress_ctl.sv.html index f5a1ec4b108..dff1a126980 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu_compress_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu_compress_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu_ic_mem.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu_ic_mem.sv.html index f56a7dc5d96..369b3a727e5 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu_ic_mem.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu_ic_mem.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu_iccm_mem.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu_iccm_mem.sv.html index b279b0683d3..2fc0c1cec98 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu_iccm_mem.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu_iccm_mem.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu_ifc_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu_ifc_ctl.sv.html index b54b29cf215..5edeadcf796 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu_ifc_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu_ifc_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu_mem_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu_mem_ctl.sv.html index 9741384a926..f0cebe845da 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu_mem_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_ifu_mem_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lib.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lib.sv.html index d222d7882a4..0e5abb46ec8 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lib.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lib.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu.sv.html index 8baad68baa4..b1bb4d37c82 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_addrcheck.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_addrcheck.sv.html index 7797991b9cf..8f264d4f2c2 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_addrcheck.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_addrcheck.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_bus_buffer.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_bus_buffer.sv.html index 79e421d6264..74dd9138913 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_bus_buffer.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_bus_buffer.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_bus_intf.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_bus_intf.sv.html index a993821bc9b..94fc59b0dce 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_bus_intf.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_bus_intf.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_clkdomain.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_clkdomain.sv.html index 8d479eb503a..27e9cf8b306 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_clkdomain.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_clkdomain.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_dccm_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_dccm_ctl.sv.html index d40f3481b73..9adb7cbbc4e 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_dccm_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_dccm_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_dccm_mem.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_dccm_mem.sv.html index f892530a286..292ac634c68 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_dccm_mem.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_dccm_mem.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_ecc.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_ecc.sv.html index a684b15b525..5d8c513983b 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_ecc.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_ecc.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_lsc_ctl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_lsc_ctl.sv.html index ebdeaee9d32..0b8305b8dff 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_lsc_ctl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_lsc_ctl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_stbuf.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_stbuf.sv.html index 859dcc910a5..c93d95a81f7 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_stbuf.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_stbuf.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_trigger.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_trigger.sv.html index 4d91c2c6c6d..f5cedbb8e89 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_trigger.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_lsu_trigger.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_mem.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_mem.sv.html index 8e2d4f784ae..dec23c75bf9 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_mem.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_mem.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_mem_if.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_mem_if.sv.html index b05937cf228..0e4f104c7f5 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_mem_if.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_mem_if.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_pic_ctrl.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_pic_ctrl.sv.html index 5ce1b6aadb5..182c9ec31ad 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_pic_ctrl.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_pic_ctrl.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_pmp.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_pmp.sv.html index de7bfe14793..b39805cc584 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_pmp.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_pmp.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_veer.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_veer.sv.html index 727fe62a1cf..43acddea1ae 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_veer.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_veer.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_veer_wrapper.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_veer_wrapper.sv.html index eafca16c643..00fc2e87e88 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_veer_wrapper.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_el2_veer_wrapper.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_mem_lib.sv.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_mem_lib.sv.html index 2b84df51e38..b9bb99f99e8 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_mem_lib.sv.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_mem_lib.sv.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_rvjtag_tap.v.html b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_rvjtag_tap.v.html index 1317957df93..eaaaec3be8f 100644 --- a/html/main/coverage_dashboard/all_axi_csr_mstatus/index_rvjtag_tap.v.html +++ b/html/main/coverage_dashboard/all_axi_csr_mstatus/index_rvjtag_tap.v.html @@ -51,7 +51,7 @@ Test Date: - 19-09-2024 + 25-09-2024 diff --git a/html/main/coverage_dashboard/all_axi_dhry/index.html b/html/main/coverage_dashboard/all_axi_dhry/index.html index e862a8f0650..324221403db 100644 --- a/html/main/coverage_dashboard/all_axi_dhry/index.html +++ b/html/main/coverage_dashboard/all_axi_dhry/index.html @@ -51,21 +51,21 @@ @@ -139,21 +139,21 @@ - Test Date: - 19-09-2024 + 25-09-2024 Toggle -- 42.3% + + 42.1% - 2172 + 2182 - 5131 + 5178   +