From 185f4fa702463c1b858cb9a1bdca725095b8e7a4 Mon Sep 17 00:00:00 2001 From: waleed-lm Date: Fri, 9 Oct 2020 18:40:39 +0500 Subject: [PATCH] Hard-coded values --- el2_ifu_iccm_mem.fir | 154 ++++++++++-------- el2_ifu_iccm_mem.v | 82 +++++----- src/main/scala/ifu/el2_ifu_iccm_mem.scala | 6 +- .../classes/ifu/el2_ifu_iccm_mem.class | Bin 93095 -> 93155 bytes 4 files changed, 129 insertions(+), 113 deletions(-) diff --git a/el2_ifu_iccm_mem.fir b/el2_ifu_iccm_mem.fir index 65c94add..467586dd 100644 --- a/el2_ifu_iccm_mem.fir +++ b/el2_ifu_iccm_mem.fir @@ -511,76 +511,86 @@ circuit el2_ifu_iccm_mem : node _T_374 = bits(addr_bank_inc, 2, 1) @[el2_ifu_iccm_mem.scala 103:48] reg iccm_rd_addr_hi_q : UInt, clock with : (reset => (reset, UInt<1>("h00"))) @[el2_ifu_iccm_mem.scala 103:34] iccm_rd_addr_hi_q <= _T_374 @[el2_ifu_iccm_mem.scala 103:34] - node _T_375 = eq(iccm_rd_addr_hi_q, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 105:86] - node _T_376 = bits(iccm_bank_dout_fn_0, 31, 0) @[el2_ifu_iccm_mem.scala 105:115] - node _T_377 = eq(iccm_rd_addr_hi_q, UInt<1>("h01")) @[el2_ifu_iccm_mem.scala 105:86] - node _T_378 = bits(iccm_bank_dout_fn_1, 31, 0) @[el2_ifu_iccm_mem.scala 105:115] - node _T_379 = eq(iccm_rd_addr_hi_q, UInt<2>("h02")) @[el2_ifu_iccm_mem.scala 105:86] - node _T_380 = bits(iccm_bank_dout_fn_2, 31, 0) @[el2_ifu_iccm_mem.scala 105:115] - node _T_381 = eq(iccm_rd_addr_hi_q, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 105:86] - node _T_382 = bits(iccm_bank_dout_fn_3, 31, 0) @[el2_ifu_iccm_mem.scala 105:115] - node _T_383 = mux(_T_375, _T_376, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_384 = mux(_T_377, _T_378, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_385 = mux(_T_379, _T_380, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_386 = mux(_T_381, _T_382, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_387 = or(_T_383, _T_384) @[Mux.scala 27:72] - node _T_388 = or(_T_387, _T_385) @[Mux.scala 27:72] - node _T_389 = or(_T_388, _T_386) @[Mux.scala 27:72] - wire _T_390 : UInt<32> @[Mux.scala 27:72] - _T_390 <= _T_389 @[Mux.scala 27:72] - node _T_391 = bits(iccm_rd_addr_lo_q, 2, 1) @[el2_ifu_iccm_mem.scala 106:59] - node _T_392 = eq(_T_391, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 106:77] - node _T_393 = bits(iccm_bank_dout_fn_0, 31, 0) @[el2_ifu_iccm_mem.scala 106:106] - node _T_394 = bits(iccm_rd_addr_lo_q, 2, 1) @[el2_ifu_iccm_mem.scala 106:59] - node _T_395 = eq(_T_394, UInt<1>("h01")) @[el2_ifu_iccm_mem.scala 106:77] - node _T_396 = bits(iccm_bank_dout_fn_1, 31, 0) @[el2_ifu_iccm_mem.scala 106:106] - node _T_397 = bits(iccm_rd_addr_lo_q, 2, 1) @[el2_ifu_iccm_mem.scala 106:59] - node _T_398 = eq(_T_397, UInt<2>("h02")) @[el2_ifu_iccm_mem.scala 106:77] - node _T_399 = bits(iccm_bank_dout_fn_2, 31, 0) @[el2_ifu_iccm_mem.scala 106:106] - node _T_400 = bits(iccm_rd_addr_lo_q, 2, 1) @[el2_ifu_iccm_mem.scala 106:59] - node _T_401 = eq(_T_400, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 106:77] - node _T_402 = bits(iccm_bank_dout_fn_3, 31, 0) @[el2_ifu_iccm_mem.scala 106:106] - node _T_403 = mux(_T_392, _T_393, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_404 = mux(_T_395, _T_396, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_405 = mux(_T_398, _T_399, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_406 = mux(_T_401, _T_402, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_407 = or(_T_403, _T_404) @[Mux.scala 27:72] - node _T_408 = or(_T_407, _T_405) @[Mux.scala 27:72] - node _T_409 = or(_T_408, _T_406) @[Mux.scala 27:72] - wire _T_410 : UInt<32> @[Mux.scala 27:72] - _T_410 <= _T_409 @[Mux.scala 27:72] - node iccm_rd_data_pre = cat(_T_390, _T_410) @[Cat.scala 29:58] - node _T_411 = bits(iccm_rd_addr_lo_q, 0, 0) @[el2_ifu_iccm_mem.scala 108:43] - node _T_412 = bits(_T_411, 0, 0) @[el2_ifu_iccm_mem.scala 108:53] - node _T_413 = mux(UInt<1>("h00"), UInt<16>("h0ffff"), UInt<16>("h00")) @[Bitwise.scala 72:12] - node _T_414 = bits(iccm_rd_data_pre, 63, 16) @[el2_ifu_iccm_mem.scala 108:89] - node _T_415 = cat(_T_413, _T_414) @[Cat.scala 29:58] - node _T_416 = mux(_T_412, _T_415, iccm_rd_data_pre) @[el2_ifu_iccm_mem.scala 108:25] - io.iccm_rd_data <= _T_416 @[el2_ifu_iccm_mem.scala 108:19] - node _T_417 = eq(iccm_rd_addr_hi_q, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 109:85] - node _T_418 = eq(iccm_rd_addr_hi_q, UInt<1>("h01")) @[el2_ifu_iccm_mem.scala 109:85] - node _T_419 = eq(iccm_rd_addr_hi_q, UInt<2>("h02")) @[el2_ifu_iccm_mem.scala 109:85] - node _T_420 = eq(iccm_rd_addr_hi_q, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 109:85] - node _T_421 = mux(_T_417, iccm_bank_dout_fn_0, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_422 = mux(_T_418, iccm_bank_dout_fn_1, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_423 = mux(_T_419, iccm_bank_dout_fn_2, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_424 = mux(_T_420, iccm_bank_dout_fn_3, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_425 = or(_T_421, _T_422) @[Mux.scala 27:72] - node _T_426 = or(_T_425, _T_423) @[Mux.scala 27:72] - node _T_427 = or(_T_426, _T_424) @[Mux.scala 27:72] - wire _T_428 : UInt<39> @[Mux.scala 27:72] - _T_428 <= _T_427 @[Mux.scala 27:72] - node _T_429 = bits(iccm_rd_addr_lo_q, 1, 1) @[el2_ifu_iccm_mem.scala 110:49] - node _T_430 = eq(_T_429, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 110:31] - node _T_431 = eq(_T_430, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 110:65] - node _T_432 = bits(iccm_rd_addr_lo_q, 1, 1) @[el2_ifu_iccm_mem.scala 110:49] - node _T_433 = eq(_T_432, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 110:31] - node _T_434 = eq(_T_433, UInt<1>("h01")) @[el2_ifu_iccm_mem.scala 110:65] - node _T_435 = mux(_T_431, iccm_bank_dout_fn_2, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_436 = mux(_T_434, iccm_bank_dout_fn_3, UInt<1>("h00")) @[Mux.scala 27:72] - node _T_437 = or(_T_435, _T_436) @[Mux.scala 27:72] - wire _T_438 : UInt<39> @[Mux.scala 27:72] - _T_438 <= _T_437 @[Mux.scala 27:72] - node _T_439 = cat(_T_428, _T_438) @[Cat.scala 29:58] - io.iccm_rd_data_ecc <= _T_439 @[el2_ifu_iccm_mem.scala 109:23] + node _T_375 = bits(iccm_rd_addr_lo_q, 2, 1) @[el2_ifu_iccm_mem.scala 105:86] + node _T_376 = eq(_T_375, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 105:104] + node _T_377 = bits(iccm_bank_dout_fn_1, 31, 0) @[el2_ifu_iccm_mem.scala 105:151] + node _T_378 = bits(iccm_rd_addr_lo_q, 2, 1) @[el2_ifu_iccm_mem.scala 105:86] + node _T_379 = eq(_T_378, UInt<1>("h01")) @[el2_ifu_iccm_mem.scala 105:104] + node _T_380 = bits(iccm_bank_dout_fn_2, 31, 0) @[el2_ifu_iccm_mem.scala 105:151] + node _T_381 = bits(iccm_rd_addr_lo_q, 2, 1) @[el2_ifu_iccm_mem.scala 105:86] + node _T_382 = eq(_T_381, UInt<2>("h02")) @[el2_ifu_iccm_mem.scala 105:104] + node _T_383 = bits(iccm_bank_dout_fn_3, 31, 0) @[el2_ifu_iccm_mem.scala 105:151] + node _T_384 = bits(iccm_rd_addr_lo_q, 2, 1) @[el2_ifu_iccm_mem.scala 105:86] + node _T_385 = eq(_T_384, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 105:104] + node _T_386 = bits(iccm_bank_dout_fn_0, 31, 0) @[el2_ifu_iccm_mem.scala 105:151] + node _T_387 = mux(_T_376, _T_377, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_388 = mux(_T_379, _T_380, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_389 = mux(_T_382, _T_383, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_390 = mux(_T_385, _T_386, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_391 = or(_T_387, _T_388) @[Mux.scala 27:72] + node _T_392 = or(_T_391, _T_389) @[Mux.scala 27:72] + node _T_393 = or(_T_392, _T_390) @[Mux.scala 27:72] + wire _T_394 : UInt<32> @[Mux.scala 27:72] + _T_394 <= _T_393 @[Mux.scala 27:72] + node _T_395 = bits(iccm_rd_addr_lo_q, 2, 1) @[el2_ifu_iccm_mem.scala 106:59] + node _T_396 = eq(_T_395, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 106:77] + node _T_397 = bits(iccm_bank_dout_fn_0, 31, 0) @[el2_ifu_iccm_mem.scala 106:106] + node _T_398 = bits(iccm_rd_addr_lo_q, 2, 1) @[el2_ifu_iccm_mem.scala 106:59] + node _T_399 = eq(_T_398, UInt<1>("h01")) @[el2_ifu_iccm_mem.scala 106:77] + node _T_400 = bits(iccm_bank_dout_fn_1, 31, 0) @[el2_ifu_iccm_mem.scala 106:106] + node _T_401 = bits(iccm_rd_addr_lo_q, 2, 1) @[el2_ifu_iccm_mem.scala 106:59] + node _T_402 = eq(_T_401, UInt<2>("h02")) @[el2_ifu_iccm_mem.scala 106:77] + node _T_403 = bits(iccm_bank_dout_fn_2, 31, 0) @[el2_ifu_iccm_mem.scala 106:106] + node _T_404 = bits(iccm_rd_addr_lo_q, 2, 1) @[el2_ifu_iccm_mem.scala 106:59] + node _T_405 = eq(_T_404, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 106:77] + node _T_406 = bits(iccm_bank_dout_fn_3, 31, 0) @[el2_ifu_iccm_mem.scala 106:106] + node _T_407 = mux(_T_396, _T_397, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_408 = mux(_T_399, _T_400, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_409 = mux(_T_402, _T_403, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_410 = mux(_T_405, _T_406, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_411 = or(_T_407, _T_408) @[Mux.scala 27:72] + node _T_412 = or(_T_411, _T_409) @[Mux.scala 27:72] + node _T_413 = or(_T_412, _T_410) @[Mux.scala 27:72] + wire _T_414 : UInt<32> @[Mux.scala 27:72] + _T_414 <= _T_413 @[Mux.scala 27:72] + node iccm_rd_data_pre = cat(_T_394, _T_414) @[Cat.scala 29:58] + node _T_415 = bits(iccm_rd_addr_lo_q, 0, 0) @[el2_ifu_iccm_mem.scala 108:43] + node _T_416 = bits(_T_415, 0, 0) @[el2_ifu_iccm_mem.scala 108:53] + node _T_417 = mux(UInt<1>("h00"), UInt<16>("h0ffff"), UInt<16>("h00")) @[Bitwise.scala 72:12] + node _T_418 = bits(iccm_rd_data_pre, 63, 16) @[el2_ifu_iccm_mem.scala 108:89] + node _T_419 = cat(_T_417, _T_418) @[Cat.scala 29:58] + node _T_420 = mux(_T_416, _T_419, iccm_rd_data_pre) @[el2_ifu_iccm_mem.scala 108:25] + io.iccm_rd_data <= _T_420 @[el2_ifu_iccm_mem.scala 108:19] + node _T_421 = eq(iccm_rd_addr_hi_q, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 109:85] + node _T_422 = eq(iccm_rd_addr_hi_q, UInt<1>("h01")) @[el2_ifu_iccm_mem.scala 109:85] + node _T_423 = eq(iccm_rd_addr_hi_q, UInt<2>("h02")) @[el2_ifu_iccm_mem.scala 109:85] + node _T_424 = eq(iccm_rd_addr_hi_q, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 109:85] + node _T_425 = mux(_T_421, iccm_bank_dout_fn_0, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_426 = mux(_T_422, iccm_bank_dout_fn_1, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_427 = mux(_T_423, iccm_bank_dout_fn_2, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_428 = mux(_T_424, iccm_bank_dout_fn_3, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_429 = or(_T_425, _T_426) @[Mux.scala 27:72] + node _T_430 = or(_T_429, _T_427) @[Mux.scala 27:72] + node _T_431 = or(_T_430, _T_428) @[Mux.scala 27:72] + wire _T_432 : UInt<39> @[Mux.scala 27:72] + _T_432 <= _T_431 @[Mux.scala 27:72] + node _T_433 = bits(iccm_rd_addr_lo_q, 1, 0) @[el2_ifu_iccm_mem.scala 110:61] + node _T_434 = eq(_T_433, UInt<1>("h00")) @[el2_ifu_iccm_mem.scala 110:79] + node _T_435 = bits(iccm_rd_addr_lo_q, 1, 0) @[el2_ifu_iccm_mem.scala 110:61] + node _T_436 = eq(_T_435, UInt<1>("h01")) @[el2_ifu_iccm_mem.scala 110:79] + node _T_437 = bits(iccm_rd_addr_lo_q, 1, 0) @[el2_ifu_iccm_mem.scala 110:61] + node _T_438 = eq(_T_437, UInt<2>("h02")) @[el2_ifu_iccm_mem.scala 110:79] + node _T_439 = bits(iccm_rd_addr_lo_q, 1, 0) @[el2_ifu_iccm_mem.scala 110:61] + node _T_440 = eq(_T_439, UInt<2>("h03")) @[el2_ifu_iccm_mem.scala 110:79] + node _T_441 = mux(_T_434, iccm_bank_dout_fn_0, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_442 = mux(_T_436, iccm_bank_dout_fn_1, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_443 = mux(_T_438, iccm_bank_dout_fn_2, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_444 = mux(_T_440, iccm_bank_dout_fn_3, UInt<1>("h00")) @[Mux.scala 27:72] + node _T_445 = or(_T_441, _T_442) @[Mux.scala 27:72] + node _T_446 = or(_T_445, _T_443) @[Mux.scala 27:72] + node _T_447 = or(_T_446, _T_444) @[Mux.scala 27:72] + wire _T_448 : UInt<39> @[Mux.scala 27:72] + _T_448 <= _T_447 @[Mux.scala 27:72] + node _T_449 = cat(_T_432, _T_448) @[Cat.scala 29:58] + io.iccm_rd_data_ecc <= _T_449 @[el2_ifu_iccm_mem.scala 109:23] diff --git a/el2_ifu_iccm_mem.v b/el2_ifu_iccm_mem.v index f1f23808..22d66af2 100644 --- a/el2_ifu_iccm_mem.v +++ b/el2_ifu_iccm_mem.v @@ -239,42 +239,48 @@ module el2_ifu_iccm_mem( reg [2:0] _T_373; // @[Reg.scala 27:20] reg [2:0] iccm_rd_addr_lo_q; // @[el2_ifu_iccm_mem.scala 102:34] reg [1:0] iccm_rd_addr_hi_q; // @[el2_ifu_iccm_mem.scala 103:34] - wire _T_375 = iccm_rd_addr_hi_q == 2'h0; // @[el2_ifu_iccm_mem.scala 105:86] - wire _T_377 = iccm_rd_addr_hi_q == 2'h1; // @[el2_ifu_iccm_mem.scala 105:86] - wire _T_379 = iccm_rd_addr_hi_q == 2'h2; // @[el2_ifu_iccm_mem.scala 105:86] - wire _T_381 = iccm_rd_addr_hi_q == 2'h3; // @[el2_ifu_iccm_mem.scala 105:86] - wire [31:0] _T_383 = _T_375 ? iccm_bank_dout_fn_0[31:0] : 32'h0; // @[Mux.scala 27:72] - wire [31:0] _T_384 = _T_377 ? iccm_bank_dout_fn_1[31:0] : 32'h0; // @[Mux.scala 27:72] - wire [31:0] _T_385 = _T_379 ? iccm_bank_dout_fn_2[31:0] : 32'h0; // @[Mux.scala 27:72] - wire [31:0] _T_386 = _T_381 ? iccm_bank_dout_fn_3[31:0] : 32'h0; // @[Mux.scala 27:72] - wire [31:0] _T_387 = _T_383 | _T_384; // @[Mux.scala 27:72] - wire [31:0] _T_388 = _T_387 | _T_385; // @[Mux.scala 27:72] - wire [31:0] _T_389 = _T_388 | _T_386; // @[Mux.scala 27:72] - wire _T_392 = iccm_rd_addr_lo_q[2:1] == 2'h0; // @[el2_ifu_iccm_mem.scala 106:77] - wire _T_395 = iccm_rd_addr_lo_q[2:1] == 2'h1; // @[el2_ifu_iccm_mem.scala 106:77] - wire _T_398 = iccm_rd_addr_lo_q[2:1] == 2'h2; // @[el2_ifu_iccm_mem.scala 106:77] - wire _T_401 = iccm_rd_addr_lo_q[2:1] == 2'h3; // @[el2_ifu_iccm_mem.scala 106:77] - wire [31:0] _T_403 = _T_392 ? iccm_bank_dout_fn_0[31:0] : 32'h0; // @[Mux.scala 27:72] - wire [31:0] _T_404 = _T_395 ? iccm_bank_dout_fn_1[31:0] : 32'h0; // @[Mux.scala 27:72] - wire [31:0] _T_405 = _T_398 ? iccm_bank_dout_fn_2[31:0] : 32'h0; // @[Mux.scala 27:72] - wire [31:0] _T_406 = _T_401 ? iccm_bank_dout_fn_3[31:0] : 32'h0; // @[Mux.scala 27:72] - wire [31:0] _T_407 = _T_403 | _T_404; // @[Mux.scala 27:72] - wire [31:0] _T_408 = _T_407 | _T_405; // @[Mux.scala 27:72] - wire [31:0] _T_409 = _T_408 | _T_406; // @[Mux.scala 27:72] - wire [63:0] iccm_rd_data_pre = {_T_389,_T_409}; // @[Cat.scala 29:58] - wire [63:0] _T_415 = {16'h0,iccm_rd_data_pre[63:16]}; // @[Cat.scala 29:58] - wire [38:0] _T_421 = _T_375 ? iccm_bank_dout_fn_0 : 39'h0; // @[Mux.scala 27:72] - wire [38:0] _T_422 = _T_377 ? iccm_bank_dout_fn_1 : 39'h0; // @[Mux.scala 27:72] - wire [38:0] _T_423 = _T_379 ? iccm_bank_dout_fn_2 : 39'h0; // @[Mux.scala 27:72] - wire [38:0] _T_424 = _T_381 ? iccm_bank_dout_fn_3 : 39'h0; // @[Mux.scala 27:72] - wire [38:0] _T_425 = _T_421 | _T_422; // @[Mux.scala 27:72] - wire [38:0] _T_426 = _T_425 | _T_423; // @[Mux.scala 27:72] - wire [38:0] _T_427 = _T_426 | _T_424; // @[Mux.scala 27:72] - wire _T_430 = ~iccm_rd_addr_lo_q[1]; // @[el2_ifu_iccm_mem.scala 110:31] - wire _T_431 = ~_T_430; // @[el2_ifu_iccm_mem.scala 110:65] - wire [38:0] _T_435 = _T_431 ? iccm_bank_dout_fn_2 : 39'h0; // @[Mux.scala 27:72] - wire [38:0] _T_436 = _T_430 ? iccm_bank_dout_fn_3 : 39'h0; // @[Mux.scala 27:72] - wire [38:0] _T_437 = _T_435 | _T_436; // @[Mux.scala 27:72] + wire _T_376 = iccm_rd_addr_lo_q[2:1] == 2'h0; // @[el2_ifu_iccm_mem.scala 105:104] + wire _T_379 = iccm_rd_addr_lo_q[2:1] == 2'h1; // @[el2_ifu_iccm_mem.scala 105:104] + wire _T_382 = iccm_rd_addr_lo_q[2:1] == 2'h2; // @[el2_ifu_iccm_mem.scala 105:104] + wire _T_385 = iccm_rd_addr_lo_q[2:1] == 2'h3; // @[el2_ifu_iccm_mem.scala 105:104] + wire [31:0] _T_387 = _T_376 ? iccm_bank_dout_fn_1[31:0] : 32'h0; // @[Mux.scala 27:72] + wire [31:0] _T_388 = _T_379 ? iccm_bank_dout_fn_2[31:0] : 32'h0; // @[Mux.scala 27:72] + wire [31:0] _T_389 = _T_382 ? iccm_bank_dout_fn_3[31:0] : 32'h0; // @[Mux.scala 27:72] + wire [31:0] _T_390 = _T_385 ? iccm_bank_dout_fn_0[31:0] : 32'h0; // @[Mux.scala 27:72] + wire [31:0] _T_391 = _T_387 | _T_388; // @[Mux.scala 27:72] + wire [31:0] _T_392 = _T_391 | _T_389; // @[Mux.scala 27:72] + wire [31:0] _T_393 = _T_392 | _T_390; // @[Mux.scala 27:72] + wire [31:0] _T_407 = _T_376 ? iccm_bank_dout_fn_0[31:0] : 32'h0; // @[Mux.scala 27:72] + wire [31:0] _T_408 = _T_379 ? iccm_bank_dout_fn_1[31:0] : 32'h0; // @[Mux.scala 27:72] + wire [31:0] _T_409 = _T_382 ? iccm_bank_dout_fn_2[31:0] : 32'h0; // @[Mux.scala 27:72] + wire [31:0] _T_410 = _T_385 ? iccm_bank_dout_fn_3[31:0] : 32'h0; // @[Mux.scala 27:72] + wire [31:0] _T_411 = _T_407 | _T_408; // @[Mux.scala 27:72] + wire [31:0] _T_412 = _T_411 | _T_409; // @[Mux.scala 27:72] + wire [31:0] _T_413 = _T_412 | _T_410; // @[Mux.scala 27:72] + wire [63:0] iccm_rd_data_pre = {_T_393,_T_413}; // @[Cat.scala 29:58] + wire [63:0] _T_419 = {16'h0,iccm_rd_data_pre[63:16]}; // @[Cat.scala 29:58] + wire _T_421 = iccm_rd_addr_hi_q == 2'h0; // @[el2_ifu_iccm_mem.scala 109:85] + wire _T_422 = iccm_rd_addr_hi_q == 2'h1; // @[el2_ifu_iccm_mem.scala 109:85] + wire _T_423 = iccm_rd_addr_hi_q == 2'h2; // @[el2_ifu_iccm_mem.scala 109:85] + wire _T_424 = iccm_rd_addr_hi_q == 2'h3; // @[el2_ifu_iccm_mem.scala 109:85] + wire [38:0] _T_425 = _T_421 ? iccm_bank_dout_fn_0 : 39'h0; // @[Mux.scala 27:72] + wire [38:0] _T_426 = _T_422 ? iccm_bank_dout_fn_1 : 39'h0; // @[Mux.scala 27:72] + wire [38:0] _T_427 = _T_423 ? iccm_bank_dout_fn_2 : 39'h0; // @[Mux.scala 27:72] + wire [38:0] _T_428 = _T_424 ? iccm_bank_dout_fn_3 : 39'h0; // @[Mux.scala 27:72] + wire [38:0] _T_429 = _T_425 | _T_426; // @[Mux.scala 27:72] + wire [38:0] _T_430 = _T_429 | _T_427; // @[Mux.scala 27:72] + wire [38:0] _T_431 = _T_430 | _T_428; // @[Mux.scala 27:72] + wire _T_434 = iccm_rd_addr_lo_q[1:0] == 2'h0; // @[el2_ifu_iccm_mem.scala 110:79] + wire _T_436 = iccm_rd_addr_lo_q[1:0] == 2'h1; // @[el2_ifu_iccm_mem.scala 110:79] + wire _T_438 = iccm_rd_addr_lo_q[1:0] == 2'h2; // @[el2_ifu_iccm_mem.scala 110:79] + wire _T_440 = iccm_rd_addr_lo_q[1:0] == 2'h3; // @[el2_ifu_iccm_mem.scala 110:79] + wire [38:0] _T_441 = _T_434 ? iccm_bank_dout_fn_0 : 39'h0; // @[Mux.scala 27:72] + wire [38:0] _T_442 = _T_436 ? iccm_bank_dout_fn_1 : 39'h0; // @[Mux.scala 27:72] + wire [38:0] _T_443 = _T_438 ? iccm_bank_dout_fn_2 : 39'h0; // @[Mux.scala 27:72] + wire [38:0] _T_444 = _T_440 ? iccm_bank_dout_fn_3 : 39'h0; // @[Mux.scala 27:72] + wire [38:0] _T_445 = _T_441 | _T_442; // @[Mux.scala 27:72] + wire [38:0] _T_446 = _T_445 | _T_443; // @[Mux.scala 27:72] + wire [38:0] _T_447 = _T_446 | _T_444; // @[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] assign _T_85__T_101_data = io_iccm_wr_data[38:0]; @@ -299,8 +305,8 @@ module el2_ifu_iccm_mem( 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_415 : iccm_rd_data_pre; // @[el2_ifu_iccm_mem.scala 22:19 el2_ifu_iccm_mem.scala 108:19] - assign io_iccm_rd_data_ecc = {_T_427,_T_437}; // @[el2_ifu_iccm_mem.scala 23:23 el2_ifu_iccm_mem.scala 109:23] + assign io_iccm_rd_data = iccm_rd_addr_lo_q[0] ? _T_419 : iccm_rd_data_pre; // @[el2_ifu_iccm_mem.scala 22:19 el2_ifu_iccm_mem.scala 108:19] + assign io_iccm_rd_data_ecc = {_T_431,_T_447}; // @[el2_ifu_iccm_mem.scala 23:23 el2_ifu_iccm_mem.scala 109:23] `ifdef RANDOMIZE_GARBAGE_ASSIGN `define RANDOMIZE `endif diff --git a/src/main/scala/ifu/el2_ifu_iccm_mem.scala b/src/main/scala/ifu/el2_ifu_iccm_mem.scala index 4c0f12b9..c1afb718 100644 --- a/src/main/scala/ifu/el2_ifu_iccm_mem.scala +++ b/src/main/scala/ifu/el2_ifu_iccm_mem.scala @@ -101,13 +101,13 @@ class el2_ifu_iccm_mem extends Module with el2_lib { val iccm_rd_addr_lo_q = RegNext(RegEnable(io.iccm_rw_addr(ICCM_BANK_HI-1,0), 0.U, 1.U.asBool), 0.U) val iccm_rd_addr_hi_q = RegNext(addr_bank_inc(ICCM_BANK_HI-1,1), 0.U) - - val iccm_rd_data_pre = Cat(Mux1H((0 until ICCM_NUM_BANKS).map(i=>(iccm_rd_addr_hi_q===i.U)->iccm_bank_dout_fn(i)(31,0))), + //val hig_q_vec = (0 until ICCM_NUM_BANKS) + val iccm_rd_data_pre = Cat(Mux1H((0 until ICCM_NUM_BANKS).map(i=>(iccm_rd_addr_lo_q(ICCM_BANK_HI-1,1)===i.U)->iccm_bank_dout_fn(if(i==3) 0 else i+1)(31,0))), Mux1H((0 until ICCM_NUM_BANKS).map(i=>(iccm_rd_addr_lo_q(ICCM_BANK_HI-1,1)===i.U)->iccm_bank_dout_fn(i)(31,0)))) io.iccm_rd_data := Mux(iccm_rd_addr_lo_q(0).asBool(),Cat(Fill(16,0.U),iccm_rd_data_pre(63,16)) ,iccm_rd_data_pre) io.iccm_rd_data_ecc :=Cat(Mux1H((0 until ICCM_NUM_BANKS).map(i=>(iccm_rd_addr_hi_q===i.U)->iccm_bank_dout_fn(i))), - Mux1H((0 until 2).map(i=>(!iccm_rd_addr_lo_q(ICCM_BANK_HI-2)===i.U)->iccm_bank_dout_fn(i+2)))) + Mux1H((0 until ICCM_NUM_BANKS).map(i=>(iccm_rd_addr_lo_q(ICCM_BANK_HI-2,0)===i.U)->iccm_bank_dout_fn(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 2c4dfe099b46ca758cb0f0fa27abb0f7811e953f..0ac4273b3b99ef4d36f18c6b4c27fcce39954ac1 100644 GIT binary patch literal 93155 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 ZV