quasar/EL2_IC_TAG.fir

393 lines
23 KiB
Plaintext

;buildInfoPackage: chisel3, version: 3.3.1, scalaVersion: 2.12.11, sbtVersion: 1.3.10
circuit EL2_IC_TAG :
module EL2_IC_TAG :
input clock : Clock
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[2]}
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_tag_perr <= UInt<1>("h00") @[el2_ifu_ic_mem.scala 66:18]
wire ic_debug_wr_way_en : UInt<2>
ic_debug_wr_way_en <= UInt<1>("h00")
wire ic_debug_rd_way_en : UInt<2>
ic_debug_rd_way_en <= UInt<1>("h00")
node _T = bits(io.ic_rw_addr, 2, 1) @[el2_ifu_ic_mem.scala 71:70]
node _T_1 = eq(_T, UInt<1>("h01")) @[el2_ifu_ic_mem.scala 71:95]
node _T_2 = bits(_T_1, 0, 0) @[Bitwise.scala 72:15]
node _T_3 = mux(_T_2, UInt<2>("h03"), UInt<2>("h00")) @[Bitwise.scala 72:12]
node ic_tag_wren = and(io.ic_wr_en, _T_3) @[el2_ifu_ic_mem.scala 71:33]
node _T_4 = or(io.ic_rd_en, io.clk_override) @[el2_ifu_ic_mem.scala 72:55]
node _T_5 = bits(_T_4, 0, 0) @[Bitwise.scala 72:15]
node _T_6 = mux(_T_5, UInt<2>("h03"), UInt<2>("h00")) @[Bitwise.scala 72:12]
node _T_7 = or(_T_6, io.ic_wr_en) @[el2_ifu_ic_mem.scala 72:73]
node _T_8 = or(_T_7, ic_debug_wr_way_en) @[el2_ifu_ic_mem.scala 72:87]
node ic_tag_clken = or(_T_8, ic_debug_rd_way_en) @[el2_ifu_ic_mem.scala 72:108]
reg ic_rd_en_ff : UInt<1>, clock with : (reset => (reset, UInt<1>("h00"))) @[el2_ifu_ic_mem.scala 74:28]
ic_rd_en_ff <= io.ic_rd_en @[el2_ifu_ic_mem.scala 74:28]
node _T_9 = bits(io.ic_rw_addr, 18, 0) @[el2_ifu_ic_mem.scala 75:44]
reg ic_rw_addr_ff : UInt, clock with : (reset => (reset, UInt<1>("h00"))) @[el2_ifu_ic_mem.scala 75:30]
ic_rw_addr_ff <= _T_9 @[el2_ifu_ic_mem.scala 75:30]
node _T_10 = and(io.ic_debug_rd_en, io.ic_debug_tag_array) @[el2_ifu_ic_mem.scala 79:65]
node _T_11 = bits(_T_10, 0, 0) @[Bitwise.scala 72:15]
node _T_12 = mux(_T_11, UInt<2>("h03"), UInt<2>("h00")) @[Bitwise.scala 72:12]
node _T_13 = and(_T_12, io.ic_debug_way) @[el2_ifu_ic_mem.scala 79:90]
ic_debug_rd_way_en <= _T_13 @[el2_ifu_ic_mem.scala 79:22]
node _T_14 = and(io.ic_debug_wr_en, io.ic_debug_tag_array) @[el2_ifu_ic_mem.scala 80:65]
node _T_15 = bits(_T_14, 0, 0) @[Bitwise.scala 72:15]
node _T_16 = mux(_T_15, UInt<2>("h03"), UInt<2>("h00")) @[Bitwise.scala 72:12]
node _T_17 = and(_T_16, io.ic_debug_way) @[el2_ifu_ic_mem.scala 80:90]
ic_debug_wr_way_en <= _T_17 @[el2_ifu_ic_mem.scala 80:22]
node ic_tag_wren_q = or(ic_tag_wren, ic_debug_wr_way_en) @[el2_ifu_ic_mem.scala 82:35]
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_20 = cat(_T_18, _T_19) @[Cat.scala 29:58]
wire _T_21 : 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 239:18]
wire _T_24 : 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 242:18]
node _T_27 = bits(_T_20, 0, 0) @[el2_lib.scala 249:36]
_T_22[0] <= _T_27 @[el2_lib.scala 249:30]
node _T_28 = bits(_T_20, 0, 0) @[el2_lib.scala 250:36]
_T_23[0] <= _T_28 @[el2_lib.scala 250:30]
node _T_29 = bits(_T_20, 0, 0) @[el2_lib.scala 253:36]
_T_26[0] <= _T_29 @[el2_lib.scala 253:30]
node _T_30 = bits(_T_20, 1, 1) @[el2_lib.scala 248:36]
_T_21[0] <= _T_30 @[el2_lib.scala 248:30]
node _T_31 = bits(_T_20, 1, 1) @[el2_lib.scala 250:36]
_T_23[1] <= _T_31 @[el2_lib.scala 250:30]
node _T_32 = bits(_T_20, 1, 1) @[el2_lib.scala 253:36]
_T_26[1] <= _T_32 @[el2_lib.scala 253:30]
node _T_33 = bits(_T_20, 2, 2) @[el2_lib.scala 250:36]
_T_23[2] <= _T_33 @[el2_lib.scala 250:30]
node _T_34 = bits(_T_20, 2, 2) @[el2_lib.scala 253:36]
_T_26[2] <= _T_34 @[el2_lib.scala 253:30]
node _T_35 = bits(_T_20, 3, 3) @[el2_lib.scala 248:36]
_T_21[1] <= _T_35 @[el2_lib.scala 248:30]
node _T_36 = bits(_T_20, 3, 3) @[el2_lib.scala 249:36]
_T_22[1] <= _T_36 @[el2_lib.scala 249:30]
node _T_37 = bits(_T_20, 3, 3) @[el2_lib.scala 253:36]
_T_26[3] <= _T_37 @[el2_lib.scala 253:30]
node _T_38 = bits(_T_20, 4, 4) @[el2_lib.scala 249:36]
_T_22[2] <= _T_38 @[el2_lib.scala 249:30]
node _T_39 = bits(_T_20, 4, 4) @[el2_lib.scala 253:36]
_T_26[4] <= _T_39 @[el2_lib.scala 253:30]
node _T_40 = bits(_T_20, 5, 5) @[el2_lib.scala 248:36]
_T_21[2] <= _T_40 @[el2_lib.scala 248:30]
node _T_41 = bits(_T_20, 5, 5) @[el2_lib.scala 253:36]
_T_26[5] <= _T_41 @[el2_lib.scala 253:30]
node _T_42 = bits(_T_20, 6, 6) @[el2_lib.scala 248:36]
_T_21[3] <= _T_42 @[el2_lib.scala 248:30]
node _T_43 = bits(_T_20, 6, 6) @[el2_lib.scala 249:36]
_T_22[3] <= _T_43 @[el2_lib.scala 249:30]
node _T_44 = bits(_T_20, 6, 6) @[el2_lib.scala 250:36]
_T_23[3] <= _T_44 @[el2_lib.scala 250:30]
node _T_45 = bits(_T_20, 6, 6) @[el2_lib.scala 251:36]
_T_24[0] <= _T_45 @[el2_lib.scala 251:30]
node _T_46 = bits(_T_20, 6, 6) @[el2_lib.scala 252:36]
_T_25[0] <= _T_46 @[el2_lib.scala 252:30]
node _T_47 = bits(_T_20, 7, 7) @[el2_lib.scala 249:36]
_T_22[4] <= _T_47 @[el2_lib.scala 249:30]
node _T_48 = bits(_T_20, 7, 7) @[el2_lib.scala 250:36]
_T_23[4] <= _T_48 @[el2_lib.scala 250:30]
node _T_49 = bits(_T_20, 7, 7) @[el2_lib.scala 251:36]
_T_24[1] <= _T_49 @[el2_lib.scala 251:30]
node _T_50 = bits(_T_20, 7, 7) @[el2_lib.scala 252:36]
_T_25[1] <= _T_50 @[el2_lib.scala 252:30]
node _T_51 = bits(_T_20, 8, 8) @[el2_lib.scala 248:36]
_T_21[4] <= _T_51 @[el2_lib.scala 248:30]
node _T_52 = bits(_T_20, 8, 8) @[el2_lib.scala 250:36]
_T_23[5] <= _T_52 @[el2_lib.scala 250:30]
node _T_53 = bits(_T_20, 8, 8) @[el2_lib.scala 251:36]
_T_24[2] <= _T_53 @[el2_lib.scala 251:30]
node _T_54 = bits(_T_20, 8, 8) @[el2_lib.scala 252:36]
_T_25[2] <= _T_54 @[el2_lib.scala 252:30]
node _T_55 = bits(_T_20, 9, 9) @[el2_lib.scala 250:36]
_T_23[6] <= _T_55 @[el2_lib.scala 250:30]
node _T_56 = bits(_T_20, 9, 9) @[el2_lib.scala 251:36]
_T_24[3] <= _T_56 @[el2_lib.scala 251:30]
node _T_57 = bits(_T_20, 9, 9) @[el2_lib.scala 252:36]
_T_25[3] <= _T_57 @[el2_lib.scala 252:30]
node _T_58 = bits(_T_20, 10, 10) @[el2_lib.scala 248:36]
_T_21[5] <= _T_58 @[el2_lib.scala 248:30]
node _T_59 = bits(_T_20, 10, 10) @[el2_lib.scala 249:36]
_T_22[5] <= _T_59 @[el2_lib.scala 249:30]
node _T_60 = bits(_T_20, 10, 10) @[el2_lib.scala 251:36]
_T_24[4] <= _T_60 @[el2_lib.scala 251:30]
node _T_61 = bits(_T_20, 10, 10) @[el2_lib.scala 252:36]
_T_25[4] <= _T_61 @[el2_lib.scala 252:30]
node _T_62 = bits(_T_20, 11, 11) @[el2_lib.scala 249:36]
_T_22[6] <= _T_62 @[el2_lib.scala 249:30]
node _T_63 = bits(_T_20, 11, 11) @[el2_lib.scala 251:36]
_T_24[5] <= _T_63 @[el2_lib.scala 251:30]
node _T_64 = bits(_T_20, 11, 11) @[el2_lib.scala 252:36]
_T_25[5] <= _T_64 @[el2_lib.scala 252:30]
node _T_65 = bits(_T_20, 12, 12) @[el2_lib.scala 248:36]
_T_21[6] <= _T_65 @[el2_lib.scala 248:30]
node _T_66 = bits(_T_20, 12, 12) @[el2_lib.scala 251:36]
_T_24[6] <= _T_66 @[el2_lib.scala 251:30]
node _T_67 = bits(_T_20, 12, 12) @[el2_lib.scala 252:36]
_T_25[6] <= _T_67 @[el2_lib.scala 252:30]
node _T_68 = bits(_T_20, 13, 13) @[el2_lib.scala 251:36]
_T_24[7] <= _T_68 @[el2_lib.scala 251:30]
node _T_69 = bits(_T_20, 13, 13) @[el2_lib.scala 252:36]
_T_25[7] <= _T_69 @[el2_lib.scala 252:30]
node _T_70 = bits(_T_20, 14, 14) @[el2_lib.scala 248:36]
_T_21[7] <= _T_70 @[el2_lib.scala 248:30]
node _T_71 = bits(_T_20, 14, 14) @[el2_lib.scala 249:36]
_T_22[7] <= _T_71 @[el2_lib.scala 249:30]
node _T_72 = bits(_T_20, 14, 14) @[el2_lib.scala 250:36]
_T_23[7] <= _T_72 @[el2_lib.scala 250:30]
node _T_73 = bits(_T_20, 14, 14) @[el2_lib.scala 252:36]
_T_25[8] <= _T_73 @[el2_lib.scala 252:30]
node _T_74 = bits(_T_20, 15, 15) @[el2_lib.scala 249:36]
_T_22[8] <= _T_74 @[el2_lib.scala 249:30]
node _T_75 = bits(_T_20, 15, 15) @[el2_lib.scala 250:36]
_T_23[8] <= _T_75 @[el2_lib.scala 250:30]
node _T_76 = bits(_T_20, 15, 15) @[el2_lib.scala 252:36]
_T_25[9] <= _T_76 @[el2_lib.scala 252:30]
node _T_77 = bits(_T_20, 16, 16) @[el2_lib.scala 248:36]
_T_21[8] <= _T_77 @[el2_lib.scala 248:30]
node _T_78 = bits(_T_20, 16, 16) @[el2_lib.scala 250:36]
_T_23[9] <= _T_78 @[el2_lib.scala 250:30]
node _T_79 = bits(_T_20, 16, 16) @[el2_lib.scala 252:36]
_T_25[10] <= _T_79 @[el2_lib.scala 252:30]
node _T_80 = bits(_T_20, 17, 17) @[el2_lib.scala 250:36]
_T_23[10] <= _T_80 @[el2_lib.scala 250:30]
node _T_81 = bits(_T_20, 17, 17) @[el2_lib.scala 252:36]
_T_25[11] <= _T_81 @[el2_lib.scala 252:30]
node _T_82 = bits(_T_20, 18, 18) @[el2_lib.scala 248:36]
_T_21[9] <= _T_82 @[el2_lib.scala 248:30]
node _T_83 = bits(_T_20, 18, 18) @[el2_lib.scala 249:36]
_T_22[9] <= _T_83 @[el2_lib.scala 249:30]
node _T_84 = bits(_T_20, 18, 18) @[el2_lib.scala 252:36]
_T_25[12] <= _T_84 @[el2_lib.scala 252:30]
node _T_85 = bits(_T_20, 19, 19) @[el2_lib.scala 249:36]
_T_22[10] <= _T_85 @[el2_lib.scala 249:30]
node _T_86 = bits(_T_20, 19, 19) @[el2_lib.scala 252:36]
_T_25[13] <= _T_86 @[el2_lib.scala 252:30]
node _T_87 = bits(_T_20, 20, 20) @[el2_lib.scala 248:36]
_T_21[10] <= _T_87 @[el2_lib.scala 248:30]
node _T_88 = bits(_T_20, 20, 20) @[el2_lib.scala 252:36]
_T_25[14] <= _T_88 @[el2_lib.scala 252:30]
node _T_89 = bits(_T_20, 21, 21) @[el2_lib.scala 248:36]
_T_21[11] <= _T_89 @[el2_lib.scala 248:30]
node _T_90 = bits(_T_20, 21, 21) @[el2_lib.scala 249:36]
_T_22[11] <= _T_90 @[el2_lib.scala 249:30]
node _T_91 = bits(_T_20, 21, 21) @[el2_lib.scala 250:36]
_T_23[11] <= _T_91 @[el2_lib.scala 250:30]
node _T_92 = bits(_T_20, 21, 21) @[el2_lib.scala 251:36]
_T_24[8] <= _T_92 @[el2_lib.scala 251:30]
node _T_93 = bits(_T_20, 22, 22) @[el2_lib.scala 249:36]
_T_22[12] <= _T_93 @[el2_lib.scala 249:30]
node _T_94 = bits(_T_20, 22, 22) @[el2_lib.scala 250:36]
_T_23[12] <= _T_94 @[el2_lib.scala 250:30]
node _T_95 = bits(_T_20, 22, 22) @[el2_lib.scala 251:36]
_T_24[9] <= _T_95 @[el2_lib.scala 251:30]
node _T_96 = bits(_T_20, 23, 23) @[el2_lib.scala 248:36]
_T_21[12] <= _T_96 @[el2_lib.scala 248:30]
node _T_97 = bits(_T_20, 23, 23) @[el2_lib.scala 250:36]
_T_23[13] <= _T_97 @[el2_lib.scala 250:30]
node _T_98 = bits(_T_20, 23, 23) @[el2_lib.scala 251:36]
_T_24[10] <= _T_98 @[el2_lib.scala 251:30]
node _T_99 = bits(_T_20, 24, 24) @[el2_lib.scala 250:36]
_T_23[14] <= _T_99 @[el2_lib.scala 250:30]
node _T_100 = bits(_T_20, 24, 24) @[el2_lib.scala 251:36]
_T_24[11] <= _T_100 @[el2_lib.scala 251:30]
node _T_101 = bits(_T_20, 25, 25) @[el2_lib.scala 248:36]
_T_21[13] <= _T_101 @[el2_lib.scala 248:30]
node _T_102 = bits(_T_20, 25, 25) @[el2_lib.scala 249:36]
_T_22[13] <= _T_102 @[el2_lib.scala 249:30]
node _T_103 = bits(_T_20, 25, 25) @[el2_lib.scala 251:36]
_T_24[12] <= _T_103 @[el2_lib.scala 251:30]
node _T_104 = bits(_T_20, 26, 26) @[el2_lib.scala 249:36]
_T_22[14] <= _T_104 @[el2_lib.scala 249:30]
node _T_105 = bits(_T_20, 26, 26) @[el2_lib.scala 251:36]
_T_24[13] <= _T_105 @[el2_lib.scala 251:30]
node _T_106 = bits(_T_20, 27, 27) @[el2_lib.scala 248:36]
_T_21[14] <= _T_106 @[el2_lib.scala 248:30]
node _T_107 = bits(_T_20, 27, 27) @[el2_lib.scala 251:36]
_T_24[14] <= _T_107 @[el2_lib.scala 251:30]
node _T_108 = bits(_T_20, 28, 28) @[el2_lib.scala 248:36]
_T_21[15] <= _T_108 @[el2_lib.scala 248:30]
node _T_109 = bits(_T_20, 28, 28) @[el2_lib.scala 249:36]
_T_22[15] <= _T_109 @[el2_lib.scala 249:30]
node _T_110 = bits(_T_20, 28, 28) @[el2_lib.scala 250:36]
_T_23[15] <= _T_110 @[el2_lib.scala 250:30]
node _T_111 = bits(_T_20, 29, 29) @[el2_lib.scala 249:36]
_T_22[16] <= _T_111 @[el2_lib.scala 249:30]
node _T_112 = bits(_T_20, 29, 29) @[el2_lib.scala 250:36]
_T_23[16] <= _T_112 @[el2_lib.scala 250:30]
node _T_113 = bits(_T_20, 30, 30) @[el2_lib.scala 248:36]
_T_21[16] <= _T_113 @[el2_lib.scala 248:30]
node _T_114 = bits(_T_20, 30, 30) @[el2_lib.scala 250:36]
_T_23[17] <= _T_114 @[el2_lib.scala 250:30]
node _T_115 = bits(_T_20, 31, 31) @[el2_lib.scala 248:36]
_T_21[17] <= _T_115 @[el2_lib.scala 248:30]
node _T_116 = bits(_T_20, 31, 31) @[el2_lib.scala 249:36]
_T_22[17] <= _T_116 @[el2_lib.scala 249:30]
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 255: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 255: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 255: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 255: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 255: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 255: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 255: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 255:22]
node _T_133 = cat(_T_132, _T_124) @[el2_lib.scala 255:22]
node _T_134 = xorr(_T_133) @[el2_lib.scala 255:29]
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 255: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 255: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 255: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 255: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 255: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 255: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 255: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 255:39]
node _T_151 = cat(_T_150, _T_142) @[el2_lib.scala 255:39]
node _T_152 = xorr(_T_151) @[el2_lib.scala 255:46]
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 255: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 255: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 255: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 255: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 255: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 255: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 255: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 255:56]
node _T_169 = cat(_T_168, _T_160) @[el2_lib.scala 255:56]
node _T_170 = xorr(_T_169) @[el2_lib.scala 255:63]
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 255: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 255: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 255: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 255: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 255: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 255: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 255:73]
node _T_185 = xorr(_T_184) @[el2_lib.scala 255:80]
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 255: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 255: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 255: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 255: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 255: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 255: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 255:90]
node _T_200 = xorr(_T_199) @[el2_lib.scala 255:97]
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 255: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 255:107]
node _T_205 = cat(_T_204, _T_202) @[el2_lib.scala 255:107]
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_208 = cat(_T_207, _T_206) @[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_211 = cat(_T_210, _T_208) @[Cat.scala 29:58]
node _T_212 = xorr(_T_20) @[el2_lib.scala 256:13]
node _T_213 = xorr(_T_211) @[el2_lib.scala 256:23]
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 _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_217 = cat(_T_215, _T_216) @[Cat.scala 29:58]
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_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_221 = cat(_T_219, _T_220) @[Cat.scala 29:58]
node _T_222 = bits(ic_tag_ecc, 4, 0) @[el2_ifu_ic_mem.scala 91:38]
node _T_223 = mux(UInt<1>("h00"), UInt<2>("h03"), UInt<2>("h00")) @[Bitwise.scala 72:12]
node _T_224 = cat(_T_222, _T_223) @[Cat.scala 29:58]
node _T_225 = bits(io.ic_rw_addr, 28, 10) @[el2_ifu_ic_mem.scala 91:121]
node _T_226 = cat(_T_224, _T_225) @[Cat.scala 29:58]
node ic_tag_wr_data = mux(_T_218, _T_221, _T_226) @[el2_ifu_ic_mem.scala 90:11]
node _T_227 = or(io.ic_debug_rd_en, io.ic_debug_wr_en) @[el2_ifu_ic_mem.scala 93:45]
node _T_228 = bits(_T_227, 0, 0) @[el2_ifu_ic_mem.scala 93:66]
node _T_229 = bits(io.ic_debug_addr, 9, 3) @[el2_ifu_ic_mem.scala 93:89]
node ic_rw_addr_q = mux(_T_228, _T_229, io.ic_rw_addr) @[el2_ifu_ic_mem.scala 93:25]
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]
cmem tag_mem : UInt<26>[2][128] @[el2_ifu_ic_mem.scala 97:20]
node _T_230 = bits(ic_tag_wren_q, 0, 0) @[el2_ifu_ic_mem.scala 108:66]
node _T_231 = bits(ic_tag_clken, 0, 0) @[el2_ifu_ic_mem.scala 108:82]
node _T_232 = and(_T_230, _T_231) @[el2_ifu_ic_mem.scala 108:69]
node _T_233 = bits(ic_tag_wren_q, 1, 1) @[el2_ifu_ic_mem.scala 108:66]
node _T_234 = bits(ic_tag_clken, 1, 1) @[el2_ifu_ic_mem.scala 108:82]
node _T_235 = and(_T_233, _T_234) @[el2_ifu_ic_mem.scala 108:69]
wire mask : UInt<1>[2] @[el2_ifu_ic_mem.scala 108:49]
mask[0] <= _T_232 @[el2_ifu_ic_mem.scala 108:49]
mask[1] <= _T_235 @[el2_ifu_ic_mem.scala 108:49]
wire _T_236 : UInt<26>[2] @[el2_ifu_ic_mem.scala 109:66]
_T_236[0] <= ic_tag_wr_data @[el2_ifu_ic_mem.scala 109:66]
_T_236[1] <= ic_tag_wr_data @[el2_ifu_ic_mem.scala 109:66]
node _T_237 = bits(ic_rw_addr_q, 6, 0)
write mport _T_238 = tag_mem[_T_237], clock
when mask[0] :
_T_238[0] <= _T_236[0]
skip
when mask[1] :
_T_238[1] <= _T_236[1]
skip
node _T_239 = bits(ic_tag_wren_q, 0, 0) @[el2_ifu_ic_mem.scala 110:75]
node _T_240 = eq(_T_239, UInt<1>("h00")) @[el2_ifu_ic_mem.scala 110:61]
node _T_241 = bits(ic_tag_clken, 0, 0) @[el2_ifu_ic_mem.scala 110:92]
node _T_242 = and(_T_240, _T_241) @[el2_ifu_ic_mem.scala 110:79]
node _T_243 = bits(ic_tag_wren_q, 1, 1) @[el2_ifu_ic_mem.scala 110:75]
node _T_244 = eq(_T_243, UInt<1>("h00")) @[el2_ifu_ic_mem.scala 110:61]
node _T_245 = bits(ic_tag_clken, 1, 1) @[el2_ifu_ic_mem.scala 110:92]
node _T_246 = and(_T_244, _T_245) @[el2_ifu_ic_mem.scala 110:79]
wire read_enable : UInt<1>[2] @[el2_ifu_ic_mem.scala 110:56]
read_enable[0] <= _T_242 @[el2_ifu_ic_mem.scala 110:56]
read_enable[1] <= _T_246 @[el2_ifu_ic_mem.scala 110:56]
node _T_247 = bits(ic_rw_addr_q, 6, 0) @[el2_ifu_ic_mem.scala 111:39]
read mport ic_tag_data_raw = tag_mem[_T_247], clock @[el2_ifu_ic_mem.scala 111:39]
io.test[0] <= UInt<1>("h00") @[el2_ifu_ic_mem.scala 114:18]
when read_enable[0] : @[el2_ifu_ic_mem.scala 115:27]
io.test[0] <= ic_tag_data_raw[0] @[el2_ifu_ic_mem.scala 116:20]
skip @[el2_ifu_ic_mem.scala 115:27]
io.test[1] <= UInt<1>("h00") @[el2_ifu_ic_mem.scala 114:18]
when read_enable[1] : @[el2_ifu_ic_mem.scala 115:27]
io.test[1] <= ic_tag_data_raw[1] @[el2_ifu_ic_mem.scala 116:20]
skip @[el2_ifu_ic_mem.scala 115:27]