From df273bc349e92d307198a63a520d292b0be061cb Mon Sep 17 00:00:00 2001 From: waleed-lm Date: Thu, 8 Oct 2020 13:37:41 +0500 Subject: [PATCH] Read fixed --- el2_ifu_iccm_mem.fir | 804 +++++++++--------- el2_ifu_iccm_mem.v | 484 ++++++----- src/main/scala/ifu/el2_ifu_iccm_mem.scala | 2 +- .../classes/ifu/el2_ifu_iccm_mem.class | Bin 93720 -> 93821 bytes 4 files changed, 663 insertions(+), 627 deletions(-) diff --git a/el2_ifu_iccm_mem.fir b/el2_ifu_iccm_mem.fir index a96aad55..a0587504 100644 --- a/el2_ifu_iccm_mem.fir +++ b/el2_ifu_iccm_mem.fir @@ -159,22 +159,42 @@ circuit el2_ifu_iccm_mem : infer mport _T_104 = _T_88[addr_bank[3]], clock @[el2_ifu_iccm_mem.scala 54:66] _T_104 <= iccm_bank_wr_data[3] @[el2_ifu_iccm_mem.scala 54:81] skip @[el2_ifu_iccm_mem.scala 54:54] - read mport _T_105 = _T_85[addr_bank[0]], clock @[el2_ifu_iccm_mem.scala 56:80] - reg _T_106 : UInt, clock @[el2_ifu_iccm_mem.scala 56:63] - _T_106 <= _T_105 @[el2_ifu_iccm_mem.scala 56:63] - iccm_bank_dout[0] <= _T_106 @[el2_ifu_iccm_mem.scala 56:53] - read mport _T_107 = _T_86[addr_bank[1]], clock @[el2_ifu_iccm_mem.scala 56:80] - reg _T_108 : UInt, clock @[el2_ifu_iccm_mem.scala 56:63] - _T_108 <= _T_107 @[el2_ifu_iccm_mem.scala 56:63] - iccm_bank_dout[1] <= _T_108 @[el2_ifu_iccm_mem.scala 56:53] - read mport _T_109 = _T_87[addr_bank[2]], clock @[el2_ifu_iccm_mem.scala 56:80] - reg _T_110 : UInt, clock @[el2_ifu_iccm_mem.scala 56:63] - _T_110 <= _T_109 @[el2_ifu_iccm_mem.scala 56:63] - iccm_bank_dout[2] <= _T_110 @[el2_ifu_iccm_mem.scala 56:53] - read mport _T_111 = _T_88[addr_bank[3]], clock @[el2_ifu_iccm_mem.scala 56:80] - reg _T_112 : UInt, clock @[el2_ifu_iccm_mem.scala 56:63] - _T_112 <= _T_111 @[el2_ifu_iccm_mem.scala 56:63] - iccm_bank_dout[3] <= _T_112 @[el2_ifu_iccm_mem.scala 56:53] + wire _T_105 : UInt @[el2_ifu_iccm_mem.scala 56:72] + _T_105 is invalid @[el2_ifu_iccm_mem.scala 56:72] + when read_enable[0] : @[el2_ifu_iccm_mem.scala 56:72] + _T_105 <= addr_bank[0] @[el2_ifu_iccm_mem.scala 56:72] + node _T_106 = or(_T_105, UInt<12>("h00")) @[el2_ifu_iccm_mem.scala 56:72] + node _T_107 = bits(_T_106, 11, 0) @[el2_ifu_iccm_mem.scala 56:72] + read mport _T_108 = _T_85[_T_107], clock @[el2_ifu_iccm_mem.scala 56:72] + skip @[el2_ifu_iccm_mem.scala 56:72] + iccm_bank_dout[0] <= _T_108 @[el2_ifu_iccm_mem.scala 56:53] + wire _T_109 : UInt @[el2_ifu_iccm_mem.scala 56:72] + _T_109 is invalid @[el2_ifu_iccm_mem.scala 56:72] + when read_enable[1] : @[el2_ifu_iccm_mem.scala 56:72] + _T_109 <= addr_bank[1] @[el2_ifu_iccm_mem.scala 56:72] + node _T_110 = or(_T_109, UInt<12>("h00")) @[el2_ifu_iccm_mem.scala 56:72] + node _T_111 = bits(_T_110, 11, 0) @[el2_ifu_iccm_mem.scala 56:72] + read mport _T_112 = _T_86[_T_111], clock @[el2_ifu_iccm_mem.scala 56:72] + skip @[el2_ifu_iccm_mem.scala 56:72] + iccm_bank_dout[1] <= _T_112 @[el2_ifu_iccm_mem.scala 56:53] + wire _T_113 : UInt @[el2_ifu_iccm_mem.scala 56:72] + _T_113 is invalid @[el2_ifu_iccm_mem.scala 56:72] + when read_enable[2] : @[el2_ifu_iccm_mem.scala 56:72] + _T_113 <= addr_bank[2] @[el2_ifu_iccm_mem.scala 56:72] + node _T_114 = or(_T_113, UInt<12>("h00")) @[el2_ifu_iccm_mem.scala 56:72] + node _T_115 = bits(_T_114, 11, 0) @[el2_ifu_iccm_mem.scala 56:72] + read mport _T_116 = _T_87[_T_115], clock @[el2_ifu_iccm_mem.scala 56:72] + skip @[el2_ifu_iccm_mem.scala 56:72] + iccm_bank_dout[2] <= _T_116 @[el2_ifu_iccm_mem.scala 56:53] + wire _T_117 : UInt @[el2_ifu_iccm_mem.scala 56:72] + _T_117 is invalid @[el2_ifu_iccm_mem.scala 56:72] + when read_enable[3] : @[el2_ifu_iccm_mem.scala 56:72] + _T_117 <= addr_bank[3] @[el2_ifu_iccm_mem.scala 56:72] + node _T_118 = or(_T_117, UInt<12>("h00")) @[el2_ifu_iccm_mem.scala 56:72] + node _T_119 = bits(_T_118, 11, 0) @[el2_ifu_iccm_mem.scala 56:72] + read mport _T_120 = _T_88[_T_119], clock @[el2_ifu_iccm_mem.scala 56:72] + skip @[el2_ifu_iccm_mem.scala 56:72] + iccm_bank_dout[3] <= _T_120 @[el2_ifu_iccm_mem.scala 56:53] io.iccm_bank_addr[0] <= addr_bank[0] @[el2_ifu_iccm_mem.scala 61:21] io.iccm_bank_addr[1] <= addr_bank[1] @[el2_ifu_iccm_mem.scala 61:21] io.iccm_bank_addr[2] <= addr_bank[2] @[el2_ifu_iccm_mem.scala 61:21] @@ -184,132 +204,132 @@ circuit el2_ifu_iccm_mem : wire redundant_address : UInt<14>[2] @[el2_ifu_iccm_mem.scala 67:31] redundant_address[0] <= UInt<1>("h00") @[el2_ifu_iccm_mem.scala 68:21] redundant_address[1] <= UInt<1>("h00") @[el2_ifu_iccm_mem.scala 68:21] - node _T_113 = bits(redundant_valid, 1, 1) @[el2_ifu_iccm_mem.scala 70:67] - node _T_114 = bits(io.iccm_rw_addr, 14, 1) @[el2_ifu_iccm_mem.scala 70:90] - node _T_115 = bits(redundant_address[1], 13, 0) @[el2_ifu_iccm_mem.scala 70:128] - node _T_116 = eq(_T_114, _T_115) @[el2_ifu_iccm_mem.scala 70:105] - node _T_117 = bits(io.iccm_rw_addr, 2, 1) @[el2_ifu_iccm_mem.scala 70:163] - node _T_118 = eq(_T_117, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 70:169] - node _T_119 = and(_T_116, _T_118) @[el2_ifu_iccm_mem.scala 70:145] - node _T_120 = and(_T_113, _T_119) @[el2_ifu_iccm_mem.scala 70:71] - node _T_121 = bits(addr_bank_inc, 14, 1) @[el2_ifu_iccm_mem.scala 71:22] - node _T_122 = bits(redundant_address[1], 13, 0) @[el2_ifu_iccm_mem.scala 71:60] - node _T_123 = eq(_T_121, _T_122) @[el2_ifu_iccm_mem.scala 71:37] - node _T_124 = bits(addr_bank_inc, 2, 1) @[el2_ifu_iccm_mem.scala 71:93] - node _T_125 = eq(_T_124, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 71:99] - node _T_126 = and(_T_123, _T_125) @[el2_ifu_iccm_mem.scala 71:77] - node _T_127 = or(_T_120, _T_126) @[el2_ifu_iccm_mem.scala 70:179] - node _T_128 = bits(redundant_valid, 1, 1) @[el2_ifu_iccm_mem.scala 70:67] - node _T_129 = bits(io.iccm_rw_addr, 14, 1) @[el2_ifu_iccm_mem.scala 70:90] - node _T_130 = bits(redundant_address[1], 13, 0) @[el2_ifu_iccm_mem.scala 70:128] - node _T_131 = eq(_T_129, _T_130) @[el2_ifu_iccm_mem.scala 70:105] - node _T_132 = bits(io.iccm_rw_addr, 2, 1) @[el2_ifu_iccm_mem.scala 70:163] - node _T_133 = eq(_T_132, UInt<1>("h01")) @[el2_ifu_iccm_mem.scala 70:169] - node _T_134 = and(_T_131, _T_133) @[el2_ifu_iccm_mem.scala 70:145] - node _T_135 = and(_T_128, _T_134) @[el2_ifu_iccm_mem.scala 70:71] - node _T_136 = bits(addr_bank_inc, 14, 1) @[el2_ifu_iccm_mem.scala 71:22] - node _T_137 = bits(redundant_address[1], 13, 0) @[el2_ifu_iccm_mem.scala 71:60] - node _T_138 = eq(_T_136, _T_137) @[el2_ifu_iccm_mem.scala 71:37] - node _T_139 = bits(addr_bank_inc, 2, 1) @[el2_ifu_iccm_mem.scala 71:93] - node _T_140 = eq(_T_139, UInt<1>("h01")) @[el2_ifu_iccm_mem.scala 71:99] - node _T_141 = and(_T_138, _T_140) @[el2_ifu_iccm_mem.scala 71:77] - node _T_142 = or(_T_135, _T_141) @[el2_ifu_iccm_mem.scala 70:179] - node _T_143 = bits(redundant_valid, 1, 1) @[el2_ifu_iccm_mem.scala 70:67] - node _T_144 = bits(io.iccm_rw_addr, 14, 1) @[el2_ifu_iccm_mem.scala 70:90] - node _T_145 = bits(redundant_address[1], 13, 0) @[el2_ifu_iccm_mem.scala 70:128] - node _T_146 = eq(_T_144, _T_145) @[el2_ifu_iccm_mem.scala 70:105] - node _T_147 = bits(io.iccm_rw_addr, 2, 1) @[el2_ifu_iccm_mem.scala 70:163] - node _T_148 = eq(_T_147, UInt<2>("h02")) @[el2_ifu_iccm_mem.scala 70:169] - node _T_149 = and(_T_146, _T_148) @[el2_ifu_iccm_mem.scala 70:145] - node _T_150 = and(_T_143, _T_149) @[el2_ifu_iccm_mem.scala 70:71] - node _T_151 = bits(addr_bank_inc, 14, 1) @[el2_ifu_iccm_mem.scala 71:22] - node _T_152 = bits(redundant_address[1], 13, 0) @[el2_ifu_iccm_mem.scala 71:60] - node _T_153 = eq(_T_151, _T_152) @[el2_ifu_iccm_mem.scala 71:37] - node _T_154 = bits(addr_bank_inc, 2, 1) @[el2_ifu_iccm_mem.scala 71:93] - node _T_155 = eq(_T_154, UInt<2>("h02")) @[el2_ifu_iccm_mem.scala 71:99] - node _T_156 = and(_T_153, _T_155) @[el2_ifu_iccm_mem.scala 71:77] - node _T_157 = or(_T_150, _T_156) @[el2_ifu_iccm_mem.scala 70:179] - node _T_158 = bits(redundant_valid, 1, 1) @[el2_ifu_iccm_mem.scala 70:67] - node _T_159 = bits(io.iccm_rw_addr, 14, 1) @[el2_ifu_iccm_mem.scala 70:90] - node _T_160 = bits(redundant_address[1], 13, 0) @[el2_ifu_iccm_mem.scala 70:128] - node _T_161 = eq(_T_159, _T_160) @[el2_ifu_iccm_mem.scala 70:105] - node _T_162 = bits(io.iccm_rw_addr, 2, 1) @[el2_ifu_iccm_mem.scala 70:163] - node _T_163 = eq(_T_162, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 70:169] - node _T_164 = and(_T_161, _T_163) @[el2_ifu_iccm_mem.scala 70:145] - node _T_165 = and(_T_158, _T_164) @[el2_ifu_iccm_mem.scala 70:71] - node _T_166 = bits(addr_bank_inc, 14, 1) @[el2_ifu_iccm_mem.scala 71:22] - node _T_167 = bits(redundant_address[1], 13, 0) @[el2_ifu_iccm_mem.scala 71:60] - node _T_168 = eq(_T_166, _T_167) @[el2_ifu_iccm_mem.scala 71:37] - node _T_169 = bits(addr_bank_inc, 2, 1) @[el2_ifu_iccm_mem.scala 71:93] - node _T_170 = eq(_T_169, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 71:99] - node _T_171 = and(_T_168, _T_170) @[el2_ifu_iccm_mem.scala 71:77] - node _T_172 = or(_T_165, _T_171) @[el2_ifu_iccm_mem.scala 70:179] - node _T_173 = cat(_T_172, _T_157) @[Cat.scala 29:58] - node _T_174 = cat(_T_173, _T_142) @[Cat.scala 29:58] - node sel_red1 = cat(_T_174, _T_127) @[Cat.scala 29:58] - node _T_175 = bits(redundant_valid, 0, 0) @[el2_ifu_iccm_mem.scala 72:67] - node _T_176 = bits(io.iccm_rw_addr, 14, 1) @[el2_ifu_iccm_mem.scala 72:90] - node _T_177 = bits(redundant_address[0], 13, 0) @[el2_ifu_iccm_mem.scala 72:128] - node _T_178 = eq(_T_176, _T_177) @[el2_ifu_iccm_mem.scala 72:105] - node _T_179 = bits(io.iccm_rw_addr, 2, 1) @[el2_ifu_iccm_mem.scala 72:163] - node _T_180 = eq(_T_179, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 72:169] - node _T_181 = and(_T_178, _T_180) @[el2_ifu_iccm_mem.scala 72:145] - node _T_182 = and(_T_175, _T_181) @[el2_ifu_iccm_mem.scala 72:71] - node _T_183 = bits(addr_bank_inc, 14, 1) @[el2_ifu_iccm_mem.scala 73:22] - node _T_184 = bits(redundant_address[0], 13, 0) @[el2_ifu_iccm_mem.scala 73:60] - node _T_185 = eq(_T_183, _T_184) @[el2_ifu_iccm_mem.scala 73:37] - node _T_186 = bits(addr_bank_inc, 2, 1) @[el2_ifu_iccm_mem.scala 73:93] - node _T_187 = eq(_T_186, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 73:99] - node _T_188 = and(_T_185, _T_187) @[el2_ifu_iccm_mem.scala 73:77] - node _T_189 = or(_T_182, _T_188) @[el2_ifu_iccm_mem.scala 72:179] - node _T_190 = bits(redundant_valid, 0, 0) @[el2_ifu_iccm_mem.scala 72:67] - node _T_191 = bits(io.iccm_rw_addr, 14, 1) @[el2_ifu_iccm_mem.scala 72:90] - node _T_192 = bits(redundant_address[0], 13, 0) @[el2_ifu_iccm_mem.scala 72:128] - node _T_193 = eq(_T_191, _T_192) @[el2_ifu_iccm_mem.scala 72:105] - node _T_194 = bits(io.iccm_rw_addr, 2, 1) @[el2_ifu_iccm_mem.scala 72:163] - node _T_195 = eq(_T_194, UInt<1>("h01")) @[el2_ifu_iccm_mem.scala 72:169] - node _T_196 = and(_T_193, _T_195) @[el2_ifu_iccm_mem.scala 72:145] - node _T_197 = and(_T_190, _T_196) @[el2_ifu_iccm_mem.scala 72:71] - node _T_198 = bits(addr_bank_inc, 14, 1) @[el2_ifu_iccm_mem.scala 73:22] - node _T_199 = bits(redundant_address[0], 13, 0) @[el2_ifu_iccm_mem.scala 73:60] - node _T_200 = eq(_T_198, _T_199) @[el2_ifu_iccm_mem.scala 73:37] - node _T_201 = bits(addr_bank_inc, 2, 1) @[el2_ifu_iccm_mem.scala 73:93] - node _T_202 = eq(_T_201, UInt<1>("h01")) @[el2_ifu_iccm_mem.scala 73:99] - node _T_203 = and(_T_200, _T_202) @[el2_ifu_iccm_mem.scala 73:77] - node _T_204 = or(_T_197, _T_203) @[el2_ifu_iccm_mem.scala 72:179] - node _T_205 = bits(redundant_valid, 0, 0) @[el2_ifu_iccm_mem.scala 72:67] - node _T_206 = bits(io.iccm_rw_addr, 14, 1) @[el2_ifu_iccm_mem.scala 72:90] - node _T_207 = bits(redundant_address[0], 13, 0) @[el2_ifu_iccm_mem.scala 72:128] - node _T_208 = eq(_T_206, _T_207) @[el2_ifu_iccm_mem.scala 72:105] - node _T_209 = bits(io.iccm_rw_addr, 2, 1) @[el2_ifu_iccm_mem.scala 72:163] - node _T_210 = eq(_T_209, UInt<2>("h02")) @[el2_ifu_iccm_mem.scala 72:169] - node _T_211 = and(_T_208, _T_210) @[el2_ifu_iccm_mem.scala 72:145] - node _T_212 = and(_T_205, _T_211) @[el2_ifu_iccm_mem.scala 72:71] - node _T_213 = bits(addr_bank_inc, 14, 1) @[el2_ifu_iccm_mem.scala 73:22] - node _T_214 = bits(redundant_address[0], 13, 0) @[el2_ifu_iccm_mem.scala 73:60] - node _T_215 = eq(_T_213, _T_214) @[el2_ifu_iccm_mem.scala 73:37] - node _T_216 = bits(addr_bank_inc, 2, 1) @[el2_ifu_iccm_mem.scala 73:93] - node _T_217 = eq(_T_216, UInt<2>("h02")) @[el2_ifu_iccm_mem.scala 73:99] - node _T_218 = and(_T_215, _T_217) @[el2_ifu_iccm_mem.scala 73:77] - node _T_219 = or(_T_212, _T_218) @[el2_ifu_iccm_mem.scala 72:179] - node _T_220 = bits(redundant_valid, 0, 0) @[el2_ifu_iccm_mem.scala 72:67] - node _T_221 = bits(io.iccm_rw_addr, 14, 1) @[el2_ifu_iccm_mem.scala 72:90] - node _T_222 = bits(redundant_address[0], 13, 0) @[el2_ifu_iccm_mem.scala 72:128] - node _T_223 = eq(_T_221, _T_222) @[el2_ifu_iccm_mem.scala 72:105] - node _T_224 = bits(io.iccm_rw_addr, 2, 1) @[el2_ifu_iccm_mem.scala 72:163] - node _T_225 = eq(_T_224, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 72:169] - node _T_226 = and(_T_223, _T_225) @[el2_ifu_iccm_mem.scala 72:145] - node _T_227 = and(_T_220, _T_226) @[el2_ifu_iccm_mem.scala 72:71] - node _T_228 = bits(addr_bank_inc, 14, 1) @[el2_ifu_iccm_mem.scala 73:22] - node _T_229 = bits(redundant_address[0], 13, 0) @[el2_ifu_iccm_mem.scala 73:60] - node _T_230 = eq(_T_228, _T_229) @[el2_ifu_iccm_mem.scala 73:37] - node _T_231 = bits(addr_bank_inc, 2, 1) @[el2_ifu_iccm_mem.scala 73:93] - node _T_232 = eq(_T_231, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 73:99] - node _T_233 = and(_T_230, _T_232) @[el2_ifu_iccm_mem.scala 73:77] - node _T_234 = or(_T_227, _T_233) @[el2_ifu_iccm_mem.scala 72:179] - node _T_235 = cat(_T_234, _T_219) @[Cat.scala 29:58] - node _T_236 = cat(_T_235, _T_204) @[Cat.scala 29:58] - node sel_red0 = cat(_T_236, _T_189) @[Cat.scala 29:58] + node _T_121 = bits(redundant_valid, 1, 1) @[el2_ifu_iccm_mem.scala 70:67] + node _T_122 = bits(io.iccm_rw_addr, 14, 1) @[el2_ifu_iccm_mem.scala 70:90] + node _T_123 = bits(redundant_address[1], 13, 0) @[el2_ifu_iccm_mem.scala 70:128] + node _T_124 = eq(_T_122, _T_123) @[el2_ifu_iccm_mem.scala 70:105] + node _T_125 = bits(io.iccm_rw_addr, 2, 1) @[el2_ifu_iccm_mem.scala 70:163] + node _T_126 = eq(_T_125, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 70:169] + node _T_127 = and(_T_124, _T_126) @[el2_ifu_iccm_mem.scala 70:145] + node _T_128 = and(_T_121, _T_127) @[el2_ifu_iccm_mem.scala 70:71] + node _T_129 = bits(addr_bank_inc, 14, 1) @[el2_ifu_iccm_mem.scala 71:22] + node _T_130 = bits(redundant_address[1], 13, 0) @[el2_ifu_iccm_mem.scala 71:60] + node _T_131 = eq(_T_129, _T_130) @[el2_ifu_iccm_mem.scala 71:37] + node _T_132 = bits(addr_bank_inc, 2, 1) @[el2_ifu_iccm_mem.scala 71:93] + node _T_133 = eq(_T_132, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 71:99] + node _T_134 = and(_T_131, _T_133) @[el2_ifu_iccm_mem.scala 71:77] + node _T_135 = or(_T_128, _T_134) @[el2_ifu_iccm_mem.scala 70:179] + node _T_136 = bits(redundant_valid, 1, 1) @[el2_ifu_iccm_mem.scala 70:67] + node _T_137 = bits(io.iccm_rw_addr, 14, 1) @[el2_ifu_iccm_mem.scala 70:90] + node _T_138 = bits(redundant_address[1], 13, 0) @[el2_ifu_iccm_mem.scala 70:128] + node _T_139 = eq(_T_137, _T_138) @[el2_ifu_iccm_mem.scala 70:105] + node _T_140 = bits(io.iccm_rw_addr, 2, 1) @[el2_ifu_iccm_mem.scala 70:163] + node _T_141 = eq(_T_140, UInt<1>("h01")) @[el2_ifu_iccm_mem.scala 70:169] + node _T_142 = and(_T_139, _T_141) @[el2_ifu_iccm_mem.scala 70:145] + node _T_143 = and(_T_136, _T_142) @[el2_ifu_iccm_mem.scala 70:71] + node _T_144 = bits(addr_bank_inc, 14, 1) @[el2_ifu_iccm_mem.scala 71:22] + node _T_145 = bits(redundant_address[1], 13, 0) @[el2_ifu_iccm_mem.scala 71:60] + node _T_146 = eq(_T_144, _T_145) @[el2_ifu_iccm_mem.scala 71:37] + node _T_147 = bits(addr_bank_inc, 2, 1) @[el2_ifu_iccm_mem.scala 71:93] + node _T_148 = eq(_T_147, UInt<1>("h01")) @[el2_ifu_iccm_mem.scala 71:99] + node _T_149 = and(_T_146, _T_148) @[el2_ifu_iccm_mem.scala 71:77] + node _T_150 = or(_T_143, _T_149) @[el2_ifu_iccm_mem.scala 70:179] + node _T_151 = bits(redundant_valid, 1, 1) @[el2_ifu_iccm_mem.scala 70:67] + node _T_152 = bits(io.iccm_rw_addr, 14, 1) @[el2_ifu_iccm_mem.scala 70:90] + node _T_153 = bits(redundant_address[1], 13, 0) @[el2_ifu_iccm_mem.scala 70:128] + node _T_154 = eq(_T_152, _T_153) @[el2_ifu_iccm_mem.scala 70:105] + node _T_155 = bits(io.iccm_rw_addr, 2, 1) @[el2_ifu_iccm_mem.scala 70:163] + node _T_156 = eq(_T_155, UInt<2>("h02")) @[el2_ifu_iccm_mem.scala 70:169] + node _T_157 = and(_T_154, _T_156) @[el2_ifu_iccm_mem.scala 70:145] + node _T_158 = and(_T_151, _T_157) @[el2_ifu_iccm_mem.scala 70:71] + node _T_159 = bits(addr_bank_inc, 14, 1) @[el2_ifu_iccm_mem.scala 71:22] + node _T_160 = bits(redundant_address[1], 13, 0) @[el2_ifu_iccm_mem.scala 71:60] + node _T_161 = eq(_T_159, _T_160) @[el2_ifu_iccm_mem.scala 71:37] + node _T_162 = bits(addr_bank_inc, 2, 1) @[el2_ifu_iccm_mem.scala 71:93] + node _T_163 = eq(_T_162, UInt<2>("h02")) @[el2_ifu_iccm_mem.scala 71:99] + node _T_164 = and(_T_161, _T_163) @[el2_ifu_iccm_mem.scala 71:77] + node _T_165 = or(_T_158, _T_164) @[el2_ifu_iccm_mem.scala 70:179] + node _T_166 = bits(redundant_valid, 1, 1) @[el2_ifu_iccm_mem.scala 70:67] + node _T_167 = bits(io.iccm_rw_addr, 14, 1) @[el2_ifu_iccm_mem.scala 70:90] + node _T_168 = bits(redundant_address[1], 13, 0) @[el2_ifu_iccm_mem.scala 70:128] + node _T_169 = eq(_T_167, _T_168) @[el2_ifu_iccm_mem.scala 70:105] + node _T_170 = bits(io.iccm_rw_addr, 2, 1) @[el2_ifu_iccm_mem.scala 70:163] + node _T_171 = eq(_T_170, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 70:169] + node _T_172 = and(_T_169, _T_171) @[el2_ifu_iccm_mem.scala 70:145] + node _T_173 = and(_T_166, _T_172) @[el2_ifu_iccm_mem.scala 70:71] + node _T_174 = bits(addr_bank_inc, 14, 1) @[el2_ifu_iccm_mem.scala 71:22] + node _T_175 = bits(redundant_address[1], 13, 0) @[el2_ifu_iccm_mem.scala 71:60] + node _T_176 = eq(_T_174, _T_175) @[el2_ifu_iccm_mem.scala 71:37] + node _T_177 = bits(addr_bank_inc, 2, 1) @[el2_ifu_iccm_mem.scala 71:93] + node _T_178 = eq(_T_177, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 71:99] + node _T_179 = and(_T_176, _T_178) @[el2_ifu_iccm_mem.scala 71:77] + node _T_180 = or(_T_173, _T_179) @[el2_ifu_iccm_mem.scala 70:179] + node _T_181 = cat(_T_180, _T_165) @[Cat.scala 29:58] + node _T_182 = cat(_T_181, _T_150) @[Cat.scala 29:58] + node sel_red1 = cat(_T_182, _T_135) @[Cat.scala 29:58] + node _T_183 = bits(redundant_valid, 0, 0) @[el2_ifu_iccm_mem.scala 72:67] + node _T_184 = bits(io.iccm_rw_addr, 14, 1) @[el2_ifu_iccm_mem.scala 72:90] + node _T_185 = bits(redundant_address[0], 13, 0) @[el2_ifu_iccm_mem.scala 72:128] + node _T_186 = eq(_T_184, _T_185) @[el2_ifu_iccm_mem.scala 72:105] + node _T_187 = bits(io.iccm_rw_addr, 2, 1) @[el2_ifu_iccm_mem.scala 72:163] + node _T_188 = eq(_T_187, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 72:169] + node _T_189 = and(_T_186, _T_188) @[el2_ifu_iccm_mem.scala 72:145] + node _T_190 = and(_T_183, _T_189) @[el2_ifu_iccm_mem.scala 72:71] + node _T_191 = bits(addr_bank_inc, 14, 1) @[el2_ifu_iccm_mem.scala 73:22] + node _T_192 = bits(redundant_address[0], 13, 0) @[el2_ifu_iccm_mem.scala 73:60] + node _T_193 = eq(_T_191, _T_192) @[el2_ifu_iccm_mem.scala 73:37] + node _T_194 = bits(addr_bank_inc, 2, 1) @[el2_ifu_iccm_mem.scala 73:93] + node _T_195 = eq(_T_194, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 73:99] + node _T_196 = and(_T_193, _T_195) @[el2_ifu_iccm_mem.scala 73:77] + node _T_197 = or(_T_190, _T_196) @[el2_ifu_iccm_mem.scala 72:179] + node _T_198 = bits(redundant_valid, 0, 0) @[el2_ifu_iccm_mem.scala 72:67] + node _T_199 = bits(io.iccm_rw_addr, 14, 1) @[el2_ifu_iccm_mem.scala 72:90] + node _T_200 = bits(redundant_address[0], 13, 0) @[el2_ifu_iccm_mem.scala 72:128] + node _T_201 = eq(_T_199, _T_200) @[el2_ifu_iccm_mem.scala 72:105] + node _T_202 = bits(io.iccm_rw_addr, 2, 1) @[el2_ifu_iccm_mem.scala 72:163] + node _T_203 = eq(_T_202, UInt<1>("h01")) @[el2_ifu_iccm_mem.scala 72:169] + node _T_204 = and(_T_201, _T_203) @[el2_ifu_iccm_mem.scala 72:145] + node _T_205 = and(_T_198, _T_204) @[el2_ifu_iccm_mem.scala 72:71] + node _T_206 = bits(addr_bank_inc, 14, 1) @[el2_ifu_iccm_mem.scala 73:22] + node _T_207 = bits(redundant_address[0], 13, 0) @[el2_ifu_iccm_mem.scala 73:60] + node _T_208 = eq(_T_206, _T_207) @[el2_ifu_iccm_mem.scala 73:37] + node _T_209 = bits(addr_bank_inc, 2, 1) @[el2_ifu_iccm_mem.scala 73:93] + node _T_210 = eq(_T_209, UInt<1>("h01")) @[el2_ifu_iccm_mem.scala 73:99] + node _T_211 = and(_T_208, _T_210) @[el2_ifu_iccm_mem.scala 73:77] + node _T_212 = or(_T_205, _T_211) @[el2_ifu_iccm_mem.scala 72:179] + node _T_213 = bits(redundant_valid, 0, 0) @[el2_ifu_iccm_mem.scala 72:67] + node _T_214 = bits(io.iccm_rw_addr, 14, 1) @[el2_ifu_iccm_mem.scala 72:90] + node _T_215 = bits(redundant_address[0], 13, 0) @[el2_ifu_iccm_mem.scala 72:128] + node _T_216 = eq(_T_214, _T_215) @[el2_ifu_iccm_mem.scala 72:105] + node _T_217 = bits(io.iccm_rw_addr, 2, 1) @[el2_ifu_iccm_mem.scala 72:163] + node _T_218 = eq(_T_217, UInt<2>("h02")) @[el2_ifu_iccm_mem.scala 72:169] + node _T_219 = and(_T_216, _T_218) @[el2_ifu_iccm_mem.scala 72:145] + node _T_220 = and(_T_213, _T_219) @[el2_ifu_iccm_mem.scala 72:71] + node _T_221 = bits(addr_bank_inc, 14, 1) @[el2_ifu_iccm_mem.scala 73:22] + node _T_222 = bits(redundant_address[0], 13, 0) @[el2_ifu_iccm_mem.scala 73:60] + node _T_223 = eq(_T_221, _T_222) @[el2_ifu_iccm_mem.scala 73:37] + node _T_224 = bits(addr_bank_inc, 2, 1) @[el2_ifu_iccm_mem.scala 73:93] + node _T_225 = eq(_T_224, UInt<2>("h02")) @[el2_ifu_iccm_mem.scala 73:99] + node _T_226 = and(_T_223, _T_225) @[el2_ifu_iccm_mem.scala 73:77] + node _T_227 = or(_T_220, _T_226) @[el2_ifu_iccm_mem.scala 72:179] + node _T_228 = bits(redundant_valid, 0, 0) @[el2_ifu_iccm_mem.scala 72:67] + node _T_229 = bits(io.iccm_rw_addr, 14, 1) @[el2_ifu_iccm_mem.scala 72:90] + node _T_230 = bits(redundant_address[0], 13, 0) @[el2_ifu_iccm_mem.scala 72:128] + node _T_231 = eq(_T_229, _T_230) @[el2_ifu_iccm_mem.scala 72:105] + node _T_232 = bits(io.iccm_rw_addr, 2, 1) @[el2_ifu_iccm_mem.scala 72:163] + node _T_233 = eq(_T_232, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 72:169] + node _T_234 = and(_T_231, _T_233) @[el2_ifu_iccm_mem.scala 72:145] + node _T_235 = and(_T_228, _T_234) @[el2_ifu_iccm_mem.scala 72:71] + node _T_236 = bits(addr_bank_inc, 14, 1) @[el2_ifu_iccm_mem.scala 73:22] + node _T_237 = bits(redundant_address[0], 13, 0) @[el2_ifu_iccm_mem.scala 73:60] + node _T_238 = eq(_T_236, _T_237) @[el2_ifu_iccm_mem.scala 73:37] + node _T_239 = bits(addr_bank_inc, 2, 1) @[el2_ifu_iccm_mem.scala 73:93] + node _T_240 = eq(_T_239, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 73:99] + node _T_241 = and(_T_238, _T_240) @[el2_ifu_iccm_mem.scala 73:77] + node _T_242 = or(_T_235, _T_241) @[el2_ifu_iccm_mem.scala 72:179] + node _T_243 = cat(_T_242, _T_227) @[Cat.scala 29:58] + node _T_244 = cat(_T_243, _T_212) @[Cat.scala 29:58] + node sel_red0 = cat(_T_244, _T_197) @[Cat.scala 29:58] reg sel_red0_q : UInt, clock with : (reset => (reset, UInt<1>("h00"))) @[el2_ifu_iccm_mem.scala 75:27] sel_red0_q <= sel_red0 @[el2_ifu_iccm_mem.scala 75:27] reg sel_red1_q : UInt, clock with : (reset => (reset, UInt<1>("h00"))) @[el2_ifu_iccm_mem.scala 76:27] @@ -317,268 +337,268 @@ circuit el2_ifu_iccm_mem : wire redundant_data : UInt<39>[2] @[el2_ifu_iccm_mem.scala 77:28] redundant_data[0] <= UInt<1>("h00") @[el2_ifu_iccm_mem.scala 78:18] redundant_data[1] <= UInt<1>("h00") @[el2_ifu_iccm_mem.scala 78:18] - node _T_237 = bits(sel_red1_q, 0, 0) @[el2_ifu_iccm_mem.scala 80:47] - node _T_238 = bits(_T_237, 0, 0) @[el2_ifu_iccm_mem.scala 80:51] - node _T_239 = bits(sel_red0_q, 0, 0) @[el2_ifu_iccm_mem.scala 81:47] - node _T_240 = bits(_T_239, 0, 0) @[el2_ifu_iccm_mem.scala 81:51] - node _T_241 = bits(sel_red0_q, 0, 0) @[el2_ifu_iccm_mem.scala 82:47] - node _T_242 = not(_T_241) @[el2_ifu_iccm_mem.scala 82:36] - node _T_243 = bits(sel_red1_q, 0, 0) @[el2_ifu_iccm_mem.scala 82:64] - node _T_244 = not(_T_243) @[el2_ifu_iccm_mem.scala 82:53] - node _T_245 = and(_T_242, _T_244) @[el2_ifu_iccm_mem.scala 82:51] - node _T_246 = bits(_T_245, 0, 0) @[el2_ifu_iccm_mem.scala 82:69] - node _T_247 = mux(_T_238, redundant_data[1], UInt<1>("h00")) @[Mux.scala 27:72] - node _T_248 = mux(_T_240, redundant_data[0], UInt<1>("h00")) @[Mux.scala 27:72] - node _T_249 = mux(_T_246, iccm_bank_dout[0], UInt<1>("h00")) @[Mux.scala 27:72] - node _T_250 = or(_T_247, _T_248) @[Mux.scala 27:72] - node _T_251 = or(_T_250, _T_249) @[Mux.scala 27:72] + node _T_245 = bits(sel_red1_q, 0, 0) @[el2_ifu_iccm_mem.scala 80:47] + node _T_246 = bits(_T_245, 0, 0) @[el2_ifu_iccm_mem.scala 80:51] + node _T_247 = bits(sel_red0_q, 0, 0) @[el2_ifu_iccm_mem.scala 81:47] + node _T_248 = bits(_T_247, 0, 0) @[el2_ifu_iccm_mem.scala 81:51] + node _T_249 = bits(sel_red0_q, 0, 0) @[el2_ifu_iccm_mem.scala 82:47] + node _T_250 = not(_T_249) @[el2_ifu_iccm_mem.scala 82:36] + node _T_251 = bits(sel_red1_q, 0, 0) @[el2_ifu_iccm_mem.scala 82:64] + node _T_252 = not(_T_251) @[el2_ifu_iccm_mem.scala 82:53] + node _T_253 = and(_T_250, _T_252) @[el2_ifu_iccm_mem.scala 82:51] + node _T_254 = bits(_T_253, 0, 0) @[el2_ifu_iccm_mem.scala 82:69] + node _T_255 = mux(_T_246, redundant_data[1], UInt<1>("h00")) @[Mux.scala 27:72] + node _T_256 = mux(_T_248, redundant_data[0], UInt<1>("h00")) @[Mux.scala 27:72] + node _T_257 = mux(_T_254, iccm_bank_dout[0], UInt<1>("h00")) @[Mux.scala 27:72] + node _T_258 = or(_T_255, _T_256) @[Mux.scala 27:72] + node _T_259 = or(_T_258, _T_257) @[Mux.scala 27:72] wire iccm_bank_dout_fn_0 : UInt<39> @[Mux.scala 27:72] - iccm_bank_dout_fn_0 <= _T_251 @[Mux.scala 27:72] - node _T_252 = bits(sel_red1_q, 1, 1) @[el2_ifu_iccm_mem.scala 80:47] - node _T_253 = bits(_T_252, 0, 0) @[el2_ifu_iccm_mem.scala 80:51] - node _T_254 = bits(sel_red0_q, 1, 1) @[el2_ifu_iccm_mem.scala 81:47] - node _T_255 = bits(_T_254, 0, 0) @[el2_ifu_iccm_mem.scala 81:51] - node _T_256 = bits(sel_red0_q, 1, 1) @[el2_ifu_iccm_mem.scala 82:47] - node _T_257 = not(_T_256) @[el2_ifu_iccm_mem.scala 82:36] - node _T_258 = bits(sel_red1_q, 1, 1) @[el2_ifu_iccm_mem.scala 82:64] - node _T_259 = not(_T_258) @[el2_ifu_iccm_mem.scala 82:53] - node _T_260 = and(_T_257, _T_259) @[el2_ifu_iccm_mem.scala 82:51] - node _T_261 = bits(_T_260, 0, 0) @[el2_ifu_iccm_mem.scala 82:69] - node _T_262 = mux(_T_253, redundant_data[1], UInt<1>("h00")) @[Mux.scala 27:72] - node _T_263 = mux(_T_255, redundant_data[0], UInt<1>("h00")) @[Mux.scala 27:72] - node _T_264 = mux(_T_261, iccm_bank_dout[1], UInt<1>("h00")) @[Mux.scala 27:72] - node _T_265 = or(_T_262, _T_263) @[Mux.scala 27:72] - node _T_266 = or(_T_265, _T_264) @[Mux.scala 27:72] + iccm_bank_dout_fn_0 <= _T_259 @[Mux.scala 27:72] + node _T_260 = bits(sel_red1_q, 1, 1) @[el2_ifu_iccm_mem.scala 80:47] + node _T_261 = bits(_T_260, 0, 0) @[el2_ifu_iccm_mem.scala 80:51] + node _T_262 = bits(sel_red0_q, 1, 1) @[el2_ifu_iccm_mem.scala 81:47] + node _T_263 = bits(_T_262, 0, 0) @[el2_ifu_iccm_mem.scala 81:51] + node _T_264 = bits(sel_red0_q, 1, 1) @[el2_ifu_iccm_mem.scala 82:47] + node _T_265 = not(_T_264) @[el2_ifu_iccm_mem.scala 82:36] + node _T_266 = bits(sel_red1_q, 1, 1) @[el2_ifu_iccm_mem.scala 82:64] + node _T_267 = not(_T_266) @[el2_ifu_iccm_mem.scala 82:53] + node _T_268 = and(_T_265, _T_267) @[el2_ifu_iccm_mem.scala 82:51] + node _T_269 = bits(_T_268, 0, 0) @[el2_ifu_iccm_mem.scala 82:69] + node _T_270 = mux(_T_261, redundant_data[1], UInt<1>("h00")) @[Mux.scala 27:72] + node _T_271 = mux(_T_263, redundant_data[0], UInt<1>("h00")) @[Mux.scala 27:72] + node _T_272 = mux(_T_269, iccm_bank_dout[1], UInt<1>("h00")) @[Mux.scala 27:72] + node _T_273 = or(_T_270, _T_271) @[Mux.scala 27:72] + node _T_274 = or(_T_273, _T_272) @[Mux.scala 27:72] wire iccm_bank_dout_fn_1 : UInt<39> @[Mux.scala 27:72] - iccm_bank_dout_fn_1 <= _T_266 @[Mux.scala 27:72] - node _T_267 = bits(sel_red1_q, 2, 2) @[el2_ifu_iccm_mem.scala 80:47] - node _T_268 = bits(_T_267, 0, 0) @[el2_ifu_iccm_mem.scala 80:51] - node _T_269 = bits(sel_red0_q, 2, 2) @[el2_ifu_iccm_mem.scala 81:47] - node _T_270 = bits(_T_269, 0, 0) @[el2_ifu_iccm_mem.scala 81:51] - node _T_271 = bits(sel_red0_q, 2, 2) @[el2_ifu_iccm_mem.scala 82:47] - node _T_272 = not(_T_271) @[el2_ifu_iccm_mem.scala 82:36] - node _T_273 = bits(sel_red1_q, 2, 2) @[el2_ifu_iccm_mem.scala 82:64] - node _T_274 = not(_T_273) @[el2_ifu_iccm_mem.scala 82:53] - node _T_275 = and(_T_272, _T_274) @[el2_ifu_iccm_mem.scala 82:51] - node _T_276 = bits(_T_275, 0, 0) @[el2_ifu_iccm_mem.scala 82:69] - node _T_277 = mux(_T_268, redundant_data[1], UInt<1>("h00")) @[Mux.scala 27:72] - node _T_278 = mux(_T_270, redundant_data[0], UInt<1>("h00")) @[Mux.scala 27:72] - node _T_279 = mux(_T_276, iccm_bank_dout[2], UInt<1>("h00")) @[Mux.scala 27:72] - node _T_280 = or(_T_277, _T_278) @[Mux.scala 27:72] - node _T_281 = or(_T_280, _T_279) @[Mux.scala 27:72] + iccm_bank_dout_fn_1 <= _T_274 @[Mux.scala 27:72] + node _T_275 = bits(sel_red1_q, 2, 2) @[el2_ifu_iccm_mem.scala 80:47] + node _T_276 = bits(_T_275, 0, 0) @[el2_ifu_iccm_mem.scala 80:51] + node _T_277 = bits(sel_red0_q, 2, 2) @[el2_ifu_iccm_mem.scala 81:47] + node _T_278 = bits(_T_277, 0, 0) @[el2_ifu_iccm_mem.scala 81:51] + node _T_279 = bits(sel_red0_q, 2, 2) @[el2_ifu_iccm_mem.scala 82:47] + node _T_280 = not(_T_279) @[el2_ifu_iccm_mem.scala 82:36] + node _T_281 = bits(sel_red1_q, 2, 2) @[el2_ifu_iccm_mem.scala 82:64] + node _T_282 = not(_T_281) @[el2_ifu_iccm_mem.scala 82:53] + node _T_283 = and(_T_280, _T_282) @[el2_ifu_iccm_mem.scala 82:51] + node _T_284 = bits(_T_283, 0, 0) @[el2_ifu_iccm_mem.scala 82:69] + node _T_285 = mux(_T_276, redundant_data[1], UInt<1>("h00")) @[Mux.scala 27:72] + node _T_286 = mux(_T_278, redundant_data[0], UInt<1>("h00")) @[Mux.scala 27:72] + node _T_287 = mux(_T_284, iccm_bank_dout[2], UInt<1>("h00")) @[Mux.scala 27:72] + node _T_288 = or(_T_285, _T_286) @[Mux.scala 27:72] + node _T_289 = or(_T_288, _T_287) @[Mux.scala 27:72] wire iccm_bank_dout_fn_2 : UInt<39> @[Mux.scala 27:72] - iccm_bank_dout_fn_2 <= _T_281 @[Mux.scala 27:72] - node _T_282 = bits(sel_red1_q, 3, 3) @[el2_ifu_iccm_mem.scala 80:47] - node _T_283 = bits(_T_282, 0, 0) @[el2_ifu_iccm_mem.scala 80:51] - node _T_284 = bits(sel_red0_q, 3, 3) @[el2_ifu_iccm_mem.scala 81:47] - node _T_285 = bits(_T_284, 0, 0) @[el2_ifu_iccm_mem.scala 81:51] - node _T_286 = bits(sel_red0_q, 3, 3) @[el2_ifu_iccm_mem.scala 82:47] - node _T_287 = not(_T_286) @[el2_ifu_iccm_mem.scala 82:36] - node _T_288 = bits(sel_red1_q, 3, 3) @[el2_ifu_iccm_mem.scala 82:64] - node _T_289 = not(_T_288) @[el2_ifu_iccm_mem.scala 82:53] - node _T_290 = and(_T_287, _T_289) @[el2_ifu_iccm_mem.scala 82:51] - node _T_291 = bits(_T_290, 0, 0) @[el2_ifu_iccm_mem.scala 82:69] - node _T_292 = mux(_T_283, redundant_data[1], UInt<1>("h00")) @[Mux.scala 27:72] - node _T_293 = mux(_T_285, redundant_data[0], UInt<1>("h00")) @[Mux.scala 27:72] - node _T_294 = mux(_T_291, iccm_bank_dout[3], UInt<1>("h00")) @[Mux.scala 27:72] - node _T_295 = or(_T_292, _T_293) @[Mux.scala 27:72] - node _T_296 = or(_T_295, _T_294) @[Mux.scala 27:72] + iccm_bank_dout_fn_2 <= _T_289 @[Mux.scala 27:72] + node _T_290 = bits(sel_red1_q, 3, 3) @[el2_ifu_iccm_mem.scala 80:47] + node _T_291 = bits(_T_290, 0, 0) @[el2_ifu_iccm_mem.scala 80:51] + node _T_292 = bits(sel_red0_q, 3, 3) @[el2_ifu_iccm_mem.scala 81:47] + node _T_293 = bits(_T_292, 0, 0) @[el2_ifu_iccm_mem.scala 81:51] + node _T_294 = bits(sel_red0_q, 3, 3) @[el2_ifu_iccm_mem.scala 82:47] + node _T_295 = not(_T_294) @[el2_ifu_iccm_mem.scala 82:36] + node _T_296 = bits(sel_red1_q, 3, 3) @[el2_ifu_iccm_mem.scala 82:64] + node _T_297 = not(_T_296) @[el2_ifu_iccm_mem.scala 82:53] + node _T_298 = and(_T_295, _T_297) @[el2_ifu_iccm_mem.scala 82:51] + node _T_299 = bits(_T_298, 0, 0) @[el2_ifu_iccm_mem.scala 82:69] + node _T_300 = mux(_T_291, redundant_data[1], UInt<1>("h00")) @[Mux.scala 27:72] + node _T_301 = mux(_T_293, redundant_data[0], UInt<1>("h00")) @[Mux.scala 27:72] + node _T_302 = mux(_T_299, iccm_bank_dout[3], UInt<1>("h00")) @[Mux.scala 27:72] + node _T_303 = or(_T_300, _T_301) @[Mux.scala 27:72] + node _T_304 = or(_T_303, _T_302) @[Mux.scala 27:72] wire iccm_bank_dout_fn_3 : UInt<39> @[Mux.scala 27:72] - iccm_bank_dout_fn_3 <= _T_296 @[Mux.scala 27:72] + iccm_bank_dout_fn_3 <= _T_304 @[Mux.scala 27:72] wire redundant_lru : UInt<1> redundant_lru <= UInt<1>("h00") - node _T_297 = eq(redundant_lru, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 84:20] - node r0_addr_en = and(_T_297, io.iccm_buf_correct_ecc) @[el2_ifu_iccm_mem.scala 84:35] + node _T_305 = eq(redundant_lru, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 84:20] + node r0_addr_en = and(_T_305, io.iccm_buf_correct_ecc) @[el2_ifu_iccm_mem.scala 84:35] node r1_addr_en = and(redundant_lru, io.iccm_buf_correct_ecc) @[el2_ifu_iccm_mem.scala 85:35] - node _T_298 = orr(sel_red0) @[el2_ifu_iccm_mem.scala 86:63] - node _T_299 = orr(sel_red1) @[el2_ifu_iccm_mem.scala 86:78] - node _T_300 = or(_T_298, _T_299) @[el2_ifu_iccm_mem.scala 86:67] - node _T_301 = and(_T_300, io.iccm_rden) @[el2_ifu_iccm_mem.scala 86:83] - node _T_302 = and(_T_301, io.iccm_correction_state) @[el2_ifu_iccm_mem.scala 86:98] - node redundant_lru_en = or(io.iccm_buf_correct_ecc, _T_302) @[el2_ifu_iccm_mem.scala 86:50] - node _T_303 = eq(redundant_lru, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 87:55] - node _T_304 = orr(sel_red0) @[el2_ifu_iccm_mem.scala 87:84] - node _T_305 = mux(_T_304, UInt<1>("h01"), UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 87:74] - node redundant_lru_in = mux(io.iccm_buf_correct_ecc, _T_303, _T_305) @[el2_ifu_iccm_mem.scala 87:29] - reg _T_306 : UInt, clock with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 27:20] - when redundant_lru_en : @[Reg.scala 28:19] - _T_306 <= redundant_lru_in @[Reg.scala 28:23] - skip @[Reg.scala 28:19] - redundant_lru <= _T_306 @[el2_ifu_iccm_mem.scala 88:17] - node _T_307 = bits(io.iccm_rw_addr, 14, 1) @[el2_ifu_iccm_mem.scala 89:52] - reg _T_308 : UInt, clock with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 27:20] - when r0_addr_en : @[Reg.scala 28:19] - _T_308 <= _T_307 @[Reg.scala 28:23] - skip @[Reg.scala 28:19] - redundant_address[0] <= _T_308 @[el2_ifu_iccm_mem.scala 89:24] - node _T_309 = bits(io.iccm_rw_addr, 14, 1) @[el2_ifu_iccm_mem.scala 90:52] - node _T_310 = bits(r1_addr_en, 0, 0) @[el2_ifu_iccm_mem.scala 90:85] - reg _T_311 : UInt, clock with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 27:20] - when _T_310 : @[Reg.scala 28:19] - _T_311 <= _T_309 @[Reg.scala 28:23] - skip @[Reg.scala 28:19] - redundant_address[1] <= _T_311 @[el2_ifu_iccm_mem.scala 90:24] - node _T_312 = bits(r1_addr_en, 0, 0) @[el2_ifu_iccm_mem.scala 91:57] - reg _T_313 : UInt, clock with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 27:20] - when _T_312 : @[Reg.scala 28:19] - _T_313 <= UInt<1>("h01") @[Reg.scala 28:23] - skip @[Reg.scala 28:19] + node _T_306 = orr(sel_red0) @[el2_ifu_iccm_mem.scala 86:63] + node _T_307 = orr(sel_red1) @[el2_ifu_iccm_mem.scala 86:78] + node _T_308 = or(_T_306, _T_307) @[el2_ifu_iccm_mem.scala 86:67] + node _T_309 = and(_T_308, io.iccm_rden) @[el2_ifu_iccm_mem.scala 86:83] + node _T_310 = and(_T_309, io.iccm_correction_state) @[el2_ifu_iccm_mem.scala 86:98] + node redundant_lru_en = or(io.iccm_buf_correct_ecc, _T_310) @[el2_ifu_iccm_mem.scala 86:50] + node _T_311 = eq(redundant_lru, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 87:55] + node _T_312 = orr(sel_red0) @[el2_ifu_iccm_mem.scala 87:84] + node _T_313 = mux(_T_312, UInt<1>("h01"), UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 87:74] + node redundant_lru_in = mux(io.iccm_buf_correct_ecc, _T_311, _T_313) @[el2_ifu_iccm_mem.scala 87:29] reg _T_314 : UInt, clock with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 27:20] + when redundant_lru_en : @[Reg.scala 28:19] + _T_314 <= redundant_lru_in @[Reg.scala 28:23] + skip @[Reg.scala 28:19] + redundant_lru <= _T_314 @[el2_ifu_iccm_mem.scala 88:17] + node _T_315 = bits(io.iccm_rw_addr, 14, 1) @[el2_ifu_iccm_mem.scala 89:52] + reg _T_316 : UInt, clock with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 27:20] when r0_addr_en : @[Reg.scala 28:19] - _T_314 <= UInt<1>("h01") @[Reg.scala 28:23] + _T_316 <= _T_315 @[Reg.scala 28:23] skip @[Reg.scala 28:19] - node _T_315 = cat(_T_313, _T_314) @[Cat.scala 29:58] - redundant_valid <= _T_315 @[el2_ifu_iccm_mem.scala 91:19] - node _T_316 = bits(io.iccm_rw_addr, 14, 2) @[el2_ifu_iccm_mem.scala 93:45] - node _T_317 = bits(redundant_address[0], 13, 1) @[el2_ifu_iccm_mem.scala 93:85] - node _T_318 = eq(_T_316, _T_317) @[el2_ifu_iccm_mem.scala 93:61] - node _T_319 = bits(io.iccm_rw_addr, 1, 1) @[el2_ifu_iccm_mem.scala 94:22] - node _T_320 = bits(redundant_address[0], 0, 0) @[el2_ifu_iccm_mem.scala 94:48] - node _T_321 = and(_T_319, _T_320) @[el2_ifu_iccm_mem.scala 94:26] - node _T_322 = bits(io.iccm_wr_size, 1, 0) @[el2_ifu_iccm_mem.scala 94:70] - node _T_323 = eq(_T_322, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 94:75] - node _T_324 = or(_T_321, _T_323) @[el2_ifu_iccm_mem.scala 94:52] - node _T_325 = and(_T_318, _T_324) @[el2_ifu_iccm_mem.scala 93:102] - node _T_326 = bits(redundant_valid, 0, 0) @[el2_ifu_iccm_mem.scala 94:101] - node _T_327 = and(_T_325, _T_326) @[el2_ifu_iccm_mem.scala 94:84] - node _T_328 = and(_T_327, io.iccm_wren) @[el2_ifu_iccm_mem.scala 94:105] - node _T_329 = eq(redundant_lru, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 95:6] - node _T_330 = and(_T_329, io.iccm_buf_correct_ecc) @[el2_ifu_iccm_mem.scala 95:21] - node redundant_data0_en = or(_T_328, _T_330) @[el2_ifu_iccm_mem.scala 94:121] - node _T_331 = bits(io.iccm_rw_addr, 1, 1) @[el2_ifu_iccm_mem.scala 96:49] - node _T_332 = bits(redundant_address[0], 0, 0) @[el2_ifu_iccm_mem.scala 96:73] - node _T_333 = and(_T_331, _T_332) @[el2_ifu_iccm_mem.scala 96:52] - node _T_334 = bits(redundant_address[0], 0, 0) @[el2_ifu_iccm_mem.scala 96:100] - node _T_335 = bits(io.iccm_wr_size, 1, 0) @[el2_ifu_iccm_mem.scala 96:122] - node _T_336 = eq(_T_335, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 96:127] - node _T_337 = and(_T_334, _T_336) @[el2_ifu_iccm_mem.scala 96:104] - node _T_338 = or(_T_333, _T_337) @[el2_ifu_iccm_mem.scala 96:78] - node _T_339 = bits(_T_338, 0, 0) @[el2_ifu_iccm_mem.scala 96:137] - node _T_340 = bits(io.iccm_wr_data, 77, 39) @[el2_ifu_iccm_mem.scala 97:20] - node _T_341 = bits(io.iccm_wr_data, 38, 0) @[el2_ifu_iccm_mem.scala 97:44] - node redundant_data0_in = mux(_T_339, _T_340, _T_341) @[el2_ifu_iccm_mem.scala 96:31] - node _T_342 = bits(redundant_data0_en, 0, 0) @[el2_ifu_iccm_mem.scala 98:78] - reg _T_343 : UInt, clock with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 27:20] - when _T_342 : @[Reg.scala 28:19] - _T_343 <= redundant_data0_in @[Reg.scala 28:23] + redundant_address[0] <= _T_316 @[el2_ifu_iccm_mem.scala 89:24] + node _T_317 = bits(io.iccm_rw_addr, 14, 1) @[el2_ifu_iccm_mem.scala 90:52] + node _T_318 = bits(r1_addr_en, 0, 0) @[el2_ifu_iccm_mem.scala 90:85] + reg _T_319 : UInt, clock with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 27:20] + when _T_318 : @[Reg.scala 28:19] + _T_319 <= _T_317 @[Reg.scala 28:23] skip @[Reg.scala 28:19] - redundant_data[0] <= _T_343 @[el2_ifu_iccm_mem.scala 98:21] - node _T_344 = bits(io.iccm_rw_addr, 14, 2) @[el2_ifu_iccm_mem.scala 100:45] - node _T_345 = bits(redundant_address[1], 13, 1) @[el2_ifu_iccm_mem.scala 100:85] - node _T_346 = eq(_T_344, _T_345) @[el2_ifu_iccm_mem.scala 100:61] - node _T_347 = bits(io.iccm_rw_addr, 1, 1) @[el2_ifu_iccm_mem.scala 101:22] - node _T_348 = bits(redundant_address[1], 0, 0) @[el2_ifu_iccm_mem.scala 101:48] - node _T_349 = and(_T_347, _T_348) @[el2_ifu_iccm_mem.scala 101:26] - node _T_350 = bits(io.iccm_wr_size, 1, 0) @[el2_ifu_iccm_mem.scala 101:70] - node _T_351 = eq(_T_350, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 101:75] - node _T_352 = or(_T_349, _T_351) @[el2_ifu_iccm_mem.scala 101:52] - node _T_353 = and(_T_346, _T_352) @[el2_ifu_iccm_mem.scala 100:102] - node _T_354 = bits(redundant_valid, 1, 1) @[el2_ifu_iccm_mem.scala 101:101] - node _T_355 = and(_T_353, _T_354) @[el2_ifu_iccm_mem.scala 101:84] - node _T_356 = and(_T_355, io.iccm_wren) @[el2_ifu_iccm_mem.scala 101:105] - node _T_357 = eq(redundant_lru, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 102:6] - node _T_358 = and(_T_357, io.iccm_buf_correct_ecc) @[el2_ifu_iccm_mem.scala 102:21] - node redundant_data1_en = or(_T_356, _T_358) @[el2_ifu_iccm_mem.scala 101:121] - node _T_359 = bits(io.iccm_rw_addr, 1, 1) @[el2_ifu_iccm_mem.scala 103:49] - node _T_360 = bits(redundant_address[1], 0, 0) @[el2_ifu_iccm_mem.scala 103:73] - node _T_361 = and(_T_359, _T_360) @[el2_ifu_iccm_mem.scala 103:52] - node _T_362 = bits(redundant_address[1], 0, 0) @[el2_ifu_iccm_mem.scala 103:100] - node _T_363 = bits(io.iccm_wr_size, 1, 0) @[el2_ifu_iccm_mem.scala 103:122] - node _T_364 = eq(_T_363, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 103:127] - node _T_365 = and(_T_362, _T_364) @[el2_ifu_iccm_mem.scala 103:104] - node _T_366 = or(_T_361, _T_365) @[el2_ifu_iccm_mem.scala 103:78] - node _T_367 = bits(_T_366, 0, 0) @[el2_ifu_iccm_mem.scala 103:137] - node _T_368 = bits(io.iccm_wr_data, 77, 39) @[el2_ifu_iccm_mem.scala 104:20] - node _T_369 = bits(io.iccm_wr_data, 38, 0) @[el2_ifu_iccm_mem.scala 104:44] - node redundant_data1_in = mux(_T_367, _T_368, _T_369) @[el2_ifu_iccm_mem.scala 103:31] - node _T_370 = bits(redundant_data1_en, 0, 0) @[el2_ifu_iccm_mem.scala 105:78] - reg _T_371 : UInt, clock with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 27:20] - when _T_370 : @[Reg.scala 28:19] - _T_371 <= redundant_data1_in @[Reg.scala 28:23] + redundant_address[1] <= _T_319 @[el2_ifu_iccm_mem.scala 90:24] + node _T_320 = bits(r1_addr_en, 0, 0) @[el2_ifu_iccm_mem.scala 91:57] + reg _T_321 : UInt, clock with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 27:20] + when _T_320 : @[Reg.scala 28:19] + _T_321 <= UInt<1>("h01") @[Reg.scala 28:23] skip @[Reg.scala 28:19] - redundant_data[1] <= _T_371 @[el2_ifu_iccm_mem.scala 105:21] - node _T_372 = bits(io.iccm_rw_addr, 2, 0) @[el2_ifu_iccm_mem.scala 107:50] + reg _T_322 : UInt, clock with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 27:20] + when r0_addr_en : @[Reg.scala 28:19] + _T_322 <= UInt<1>("h01") @[Reg.scala 28:23] + skip @[Reg.scala 28:19] + node _T_323 = cat(_T_321, _T_322) @[Cat.scala 29:58] + redundant_valid <= _T_323 @[el2_ifu_iccm_mem.scala 91:19] + node _T_324 = bits(io.iccm_rw_addr, 14, 2) @[el2_ifu_iccm_mem.scala 93:45] + node _T_325 = bits(redundant_address[0], 13, 1) @[el2_ifu_iccm_mem.scala 93:85] + node _T_326 = eq(_T_324, _T_325) @[el2_ifu_iccm_mem.scala 93:61] + node _T_327 = bits(io.iccm_rw_addr, 1, 1) @[el2_ifu_iccm_mem.scala 94:22] + node _T_328 = bits(redundant_address[0], 0, 0) @[el2_ifu_iccm_mem.scala 94:48] + node _T_329 = and(_T_327, _T_328) @[el2_ifu_iccm_mem.scala 94:26] + node _T_330 = bits(io.iccm_wr_size, 1, 0) @[el2_ifu_iccm_mem.scala 94:70] + node _T_331 = eq(_T_330, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 94:75] + node _T_332 = or(_T_329, _T_331) @[el2_ifu_iccm_mem.scala 94:52] + node _T_333 = and(_T_326, _T_332) @[el2_ifu_iccm_mem.scala 93:102] + node _T_334 = bits(redundant_valid, 0, 0) @[el2_ifu_iccm_mem.scala 94:101] + node _T_335 = and(_T_333, _T_334) @[el2_ifu_iccm_mem.scala 94:84] + node _T_336 = and(_T_335, io.iccm_wren) @[el2_ifu_iccm_mem.scala 94:105] + node _T_337 = eq(redundant_lru, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 95:6] + node _T_338 = and(_T_337, io.iccm_buf_correct_ecc) @[el2_ifu_iccm_mem.scala 95:21] + node redundant_data0_en = or(_T_336, _T_338) @[el2_ifu_iccm_mem.scala 94:121] + node _T_339 = bits(io.iccm_rw_addr, 1, 1) @[el2_ifu_iccm_mem.scala 96:49] + node _T_340 = bits(redundant_address[0], 0, 0) @[el2_ifu_iccm_mem.scala 96:73] + node _T_341 = and(_T_339, _T_340) @[el2_ifu_iccm_mem.scala 96:52] + node _T_342 = bits(redundant_address[0], 0, 0) @[el2_ifu_iccm_mem.scala 96:100] + node _T_343 = bits(io.iccm_wr_size, 1, 0) @[el2_ifu_iccm_mem.scala 96:122] + node _T_344 = eq(_T_343, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 96:127] + node _T_345 = and(_T_342, _T_344) @[el2_ifu_iccm_mem.scala 96:104] + node _T_346 = or(_T_341, _T_345) @[el2_ifu_iccm_mem.scala 96:78] + node _T_347 = bits(_T_346, 0, 0) @[el2_ifu_iccm_mem.scala 96:137] + node _T_348 = bits(io.iccm_wr_data, 77, 39) @[el2_ifu_iccm_mem.scala 97:20] + node _T_349 = bits(io.iccm_wr_data, 38, 0) @[el2_ifu_iccm_mem.scala 97:44] + node redundant_data0_in = mux(_T_347, _T_348, _T_349) @[el2_ifu_iccm_mem.scala 96:31] + node _T_350 = bits(redundant_data0_en, 0, 0) @[el2_ifu_iccm_mem.scala 98:78] + reg _T_351 : UInt, clock with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 27:20] + when _T_350 : @[Reg.scala 28:19] + _T_351 <= redundant_data0_in @[Reg.scala 28:23] + skip @[Reg.scala 28:19] + redundant_data[0] <= _T_351 @[el2_ifu_iccm_mem.scala 98:21] + node _T_352 = bits(io.iccm_rw_addr, 14, 2) @[el2_ifu_iccm_mem.scala 100:45] + node _T_353 = bits(redundant_address[1], 13, 1) @[el2_ifu_iccm_mem.scala 100:85] + node _T_354 = eq(_T_352, _T_353) @[el2_ifu_iccm_mem.scala 100:61] + node _T_355 = bits(io.iccm_rw_addr, 1, 1) @[el2_ifu_iccm_mem.scala 101:22] + node _T_356 = bits(redundant_address[1], 0, 0) @[el2_ifu_iccm_mem.scala 101:48] + node _T_357 = and(_T_355, _T_356) @[el2_ifu_iccm_mem.scala 101:26] + node _T_358 = bits(io.iccm_wr_size, 1, 0) @[el2_ifu_iccm_mem.scala 101:70] + node _T_359 = eq(_T_358, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 101:75] + node _T_360 = or(_T_357, _T_359) @[el2_ifu_iccm_mem.scala 101:52] + node _T_361 = and(_T_354, _T_360) @[el2_ifu_iccm_mem.scala 100:102] + node _T_362 = bits(redundant_valid, 1, 1) @[el2_ifu_iccm_mem.scala 101:101] + node _T_363 = and(_T_361, _T_362) @[el2_ifu_iccm_mem.scala 101:84] + node _T_364 = and(_T_363, io.iccm_wren) @[el2_ifu_iccm_mem.scala 101:105] + node _T_365 = eq(redundant_lru, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 102:6] + node _T_366 = and(_T_365, io.iccm_buf_correct_ecc) @[el2_ifu_iccm_mem.scala 102:21] + node redundant_data1_en = or(_T_364, _T_366) @[el2_ifu_iccm_mem.scala 101:121] + node _T_367 = bits(io.iccm_rw_addr, 1, 1) @[el2_ifu_iccm_mem.scala 103:49] + node _T_368 = bits(redundant_address[1], 0, 0) @[el2_ifu_iccm_mem.scala 103:73] + node _T_369 = and(_T_367, _T_368) @[el2_ifu_iccm_mem.scala 103:52] + node _T_370 = bits(redundant_address[1], 0, 0) @[el2_ifu_iccm_mem.scala 103:100] + node _T_371 = bits(io.iccm_wr_size, 1, 0) @[el2_ifu_iccm_mem.scala 103:122] + node _T_372 = eq(_T_371, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 103:127] + node _T_373 = and(_T_370, _T_372) @[el2_ifu_iccm_mem.scala 103:104] + node _T_374 = or(_T_369, _T_373) @[el2_ifu_iccm_mem.scala 103:78] + node _T_375 = bits(_T_374, 0, 0) @[el2_ifu_iccm_mem.scala 103:137] + node _T_376 = bits(io.iccm_wr_data, 77, 39) @[el2_ifu_iccm_mem.scala 104:20] + node _T_377 = bits(io.iccm_wr_data, 38, 0) @[el2_ifu_iccm_mem.scala 104:44] + node redundant_data1_in = mux(_T_375, _T_376, _T_377) @[el2_ifu_iccm_mem.scala 103:31] + node _T_378 = bits(redundant_data1_en, 0, 0) @[el2_ifu_iccm_mem.scala 105:78] + reg _T_379 : UInt, clock with : (reset => (reset, UInt<1>("h00"))) @[Reg.scala 27:20] + when _T_378 : @[Reg.scala 28:19] + _T_379 <= redundant_data1_in @[Reg.scala 28:23] + skip @[Reg.scala 28:19] + redundant_data[1] <= _T_379 @[el2_ifu_iccm_mem.scala 105:21] + node _T_380 = bits(io.iccm_rw_addr, 2, 0) @[el2_ifu_iccm_mem.scala 107:50] reg iccm_rd_addr_lo_q : UInt, clock with : (reset => (reset, UInt<1>("h00"))) @[el2_ifu_iccm_mem.scala 107:34] - iccm_rd_addr_lo_q <= _T_372 @[el2_ifu_iccm_mem.scala 107:34] - node _T_373 = bits(addr_bank_inc, 2, 1) @[el2_ifu_iccm_mem.scala 108:48] + iccm_rd_addr_lo_q <= _T_380 @[el2_ifu_iccm_mem.scala 107:34] + node _T_381 = bits(addr_bank_inc, 2, 1) @[el2_ifu_iccm_mem.scala 108:48] reg iccm_rd_addr_hi_q : UInt, clock with : (reset => (reset, UInt<1>("h00"))) @[el2_ifu_iccm_mem.scala 108:34] - iccm_rd_addr_hi_q <= _T_373 @[el2_ifu_iccm_mem.scala 108:34] - node _T_374 = eq(iccm_rd_addr_hi_q, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 110:86] - node _T_375 = bits(iccm_bank_dout_fn_0, 31, 0) @[el2_ifu_iccm_mem.scala 110:115] - node _T_376 = eq(iccm_rd_addr_hi_q, UInt<1>("h01")) @[el2_ifu_iccm_mem.scala 110:86] - node _T_377 = bits(iccm_bank_dout_fn_1, 31, 0) @[el2_ifu_iccm_mem.scala 110:115] - node _T_378 = eq(iccm_rd_addr_hi_q, UInt<2>("h02")) @[el2_ifu_iccm_mem.scala 110:86] - node _T_379 = bits(iccm_bank_dout_fn_2, 31, 0) @[el2_ifu_iccm_mem.scala 110:115] - node _T_380 = eq(iccm_rd_addr_hi_q, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 110:86] - node _T_381 = bits(iccm_bank_dout_fn_3, 31, 0) @[el2_ifu_iccm_mem.scala 110:115] - node _T_382 = mux(_T_374, _T_375, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_383 = mux(_T_376, _T_377, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_384 = mux(_T_378, _T_379, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_385 = mux(_T_380, _T_381, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_386 = or(_T_382, _T_383) @[Mux.scala 27:72] - node _T_387 = or(_T_386, _T_384) @[Mux.scala 27:72] - node _T_388 = or(_T_387, _T_385) @[Mux.scala 27:72] - wire _T_389 : UInt<32> @[Mux.scala 27:72] - _T_389 <= _T_388 @[Mux.scala 27:72] - node _T_390 = bits(iccm_rd_addr_lo_q, 1, 0) @[el2_ifu_iccm_mem.scala 111:59] - node _T_391 = eq(_T_390, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 111:77] - node _T_392 = bits(iccm_bank_dout_fn_0, 31, 0) @[el2_ifu_iccm_mem.scala 111:106] - node _T_393 = bits(iccm_rd_addr_lo_q, 1, 0) @[el2_ifu_iccm_mem.scala 111:59] - node _T_394 = eq(_T_393, UInt<1>("h01")) @[el2_ifu_iccm_mem.scala 111:77] - node _T_395 = bits(iccm_bank_dout_fn_1, 31, 0) @[el2_ifu_iccm_mem.scala 111:106] - node _T_396 = bits(iccm_rd_addr_lo_q, 1, 0) @[el2_ifu_iccm_mem.scala 111:59] - node _T_397 = eq(_T_396, UInt<2>("h02")) @[el2_ifu_iccm_mem.scala 111:77] - node _T_398 = bits(iccm_bank_dout_fn_2, 31, 0) @[el2_ifu_iccm_mem.scala 111:106] - node _T_399 = bits(iccm_rd_addr_lo_q, 1, 0) @[el2_ifu_iccm_mem.scala 111:59] - node _T_400 = eq(_T_399, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 111:77] - node _T_401 = bits(iccm_bank_dout_fn_3, 31, 0) @[el2_ifu_iccm_mem.scala 111:106] - node _T_402 = mux(_T_391, _T_392, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_403 = mux(_T_394, _T_395, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_404 = mux(_T_397, _T_398, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_405 = mux(_T_400, _T_401, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_406 = or(_T_402, _T_403) @[Mux.scala 27:72] - node _T_407 = or(_T_406, _T_404) @[Mux.scala 27:72] - node _T_408 = or(_T_407, _T_405) @[Mux.scala 27:72] - wire _T_409 : UInt<32> @[Mux.scala 27:72] - _T_409 <= _T_408 @[Mux.scala 27:72] - node iccm_rd_data_pre = cat(_T_389, _T_409) @[Cat.scala 29:58] - node _T_410 = bits(iccm_rd_addr_lo_q, 0, 0) @[el2_ifu_iccm_mem.scala 112:43] - node _T_411 = bits(_T_410, 0, 0) @[el2_ifu_iccm_mem.scala 112:53] - node _T_412 = mux(UInt<1>("h00"), UInt<16>("h0ffff"), UInt<16>("h00")) @[Bitwise.scala 72:12] - node _T_413 = bits(iccm_rd_data_pre, 63, 16) @[el2_ifu_iccm_mem.scala 112:89] - node _T_414 = cat(_T_412, _T_413) @[Cat.scala 29:58] - node _T_415 = mux(_T_411, _T_414, iccm_rd_data_pre) @[el2_ifu_iccm_mem.scala 112:25] - io.iccm_rd_data <= _T_415 @[el2_ifu_iccm_mem.scala 112:19] - node _T_416 = eq(iccm_rd_addr_hi_q, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 113:85] - node _T_417 = eq(iccm_rd_addr_hi_q, UInt<1>("h01")) @[el2_ifu_iccm_mem.scala 113:85] - node _T_418 = eq(iccm_rd_addr_hi_q, UInt<2>("h02")) @[el2_ifu_iccm_mem.scala 113:85] - node _T_419 = eq(iccm_rd_addr_hi_q, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 113:85] - node _T_420 = mux(_T_416, iccm_bank_dout_fn_0, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_421 = mux(_T_417, iccm_bank_dout_fn_1, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_422 = mux(_T_418, iccm_bank_dout_fn_2, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_423 = mux(_T_419, iccm_bank_dout_fn_3, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_424 = or(_T_420, _T_421) @[Mux.scala 27:72] - node _T_425 = or(_T_424, _T_422) @[Mux.scala 27:72] - node _T_426 = or(_T_425, _T_423) @[Mux.scala 27:72] - wire _T_427 : UInt<39> @[Mux.scala 27:72] - _T_427 <= _T_426 @[Mux.scala 27:72] - node _T_428 = bits(iccm_rd_addr_lo_q, 1, 0) @[el2_ifu_iccm_mem.scala 114:61] - node _T_429 = eq(_T_428, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 114:79] - node _T_430 = bits(iccm_rd_addr_lo_q, 1, 0) @[el2_ifu_iccm_mem.scala 114:61] - node _T_431 = eq(_T_430, UInt<1>("h01")) @[el2_ifu_iccm_mem.scala 114:79] - node _T_432 = bits(iccm_rd_addr_lo_q, 1, 0) @[el2_ifu_iccm_mem.scala 114:61] - node _T_433 = eq(_T_432, UInt<2>("h02")) @[el2_ifu_iccm_mem.scala 114:79] - node _T_434 = bits(iccm_rd_addr_lo_q, 1, 0) @[el2_ifu_iccm_mem.scala 114:61] - node _T_435 = eq(_T_434, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 114:79] - node _T_436 = mux(_T_429, iccm_bank_dout_fn_0, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_437 = mux(_T_431, iccm_bank_dout_fn_1, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_438 = mux(_T_433, iccm_bank_dout_fn_2, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_439 = mux(_T_435, iccm_bank_dout_fn_3, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_440 = or(_T_436, _T_437) @[Mux.scala 27:72] - node _T_441 = or(_T_440, _T_438) @[Mux.scala 27:72] - node _T_442 = or(_T_441, _T_439) @[Mux.scala 27:72] - wire _T_443 : UInt<39> @[Mux.scala 27:72] - _T_443 <= _T_442 @[Mux.scala 27:72] - node _T_444 = cat(_T_427, _T_443) @[Cat.scala 29:58] - io.iccm_rd_data_ecc <= _T_444 @[el2_ifu_iccm_mem.scala 113:23] + iccm_rd_addr_hi_q <= _T_381 @[el2_ifu_iccm_mem.scala 108:34] + node _T_382 = eq(iccm_rd_addr_hi_q, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 110:86] + node _T_383 = bits(iccm_bank_dout_fn_0, 31, 0) @[el2_ifu_iccm_mem.scala 110:115] + node _T_384 = eq(iccm_rd_addr_hi_q, UInt<1>("h01")) @[el2_ifu_iccm_mem.scala 110:86] + node _T_385 = bits(iccm_bank_dout_fn_1, 31, 0) @[el2_ifu_iccm_mem.scala 110:115] + node _T_386 = eq(iccm_rd_addr_hi_q, UInt<2>("h02")) @[el2_ifu_iccm_mem.scala 110:86] + node _T_387 = bits(iccm_bank_dout_fn_2, 31, 0) @[el2_ifu_iccm_mem.scala 110:115] + node _T_388 = eq(iccm_rd_addr_hi_q, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 110:86] + node _T_389 = bits(iccm_bank_dout_fn_3, 31, 0) @[el2_ifu_iccm_mem.scala 110:115] + node _T_390 = mux(_T_382, _T_383, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_391 = mux(_T_384, _T_385, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_392 = mux(_T_386, _T_387, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_393 = mux(_T_388, _T_389, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_394 = or(_T_390, _T_391) @[Mux.scala 27:72] + node _T_395 = or(_T_394, _T_392) @[Mux.scala 27:72] + node _T_396 = or(_T_395, _T_393) @[Mux.scala 27:72] + wire _T_397 : UInt<32> @[Mux.scala 27:72] + _T_397 <= _T_396 @[Mux.scala 27:72] + node _T_398 = bits(iccm_rd_addr_lo_q, 1, 0) @[el2_ifu_iccm_mem.scala 111:59] + node _T_399 = eq(_T_398, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 111:77] + node _T_400 = bits(iccm_bank_dout_fn_0, 31, 0) @[el2_ifu_iccm_mem.scala 111:106] + node _T_401 = bits(iccm_rd_addr_lo_q, 1, 0) @[el2_ifu_iccm_mem.scala 111:59] + node _T_402 = eq(_T_401, UInt<1>("h01")) @[el2_ifu_iccm_mem.scala 111:77] + node _T_403 = bits(iccm_bank_dout_fn_1, 31, 0) @[el2_ifu_iccm_mem.scala 111:106] + node _T_404 = bits(iccm_rd_addr_lo_q, 1, 0) @[el2_ifu_iccm_mem.scala 111:59] + node _T_405 = eq(_T_404, UInt<2>("h02")) @[el2_ifu_iccm_mem.scala 111:77] + node _T_406 = bits(iccm_bank_dout_fn_2, 31, 0) @[el2_ifu_iccm_mem.scala 111:106] + node _T_407 = bits(iccm_rd_addr_lo_q, 1, 0) @[el2_ifu_iccm_mem.scala 111:59] + node _T_408 = eq(_T_407, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 111:77] + node _T_409 = bits(iccm_bank_dout_fn_3, 31, 0) @[el2_ifu_iccm_mem.scala 111:106] + node _T_410 = mux(_T_399, _T_400, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_411 = mux(_T_402, _T_403, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_412 = mux(_T_405, _T_406, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_413 = mux(_T_408, _T_409, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_414 = or(_T_410, _T_411) @[Mux.scala 27:72] + node _T_415 = or(_T_414, _T_412) @[Mux.scala 27:72] + node _T_416 = or(_T_415, _T_413) @[Mux.scala 27:72] + wire _T_417 : UInt<32> @[Mux.scala 27:72] + _T_417 <= _T_416 @[Mux.scala 27:72] + node iccm_rd_data_pre = cat(_T_397, _T_417) @[Cat.scala 29:58] + node _T_418 = bits(iccm_rd_addr_lo_q, 0, 0) @[el2_ifu_iccm_mem.scala 112:43] + node _T_419 = bits(_T_418, 0, 0) @[el2_ifu_iccm_mem.scala 112:53] + node _T_420 = mux(UInt<1>("h00"), UInt<16>("h0ffff"), UInt<16>("h00")) @[Bitwise.scala 72:12] + node _T_421 = bits(iccm_rd_data_pre, 63, 16) @[el2_ifu_iccm_mem.scala 112:89] + node _T_422 = cat(_T_420, _T_421) @[Cat.scala 29:58] + node _T_423 = mux(_T_419, _T_422, iccm_rd_data_pre) @[el2_ifu_iccm_mem.scala 112:25] + io.iccm_rd_data <= _T_423 @[el2_ifu_iccm_mem.scala 112:19] + node _T_424 = eq(iccm_rd_addr_hi_q, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 113:85] + node _T_425 = eq(iccm_rd_addr_hi_q, UInt<1>("h01")) @[el2_ifu_iccm_mem.scala 113:85] + node _T_426 = eq(iccm_rd_addr_hi_q, UInt<2>("h02")) @[el2_ifu_iccm_mem.scala 113:85] + node _T_427 = eq(iccm_rd_addr_hi_q, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 113:85] + node _T_428 = mux(_T_424, iccm_bank_dout_fn_0, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_429 = mux(_T_425, iccm_bank_dout_fn_1, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_430 = mux(_T_426, iccm_bank_dout_fn_2, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_431 = mux(_T_427, iccm_bank_dout_fn_3, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_432 = or(_T_428, _T_429) @[Mux.scala 27:72] + node _T_433 = or(_T_432, _T_430) @[Mux.scala 27:72] + node _T_434 = or(_T_433, _T_431) @[Mux.scala 27:72] + wire _T_435 : UInt<39> @[Mux.scala 27:72] + _T_435 <= _T_434 @[Mux.scala 27:72] + node _T_436 = bits(iccm_rd_addr_lo_q, 1, 0) @[el2_ifu_iccm_mem.scala 114:61] + node _T_437 = eq(_T_436, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 114:79] + node _T_438 = bits(iccm_rd_addr_lo_q, 1, 0) @[el2_ifu_iccm_mem.scala 114:61] + node _T_439 = eq(_T_438, UInt<1>("h01")) @[el2_ifu_iccm_mem.scala 114:79] + node _T_440 = bits(iccm_rd_addr_lo_q, 1, 0) @[el2_ifu_iccm_mem.scala 114:61] + node _T_441 = eq(_T_440, UInt<2>("h02")) @[el2_ifu_iccm_mem.scala 114:79] + node _T_442 = bits(iccm_rd_addr_lo_q, 1, 0) @[el2_ifu_iccm_mem.scala 114:61] + node _T_443 = eq(_T_442, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 114:79] + node _T_444 = mux(_T_437, iccm_bank_dout_fn_0, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_445 = mux(_T_439, iccm_bank_dout_fn_1, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_446 = mux(_T_441, iccm_bank_dout_fn_2, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_447 = mux(_T_443, iccm_bank_dout_fn_3, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_448 = or(_T_444, _T_445) @[Mux.scala 27:72] + node _T_449 = or(_T_448, _T_446) @[Mux.scala 27:72] + node _T_450 = or(_T_449, _T_447) @[Mux.scala 27:72] + wire _T_451 : UInt<39> @[Mux.scala 27:72] + _T_451 <= _T_450 @[Mux.scala 27:72] + node _T_452 = cat(_T_435, _T_451) @[Cat.scala 29:58] + io.iccm_rd_data_ecc <= _T_452 @[el2_ifu_iccm_mem.scala 113:23] diff --git a/el2_ifu_iccm_mem.v b/el2_ifu_iccm_mem.v index 6a267fcb..2913a3a3 100644 --- a/el2_ifu_iccm_mem.v +++ b/el2_ifu_iccm_mem.v @@ -19,19 +19,19 @@ module el2_ifu_iccm_mem( ); `ifdef RANDOMIZE_MEM_INIT reg [63:0] _RAND_0; - reg [63:0] _RAND_2; - reg [63:0] _RAND_4; + reg [63:0] _RAND_3; reg [63:0] _RAND_6; + reg [63:0] _RAND_9; `endif // RANDOMIZE_MEM_INIT `ifdef RANDOMIZE_REG_INIT reg [31:0] _RAND_1; - reg [31:0] _RAND_3; + reg [31:0] _RAND_2; + reg [31:0] _RAND_4; reg [31:0] _RAND_5; reg [31:0] _RAND_7; - reg [63:0] _RAND_8; - reg [63:0] _RAND_9; - reg [63:0] _RAND_10; - reg [63:0] _RAND_11; + reg [31:0] _RAND_8; + reg [31:0] _RAND_10; + reg [31:0] _RAND_11; reg [31:0] _RAND_12; reg [31:0] _RAND_13; reg [31:0] _RAND_14; @@ -45,41 +45,45 @@ module el2_ifu_iccm_mem( reg [31:0] _RAND_22; `endif // RANDOMIZE_REG_INIT reg [38:0] _T_85 [0:4095]; // @[el2_ifu_iccm_mem.scala 43:59] - wire [38:0] _T_85__T_105_data; // @[el2_ifu_iccm_mem.scala 43:59] - wire [11:0] _T_85__T_105_addr; // @[el2_ifu_iccm_mem.scala 43:59] + wire [38:0] _T_85__T_108_data; // @[el2_ifu_iccm_mem.scala 43:59] + wire [11:0] _T_85__T_108_addr; // @[el2_ifu_iccm_mem.scala 43:59] wire [38:0] _T_85__T_101_data; // @[el2_ifu_iccm_mem.scala 43:59] wire [11:0] _T_85__T_101_addr; // @[el2_ifu_iccm_mem.scala 43:59] wire _T_85__T_101_mask; // @[el2_ifu_iccm_mem.scala 43:59] wire _T_85__T_101_en; // @[el2_ifu_iccm_mem.scala 43:59] - reg [11:0] _T_85__T_105_addr_pipe_0; + reg _T_85__T_108_en_pipe_0; + reg [11:0] _T_85__T_108_addr_pipe_0; reg [38:0] _T_86 [0:4095]; // @[el2_ifu_iccm_mem.scala 43:59] - wire [38:0] _T_86__T_107_data; // @[el2_ifu_iccm_mem.scala 43:59] - wire [11:0] _T_86__T_107_addr; // @[el2_ifu_iccm_mem.scala 43:59] + wire [38:0] _T_86__T_112_data; // @[el2_ifu_iccm_mem.scala 43:59] + wire [11:0] _T_86__T_112_addr; // @[el2_ifu_iccm_mem.scala 43:59] wire [38:0] _T_86__T_102_data; // @[el2_ifu_iccm_mem.scala 43:59] wire [11:0] _T_86__T_102_addr; // @[el2_ifu_iccm_mem.scala 43:59] wire _T_86__T_102_mask; // @[el2_ifu_iccm_mem.scala 43:59] wire _T_86__T_102_en; // @[el2_ifu_iccm_mem.scala 43:59] - reg [11:0] _T_86__T_107_addr_pipe_0; + reg _T_86__T_112_en_pipe_0; + reg [11:0] _T_86__T_112_addr_pipe_0; reg [38:0] _T_87 [0:4095]; // @[el2_ifu_iccm_mem.scala 43:59] - wire [38:0] _T_87__T_109_data; // @[el2_ifu_iccm_mem.scala 43:59] - wire [11:0] _T_87__T_109_addr; // @[el2_ifu_iccm_mem.scala 43:59] + wire [38:0] _T_87__T_116_data; // @[el2_ifu_iccm_mem.scala 43:59] + wire [11:0] _T_87__T_116_addr; // @[el2_ifu_iccm_mem.scala 43:59] wire [38:0] _T_87__T_103_data; // @[el2_ifu_iccm_mem.scala 43:59] wire [11:0] _T_87__T_103_addr; // @[el2_ifu_iccm_mem.scala 43:59] wire _T_87__T_103_mask; // @[el2_ifu_iccm_mem.scala 43:59] wire _T_87__T_103_en; // @[el2_ifu_iccm_mem.scala 43:59] - reg [11:0] _T_87__T_109_addr_pipe_0; + reg _T_87__T_116_en_pipe_0; + reg [11:0] _T_87__T_116_addr_pipe_0; reg [38:0] _T_88 [0:4095]; // @[el2_ifu_iccm_mem.scala 43:59] - wire [38:0] _T_88__T_111_data; // @[el2_ifu_iccm_mem.scala 43:59] - wire [11:0] _T_88__T_111_addr; // @[el2_ifu_iccm_mem.scala 43:59] + wire [38:0] _T_88__T_120_data; // @[el2_ifu_iccm_mem.scala 43:59] + wire [11:0] _T_88__T_120_addr; // @[el2_ifu_iccm_mem.scala 43:59] wire [38:0] _T_88__T_104_data; // @[el2_ifu_iccm_mem.scala 43:59] wire [11:0] _T_88__T_104_addr; // @[el2_ifu_iccm_mem.scala 43:59] wire _T_88__T_104_mask; // @[el2_ifu_iccm_mem.scala 43:59] wire _T_88__T_104_en; // @[el2_ifu_iccm_mem.scala 43:59] - reg [11:0] _T_88__T_111_addr_pipe_0; + reg _T_88__T_120_en_pipe_0; + reg [11:0] _T_88__T_120_addr_pipe_0; wire _T_1 = io_iccm_wr_size[1:0] == 2'h3; // @[el2_ifu_iccm_mem.scala 24:43] wire [1:0] addr_inc = _T_1 ? 2'h2 : 2'h1; // @[el2_ifu_iccm_mem.scala 24:21] - wire [14:0] _GEN_27 = {{13'd0}, addr_inc}; // @[el2_ifu_iccm_mem.scala 25:54] - wire [14:0] addr_bank_inc = io_iccm_rw_addr + _GEN_27; // @[el2_ifu_iccm_mem.scala 25:54] + wire [14:0] _GEN_43 = {{13'd0}, addr_inc}; // @[el2_ifu_iccm_mem.scala 25:54] + wire [14:0] addr_bank_inc = io_iccm_rw_addr + _GEN_43; // @[el2_ifu_iccm_mem.scala 25:54] wire [38:0] iccm_bank_wr_data_0 = io_iccm_wr_data[38:0]; // @[el2_ifu_iccm_mem.scala 29:50] wire [38:0] iccm_bank_wr_data_1 = io_iccm_wr_data[77:39]; // @[el2_ifu_iccm_mem.scala 30:54] wire _T_10 = io_iccm_rw_addr[2:1] == 2'h0; // @[el2_ifu_iccm_mem.scala 33:100] @@ -118,185 +122,189 @@ module el2_ifu_iccm_mem( wire [11:0] _T_67 = _T_17 ? addr_bank_inc[14:3] : io_iccm_rw_addr[14:3]; // @[el2_ifu_iccm_mem.scala 40:8] wire [11:0] _T_75 = _T_22 ? addr_bank_inc[14:3] : io_iccm_rw_addr[14:3]; // @[el2_ifu_iccm_mem.scala 40:8] wire [11:0] _T_83 = _T_27 ? addr_bank_inc[14:3] : io_iccm_rw_addr[14:3]; // @[el2_ifu_iccm_mem.scala 40:8] - reg [38:0] iccm_bank_dout_0; // @[el2_ifu_iccm_mem.scala 56:63] - reg [38:0] iccm_bank_dout_1; // @[el2_ifu_iccm_mem.scala 56:63] - reg [38:0] iccm_bank_dout_2; // @[el2_ifu_iccm_mem.scala 56:63] - reg [38:0] iccm_bank_dout_3; // @[el2_ifu_iccm_mem.scala 56:63] - reg _T_313; // @[Reg.scala 27:20] - reg _T_314; // @[Reg.scala 27:20] - wire [1:0] redundant_valid = {_T_313,_T_314}; // @[Cat.scala 29:58] + wire _T_93 = ~wren_bank_0; // @[el2_ifu_iccm_mem.scala 48:72] + wire _T_95 = ~wren_bank_1; // @[el2_ifu_iccm_mem.scala 48:72] + wire _T_97 = ~wren_bank_2; // @[el2_ifu_iccm_mem.scala 48:72] + wire _T_99 = ~wren_bank_3; // @[el2_ifu_iccm_mem.scala 48:72] + reg _T_321; // @[Reg.scala 27:20] + reg _T_322; // @[Reg.scala 27:20] + wire [1:0] redundant_valid = {_T_321,_T_322}; // @[Cat.scala 29:58] reg [13:0] redundant_address_1; // @[Reg.scala 27:20] - wire _T_116 = io_iccm_rw_addr[14:1] == redundant_address_1; // @[el2_ifu_iccm_mem.scala 70:105] - wire _T_119 = _T_116 & _T_10; // @[el2_ifu_iccm_mem.scala 70:145] - wire _T_120 = redundant_valid[1] & _T_119; // @[el2_ifu_iccm_mem.scala 70:71] - wire _T_123 = addr_bank_inc[14:1] == redundant_address_1; // @[el2_ifu_iccm_mem.scala 71:37] - wire _T_126 = _T_123 & _T_12; // @[el2_ifu_iccm_mem.scala 71:77] - wire _T_127 = _T_120 | _T_126; // @[el2_ifu_iccm_mem.scala 70:179] - wire _T_134 = _T_116 & _T_15; // @[el2_ifu_iccm_mem.scala 70:145] - wire _T_135 = redundant_valid[1] & _T_134; // @[el2_ifu_iccm_mem.scala 70:71] - wire _T_141 = _T_123 & _T_17; // @[el2_ifu_iccm_mem.scala 71:77] - wire _T_142 = _T_135 | _T_141; // @[el2_ifu_iccm_mem.scala 70:179] - wire _T_149 = _T_116 & _T_20; // @[el2_ifu_iccm_mem.scala 70:145] - wire _T_150 = redundant_valid[1] & _T_149; // @[el2_ifu_iccm_mem.scala 70:71] - wire _T_156 = _T_123 & _T_22; // @[el2_ifu_iccm_mem.scala 71:77] - wire _T_157 = _T_150 | _T_156; // @[el2_ifu_iccm_mem.scala 70:179] - wire _T_164 = _T_116 & _T_25; // @[el2_ifu_iccm_mem.scala 70:145] - wire _T_165 = redundant_valid[1] & _T_164; // @[el2_ifu_iccm_mem.scala 70:71] - wire _T_171 = _T_123 & _T_27; // @[el2_ifu_iccm_mem.scala 71:77] - wire _T_172 = _T_165 | _T_171; // @[el2_ifu_iccm_mem.scala 70:179] - wire [3:0] sel_red1 = {_T_172,_T_157,_T_142,_T_127}; // @[Cat.scala 29:58] + wire _T_124 = io_iccm_rw_addr[14:1] == redundant_address_1; // @[el2_ifu_iccm_mem.scala 70:105] + wire _T_127 = _T_124 & _T_10; // @[el2_ifu_iccm_mem.scala 70:145] + wire _T_128 = redundant_valid[1] & _T_127; // @[el2_ifu_iccm_mem.scala 70:71] + wire _T_131 = addr_bank_inc[14:1] == redundant_address_1; // @[el2_ifu_iccm_mem.scala 71:37] + wire _T_134 = _T_131 & _T_12; // @[el2_ifu_iccm_mem.scala 71:77] + wire _T_135 = _T_128 | _T_134; // @[el2_ifu_iccm_mem.scala 70:179] + wire _T_142 = _T_124 & _T_15; // @[el2_ifu_iccm_mem.scala 70:145] + wire _T_143 = redundant_valid[1] & _T_142; // @[el2_ifu_iccm_mem.scala 70:71] + wire _T_149 = _T_131 & _T_17; // @[el2_ifu_iccm_mem.scala 71:77] + wire _T_150 = _T_143 | _T_149; // @[el2_ifu_iccm_mem.scala 70:179] + wire _T_157 = _T_124 & _T_20; // @[el2_ifu_iccm_mem.scala 70:145] + wire _T_158 = redundant_valid[1] & _T_157; // @[el2_ifu_iccm_mem.scala 70:71] + wire _T_164 = _T_131 & _T_22; // @[el2_ifu_iccm_mem.scala 71:77] + wire _T_165 = _T_158 | _T_164; // @[el2_ifu_iccm_mem.scala 70:179] + wire _T_172 = _T_124 & _T_25; // @[el2_ifu_iccm_mem.scala 70:145] + wire _T_173 = redundant_valid[1] & _T_172; // @[el2_ifu_iccm_mem.scala 70:71] + wire _T_179 = _T_131 & _T_27; // @[el2_ifu_iccm_mem.scala 71:77] + wire _T_180 = _T_173 | _T_179; // @[el2_ifu_iccm_mem.scala 70:179] + wire [3:0] sel_red1 = {_T_180,_T_165,_T_150,_T_135}; // @[Cat.scala 29:58] reg [13:0] redundant_address_0; // @[Reg.scala 27:20] - wire _T_178 = io_iccm_rw_addr[14:1] == redundant_address_0; // @[el2_ifu_iccm_mem.scala 72:105] - wire _T_181 = _T_178 & _T_10; // @[el2_ifu_iccm_mem.scala 72:145] - wire _T_182 = redundant_valid[0] & _T_181; // @[el2_ifu_iccm_mem.scala 72:71] - wire _T_185 = addr_bank_inc[14:1] == redundant_address_0; // @[el2_ifu_iccm_mem.scala 73:37] - wire _T_188 = _T_185 & _T_12; // @[el2_ifu_iccm_mem.scala 73:77] - wire _T_189 = _T_182 | _T_188; // @[el2_ifu_iccm_mem.scala 72:179] - wire _T_196 = _T_178 & _T_15; // @[el2_ifu_iccm_mem.scala 72:145] - wire _T_197 = redundant_valid[0] & _T_196; // @[el2_ifu_iccm_mem.scala 72:71] - wire _T_203 = _T_185 & _T_17; // @[el2_ifu_iccm_mem.scala 73:77] - wire _T_204 = _T_197 | _T_203; // @[el2_ifu_iccm_mem.scala 72:179] - wire _T_211 = _T_178 & _T_20; // @[el2_ifu_iccm_mem.scala 72:145] - wire _T_212 = redundant_valid[0] & _T_211; // @[el2_ifu_iccm_mem.scala 72:71] - wire _T_218 = _T_185 & _T_22; // @[el2_ifu_iccm_mem.scala 73:77] - wire _T_219 = _T_212 | _T_218; // @[el2_ifu_iccm_mem.scala 72:179] - wire _T_226 = _T_178 & _T_25; // @[el2_ifu_iccm_mem.scala 72:145] - wire _T_227 = redundant_valid[0] & _T_226; // @[el2_ifu_iccm_mem.scala 72:71] - wire _T_233 = _T_185 & _T_27; // @[el2_ifu_iccm_mem.scala 73:77] - wire _T_234 = _T_227 | _T_233; // @[el2_ifu_iccm_mem.scala 72:179] - wire [3:0] sel_red0 = {_T_234,_T_219,_T_204,_T_189}; // @[Cat.scala 29:58] + wire _T_186 = io_iccm_rw_addr[14:1] == redundant_address_0; // @[el2_ifu_iccm_mem.scala 72:105] + wire _T_189 = _T_186 & _T_10; // @[el2_ifu_iccm_mem.scala 72:145] + wire _T_190 = redundant_valid[0] & _T_189; // @[el2_ifu_iccm_mem.scala 72:71] + wire _T_193 = addr_bank_inc[14:1] == redundant_address_0; // @[el2_ifu_iccm_mem.scala 73:37] + wire _T_196 = _T_193 & _T_12; // @[el2_ifu_iccm_mem.scala 73:77] + wire _T_197 = _T_190 | _T_196; // @[el2_ifu_iccm_mem.scala 72:179] + wire _T_204 = _T_186 & _T_15; // @[el2_ifu_iccm_mem.scala 72:145] + wire _T_205 = redundant_valid[0] & _T_204; // @[el2_ifu_iccm_mem.scala 72:71] + wire _T_211 = _T_193 & _T_17; // @[el2_ifu_iccm_mem.scala 73:77] + wire _T_212 = _T_205 | _T_211; // @[el2_ifu_iccm_mem.scala 72:179] + wire _T_219 = _T_186 & _T_20; // @[el2_ifu_iccm_mem.scala 72:145] + wire _T_220 = redundant_valid[0] & _T_219; // @[el2_ifu_iccm_mem.scala 72:71] + wire _T_226 = _T_193 & _T_22; // @[el2_ifu_iccm_mem.scala 73:77] + wire _T_227 = _T_220 | _T_226; // @[el2_ifu_iccm_mem.scala 72:179] + wire _T_234 = _T_186 & _T_25; // @[el2_ifu_iccm_mem.scala 72:145] + wire _T_235 = redundant_valid[0] & _T_234; // @[el2_ifu_iccm_mem.scala 72:71] + wire _T_241 = _T_193 & _T_27; // @[el2_ifu_iccm_mem.scala 73:77] + wire _T_242 = _T_235 | _T_241; // @[el2_ifu_iccm_mem.scala 72:179] + wire [3:0] sel_red0 = {_T_242,_T_227,_T_212,_T_197}; // @[Cat.scala 29:58] reg [3:0] sel_red0_q; // @[el2_ifu_iccm_mem.scala 75:27] reg [3:0] sel_red1_q; // @[el2_ifu_iccm_mem.scala 76:27] - wire _T_242 = ~sel_red0_q[0]; // @[el2_ifu_iccm_mem.scala 82:36] - wire _T_244 = ~sel_red1_q[0]; // @[el2_ifu_iccm_mem.scala 82:53] - wire _T_245 = _T_242 & _T_244; // @[el2_ifu_iccm_mem.scala 82:51] + wire _T_250 = ~sel_red0_q[0]; // @[el2_ifu_iccm_mem.scala 82:36] + wire _T_252 = ~sel_red1_q[0]; // @[el2_ifu_iccm_mem.scala 82:53] + wire _T_253 = _T_250 & _T_252; // @[el2_ifu_iccm_mem.scala 82:51] reg [38:0] redundant_data_1; // @[Reg.scala 27:20] - wire [38:0] _T_247 = sel_red1_q[0] ? redundant_data_1 : 39'h0; // @[Mux.scala 27:72] + wire [38:0] _T_255 = sel_red1_q[0] ? redundant_data_1 : 39'h0; // @[Mux.scala 27:72] reg [38:0] redundant_data_0; // @[Reg.scala 27:20] - wire [38:0] _T_248 = sel_red0_q[0] ? redundant_data_0 : 39'h0; // @[Mux.scala 27:72] - wire [38:0] _T_249 = _T_245 ? iccm_bank_dout_0 : 39'h0; // @[Mux.scala 27:72] - wire [38:0] _T_250 = _T_247 | _T_248; // @[Mux.scala 27:72] - wire [38:0] iccm_bank_dout_fn_0 = _T_250 | _T_249; // @[Mux.scala 27:72] - wire _T_257 = ~sel_red0_q[1]; // @[el2_ifu_iccm_mem.scala 82:36] - wire _T_259 = ~sel_red1_q[1]; // @[el2_ifu_iccm_mem.scala 82:53] - wire _T_260 = _T_257 & _T_259; // @[el2_ifu_iccm_mem.scala 82:51] - wire [38:0] _T_262 = sel_red1_q[1] ? redundant_data_1 : 39'h0; // @[Mux.scala 27:72] - wire [38:0] _T_263 = sel_red0_q[1] ? redundant_data_0 : 39'h0; // @[Mux.scala 27:72] - wire [38:0] _T_264 = _T_260 ? iccm_bank_dout_1 : 39'h0; // @[Mux.scala 27:72] - wire [38:0] _T_265 = _T_262 | _T_263; // @[Mux.scala 27:72] - wire [38:0] iccm_bank_dout_fn_1 = _T_265 | _T_264; // @[Mux.scala 27:72] - wire _T_272 = ~sel_red0_q[2]; // @[el2_ifu_iccm_mem.scala 82:36] - wire _T_274 = ~sel_red1_q[2]; // @[el2_ifu_iccm_mem.scala 82:53] - wire _T_275 = _T_272 & _T_274; // @[el2_ifu_iccm_mem.scala 82:51] - wire [38:0] _T_277 = sel_red1_q[2] ? redundant_data_1 : 39'h0; // @[Mux.scala 27:72] - wire [38:0] _T_278 = sel_red0_q[2] ? redundant_data_0 : 39'h0; // @[Mux.scala 27:72] - wire [38:0] _T_279 = _T_275 ? iccm_bank_dout_2 : 39'h0; // @[Mux.scala 27:72] - wire [38:0] _T_280 = _T_277 | _T_278; // @[Mux.scala 27:72] - wire [38:0] iccm_bank_dout_fn_2 = _T_280 | _T_279; // @[Mux.scala 27:72] - wire _T_287 = ~sel_red0_q[3]; // @[el2_ifu_iccm_mem.scala 82:36] - wire _T_289 = ~sel_red1_q[3]; // @[el2_ifu_iccm_mem.scala 82:53] - wire _T_290 = _T_287 & _T_289; // @[el2_ifu_iccm_mem.scala 82:51] - wire [38:0] _T_292 = sel_red1_q[3] ? redundant_data_1 : 39'h0; // @[Mux.scala 27:72] - wire [38:0] _T_293 = sel_red0_q[3] ? redundant_data_0 : 39'h0; // @[Mux.scala 27:72] - wire [38:0] _T_294 = _T_290 ? iccm_bank_dout_3 : 39'h0; // @[Mux.scala 27:72] - wire [38:0] _T_295 = _T_292 | _T_293; // @[Mux.scala 27:72] - wire [38:0] iccm_bank_dout_fn_3 = _T_295 | _T_294; // @[Mux.scala 27:72] + wire [38:0] _T_256 = sel_red0_q[0] ? redundant_data_0 : 39'h0; // @[Mux.scala 27:72] + wire [38:0] iccm_bank_dout_0 = _T_85__T_108_data; // @[el2_ifu_iccm_mem.scala 50:28 el2_ifu_iccm_mem.scala 56:53] + wire [38:0] _T_257 = _T_253 ? iccm_bank_dout_0 : 39'h0; // @[Mux.scala 27:72] + wire [38:0] _T_258 = _T_255 | _T_256; // @[Mux.scala 27:72] + wire [38:0] iccm_bank_dout_fn_0 = _T_258 | _T_257; // @[Mux.scala 27:72] + wire _T_265 = ~sel_red0_q[1]; // @[el2_ifu_iccm_mem.scala 82:36] + wire _T_267 = ~sel_red1_q[1]; // @[el2_ifu_iccm_mem.scala 82:53] + wire _T_268 = _T_265 & _T_267; // @[el2_ifu_iccm_mem.scala 82:51] + wire [38:0] _T_270 = sel_red1_q[1] ? redundant_data_1 : 39'h0; // @[Mux.scala 27:72] + wire [38:0] _T_271 = sel_red0_q[1] ? redundant_data_0 : 39'h0; // @[Mux.scala 27:72] + wire [38:0] iccm_bank_dout_1 = _T_86__T_112_data; // @[el2_ifu_iccm_mem.scala 50:28 el2_ifu_iccm_mem.scala 56:53] + wire [38:0] _T_272 = _T_268 ? iccm_bank_dout_1 : 39'h0; // @[Mux.scala 27:72] + wire [38:0] _T_273 = _T_270 | _T_271; // @[Mux.scala 27:72] + wire [38:0] iccm_bank_dout_fn_1 = _T_273 | _T_272; // @[Mux.scala 27:72] + wire _T_280 = ~sel_red0_q[2]; // @[el2_ifu_iccm_mem.scala 82:36] + wire _T_282 = ~sel_red1_q[2]; // @[el2_ifu_iccm_mem.scala 82:53] + wire _T_283 = _T_280 & _T_282; // @[el2_ifu_iccm_mem.scala 82:51] + wire [38:0] _T_285 = sel_red1_q[2] ? redundant_data_1 : 39'h0; // @[Mux.scala 27:72] + wire [38:0] _T_286 = sel_red0_q[2] ? redundant_data_0 : 39'h0; // @[Mux.scala 27:72] + wire [38:0] iccm_bank_dout_2 = _T_87__T_116_data; // @[el2_ifu_iccm_mem.scala 50:28 el2_ifu_iccm_mem.scala 56:53] + wire [38:0] _T_287 = _T_283 ? iccm_bank_dout_2 : 39'h0; // @[Mux.scala 27:72] + wire [38:0] _T_288 = _T_285 | _T_286; // @[Mux.scala 27:72] + wire [38:0] iccm_bank_dout_fn_2 = _T_288 | _T_287; // @[Mux.scala 27:72] + wire _T_295 = ~sel_red0_q[3]; // @[el2_ifu_iccm_mem.scala 82:36] + wire _T_297 = ~sel_red1_q[3]; // @[el2_ifu_iccm_mem.scala 82:53] + wire _T_298 = _T_295 & _T_297; // @[el2_ifu_iccm_mem.scala 82:51] + wire [38:0] _T_300 = sel_red1_q[3] ? redundant_data_1 : 39'h0; // @[Mux.scala 27:72] + wire [38:0] _T_301 = sel_red0_q[3] ? redundant_data_0 : 39'h0; // @[Mux.scala 27:72] + wire [38:0] iccm_bank_dout_3 = _T_88__T_120_data; // @[el2_ifu_iccm_mem.scala 50:28 el2_ifu_iccm_mem.scala 56:53] + wire [38:0] _T_302 = _T_298 ? iccm_bank_dout_3 : 39'h0; // @[Mux.scala 27:72] + wire [38:0] _T_303 = _T_300 | _T_301; // @[Mux.scala 27:72] + wire [38:0] iccm_bank_dout_fn_3 = _T_303 | _T_302; // @[Mux.scala 27:72] reg redundant_lru; // @[Reg.scala 27:20] - wire _T_297 = ~redundant_lru; // @[el2_ifu_iccm_mem.scala 84:20] - wire r0_addr_en = _T_297 & io_iccm_buf_correct_ecc; // @[el2_ifu_iccm_mem.scala 84:35] + wire _T_305 = ~redundant_lru; // @[el2_ifu_iccm_mem.scala 84:20] + wire r0_addr_en = _T_305 & io_iccm_buf_correct_ecc; // @[el2_ifu_iccm_mem.scala 84:35] wire r1_addr_en = redundant_lru & io_iccm_buf_correct_ecc; // @[el2_ifu_iccm_mem.scala 85:35] - wire _T_298 = |sel_red0; // @[el2_ifu_iccm_mem.scala 86:63] - wire _T_299 = |sel_red1; // @[el2_ifu_iccm_mem.scala 86:78] - wire _T_300 = _T_298 | _T_299; // @[el2_ifu_iccm_mem.scala 86:67] - wire _T_301 = _T_300 & io_iccm_rden; // @[el2_ifu_iccm_mem.scala 86:83] - wire _T_302 = _T_301 & io_iccm_correction_state; // @[el2_ifu_iccm_mem.scala 86:98] - wire redundant_lru_en = io_iccm_buf_correct_ecc | _T_302; // @[el2_ifu_iccm_mem.scala 86:50] - wire _GEN_23 = r1_addr_en | _T_313; // @[Reg.scala 28:19] - wire _GEN_24 = r0_addr_en | _T_314; // @[Reg.scala 28:19] - wire _T_318 = io_iccm_rw_addr[14:2] == redundant_address_0[13:1]; // @[el2_ifu_iccm_mem.scala 93:61] - wire _T_321 = io_iccm_rw_addr[1] & redundant_address_0[0]; // @[el2_ifu_iccm_mem.scala 94:26] - wire _T_324 = _T_321 | _T_1; // @[el2_ifu_iccm_mem.scala 94:52] - wire _T_325 = _T_318 & _T_324; // @[el2_ifu_iccm_mem.scala 93:102] - wire _T_327 = _T_325 & redundant_valid[0]; // @[el2_ifu_iccm_mem.scala 94:84] - wire _T_328 = _T_327 & io_iccm_wren; // @[el2_ifu_iccm_mem.scala 94:105] - wire redundant_data0_en = _T_328 | r0_addr_en; // @[el2_ifu_iccm_mem.scala 94:121] - wire _T_337 = redundant_address_0[0] & _T_1; // @[el2_ifu_iccm_mem.scala 96:104] - wire _T_338 = _T_321 | _T_337; // @[el2_ifu_iccm_mem.scala 96:78] - wire _T_346 = io_iccm_rw_addr[14:2] == redundant_address_1[13:1]; // @[el2_ifu_iccm_mem.scala 100:61] - wire _T_349 = io_iccm_rw_addr[1] & redundant_address_1[0]; // @[el2_ifu_iccm_mem.scala 101:26] - wire _T_352 = _T_349 | _T_1; // @[el2_ifu_iccm_mem.scala 101:52] - wire _T_353 = _T_346 & _T_352; // @[el2_ifu_iccm_mem.scala 100:102] - wire _T_355 = _T_353 & redundant_valid[1]; // @[el2_ifu_iccm_mem.scala 101:84] - wire _T_356 = _T_355 & io_iccm_wren; // @[el2_ifu_iccm_mem.scala 101:105] - wire redundant_data1_en = _T_356 | r0_addr_en; // @[el2_ifu_iccm_mem.scala 101:121] - wire _T_365 = redundant_address_1[0] & _T_1; // @[el2_ifu_iccm_mem.scala 103:104] - wire _T_366 = _T_349 | _T_365; // @[el2_ifu_iccm_mem.scala 103:78] + wire _T_306 = |sel_red0; // @[el2_ifu_iccm_mem.scala 86:63] + wire _T_307 = |sel_red1; // @[el2_ifu_iccm_mem.scala 86:78] + wire _T_308 = _T_306 | _T_307; // @[el2_ifu_iccm_mem.scala 86:67] + wire _T_309 = _T_308 & io_iccm_rden; // @[el2_ifu_iccm_mem.scala 86:83] + wire _T_310 = _T_309 & io_iccm_correction_state; // @[el2_ifu_iccm_mem.scala 86:98] + wire redundant_lru_en = io_iccm_buf_correct_ecc | _T_310; // @[el2_ifu_iccm_mem.scala 86:50] + wire _GEN_39 = r1_addr_en | _T_321; // @[Reg.scala 28:19] + wire _GEN_40 = r0_addr_en | _T_322; // @[Reg.scala 28:19] + wire _T_326 = io_iccm_rw_addr[14:2] == redundant_address_0[13:1]; // @[el2_ifu_iccm_mem.scala 93:61] + wire _T_329 = io_iccm_rw_addr[1] & redundant_address_0[0]; // @[el2_ifu_iccm_mem.scala 94:26] + wire _T_332 = _T_329 | _T_1; // @[el2_ifu_iccm_mem.scala 94:52] + wire _T_333 = _T_326 & _T_332; // @[el2_ifu_iccm_mem.scala 93:102] + wire _T_335 = _T_333 & redundant_valid[0]; // @[el2_ifu_iccm_mem.scala 94:84] + wire _T_336 = _T_335 & io_iccm_wren; // @[el2_ifu_iccm_mem.scala 94:105] + wire redundant_data0_en = _T_336 | r0_addr_en; // @[el2_ifu_iccm_mem.scala 94:121] + wire _T_345 = redundant_address_0[0] & _T_1; // @[el2_ifu_iccm_mem.scala 96:104] + wire _T_346 = _T_329 | _T_345; // @[el2_ifu_iccm_mem.scala 96:78] + wire _T_354 = io_iccm_rw_addr[14:2] == redundant_address_1[13:1]; // @[el2_ifu_iccm_mem.scala 100:61] + wire _T_357 = io_iccm_rw_addr[1] & redundant_address_1[0]; // @[el2_ifu_iccm_mem.scala 101:26] + wire _T_360 = _T_357 | _T_1; // @[el2_ifu_iccm_mem.scala 101:52] + wire _T_361 = _T_354 & _T_360; // @[el2_ifu_iccm_mem.scala 100:102] + wire _T_363 = _T_361 & redundant_valid[1]; // @[el2_ifu_iccm_mem.scala 101:84] + wire _T_364 = _T_363 & io_iccm_wren; // @[el2_ifu_iccm_mem.scala 101:105] + wire redundant_data1_en = _T_364 | r0_addr_en; // @[el2_ifu_iccm_mem.scala 101:121] + wire _T_373 = redundant_address_1[0] & _T_1; // @[el2_ifu_iccm_mem.scala 103:104] + wire _T_374 = _T_357 | _T_373; // @[el2_ifu_iccm_mem.scala 103:78] reg [2:0] iccm_rd_addr_lo_q; // @[el2_ifu_iccm_mem.scala 107:34] reg [1:0] iccm_rd_addr_hi_q; // @[el2_ifu_iccm_mem.scala 108:34] - wire _T_374 = iccm_rd_addr_hi_q == 2'h0; // @[el2_ifu_iccm_mem.scala 110:86] - wire _T_376 = iccm_rd_addr_hi_q == 2'h1; // @[el2_ifu_iccm_mem.scala 110:86] - wire _T_378 = iccm_rd_addr_hi_q == 2'h2; // @[el2_ifu_iccm_mem.scala 110:86] - wire _T_380 = iccm_rd_addr_hi_q == 2'h3; // @[el2_ifu_iccm_mem.scala 110:86] - wire [31:0] _T_382 = _T_374 ? iccm_bank_dout_fn_0[31:0] : 32'h0; // @[Mux.scala 27:72] - wire [31:0] _T_383 = _T_376 ? iccm_bank_dout_fn_1[31:0] : 32'h0; // @[Mux.scala 27:72] - wire [31:0] _T_384 = _T_378 ? iccm_bank_dout_fn_2[31:0] : 32'h0; // @[Mux.scala 27:72] - wire [31:0] _T_385 = _T_380 ? iccm_bank_dout_fn_3[31:0] : 32'h0; // @[Mux.scala 27:72] - wire [31:0] _T_386 = _T_382 | _T_383; // @[Mux.scala 27:72] - wire [31:0] _T_387 = _T_386 | _T_384; // @[Mux.scala 27:72] - wire [31:0] _T_388 = _T_387 | _T_385; // @[Mux.scala 27:72] - wire _T_391 = iccm_rd_addr_lo_q[1:0] == 2'h0; // @[el2_ifu_iccm_mem.scala 111:77] - wire _T_394 = iccm_rd_addr_lo_q[1:0] == 2'h1; // @[el2_ifu_iccm_mem.scala 111:77] - wire _T_397 = iccm_rd_addr_lo_q[1:0] == 2'h2; // @[el2_ifu_iccm_mem.scala 111:77] - wire _T_400 = iccm_rd_addr_lo_q[1:0] == 2'h3; // @[el2_ifu_iccm_mem.scala 111:77] - wire [31:0] _T_402 = _T_391 ? iccm_bank_dout_fn_0[31:0] : 32'h0; // @[Mux.scala 27:72] - wire [31:0] _T_403 = _T_394 ? iccm_bank_dout_fn_1[31:0] : 32'h0; // @[Mux.scala 27:72] - wire [31:0] _T_404 = _T_397 ? iccm_bank_dout_fn_2[31:0] : 32'h0; // @[Mux.scala 27:72] - wire [31:0] _T_405 = _T_400 ? iccm_bank_dout_fn_3[31:0] : 32'h0; // @[Mux.scala 27:72] - wire [31:0] _T_406 = _T_402 | _T_403; // @[Mux.scala 27:72] - wire [31:0] _T_407 = _T_406 | _T_404; // @[Mux.scala 27:72] - wire [31:0] _T_408 = _T_407 | _T_405; // @[Mux.scala 27:72] - wire [63:0] iccm_rd_data_pre = {_T_388,_T_408}; // @[Cat.scala 29:58] - wire [63:0] _T_414 = {16'h0,iccm_rd_data_pre[63:16]}; // @[Cat.scala 29:58] - wire [38:0] _T_420 = _T_374 ? iccm_bank_dout_fn_0 : 39'h0; // @[Mux.scala 27:72] - wire [38:0] _T_421 = _T_376 ? iccm_bank_dout_fn_1 : 39'h0; // @[Mux.scala 27:72] - wire [38:0] _T_422 = _T_378 ? iccm_bank_dout_fn_2 : 39'h0; // @[Mux.scala 27:72] - wire [38:0] _T_423 = _T_380 ? iccm_bank_dout_fn_3 : 39'h0; // @[Mux.scala 27:72] - wire [38:0] _T_424 = _T_420 | _T_421; // @[Mux.scala 27:72] - wire [38:0] _T_425 = _T_424 | _T_422; // @[Mux.scala 27:72] - wire [38:0] _T_426 = _T_425 | _T_423; // @[Mux.scala 27:72] - wire [38:0] _T_436 = _T_391 ? iccm_bank_dout_fn_0 : 39'h0; // @[Mux.scala 27:72] - wire [38:0] _T_437 = _T_394 ? iccm_bank_dout_fn_1 : 39'h0; // @[Mux.scala 27:72] - wire [38:0] _T_438 = _T_397 ? iccm_bank_dout_fn_2 : 39'h0; // @[Mux.scala 27:72] - wire [38:0] _T_439 = _T_400 ? iccm_bank_dout_fn_3 : 39'h0; // @[Mux.scala 27:72] - wire [38:0] _T_440 = _T_436 | _T_437; // @[Mux.scala 27:72] - wire [38:0] _T_441 = _T_440 | _T_438; // @[Mux.scala 27:72] - wire [38:0] _T_442 = _T_441 | _T_439; // @[Mux.scala 27:72] - assign _T_85__T_105_addr = _T_85__T_105_addr_pipe_0; - assign _T_85__T_105_data = _T_85[_T_85__T_105_addr]; // @[el2_ifu_iccm_mem.scala 43:59] + wire _T_382 = iccm_rd_addr_hi_q == 2'h0; // @[el2_ifu_iccm_mem.scala 110:86] + wire _T_384 = iccm_rd_addr_hi_q == 2'h1; // @[el2_ifu_iccm_mem.scala 110:86] + wire _T_386 = iccm_rd_addr_hi_q == 2'h2; // @[el2_ifu_iccm_mem.scala 110:86] + wire _T_388 = iccm_rd_addr_hi_q == 2'h3; // @[el2_ifu_iccm_mem.scala 110:86] + wire [31:0] _T_390 = _T_382 ? iccm_bank_dout_fn_0[31:0] : 32'h0; // @[Mux.scala 27:72] + wire [31:0] _T_391 = _T_384 ? iccm_bank_dout_fn_1[31:0] : 32'h0; // @[Mux.scala 27:72] + wire [31:0] _T_392 = _T_386 ? iccm_bank_dout_fn_2[31:0] : 32'h0; // @[Mux.scala 27:72] + wire [31:0] _T_393 = _T_388 ? iccm_bank_dout_fn_3[31:0] : 32'h0; // @[Mux.scala 27:72] + wire [31:0] _T_394 = _T_390 | _T_391; // @[Mux.scala 27:72] + wire [31:0] _T_395 = _T_394 | _T_392; // @[Mux.scala 27:72] + wire [31:0] _T_396 = _T_395 | _T_393; // @[Mux.scala 27:72] + wire _T_399 = iccm_rd_addr_lo_q[1:0] == 2'h0; // @[el2_ifu_iccm_mem.scala 111:77] + wire _T_402 = iccm_rd_addr_lo_q[1:0] == 2'h1; // @[el2_ifu_iccm_mem.scala 111:77] + wire _T_405 = iccm_rd_addr_lo_q[1:0] == 2'h2; // @[el2_ifu_iccm_mem.scala 111:77] + wire _T_408 = iccm_rd_addr_lo_q[1:0] == 2'h3; // @[el2_ifu_iccm_mem.scala 111:77] + wire [31:0] _T_410 = _T_399 ? iccm_bank_dout_fn_0[31:0] : 32'h0; // @[Mux.scala 27:72] + wire [31:0] _T_411 = _T_402 ? iccm_bank_dout_fn_1[31:0] : 32'h0; // @[Mux.scala 27:72] + wire [31:0] _T_412 = _T_405 ? iccm_bank_dout_fn_2[31:0] : 32'h0; // @[Mux.scala 27:72] + wire [31:0] _T_413 = _T_408 ? iccm_bank_dout_fn_3[31:0] : 32'h0; // @[Mux.scala 27:72] + wire [31:0] _T_414 = _T_410 | _T_411; // @[Mux.scala 27:72] + wire [31:0] _T_415 = _T_414 | _T_412; // @[Mux.scala 27:72] + wire [31:0] _T_416 = _T_415 | _T_413; // @[Mux.scala 27:72] + wire [63:0] iccm_rd_data_pre = {_T_396,_T_416}; // @[Cat.scala 29:58] + wire [63:0] _T_422 = {16'h0,iccm_rd_data_pre[63:16]}; // @[Cat.scala 29:58] + wire [38:0] _T_428 = _T_382 ? iccm_bank_dout_fn_0 : 39'h0; // @[Mux.scala 27:72] + wire [38:0] _T_429 = _T_384 ? iccm_bank_dout_fn_1 : 39'h0; // @[Mux.scala 27:72] + wire [38:0] _T_430 = _T_386 ? iccm_bank_dout_fn_2 : 39'h0; // @[Mux.scala 27:72] + wire [38:0] _T_431 = _T_388 ? iccm_bank_dout_fn_3 : 39'h0; // @[Mux.scala 27:72] + wire [38:0] _T_432 = _T_428 | _T_429; // @[Mux.scala 27:72] + wire [38:0] _T_433 = _T_432 | _T_430; // @[Mux.scala 27:72] + wire [38:0] _T_434 = _T_433 | _T_431; // @[Mux.scala 27:72] + wire [38:0] _T_444 = _T_399 ? iccm_bank_dout_fn_0 : 39'h0; // @[Mux.scala 27:72] + wire [38:0] _T_445 = _T_402 ? iccm_bank_dout_fn_1 : 39'h0; // @[Mux.scala 27:72] + wire [38:0] _T_446 = _T_405 ? iccm_bank_dout_fn_2 : 39'h0; // @[Mux.scala 27:72] + wire [38:0] _T_447 = _T_408 ? iccm_bank_dout_fn_3 : 39'h0; // @[Mux.scala 27:72] + wire [38:0] _T_448 = _T_444 | _T_445; // @[Mux.scala 27:72] + wire [38:0] _T_449 = _T_448 | _T_446; // @[Mux.scala 27:72] + wire [38:0] _T_450 = _T_449 | _T_447; // @[Mux.scala 27:72] + assign _T_85__T_108_addr = _T_85__T_108_addr_pipe_0; + assign _T_85__T_108_data = _T_85[_T_85__T_108_addr]; // @[el2_ifu_iccm_mem.scala 43:59] assign _T_85__T_101_data = io_iccm_wr_data[38:0]; assign _T_85__T_101_addr = wren_bank_0 ? io_iccm_rw_addr[14:3] : _T_59; assign _T_85__T_101_mask = 1'h1; assign _T_85__T_101_en = iccm_clken_0 & wren_bank_0; - assign _T_86__T_107_addr = _T_86__T_107_addr_pipe_0; - assign _T_86__T_107_data = _T_86[_T_86__T_107_addr]; // @[el2_ifu_iccm_mem.scala 43:59] + assign _T_86__T_112_addr = _T_86__T_112_addr_pipe_0; + assign _T_86__T_112_data = _T_86[_T_86__T_112_addr]; // @[el2_ifu_iccm_mem.scala 43:59] assign _T_86__T_102_data = io_iccm_wr_data[77:39]; assign _T_86__T_102_addr = wren_bank_1 ? io_iccm_rw_addr[14:3] : _T_67; assign _T_86__T_102_mask = 1'h1; assign _T_86__T_102_en = iccm_clken_1 & wren_bank_1; - assign _T_87__T_109_addr = _T_87__T_109_addr_pipe_0; - assign _T_87__T_109_data = _T_87[_T_87__T_109_addr]; // @[el2_ifu_iccm_mem.scala 43:59] + assign _T_87__T_116_addr = _T_87__T_116_addr_pipe_0; + assign _T_87__T_116_data = _T_87[_T_87__T_116_addr]; // @[el2_ifu_iccm_mem.scala 43:59] assign _T_87__T_103_data = io_iccm_wr_data[38:0]; assign _T_87__T_103_addr = wren_bank_2 ? io_iccm_rw_addr[14:3] : _T_75; assign _T_87__T_103_mask = 1'h1; assign _T_87__T_103_en = iccm_clken_2 & wren_bank_2; - assign _T_88__T_111_addr = _T_88__T_111_addr_pipe_0; - assign _T_88__T_111_data = _T_88[_T_88__T_111_addr]; // @[el2_ifu_iccm_mem.scala 43:59] + assign _T_88__T_120_addr = _T_88__T_120_addr_pipe_0; + assign _T_88__T_120_data = _T_88[_T_88__T_120_addr]; // @[el2_ifu_iccm_mem.scala 43:59] assign _T_88__T_104_data = io_iccm_wr_data[77:39]; assign _T_88__T_104_addr = wren_bank_3 ? io_iccm_rw_addr[14:3] : _T_83; assign _T_88__T_104_mask = 1'h1; assign _T_88__T_104_en = iccm_clken_3 & wren_bank_3; - assign io_iccm_rd_data = iccm_rd_addr_lo_q[0] ? _T_414 : iccm_rd_data_pre; // @[el2_ifu_iccm_mem.scala 22:19 el2_ifu_iccm_mem.scala 112:19] - assign io_iccm_rd_data_ecc = {_T_426,_T_442}; // @[el2_ifu_iccm_mem.scala 23:23 el2_ifu_iccm_mem.scala 113:23] + assign io_iccm_rd_data = iccm_rd_addr_lo_q[0] ? _T_422 : iccm_rd_data_pre; // @[el2_ifu_iccm_mem.scala 22:19 el2_ifu_iccm_mem.scala 112:19] + assign io_iccm_rd_data_ecc = {_T_434,_T_450}; // @[el2_ifu_iccm_mem.scala 23:23 el2_ifu_iccm_mem.scala 113:23] assign io_iccm_bank_addr_0 = wren_bank_0 ? io_iccm_rw_addr[14:3] : _T_59; // @[el2_ifu_iccm_mem.scala 61:21] assign io_iccm_bank_addr_1 = wren_bank_1 ? io_iccm_rw_addr[14:3] : _T_67; // @[el2_ifu_iccm_mem.scala 61:21] assign io_iccm_bank_addr_2 = wren_bank_2 ? io_iccm_rw_addr[14:3] : _T_75; // @[el2_ifu_iccm_mem.scala 61:21] @@ -339,37 +347,37 @@ initial begin _RAND_0 = {2{`RANDOM}}; for (initvar = 0; initvar < 4096; initvar = initvar+1) _T_85[initvar] = _RAND_0[38:0]; - _RAND_2 = {2{`RANDOM}}; + _RAND_3 = {2{`RANDOM}}; for (initvar = 0; initvar < 4096; initvar = initvar+1) - _T_86[initvar] = _RAND_2[38:0]; - _RAND_4 = {2{`RANDOM}}; - for (initvar = 0; initvar < 4096; initvar = initvar+1) - _T_87[initvar] = _RAND_4[38:0]; + _T_86[initvar] = _RAND_3[38:0]; _RAND_6 = {2{`RANDOM}}; for (initvar = 0; initvar < 4096; initvar = initvar+1) - _T_88[initvar] = _RAND_6[38:0]; + _T_87[initvar] = _RAND_6[38:0]; + _RAND_9 = {2{`RANDOM}}; + for (initvar = 0; initvar < 4096; initvar = initvar+1) + _T_88[initvar] = _RAND_9[38:0]; `endif // RANDOMIZE_MEM_INIT `ifdef RANDOMIZE_REG_INIT _RAND_1 = {1{`RANDOM}}; - _T_85__T_105_addr_pipe_0 = _RAND_1[11:0]; - _RAND_3 = {1{`RANDOM}}; - _T_86__T_107_addr_pipe_0 = _RAND_3[11:0]; + _T_85__T_108_en_pipe_0 = _RAND_1[0:0]; + _RAND_2 = {1{`RANDOM}}; + _T_85__T_108_addr_pipe_0 = _RAND_2[11:0]; + _RAND_4 = {1{`RANDOM}}; + _T_86__T_112_en_pipe_0 = _RAND_4[0:0]; _RAND_5 = {1{`RANDOM}}; - _T_87__T_109_addr_pipe_0 = _RAND_5[11:0]; + _T_86__T_112_addr_pipe_0 = _RAND_5[11:0]; _RAND_7 = {1{`RANDOM}}; - _T_88__T_111_addr_pipe_0 = _RAND_7[11:0]; - _RAND_8 = {2{`RANDOM}}; - iccm_bank_dout_0 = _RAND_8[38:0]; - _RAND_9 = {2{`RANDOM}}; - iccm_bank_dout_1 = _RAND_9[38:0]; - _RAND_10 = {2{`RANDOM}}; - iccm_bank_dout_2 = _RAND_10[38:0]; - _RAND_11 = {2{`RANDOM}}; - iccm_bank_dout_3 = _RAND_11[38:0]; + _T_87__T_116_en_pipe_0 = _RAND_7[0:0]; + _RAND_8 = {1{`RANDOM}}; + _T_87__T_116_addr_pipe_0 = _RAND_8[11:0]; + _RAND_10 = {1{`RANDOM}}; + _T_88__T_120_en_pipe_0 = _RAND_10[0:0]; + _RAND_11 = {1{`RANDOM}}; + _T_88__T_120_addr_pipe_0 = _RAND_11[11:0]; _RAND_12 = {1{`RANDOM}}; - _T_313 = _RAND_12[0:0]; + _T_321 = _RAND_12[0:0]; _RAND_13 = {1{`RANDOM}}; - _T_314 = _RAND_13[0:0]; + _T_322 = _RAND_13[0:0]; _RAND_14 = {1{`RANDOM}}; redundant_address_1 = _RAND_14[13:0]; _RAND_15 = {1{`RANDOM}}; @@ -399,56 +407,64 @@ end // initial if(_T_85__T_101_en & _T_85__T_101_mask) begin _T_85[_T_85__T_101_addr] <= _T_85__T_101_data; // @[el2_ifu_iccm_mem.scala 43:59] end - if (wren_bank_0) begin - _T_85__T_105_addr_pipe_0 <= io_iccm_rw_addr[14:3]; - end else if (_T_12) begin - _T_85__T_105_addr_pipe_0 <= addr_bank_inc[14:3]; - end else begin - _T_85__T_105_addr_pipe_0 <= io_iccm_rw_addr[14:3]; + _T_85__T_108_en_pipe_0 <= iccm_clken_0 & _T_93; + if (iccm_clken_0 & _T_93) begin + if (wren_bank_0) begin + _T_85__T_108_addr_pipe_0 <= io_iccm_rw_addr[14:3]; + end else if (_T_12) begin + _T_85__T_108_addr_pipe_0 <= addr_bank_inc[14:3]; + end else begin + _T_85__T_108_addr_pipe_0 <= io_iccm_rw_addr[14:3]; + end end if(_T_86__T_102_en & _T_86__T_102_mask) begin _T_86[_T_86__T_102_addr] <= _T_86__T_102_data; // @[el2_ifu_iccm_mem.scala 43:59] end - if (wren_bank_1) begin - _T_86__T_107_addr_pipe_0 <= io_iccm_rw_addr[14:3]; - end else if (_T_17) begin - _T_86__T_107_addr_pipe_0 <= addr_bank_inc[14:3]; - end else begin - _T_86__T_107_addr_pipe_0 <= io_iccm_rw_addr[14:3]; + _T_86__T_112_en_pipe_0 <= iccm_clken_1 & _T_95; + if (iccm_clken_1 & _T_95) begin + if (wren_bank_1) begin + _T_86__T_112_addr_pipe_0 <= io_iccm_rw_addr[14:3]; + end else if (_T_17) begin + _T_86__T_112_addr_pipe_0 <= addr_bank_inc[14:3]; + end else begin + _T_86__T_112_addr_pipe_0 <= io_iccm_rw_addr[14:3]; + end end if(_T_87__T_103_en & _T_87__T_103_mask) begin _T_87[_T_87__T_103_addr] <= _T_87__T_103_data; // @[el2_ifu_iccm_mem.scala 43:59] end - if (wren_bank_2) begin - _T_87__T_109_addr_pipe_0 <= io_iccm_rw_addr[14:3]; - end else if (_T_22) begin - _T_87__T_109_addr_pipe_0 <= addr_bank_inc[14:3]; - end else begin - _T_87__T_109_addr_pipe_0 <= io_iccm_rw_addr[14:3]; + _T_87__T_116_en_pipe_0 <= iccm_clken_2 & _T_97; + if (iccm_clken_2 & _T_97) begin + if (wren_bank_2) begin + _T_87__T_116_addr_pipe_0 <= io_iccm_rw_addr[14:3]; + end else if (_T_22) begin + _T_87__T_116_addr_pipe_0 <= addr_bank_inc[14:3]; + end else begin + _T_87__T_116_addr_pipe_0 <= io_iccm_rw_addr[14:3]; + end end if(_T_88__T_104_en & _T_88__T_104_mask) begin _T_88[_T_88__T_104_addr] <= _T_88__T_104_data; // @[el2_ifu_iccm_mem.scala 43:59] end - if (wren_bank_3) begin - _T_88__T_111_addr_pipe_0 <= io_iccm_rw_addr[14:3]; - end else if (_T_27) begin - _T_88__T_111_addr_pipe_0 <= addr_bank_inc[14:3]; - end else begin - _T_88__T_111_addr_pipe_0 <= io_iccm_rw_addr[14:3]; - end - iccm_bank_dout_0 <= _T_85__T_105_data; - iccm_bank_dout_1 <= _T_86__T_107_data; - iccm_bank_dout_2 <= _T_87__T_109_data; - iccm_bank_dout_3 <= _T_88__T_111_data; - if (reset) begin - _T_313 <= 1'h0; - end else begin - _T_313 <= _GEN_23; + _T_88__T_120_en_pipe_0 <= iccm_clken_3 & _T_99; + if (iccm_clken_3 & _T_99) begin + if (wren_bank_3) begin + _T_88__T_120_addr_pipe_0 <= io_iccm_rw_addr[14:3]; + end else if (_T_27) begin + _T_88__T_120_addr_pipe_0 <= addr_bank_inc[14:3]; + end else begin + _T_88__T_120_addr_pipe_0 <= io_iccm_rw_addr[14:3]; + end end if (reset) begin - _T_314 <= 1'h0; + _T_321 <= 1'h0; end else begin - _T_314 <= _GEN_24; + _T_321 <= _GEN_39; + end + if (reset) begin + _T_322 <= 1'h0; + end else begin + _T_322 <= _GEN_40; end if (reset) begin redundant_address_1 <= 14'h0; @@ -473,7 +489,7 @@ end // initial if (reset) begin redundant_data_1 <= 39'h0; end else if (redundant_data1_en) begin - if (_T_366) begin + if (_T_374) begin redundant_data_1 <= iccm_bank_wr_data_1; end else begin redundant_data_1 <= iccm_bank_wr_data_0; @@ -482,7 +498,7 @@ end // initial if (reset) begin redundant_data_0 <= 39'h0; end else if (redundant_data0_en) begin - if (_T_338) begin + if (_T_346) begin redundant_data_0 <= iccm_bank_wr_data_1; end else begin redundant_data_0 <= iccm_bank_wr_data_0; @@ -492,9 +508,9 @@ end // initial redundant_lru <= 1'h0; end else if (redundant_lru_en) begin if (io_iccm_buf_correct_ecc) begin - redundant_lru <= _T_297; + redundant_lru <= _T_305; end else begin - redundant_lru <= _T_298; + redundant_lru <= _T_306; end end if (reset) begin diff --git a/src/main/scala/ifu/el2_ifu_iccm_mem.scala b/src/main/scala/ifu/el2_ifu_iccm_mem.scala index 983471ff..f55f4fe7 100644 --- a/src/main/scala/ifu/el2_ifu_iccm_mem.scala +++ b/src/main/scala/ifu/el2_ifu_iccm_mem.scala @@ -53,7 +53,7 @@ class el2_ifu_iccm_mem extends Module with el2_lib { for(i<-0 until ICCM_NUM_BANKS) when(write_vec(i)) {iccm_mem(i)(addr_bank(i)) := iccm_bank_wr_data(i)} - for(i<-0 until ICCM_NUM_BANKS) {iccm_bank_dout(i) := RegNext(iccm_mem(i).read(addr_bank(i)))} + for(i<-0 until ICCM_NUM_BANKS) {iccm_bank_dout(i) := iccm_mem(i).read(addr_bank(i),read_enable(i))} //(0 until ICCM_NUM_BANKS).map(i=> ) // iccm_bank_dout(i) := RegNext(inter(i)) diff --git a/target/scala-2.12/classes/ifu/el2_ifu_iccm_mem.class b/target/scala-2.12/classes/ifu/el2_ifu_iccm_mem.class index 1b9823756bdb56f788f4e2a1bb7e9ff9154b32b5..0ec4520a4c2c2b0619a314723df39ecb38af9412 100644 GIT binary patch literal 93821 zcmd2^2YejG)t|lF-P4^`)=6?ZciD22t0Z@WLB*D3%T;nOvMilt85LWS8wk@vNeDf( zKthK=s0ND`dZ+;sLT@3EgoGp{B!rR>;QPOs-M!trx%1)!^7&`Y%)Wi^&6_uG-qf9Y z>Wh2sXN*k={9a+bo44$o6m2Q4LtNL~(9l}f8f^_QMPY**wl;T0TS_K1w{=B3+Ui>- zRY#lZ8}=@0Z`|1u4KTmLGFzHAb7I5+rYWp%Jg14B4fQSc3L8?*6O%fkTUw$GU6X1E zT+`gtR^PR=BRX4Q+UC7o(M~0Ft*&TOn-t%Oc}jlyvi$yv=G$AoBR`^)`|`B>EWg^M zD0)?WL<{ryp7=54tP@xzRZO4aAsw-oZ-rzoWa4F zL1mc|s;^Ln=Z{b{b!4!9h?e2+=O=yb&B+fo2bIlA$UieC+23A`NngHVnpUXFH@W2_M?$9l6IL4T)^YaQe& z>Q8d*2>8lN>tc3xESGBse&66SH_046(yre%SLanTG_a2 z5xppfHTTOe=lU9zy|$!1XK>N{ zMP%n2jMCxjiW}GM%iGhwx+q$;V0^AJH0WQpr8>W~uFxM`u`t>TcDy&YH`#fce_7S^ z)-}^N&0RTVcgva?ozcF7D%)3=G*%9uSs%9YnaA^));efb=fYkE{o4l3*wnP#sGKwa z_Uq3d&Ha&HpVPLcxb29Iz4x?in0m}YvR8%6zhjaTu;kxVr5E(if_;W^c>a6*MI!%b zZuh(ik=dK6T`4@@nf;ZyR{17J%a-ad`jY%^N0m_g%cc*f&@!s9dyRazpv7^}ELpoY7dSjm_od4H->s z>n87s?isKurgmT67)33Cg z?5>-azf>y~b}VN|czfl7as9H^j^45k^~3cIKE0}xQ2T=F%1LV{?_Stz{P6tzK{>&EV@=t5 zDz^n!^XmPxwv^{~uUxdgs9{ZCqqJ;8$>yqk9=V8v`tlW#?PNr z>a?2?yC)8ro$o(9XLZ)v+3i(&S7m$u!#1xORnSk-W^Jij*;NUB?mS|xQ8{s7Nxpxs z15dQO>FpboylCHoRZ9kyY~HZEyD!<-!o`C!Mk-p@!s6~xlLnL&`$tArXRV*yxiHsI z9q^(UTm@XW@QaR^XB2JTP||wDg7KAEizauJYRify4VbQp*p0J3xIXHSg*}vp9OdBcxJbw+fsg9ySMRLCAWK#{~D2<1&iSTlj zZzzc#HLIZCqCvB{|C_LA@|F!~PZIdH4SK{`Zt{Dm*QwA)P_)+t1-r*bN}|zy4ZGV= z-y=s3nmz&cQziV|rZscAsorx%ea(s

x00T(d8;e`(C0Zm!COUs^YHQ-d$0j1c|B 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 H%Od^*od(S< literal 93720 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 M!v07?v;`6W0V>_5HUIzs