From 439c0adebcc067b91cda4c303c2b3ef291ee0c9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=8BLaraib=20Khan?= <​laraib.khan@lampromellon.com> Date: Thu, 3 Dec 2020 14:08:12 +0500 Subject: [PATCH] axi to ahb update --- axi4_to_ahb.fir | 96 +++++------ axi4_to_ahb.v | 151 ++++++++++++++---- src/main/scala/lib/axi4_to_ahb.scala | 4 +- .../scala-2.12/classes/lib/axi4_to_ahb.class | Bin 106871 -> 106813 bytes 4 files changed, 173 insertions(+), 78 deletions(-) diff --git a/axi4_to_ahb.fir b/axi4_to_ahb.fir index 03f62457..9ea53c5f 100644 --- a/axi4_to_ahb.fir +++ b/axi4_to_ahb.fir @@ -545,14 +545,14 @@ circuit axi4_to_ahb : node _T_83 = bits(_T_58, 7, 7) @[axi4_to_ahb.scala 175:44] node _T_84 = geq(UInt<3>("h07"), _T_61) @[axi4_to_ahb.scala 175:62] node _T_85 = and(_T_83, _T_84) @[axi4_to_ahb.scala 175:48] - node _T_86 = mux(_T_64, UInt<1>("h00"), UInt<4>("h08")) @[Mux.scala 98:16] - node _T_87 = mux(_T_67, UInt<1>("h01"), _T_86) @[Mux.scala 98:16] - node _T_88 = mux(_T_70, UInt<2>("h02"), _T_87) @[Mux.scala 98:16] - node _T_89 = mux(_T_73, UInt<2>("h03"), _T_88) @[Mux.scala 98:16] - node _T_90 = mux(_T_76, UInt<3>("h04"), _T_89) @[Mux.scala 98:16] - node _T_91 = mux(_T_79, UInt<3>("h05"), _T_90) @[Mux.scala 98:16] - node _T_92 = mux(_T_82, UInt<3>("h06"), _T_91) @[Mux.scala 98:16] - node _T_93 = mux(_T_85, UInt<3>("h07"), _T_92) @[Mux.scala 98:16] + node _T_86 = mux(_T_85, UInt<3>("h07"), UInt<3>("h07")) @[Mux.scala 98:16] + node _T_87 = mux(_T_82, UInt<3>("h06"), _T_86) @[Mux.scala 98:16] + node _T_88 = mux(_T_79, UInt<3>("h05"), _T_87) @[Mux.scala 98:16] + node _T_89 = mux(_T_76, UInt<3>("h04"), _T_88) @[Mux.scala 98:16] + node _T_90 = mux(_T_73, UInt<2>("h03"), _T_89) @[Mux.scala 98:16] + node _T_91 = mux(_T_70, UInt<2>("h02"), _T_90) @[Mux.scala 98:16] + node _T_92 = mux(_T_67, UInt<1>("h01"), _T_91) @[Mux.scala 98:16] + node _T_93 = mux(_T_64, UInt<1>("h00"), _T_92) @[Mux.scala 98:16] node _T_94 = bits(master_addr, 2, 0) @[axi4_to_ahb.scala 233:124] node _T_95 = mux(_T_57, _T_93, _T_94) @[axi4_to_ahb.scala 233:30] buf_cmd_byte_ptr <= _T_95 @[axi4_to_ahb.scala 233:24] @@ -740,14 +740,14 @@ circuit axi4_to_ahb : node _T_220 = bits(_T_195, 7, 7) @[axi4_to_ahb.scala 175:44] node _T_221 = geq(UInt<3>("h07"), _T_198) @[axi4_to_ahb.scala 175:62] node _T_222 = and(_T_220, _T_221) @[axi4_to_ahb.scala 175:48] - node _T_223 = mux(_T_201, UInt<1>("h00"), UInt<4>("h08")) @[Mux.scala 98:16] - node _T_224 = mux(_T_204, UInt<1>("h01"), _T_223) @[Mux.scala 98:16] - node _T_225 = mux(_T_207, UInt<2>("h02"), _T_224) @[Mux.scala 98:16] - node _T_226 = mux(_T_210, UInt<2>("h03"), _T_225) @[Mux.scala 98:16] - node _T_227 = mux(_T_213, UInt<3>("h04"), _T_226) @[Mux.scala 98:16] - node _T_228 = mux(_T_216, UInt<3>("h05"), _T_227) @[Mux.scala 98:16] - node _T_229 = mux(_T_219, UInt<3>("h06"), _T_228) @[Mux.scala 98:16] - node _T_230 = mux(_T_222, UInt<3>("h07"), _T_229) @[Mux.scala 98:16] + node _T_223 = mux(_T_222, UInt<3>("h07"), UInt<3>("h07")) @[Mux.scala 98:16] + node _T_224 = mux(_T_219, UInt<3>("h06"), _T_223) @[Mux.scala 98:16] + node _T_225 = mux(_T_216, UInt<3>("h05"), _T_224) @[Mux.scala 98:16] + node _T_226 = mux(_T_213, UInt<3>("h04"), _T_225) @[Mux.scala 98:16] + node _T_227 = mux(_T_210, UInt<2>("h03"), _T_226) @[Mux.scala 98:16] + node _T_228 = mux(_T_207, UInt<2>("h02"), _T_227) @[Mux.scala 98:16] + node _T_229 = mux(_T_204, UInt<1>("h01"), _T_228) @[Mux.scala 98:16] + node _T_230 = mux(_T_201, UInt<1>("h00"), _T_229) @[Mux.scala 98:16] node _T_231 = mux(_T_193, _T_230, buf_cmd_byte_ptrQ) @[axi4_to_ahb.scala 291:30] buf_cmd_byte_ptr <= _T_231 @[axi4_to_ahb.scala 291:24] node _T_232 = eq(buf_cmd_byte_ptrQ, UInt<3>("h07")) @[axi4_to_ahb.scala 292:65] @@ -781,14 +781,14 @@ circuit axi4_to_ahb : node _T_260 = bits(_T_235, 7, 7) @[axi4_to_ahb.scala 175:44] node _T_261 = geq(UInt<3>("h07"), _T_238) @[axi4_to_ahb.scala 175:62] node _T_262 = and(_T_260, _T_261) @[axi4_to_ahb.scala 175:48] - node _T_263 = mux(_T_241, UInt<1>("h00"), UInt<4>("h08")) @[Mux.scala 98:16] - node _T_264 = mux(_T_244, UInt<1>("h01"), _T_263) @[Mux.scala 98:16] - node _T_265 = mux(_T_247, UInt<2>("h02"), _T_264) @[Mux.scala 98:16] - node _T_266 = mux(_T_250, UInt<2>("h03"), _T_265) @[Mux.scala 98:16] - node _T_267 = mux(_T_253, UInt<3>("h04"), _T_266) @[Mux.scala 98:16] - node _T_268 = mux(_T_256, UInt<3>("h05"), _T_267) @[Mux.scala 98:16] - node _T_269 = mux(_T_259, UInt<3>("h06"), _T_268) @[Mux.scala 98:16] - node _T_270 = mux(_T_262, UInt<3>("h07"), _T_269) @[Mux.scala 98:16] + node _T_263 = mux(_T_262, UInt<3>("h07"), UInt<3>("h07")) @[Mux.scala 98:16] + node _T_264 = mux(_T_259, UInt<3>("h06"), _T_263) @[Mux.scala 98:16] + node _T_265 = mux(_T_256, UInt<3>("h05"), _T_264) @[Mux.scala 98:16] + node _T_266 = mux(_T_253, UInt<3>("h04"), _T_265) @[Mux.scala 98:16] + node _T_267 = mux(_T_250, UInt<2>("h03"), _T_266) @[Mux.scala 98:16] + node _T_268 = mux(_T_247, UInt<2>("h02"), _T_267) @[Mux.scala 98:16] + node _T_269 = mux(_T_244, UInt<1>("h01"), _T_268) @[Mux.scala 98:16] + node _T_270 = mux(_T_241, UInt<1>("h00"), _T_269) @[Mux.scala 98:16] node _T_271 = dshr(buf_byteen, _T_270) @[axi4_to_ahb.scala 292:92] node _T_272 = bits(_T_271, 0, 0) @[axi4_to_ahb.scala 292:92] node _T_273 = eq(_T_272, UInt<1>("h00")) @[axi4_to_ahb.scala 292:163] @@ -866,14 +866,14 @@ circuit axi4_to_ahb : node _T_332 = bits(_T_307, 7, 7) @[axi4_to_ahb.scala 175:44] node _T_333 = geq(UInt<3>("h07"), _T_310) @[axi4_to_ahb.scala 175:62] node _T_334 = and(_T_332, _T_333) @[axi4_to_ahb.scala 175:48] - node _T_335 = mux(_T_313, UInt<1>("h00"), UInt<4>("h08")) @[Mux.scala 98:16] - node _T_336 = mux(_T_316, UInt<1>("h01"), _T_335) @[Mux.scala 98:16] - node _T_337 = mux(_T_319, UInt<2>("h02"), _T_336) @[Mux.scala 98:16] - node _T_338 = mux(_T_322, UInt<2>("h03"), _T_337) @[Mux.scala 98:16] - node _T_339 = mux(_T_325, UInt<3>("h04"), _T_338) @[Mux.scala 98:16] - node _T_340 = mux(_T_328, UInt<3>("h05"), _T_339) @[Mux.scala 98:16] - node _T_341 = mux(_T_331, UInt<3>("h06"), _T_340) @[Mux.scala 98:16] - node _T_342 = mux(_T_334, UInt<3>("h07"), _T_341) @[Mux.scala 98:16] + node _T_335 = mux(_T_334, UInt<3>("h07"), UInt<3>("h07")) @[Mux.scala 98:16] + node _T_336 = mux(_T_331, UInt<3>("h06"), _T_335) @[Mux.scala 98:16] + node _T_337 = mux(_T_328, UInt<3>("h05"), _T_336) @[Mux.scala 98:16] + node _T_338 = mux(_T_325, UInt<3>("h04"), _T_337) @[Mux.scala 98:16] + node _T_339 = mux(_T_322, UInt<2>("h03"), _T_338) @[Mux.scala 98:16] + node _T_340 = mux(_T_319, UInt<2>("h02"), _T_339) @[Mux.scala 98:16] + node _T_341 = mux(_T_316, UInt<1>("h01"), _T_340) @[Mux.scala 98:16] + node _T_342 = mux(_T_313, UInt<1>("h00"), _T_341) @[Mux.scala 98:16] node _T_343 = dshr(buf_byteen, _T_342) @[axi4_to_ahb.scala 306:51] node _T_344 = bits(_T_343, 0, 0) @[axi4_to_ahb.scala 306:51] node _T_345 = eq(_T_344, UInt<1>("h00")) @[axi4_to_ahb.scala 306:116] @@ -930,14 +930,14 @@ circuit axi4_to_ahb : node _T_390 = bits(_T_365, 7, 7) @[axi4_to_ahb.scala 175:44] node _T_391 = geq(UInt<3>("h07"), _T_368) @[axi4_to_ahb.scala 175:62] node _T_392 = and(_T_390, _T_391) @[axi4_to_ahb.scala 175:48] - node _T_393 = mux(_T_371, UInt<1>("h00"), UInt<4>("h08")) @[Mux.scala 98:16] - node _T_394 = mux(_T_374, UInt<1>("h01"), _T_393) @[Mux.scala 98:16] - node _T_395 = mux(_T_377, UInt<2>("h02"), _T_394) @[Mux.scala 98:16] - node _T_396 = mux(_T_380, UInt<2>("h03"), _T_395) @[Mux.scala 98:16] - node _T_397 = mux(_T_383, UInt<3>("h04"), _T_396) @[Mux.scala 98:16] - node _T_398 = mux(_T_386, UInt<3>("h05"), _T_397) @[Mux.scala 98:16] - node _T_399 = mux(_T_389, UInt<3>("h06"), _T_398) @[Mux.scala 98:16] - node _T_400 = mux(_T_392, UInt<3>("h07"), _T_399) @[Mux.scala 98:16] + node _T_393 = mux(_T_392, UInt<3>("h07"), UInt<3>("h07")) @[Mux.scala 98:16] + node _T_394 = mux(_T_389, UInt<3>("h06"), _T_393) @[Mux.scala 98:16] + node _T_395 = mux(_T_386, UInt<3>("h05"), _T_394) @[Mux.scala 98:16] + node _T_396 = mux(_T_383, UInt<3>("h04"), _T_395) @[Mux.scala 98:16] + node _T_397 = mux(_T_380, UInt<2>("h03"), _T_396) @[Mux.scala 98:16] + node _T_398 = mux(_T_377, UInt<2>("h02"), _T_397) @[Mux.scala 98:16] + node _T_399 = mux(_T_374, UInt<1>("h01"), _T_398) @[Mux.scala 98:16] + node _T_400 = mux(_T_371, UInt<1>("h00"), _T_399) @[Mux.scala 98:16] node _T_401 = bits(buf_cmd_byte_ptrQ, 2, 0) @[axi4_to_ahb.scala 312:141] node _T_402 = bits(buf_byteen, 7, 0) @[axi4_to_ahb.scala 312:157] node _T_403 = add(_T_401, UInt<1>("h01")) @[axi4_to_ahb.scala 174:52] @@ -967,14 +967,14 @@ circuit axi4_to_ahb : node _T_427 = bits(_T_402, 7, 7) @[axi4_to_ahb.scala 175:44] node _T_428 = geq(UInt<3>("h07"), _T_405) @[axi4_to_ahb.scala 175:62] node _T_429 = and(_T_427, _T_428) @[axi4_to_ahb.scala 175:48] - node _T_430 = mux(_T_408, UInt<1>("h00"), UInt<4>("h08")) @[Mux.scala 98:16] - node _T_431 = mux(_T_411, UInt<1>("h01"), _T_430) @[Mux.scala 98:16] - node _T_432 = mux(_T_414, UInt<2>("h02"), _T_431) @[Mux.scala 98:16] - node _T_433 = mux(_T_417, UInt<2>("h03"), _T_432) @[Mux.scala 98:16] - node _T_434 = mux(_T_420, UInt<3>("h04"), _T_433) @[Mux.scala 98:16] - node _T_435 = mux(_T_423, UInt<3>("h05"), _T_434) @[Mux.scala 98:16] - node _T_436 = mux(_T_426, UInt<3>("h06"), _T_435) @[Mux.scala 98:16] - node _T_437 = mux(_T_429, UInt<3>("h07"), _T_436) @[Mux.scala 98:16] + node _T_430 = mux(_T_429, UInt<3>("h07"), UInt<3>("h07")) @[Mux.scala 98:16] + node _T_431 = mux(_T_426, UInt<3>("h06"), _T_430) @[Mux.scala 98:16] + node _T_432 = mux(_T_423, UInt<3>("h05"), _T_431) @[Mux.scala 98:16] + node _T_433 = mux(_T_420, UInt<3>("h04"), _T_432) @[Mux.scala 98:16] + node _T_434 = mux(_T_417, UInt<2>("h03"), _T_433) @[Mux.scala 98:16] + node _T_435 = mux(_T_414, UInt<2>("h02"), _T_434) @[Mux.scala 98:16] + node _T_436 = mux(_T_411, UInt<1>("h01"), _T_435) @[Mux.scala 98:16] + node _T_437 = mux(_T_408, UInt<1>("h00"), _T_436) @[Mux.scala 98:16] node _T_438 = mux(trxn_done, _T_437, buf_cmd_byte_ptrQ) @[axi4_to_ahb.scala 312:97] node _T_439 = mux(bypass_en, _T_400, _T_438) @[axi4_to_ahb.scala 312:30] buf_cmd_byte_ptr <= _T_439 @[axi4_to_ahb.scala 312:24] diff --git a/axi4_to_ahb.v b/axi4_to_ahb.v index f2a982d1..0b1ea957 100644 --- a/axi4_to_ahb.v +++ b/axi4_to_ahb.v @@ -263,15 +263,14 @@ module axi4_to_ahb( wire _T_46 = _T_44 | _T_45; // @[axi4_to_ahb.scala 199:74] wire _T_55 = buf_nxtstate == 3'h2; // @[axi4_to_ahb.scala 230:54] wire _T_56 = buf_state_en & _T_55; // @[axi4_to_ahb.scala 230:38] - wire [3:0] _T_86 = wrbuf_byteen[0] ? 4'h0 : 4'h8; // @[Mux.scala 98:16] - wire [3:0] _T_87 = wrbuf_byteen[1] ? 4'h1 : _T_86; // @[Mux.scala 98:16] - wire [3:0] _T_88 = wrbuf_byteen[2] ? 4'h2 : _T_87; // @[Mux.scala 98:16] - wire [3:0] _T_89 = wrbuf_byteen[3] ? 4'h3 : _T_88; // @[Mux.scala 98:16] - wire [3:0] _T_90 = wrbuf_byteen[4] ? 4'h4 : _T_89; // @[Mux.scala 98:16] - wire [3:0] _T_91 = wrbuf_byteen[5] ? 4'h5 : _T_90; // @[Mux.scala 98:16] - wire [3:0] _T_92 = wrbuf_byteen[6] ? 4'h6 : _T_91; // @[Mux.scala 98:16] - wire [3:0] _T_93 = wrbuf_byteen[7] ? 4'h7 : _T_92; // @[Mux.scala 98:16] - wire [3:0] _T_95 = buf_write_in ? _T_93 : {{1'd0}, master_addr[2:0]}; // @[axi4_to_ahb.scala 233:30] + wire [2:0] _T_87 = wrbuf_byteen[6] ? 3'h6 : 3'h7; // @[Mux.scala 98:16] + wire [2:0] _T_88 = wrbuf_byteen[5] ? 3'h5 : _T_87; // @[Mux.scala 98:16] + wire [2:0] _T_89 = wrbuf_byteen[4] ? 3'h4 : _T_88; // @[Mux.scala 98:16] + wire [2:0] _T_90 = wrbuf_byteen[3] ? 3'h3 : _T_89; // @[Mux.scala 98:16] + wire [2:0] _T_91 = wrbuf_byteen[2] ? 3'h2 : _T_90; // @[Mux.scala 98:16] + wire [2:0] _T_92 = wrbuf_byteen[1] ? 3'h1 : _T_91; // @[Mux.scala 98:16] + wire [2:0] _T_93 = wrbuf_byteen[0] ? 3'h0 : _T_92; // @[Mux.scala 98:16] + wire [2:0] _T_95 = buf_write_in ? _T_93 : master_addr[2:0]; // @[axi4_to_ahb.scala 233:30] wire _T_96 = buf_nxtstate == 3'h1; // @[axi4_to_ahb.scala 235:51] wire _T_126 = master_ready & master_valid; // @[axi4_to_ahb.scala 246:33] wire _T_162 = buf_nxtstate == 3'h6; // @[axi4_to_ahb.scala 261:64] @@ -320,15 +319,14 @@ module axi4_to_ahb( wire _T_216 = buf_byteen[5] & _T_215; // @[axi4_to_ahb.scala 175:48] wire _T_218 = 3'h6 >= _T_197; // @[axi4_to_ahb.scala 175:62] wire _T_219 = buf_byteen[6] & _T_218; // @[axi4_to_ahb.scala 175:48] - wire [3:0] _T_223 = _T_201 ? 4'h0 : 4'h8; // @[Mux.scala 98:16] - wire [3:0] _T_224 = _T_204 ? 4'h1 : _T_223; // @[Mux.scala 98:16] - wire [3:0] _T_225 = _T_207 ? 4'h2 : _T_224; // @[Mux.scala 98:16] - wire [3:0] _T_226 = _T_210 ? 4'h3 : _T_225; // @[Mux.scala 98:16] - wire [3:0] _T_227 = _T_213 ? 4'h4 : _T_226; // @[Mux.scala 98:16] - wire [3:0] _T_228 = _T_216 ? 4'h5 : _T_227; // @[Mux.scala 98:16] - wire [3:0] _T_229 = _T_219 ? 4'h6 : _T_228; // @[Mux.scala 98:16] - wire [3:0] _T_230 = buf_byteen[7] ? 4'h7 : _T_229; // @[Mux.scala 98:16] - wire [3:0] _T_231 = trxn_done ? _T_230 : {{1'd0}, buf_cmd_byte_ptrQ}; // @[axi4_to_ahb.scala 291:30] + wire [2:0] _T_224 = _T_219 ? 3'h6 : 3'h7; // @[Mux.scala 98:16] + wire [2:0] _T_225 = _T_216 ? 3'h5 : _T_224; // @[Mux.scala 98:16] + wire [2:0] _T_226 = _T_213 ? 3'h4 : _T_225; // @[Mux.scala 98:16] + wire [2:0] _T_227 = _T_210 ? 3'h3 : _T_226; // @[Mux.scala 98:16] + wire [2:0] _T_228 = _T_207 ? 3'h2 : _T_227; // @[Mux.scala 98:16] + wire [2:0] _T_229 = _T_204 ? 3'h1 : _T_228; // @[Mux.scala 98:16] + wire [2:0] _T_230 = _T_201 ? 3'h0 : _T_229; // @[Mux.scala 98:16] + wire [2:0] _T_231 = trxn_done ? _T_230 : buf_cmd_byte_ptrQ; // @[axi4_to_ahb.scala 291:30] wire _T_232 = buf_cmd_byte_ptrQ == 3'h7; // @[axi4_to_ahb.scala 292:65] reg buf_aligned; // @[Reg.scala 27:20] wire _T_233 = buf_aligned | _T_232; // @[axi4_to_ahb.scala 292:44] @@ -356,7 +354,7 @@ module axi4_to_ahb( wire [1:0] _T_356 = _T_354 ? 2'h3 : 2'h0; // @[Bitwise.scala 72:12] wire [1:0] _T_357 = _T_356 & 2'h2; // @[axi4_to_ahb.scala 308:71] wire _T_364 = trxn_done | bypass_en; // @[axi4_to_ahb.scala 311:40] - wire [3:0] _T_439 = bypass_en ? _T_93 : _T_231; // @[axi4_to_ahb.scala 312:30] + wire [2:0] _T_439 = bypass_en ? _T_93 : _T_231; // @[axi4_to_ahb.scala 312:30] wire _GEN_6 = _T_281 & ahb_hresp_q; // @[Conditional.scala 39:67] wire _GEN_7 = _T_281 ? buf_state_en : _T_440; // @[Conditional.scala 39:67] wire _GEN_9 = _T_281 & _T_301; // @[Conditional.scala 39:67] @@ -369,10 +367,10 @@ module axi4_to_ahb( wire _GEN_10 = _T_281 & buf_wr_en; // @[Conditional.scala 39:67] wire [1:0] _GEN_13 = _T_281 ? _T_357 : 2'h0; // @[Conditional.scala 39:67] wire _GEN_16 = _T_281 & _T_364; // @[Conditional.scala 39:67] - wire [3:0] _GEN_17 = _T_281 ? _T_439 : 4'h0; // @[Conditional.scala 39:67] + wire [2:0] _GEN_17 = _T_281 ? _T_439 : 3'h0; // @[Conditional.scala 39:67] wire _GEN_21 = _T_188 ? buf_state_en : _GEN_16; // @[Conditional.scala 39:67] wire _GEN_22 = _T_188 & buf_state_en; // @[Conditional.scala 39:67] - wire [3:0] _GEN_23 = _T_188 ? _T_231 : _GEN_17; // @[Conditional.scala 39:67] + wire [2:0] _GEN_23 = _T_188 ? _T_231 : _GEN_17; // @[Conditional.scala 39:67] wire [1:0] _GEN_25 = _T_188 ? _T_280 : _GEN_13; // @[Conditional.scala 39:67] wire _GEN_28 = _T_188 ? 1'h0 : _GEN_7; // @[Conditional.scala 39:67] wire _GEN_31 = _T_188 ? 1'h0 : _GEN_10; // @[Conditional.scala 39:67] @@ -380,29 +378,29 @@ module axi4_to_ahb( wire _GEN_38 = _T_186 ? buf_state_en : _GEN_28; // @[Conditional.scala 39:67] wire _GEN_39 = _T_186 ? buf_state_en : _GEN_22; // @[Conditional.scala 39:67] wire _GEN_41 = _T_186 ? 1'h0 : _GEN_21; // @[Conditional.scala 39:67] - wire [3:0] _GEN_42 = _T_186 ? 4'h0 : _GEN_23; // @[Conditional.scala 39:67] + wire [2:0] _GEN_42 = _T_186 ? 3'h0 : _GEN_23; // @[Conditional.scala 39:67] wire [1:0] _GEN_44 = _T_186 ? 2'h0 : _GEN_25; // @[Conditional.scala 39:67] wire _GEN_53 = _T_175 ? buf_state_en : _GEN_39; // @[Conditional.scala 39:67] - wire [3:0] _GEN_54 = _T_175 ? {{1'd0}, buf_addr[2:0]} : _GEN_42; // @[Conditional.scala 39:67] + wire [2:0] _GEN_54 = _T_175 ? buf_addr[2:0] : _GEN_42; // @[Conditional.scala 39:67] wire [1:0] _GEN_55 = _T_175 ? _T_185 : _GEN_44; // @[Conditional.scala 39:67] wire _GEN_56 = _T_175 ? 1'h0 : _GEN_36; // @[Conditional.scala 39:67] wire _GEN_58 = _T_175 ? 1'h0 : _GEN_38; // @[Conditional.scala 39:67] wire _GEN_60 = _T_175 ? 1'h0 : _GEN_41; // @[Conditional.scala 39:67] wire _GEN_70 = _T_136 ? buf_state_en : _GEN_56; // @[Conditional.scala 39:67] wire _GEN_72 = _T_136 ? buf_state_en : _GEN_58; // @[Conditional.scala 39:67] - wire [3:0] _GEN_76 = _T_136 ? {{1'd0}, _T_130} : _GEN_54; // @[Conditional.scala 39:67] + wire [2:0] _GEN_76 = _T_136 ? _T_130 : _GEN_54; // @[Conditional.scala 39:67] wire [1:0] _GEN_77 = _T_136 ? _T_174 : _GEN_55; // @[Conditional.scala 39:67] wire _GEN_78 = _T_136 ? buf_wr_en : _GEN_53; // @[Conditional.scala 39:67] wire _GEN_80 = _T_136 ? 1'h0 : _GEN_60; // @[Conditional.scala 39:67] wire _GEN_85 = _T_101 ? buf_state_en : _GEN_78; // @[Conditional.scala 39:67] - wire [3:0] _GEN_89 = _T_101 ? {{1'd0}, _T_130} : _GEN_76; // @[Conditional.scala 39:67] + wire [2:0] _GEN_89 = _T_101 ? _T_130 : _GEN_76; // @[Conditional.scala 39:67] wire [1:0] _GEN_90 = _T_101 ? _T_135 : _GEN_77; // @[Conditional.scala 39:67] wire _GEN_91 = _T_101 ? 1'h0 : _GEN_70; // @[Conditional.scala 39:67] wire _GEN_93 = _T_101 ? 1'h0 : _GEN_72; // @[Conditional.scala 39:67] wire _GEN_96 = _T_101 ? 1'h0 : _GEN_80; // @[Conditional.scala 39:67] wire buf_data_wr_en = _T_49 ? _T_56 : _GEN_91; // @[Conditional.scala 40:58] wire buf_cmd_byte_ptr_en = _T_49 ? buf_state_en : _GEN_96; // @[Conditional.scala 40:58] - wire [3:0] _GEN_105 = _T_49 ? _T_95 : _GEN_89; // @[Conditional.scala 40:58] + wire [2:0] buf_cmd_byte_ptr = _T_49 ? _T_95 : _GEN_89; // @[Conditional.scala 40:58] wire slvbuf_wr_en = _T_49 ? 1'h0 : _GEN_85; // @[Conditional.scala 40:58] wire slvbuf_error_en = _T_49 ? 1'h0 : _GEN_93; // @[Conditional.scala 40:58] wire _T_535 = master_size[1:0] == 2'h0; // @[axi4_to_ahb.scala 348:24] @@ -453,7 +451,6 @@ module axi4_to_ahb( wire [1:0] _T_528 = 2'h1 & _T_527; // @[axi4_to_ahb.scala 162:21] wire [1:0] _T_529 = _T_514 | _T_528; // @[axi4_to_ahb.scala 161:93] wire [1:0] _T_531 = _T_498 ? _T_529 : master_size[1:0]; // @[axi4_to_ahb.scala 346:21] - wire [2:0] buf_cmd_byte_ptr = _GEN_105[2:0]; // @[axi4_to_ahb.scala 217:20 axi4_to_ahb.scala 233:24 axi4_to_ahb.scala 247:24 axi4_to_ahb.scala 262:24 axi4_to_ahb.scala 272:24 axi4_to_ahb.scala 291:24 axi4_to_ahb.scala 312:24] wire [31:0] _T_570 = {master_addr[31:3],buf_cmd_byte_ptr}; // @[Cat.scala 29:58] wire [31:0] _T_573 = {buf_addr[31:3],buf_cmd_byte_ptr}; // @[Cat.scala 29:58] wire [1:0] _T_577 = buf_aligned_in ? 2'h3 : 2'h0; // @[Bitwise.scala 72:12] @@ -973,7 +970,105 @@ end // initial if (reset) begin buf_cmd_byte_ptrQ <= 3'h0; end else if (buf_cmd_byte_ptr_en) begin - buf_cmd_byte_ptrQ <= buf_cmd_byte_ptr; + if (_T_49) begin + if (buf_write_in) begin + if (wrbuf_byteen[0]) begin + buf_cmd_byte_ptrQ <= 3'h0; + end else if (wrbuf_byteen[1]) begin + buf_cmd_byte_ptrQ <= 3'h1; + end else if (wrbuf_byteen[2]) begin + buf_cmd_byte_ptrQ <= 3'h2; + end else if (wrbuf_byteen[3]) begin + buf_cmd_byte_ptrQ <= 3'h3; + end else if (wrbuf_byteen[4]) begin + buf_cmd_byte_ptrQ <= 3'h4; + end else if (wrbuf_byteen[5]) begin + buf_cmd_byte_ptrQ <= 3'h5; + end else if (wrbuf_byteen[6]) begin + buf_cmd_byte_ptrQ <= 3'h6; + end else begin + buf_cmd_byte_ptrQ <= 3'h7; + end + end else begin + buf_cmd_byte_ptrQ <= master_addr[2:0]; + end + end else if (_T_101) begin + if (bypass_en) begin + buf_cmd_byte_ptrQ <= master_addr[2:0]; + end else begin + buf_cmd_byte_ptrQ <= buf_addr[2:0]; + end + end else if (_T_136) begin + if (bypass_en) begin + buf_cmd_byte_ptrQ <= master_addr[2:0]; + end else begin + buf_cmd_byte_ptrQ <= buf_addr[2:0]; + end + end else if (_T_175) begin + buf_cmd_byte_ptrQ <= buf_addr[2:0]; + end else if (_T_186) begin + buf_cmd_byte_ptrQ <= 3'h0; + end else if (_T_188) begin + if (trxn_done) begin + if (_T_201) begin + buf_cmd_byte_ptrQ <= 3'h0; + end else if (_T_204) begin + buf_cmd_byte_ptrQ <= 3'h1; + end else if (_T_207) begin + buf_cmd_byte_ptrQ <= 3'h2; + end else if (_T_210) begin + buf_cmd_byte_ptrQ <= 3'h3; + end else if (_T_213) begin + buf_cmd_byte_ptrQ <= 3'h4; + end else if (_T_216) begin + buf_cmd_byte_ptrQ <= 3'h5; + end else if (_T_219) begin + buf_cmd_byte_ptrQ <= 3'h6; + end else begin + buf_cmd_byte_ptrQ <= 3'h7; + end + end + end else if (_T_281) begin + if (bypass_en) begin + if (wrbuf_byteen[0]) begin + buf_cmd_byte_ptrQ <= 3'h0; + end else if (wrbuf_byteen[1]) begin + buf_cmd_byte_ptrQ <= 3'h1; + end else if (wrbuf_byteen[2]) begin + buf_cmd_byte_ptrQ <= 3'h2; + end else if (wrbuf_byteen[3]) begin + buf_cmd_byte_ptrQ <= 3'h3; + end else if (wrbuf_byteen[4]) begin + buf_cmd_byte_ptrQ <= 3'h4; + end else if (wrbuf_byteen[5]) begin + buf_cmd_byte_ptrQ <= 3'h5; + end else if (wrbuf_byteen[6]) begin + buf_cmd_byte_ptrQ <= 3'h6; + end else begin + buf_cmd_byte_ptrQ <= 3'h7; + end + end else if (trxn_done) begin + if (_T_201) begin + buf_cmd_byte_ptrQ <= 3'h0; + end else if (_T_204) begin + buf_cmd_byte_ptrQ <= 3'h1; + end else if (_T_207) begin + buf_cmd_byte_ptrQ <= 3'h2; + end else if (_T_210) begin + buf_cmd_byte_ptrQ <= 3'h3; + end else if (_T_213) begin + buf_cmd_byte_ptrQ <= 3'h4; + end else if (_T_216) begin + buf_cmd_byte_ptrQ <= 3'h5; + end else if (_T_219) begin + buf_cmd_byte_ptrQ <= 3'h6; + end else begin + buf_cmd_byte_ptrQ <= 3'h7; + end + end + end else begin + buf_cmd_byte_ptrQ <= 3'h0; + end end end always @(posedge buf_clk or posedge reset) begin diff --git a/src/main/scala/lib/axi4_to_ahb.scala b/src/main/scala/lib/axi4_to_ahb.scala index 80734301..25a673fc 100644 --- a/src/main/scala/lib/axi4_to_ahb.scala +++ b/src/main/scala/lib/axi4_to_ahb.scala @@ -172,8 +172,8 @@ class axi4_to_ahb extends Module with el2_lib with RequireAsyncReset with Config } def get_nxtbyte_ptr(current_byte_ptr: UInt, byteen: UInt, get_next: Bool): UInt = { val start_ptr = Mux(get_next, current_byte_ptr + 1.U, current_byte_ptr) - val temp = (0 until 8).map(j => (byteen(j) & (j.asUInt() >= start_ptr)) -> j.U).reverse - MuxCase(8.U, temp) + val temp = (0 until 8).map(j => (byteen(j) & (j.asUInt() >= start_ptr)) -> j.U) + MuxCase(7.U, temp) } wr_cmd_vld := wrbuf_vld & wrbuf_data_vld master_valid := wr_cmd_vld | io.axi_arvalid diff --git a/target/scala-2.12/classes/lib/axi4_to_ahb.class b/target/scala-2.12/classes/lib/axi4_to_ahb.class index 12b1239cd669b88e0c09964c116df23632cbebdf..7f4290d4c57eea64f96b461d2daf2bc13734c50e 100644 GIT binary patch literal 106813 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 BLW2MR literal 106871 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 T;)g-N0I?eVWMm&H@74bUs#}f5