Predictor hash check

This commit is contained in:
waleed-lm 2020-10-06 09:20:49 +05:00
parent b8cfacda88
commit 1abfa096d5
31 changed files with 25887 additions and 25875 deletions

View File

@ -1,17 +1,32 @@
[ [
{ {
"class":"firrtl.transforms.CombinationalPath", "class":"firrtl.transforms.CombinationalPath",
"sink":"~EL2_IC_TAG|EL2_IC_TAG>io_test", "sink":"~EL2_IC_TAG|EL2_IC_TAG>io_test_1",
"sources":[ "sources":[
"~EL2_IC_TAG|EL2_IC_TAG>io_ic_wr_en",
"~EL2_IC_TAG|EL2_IC_TAG>io_ic_debug_way",
"~EL2_IC_TAG|EL2_IC_TAG>io_ic_rw_addr", "~EL2_IC_TAG|EL2_IC_TAG>io_ic_rw_addr",
"~EL2_IC_TAG|EL2_IC_TAG>io_ic_debug_addr", "~EL2_IC_TAG|EL2_IC_TAG>io_ic_debug_addr",
"~EL2_IC_TAG|EL2_IC_TAG>io_ic_wr_en",
"~EL2_IC_TAG|EL2_IC_TAG>io_ic_debug_way",
"~EL2_IC_TAG|EL2_IC_TAG>io_ic_debug_rd_en",
"~EL2_IC_TAG|EL2_IC_TAG>io_ic_debug_wr_en", "~EL2_IC_TAG|EL2_IC_TAG>io_ic_debug_wr_en",
"~EL2_IC_TAG|EL2_IC_TAG>io_ic_debug_tag_array",
"~EL2_IC_TAG|EL2_IC_TAG>io_ic_rd_en", "~EL2_IC_TAG|EL2_IC_TAG>io_ic_rd_en",
"~EL2_IC_TAG|EL2_IC_TAG>io_clk_override", "~EL2_IC_TAG|EL2_IC_TAG>io_clk_override",
"~EL2_IC_TAG|EL2_IC_TAG>io_ic_debug_rd_en" "~EL2_IC_TAG|EL2_IC_TAG>io_ic_debug_tag_array"
]
},
{
"class":"firrtl.transforms.CombinationalPath",
"sink":"~EL2_IC_TAG|EL2_IC_TAG>io_test_0",
"sources":[
"~EL2_IC_TAG|EL2_IC_TAG>io_ic_rw_addr",
"~EL2_IC_TAG|EL2_IC_TAG>io_ic_debug_addr",
"~EL2_IC_TAG|EL2_IC_TAG>io_ic_wr_en",
"~EL2_IC_TAG|EL2_IC_TAG>io_ic_debug_way",
"~EL2_IC_TAG|EL2_IC_TAG>io_ic_debug_rd_en",
"~EL2_IC_TAG|EL2_IC_TAG>io_ic_debug_wr_en",
"~EL2_IC_TAG|EL2_IC_TAG>io_ic_rd_en",
"~EL2_IC_TAG|EL2_IC_TAG>io_clk_override",
"~EL2_IC_TAG|EL2_IC_TAG>io_ic_debug_tag_array"
] ]
}, },
{ {

View File

@ -3,7 +3,7 @@ circuit EL2_IC_TAG :
module EL2_IC_TAG : module EL2_IC_TAG :
input clock : Clock input clock : Clock
input reset : UInt<1> input reset : UInt<1>
output io : {flip clk_override : UInt<1>, flip dec_tlu_core_ecc_disable : UInt<1>, flip ic_rw_addr : UInt<29>, flip ic_wr_en : UInt<2>, flip ic_tag_valid : UInt<2>, flip ic_rd_en : UInt<1>, flip ic_debug_addr : UInt<10>, flip ic_debug_rd_en : UInt<1>, flip ic_debug_wr_en : UInt<1>, flip ic_debug_tag_array : UInt<1>, flip ic_debug_way : UInt<2>, ictag_debug_rd_data : UInt<26>, flip ic_debug_wr_data : UInt<71>, ic_rd_hit : UInt<2>, ic_tag_perr : UInt<1>, flip scan_mode : UInt<1>, test : UInt} output io : {flip clk_override : UInt<1>, flip dec_tlu_core_ecc_disable : UInt<1>, flip ic_rw_addr : UInt<29>, flip ic_wr_en : UInt<2>, flip ic_tag_valid : UInt<2>, flip ic_rd_en : UInt<1>, flip ic_debug_addr : UInt<10>, flip ic_debug_rd_en : UInt<1>, flip ic_debug_wr_en : UInt<1>, flip ic_debug_tag_array : UInt<1>, flip ic_debug_way : UInt<2>, ictag_debug_rd_data : UInt<26>, flip ic_debug_wr_data : UInt<71>, ic_rd_hit : UInt<2>, ic_tag_perr : UInt<1>, flip scan_mode : UInt<1>, test : UInt[2]}
io.ictag_debug_rd_data <= UInt<1>("h00") @[el2_ifu_ic_mem.scala 64:26] io.ictag_debug_rd_data <= UInt<1>("h00") @[el2_ifu_ic_mem.scala 64:26]
io.ic_rd_hit <= UInt<1>("h00") @[el2_ifu_ic_mem.scala 65:16] io.ic_rd_hit <= UInt<1>("h00") @[el2_ifu_ic_mem.scala 65:16]
@ -42,295 +42,295 @@ circuit EL2_IC_TAG :
node _T_18 = mux(UInt<1>("h00"), UInt<13>("h01fff"), UInt<13>("h00")) @[Bitwise.scala 72:12] node _T_18 = mux(UInt<1>("h00"), UInt<13>("h01fff"), UInt<13>("h00")) @[Bitwise.scala 72:12]
node _T_19 = bits(io.ic_rw_addr, 28, 10) @[el2_ifu_ic_mem.scala 84:89] node _T_19 = bits(io.ic_rw_addr, 28, 10) @[el2_ifu_ic_mem.scala 84:89]
node _T_20 = cat(_T_18, _T_19) @[Cat.scala 29:58] node _T_20 = cat(_T_18, _T_19) @[Cat.scala 29:58]
wire _T_21 : UInt<1>[18] @[el2_lib.scala 236:18] wire _T_21 : UInt<1>[18] @[el2_lib.scala 237:18]
wire _T_22 : UInt<1>[18] @[el2_lib.scala 237:18] wire _T_22 : UInt<1>[18] @[el2_lib.scala 238:18]
wire _T_23 : UInt<1>[18] @[el2_lib.scala 238:18] wire _T_23 : UInt<1>[18] @[el2_lib.scala 239:18]
wire _T_24 : UInt<1>[15] @[el2_lib.scala 239:18] wire _T_24 : UInt<1>[15] @[el2_lib.scala 240:18]
wire _T_25 : UInt<1>[15] @[el2_lib.scala 240:18] wire _T_25 : UInt<1>[15] @[el2_lib.scala 241:18]
wire _T_26 : UInt<1>[6] @[el2_lib.scala 241:18] wire _T_26 : UInt<1>[6] @[el2_lib.scala 242:18]
node _T_27 = bits(_T_20, 0, 0) @[el2_lib.scala 248:36] node _T_27 = bits(_T_20, 0, 0) @[el2_lib.scala 249:36]
_T_22[0] <= _T_27 @[el2_lib.scala 248:30] _T_22[0] <= _T_27 @[el2_lib.scala 249:30]
node _T_28 = bits(_T_20, 0, 0) @[el2_lib.scala 249:36] node _T_28 = bits(_T_20, 0, 0) @[el2_lib.scala 250:36]
_T_23[0] <= _T_28 @[el2_lib.scala 249:30] _T_23[0] <= _T_28 @[el2_lib.scala 250:30]
node _T_29 = bits(_T_20, 0, 0) @[el2_lib.scala 252:36] node _T_29 = bits(_T_20, 0, 0) @[el2_lib.scala 253:36]
_T_26[0] <= _T_29 @[el2_lib.scala 252:30] _T_26[0] <= _T_29 @[el2_lib.scala 253:30]
node _T_30 = bits(_T_20, 1, 1) @[el2_lib.scala 247:36] node _T_30 = bits(_T_20, 1, 1) @[el2_lib.scala 248:36]
_T_21[0] <= _T_30 @[el2_lib.scala 247:30] _T_21[0] <= _T_30 @[el2_lib.scala 248:30]
node _T_31 = bits(_T_20, 1, 1) @[el2_lib.scala 249:36] node _T_31 = bits(_T_20, 1, 1) @[el2_lib.scala 250:36]
_T_23[1] <= _T_31 @[el2_lib.scala 249:30] _T_23[1] <= _T_31 @[el2_lib.scala 250:30]
node _T_32 = bits(_T_20, 1, 1) @[el2_lib.scala 252:36] node _T_32 = bits(_T_20, 1, 1) @[el2_lib.scala 253:36]
_T_26[1] <= _T_32 @[el2_lib.scala 252:30] _T_26[1] <= _T_32 @[el2_lib.scala 253:30]
node _T_33 = bits(_T_20, 2, 2) @[el2_lib.scala 249:36] node _T_33 = bits(_T_20, 2, 2) @[el2_lib.scala 250:36]
_T_23[2] <= _T_33 @[el2_lib.scala 249:30] _T_23[2] <= _T_33 @[el2_lib.scala 250:30]
node _T_34 = bits(_T_20, 2, 2) @[el2_lib.scala 252:36] node _T_34 = bits(_T_20, 2, 2) @[el2_lib.scala 253:36]
_T_26[2] <= _T_34 @[el2_lib.scala 252:30] _T_26[2] <= _T_34 @[el2_lib.scala 253:30]
node _T_35 = bits(_T_20, 3, 3) @[el2_lib.scala 247:36] node _T_35 = bits(_T_20, 3, 3) @[el2_lib.scala 248:36]
_T_21[1] <= _T_35 @[el2_lib.scala 247:30] _T_21[1] <= _T_35 @[el2_lib.scala 248:30]
node _T_36 = bits(_T_20, 3, 3) @[el2_lib.scala 248:36] node _T_36 = bits(_T_20, 3, 3) @[el2_lib.scala 249:36]
_T_22[1] <= _T_36 @[el2_lib.scala 248:30] _T_22[1] <= _T_36 @[el2_lib.scala 249:30]
node _T_37 = bits(_T_20, 3, 3) @[el2_lib.scala 252:36] node _T_37 = bits(_T_20, 3, 3) @[el2_lib.scala 253:36]
_T_26[3] <= _T_37 @[el2_lib.scala 252:30] _T_26[3] <= _T_37 @[el2_lib.scala 253:30]
node _T_38 = bits(_T_20, 4, 4) @[el2_lib.scala 248:36] node _T_38 = bits(_T_20, 4, 4) @[el2_lib.scala 249:36]
_T_22[2] <= _T_38 @[el2_lib.scala 248:30] _T_22[2] <= _T_38 @[el2_lib.scala 249:30]
node _T_39 = bits(_T_20, 4, 4) @[el2_lib.scala 252:36] node _T_39 = bits(_T_20, 4, 4) @[el2_lib.scala 253:36]
_T_26[4] <= _T_39 @[el2_lib.scala 252:30] _T_26[4] <= _T_39 @[el2_lib.scala 253:30]
node _T_40 = bits(_T_20, 5, 5) @[el2_lib.scala 247:36] node _T_40 = bits(_T_20, 5, 5) @[el2_lib.scala 248:36]
_T_21[2] <= _T_40 @[el2_lib.scala 247:30] _T_21[2] <= _T_40 @[el2_lib.scala 248:30]
node _T_41 = bits(_T_20, 5, 5) @[el2_lib.scala 252:36] node _T_41 = bits(_T_20, 5, 5) @[el2_lib.scala 253:36]
_T_26[5] <= _T_41 @[el2_lib.scala 252:30] _T_26[5] <= _T_41 @[el2_lib.scala 253:30]
node _T_42 = bits(_T_20, 6, 6) @[el2_lib.scala 247:36] node _T_42 = bits(_T_20, 6, 6) @[el2_lib.scala 248:36]
_T_21[3] <= _T_42 @[el2_lib.scala 247:30] _T_21[3] <= _T_42 @[el2_lib.scala 248:30]
node _T_43 = bits(_T_20, 6, 6) @[el2_lib.scala 248:36] node _T_43 = bits(_T_20, 6, 6) @[el2_lib.scala 249:36]
_T_22[3] <= _T_43 @[el2_lib.scala 248:30] _T_22[3] <= _T_43 @[el2_lib.scala 249:30]
node _T_44 = bits(_T_20, 6, 6) @[el2_lib.scala 249:36] node _T_44 = bits(_T_20, 6, 6) @[el2_lib.scala 250:36]
_T_23[3] <= _T_44 @[el2_lib.scala 249:30] _T_23[3] <= _T_44 @[el2_lib.scala 250:30]
node _T_45 = bits(_T_20, 6, 6) @[el2_lib.scala 250:36] node _T_45 = bits(_T_20, 6, 6) @[el2_lib.scala 251:36]
_T_24[0] <= _T_45 @[el2_lib.scala 250:30] _T_24[0] <= _T_45 @[el2_lib.scala 251:30]
node _T_46 = bits(_T_20, 6, 6) @[el2_lib.scala 251:36] node _T_46 = bits(_T_20, 6, 6) @[el2_lib.scala 252:36]
_T_25[0] <= _T_46 @[el2_lib.scala 251:30] _T_25[0] <= _T_46 @[el2_lib.scala 252:30]
node _T_47 = bits(_T_20, 7, 7) @[el2_lib.scala 248:36] node _T_47 = bits(_T_20, 7, 7) @[el2_lib.scala 249:36]
_T_22[4] <= _T_47 @[el2_lib.scala 248:30] _T_22[4] <= _T_47 @[el2_lib.scala 249:30]
node _T_48 = bits(_T_20, 7, 7) @[el2_lib.scala 249:36] node _T_48 = bits(_T_20, 7, 7) @[el2_lib.scala 250:36]
_T_23[4] <= _T_48 @[el2_lib.scala 249:30] _T_23[4] <= _T_48 @[el2_lib.scala 250:30]
node _T_49 = bits(_T_20, 7, 7) @[el2_lib.scala 250:36] node _T_49 = bits(_T_20, 7, 7) @[el2_lib.scala 251:36]
_T_24[1] <= _T_49 @[el2_lib.scala 250:30] _T_24[1] <= _T_49 @[el2_lib.scala 251:30]
node _T_50 = bits(_T_20, 7, 7) @[el2_lib.scala 251:36] node _T_50 = bits(_T_20, 7, 7) @[el2_lib.scala 252:36]
_T_25[1] <= _T_50 @[el2_lib.scala 251:30] _T_25[1] <= _T_50 @[el2_lib.scala 252:30]
node _T_51 = bits(_T_20, 8, 8) @[el2_lib.scala 247:36] node _T_51 = bits(_T_20, 8, 8) @[el2_lib.scala 248:36]
_T_21[4] <= _T_51 @[el2_lib.scala 247:30] _T_21[4] <= _T_51 @[el2_lib.scala 248:30]
node _T_52 = bits(_T_20, 8, 8) @[el2_lib.scala 249:36] node _T_52 = bits(_T_20, 8, 8) @[el2_lib.scala 250:36]
_T_23[5] <= _T_52 @[el2_lib.scala 249:30] _T_23[5] <= _T_52 @[el2_lib.scala 250:30]
node _T_53 = bits(_T_20, 8, 8) @[el2_lib.scala 250:36] node _T_53 = bits(_T_20, 8, 8) @[el2_lib.scala 251:36]
_T_24[2] <= _T_53 @[el2_lib.scala 250:30] _T_24[2] <= _T_53 @[el2_lib.scala 251:30]
node _T_54 = bits(_T_20, 8, 8) @[el2_lib.scala 251:36] node _T_54 = bits(_T_20, 8, 8) @[el2_lib.scala 252:36]
_T_25[2] <= _T_54 @[el2_lib.scala 251:30] _T_25[2] <= _T_54 @[el2_lib.scala 252:30]
node _T_55 = bits(_T_20, 9, 9) @[el2_lib.scala 249:36] node _T_55 = bits(_T_20, 9, 9) @[el2_lib.scala 250:36]
_T_23[6] <= _T_55 @[el2_lib.scala 249:30] _T_23[6] <= _T_55 @[el2_lib.scala 250:30]
node _T_56 = bits(_T_20, 9, 9) @[el2_lib.scala 250:36] node _T_56 = bits(_T_20, 9, 9) @[el2_lib.scala 251:36]
_T_24[3] <= _T_56 @[el2_lib.scala 250:30] _T_24[3] <= _T_56 @[el2_lib.scala 251:30]
node _T_57 = bits(_T_20, 9, 9) @[el2_lib.scala 251:36] node _T_57 = bits(_T_20, 9, 9) @[el2_lib.scala 252:36]
_T_25[3] <= _T_57 @[el2_lib.scala 251:30] _T_25[3] <= _T_57 @[el2_lib.scala 252:30]
node _T_58 = bits(_T_20, 10, 10) @[el2_lib.scala 247:36] node _T_58 = bits(_T_20, 10, 10) @[el2_lib.scala 248:36]
_T_21[5] <= _T_58 @[el2_lib.scala 247:30] _T_21[5] <= _T_58 @[el2_lib.scala 248:30]
node _T_59 = bits(_T_20, 10, 10) @[el2_lib.scala 248:36] node _T_59 = bits(_T_20, 10, 10) @[el2_lib.scala 249:36]
_T_22[5] <= _T_59 @[el2_lib.scala 248:30] _T_22[5] <= _T_59 @[el2_lib.scala 249:30]
node _T_60 = bits(_T_20, 10, 10) @[el2_lib.scala 250:36] node _T_60 = bits(_T_20, 10, 10) @[el2_lib.scala 251:36]
_T_24[4] <= _T_60 @[el2_lib.scala 250:30] _T_24[4] <= _T_60 @[el2_lib.scala 251:30]
node _T_61 = bits(_T_20, 10, 10) @[el2_lib.scala 251:36] node _T_61 = bits(_T_20, 10, 10) @[el2_lib.scala 252:36]
_T_25[4] <= _T_61 @[el2_lib.scala 251:30] _T_25[4] <= _T_61 @[el2_lib.scala 252:30]
node _T_62 = bits(_T_20, 11, 11) @[el2_lib.scala 248:36] node _T_62 = bits(_T_20, 11, 11) @[el2_lib.scala 249:36]
_T_22[6] <= _T_62 @[el2_lib.scala 248:30] _T_22[6] <= _T_62 @[el2_lib.scala 249:30]
node _T_63 = bits(_T_20, 11, 11) @[el2_lib.scala 250:36] node _T_63 = bits(_T_20, 11, 11) @[el2_lib.scala 251:36]
_T_24[5] <= _T_63 @[el2_lib.scala 250:30] _T_24[5] <= _T_63 @[el2_lib.scala 251:30]
node _T_64 = bits(_T_20, 11, 11) @[el2_lib.scala 251:36] node _T_64 = bits(_T_20, 11, 11) @[el2_lib.scala 252:36]
_T_25[5] <= _T_64 @[el2_lib.scala 251:30] _T_25[5] <= _T_64 @[el2_lib.scala 252:30]
node _T_65 = bits(_T_20, 12, 12) @[el2_lib.scala 247:36] node _T_65 = bits(_T_20, 12, 12) @[el2_lib.scala 248:36]
_T_21[6] <= _T_65 @[el2_lib.scala 247:30] _T_21[6] <= _T_65 @[el2_lib.scala 248:30]
node _T_66 = bits(_T_20, 12, 12) @[el2_lib.scala 250:36] node _T_66 = bits(_T_20, 12, 12) @[el2_lib.scala 251:36]
_T_24[6] <= _T_66 @[el2_lib.scala 250:30] _T_24[6] <= _T_66 @[el2_lib.scala 251:30]
node _T_67 = bits(_T_20, 12, 12) @[el2_lib.scala 251:36] node _T_67 = bits(_T_20, 12, 12) @[el2_lib.scala 252:36]
_T_25[6] <= _T_67 @[el2_lib.scala 251:30] _T_25[6] <= _T_67 @[el2_lib.scala 252:30]
node _T_68 = bits(_T_20, 13, 13) @[el2_lib.scala 250:36] node _T_68 = bits(_T_20, 13, 13) @[el2_lib.scala 251:36]
_T_24[7] <= _T_68 @[el2_lib.scala 250:30] _T_24[7] <= _T_68 @[el2_lib.scala 251:30]
node _T_69 = bits(_T_20, 13, 13) @[el2_lib.scala 251:36] node _T_69 = bits(_T_20, 13, 13) @[el2_lib.scala 252:36]
_T_25[7] <= _T_69 @[el2_lib.scala 251:30] _T_25[7] <= _T_69 @[el2_lib.scala 252:30]
node _T_70 = bits(_T_20, 14, 14) @[el2_lib.scala 247:36] node _T_70 = bits(_T_20, 14, 14) @[el2_lib.scala 248:36]
_T_21[7] <= _T_70 @[el2_lib.scala 247:30] _T_21[7] <= _T_70 @[el2_lib.scala 248:30]
node _T_71 = bits(_T_20, 14, 14) @[el2_lib.scala 248:36] node _T_71 = bits(_T_20, 14, 14) @[el2_lib.scala 249:36]
_T_22[7] <= _T_71 @[el2_lib.scala 248:30] _T_22[7] <= _T_71 @[el2_lib.scala 249:30]
node _T_72 = bits(_T_20, 14, 14) @[el2_lib.scala 249:36] node _T_72 = bits(_T_20, 14, 14) @[el2_lib.scala 250:36]
_T_23[7] <= _T_72 @[el2_lib.scala 249:30] _T_23[7] <= _T_72 @[el2_lib.scala 250:30]
node _T_73 = bits(_T_20, 14, 14) @[el2_lib.scala 251:36] node _T_73 = bits(_T_20, 14, 14) @[el2_lib.scala 252:36]
_T_25[8] <= _T_73 @[el2_lib.scala 251:30] _T_25[8] <= _T_73 @[el2_lib.scala 252:30]
node _T_74 = bits(_T_20, 15, 15) @[el2_lib.scala 248:36] node _T_74 = bits(_T_20, 15, 15) @[el2_lib.scala 249:36]
_T_22[8] <= _T_74 @[el2_lib.scala 248:30] _T_22[8] <= _T_74 @[el2_lib.scala 249:30]
node _T_75 = bits(_T_20, 15, 15) @[el2_lib.scala 249:36] node _T_75 = bits(_T_20, 15, 15) @[el2_lib.scala 250:36]
_T_23[8] <= _T_75 @[el2_lib.scala 249:30] _T_23[8] <= _T_75 @[el2_lib.scala 250:30]
node _T_76 = bits(_T_20, 15, 15) @[el2_lib.scala 251:36] node _T_76 = bits(_T_20, 15, 15) @[el2_lib.scala 252:36]
_T_25[9] <= _T_76 @[el2_lib.scala 251:30] _T_25[9] <= _T_76 @[el2_lib.scala 252:30]
node _T_77 = bits(_T_20, 16, 16) @[el2_lib.scala 247:36] node _T_77 = bits(_T_20, 16, 16) @[el2_lib.scala 248:36]
_T_21[8] <= _T_77 @[el2_lib.scala 247:30] _T_21[8] <= _T_77 @[el2_lib.scala 248:30]
node _T_78 = bits(_T_20, 16, 16) @[el2_lib.scala 249:36] node _T_78 = bits(_T_20, 16, 16) @[el2_lib.scala 250:36]
_T_23[9] <= _T_78 @[el2_lib.scala 249:30] _T_23[9] <= _T_78 @[el2_lib.scala 250:30]
node _T_79 = bits(_T_20, 16, 16) @[el2_lib.scala 251:36] node _T_79 = bits(_T_20, 16, 16) @[el2_lib.scala 252:36]
_T_25[10] <= _T_79 @[el2_lib.scala 251:30] _T_25[10] <= _T_79 @[el2_lib.scala 252:30]
node _T_80 = bits(_T_20, 17, 17) @[el2_lib.scala 249:36] node _T_80 = bits(_T_20, 17, 17) @[el2_lib.scala 250:36]
_T_23[10] <= _T_80 @[el2_lib.scala 249:30] _T_23[10] <= _T_80 @[el2_lib.scala 250:30]
node _T_81 = bits(_T_20, 17, 17) @[el2_lib.scala 251:36] node _T_81 = bits(_T_20, 17, 17) @[el2_lib.scala 252:36]
_T_25[11] <= _T_81 @[el2_lib.scala 251:30] _T_25[11] <= _T_81 @[el2_lib.scala 252:30]
node _T_82 = bits(_T_20, 18, 18) @[el2_lib.scala 247:36] node _T_82 = bits(_T_20, 18, 18) @[el2_lib.scala 248:36]
_T_21[9] <= _T_82 @[el2_lib.scala 247:30] _T_21[9] <= _T_82 @[el2_lib.scala 248:30]
node _T_83 = bits(_T_20, 18, 18) @[el2_lib.scala 248:36] node _T_83 = bits(_T_20, 18, 18) @[el2_lib.scala 249:36]
_T_22[9] <= _T_83 @[el2_lib.scala 248:30] _T_22[9] <= _T_83 @[el2_lib.scala 249:30]
node _T_84 = bits(_T_20, 18, 18) @[el2_lib.scala 251:36] node _T_84 = bits(_T_20, 18, 18) @[el2_lib.scala 252:36]
_T_25[12] <= _T_84 @[el2_lib.scala 251:30] _T_25[12] <= _T_84 @[el2_lib.scala 252:30]
node _T_85 = bits(_T_20, 19, 19) @[el2_lib.scala 248:36] node _T_85 = bits(_T_20, 19, 19) @[el2_lib.scala 249:36]
_T_22[10] <= _T_85 @[el2_lib.scala 248:30] _T_22[10] <= _T_85 @[el2_lib.scala 249:30]
node _T_86 = bits(_T_20, 19, 19) @[el2_lib.scala 251:36] node _T_86 = bits(_T_20, 19, 19) @[el2_lib.scala 252:36]
_T_25[13] <= _T_86 @[el2_lib.scala 251:30] _T_25[13] <= _T_86 @[el2_lib.scala 252:30]
node _T_87 = bits(_T_20, 20, 20) @[el2_lib.scala 247:36] node _T_87 = bits(_T_20, 20, 20) @[el2_lib.scala 248:36]
_T_21[10] <= _T_87 @[el2_lib.scala 247:30] _T_21[10] <= _T_87 @[el2_lib.scala 248:30]
node _T_88 = bits(_T_20, 20, 20) @[el2_lib.scala 251:36] node _T_88 = bits(_T_20, 20, 20) @[el2_lib.scala 252:36]
_T_25[14] <= _T_88 @[el2_lib.scala 251:30] _T_25[14] <= _T_88 @[el2_lib.scala 252:30]
node _T_89 = bits(_T_20, 21, 21) @[el2_lib.scala 247:36] node _T_89 = bits(_T_20, 21, 21) @[el2_lib.scala 248:36]
_T_21[11] <= _T_89 @[el2_lib.scala 247:30] _T_21[11] <= _T_89 @[el2_lib.scala 248:30]
node _T_90 = bits(_T_20, 21, 21) @[el2_lib.scala 248:36] node _T_90 = bits(_T_20, 21, 21) @[el2_lib.scala 249:36]
_T_22[11] <= _T_90 @[el2_lib.scala 248:30] _T_22[11] <= _T_90 @[el2_lib.scala 249:30]
node _T_91 = bits(_T_20, 21, 21) @[el2_lib.scala 249:36] node _T_91 = bits(_T_20, 21, 21) @[el2_lib.scala 250:36]
_T_23[11] <= _T_91 @[el2_lib.scala 249:30] _T_23[11] <= _T_91 @[el2_lib.scala 250:30]
node _T_92 = bits(_T_20, 21, 21) @[el2_lib.scala 250:36] node _T_92 = bits(_T_20, 21, 21) @[el2_lib.scala 251:36]
_T_24[8] <= _T_92 @[el2_lib.scala 250:30] _T_24[8] <= _T_92 @[el2_lib.scala 251:30]
node _T_93 = bits(_T_20, 22, 22) @[el2_lib.scala 248:36] node _T_93 = bits(_T_20, 22, 22) @[el2_lib.scala 249:36]
_T_22[12] <= _T_93 @[el2_lib.scala 248:30] _T_22[12] <= _T_93 @[el2_lib.scala 249:30]
node _T_94 = bits(_T_20, 22, 22) @[el2_lib.scala 249:36] node _T_94 = bits(_T_20, 22, 22) @[el2_lib.scala 250:36]
_T_23[12] <= _T_94 @[el2_lib.scala 249:30] _T_23[12] <= _T_94 @[el2_lib.scala 250:30]
node _T_95 = bits(_T_20, 22, 22) @[el2_lib.scala 250:36] node _T_95 = bits(_T_20, 22, 22) @[el2_lib.scala 251:36]
_T_24[9] <= _T_95 @[el2_lib.scala 250:30] _T_24[9] <= _T_95 @[el2_lib.scala 251:30]
node _T_96 = bits(_T_20, 23, 23) @[el2_lib.scala 247:36] node _T_96 = bits(_T_20, 23, 23) @[el2_lib.scala 248:36]
_T_21[12] <= _T_96 @[el2_lib.scala 247:30] _T_21[12] <= _T_96 @[el2_lib.scala 248:30]
node _T_97 = bits(_T_20, 23, 23) @[el2_lib.scala 249:36] node _T_97 = bits(_T_20, 23, 23) @[el2_lib.scala 250:36]
_T_23[13] <= _T_97 @[el2_lib.scala 249:30] _T_23[13] <= _T_97 @[el2_lib.scala 250:30]
node _T_98 = bits(_T_20, 23, 23) @[el2_lib.scala 250:36] node _T_98 = bits(_T_20, 23, 23) @[el2_lib.scala 251:36]
_T_24[10] <= _T_98 @[el2_lib.scala 250:30] _T_24[10] <= _T_98 @[el2_lib.scala 251:30]
node _T_99 = bits(_T_20, 24, 24) @[el2_lib.scala 249:36] node _T_99 = bits(_T_20, 24, 24) @[el2_lib.scala 250:36]
_T_23[14] <= _T_99 @[el2_lib.scala 249:30] _T_23[14] <= _T_99 @[el2_lib.scala 250:30]
node _T_100 = bits(_T_20, 24, 24) @[el2_lib.scala 250:36] node _T_100 = bits(_T_20, 24, 24) @[el2_lib.scala 251:36]
_T_24[11] <= _T_100 @[el2_lib.scala 250:30] _T_24[11] <= _T_100 @[el2_lib.scala 251:30]
node _T_101 = bits(_T_20, 25, 25) @[el2_lib.scala 247:36] node _T_101 = bits(_T_20, 25, 25) @[el2_lib.scala 248:36]
_T_21[13] <= _T_101 @[el2_lib.scala 247:30] _T_21[13] <= _T_101 @[el2_lib.scala 248:30]
node _T_102 = bits(_T_20, 25, 25) @[el2_lib.scala 248:36] node _T_102 = bits(_T_20, 25, 25) @[el2_lib.scala 249:36]
_T_22[13] <= _T_102 @[el2_lib.scala 248:30] _T_22[13] <= _T_102 @[el2_lib.scala 249:30]
node _T_103 = bits(_T_20, 25, 25) @[el2_lib.scala 250:36] node _T_103 = bits(_T_20, 25, 25) @[el2_lib.scala 251:36]
_T_24[12] <= _T_103 @[el2_lib.scala 250:30] _T_24[12] <= _T_103 @[el2_lib.scala 251:30]
node _T_104 = bits(_T_20, 26, 26) @[el2_lib.scala 248:36] node _T_104 = bits(_T_20, 26, 26) @[el2_lib.scala 249:36]
_T_22[14] <= _T_104 @[el2_lib.scala 248:30] _T_22[14] <= _T_104 @[el2_lib.scala 249:30]
node _T_105 = bits(_T_20, 26, 26) @[el2_lib.scala 250:36] node _T_105 = bits(_T_20, 26, 26) @[el2_lib.scala 251:36]
_T_24[13] <= _T_105 @[el2_lib.scala 250:30] _T_24[13] <= _T_105 @[el2_lib.scala 251:30]
node _T_106 = bits(_T_20, 27, 27) @[el2_lib.scala 247:36] node _T_106 = bits(_T_20, 27, 27) @[el2_lib.scala 248:36]
_T_21[14] <= _T_106 @[el2_lib.scala 247:30] _T_21[14] <= _T_106 @[el2_lib.scala 248:30]
node _T_107 = bits(_T_20, 27, 27) @[el2_lib.scala 250:36] node _T_107 = bits(_T_20, 27, 27) @[el2_lib.scala 251:36]
_T_24[14] <= _T_107 @[el2_lib.scala 250:30] _T_24[14] <= _T_107 @[el2_lib.scala 251:30]
node _T_108 = bits(_T_20, 28, 28) @[el2_lib.scala 247:36] node _T_108 = bits(_T_20, 28, 28) @[el2_lib.scala 248:36]
_T_21[15] <= _T_108 @[el2_lib.scala 247:30] _T_21[15] <= _T_108 @[el2_lib.scala 248:30]
node _T_109 = bits(_T_20, 28, 28) @[el2_lib.scala 248:36] node _T_109 = bits(_T_20, 28, 28) @[el2_lib.scala 249:36]
_T_22[15] <= _T_109 @[el2_lib.scala 248:30] _T_22[15] <= _T_109 @[el2_lib.scala 249:30]
node _T_110 = bits(_T_20, 28, 28) @[el2_lib.scala 249:36] node _T_110 = bits(_T_20, 28, 28) @[el2_lib.scala 250:36]
_T_23[15] <= _T_110 @[el2_lib.scala 249:30] _T_23[15] <= _T_110 @[el2_lib.scala 250:30]
node _T_111 = bits(_T_20, 29, 29) @[el2_lib.scala 248:36] node _T_111 = bits(_T_20, 29, 29) @[el2_lib.scala 249:36]
_T_22[16] <= _T_111 @[el2_lib.scala 248:30] _T_22[16] <= _T_111 @[el2_lib.scala 249:30]
node _T_112 = bits(_T_20, 29, 29) @[el2_lib.scala 249:36] node _T_112 = bits(_T_20, 29, 29) @[el2_lib.scala 250:36]
_T_23[16] <= _T_112 @[el2_lib.scala 249:30] _T_23[16] <= _T_112 @[el2_lib.scala 250:30]
node _T_113 = bits(_T_20, 30, 30) @[el2_lib.scala 247:36] node _T_113 = bits(_T_20, 30, 30) @[el2_lib.scala 248:36]
_T_21[16] <= _T_113 @[el2_lib.scala 247:30] _T_21[16] <= _T_113 @[el2_lib.scala 248:30]
node _T_114 = bits(_T_20, 30, 30) @[el2_lib.scala 249:36] node _T_114 = bits(_T_20, 30, 30) @[el2_lib.scala 250:36]
_T_23[17] <= _T_114 @[el2_lib.scala 249:30] _T_23[17] <= _T_114 @[el2_lib.scala 250:30]
node _T_115 = bits(_T_20, 31, 31) @[el2_lib.scala 247:36] node _T_115 = bits(_T_20, 31, 31) @[el2_lib.scala 248:36]
_T_21[17] <= _T_115 @[el2_lib.scala 247:30] _T_21[17] <= _T_115 @[el2_lib.scala 248:30]
node _T_116 = bits(_T_20, 31, 31) @[el2_lib.scala 248:36] node _T_116 = bits(_T_20, 31, 31) @[el2_lib.scala 249:36]
_T_22[17] <= _T_116 @[el2_lib.scala 248:30] _T_22[17] <= _T_116 @[el2_lib.scala 249:30]
node _T_117 = cat(_T_21[1], _T_21[0]) @[el2_lib.scala 254:22] node _T_117 = cat(_T_21[1], _T_21[0]) @[el2_lib.scala 255:22]
node _T_118 = cat(_T_21[3], _T_21[2]) @[el2_lib.scala 254:22] node _T_118 = cat(_T_21[3], _T_21[2]) @[el2_lib.scala 255:22]
node _T_119 = cat(_T_118, _T_117) @[el2_lib.scala 254:22] node _T_119 = cat(_T_118, _T_117) @[el2_lib.scala 255:22]
node _T_120 = cat(_T_21[5], _T_21[4]) @[el2_lib.scala 254:22] node _T_120 = cat(_T_21[5], _T_21[4]) @[el2_lib.scala 255:22]
node _T_121 = cat(_T_21[8], _T_21[7]) @[el2_lib.scala 254:22] node _T_121 = cat(_T_21[8], _T_21[7]) @[el2_lib.scala 255:22]
node _T_122 = cat(_T_121, _T_21[6]) @[el2_lib.scala 254:22] node _T_122 = cat(_T_121, _T_21[6]) @[el2_lib.scala 255:22]
node _T_123 = cat(_T_122, _T_120) @[el2_lib.scala 254:22] node _T_123 = cat(_T_122, _T_120) @[el2_lib.scala 255:22]
node _T_124 = cat(_T_123, _T_119) @[el2_lib.scala 254:22] node _T_124 = cat(_T_123, _T_119) @[el2_lib.scala 255:22]
node _T_125 = cat(_T_21[10], _T_21[9]) @[el2_lib.scala 254:22] node _T_125 = cat(_T_21[10], _T_21[9]) @[el2_lib.scala 255:22]
node _T_126 = cat(_T_21[12], _T_21[11]) @[el2_lib.scala 254:22] node _T_126 = cat(_T_21[12], _T_21[11]) @[el2_lib.scala 255:22]
node _T_127 = cat(_T_126, _T_125) @[el2_lib.scala 254:22] node _T_127 = cat(_T_126, _T_125) @[el2_lib.scala 255:22]
node _T_128 = cat(_T_21[14], _T_21[13]) @[el2_lib.scala 254:22] node _T_128 = cat(_T_21[14], _T_21[13]) @[el2_lib.scala 255:22]
node _T_129 = cat(_T_21[17], _T_21[16]) @[el2_lib.scala 254:22] node _T_129 = cat(_T_21[17], _T_21[16]) @[el2_lib.scala 255:22]
node _T_130 = cat(_T_129, _T_21[15]) @[el2_lib.scala 254:22] node _T_130 = cat(_T_129, _T_21[15]) @[el2_lib.scala 255:22]
node _T_131 = cat(_T_130, _T_128) @[el2_lib.scala 254:22] node _T_131 = cat(_T_130, _T_128) @[el2_lib.scala 255:22]
node _T_132 = cat(_T_131, _T_127) @[el2_lib.scala 254:22] node _T_132 = cat(_T_131, _T_127) @[el2_lib.scala 255:22]
node _T_133 = cat(_T_132, _T_124) @[el2_lib.scala 254:22] node _T_133 = cat(_T_132, _T_124) @[el2_lib.scala 255:22]
node _T_134 = xorr(_T_133) @[el2_lib.scala 254:29] node _T_134 = xorr(_T_133) @[el2_lib.scala 255:29]
node _T_135 = cat(_T_22[1], _T_22[0]) @[el2_lib.scala 254:39] node _T_135 = cat(_T_22[1], _T_22[0]) @[el2_lib.scala 255:39]
node _T_136 = cat(_T_22[3], _T_22[2]) @[el2_lib.scala 254:39] node _T_136 = cat(_T_22[3], _T_22[2]) @[el2_lib.scala 255:39]
node _T_137 = cat(_T_136, _T_135) @[el2_lib.scala 254:39] node _T_137 = cat(_T_136, _T_135) @[el2_lib.scala 255:39]
node _T_138 = cat(_T_22[5], _T_22[4]) @[el2_lib.scala 254:39] node _T_138 = cat(_T_22[5], _T_22[4]) @[el2_lib.scala 255:39]
node _T_139 = cat(_T_22[8], _T_22[7]) @[el2_lib.scala 254:39] node _T_139 = cat(_T_22[8], _T_22[7]) @[el2_lib.scala 255:39]
node _T_140 = cat(_T_139, _T_22[6]) @[el2_lib.scala 254:39] node _T_140 = cat(_T_139, _T_22[6]) @[el2_lib.scala 255:39]
node _T_141 = cat(_T_140, _T_138) @[el2_lib.scala 254:39] node _T_141 = cat(_T_140, _T_138) @[el2_lib.scala 255:39]
node _T_142 = cat(_T_141, _T_137) @[el2_lib.scala 254:39] node _T_142 = cat(_T_141, _T_137) @[el2_lib.scala 255:39]
node _T_143 = cat(_T_22[10], _T_22[9]) @[el2_lib.scala 254:39] node _T_143 = cat(_T_22[10], _T_22[9]) @[el2_lib.scala 255:39]
node _T_144 = cat(_T_22[12], _T_22[11]) @[el2_lib.scala 254:39] node _T_144 = cat(_T_22[12], _T_22[11]) @[el2_lib.scala 255:39]
node _T_145 = cat(_T_144, _T_143) @[el2_lib.scala 254:39] node _T_145 = cat(_T_144, _T_143) @[el2_lib.scala 255:39]
node _T_146 = cat(_T_22[14], _T_22[13]) @[el2_lib.scala 254:39] node _T_146 = cat(_T_22[14], _T_22[13]) @[el2_lib.scala 255:39]
node _T_147 = cat(_T_22[17], _T_22[16]) @[el2_lib.scala 254:39] node _T_147 = cat(_T_22[17], _T_22[16]) @[el2_lib.scala 255:39]
node _T_148 = cat(_T_147, _T_22[15]) @[el2_lib.scala 254:39] node _T_148 = cat(_T_147, _T_22[15]) @[el2_lib.scala 255:39]
node _T_149 = cat(_T_148, _T_146) @[el2_lib.scala 254:39] node _T_149 = cat(_T_148, _T_146) @[el2_lib.scala 255:39]
node _T_150 = cat(_T_149, _T_145) @[el2_lib.scala 254:39] node _T_150 = cat(_T_149, _T_145) @[el2_lib.scala 255:39]
node _T_151 = cat(_T_150, _T_142) @[el2_lib.scala 254:39] node _T_151 = cat(_T_150, _T_142) @[el2_lib.scala 255:39]
node _T_152 = xorr(_T_151) @[el2_lib.scala 254:46] node _T_152 = xorr(_T_151) @[el2_lib.scala 255:46]
node _T_153 = cat(_T_23[1], _T_23[0]) @[el2_lib.scala 254:56] node _T_153 = cat(_T_23[1], _T_23[0]) @[el2_lib.scala 255:56]
node _T_154 = cat(_T_23[3], _T_23[2]) @[el2_lib.scala 254:56] node _T_154 = cat(_T_23[3], _T_23[2]) @[el2_lib.scala 255:56]
node _T_155 = cat(_T_154, _T_153) @[el2_lib.scala 254:56] node _T_155 = cat(_T_154, _T_153) @[el2_lib.scala 255:56]
node _T_156 = cat(_T_23[5], _T_23[4]) @[el2_lib.scala 254:56] node _T_156 = cat(_T_23[5], _T_23[4]) @[el2_lib.scala 255:56]
node _T_157 = cat(_T_23[8], _T_23[7]) @[el2_lib.scala 254:56] node _T_157 = cat(_T_23[8], _T_23[7]) @[el2_lib.scala 255:56]
node _T_158 = cat(_T_157, _T_23[6]) @[el2_lib.scala 254:56] node _T_158 = cat(_T_157, _T_23[6]) @[el2_lib.scala 255:56]
node _T_159 = cat(_T_158, _T_156) @[el2_lib.scala 254:56] node _T_159 = cat(_T_158, _T_156) @[el2_lib.scala 255:56]
node _T_160 = cat(_T_159, _T_155) @[el2_lib.scala 254:56] node _T_160 = cat(_T_159, _T_155) @[el2_lib.scala 255:56]
node _T_161 = cat(_T_23[10], _T_23[9]) @[el2_lib.scala 254:56] node _T_161 = cat(_T_23[10], _T_23[9]) @[el2_lib.scala 255:56]
node _T_162 = cat(_T_23[12], _T_23[11]) @[el2_lib.scala 254:56] node _T_162 = cat(_T_23[12], _T_23[11]) @[el2_lib.scala 255:56]
node _T_163 = cat(_T_162, _T_161) @[el2_lib.scala 254:56] node _T_163 = cat(_T_162, _T_161) @[el2_lib.scala 255:56]
node _T_164 = cat(_T_23[14], _T_23[13]) @[el2_lib.scala 254:56] node _T_164 = cat(_T_23[14], _T_23[13]) @[el2_lib.scala 255:56]
node _T_165 = cat(_T_23[17], _T_23[16]) @[el2_lib.scala 254:56] node _T_165 = cat(_T_23[17], _T_23[16]) @[el2_lib.scala 255:56]
node _T_166 = cat(_T_165, _T_23[15]) @[el2_lib.scala 254:56] node _T_166 = cat(_T_165, _T_23[15]) @[el2_lib.scala 255:56]
node _T_167 = cat(_T_166, _T_164) @[el2_lib.scala 254:56] node _T_167 = cat(_T_166, _T_164) @[el2_lib.scala 255:56]
node _T_168 = cat(_T_167, _T_163) @[el2_lib.scala 254:56] node _T_168 = cat(_T_167, _T_163) @[el2_lib.scala 255:56]
node _T_169 = cat(_T_168, _T_160) @[el2_lib.scala 254:56] node _T_169 = cat(_T_168, _T_160) @[el2_lib.scala 255:56]
node _T_170 = xorr(_T_169) @[el2_lib.scala 254:63] node _T_170 = xorr(_T_169) @[el2_lib.scala 255:63]
node _T_171 = cat(_T_24[2], _T_24[1]) @[el2_lib.scala 254:73] node _T_171 = cat(_T_24[2], _T_24[1]) @[el2_lib.scala 255:73]
node _T_172 = cat(_T_171, _T_24[0]) @[el2_lib.scala 254:73] node _T_172 = cat(_T_171, _T_24[0]) @[el2_lib.scala 255:73]
node _T_173 = cat(_T_24[4], _T_24[3]) @[el2_lib.scala 254:73] node _T_173 = cat(_T_24[4], _T_24[3]) @[el2_lib.scala 255:73]
node _T_174 = cat(_T_24[6], _T_24[5]) @[el2_lib.scala 254:73] node _T_174 = cat(_T_24[6], _T_24[5]) @[el2_lib.scala 255:73]
node _T_175 = cat(_T_174, _T_173) @[el2_lib.scala 254:73] node _T_175 = cat(_T_174, _T_173) @[el2_lib.scala 255:73]
node _T_176 = cat(_T_175, _T_172) @[el2_lib.scala 254:73] node _T_176 = cat(_T_175, _T_172) @[el2_lib.scala 255:73]
node _T_177 = cat(_T_24[8], _T_24[7]) @[el2_lib.scala 254:73] node _T_177 = cat(_T_24[8], _T_24[7]) @[el2_lib.scala 255:73]
node _T_178 = cat(_T_24[10], _T_24[9]) @[el2_lib.scala 254:73] node _T_178 = cat(_T_24[10], _T_24[9]) @[el2_lib.scala 255:73]
node _T_179 = cat(_T_178, _T_177) @[el2_lib.scala 254:73] node _T_179 = cat(_T_178, _T_177) @[el2_lib.scala 255:73]
node _T_180 = cat(_T_24[12], _T_24[11]) @[el2_lib.scala 254:73] node _T_180 = cat(_T_24[12], _T_24[11]) @[el2_lib.scala 255:73]
node _T_181 = cat(_T_24[14], _T_24[13]) @[el2_lib.scala 254:73] node _T_181 = cat(_T_24[14], _T_24[13]) @[el2_lib.scala 255:73]
node _T_182 = cat(_T_181, _T_180) @[el2_lib.scala 254:73] node _T_182 = cat(_T_181, _T_180) @[el2_lib.scala 255:73]
node _T_183 = cat(_T_182, _T_179) @[el2_lib.scala 254:73] node _T_183 = cat(_T_182, _T_179) @[el2_lib.scala 255:73]
node _T_184 = cat(_T_183, _T_176) @[el2_lib.scala 254:73] node _T_184 = cat(_T_183, _T_176) @[el2_lib.scala 255:73]
node _T_185 = xorr(_T_184) @[el2_lib.scala 254:80] node _T_185 = xorr(_T_184) @[el2_lib.scala 255:80]
node _T_186 = cat(_T_25[2], _T_25[1]) @[el2_lib.scala 254:90] node _T_186 = cat(_T_25[2], _T_25[1]) @[el2_lib.scala 255:90]
node _T_187 = cat(_T_186, _T_25[0]) @[el2_lib.scala 254:90] node _T_187 = cat(_T_186, _T_25[0]) @[el2_lib.scala 255:90]
node _T_188 = cat(_T_25[4], _T_25[3]) @[el2_lib.scala 254:90] node _T_188 = cat(_T_25[4], _T_25[3]) @[el2_lib.scala 255:90]
node _T_189 = cat(_T_25[6], _T_25[5]) @[el2_lib.scala 254:90] node _T_189 = cat(_T_25[6], _T_25[5]) @[el2_lib.scala 255:90]
node _T_190 = cat(_T_189, _T_188) @[el2_lib.scala 254:90] node _T_190 = cat(_T_189, _T_188) @[el2_lib.scala 255:90]
node _T_191 = cat(_T_190, _T_187) @[el2_lib.scala 254:90] node _T_191 = cat(_T_190, _T_187) @[el2_lib.scala 255:90]
node _T_192 = cat(_T_25[8], _T_25[7]) @[el2_lib.scala 254:90] node _T_192 = cat(_T_25[8], _T_25[7]) @[el2_lib.scala 255:90]
node _T_193 = cat(_T_25[10], _T_25[9]) @[el2_lib.scala 254:90] node _T_193 = cat(_T_25[10], _T_25[9]) @[el2_lib.scala 255:90]
node _T_194 = cat(_T_193, _T_192) @[el2_lib.scala 254:90] node _T_194 = cat(_T_193, _T_192) @[el2_lib.scala 255:90]
node _T_195 = cat(_T_25[12], _T_25[11]) @[el2_lib.scala 254:90] node _T_195 = cat(_T_25[12], _T_25[11]) @[el2_lib.scala 255:90]
node _T_196 = cat(_T_25[14], _T_25[13]) @[el2_lib.scala 254:90] node _T_196 = cat(_T_25[14], _T_25[13]) @[el2_lib.scala 255:90]
node _T_197 = cat(_T_196, _T_195) @[el2_lib.scala 254:90] node _T_197 = cat(_T_196, _T_195) @[el2_lib.scala 255:90]
node _T_198 = cat(_T_197, _T_194) @[el2_lib.scala 254:90] node _T_198 = cat(_T_197, _T_194) @[el2_lib.scala 255:90]
node _T_199 = cat(_T_198, _T_191) @[el2_lib.scala 254:90] node _T_199 = cat(_T_198, _T_191) @[el2_lib.scala 255:90]
node _T_200 = xorr(_T_199) @[el2_lib.scala 254:97] node _T_200 = xorr(_T_199) @[el2_lib.scala 255:97]
node _T_201 = cat(_T_26[2], _T_26[1]) @[el2_lib.scala 254:107] node _T_201 = cat(_T_26[2], _T_26[1]) @[el2_lib.scala 255:107]
node _T_202 = cat(_T_201, _T_26[0]) @[el2_lib.scala 254:107] node _T_202 = cat(_T_201, _T_26[0]) @[el2_lib.scala 255:107]
node _T_203 = cat(_T_26[5], _T_26[4]) @[el2_lib.scala 254:107] node _T_203 = cat(_T_26[5], _T_26[4]) @[el2_lib.scala 255:107]
node _T_204 = cat(_T_203, _T_26[3]) @[el2_lib.scala 254:107] node _T_204 = cat(_T_203, _T_26[3]) @[el2_lib.scala 255:107]
node _T_205 = cat(_T_204, _T_202) @[el2_lib.scala 254:107] node _T_205 = cat(_T_204, _T_202) @[el2_lib.scala 255:107]
node _T_206 = xorr(_T_205) @[el2_lib.scala 254:114] node _T_206 = xorr(_T_205) @[el2_lib.scala 255:114]
node _T_207 = cat(_T_185, _T_200) @[Cat.scala 29:58] node _T_207 = cat(_T_185, _T_200) @[Cat.scala 29:58]
node _T_208 = cat(_T_207, _T_206) @[Cat.scala 29:58] node _T_208 = cat(_T_207, _T_206) @[Cat.scala 29:58]
node _T_209 = cat(_T_134, _T_152) @[Cat.scala 29:58] node _T_209 = cat(_T_134, _T_152) @[Cat.scala 29:58]
node _T_210 = cat(_T_209, _T_170) @[Cat.scala 29:58] node _T_210 = cat(_T_209, _T_170) @[Cat.scala 29:58]
node _T_211 = cat(_T_210, _T_208) @[Cat.scala 29:58] node _T_211 = cat(_T_210, _T_208) @[Cat.scala 29:58]
node _T_212 = xorr(_T_20) @[el2_lib.scala 255:13] node _T_212 = xorr(_T_20) @[el2_lib.scala 256:13]
node _T_213 = xorr(_T_211) @[el2_lib.scala 255:23] node _T_213 = xorr(_T_211) @[el2_lib.scala 256:23]
node _T_214 = xor(_T_212, _T_213) @[el2_lib.scala 255:18] node _T_214 = xor(_T_212, _T_213) @[el2_lib.scala 256:18]
node ic_tag_ecc = cat(_T_214, _T_211) @[Cat.scala 29:58] node ic_tag_ecc = cat(_T_214, _T_211) @[Cat.scala 29:58]
node _T_215 = mux(UInt<1>("h00"), UInt<13>("h01fff"), UInt<13>("h00")) @[Bitwise.scala 72:12] node _T_215 = mux(UInt<1>("h00"), UInt<13>("h01fff"), UInt<13>("h00")) @[Bitwise.scala 72:12]
node _T_216 = bits(io.ic_rw_addr, 28, 10) @[el2_ifu_ic_mem.scala 86:96] node _T_216 = bits(io.ic_rw_addr, 28, 10) @[el2_ifu_ic_mem.scala 86:96]
node _T_217 = cat(_T_215, _T_216) @[Cat.scala 29:58] node _T_217 = cat(_T_215, _T_216) @[Cat.scala 29:58]
node ic_tag_parity = xorr(_T_217) @[el2_lib.scala 194:13] node ic_tag_parity = xorr(_T_217) @[el2_lib.scala 195:13]
node _T_218 = and(io.ic_debug_wr_en, io.ic_debug_tag_array) @[el2_ifu_ic_mem.scala 90:30] node _T_218 = and(io.ic_debug_wr_en, io.ic_debug_tag_array) @[el2_ifu_ic_mem.scala 90:30]
node _T_219 = bits(io.ic_debug_wr_data, 68, 64) @[el2_ifu_ic_mem.scala 90:93] node _T_219 = bits(io.ic_debug_wr_data, 68, 64) @[el2_ifu_ic_mem.scala 90:93]
node _T_220 = bits(io.ic_debug_wr_data, 31, 11) @[el2_ifu_ic_mem.scala 90:150] node _T_220 = bits(io.ic_debug_wr_data, 31, 11) @[el2_ifu_ic_mem.scala 90:150]
@ -348,46 +348,45 @@ circuit EL2_IC_TAG :
reg ic_debug_rd_way_en_ff : UInt, clock with : (reset => (reset, UInt<1>("h00"))) @[el2_ifu_ic_mem.scala 95:38] reg ic_debug_rd_way_en_ff : UInt, clock with : (reset => (reset, UInt<1>("h00"))) @[el2_ifu_ic_mem.scala 95:38]
ic_debug_rd_way_en_ff <= ic_debug_rd_way_en @[el2_ifu_ic_mem.scala 95:38] ic_debug_rd_way_en_ff <= ic_debug_rd_way_en @[el2_ifu_ic_mem.scala 95:38]
cmem tag_mem : UInt<26>[2][128] @[el2_ifu_ic_mem.scala 97:20] cmem tag_mem : UInt<26>[2][128] @[el2_ifu_ic_mem.scala 97:20]
wire ic_tag_data_raw : UInt<26>[2] @[el2_ifu_ic_mem.scala 98:29] node _T_230 = bits(ic_tag_wren_q, 0, 0) @[el2_ifu_ic_mem.scala 108:66]
ic_tag_data_raw[0] <= UInt<1>("h00") @[el2_ifu_ic_mem.scala 101:24] node _T_231 = bits(ic_tag_clken, 0, 0) @[el2_ifu_ic_mem.scala 108:82]
node _T_230 = bits(ic_tag_wren_q, 0, 0) @[el2_ifu_ic_mem.scala 102:23] node _T_232 = and(_T_230, _T_231) @[el2_ifu_ic_mem.scala 108:69]
node _T_231 = bits(ic_tag_clken, 0, 0) @[el2_ifu_ic_mem.scala 102:39] node _T_233 = bits(ic_tag_wren_q, 1, 1) @[el2_ifu_ic_mem.scala 108:66]
node _T_232 = and(_T_230, _T_231) @[el2_ifu_ic_mem.scala 102:26] node _T_234 = bits(ic_tag_clken, 1, 1) @[el2_ifu_ic_mem.scala 108:82]
when _T_232 : @[el2_ifu_ic_mem.scala 102:43] node _T_235 = and(_T_233, _T_234) @[el2_ifu_ic_mem.scala 108:69]
node _T_233 = bits(ic_rw_addr_q, 9, 3) @[el2_ifu_ic_mem.scala 103:25] wire mask : UInt<1>[2] @[el2_ifu_ic_mem.scala 108:49]
infer mport _T_234 = tag_mem[_T_233], clock @[el2_ifu_ic_mem.scala 103:12] mask[0] <= _T_232 @[el2_ifu_ic_mem.scala 108:49]
node _T_235 = bits(ic_rw_addr_q, 9, 3) @[el2_ifu_ic_mem.scala 103:81] mask[1] <= _T_235 @[el2_ifu_ic_mem.scala 108:49]
node _T_236 = bits(_T_235, 0, 0) wire _T_236 : UInt<26>[2] @[el2_ifu_ic_mem.scala 109:66]
_T_234[_T_236] <= ic_tag_wr_data @[el2_ifu_ic_mem.scala 103:125] _T_236[0] <= ic_tag_wr_data @[el2_ifu_ic_mem.scala 109:66]
skip @[el2_ifu_ic_mem.scala 102:43] _T_236[1] <= ic_tag_wr_data @[el2_ifu_ic_mem.scala 109:66]
else : @[el2_ifu_ic_mem.scala 104:32] node _T_237 = bits(ic_rw_addr_q, 6, 0)
node _T_237 = bits(ic_tag_clken, 0, 0) @[el2_ifu_ic_mem.scala 104:28] write mport _T_238 = tag_mem[_T_237], clock
when _T_237 : @[el2_ifu_ic_mem.scala 104:32] when mask[0] :
node _T_238 = bits(ic_rw_addr_q, 9, 3) @[el2_ifu_ic_mem.scala 105:49] _T_238[0] <= _T_236[0]
infer mport _T_239 = tag_mem[_T_238], clock @[el2_ifu_ic_mem.scala 105:36] skip
node _T_240 = bits(ic_rw_addr_q, 9, 3) @[el2_ifu_ic_mem.scala 105:105] when mask[1] :
node _T_241 = bits(_T_240, 0, 0) _T_238[1] <= _T_236[1]
ic_tag_data_raw[0] <= _T_239[_T_241] @[el2_ifu_ic_mem.scala 105:26] skip
skip @[el2_ifu_ic_mem.scala 104:32] node _T_239 = bits(ic_tag_wren_q, 0, 0) @[el2_ifu_ic_mem.scala 110:75]
ic_tag_data_raw[1] <= UInt<1>("h00") @[el2_ifu_ic_mem.scala 101:24] node _T_240 = eq(_T_239, UInt<1>("h00")) @[el2_ifu_ic_mem.scala 110:61]
node _T_242 = bits(ic_tag_wren_q, 1, 1) @[el2_ifu_ic_mem.scala 102:23] node _T_241 = bits(ic_tag_clken, 0, 0) @[el2_ifu_ic_mem.scala 110:92]
node _T_243 = bits(ic_tag_clken, 1, 1) @[el2_ifu_ic_mem.scala 102:39] node _T_242 = and(_T_240, _T_241) @[el2_ifu_ic_mem.scala 110:79]
node _T_244 = and(_T_242, _T_243) @[el2_ifu_ic_mem.scala 102:26] node _T_243 = bits(ic_tag_wren_q, 1, 1) @[el2_ifu_ic_mem.scala 110:75]
when _T_244 : @[el2_ifu_ic_mem.scala 102:43] node _T_244 = eq(_T_243, UInt<1>("h00")) @[el2_ifu_ic_mem.scala 110:61]
node _T_245 = bits(ic_rw_addr_q, 9, 3) @[el2_ifu_ic_mem.scala 103:25] node _T_245 = bits(ic_tag_clken, 1, 1) @[el2_ifu_ic_mem.scala 110:92]
infer mport _T_246 = tag_mem[_T_245], clock @[el2_ifu_ic_mem.scala 103:12] node _T_246 = and(_T_244, _T_245) @[el2_ifu_ic_mem.scala 110:79]
node _T_247 = bits(ic_rw_addr_q, 9, 3) @[el2_ifu_ic_mem.scala 103:81] wire read_enable : UInt<1>[2] @[el2_ifu_ic_mem.scala 110:56]
node _T_248 = bits(_T_247, 0, 0) read_enable[0] <= _T_242 @[el2_ifu_ic_mem.scala 110:56]
_T_246[_T_248] <= ic_tag_wr_data @[el2_ifu_ic_mem.scala 103:125] read_enable[1] <= _T_246 @[el2_ifu_ic_mem.scala 110:56]
skip @[el2_ifu_ic_mem.scala 102:43] node _T_247 = bits(ic_rw_addr_q, 6, 0) @[el2_ifu_ic_mem.scala 111:39]
else : @[el2_ifu_ic_mem.scala 104:32] read mport ic_tag_data_raw = tag_mem[_T_247], clock @[el2_ifu_ic_mem.scala 111:39]
node _T_249 = bits(ic_tag_clken, 1, 1) @[el2_ifu_ic_mem.scala 104:28] io.test[0] <= UInt<1>("h00") @[el2_ifu_ic_mem.scala 114:18]
when _T_249 : @[el2_ifu_ic_mem.scala 104:32] when read_enable[0] : @[el2_ifu_ic_mem.scala 115:27]
node _T_250 = bits(ic_rw_addr_q, 9, 3) @[el2_ifu_ic_mem.scala 105:49] io.test[0] <= ic_tag_data_raw[0] @[el2_ifu_ic_mem.scala 116:20]
infer mport _T_251 = tag_mem[_T_250], clock @[el2_ifu_ic_mem.scala 105:36] skip @[el2_ifu_ic_mem.scala 115:27]
node _T_252 = bits(ic_rw_addr_q, 9, 3) @[el2_ifu_ic_mem.scala 105:105] io.test[1] <= UInt<1>("h00") @[el2_ifu_ic_mem.scala 114:18]
node _T_253 = bits(_T_252, 0, 0) when read_enable[1] : @[el2_ifu_ic_mem.scala 115:27]
ic_tag_data_raw[1] <= _T_251[_T_253] @[el2_ifu_ic_mem.scala 105:26] io.test[1] <= ic_tag_data_raw[1] @[el2_ifu_ic_mem.scala 116:20]
skip @[el2_ifu_ic_mem.scala 104:32] skip @[el2_ifu_ic_mem.scala 115:27]
io.test <= ic_tag_data_raw[0] @[el2_ifu_ic_mem.scala 108:11]

View File

@ -17,38 +17,27 @@ module EL2_IC_TAG(
output [1:0] io_ic_rd_hit, output [1:0] io_ic_rd_hit,
output io_ic_tag_perr, output io_ic_tag_perr,
input io_scan_mode, input io_scan_mode,
output [25:0] io_test output [25:0] io_test_0,
output [25:0] io_test_1
); );
`ifdef RANDOMIZE_MEM_INIT `ifdef RANDOMIZE_MEM_INIT
reg [31:0] _RAND_0; reg [31:0] _RAND_0;
reg [31:0] _RAND_1; reg [31:0] _RAND_1;
`endif // RANDOMIZE_MEM_INIT `endif // RANDOMIZE_MEM_INIT
reg [25:0] tag_mem_0 [0:127]; // @[el2_ifu_ic_mem.scala 97:20] reg [25:0] tag_mem_0 [0:127]; // @[el2_ifu_ic_mem.scala 97:20]
wire [25:0] tag_mem_0__T_239_data; // @[el2_ifu_ic_mem.scala 97:20] wire [25:0] tag_mem_0_ic_tag_data_raw_data; // @[el2_ifu_ic_mem.scala 97:20]
wire [6:0] tag_mem_0__T_239_addr; // @[el2_ifu_ic_mem.scala 97:20] wire [6:0] tag_mem_0_ic_tag_data_raw_addr; // @[el2_ifu_ic_mem.scala 97:20]
wire [25:0] tag_mem_0__T_251_data; // @[el2_ifu_ic_mem.scala 97:20] wire [25:0] tag_mem_0__T_238_data; // @[el2_ifu_ic_mem.scala 97:20]
wire [6:0] tag_mem_0__T_251_addr; // @[el2_ifu_ic_mem.scala 97:20] wire [6:0] tag_mem_0__T_238_addr; // @[el2_ifu_ic_mem.scala 97:20]
wire [25:0] tag_mem_0__T_234_data; // @[el2_ifu_ic_mem.scala 97:20] wire tag_mem_0__T_238_mask; // @[el2_ifu_ic_mem.scala 97:20]
wire [6:0] tag_mem_0__T_234_addr; // @[el2_ifu_ic_mem.scala 97:20] wire tag_mem_0__T_238_en; // @[el2_ifu_ic_mem.scala 97:20]
wire tag_mem_0__T_234_mask; // @[el2_ifu_ic_mem.scala 97:20]
wire tag_mem_0__T_234_en; // @[el2_ifu_ic_mem.scala 97:20]
wire [25:0] tag_mem_0__T_246_data; // @[el2_ifu_ic_mem.scala 97:20]
wire [6:0] tag_mem_0__T_246_addr; // @[el2_ifu_ic_mem.scala 97:20]
wire tag_mem_0__T_246_mask; // @[el2_ifu_ic_mem.scala 97:20]
wire tag_mem_0__T_246_en; // @[el2_ifu_ic_mem.scala 97:20]
reg [25:0] tag_mem_1 [0:127]; // @[el2_ifu_ic_mem.scala 97:20] reg [25:0] tag_mem_1 [0:127]; // @[el2_ifu_ic_mem.scala 97:20]
wire [25:0] tag_mem_1__T_239_data; // @[el2_ifu_ic_mem.scala 97:20] wire [25:0] tag_mem_1_ic_tag_data_raw_data; // @[el2_ifu_ic_mem.scala 97:20]
wire [6:0] tag_mem_1__T_239_addr; // @[el2_ifu_ic_mem.scala 97:20] wire [6:0] tag_mem_1_ic_tag_data_raw_addr; // @[el2_ifu_ic_mem.scala 97:20]
wire [25:0] tag_mem_1__T_251_data; // @[el2_ifu_ic_mem.scala 97:20] wire [25:0] tag_mem_1__T_238_data; // @[el2_ifu_ic_mem.scala 97:20]
wire [6:0] tag_mem_1__T_251_addr; // @[el2_ifu_ic_mem.scala 97:20] wire [6:0] tag_mem_1__T_238_addr; // @[el2_ifu_ic_mem.scala 97:20]
wire [25:0] tag_mem_1__T_234_data; // @[el2_ifu_ic_mem.scala 97:20] wire tag_mem_1__T_238_mask; // @[el2_ifu_ic_mem.scala 97:20]
wire [6:0] tag_mem_1__T_234_addr; // @[el2_ifu_ic_mem.scala 97:20] wire tag_mem_1__T_238_en; // @[el2_ifu_ic_mem.scala 97:20]
wire tag_mem_1__T_234_mask; // @[el2_ifu_ic_mem.scala 97:20]
wire tag_mem_1__T_234_en; // @[el2_ifu_ic_mem.scala 97:20]
wire [25:0] tag_mem_1__T_246_data; // @[el2_ifu_ic_mem.scala 97:20]
wire [6:0] tag_mem_1__T_246_addr; // @[el2_ifu_ic_mem.scala 97:20]
wire tag_mem_1__T_246_mask; // @[el2_ifu_ic_mem.scala 97:20]
wire tag_mem_1__T_246_en; // @[el2_ifu_ic_mem.scala 97:20]
wire _T_1 = io_ic_rw_addr[2:1] == 2'h1; // @[el2_ifu_ic_mem.scala 71:95] wire _T_1 = io_ic_rw_addr[2:1] == 2'h1; // @[el2_ifu_ic_mem.scala 71:95]
wire [1:0] _T_3 = _T_1 ? 2'h3 : 2'h0; // @[Bitwise.scala 72:12] wire [1:0] _T_3 = _T_1 ? 2'h3 : 2'h0; // @[Bitwise.scala 72:12]
wire [1:0] ic_tag_wren = io_ic_wr_en & _T_3; // @[el2_ifu_ic_mem.scala 71:33] wire [1:0] ic_tag_wren = io_ic_wr_en & _T_3; // @[el2_ifu_ic_mem.scala 71:33]
@ -65,64 +54,52 @@ module EL2_IC_TAG(
wire [1:0] ic_tag_clken = _T_8 | ic_debug_rd_way_en; // @[el2_ifu_ic_mem.scala 72:108] wire [1:0] ic_tag_clken = _T_8 | ic_debug_rd_way_en; // @[el2_ifu_ic_mem.scala 72:108]
wire [1:0] ic_tag_wren_q = ic_tag_wren | ic_debug_wr_way_en; // @[el2_ifu_ic_mem.scala 82:35] wire [1:0] ic_tag_wren_q = ic_tag_wren | ic_debug_wr_way_en; // @[el2_ifu_ic_mem.scala 82:35]
wire [31:0] _T_20 = {13'h0,io_ic_rw_addr[28:10]}; // @[Cat.scala 29:58] wire [31:0] _T_20 = {13'h0,io_ic_rw_addr[28:10]}; // @[Cat.scala 29:58]
wire [8:0] _T_124 = {_T_20[16],_T_20[14],_T_20[12],_T_20[10],_T_20[8],_T_20[6],_T_20[5],_T_20[3],_T_20[1]}; // @[el2_lib.scala 254:22] wire [8:0] _T_124 = {_T_20[16],_T_20[14],_T_20[12],_T_20[10],_T_20[8],_T_20[6],_T_20[5],_T_20[3],_T_20[1]}; // @[el2_lib.scala 255:22]
wire [17:0] _T_133 = {_T_20[31],_T_20[30],_T_20[28],_T_20[27],_T_20[25],_T_20[23],_T_20[21],_T_20[20],_T_20[18],_T_124}; // @[el2_lib.scala 254:22] wire [17:0] _T_133 = {_T_20[31],_T_20[30],_T_20[28],_T_20[27],_T_20[25],_T_20[23],_T_20[21],_T_20[20],_T_20[18],_T_124}; // @[el2_lib.scala 255:22]
wire _T_134 = ^_T_133; // @[el2_lib.scala 254:29] wire _T_134 = ^_T_133; // @[el2_lib.scala 255:29]
wire [8:0] _T_142 = {_T_20[15],_T_20[14],_T_20[11],_T_20[10],_T_20[7],_T_20[6],_T_20[4],_T_20[3],_T_20[0]}; // @[el2_lib.scala 254:39] wire [8:0] _T_142 = {_T_20[15],_T_20[14],_T_20[11],_T_20[10],_T_20[7],_T_20[6],_T_20[4],_T_20[3],_T_20[0]}; // @[el2_lib.scala 255:39]
wire [17:0] _T_151 = {_T_20[31],_T_20[29],_T_20[28],_T_20[26],_T_20[25],_T_20[22],_T_20[21],_T_20[19],_T_20[18],_T_142}; // @[el2_lib.scala 254:39] wire [17:0] _T_151 = {_T_20[31],_T_20[29],_T_20[28],_T_20[26],_T_20[25],_T_20[22],_T_20[21],_T_20[19],_T_20[18],_T_142}; // @[el2_lib.scala 255:39]
wire _T_152 = ^_T_151; // @[el2_lib.scala 254:46] wire _T_152 = ^_T_151; // @[el2_lib.scala 255:46]
wire [8:0] _T_160 = {_T_20[15],_T_20[14],_T_20[9],_T_20[8],_T_20[7],_T_20[6],_T_20[2],_T_20[1],_T_20[0]}; // @[el2_lib.scala 254:56] wire [8:0] _T_160 = {_T_20[15],_T_20[14],_T_20[9],_T_20[8],_T_20[7],_T_20[6],_T_20[2],_T_20[1],_T_20[0]}; // @[el2_lib.scala 255:56]
wire [17:0] _T_169 = {_T_20[30],_T_20[29],_T_20[28],_T_20[24],_T_20[23],_T_20[22],_T_20[21],_T_20[17],_T_20[16],_T_160}; // @[el2_lib.scala 254:56] wire [17:0] _T_169 = {_T_20[30],_T_20[29],_T_20[28],_T_20[24],_T_20[23],_T_20[22],_T_20[21],_T_20[17],_T_20[16],_T_160}; // @[el2_lib.scala 255:56]
wire _T_170 = ^_T_169; // @[el2_lib.scala 254:63] wire _T_170 = ^_T_169; // @[el2_lib.scala 255:63]
wire [6:0] _T_176 = {_T_20[12],_T_20[11],_T_20[10],_T_20[9],_T_20[8],_T_20[7],_T_20[6]}; // @[el2_lib.scala 254:73] wire [6:0] _T_176 = {_T_20[12],_T_20[11],_T_20[10],_T_20[9],_T_20[8],_T_20[7],_T_20[6]}; // @[el2_lib.scala 255:73]
wire [14:0] _T_184 = {_T_20[27],_T_20[26],_T_20[25],_T_20[24],_T_20[23],_T_20[22],_T_20[21],_T_20[13],_T_176}; // @[el2_lib.scala 254:73] wire [14:0] _T_184 = {_T_20[27],_T_20[26],_T_20[25],_T_20[24],_T_20[23],_T_20[22],_T_20[21],_T_20[13],_T_176}; // @[el2_lib.scala 255:73]
wire _T_185 = ^_T_184; // @[el2_lib.scala 254:80] wire _T_185 = ^_T_184; // @[el2_lib.scala 255:80]
wire [14:0] _T_199 = {_T_20[20],_T_20[19],_T_20[18],_T_20[17],_T_20[16],_T_20[15],_T_20[14],_T_20[13],_T_176}; // @[el2_lib.scala 254:90] wire [14:0] _T_199 = {_T_20[20],_T_20[19],_T_20[18],_T_20[17],_T_20[16],_T_20[15],_T_20[14],_T_20[13],_T_176}; // @[el2_lib.scala 255:90]
wire _T_200 = ^_T_199; // @[el2_lib.scala 254:97] wire _T_200 = ^_T_199; // @[el2_lib.scala 255:97]
wire [5:0] _T_205 = {_T_20[5],_T_20[4],_T_20[3],_T_20[2],_T_20[1],_T_20[0]}; // @[el2_lib.scala 254:107] wire [5:0] _T_205 = {_T_20[5],_T_20[4],_T_20[3],_T_20[2],_T_20[1],_T_20[0]}; // @[el2_lib.scala 255:107]
wire _T_206 = ^_T_205; // @[el2_lib.scala 254:114] wire _T_206 = ^_T_205; // @[el2_lib.scala 255:114]
wire [5:0] _T_211 = {_T_134,_T_152,_T_170,_T_185,_T_200,_T_206}; // @[Cat.scala 29:58] wire [5:0] _T_211 = {_T_134,_T_152,_T_170,_T_185,_T_200,_T_206}; // @[Cat.scala 29:58]
wire _T_212 = ^_T_20; // @[el2_lib.scala 255:13] wire _T_212 = ^_T_20; // @[el2_lib.scala 256:13]
wire _T_213 = ^_T_211; // @[el2_lib.scala 255:23] wire _T_213 = ^_T_211; // @[el2_lib.scala 256:23]
wire _T_214 = _T_212 ^ _T_213; // @[el2_lib.scala 255:18] wire _T_214 = _T_212 ^ _T_213; // @[el2_lib.scala 256:18]
wire [6:0] ic_tag_ecc = {_T_214,_T_134,_T_152,_T_170,_T_185,_T_200,_T_206}; // @[Cat.scala 29:58] wire [6:0] ic_tag_ecc = {_T_214,_T_134,_T_152,_T_170,_T_185,_T_200,_T_206}; // @[Cat.scala 29:58]
wire [25:0] _T_221 = {io_ic_debug_wr_data[68:64],io_ic_debug_wr_data[31:11]}; // @[Cat.scala 29:58] wire [25:0] _T_221 = {io_ic_debug_wr_data[68:64],io_ic_debug_wr_data[31:11]}; // @[Cat.scala 29:58]
wire [25:0] _T_226 = {ic_tag_ecc[4:0],2'h0,io_ic_rw_addr[28:10]}; // @[Cat.scala 29:58] wire [25:0] _T_226 = {ic_tag_ecc[4:0],2'h0,io_ic_rw_addr[28:10]}; // @[Cat.scala 29:58]
wire _T_227 = io_ic_debug_rd_en | io_ic_debug_wr_en; // @[el2_ifu_ic_mem.scala 93:45] wire _T_227 = io_ic_debug_rd_en | io_ic_debug_wr_en; // @[el2_ifu_ic_mem.scala 93:45]
wire [28:0] ic_rw_addr_q = _T_227 ? {{22'd0}, io_ic_debug_addr[9:3]} : io_ic_rw_addr; // @[el2_ifu_ic_mem.scala 93:25] wire [28:0] ic_rw_addr_q = _T_227 ? {{22'd0}, io_ic_debug_addr[9:3]} : io_ic_rw_addr; // @[el2_ifu_ic_mem.scala 93:25]
wire _T_232 = ic_tag_wren_q[0] & ic_tag_clken[0]; // @[el2_ifu_ic_mem.scala 102:26] wire _T_240 = ~ic_tag_wren_q[0]; // @[el2_ifu_ic_mem.scala 110:61]
wire [25:0] _GEN_4 = tag_mem_0__T_239_data; // @[el2_ifu_ic_mem.scala 105:26] wire read_enable_0 = _T_240 & ic_tag_clken[0]; // @[el2_ifu_ic_mem.scala 110:79]
wire [25:0] _GEN_5 = ic_rw_addr_q[3] ? tag_mem_1__T_239_data : _GEN_4; // @[el2_ifu_ic_mem.scala 105:26] wire _T_244 = ~ic_tag_wren_q[1]; // @[el2_ifu_ic_mem.scala 110:61]
wire [25:0] _GEN_9 = ic_tag_clken[0] ? _GEN_5 : 26'h0; // @[el2_ifu_ic_mem.scala 104:32] wire read_enable_1 = _T_244 & ic_tag_clken[1]; // @[el2_ifu_ic_mem.scala 110:79]
wire _T_244 = ic_tag_wren_q[1] & ic_tag_clken[1]; // @[el2_ifu_ic_mem.scala 102:26] assign tag_mem_0_ic_tag_data_raw_addr = ic_rw_addr_q[6:0];
assign tag_mem_0__T_239_addr = ic_rw_addr_q[9:3]; assign tag_mem_0_ic_tag_data_raw_data = tag_mem_0[tag_mem_0_ic_tag_data_raw_addr]; // @[el2_ifu_ic_mem.scala 97:20]
assign tag_mem_0__T_239_data = tag_mem_0[tag_mem_0__T_239_addr]; // @[el2_ifu_ic_mem.scala 97:20] assign tag_mem_0__T_238_data = _T_14 ? _T_221 : _T_226;
assign tag_mem_0__T_251_addr = ic_rw_addr_q[9:3]; assign tag_mem_0__T_238_addr = ic_rw_addr_q[6:0];
assign tag_mem_0__T_251_data = tag_mem_0[tag_mem_0__T_251_addr]; // @[el2_ifu_ic_mem.scala 97:20] assign tag_mem_0__T_238_mask = ic_tag_wren_q[0] & ic_tag_clken[0];
assign tag_mem_0__T_234_data = _T_14 ? _T_221 : _T_226; assign tag_mem_0__T_238_en = 1'h1;
assign tag_mem_0__T_234_addr = ic_rw_addr_q[9:3]; assign tag_mem_1_ic_tag_data_raw_addr = ic_rw_addr_q[6:0];
assign tag_mem_0__T_234_mask = ~ic_rw_addr_q[3]; assign tag_mem_1_ic_tag_data_raw_data = tag_mem_1[tag_mem_1_ic_tag_data_raw_addr]; // @[el2_ifu_ic_mem.scala 97:20]
assign tag_mem_0__T_234_en = ic_tag_wren_q[0] & ic_tag_clken[0]; assign tag_mem_1__T_238_data = _T_14 ? _T_221 : _T_226;
assign tag_mem_0__T_246_data = _T_14 ? _T_221 : _T_226; assign tag_mem_1__T_238_addr = ic_rw_addr_q[6:0];
assign tag_mem_0__T_246_addr = ic_rw_addr_q[9:3]; assign tag_mem_1__T_238_mask = ic_tag_wren_q[1] & ic_tag_clken[1];
assign tag_mem_0__T_246_mask = ~ic_rw_addr_q[3]; assign tag_mem_1__T_238_en = 1'h1;
assign tag_mem_0__T_246_en = ic_tag_wren_q[1] & ic_tag_clken[1];
assign tag_mem_1__T_239_addr = ic_rw_addr_q[9:3];
assign tag_mem_1__T_239_data = tag_mem_1[tag_mem_1__T_239_addr]; // @[el2_ifu_ic_mem.scala 97:20]
assign tag_mem_1__T_251_addr = ic_rw_addr_q[9:3];
assign tag_mem_1__T_251_data = tag_mem_1[tag_mem_1__T_251_addr]; // @[el2_ifu_ic_mem.scala 97:20]
assign tag_mem_1__T_234_data = _T_14 ? _T_221 : _T_226;
assign tag_mem_1__T_234_addr = ic_rw_addr_q[9:3];
assign tag_mem_1__T_234_mask = ic_rw_addr_q[3];
assign tag_mem_1__T_234_en = ic_tag_wren_q[0] & ic_tag_clken[0];
assign tag_mem_1__T_246_data = _T_14 ? _T_221 : _T_226;
assign tag_mem_1__T_246_addr = ic_rw_addr_q[9:3];
assign tag_mem_1__T_246_mask = ic_rw_addr_q[3];
assign tag_mem_1__T_246_en = ic_tag_wren_q[1] & ic_tag_clken[1];
assign io_ictag_debug_rd_data = 26'h0; // @[el2_ifu_ic_mem.scala 64:26] assign io_ictag_debug_rd_data = 26'h0; // @[el2_ifu_ic_mem.scala 64:26]
assign io_ic_rd_hit = 2'h0; // @[el2_ifu_ic_mem.scala 65:16] assign io_ic_rd_hit = 2'h0; // @[el2_ifu_ic_mem.scala 65:16]
assign io_ic_tag_perr = 1'h0; // @[el2_ifu_ic_mem.scala 66:18] assign io_ic_tag_perr = 1'h0; // @[el2_ifu_ic_mem.scala 66:18]
assign io_test = _T_232 ? 26'h0 : _GEN_9; // @[el2_ifu_ic_mem.scala 108:11] assign io_test_0 = read_enable_0 ? tag_mem_0_ic_tag_data_raw_data : 26'h0; // @[el2_ifu_ic_mem.scala 114:18 el2_ifu_ic_mem.scala 116:20]
assign io_test_1 = read_enable_1 ? tag_mem_1_ic_tag_data_raw_data : 26'h0; // @[el2_ifu_ic_mem.scala 114:18 el2_ifu_ic_mem.scala 116:20]
`ifdef RANDOMIZE_GARBAGE_ASSIGN `ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE `define RANDOMIZE
`endif `endif
@ -172,17 +149,11 @@ end // initial
`endif `endif
`endif // SYNTHESIS `endif // SYNTHESIS
always @(posedge clock) begin always @(posedge clock) begin
if(tag_mem_0__T_234_en & tag_mem_0__T_234_mask) begin if(tag_mem_0__T_238_en & tag_mem_0__T_238_mask) begin
tag_mem_0[tag_mem_0__T_234_addr] <= tag_mem_0__T_234_data; // @[el2_ifu_ic_mem.scala 97:20] tag_mem_0[tag_mem_0__T_238_addr] <= tag_mem_0__T_238_data; // @[el2_ifu_ic_mem.scala 97:20]
end end
if(tag_mem_0__T_246_en & tag_mem_0__T_246_mask) begin if(tag_mem_1__T_238_en & tag_mem_1__T_238_mask) begin
tag_mem_0[tag_mem_0__T_246_addr] <= tag_mem_0__T_246_data; // @[el2_ifu_ic_mem.scala 97:20] tag_mem_1[tag_mem_1__T_238_addr] <= tag_mem_1__T_238_data; // @[el2_ifu_ic_mem.scala 97:20]
end
if(tag_mem_1__T_234_en & tag_mem_1__T_234_mask) begin
tag_mem_1[tag_mem_1__T_234_addr] <= tag_mem_1__T_234_data; // @[el2_ifu_ic_mem.scala 97:20]
end
if(tag_mem_1__T_246_en & tag_mem_1__T_246_mask) begin
tag_mem_1[tag_mem_1__T_246_addr] <= tag_mem_1__T_246_data; // @[el2_ifu_ic_mem.scala 97:20]
end end
end end
endmodule endmodule

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -18,7 +18,7 @@ module el2_ifu_compress_ctl(
wire _T_28 = _T_12 & _T_23; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_28 = _T_12 & _T_23; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_29 = _T_28 & io_din[10]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_29 = _T_28 & io_din[10]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_30 = _T_29 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_30 = _T_29 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire out_30 = _T_16 | _T_30; // @[el2_ifu_compress_ctl.scala 15:53] wire out_30 = _T_16 | _T_30; // @[el2_ifu_compress_ctl.scala 17:53]
wire _T_38 = ~io_din[10]; // @[el2_ifu_compress_ctl.scala 12:83] wire _T_38 = ~io_din[10]; // @[el2_ifu_compress_ctl.scala 12:83]
wire _T_40 = ~io_din[9]; // @[el2_ifu_compress_ctl.scala 12:83] wire _T_40 = ~io_din[9]; // @[el2_ifu_compress_ctl.scala 12:83]
wire _T_42 = ~io_din[8]; // @[el2_ifu_compress_ctl.scala 12:83] wire _T_42 = ~io_din[8]; // @[el2_ifu_compress_ctl.scala 12:83]
@ -41,88 +41,88 @@ module el2_ifu_compress_ctl(
wire _T_79 = _T_28 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_79 = _T_28 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_90 = _T_12 & _T_38; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_90 = _T_12 & _T_38; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_91 = _T_90 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_91 = _T_90 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_92 = _T_79 | _T_91; // @[el2_ifu_compress_ctl.scala 17:46] wire _T_92 = _T_79 | _T_91; // @[el2_ifu_compress_ctl.scala 21:46]
wire _T_102 = _T_12 & io_din[6]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_102 = _T_12 & io_din[6]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_103 = _T_102 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_103 = _T_102 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_104 = _T_92 | _T_103; // @[el2_ifu_compress_ctl.scala 17:80] wire _T_104 = _T_92 | _T_103; // @[el2_ifu_compress_ctl.scala 21:80]
wire _T_114 = _T_12 & io_din[5]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_114 = _T_12 & io_din[5]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_115 = _T_114 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_115 = _T_114 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire out_14 = _T_104 | _T_115; // @[el2_ifu_compress_ctl.scala 17:113] wire out_14 = _T_104 | _T_115; // @[el2_ifu_compress_ctl.scala 21:113]
wire _T_128 = _T_12 & io_din[11]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_128 = _T_12 & io_din[11]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_129 = _T_128 & _T_38; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_129 = _T_128 & _T_38; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_130 = _T_129 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_130 = _T_129 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_142 = _T_128 & io_din[6]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_142 = _T_128 & io_din[6]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_143 = _T_142 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_143 = _T_142 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_144 = _T_130 | _T_143; // @[el2_ifu_compress_ctl.scala 19:50] wire _T_144 = _T_130 | _T_143; // @[el2_ifu_compress_ctl.scala 23:50]
wire _T_147 = ~io_din[0]; // @[el2_ifu_compress_ctl.scala 19:101] wire _T_147 = ~io_din[0]; // @[el2_ifu_compress_ctl.scala 23:101]
wire _T_148 = io_din[14] & _T_147; // @[el2_ifu_compress_ctl.scala 19:99] wire _T_148 = io_din[14] & _T_147; // @[el2_ifu_compress_ctl.scala 23:99]
wire out_13 = _T_144 | _T_148; // @[el2_ifu_compress_ctl.scala 19:86] wire out_13 = _T_144 | _T_148; // @[el2_ifu_compress_ctl.scala 23:86]
wire _T_161 = _T_102 & io_din[5]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_161 = _T_102 & io_din[5]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_162 = _T_161 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_162 = _T_161 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_175 = _T_162 | _T_79; // @[el2_ifu_compress_ctl.scala 20:47] wire _T_175 = _T_162 | _T_79; // @[el2_ifu_compress_ctl.scala 25:47]
wire _T_188 = _T_175 | _T_91; // @[el2_ifu_compress_ctl.scala 20:81] wire _T_188 = _T_175 | _T_91; // @[el2_ifu_compress_ctl.scala 25:81]
wire _T_190 = ~io_din[15]; // @[el2_ifu_compress_ctl.scala 12:83] wire _T_190 = ~io_din[15]; // @[el2_ifu_compress_ctl.scala 12:83]
wire _T_194 = _T_190 & _T_2; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_194 = _T_190 & _T_2; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_195 = _T_194 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_195 = _T_194 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_196 = _T_188 | _T_195; // @[el2_ifu_compress_ctl.scala 20:115] wire _T_196 = _T_188 | _T_195; // @[el2_ifu_compress_ctl.scala 25:115]
wire _T_200 = io_din[15] & io_din[14]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_200 = io_din[15] & io_din[14]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_201 = _T_200 & io_din[13]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_201 = _T_200 & io_din[13]; // @[el2_ifu_compress_ctl.scala 12:110]
wire out_12 = _T_196 | _T_201; // @[el2_ifu_compress_ctl.scala 21:26] wire out_12 = _T_196 | _T_201; // @[el2_ifu_compress_ctl.scala 26:26]
wire _T_217 = _T_11 & _T_7; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_217 = _T_11 & _T_7; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_218 = _T_217 & _T_9; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_218 = _T_217 & _T_9; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_219 = _T_218 & _T_50; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_219 = _T_218 & _T_50; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_220 = _T_219 & _T_52; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_220 = _T_219 & _T_52; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_221 = _T_220 & _T_54; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_221 = _T_220 & _T_54; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_224 = _T_221 & _T_147; // @[el2_ifu_compress_ctl.scala 22:53] wire _T_224 = _T_221 & _T_147; // @[el2_ifu_compress_ctl.scala 28:53]
wire _T_228 = _T_2 & io_din[13]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_228 = _T_2 & io_din[13]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_229 = _T_224 | _T_228; // @[el2_ifu_compress_ctl.scala 22:67] wire _T_229 = _T_224 | _T_228; // @[el2_ifu_compress_ctl.scala 28:67]
wire _T_234 = _T_200 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_234 = _T_200 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire out_6 = _T_229 | _T_234; // @[el2_ifu_compress_ctl.scala 22:88] wire out_6 = _T_229 | _T_234; // @[el2_ifu_compress_ctl.scala 28:88]
wire _T_239 = io_din[15] & _T_147; // @[el2_ifu_compress_ctl.scala 24:24] wire _T_239 = io_din[15] & _T_147; // @[el2_ifu_compress_ctl.scala 30:24]
wire _T_243 = io_din[15] & io_din[11]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_243 = io_din[15] & io_din[11]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_244 = _T_243 & io_din[10]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_244 = _T_243 & io_din[10]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_245 = _T_239 | _T_244; // @[el2_ifu_compress_ctl.scala 24:39] wire _T_245 = _T_239 | _T_244; // @[el2_ifu_compress_ctl.scala 30:39]
wire _T_249 = io_din[13] & _T_42; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_249 = io_din[13] & _T_42; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_250 = _T_245 | _T_249; // @[el2_ifu_compress_ctl.scala 24:63] wire _T_250 = _T_245 | _T_249; // @[el2_ifu_compress_ctl.scala 30:63]
wire _T_253 = io_din[13] & io_din[7]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_253 = io_din[13] & io_din[7]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_254 = _T_250 | _T_253; // @[el2_ifu_compress_ctl.scala 24:83] wire _T_254 = _T_250 | _T_253; // @[el2_ifu_compress_ctl.scala 30:83]
wire _T_257 = io_din[13] & io_din[9]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_257 = io_din[13] & io_din[9]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_258 = _T_254 | _T_257; // @[el2_ifu_compress_ctl.scala 24:102] wire _T_258 = _T_254 | _T_257; // @[el2_ifu_compress_ctl.scala 30:102]
wire _T_261 = io_din[13] & io_din[10]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_261 = io_din[13] & io_din[10]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_262 = _T_258 | _T_261; // @[el2_ifu_compress_ctl.scala 25:22] wire _T_262 = _T_258 | _T_261; // @[el2_ifu_compress_ctl.scala 31:22]
wire _T_265 = io_din[13] & io_din[11]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_265 = io_din[13] & io_din[11]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_266 = _T_262 | _T_265; // @[el2_ifu_compress_ctl.scala 25:42] wire _T_266 = _T_262 | _T_265; // @[el2_ifu_compress_ctl.scala 31:42]
wire _T_271 = _T_266 | _T_228; // @[el2_ifu_compress_ctl.scala 25:62] wire _T_271 = _T_266 | _T_228; // @[el2_ifu_compress_ctl.scala 31:62]
wire out_5 = _T_271 | _T_200; // @[el2_ifu_compress_ctl.scala 25:83] wire out_5 = _T_271 | _T_200; // @[el2_ifu_compress_ctl.scala 31:83]
wire _T_288 = _T_2 & _T_23; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_288 = _T_2 & _T_23; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_289 = _T_288 & _T_38; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_289 = _T_288 & _T_38; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_290 = _T_289 & _T_40; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_290 = _T_289 & _T_40; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_291 = _T_290 & _T_42; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_291 = _T_290 & _T_42; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_292 = _T_291 & _T_44; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_292 = _T_291 & _T_44; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_295 = _T_292 & _T_147; // @[el2_ifu_compress_ctl.scala 28:50] wire _T_295 = _T_292 & _T_147; // @[el2_ifu_compress_ctl.scala 33:50]
wire _T_303 = _T_194 & _T_147; // @[el2_ifu_compress_ctl.scala 28:87] wire _T_303 = _T_194 & _T_147; // @[el2_ifu_compress_ctl.scala 33:87]
wire _T_304 = _T_295 | _T_303; // @[el2_ifu_compress_ctl.scala 28:65] wire _T_304 = _T_295 | _T_303; // @[el2_ifu_compress_ctl.scala 33:65]
wire _T_308 = _T_2 & io_din[6]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_308 = _T_2 & io_din[6]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_311 = _T_308 & _T_147; // @[el2_ifu_compress_ctl.scala 29:23] wire _T_311 = _T_308 & _T_147; // @[el2_ifu_compress_ctl.scala 34:23]
wire _T_312 = _T_304 | _T_311; // @[el2_ifu_compress_ctl.scala 28:102] wire _T_312 = _T_304 | _T_311; // @[el2_ifu_compress_ctl.scala 33:102]
wire _T_317 = _T_190 & io_din[14]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_317 = _T_190 & io_din[14]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_318 = _T_317 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_318 = _T_317 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_319 = _T_312 | _T_318; // @[el2_ifu_compress_ctl.scala 29:38] wire _T_319 = _T_312 | _T_318; // @[el2_ifu_compress_ctl.scala 34:38]
wire _T_323 = _T_2 & io_din[5]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_323 = _T_2 & io_din[5]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_326 = _T_323 & _T_147; // @[el2_ifu_compress_ctl.scala 29:82] wire _T_326 = _T_323 & _T_147; // @[el2_ifu_compress_ctl.scala 34:82]
wire _T_327 = _T_319 | _T_326; // @[el2_ifu_compress_ctl.scala 29:62] wire _T_327 = _T_319 | _T_326; // @[el2_ifu_compress_ctl.scala 34:62]
wire _T_331 = _T_2 & io_din[4]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_331 = _T_2 & io_din[4]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_334 = _T_331 & _T_147; // @[el2_ifu_compress_ctl.scala 30:23] wire _T_334 = _T_331 & _T_147; // @[el2_ifu_compress_ctl.scala 35:23]
wire _T_335 = _T_327 | _T_334; // @[el2_ifu_compress_ctl.scala 29:97] wire _T_335 = _T_327 | _T_334; // @[el2_ifu_compress_ctl.scala 34:97]
wire _T_339 = _T_2 & io_din[3]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_339 = _T_2 & io_din[3]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_342 = _T_339 & _T_147; // @[el2_ifu_compress_ctl.scala 30:58] wire _T_342 = _T_339 & _T_147; // @[el2_ifu_compress_ctl.scala 35:58]
wire _T_343 = _T_335 | _T_342; // @[el2_ifu_compress_ctl.scala 30:38] wire _T_343 = _T_335 | _T_342; // @[el2_ifu_compress_ctl.scala 35:38]
wire _T_347 = _T_2 & io_din[2]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_347 = _T_2 & io_din[2]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_350 = _T_347 & _T_147; // @[el2_ifu_compress_ctl.scala 30:93] wire _T_350 = _T_347 & _T_147; // @[el2_ifu_compress_ctl.scala 35:93]
wire _T_351 = _T_343 | _T_350; // @[el2_ifu_compress_ctl.scala 30:73] wire _T_351 = _T_343 | _T_350; // @[el2_ifu_compress_ctl.scala 35:73]
wire _T_357 = _T_2 & _T_4; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_357 = _T_2 & _T_4; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_358 = _T_357 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_358 = _T_357 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire out_4 = _T_351 | _T_358; // @[el2_ifu_compress_ctl.scala 30:108] wire out_4 = _T_351 | _T_358; // @[el2_ifu_compress_ctl.scala 35:108]
wire _T_380 = _T_56 & io_din[11]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_380 = _T_56 & io_din[11]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_381 = _T_380 & _T_7; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_381 = _T_380 & _T_7; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_382 = _T_381 & _T_9; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_382 = _T_381 & _T_9; // @[el2_ifu_compress_ctl.scala 12:110]
@ -137,7 +137,7 @@ module el2_ifu_compress_ctl(
wire _T_407 = _T_406 & _T_52; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_407 = _T_406 & _T_52; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_408 = _T_407 & _T_54; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_408 = _T_407 & _T_54; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_409 = _T_408 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_409 = _T_408 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_410 = _T_386 | _T_409; // @[el2_ifu_compress_ctl.scala 34:59] wire _T_410 = _T_386 | _T_409; // @[el2_ifu_compress_ctl.scala 40:59]
wire _T_427 = _T_56 & io_din[9]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_427 = _T_56 & io_din[9]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_428 = _T_427 & _T_7; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_428 = _T_427 & _T_7; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_429 = _T_428 & _T_9; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_429 = _T_428 & _T_9; // @[el2_ifu_compress_ctl.scala 12:110]
@ -145,7 +145,7 @@ module el2_ifu_compress_ctl(
wire _T_431 = _T_430 & _T_52; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_431 = _T_430 & _T_52; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_432 = _T_431 & _T_54; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_432 = _T_431 & _T_54; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_433 = _T_432 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_433 = _T_432 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_434 = _T_410 | _T_433; // @[el2_ifu_compress_ctl.scala 34:107] wire _T_434 = _T_410 | _T_433; // @[el2_ifu_compress_ctl.scala 40:107]
wire _T_451 = _T_56 & io_din[8]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_451 = _T_56 & io_din[8]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_452 = _T_451 & _T_7; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_452 = _T_451 & _T_7; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_453 = _T_452 & _T_9; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_453 = _T_452 & _T_9; // @[el2_ifu_compress_ctl.scala 12:110]
@ -153,7 +153,7 @@ module el2_ifu_compress_ctl(
wire _T_455 = _T_454 & _T_52; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_455 = _T_454 & _T_52; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_456 = _T_455 & _T_54; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_456 = _T_455 & _T_54; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_457 = _T_456 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_457 = _T_456 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_458 = _T_434 | _T_457; // @[el2_ifu_compress_ctl.scala 35:50] wire _T_458 = _T_434 | _T_457; // @[el2_ifu_compress_ctl.scala 41:50]
wire _T_475 = _T_56 & io_din[7]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_475 = _T_56 & io_din[7]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_476 = _T_475 & _T_7; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_476 = _T_475 & _T_7; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_477 = _T_476 & _T_9; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_477 = _T_476 & _T_9; // @[el2_ifu_compress_ctl.scala 12:110]
@ -161,7 +161,7 @@ module el2_ifu_compress_ctl(
wire _T_479 = _T_478 & _T_52; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_479 = _T_478 & _T_52; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_480 = _T_479 & _T_54; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_480 = _T_479 & _T_54; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_481 = _T_480 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_481 = _T_480 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_482 = _T_458 | _T_481; // @[el2_ifu_compress_ctl.scala 35:94] wire _T_482 = _T_458 | _T_481; // @[el2_ifu_compress_ctl.scala 41:94]
wire _T_487 = ~io_din[12]; // @[el2_ifu_compress_ctl.scala 12:83] wire _T_487 = ~io_din[12]; // @[el2_ifu_compress_ctl.scala 12:83]
wire _T_499 = _T_11 & _T_487; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_499 = _T_11 & _T_487; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_500 = _T_499 & _T_7; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_500 = _T_499 & _T_7; // @[el2_ifu_compress_ctl.scala 12:110]
@ -169,62 +169,62 @@ module el2_ifu_compress_ctl(
wire _T_502 = _T_501 & _T_50; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_502 = _T_501 & _T_50; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_503 = _T_502 & _T_52; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_503 = _T_502 & _T_52; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_504 = _T_503 & _T_54; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_504 = _T_503 & _T_54; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_507 = _T_504 & _T_147; // @[el2_ifu_compress_ctl.scala 36:94] wire _T_507 = _T_504 & _T_147; // @[el2_ifu_compress_ctl.scala 42:94]
wire _T_508 = _T_482 | _T_507; // @[el2_ifu_compress_ctl.scala 36:49] wire _T_508 = _T_482 | _T_507; // @[el2_ifu_compress_ctl.scala 42:49]
wire _T_514 = _T_190 & io_din[13]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_514 = _T_190 & io_din[13]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_515 = _T_514 & _T_42; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_515 = _T_514 & _T_42; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_516 = _T_508 | _T_515; // @[el2_ifu_compress_ctl.scala 36:109] wire _T_516 = _T_508 | _T_515; // @[el2_ifu_compress_ctl.scala 42:109]
wire _T_522 = _T_514 & io_din[7]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_522 = _T_514 & io_din[7]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_523 = _T_516 | _T_522; // @[el2_ifu_compress_ctl.scala 37:26] wire _T_523 = _T_516 | _T_522; // @[el2_ifu_compress_ctl.scala 43:26]
wire _T_529 = _T_514 & io_din[9]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_529 = _T_514 & io_din[9]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_530 = _T_523 | _T_529; // @[el2_ifu_compress_ctl.scala 37:48] wire _T_530 = _T_523 | _T_529; // @[el2_ifu_compress_ctl.scala 43:48]
wire _T_536 = _T_514 & io_din[10]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_536 = _T_514 & io_din[10]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_537 = _T_530 | _T_536; // @[el2_ifu_compress_ctl.scala 37:70] wire _T_537 = _T_530 | _T_536; // @[el2_ifu_compress_ctl.scala 43:70]
wire _T_543 = _T_514 & io_din[11]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_543 = _T_514 & io_din[11]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_544 = _T_537 | _T_543; // @[el2_ifu_compress_ctl.scala 37:93] wire _T_544 = _T_537 | _T_543; // @[el2_ifu_compress_ctl.scala 43:93]
wire out_2 = _T_544 | _T_228; // @[el2_ifu_compress_ctl.scala 38:26] wire out_2 = _T_544 | _T_228; // @[el2_ifu_compress_ctl.scala 44:26]
wire [4:0] rs2d = io_din[6:2]; // @[el2_ifu_compress_ctl.scala 43:20] wire [4:0] rs2d = io_din[6:2]; // @[el2_ifu_compress_ctl.scala 50:20]
wire [4:0] rdd = io_din[11:7]; // @[el2_ifu_compress_ctl.scala 44:19] wire [4:0] rdd = io_din[11:7]; // @[el2_ifu_compress_ctl.scala 51:19]
wire [4:0] rdpd = {2'h1,io_din[9:7]}; // @[Cat.scala 29:58] wire [4:0] rdpd = {2'h1,io_din[9:7]}; // @[Cat.scala 29:58]
wire [4:0] rs2pd = {2'h1,io_din[4:2]}; // @[Cat.scala 29:58] wire [4:0] rs2pd = {2'h1,io_din[4:2]}; // @[Cat.scala 29:58]
wire _T_557 = _T_308 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_557 = _T_308 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_564 = _T_317 & io_din[11]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_564 = _T_317 & io_din[11]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_565 = _T_564 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_565 = _T_564 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_566 = _T_557 | _T_565; // @[el2_ifu_compress_ctl.scala 48:33] wire _T_566 = _T_557 | _T_565; // @[el2_ifu_compress_ctl.scala 55:33]
wire _T_572 = _T_323 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_572 = _T_323 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_573 = _T_566 | _T_572; // @[el2_ifu_compress_ctl.scala 48:58] wire _T_573 = _T_566 | _T_572; // @[el2_ifu_compress_ctl.scala 55:58]
wire _T_580 = _T_317 & io_din[10]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_580 = _T_317 & io_din[10]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_581 = _T_580 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_581 = _T_580 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_582 = _T_573 | _T_581; // @[el2_ifu_compress_ctl.scala 48:79] wire _T_582 = _T_573 | _T_581; // @[el2_ifu_compress_ctl.scala 55:79]
wire _T_588 = _T_331 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_588 = _T_331 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_589 = _T_582 | _T_588; // @[el2_ifu_compress_ctl.scala 48:104] wire _T_589 = _T_582 | _T_588; // @[el2_ifu_compress_ctl.scala 55:104]
wire _T_596 = _T_317 & io_din[9]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_596 = _T_317 & io_din[9]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_597 = _T_596 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_597 = _T_596 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_598 = _T_589 | _T_597; // @[el2_ifu_compress_ctl.scala 49:24] wire _T_598 = _T_589 | _T_597; // @[el2_ifu_compress_ctl.scala 56:24]
wire _T_604 = _T_339 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_604 = _T_339 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_605 = _T_598 | _T_604; // @[el2_ifu_compress_ctl.scala 49:48] wire _T_605 = _T_598 | _T_604; // @[el2_ifu_compress_ctl.scala 56:48]
wire _T_613 = _T_317 & _T_42; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_613 = _T_317 & _T_42; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_614 = _T_613 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_614 = _T_613 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_615 = _T_605 | _T_614; // @[el2_ifu_compress_ctl.scala 49:69] wire _T_615 = _T_605 | _T_614; // @[el2_ifu_compress_ctl.scala 56:69]
wire _T_621 = _T_347 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_621 = _T_347 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_622 = _T_615 | _T_621; // @[el2_ifu_compress_ctl.scala 49:94] wire _T_622 = _T_615 | _T_621; // @[el2_ifu_compress_ctl.scala 56:94]
wire _T_629 = _T_317 & io_din[7]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_629 = _T_317 & io_din[7]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_630 = _T_629 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_630 = _T_629 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_631 = _T_622 | _T_630; // @[el2_ifu_compress_ctl.scala 50:22] wire _T_631 = _T_622 | _T_630; // @[el2_ifu_compress_ctl.scala 57:22]
wire _T_635 = _T_190 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_635 = _T_190 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_636 = _T_631 | _T_635; // @[el2_ifu_compress_ctl.scala 50:46] wire _T_636 = _T_631 | _T_635; // @[el2_ifu_compress_ctl.scala 57:46]
wire _T_642 = _T_190 & _T_4; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_642 = _T_190 & _T_4; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_643 = _T_642 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_643 = _T_642 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire rdrd = _T_636 | _T_643; // @[el2_ifu_compress_ctl.scala 50:65] wire rdrd = _T_636 | _T_643; // @[el2_ifu_compress_ctl.scala 57:65]
wire _T_651 = _T_380 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_651 = _T_380 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_659 = _T_403 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_659 = _T_403 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_660 = _T_651 | _T_659; // @[el2_ifu_compress_ctl.scala 52:38] wire _T_660 = _T_651 | _T_659; // @[el2_ifu_compress_ctl.scala 59:38]
wire _T_668 = _T_427 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_668 = _T_427 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_669 = _T_660 | _T_668; // @[el2_ifu_compress_ctl.scala 52:63] wire _T_669 = _T_660 | _T_668; // @[el2_ifu_compress_ctl.scala 59:63]
wire _T_677 = _T_451 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_677 = _T_451 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_678 = _T_669 | _T_677; // @[el2_ifu_compress_ctl.scala 52:87] wire _T_678 = _T_669 | _T_677; // @[el2_ifu_compress_ctl.scala 59:87]
wire _T_686 = _T_475 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_686 = _T_475 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_687 = _T_678 | _T_686; // @[el2_ifu_compress_ctl.scala 53:27] wire _T_687 = _T_678 | _T_686; // @[el2_ifu_compress_ctl.scala 60:27]
wire _T_703 = _T_2 & _T_487; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_703 = _T_2 & _T_487; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_704 = _T_703 & _T_7; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_704 = _T_703 & _T_7; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_705 = _T_704 & _T_9; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_705 = _T_704 & _T_9; // @[el2_ifu_compress_ctl.scala 12:110]
@ -232,61 +232,61 @@ module el2_ifu_compress_ctl(
wire _T_707 = _T_706 & _T_52; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_707 = _T_706 & _T_52; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_708 = _T_707 & _T_54; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_708 = _T_707 & _T_54; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_709 = _T_708 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_709 = _T_708 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_710 = _T_687 | _T_709; // @[el2_ifu_compress_ctl.scala 53:51] wire _T_710 = _T_687 | _T_709; // @[el2_ifu_compress_ctl.scala 60:51]
wire _T_717 = _T_56 & io_din[6]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_717 = _T_56 & io_din[6]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_718 = _T_717 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_718 = _T_717 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_719 = _T_710 | _T_718; // @[el2_ifu_compress_ctl.scala 53:89] wire _T_719 = _T_710 | _T_718; // @[el2_ifu_compress_ctl.scala 60:89]
wire _T_726 = _T_56 & io_din[5]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_726 = _T_56 & io_din[5]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_727 = _T_726 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_727 = _T_726 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_728 = _T_719 | _T_727; // @[el2_ifu_compress_ctl.scala 54:27] wire _T_728 = _T_719 | _T_727; // @[el2_ifu_compress_ctl.scala 61:27]
wire _T_735 = _T_56 & io_din[4]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_735 = _T_56 & io_din[4]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_736 = _T_735 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_736 = _T_735 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_737 = _T_728 | _T_736; // @[el2_ifu_compress_ctl.scala 54:51] wire _T_737 = _T_728 | _T_736; // @[el2_ifu_compress_ctl.scala 61:51]
wire _T_744 = _T_56 & io_din[3]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_744 = _T_56 & io_din[3]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_745 = _T_744 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_745 = _T_744 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_746 = _T_737 | _T_745; // @[el2_ifu_compress_ctl.scala 54:75] wire _T_746 = _T_737 | _T_745; // @[el2_ifu_compress_ctl.scala 61:75]
wire _T_753 = _T_56 & io_din[2]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_753 = _T_56 & io_din[2]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_754 = _T_753 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_754 = _T_753 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_755 = _T_746 | _T_754; // @[el2_ifu_compress_ctl.scala 54:99] wire _T_755 = _T_746 | _T_754; // @[el2_ifu_compress_ctl.scala 61:99]
wire _T_764 = _T_194 & _T_4; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_764 = _T_194 & _T_4; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_765 = _T_764 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_765 = _T_764 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_766 = _T_755 | _T_765; // @[el2_ifu_compress_ctl.scala 55:27] wire _T_766 = _T_755 | _T_765; // @[el2_ifu_compress_ctl.scala 62:27]
wire rdrs1 = _T_766 | _T_195; // @[el2_ifu_compress_ctl.scala 55:54] wire rdrs1 = _T_766 | _T_195; // @[el2_ifu_compress_ctl.scala 62:54]
wire _T_777 = io_din[15] & io_din[6]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_777 = io_din[15] & io_din[6]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_778 = _T_777 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_778 = _T_777 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_782 = io_din[15] & io_din[5]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_782 = io_din[15] & io_din[5]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_783 = _T_782 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_783 = _T_782 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_784 = _T_778 | _T_783; // @[el2_ifu_compress_ctl.scala 57:34] wire _T_784 = _T_778 | _T_783; // @[el2_ifu_compress_ctl.scala 64:34]
wire _T_788 = io_din[15] & io_din[4]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_788 = io_din[15] & io_din[4]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_789 = _T_788 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_789 = _T_788 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_790 = _T_784 | _T_789; // @[el2_ifu_compress_ctl.scala 57:54] wire _T_790 = _T_784 | _T_789; // @[el2_ifu_compress_ctl.scala 64:54]
wire _T_794 = io_din[15] & io_din[3]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_794 = io_din[15] & io_din[3]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_795 = _T_794 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_795 = _T_794 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_796 = _T_790 | _T_795; // @[el2_ifu_compress_ctl.scala 57:74] wire _T_796 = _T_790 | _T_795; // @[el2_ifu_compress_ctl.scala 64:74]
wire _T_800 = io_din[15] & io_din[2]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_800 = io_din[15] & io_din[2]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_801 = _T_800 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_801 = _T_800 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_802 = _T_796 | _T_801; // @[el2_ifu_compress_ctl.scala 57:94] wire _T_802 = _T_796 | _T_801; // @[el2_ifu_compress_ctl.scala 64:94]
wire _T_807 = _T_200 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_807 = _T_200 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire rs2rs2 = _T_802 | _T_807; // @[el2_ifu_compress_ctl.scala 57:114] wire rs2rs2 = _T_802 | _T_807; // @[el2_ifu_compress_ctl.scala 64:114]
wire rdprd = _T_12 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire rdprd = _T_12 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_820 = io_din[15] & _T_4; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_820 = io_din[15] & _T_4; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_821 = _T_820 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_821 = _T_820 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_827 = _T_821 | _T_234; // @[el2_ifu_compress_ctl.scala 61:36] wire _T_827 = _T_821 | _T_234; // @[el2_ifu_compress_ctl.scala 68:36]
wire _T_830 = ~io_din[1]; // @[el2_ifu_compress_ctl.scala 12:83] wire _T_830 = ~io_din[1]; // @[el2_ifu_compress_ctl.scala 12:83]
wire _T_831 = io_din[14] & _T_830; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_831 = io_din[14] & _T_830; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_834 = _T_831 & _T_147; // @[el2_ifu_compress_ctl.scala 61:76] wire _T_834 = _T_831 & _T_147; // @[el2_ifu_compress_ctl.scala 68:76]
wire rdprs1 = _T_827 | _T_834; // @[el2_ifu_compress_ctl.scala 61:57] wire rdprs1 = _T_827 | _T_834; // @[el2_ifu_compress_ctl.scala 68:57]
wire _T_846 = _T_128 & io_din[10]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_846 = _T_128 & io_din[10]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_847 = _T_846 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_847 = _T_846 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_851 = io_din[15] & _T_830; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_851 = io_din[15] & _T_830; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_854 = _T_851 & _T_147; // @[el2_ifu_compress_ctl.scala 63:66] wire _T_854 = _T_851 & _T_147; // @[el2_ifu_compress_ctl.scala 70:66]
wire rs2prs2 = _T_847 | _T_854; // @[el2_ifu_compress_ctl.scala 63:47] wire rs2prs2 = _T_847 | _T_854; // @[el2_ifu_compress_ctl.scala 70:47]
wire _T_859 = _T_190 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_859 = _T_190 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110]
wire rs2prd = _T_859 & _T_147; // @[el2_ifu_compress_ctl.scala 64:33] wire rs2prd = _T_859 & _T_147; // @[el2_ifu_compress_ctl.scala 72:33]
wire _T_866 = _T_2 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_866 = _T_2 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110]
wire uimm9_2 = _T_866 & _T_147; // @[el2_ifu_compress_ctl.scala 65:34] wire uimm9_2 = _T_866 & _T_147; // @[el2_ifu_compress_ctl.scala 74:34]
wire _T_875 = _T_317 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_875 = _T_317 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110]
wire ulwimm6_2 = _T_875 & _T_147; // @[el2_ifu_compress_ctl.scala 66:39] wire ulwimm6_2 = _T_875 & _T_147; // @[el2_ifu_compress_ctl.scala 76:39]
wire ulwspimm7_2 = _T_317 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire ulwspimm7_2 = _T_317 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_897 = _T_317 & io_din[13]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_897 = _T_317 & io_din[13]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_898 = _T_897 & _T_23; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_898 = _T_897 & _T_23; // @[el2_ifu_compress_ctl.scala 12:110]
@ -295,24 +295,24 @@ module el2_ifu_compress_ctl(
wire _T_901 = _T_900 & io_din[8]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_901 = _T_900 & io_din[8]; // @[el2_ifu_compress_ctl.scala 12:110]
wire rdeq2 = _T_901 & _T_44; // @[el2_ifu_compress_ctl.scala 12:110] wire rdeq2 = _T_901 & _T_44; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1027 = _T_194 & io_din[13]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1027 = _T_194 & io_din[13]; // @[el2_ifu_compress_ctl.scala 12:110]
wire rdeq1 = _T_482 | _T_1027; // @[el2_ifu_compress_ctl.scala 71:42] wire rdeq1 = _T_482 | _T_1027; // @[el2_ifu_compress_ctl.scala 84:42]
wire _T_1050 = io_din[14] & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1050 = io_din[14] & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1051 = rdeq2 | _T_1050; // @[el2_ifu_compress_ctl.scala 72:53] wire _T_1051 = rdeq2 | _T_1050; // @[el2_ifu_compress_ctl.scala 86:53]
wire rs1eq2 = _T_1051 | uimm9_2; // @[el2_ifu_compress_ctl.scala 72:71] wire rs1eq2 = _T_1051 | uimm9_2; // @[el2_ifu_compress_ctl.scala 86:71]
wire _T_1092 = _T_357 & io_din[11]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1092 = _T_357 & io_din[11]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1093 = _T_1092 & _T_38; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1093 = _T_1092 & _T_38; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1094 = _T_1093 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1094 = _T_1093 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire simm5_0 = _T_1094 | _T_643; // @[el2_ifu_compress_ctl.scala 75:45] wire simm5_0 = _T_1094 | _T_643; // @[el2_ifu_compress_ctl.scala 92:45]
wire _T_1112 = _T_897 & io_din[7]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1112 = _T_897 & io_din[7]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1121 = _T_897 & _T_42; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1121 = _T_897 & _T_42; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1122 = _T_1112 | _T_1121; // @[el2_ifu_compress_ctl.scala 77:44] wire _T_1122 = _T_1112 | _T_1121; // @[el2_ifu_compress_ctl.scala 96:44]
wire _T_1130 = _T_897 & io_din[9]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1130 = _T_897 & io_din[9]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1131 = _T_1122 | _T_1130; // @[el2_ifu_compress_ctl.scala 78:29] wire _T_1131 = _T_1122 | _T_1130; // @[el2_ifu_compress_ctl.scala 96:70]
wire _T_1139 = _T_897 & io_din[10]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1139 = _T_897 & io_din[10]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1140 = _T_1131 | _T_1139; // @[el2_ifu_compress_ctl.scala 79:28] wire _T_1140 = _T_1131 | _T_1139; // @[el2_ifu_compress_ctl.scala 96:95]
wire _T_1148 = _T_897 & io_din[11]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1148 = _T_897 & io_din[11]; // @[el2_ifu_compress_ctl.scala 12:110]
wire sluimm17_12 = _T_1140 | _T_1148; // @[el2_ifu_compress_ctl.scala 80:29] wire sluimm17_12 = _T_1140 | _T_1148; // @[el2_ifu_compress_ctl.scala 96:121]
wire uimm5_0 = _T_79 | _T_195; // @[el2_ifu_compress_ctl.scala 82:45] wire uimm5_0 = _T_79 | _T_195; // @[el2_ifu_compress_ctl.scala 98:45]
wire [6:0] l1_6 = {out_6,out_5,out_4,_T_228,out_2,1'h1,1'h1}; // @[Cat.scala 29:58] wire [6:0] l1_6 = {out_6,out_5,out_4,_T_228,out_2,1'h1,1'h1}; // @[Cat.scala 29:58]
wire [4:0] _T_1192 = rdrd ? rdd : 5'h0; // @[Mux.scala 27:72] wire [4:0] _T_1192 = rdrd ? rdd : 5'h0; // @[Mux.scala 27:72]
wire [4:0] _T_1193 = rdprd ? rdpd : 5'h0; // @[Mux.scala 27:72] wire [4:0] _T_1193 = rdprd ? rdpd : 5'h0; // @[Mux.scala 27:72]
@ -332,180 +332,180 @@ module el2_ifu_compress_ctl(
wire [4:0] _T_1222 = rs2rs2 ? rs2d : 5'h0; // @[Mux.scala 27:72] wire [4:0] _T_1222 = rs2rs2 ? rs2d : 5'h0; // @[Mux.scala 27:72]
wire [4:0] _T_1223 = rs2prs2 ? rs2pd : 5'h0; // @[Mux.scala 27:72] wire [4:0] _T_1223 = rs2prs2 ? rs2pd : 5'h0; // @[Mux.scala 27:72]
wire [4:0] _T_1224 = _T_1222 | _T_1223; // @[Mux.scala 27:72] wire [4:0] _T_1224 = _T_1222 | _T_1223; // @[Mux.scala 27:72]
wire [4:0] l1_24 = _T_1219 | _T_1224; // @[el2_ifu_compress_ctl.scala 95:67] wire [4:0] l1_24 = _T_1219 | _T_1224; // @[el2_ifu_compress_ctl.scala 114:67]
wire [14:0] _T_1232 = {out_14,out_13,out_12,l1_11,l1_6}; // @[Cat.scala 29:58] wire [14:0] _T_1232 = {out_14,out_13,out_12,l1_11,l1_6}; // @[Cat.scala 29:58]
wire [31:0] l1 = {1'h0,out_30,2'h0,3'h0,l1_24,l1_19,_T_1232}; // @[Cat.scala 29:58] wire [31:0] l1 = {1'h0,out_30,2'h0,3'h0,l1_24,l1_19,_T_1232}; // @[Cat.scala 29:58]
wire [5:0] simm5d = {io_din[12],rs2d}; // @[Cat.scala 29:58] wire [5:0] simm5d = {io_din[12],rs2d}; // @[Cat.scala 29:58]
wire [5:0] simm9d = {io_din[12],io_din[4:3],io_din[5],io_din[2],io_din[6]}; // @[Cat.scala 29:58] wire [5:0] simm9d = {io_din[12],io_din[4:3],io_din[5],io_din[2],io_din[6]}; // @[Cat.scala 29:58]
wire [8:0] sjald_12 = io_din[12] ? 9'h1ff : 9'h0; // @[Bitwise.scala 72:12] wire [10:0] sjald_1 = {io_din[12],io_din[8],io_din[10:9],io_din[6],io_din[7],io_din[2],io_din[11],io_din[5:4],io_din[3]}; // @[Cat.scala 29:58]
wire [19:0] sjald = {sjald_12,io_din[12],io_din[8],io_din[10:9],io_din[6],io_din[7],io_din[2],io_din[11],io_din[5:4],io_din[3]}; // @[Cat.scala 29:58] wire [19:0] sjald = {io_din[12],io_din[12],io_din[12],io_din[12],io_din[12],io_din[12],io_din[12],io_din[12],io_din[12],sjald_1}; // @[Cat.scala 29:58]
wire [14:0] _T_1281 = io_din[12] ? 15'h7fff : 15'h0; // @[Bitwise.scala 72:12] wire [9:0] _T_1296 = {io_din[12],io_din[12],io_din[12],io_din[12],io_din[12],io_din[12],io_din[12],io_din[12],io_din[12],io_din[12]}; // @[Cat.scala 29:58]
wire [19:0] sluimmd = {_T_1281,rs2d}; // @[Cat.scala 29:58] wire [19:0] sluimmd = {_T_1296,io_din[12],io_din[12],io_din[12],io_din[12],io_din[12],rs2d}; // @[Cat.scala 29:58]
wire [6:0] _T_1287 = simm5d[5] ? 7'h7f : 7'h0; // @[Bitwise.scala 72:12] wire [11:0] _T_1314 = {simm5d[5],simm5d[5],simm5d[5],simm5d[5],simm5d[5],simm5d[5],simm5d[5],simm5d[4:0]}; // @[Cat.scala 29:58]
wire [11:0] _T_1289 = {_T_1287,simm5d[4:0]}; // @[Cat.scala 29:58] wire [11:0] _T_1317 = {2'h0,io_din[10:7],io_din[12:11],io_din[5],io_din[6],2'h0}; // @[Cat.scala 29:58]
wire [11:0] _T_1292 = {2'h0,io_din[10:7],io_din[12:11],io_din[5],io_din[6],2'h0}; // @[Cat.scala 29:58] wire [11:0] _T_1325 = {simm9d[5],simm9d[5],simm9d[5],simm9d[4:0],4'h0}; // @[Cat.scala 29:58]
wire [2:0] _T_1296 = simm9d[5] ? 3'h7 : 3'h0; // @[Bitwise.scala 72:12] wire [11:0] _T_1328 = {5'h0,io_din[5],io_din[12:10],io_din[6],2'h0}; // @[Cat.scala 29:58]
wire [11:0] _T_1299 = {_T_1296,simm9d[4:0],4'h0}; // @[Cat.scala 29:58] wire [11:0] _T_1331 = {4'h0,io_din[3:2],io_din[12],io_din[6:4],2'h0}; // @[Cat.scala 29:58]
wire [11:0] _T_1302 = {5'h0,io_din[5],io_din[12:10],io_din[6],2'h0}; // @[Cat.scala 29:58] wire [11:0] _T_1333 = {6'h0,io_din[12],rs2d}; // @[Cat.scala 29:58]
wire [11:0] _T_1305 = {4'h0,io_din[3:2],io_din[12],io_din[6:4],2'h0}; // @[Cat.scala 29:58] wire [11:0] _T_1339 = {sjald[19],sjald[9:0],sjald[10]}; // @[Cat.scala 29:58]
wire [11:0] _T_1307 = {6'h0,io_din[12],rs2d}; // @[Cat.scala 29:58] wire [11:0] _T_1342 = simm5_0 ? _T_1314 : 12'h0; // @[Mux.scala 27:72]
wire [11:0] _T_1313 = {sjald[19],sjald[9:0],sjald[10]}; // @[Cat.scala 29:58] wire [11:0] _T_1343 = uimm9_2 ? _T_1317 : 12'h0; // @[Mux.scala 27:72]
wire [11:0] _T_1316 = simm5_0 ? _T_1289 : 12'h0; // @[Mux.scala 27:72] wire [11:0] _T_1344 = rdeq2 ? _T_1325 : 12'h0; // @[Mux.scala 27:72]
wire [11:0] _T_1317 = uimm9_2 ? _T_1292 : 12'h0; // @[Mux.scala 27:72] wire [11:0] _T_1345 = ulwimm6_2 ? _T_1328 : 12'h0; // @[Mux.scala 27:72]
wire [11:0] _T_1318 = rdeq2 ? _T_1299 : 12'h0; // @[Mux.scala 27:72] wire [11:0] _T_1346 = ulwspimm7_2 ? _T_1331 : 12'h0; // @[Mux.scala 27:72]
wire [11:0] _T_1319 = ulwimm6_2 ? _T_1302 : 12'h0; // @[Mux.scala 27:72] wire [11:0] _T_1347 = uimm5_0 ? _T_1333 : 12'h0; // @[Mux.scala 27:72]
wire [11:0] _T_1320 = ulwspimm7_2 ? _T_1305 : 12'h0; // @[Mux.scala 27:72] wire [11:0] _T_1348 = _T_228 ? _T_1339 : 12'h0; // @[Mux.scala 27:72]
wire [11:0] _T_1321 = uimm5_0 ? _T_1307 : 12'h0; // @[Mux.scala 27:72] wire [11:0] _T_1349 = sluimm17_12 ? sluimmd[19:8] : 12'h0; // @[Mux.scala 27:72]
wire [11:0] _T_1322 = _T_228 ? _T_1313 : 12'h0; // @[Mux.scala 27:72] wire [11:0] _T_1350 = _T_1342 | _T_1343; // @[Mux.scala 27:72]
wire [11:0] _T_1323 = sluimm17_12 ? sluimmd[19:8] : 12'h0; // @[Mux.scala 27:72] wire [11:0] _T_1351 = _T_1350 | _T_1344; // @[Mux.scala 27:72]
wire [11:0] _T_1324 = _T_1316 | _T_1317; // @[Mux.scala 27:72] wire [11:0] _T_1352 = _T_1351 | _T_1345; // @[Mux.scala 27:72]
wire [11:0] _T_1325 = _T_1324 | _T_1318; // @[Mux.scala 27:72] wire [11:0] _T_1353 = _T_1352 | _T_1346; // @[Mux.scala 27:72]
wire [11:0] _T_1326 = _T_1325 | _T_1319; // @[Mux.scala 27:72] wire [11:0] _T_1354 = _T_1353 | _T_1347; // @[Mux.scala 27:72]
wire [11:0] _T_1327 = _T_1326 | _T_1320; // @[Mux.scala 27:72] wire [11:0] _T_1355 = _T_1354 | _T_1348; // @[Mux.scala 27:72]
wire [11:0] _T_1328 = _T_1327 | _T_1321; // @[Mux.scala 27:72] wire [11:0] _T_1356 = _T_1355 | _T_1349; // @[Mux.scala 27:72]
wire [11:0] _T_1329 = _T_1328 | _T_1322; // @[Mux.scala 27:72] wire [11:0] l2_31 = l1[31:20] | _T_1356; // @[el2_ifu_compress_ctl.scala 133:25]
wire [11:0] _T_1330 = _T_1329 | _T_1323; // @[Mux.scala 27:72] wire [7:0] _T_1363 = _T_228 ? sjald[19:12] : 8'h0; // @[Mux.scala 27:72]
wire [11:0] l2_31 = l1[31:20] | _T_1330; // @[el2_ifu_compress_ctl.scala 112:25] wire [7:0] _T_1364 = sluimm17_12 ? sluimmd[7:0] : 8'h0; // @[Mux.scala 27:72]
wire [7:0] _T_1337 = _T_228 ? sjald[19:12] : 8'h0; // @[Mux.scala 27:72] wire [7:0] _T_1365 = _T_1363 | _T_1364; // @[Mux.scala 27:72]
wire [7:0] _T_1338 = sluimm17_12 ? sluimmd[7:0] : 8'h0; // @[Mux.scala 27:72] wire [7:0] l2_19 = l1[19:12] | _T_1365; // @[el2_ifu_compress_ctl.scala 143:25]
wire [7:0] _T_1339 = _T_1337 | _T_1338; // @[Mux.scala 27:72]
wire [7:0] l2_19 = l1[19:12] | _T_1339; // @[el2_ifu_compress_ctl.scala 122:25]
wire [31:0] l2 = {l2_31,l2_19,l1[11:0]}; // @[Cat.scala 29:58] wire [31:0] l2 = {l2_31,l2_19,l1[11:0]}; // @[Cat.scala 29:58]
wire [8:0] sbr8d = {io_din[12],io_din[6],io_din[5],io_din[2],io_din[11],io_din[10],io_din[4],io_din[3],1'h0}; // @[Cat.scala 29:58] wire [8:0] sbr8d = {io_din[12],io_din[6],io_din[5],io_din[2],io_din[11],io_din[10],io_din[4],io_din[3],1'h0}; // @[Cat.scala 29:58]
wire [6:0] uswimm6d = {io_din[5],io_din[12:10],io_din[6],2'h0}; // @[Cat.scala 29:58] wire [6:0] uswimm6d = {io_din[5],io_din[12:10],io_din[6],2'h0}; // @[Cat.scala 29:58]
wire [7:0] uswspimm7d = {io_din[8:7],io_din[12:9],2'h0}; // @[Cat.scala 29:58] wire [7:0] uswspimm7d = {io_din[8:7],io_din[12:9],2'h0}; // @[Cat.scala 29:58]
wire [3:0] _T_1370 = sbr8d[8] ? 4'hf : 4'h0; // @[Bitwise.scala 72:12] wire [6:0] _T_1400 = {sbr8d[8],sbr8d[8],sbr8d[8],sbr8d[8],sbr8d[7:5]}; // @[Cat.scala 29:58]
wire [6:0] _T_1372 = {_T_1370,sbr8d[7:5]}; // @[Cat.scala 29:58] wire [6:0] _T_1403 = {5'h0,uswimm6d[6:5]}; // @[Cat.scala 29:58]
wire [6:0] _T_1375 = {5'h0,uswimm6d[6:5]}; // @[Cat.scala 29:58] wire [6:0] _T_1406 = {4'h0,uswspimm7d[7:5]}; // @[Cat.scala 29:58]
wire [6:0] _T_1378 = {4'h0,uswspimm7d[7:5]}; // @[Cat.scala 29:58] wire [6:0] _T_1407 = _T_234 ? _T_1400 : 7'h0; // @[Mux.scala 27:72]
wire [6:0] _T_1379 = _T_234 ? _T_1372 : 7'h0; // @[Mux.scala 27:72] wire [6:0] _T_1408 = _T_854 ? _T_1403 : 7'h0; // @[Mux.scala 27:72]
wire [6:0] _T_1380 = _T_854 ? _T_1375 : 7'h0; // @[Mux.scala 27:72] wire [6:0] _T_1409 = _T_807 ? _T_1406 : 7'h0; // @[Mux.scala 27:72]
wire [6:0] _T_1381 = _T_807 ? _T_1378 : 7'h0; // @[Mux.scala 27:72] wire [6:0] _T_1410 = _T_1407 | _T_1408; // @[Mux.scala 27:72]
wire [6:0] _T_1382 = _T_1379 | _T_1380; // @[Mux.scala 27:72] wire [6:0] _T_1411 = _T_1410 | _T_1409; // @[Mux.scala 27:72]
wire [6:0] _T_1383 = _T_1382 | _T_1381; // @[Mux.scala 27:72] wire [6:0] l3_31 = l2[31:25] | _T_1411; // @[el2_ifu_compress_ctl.scala 151:25]
wire [6:0] l3_31 = l2[31:25] | _T_1383; // @[el2_ifu_compress_ctl.scala 129:25] wire [12:0] l3_24 = l2[24:12]; // @[el2_ifu_compress_ctl.scala 154:17]
wire [12:0] l3_24 = l2[24:12]; // @[el2_ifu_compress_ctl.scala 132:17] wire [4:0] _T_1417 = {sbr8d[4:1],sbr8d[8]}; // @[Cat.scala 29:58]
wire [4:0] _T_1389 = {sbr8d[4:1],sbr8d[8]}; // @[Cat.scala 29:58] wire [4:0] _T_1422 = _T_234 ? _T_1417 : 5'h0; // @[Mux.scala 27:72]
wire [4:0] _T_1394 = _T_234 ? _T_1389 : 5'h0; // @[Mux.scala 27:72] wire [4:0] _T_1423 = _T_854 ? uswimm6d[4:0] : 5'h0; // @[Mux.scala 27:72]
wire [4:0] _T_1395 = _T_854 ? uswimm6d[4:0] : 5'h0; // @[Mux.scala 27:72] wire [4:0] _T_1424 = _T_807 ? uswspimm7d[4:0] : 5'h0; // @[Mux.scala 27:72]
wire [4:0] _T_1396 = _T_807 ? uswspimm7d[4:0] : 5'h0; // @[Mux.scala 27:72] wire [4:0] _T_1425 = _T_1422 | _T_1423; // @[Mux.scala 27:72]
wire [4:0] _T_1397 = _T_1394 | _T_1395; // @[Mux.scala 27:72] wire [4:0] _T_1426 = _T_1425 | _T_1424; // @[Mux.scala 27:72]
wire [4:0] _T_1398 = _T_1397 | _T_1396; // @[Mux.scala 27:72] wire [4:0] l3_11 = l2[11:7] | _T_1426; // @[el2_ifu_compress_ctl.scala 156:24]
wire [4:0] l3_11 = l2[11:7] | _T_1398; // @[el2_ifu_compress_ctl.scala 133:24]
wire [31:0] l3 = {l3_31,l3_24,l3_11,l2[6:0]}; // @[Cat.scala 29:58] wire [31:0] l3 = {l3_31,l3_24,l3_11,l2[6:0]}; // @[Cat.scala 29:58]
wire _T_1409 = _T_4 & _T_487; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1437 = _T_4 & _T_487; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1410 = _T_1409 & io_din[11]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1438 = _T_1437 & io_din[11]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1411 = _T_1410 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1439 = _T_1438 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1414 = _T_1411 & _T_147; // @[el2_ifu_compress_ctl.scala 138:39] wire _T_1442 = _T_1439 & _T_147; // @[el2_ifu_compress_ctl.scala 162:39]
wire _T_1422 = _T_1409 & io_din[6]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1450 = _T_1437 & io_din[6]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1423 = _T_1422 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1451 = _T_1450 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1426 = _T_1423 & _T_147; // @[el2_ifu_compress_ctl.scala 138:79] wire _T_1454 = _T_1451 & _T_147; // @[el2_ifu_compress_ctl.scala 162:79]
wire _T_1427 = _T_1414 | _T_1426; // @[el2_ifu_compress_ctl.scala 138:54] wire _T_1455 = _T_1442 | _T_1454; // @[el2_ifu_compress_ctl.scala 162:54]
wire _T_1436 = _T_642 & io_din[11]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1464 = _T_642 & io_din[11]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1437 = _T_1436 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1465 = _T_1464 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1438 = _T_1427 | _T_1437; // @[el2_ifu_compress_ctl.scala 138:94] wire _T_1466 = _T_1455 | _T_1465; // @[el2_ifu_compress_ctl.scala 162:94]
wire _T_1446 = _T_1409 & io_din[5]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1474 = _T_1437 & io_din[5]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1447 = _T_1446 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1475 = _T_1474 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1450 = _T_1447 & _T_147; // @[el2_ifu_compress_ctl.scala 139:55] wire _T_1478 = _T_1475 & _T_147; // @[el2_ifu_compress_ctl.scala 163:55]
wire _T_1451 = _T_1438 | _T_1450; // @[el2_ifu_compress_ctl.scala 139:30] wire _T_1479 = _T_1466 | _T_1478; // @[el2_ifu_compress_ctl.scala 163:30]
wire _T_1459 = _T_1409 & io_din[10]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1487 = _T_1437 & io_din[10]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1460 = _T_1459 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1488 = _T_1487 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1463 = _T_1460 & _T_147; // @[el2_ifu_compress_ctl.scala 139:96] wire _T_1491 = _T_1488 & _T_147; // @[el2_ifu_compress_ctl.scala 163:96]
wire _T_1464 = _T_1451 | _T_1463; // @[el2_ifu_compress_ctl.scala 139:70] wire _T_1492 = _T_1479 | _T_1491; // @[el2_ifu_compress_ctl.scala 163:70]
wire _T_1473 = _T_642 & io_din[6]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1501 = _T_642 & io_din[6]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1474 = _T_1473 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1502 = _T_1501 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1475 = _T_1464 | _T_1474; // @[el2_ifu_compress_ctl.scala 139:111] wire _T_1503 = _T_1492 | _T_1502; // @[el2_ifu_compress_ctl.scala 163:111]
wire _T_1482 = io_din[15] & _T_487; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1510 = io_din[15] & _T_487; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1483 = _T_1482 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1511 = _T_1510 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1484 = _T_1483 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1512 = _T_1511 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1485 = _T_1475 | _T_1484; // @[el2_ifu_compress_ctl.scala 140:29] wire _T_1513 = _T_1503 | _T_1512; // @[el2_ifu_compress_ctl.scala 164:29]
wire _T_1493 = _T_1409 & io_din[9]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1521 = _T_1437 & io_din[9]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1494 = _T_1493 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1522 = _T_1521 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1497 = _T_1494 & _T_147; // @[el2_ifu_compress_ctl.scala 140:79] wire _T_1525 = _T_1522 & _T_147; // @[el2_ifu_compress_ctl.scala 164:79]
wire _T_1498 = _T_1485 | _T_1497; // @[el2_ifu_compress_ctl.scala 140:54] wire _T_1526 = _T_1513 | _T_1525; // @[el2_ifu_compress_ctl.scala 164:54]
wire _T_1505 = _T_487 & io_din[6]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1533 = _T_487 & io_din[6]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1506 = _T_1505 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1534 = _T_1533 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1507 = _T_1506 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1535 = _T_1534 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1508 = _T_1498 | _T_1507; // @[el2_ifu_compress_ctl.scala 140:94] wire _T_1536 = _T_1526 | _T_1535; // @[el2_ifu_compress_ctl.scala 164:94]
wire _T_1517 = _T_642 & io_din[5]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1545 = _T_642 & io_din[5]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1518 = _T_1517 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1546 = _T_1545 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1519 = _T_1508 | _T_1518; // @[el2_ifu_compress_ctl.scala 140:118] wire _T_1547 = _T_1536 | _T_1546; // @[el2_ifu_compress_ctl.scala 164:118]
wire _T_1527 = _T_1409 & io_din[8]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1555 = _T_1437 & io_din[8]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1528 = _T_1527 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1556 = _T_1555 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1531 = _T_1528 & _T_147; // @[el2_ifu_compress_ctl.scala 141:28] wire _T_1559 = _T_1556 & _T_147; // @[el2_ifu_compress_ctl.scala 165:28]
wire _T_1532 = _T_1519 | _T_1531; // @[el2_ifu_compress_ctl.scala 140:144] wire _T_1560 = _T_1547 | _T_1559; // @[el2_ifu_compress_ctl.scala 164:144]
wire _T_1539 = _T_487 & io_din[5]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1567 = _T_487 & io_din[5]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1540 = _T_1539 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1568 = _T_1567 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1541 = _T_1540 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1569 = _T_1568 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1542 = _T_1532 | _T_1541; // @[el2_ifu_compress_ctl.scala 141:43] wire _T_1570 = _T_1560 | _T_1569; // @[el2_ifu_compress_ctl.scala 165:43]
wire _T_1551 = _T_642 & io_din[10]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1579 = _T_642 & io_din[10]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1552 = _T_1551 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1580 = _T_1579 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1553 = _T_1542 | _T_1552; // @[el2_ifu_compress_ctl.scala 141:67] wire _T_1581 = _T_1570 | _T_1580; // @[el2_ifu_compress_ctl.scala 165:67]
wire _T_1561 = _T_1409 & io_din[7]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1589 = _T_1437 & io_din[7]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1562 = _T_1561 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1590 = _T_1589 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1565 = _T_1562 & _T_147; // @[el2_ifu_compress_ctl.scala 142:28] wire _T_1593 = _T_1590 & _T_147; // @[el2_ifu_compress_ctl.scala 166:28]
wire _T_1566 = _T_1553 | _T_1565; // @[el2_ifu_compress_ctl.scala 141:94] wire _T_1594 = _T_1581 | _T_1593; // @[el2_ifu_compress_ctl.scala 165:94]
wire _T_1574 = io_din[12] & io_din[11]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1602 = io_din[12] & io_din[11]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1575 = _T_1574 & _T_38; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1603 = _T_1602 & _T_38; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1576 = _T_1575 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1604 = _T_1603 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1577 = _T_1576 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1605 = _T_1604 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1578 = _T_1566 | _T_1577; // @[el2_ifu_compress_ctl.scala 142:43] wire _T_1606 = _T_1594 | _T_1605; // @[el2_ifu_compress_ctl.scala 166:43]
wire _T_1587 = _T_642 & io_din[9]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1615 = _T_642 & io_din[9]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1588 = _T_1587 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1616 = _T_1615 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1589 = _T_1578 | _T_1588; // @[el2_ifu_compress_ctl.scala 142:71] wire _T_1617 = _T_1606 | _T_1616; // @[el2_ifu_compress_ctl.scala 166:71]
wire _T_1597 = _T_1409 & io_din[4]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1625 = _T_1437 & io_din[4]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1598 = _T_1597 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1626 = _T_1625 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1601 = _T_1598 & _T_147; // @[el2_ifu_compress_ctl.scala 143:28] wire _T_1629 = _T_1626 & _T_147; // @[el2_ifu_compress_ctl.scala 167:28]
wire _T_1602 = _T_1589 | _T_1601; // @[el2_ifu_compress_ctl.scala 142:97] wire _T_1630 = _T_1617 | _T_1629; // @[el2_ifu_compress_ctl.scala 166:97]
wire _T_1608 = io_din[13] & io_din[12]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1636 = io_din[13] & io_din[12]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1609 = _T_1608 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1637 = _T_1636 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1610 = _T_1609 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1638 = _T_1637 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1611 = _T_1602 | _T_1610; // @[el2_ifu_compress_ctl.scala 143:43] wire _T_1639 = _T_1630 | _T_1638; // @[el2_ifu_compress_ctl.scala 167:43]
wire _T_1620 = _T_642 & io_din[8]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1648 = _T_642 & io_din[8]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1621 = _T_1620 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1649 = _T_1648 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1622 = _T_1611 | _T_1621; // @[el2_ifu_compress_ctl.scala 143:67] wire _T_1650 = _T_1639 | _T_1649; // @[el2_ifu_compress_ctl.scala 167:67]
wire _T_1630 = _T_1409 & io_din[3]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1658 = _T_1437 & io_din[3]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1631 = _T_1630 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1659 = _T_1658 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1634 = _T_1631 & _T_147; // @[el2_ifu_compress_ctl.scala 144:28] wire _T_1662 = _T_1659 & _T_147; // @[el2_ifu_compress_ctl.scala 168:28]
wire _T_1635 = _T_1622 | _T_1634; // @[el2_ifu_compress_ctl.scala 143:93] wire _T_1663 = _T_1650 | _T_1662; // @[el2_ifu_compress_ctl.scala 167:93]
wire _T_1641 = io_din[13] & io_din[4]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1669 = io_din[13] & io_din[4]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1642 = _T_1641 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1670 = _T_1669 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1643 = _T_1642 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1671 = _T_1670 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1644 = _T_1635 | _T_1643; // @[el2_ifu_compress_ctl.scala 144:43] wire _T_1672 = _T_1663 | _T_1671; // @[el2_ifu_compress_ctl.scala 168:43]
wire _T_1652 = _T_1409 & io_din[2]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1680 = _T_1437 & io_din[2]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1653 = _T_1652 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1681 = _T_1680 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1656 = _T_1653 & _T_147; // @[el2_ifu_compress_ctl.scala 144:91] wire _T_1684 = _T_1681 & _T_147; // @[el2_ifu_compress_ctl.scala 168:91]
wire _T_1657 = _T_1644 | _T_1656; // @[el2_ifu_compress_ctl.scala 144:66] wire _T_1685 = _T_1672 | _T_1684; // @[el2_ifu_compress_ctl.scala 168:66]
wire _T_1666 = _T_642 & io_din[7]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1694 = _T_642 & io_din[7]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1667 = _T_1666 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1695 = _T_1694 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1668 = _T_1657 | _T_1667; // @[el2_ifu_compress_ctl.scala 144:106] wire _T_1696 = _T_1685 | _T_1695; // @[el2_ifu_compress_ctl.scala 168:106]
wire _T_1674 = io_din[13] & io_din[3]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1702 = io_din[13] & io_din[3]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1675 = _T_1674 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1703 = _T_1702 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1676 = _T_1675 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1677 = _T_1668 | _T_1676; // @[el2_ifu_compress_ctl.scala 145:29]
wire _T_1683 = io_din[13] & io_din[2]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1684 = _T_1683 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1685 = _T_1684 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1686 = _T_1677 | _T_1685; // @[el2_ifu_compress_ctl.scala 145:52]
wire _T_1692 = io_din[14] & _T_4; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1693 = _T_1692 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1694 = _T_1686 | _T_1693; // @[el2_ifu_compress_ctl.scala 145:75]
wire _T_1703 = _T_703 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1704 = _T_1703 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1704 = _T_1703 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1705 = _T_1694 | _T_1704; // @[el2_ifu_compress_ctl.scala 145:98] wire _T_1705 = _T_1696 | _T_1704; // @[el2_ifu_compress_ctl.scala 169:29]
wire _T_1712 = _T_820 & io_din[12]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1711 = io_din[13] & io_din[2]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1713 = _T_1712 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1712 = _T_1711 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1716 = _T_1713 & _T_147; // @[el2_ifu_compress_ctl.scala 146:54] wire _T_1713 = _T_1712 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1717 = _T_1705 | _T_1716; // @[el2_ifu_compress_ctl.scala 146:29] wire _T_1714 = _T_1705 | _T_1713; // @[el2_ifu_compress_ctl.scala 169:52]
wire _T_1726 = _T_642 & _T_487; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1720 = io_din[14] & _T_4; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1727 = _T_1726 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1721 = _T_1720 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1730 = _T_1727 & _T_147; // @[el2_ifu_compress_ctl.scala 146:96] wire _T_1722 = _T_1714 | _T_1721; // @[el2_ifu_compress_ctl.scala 169:75]
wire _T_1731 = _T_1717 | _T_1730; // @[el2_ifu_compress_ctl.scala 146:69] wire _T_1731 = _T_703 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1740 = _T_642 & io_din[12]; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1732 = _T_1731 & io_din[0]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1741 = _T_1740 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110] wire _T_1733 = _T_1722 | _T_1732; // @[el2_ifu_compress_ctl.scala 169:98]
wire _T_1742 = _T_1731 | _T_1741; // @[el2_ifu_compress_ctl.scala 146:111] wire _T_1740 = _T_820 & io_din[12]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1749 = _T_1692 & _T_147; // @[el2_ifu_compress_ctl.scala 147:50] wire _T_1741 = _T_1740 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire legal = _T_1742 | _T_1749; // @[el2_ifu_compress_ctl.scala 147:30] wire _T_1744 = _T_1741 & _T_147; // @[el2_ifu_compress_ctl.scala 170:54]
wire [31:0] _T_1751 = legal ? 32'hffffffff : 32'h0; // @[Bitwise.scala 72:12] wire _T_1745 = _T_1733 | _T_1744; // @[el2_ifu_compress_ctl.scala 170:29]
assign io_dout = l3 & _T_1751; // @[el2_ifu_compress_ctl.scala 149:10] wire _T_1754 = _T_642 & _T_487; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1755 = _T_1754 & io_din[1]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1758 = _T_1755 & _T_147; // @[el2_ifu_compress_ctl.scala 170:96]
wire _T_1759 = _T_1745 | _T_1758; // @[el2_ifu_compress_ctl.scala 170:69]
wire _T_1768 = _T_642 & io_din[12]; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1769 = _T_1768 & _T_830; // @[el2_ifu_compress_ctl.scala 12:110]
wire _T_1770 = _T_1759 | _T_1769; // @[el2_ifu_compress_ctl.scala 170:111]
wire _T_1777 = _T_1720 & _T_147; // @[el2_ifu_compress_ctl.scala 171:50]
wire legal = _T_1770 | _T_1777; // @[el2_ifu_compress_ctl.scala 171:30]
wire [9:0] _T_1787 = {legal,legal,legal,legal,legal,legal,legal,legal,legal,legal}; // @[Cat.scala 29:58]
wire [18:0] _T_1796 = {_T_1787,legal,legal,legal,legal,legal,legal,legal,legal,legal}; // @[Cat.scala 29:58]
wire [27:0] _T_1805 = {_T_1796,legal,legal,legal,legal,legal,legal,legal,legal,legal}; // @[Cat.scala 29:58]
wire [31:0] _T_1809 = {_T_1805,legal,legal,legal,legal}; // @[Cat.scala 29:58]
assign io_dout = l3 & _T_1809; // @[el2_ifu_compress_ctl.scala 173:10]
endmodule endmodule

View File

@ -3,7 +3,9 @@ import include._
import lib._ import lib._
import chisel3._ import chisel3._
import chisel3.util._ import chisel3.util._
import chisel3.experimental.chiselName
@chiselName
class el2_ifu_bp_ctl extends Module with el2_lib { class el2_ifu_bp_ctl extends Module with el2_lib {
val io = IO (new Bundle { val io = IO (new Bundle {
val active_clk = Input(Clock()) val active_clk = Input(Clock())

View File

@ -1,15 +1,16 @@
package ifu package ifu
import lib._
import chisel3._ import chisel3._
import chisel3.util._ import chisel3.util._
class el2_ifu_compress_ctl extends Module { class el2_ifu_compress_ctl extends Module with el2_lib{
val io = IO(new Bundle{ val io = IO(new Bundle{
val din = Input(UInt(16.W)) val din = Input(UInt(16.W))
val dout = Output(UInt(32.W)) val dout = Output(UInt(32.W))
}) })
def pat(y : List[Int]) = (0 until y.size).map(i=> if(y(i)>=0) io.din(y(i)) else !io.din(y(i).abs)).reduce(_&_) def pat(y : List[Int]) = (0 until y.size).map(i=> if(y(i)>=0) io.din(y(i)) else !io.din(y(i).abs)).reduce(_&_)
val out = Wire(Vec(32, UInt(1.W))) val out = Wire(Vec(32, UInt(1.W)))
out := (0 until 32).map(i=> 0.U.asBool) out := (0 until 32).map(i=> 0.U.asBool)
@ -125,14 +126,14 @@ class el2_ifu_compress_ctl extends Module {
val uimm5d = Cat(io.din(12), io.din(6,2)) val uimm5d = Cat(io.din(12), io.din(6,2))
val sjald_1 = Cat(io.din(12), io.din(8), io.din(10,9), io.din(6), io.din(7), io.din(2), io.din(11), val sjald_1 = Cat(io.din(12), io.din(8), io.din(10,9), io.din(6), io.din(7), io.din(2), io.din(11),
io.din(5,4), io.din(3)) io.din(5,4), io.din(3))
val sjald_12 = Fill(9, io.din(12)) val sjald_12 = repl(9, io.din(12))
val sjald = Cat(sjald_12,sjald_1) val sjald = Cat(sjald_12,sjald_1)
val sluimmd = Cat(Fill(15, io.din(12)), io.din(6,2)) val sluimmd = Cat(repl(15, io.din(12)), io.din(6,2))
val l2_31 = l1(31,20) | val l2_31 = l1(31,20) |
Mux1H(Seq(simm5_0.asBool->Cat(Fill(7, simm5d(5)), simm5d(4,0)), Mux1H(Seq(simm5_0.asBool->Cat(repl(7, simm5d(5)), simm5d(4,0)),
uimm9_2.asBool->Cat(0.U(2.W), uimm9d, 0.U(2.W)), uimm9_2.asBool->Cat(0.U(2.W), uimm9d, 0.U(2.W)),
simm9_4.asBool->Cat(Fill(3, simm9d(5)), simm9d(4,0), 0.U(4.W)), simm9_4.asBool->Cat(repl(3, simm9d(5)), simm9d(4,0), 0.U(4.W)),
ulwimm6_2.asBool->Cat(0.U(5.W), ulwimm6d, 0.U(2.W)), ulwimm6_2.asBool->Cat(0.U(5.W), ulwimm6d, 0.U(2.W)),
ulwspimm7_2.asBool->Cat(0.U(4.W), ulwspimm7d, 0.U(2.W)), ulwspimm7_2.asBool->Cat(0.U(4.W), ulwspimm7d, 0.U(2.W)),
uimm5_0.asBool->Cat(0.U(6.W), uimm5d), uimm5_0.asBool->Cat(0.U(6.W), uimm5d),
@ -147,7 +148,7 @@ class el2_ifu_compress_ctl extends Module {
val uswimm6d = Cat(io.din(5), io.din(12,10), io.din(6), 0.U(2.W)) val uswimm6d = Cat(io.din(5), io.din(12,10), io.din(6), 0.U(2.W))
val uswspimm7d = Cat(io.din(8,7),io.din(12,9), 0.U(2.W)) val uswspimm7d = Cat(io.din(8,7),io.din(12,9), 0.U(2.W))
val l3_31 = l2(31,25) | Mux1H(Seq(sbroffset8_1.asBool->Cat(Fill(4,sbr8d(8)),sbr8d(7,5)), val l3_31 = l2(31,25) | Mux1H(Seq(sbroffset8_1.asBool->Cat(repl(4,sbr8d(8)),sbr8d(7,5)),
uswimm6_2.asBool->Cat(0.U(5.W),uswimm6d(6,5)), uswspimm7_2.asBool->Cat(0.U(4.W),uswspimm7d(7,5)))) uswimm6_2.asBool->Cat(0.U(5.W),uswimm6d(6,5)), uswspimm7_2.asBool->Cat(0.U(4.W),uswspimm7d(7,5))))
val l3_24 = l2(24,12) val l3_24 = l2(24,12)
@ -169,7 +170,7 @@ class el2_ifu_compress_ctl extends Module {
pat(List(-14,-12,-1,0)) | (pat(List(15,-13,12,1))&(!io.din(0))) | (pat(List(-15,-13,-12,1))&(!io.din(0))) | pat(List(-14,-12,-1,0)) | (pat(List(15,-13,12,1))&(!io.din(0))) | (pat(List(-15,-13,-12,1))&(!io.din(0))) |
pat(List(-15,-13,12,-1)) | (pat(List(14,-13))&(!io.din(0))) pat(List(-15,-13,12,-1)) | (pat(List(14,-13))&(!io.din(0)))
io.dout:= l3 & Fill(32, legal) io.dout:= l3 & repl(32, legal)
} }
object ifu_compress extends App { object ifu_compress extends App {

View File

@ -58,7 +58,7 @@ class EL2_IC_TAG extends Module with el2_lib with param {
val ic_rd_hit = Output(UInt(ICACHE_NUM_WAYS.W)) val ic_rd_hit = Output(UInt(ICACHE_NUM_WAYS.W))
val ic_tag_perr = Output(Bool()) val ic_tag_perr = Output(Bool())
val scan_mode = Input(Bool()) val scan_mode = Input(Bool())
val test = Output(UInt()) val test = Output(Vec(2, UInt()))
}) })
io.ictag_debug_rd_data := 0.U io.ictag_debug_rd_data := 0.U
@ -95,18 +95,20 @@ class EL2_IC_TAG extends Module with el2_lib with param {
val ic_debug_rd_way_en_ff = RegNext(ic_debug_rd_way_en, 0.U) val ic_debug_rd_way_en_ff = RegNext(ic_debug_rd_way_en, 0.U)
val tag_mem = Mem(ICACHE_TAG_DEPTH, Vec(ICACHE_NUM_WAYS, UInt(Tag_Word.W))) val tag_mem = Mem(ICACHE_TAG_DEPTH, Vec(ICACHE_NUM_WAYS, UInt(Tag_Word.W)))
val ic_tag_data_raw = Wire(Vec(ICACHE_NUM_WAYS, UInt(Tag_Word.W)))
for(i<-0 until ICACHE_NUM_WAYS){
ic_tag_data_raw(i) := 0.U val mask = VecInit.tabulate(ICACHE_NUM_WAYS)(i=>ic_tag_wren_q(i)&ic_tag_clken(i))
when(ic_tag_wren_q(i)&ic_tag_clken(i)){ tag_mem.write(ic_rw_addr_q, VecInit.tabulate(ICACHE_NUM_WAYS)(i=>ic_tag_wr_data), mask)
tag_mem(ic_rw_addr_q(ICACHE_INDEX_HI-3, ICACHE_TAG_INDEX_LO-3))(ic_rw_addr_q(ICACHE_INDEX_HI-3, ICACHE_TAG_INDEX_LO-3)) := ic_tag_wr_data val read_enable = VecInit.tabulate(ICACHE_NUM_WAYS)(i=>(!ic_tag_wren_q(i))&ic_tag_clken(i))
}.elsewhen(ic_tag_clken(i)){ val ic_tag_data_raw = tag_mem.read(ic_rw_addr_q)
ic_tag_data_raw(i) := tag_mem(ic_rw_addr_q(ICACHE_INDEX_HI-3, ICACHE_TAG_INDEX_LO-3))(ic_rw_addr_q(ICACHE_INDEX_HI-3, ICACHE_TAG_INDEX_LO-3))
for(i<- 0 until ICACHE_NUM_WAYS){
io.test(i) := 0.U
when(read_enable(i)){
io.test(i) := ic_tag_data_raw(i)}
} }
}
io.test := ic_tag_data_raw(0) // for(i<-0 until ICACHE_NUM_WAYS; k<-0 until ICACHE_BANKS_WAY){
// for(i<-0 until ICACHE_NUM_WAYS; k<-0 until ICACHE_BANKS_WAY){
// wb_dout(i)(k) := 0.U // wb_dout(i)(k) := 0.U
// val WE = if(ICACHE_WAYPACK) ic_b_sb_wren(k).orR else ic_b_sb_wren(k)(i) // val WE = if(ICACHE_WAYPACK) ic_b_sb_wren(k).orR else ic_b_sb_wren(k)(i)
// val ME = if(ICACHE_WAYPACK) ic_bank_way_clken(k).orR else ic_bank_way_clken(k)(i) // val ME = if(ICACHE_WAYPACK) ic_bank_way_clken(k).orR else ic_bank_way_clken(k)(i)
@ -117,113 +119,6 @@ class EL2_IC_TAG extends Module with el2_lib with param {
// } // }
// } // }
// io.test := ic_tag_wr_data
// println(Tag_Word)
// val ic_debug_rd_way_en = Fill(ICACHE_NUM_WAYS, io.ic_debug_rd_en & io.ic_debug_tag_array) & io.ic_debug_way
// val ic_debug_wr_way_en = repl(ICACHE_NUM_WAYS, io.ic_debug_wr_en & io.ic_debug_tag_array) & io.ic_debug_way
// val ic_tag_clken = repl(ICACHE_NUM_WAYS,io.ic_rd_en | io.clk_override) | io.ic_wr_en | ic_debug_wr_way_en | ic_debug_wr_way_en | ic_debug_rd_way_en
// ic_debug_rd_way_en
// val ic_rd_en_ff = RegNext(io.ic_rd_en, init=0.U)
// val ic_rw_addr_ff = RegNext(io.ic_rw_addr, init=0.U)
// val PAD_BITS = 21 - (32 - ICACHE_TAG_LO)
// val ic_tag_wren_q = ic_tag_wren | ic_debug_wr_way_en
// val ic_tag_ecc = Wire(UInt(7.W))
// val ic_tag_wr_data = Wire(UInt(26.W))
// val ic_tag_parity = Wire(UInt(1.W))
// ic_tag_ecc := 0.U
// ic_tag_wr_data := 0.U
// ic_tag_parity := 0.U
//
// when((ICACHE_TAG_LO == 11).B){
// when(ICACHE_ECC.B){
// ic_tag_ecc := rvecc_encode(Cat(repl(ICACHE_TAG_LO,0.U) , io.ic_rw_addr(31,ICACHE_TAG_LO)))
// ic_tag_wr_data := Mux(io.ic_debug_wr_en & io.ic_debug_tag_array,
// Cat(io.ic_debug_wr_data(68,64), io.ic_debug_wr_data(31,11)) ,
// Cat(ic_tag_ecc(4,0), io.ic_rw_addr(31,ICACHE_TAG_LO)))
// }
// .otherwise{
// ic_tag_parity := rveven_paritygen(io.ic_rw_addr(31,ICACHE_TAG_LO))
// ic_tag_wr_data := Mux(io.ic_debug_wr_en & io.ic_debug_tag_array,
// Cat(io.ic_debug_wr_data(68,64), io.ic_debug_wr_data(31,11)) ,
// Cat(ic_tag_ecc(4,0), io.ic_rw_addr(31,ICACHE_TAG_LO)))
// }
// }
//
// .otherwise{
// when(ICACHE_ECC.B){
// ic_tag_ecc := rvecc_encode(Cat(repl(ICACHE_TAG_LO,0.U) , io.ic_rw_addr(31,ICACHE_TAG_LO)))
// ic_tag_wr_data := Mux(io.ic_debug_wr_en & io.ic_debug_tag_array,
// Cat(io.ic_debug_wr_data(68,64), io.ic_debug_wr_data(31,11)) ,
// Cat(ic_tag_ecc(4,0), repl(PAD_BITS,0.U), io.ic_rw_addr(31,ICACHE_TAG_LO)))
// }
// .otherwise{
// ic_tag_parity := rveven_paritygen(io.ic_rw_addr(31,ICACHE_TAG_LO))
// ic_tag_wr_data := Mux(io.ic_debug_wr_en & io.ic_debug_tag_array,
// Cat(io.ic_debug_wr_data(68,64), io.ic_debug_wr_data(31,11)) ,
// Cat(ic_tag_ecc(4,0), repl(PAD_BITS,0.U), io.ic_rw_addr(31,ICACHE_TAG_LO)))
// }
// }
//
// val ic_rw_addr_q = Mux(io.ic_debug_rd_en | io.ic_debug_wr_en,
// io.ic_debug_addr(ICACHE_INDEX_HI, ICACHE_TAG_INDEX_LO),
// io.ic_rw_addr(ICACHE_INDEX_HI, ICACHE_TAG_INDEX_LO))
//
// val ic_debug_rd_way_en_ff = RegNext(ic_debug_rd_way_en, init = 0.U)
//
// val ic_way_tag = if(ICACHE_ECC) SyncReadMem(ICACHE_TAG_DEPTH, Vec(ICACHE_NUM_WAYS, UInt(26.W)))
// else SyncReadMem(ICACHE_TAG_DEPTH, Vec(ICACHE_NUM_WAYS, UInt(22.W)))
// //val ic_tag_data_raw = if(ICACHE_ECC) Vec(ICACHE_NUM_WAYS, UInt(26.W)) else Vec(ICACHE_NUM_WAYS, UInt(22.W))
//
// val write_data = VecInit.tabulate(ICACHE_NUM_WAYS)(i => ic_tag_wr_data)
//
// val mem_mask = VecInit.tabulate(ICACHE_NUM_WAYS)(i => ic_tag_wren_q(i) & ic_tag_clken(i))
//
// ic_way_tag.write(ic_rw_addr_q, write_data, mem_mask)
//
// val ic_tag_data_raw = ic_way_tag.read(ic_rw_addr_q, 1.B)
// //val w_tout = Wire(UInt(32.W))
// val w_tout = if(ICACHE_ECC)ic_tag_data_raw.map(x=>Cat(ic_tag_data_raw(x)(25,21),ic_tag_data_raw(x)(31-ICACHE_TAG_LO,0),0.U(13.W)))
// else ic_tag_data_raw.map(x=>Cat(0.U(4.W),ic_tag_data_raw(x)(32),ic_tag_data_raw(x)(31-ICACHE_TAG_LO,0),0.U(13.W)))
//
// val ecc_decode = new Array[rvecc_decode](ICACHE_NUM_WAYS)
// val parcheck = new Array[UInt](ICACHE_NUM_WAYS)
// val ic_tag_corrected_data_unc = Wire(Vec(ICACHE_NUM_WAYS, UInt(32.W)))
// val ic_tag_corrected_ecc_unc = Wire(Vec(ICACHE_NUM_WAYS, UInt(7.W)))
// val ic_tag_single_ecc_error = Wire(Vec(ICACHE_NUM_WAYS, UInt(1.W)))
// val ic_tag_double_ecc_error = Wire(Vec(ICACHE_NUM_WAYS, UInt(1.W)))
//
// val ic_tag_way_perr = VecInit.tabulate(ICACHE_NUM_WAYS)(i => rveven_paritycheck(w_tout(i)(31,ICACHE_TAG_LO),w_tout(i)(31)))
// for(i <- 0 until ICACHE_NUM_WAYS) {
// ecc_decode(i) = Module(new rvecc_decode())
// ecc_decode(i).io.en := ~io.dec_tlu_core_ecc_disable & ic_rd_en_ff
// ecc_decode(i).io.sed_ded := 1.U
// ecc_decode(i).io.din := Cat(0.U(11.W),ic_tag_data_raw(i)(20,0))
// ecc_decode(i).io.ecc_in := Cat(0.U(2.W),ic_tag_data_raw(i)(25,21))
//
//
// ic_tag_way_perr(i) := ic_tag_single_ecc_error(i) | ic_tag_double_ecc_error(i)
// }
// val temp = if(ICACHE_ECC)
// VecInit.tabulate(ICACHE_NUM_WAYS)(i=>repl(26,ic_debug_rd_way_en_ff(i))&ic_tag_data_raw(i)).reduce(_|_)
// else
// VecInit.tabulate(ICACHE_NUM_WAYS)(i=>Cat(0.U(4.W),repl(22,ic_debug_rd_way_en_ff(i))&ic_tag_data_raw(i))).reduce(_|_)
//
// for(i <- 0 until ICACHE_NUM_WAYS){
// repl(26,ic_debug_rd_way_en_ff(i))&ic_tag_data_raw(i)
// }
// io.ictag_debug_rd_data := temp
// io.ic_tag_perr := (ic_tag_way_perr.reverse.reduce(Cat(_,_)) & io.ic_tag_valid).orR
// val w_tout_Vec = VecInit.tabulate(ICACHE_NUM_WAYS)(i=> w_tout(i))
// io.ic_rd_hit := VecInit.tabulate(ICACHE_NUM_WAYS)(i=>(w_tout_Vec(i)(31,ICACHE_TAG_LO)===ic_rw_addr_ff(31,ICACHE_TAG_LO)).asUInt() & io.ic_tag_valid).reverse.reduce(Cat(_,_))
} }
@ -334,5 +229,4 @@ class EL2_IC_DATA extends Module with el2_lib {
object ifu_ic extends App { object ifu_ic extends App {
println((new chisel3.stage.ChiselStage).emitVerilog(new EL2_IC_TAG())) println((new chisel3.stage.ChiselStage).emitVerilog(new EL2_IC_TAG()))
//println()
} }

View File

@ -158,6 +158,8 @@ trait param {
} }
trait el2_lib extends param{ trait el2_lib extends param{
def repl(b:Int, a:UInt) = VecInit.tabulate(b)(i => a).reduce(Cat(_,_))
// Configuration Methods // Configuration Methods
def MEM_CAL : (Int, Int, Int, Int)= def MEM_CAL : (Int, Int, Int, Int)=
(ICACHE_WAYPACK, ICACHE_ECC) match{ (ICACHE_WAYPACK, ICACHE_ECC) match{