From 80a8e5e5341976567b76b4fc3cca289fe2648dbc Mon Sep 17 00:00:00 2001 From: waleed-lm Date: Sat, 7 Nov 2020 19:08:38 +0500 Subject: [PATCH] Bus-buffer testing start --- el2_lsu_bus_buffer.fir | 56 +++++++++--------- el2_lsu_bus_buffer.v | 20 +++---- src/main/scala/lsu/el2_lsu_bus_buffer.scala | 2 +- .../classes/lsu/el2_lsu_bus_buffer.class | Bin 495502 -> 495502 bytes 4 files changed, 37 insertions(+), 41 deletions(-) diff --git a/el2_lsu_bus_buffer.fir b/el2_lsu_bus_buffer.fir index 15cfdcf3..adbbd313 100644 --- a/el2_lsu_bus_buffer.fir +++ b/el2_lsu_bus_buffer.fir @@ -5802,34 +5802,34 @@ circuit el2_lsu_bus_buffer : node _T_4374 = add(_T_4373, _T_4364) @[el2_lsu_bus_buffer.scala 545:126] node _T_4375 = add(_T_4374, _T_4360) @[el2_lsu_bus_buffer.scala 545:126] buf_numvld_cmd_any <= _T_4375 @[el2_lsu_bus_buffer.scala 545:22] - node _T_4376 = bits(buf_write, 0, 0) @[el2_lsu_bus_buffer.scala 546:61] - node _T_4377 = eq(_T_4376, UInt<3>("h01")) @[el2_lsu_bus_buffer.scala 546:64] - node _T_4378 = bits(buf_write, 0, 0) @[el2_lsu_bus_buffer.scala 546:85] - node _T_4379 = eq(_T_4378, UInt<3>("h02")) @[el2_lsu_bus_buffer.scala 546:88] - node _T_4380 = or(_T_4377, _T_4379) @[el2_lsu_bus_buffer.scala 546:74] - node _T_4381 = eq(buf_cmd_state_bus_en[0], UInt<1>("h00")) @[el2_lsu_bus_buffer.scala 546:102] - node _T_4382 = and(_T_4380, _T_4381) @[el2_lsu_bus_buffer.scala 546:100] - node _T_4383 = bits(buf_write, 1, 1) @[el2_lsu_bus_buffer.scala 546:61] - node _T_4384 = eq(_T_4383, UInt<3>("h01")) @[el2_lsu_bus_buffer.scala 546:64] - node _T_4385 = bits(buf_write, 1, 1) @[el2_lsu_bus_buffer.scala 546:85] - node _T_4386 = eq(_T_4385, UInt<3>("h02")) @[el2_lsu_bus_buffer.scala 546:88] - node _T_4387 = or(_T_4384, _T_4386) @[el2_lsu_bus_buffer.scala 546:74] - node _T_4388 = eq(buf_cmd_state_bus_en[1], UInt<1>("h00")) @[el2_lsu_bus_buffer.scala 546:102] - node _T_4389 = and(_T_4387, _T_4388) @[el2_lsu_bus_buffer.scala 546:100] - node _T_4390 = bits(buf_write, 2, 2) @[el2_lsu_bus_buffer.scala 546:61] - node _T_4391 = eq(_T_4390, UInt<3>("h01")) @[el2_lsu_bus_buffer.scala 546:64] - node _T_4392 = bits(buf_write, 2, 2) @[el2_lsu_bus_buffer.scala 546:85] - node _T_4393 = eq(_T_4392, UInt<3>("h02")) @[el2_lsu_bus_buffer.scala 546:88] - node _T_4394 = or(_T_4391, _T_4393) @[el2_lsu_bus_buffer.scala 546:74] - node _T_4395 = eq(buf_cmd_state_bus_en[2], UInt<1>("h00")) @[el2_lsu_bus_buffer.scala 546:102] - node _T_4396 = and(_T_4394, _T_4395) @[el2_lsu_bus_buffer.scala 546:100] - node _T_4397 = bits(buf_write, 3, 3) @[el2_lsu_bus_buffer.scala 546:61] - node _T_4398 = eq(_T_4397, UInt<3>("h01")) @[el2_lsu_bus_buffer.scala 546:64] - node _T_4399 = bits(buf_write, 3, 3) @[el2_lsu_bus_buffer.scala 546:85] - node _T_4400 = eq(_T_4399, UInt<3>("h02")) @[el2_lsu_bus_buffer.scala 546:88] - node _T_4401 = or(_T_4398, _T_4400) @[el2_lsu_bus_buffer.scala 546:74] - node _T_4402 = eq(buf_cmd_state_bus_en[3], UInt<1>("h00")) @[el2_lsu_bus_buffer.scala 546:102] - node _T_4403 = and(_T_4401, _T_4402) @[el2_lsu_bus_buffer.scala 546:100] + node _T_4376 = bits(buf_write, 0, 0) @[el2_lsu_bus_buffer.scala 546:60] + node _T_4377 = eq(_T_4376, UInt<3>("h01")) @[el2_lsu_bus_buffer.scala 546:63] + node _T_4378 = bits(buf_write, 0, 0) @[el2_lsu_bus_buffer.scala 546:86] + node _T_4379 = eq(_T_4378, UInt<3>("h02")) @[el2_lsu_bus_buffer.scala 546:89] + node _T_4380 = eq(buf_cmd_state_bus_en[0], UInt<1>("h00")) @[el2_lsu_bus_buffer.scala 546:101] + node _T_4381 = and(_T_4379, _T_4380) @[el2_lsu_bus_buffer.scala 546:99] + node _T_4382 = or(_T_4377, _T_4381) @[el2_lsu_bus_buffer.scala 546:73] + node _T_4383 = bits(buf_write, 1, 1) @[el2_lsu_bus_buffer.scala 546:60] + node _T_4384 = eq(_T_4383, UInt<3>("h01")) @[el2_lsu_bus_buffer.scala 546:63] + node _T_4385 = bits(buf_write, 1, 1) @[el2_lsu_bus_buffer.scala 546:86] + node _T_4386 = eq(_T_4385, UInt<3>("h02")) @[el2_lsu_bus_buffer.scala 546:89] + node _T_4387 = eq(buf_cmd_state_bus_en[1], UInt<1>("h00")) @[el2_lsu_bus_buffer.scala 546:101] + node _T_4388 = and(_T_4386, _T_4387) @[el2_lsu_bus_buffer.scala 546:99] + node _T_4389 = or(_T_4384, _T_4388) @[el2_lsu_bus_buffer.scala 546:73] + node _T_4390 = bits(buf_write, 2, 2) @[el2_lsu_bus_buffer.scala 546:60] + node _T_4391 = eq(_T_4390, UInt<3>("h01")) @[el2_lsu_bus_buffer.scala 546:63] + node _T_4392 = bits(buf_write, 2, 2) @[el2_lsu_bus_buffer.scala 546:86] + node _T_4393 = eq(_T_4392, UInt<3>("h02")) @[el2_lsu_bus_buffer.scala 546:89] + node _T_4394 = eq(buf_cmd_state_bus_en[2], UInt<1>("h00")) @[el2_lsu_bus_buffer.scala 546:101] + node _T_4395 = and(_T_4393, _T_4394) @[el2_lsu_bus_buffer.scala 546:99] + node _T_4396 = or(_T_4391, _T_4395) @[el2_lsu_bus_buffer.scala 546:73] + node _T_4397 = bits(buf_write, 3, 3) @[el2_lsu_bus_buffer.scala 546:60] + node _T_4398 = eq(_T_4397, UInt<3>("h01")) @[el2_lsu_bus_buffer.scala 546:63] + node _T_4399 = bits(buf_write, 3, 3) @[el2_lsu_bus_buffer.scala 546:86] + node _T_4400 = eq(_T_4399, UInt<3>("h02")) @[el2_lsu_bus_buffer.scala 546:89] + node _T_4401 = eq(buf_cmd_state_bus_en[3], UInt<1>("h00")) @[el2_lsu_bus_buffer.scala 546:101] + node _T_4402 = and(_T_4400, _T_4401) @[el2_lsu_bus_buffer.scala 546:99] + node _T_4403 = or(_T_4398, _T_4402) @[el2_lsu_bus_buffer.scala 546:73] node _T_4404 = add(_T_4403, _T_4396) @[el2_lsu_bus_buffer.scala 546:153] node _T_4405 = add(_T_4404, _T_4389) @[el2_lsu_bus_buffer.scala 546:153] node _T_4406 = add(_T_4405, _T_4382) @[el2_lsu_bus_buffer.scala 546:153] diff --git a/el2_lsu_bus_buffer.v b/el2_lsu_bus_buffer.v index c500ba89..f6b611f3 100644 --- a/el2_lsu_bus_buffer.v +++ b/el2_lsu_bus_buffer.v @@ -1034,21 +1034,17 @@ module el2_lsu_bus_buffer( wire _T_983 = obuf_wr_timer < 3'h7; // @[el2_lsu_bus_buffer.scala 296:95] wire _T_984 = _T_982 & _T_983; // @[el2_lsu_bus_buffer.scala 296:79] wire [2:0] _T_986 = obuf_wr_timer + 3'h1; // @[el2_lsu_bus_buffer.scala 296:121] - wire _T_4398 = _GEN_365 == 3'h1; // @[el2_lsu_bus_buffer.scala 546:64] - wire _T_4401 = _T_4398 | _T_4350; // @[el2_lsu_bus_buffer.scala 546:74] - wire _T_4403 = _T_4401 & _T_4352; // @[el2_lsu_bus_buffer.scala 546:100] - wire _T_4391 = _GEN_366 == 3'h1; // @[el2_lsu_bus_buffer.scala 546:64] - wire _T_4394 = _T_4391 | _T_4344; // @[el2_lsu_bus_buffer.scala 546:74] - wire _T_4396 = _T_4394 & _T_4346; // @[el2_lsu_bus_buffer.scala 546:100] + wire _T_4398 = _GEN_365 == 3'h1; // @[el2_lsu_bus_buffer.scala 546:63] + wire _T_4403 = _T_4398 | _T_4372; // @[el2_lsu_bus_buffer.scala 546:73] + wire _T_4391 = _GEN_366 == 3'h1; // @[el2_lsu_bus_buffer.scala 546:63] + wire _T_4396 = _T_4391 | _T_4368; // @[el2_lsu_bus_buffer.scala 546:73] wire [1:0] _T_4404 = _T_4403 + _T_4396; // @[el2_lsu_bus_buffer.scala 546:153] - wire _T_4384 = _GEN_367 == 3'h1; // @[el2_lsu_bus_buffer.scala 546:64] - wire _T_4387 = _T_4384 | _T_4338; // @[el2_lsu_bus_buffer.scala 546:74] - wire _T_4389 = _T_4387 & _T_4340; // @[el2_lsu_bus_buffer.scala 546:100] + wire _T_4384 = _GEN_367 == 3'h1; // @[el2_lsu_bus_buffer.scala 546:63] + wire _T_4389 = _T_4384 | _T_4364; // @[el2_lsu_bus_buffer.scala 546:73] wire [1:0] _GEN_383 = {{1'd0}, _T_4389}; // @[el2_lsu_bus_buffer.scala 546:153] wire [2:0] _T_4405 = _T_4404 + _GEN_383; // @[el2_lsu_bus_buffer.scala 546:153] - wire _T_4377 = _GEN_369 == 3'h1; // @[el2_lsu_bus_buffer.scala 546:64] - wire _T_4380 = _T_4377 | _T_4332; // @[el2_lsu_bus_buffer.scala 546:74] - wire _T_4382 = _T_4380 & _T_4334; // @[el2_lsu_bus_buffer.scala 546:100] + wire _T_4377 = _GEN_369 == 3'h1; // @[el2_lsu_bus_buffer.scala 546:63] + wire _T_4382 = _T_4377 | _T_4360; // @[el2_lsu_bus_buffer.scala 546:73] wire [2:0] _GEN_386 = {{2'd0}, _T_4382}; // @[el2_lsu_bus_buffer.scala 546:153] wire [3:0] buf_numvld_pend_any = _T_4405 + _GEN_386; // @[el2_lsu_bus_buffer.scala 546:153] wire _T_1013 = buf_numvld_pend_any == 4'h0; // @[el2_lsu_bus_buffer.scala 299:53] diff --git a/src/main/scala/lsu/el2_lsu_bus_buffer.scala b/src/main/scala/lsu/el2_lsu_bus_buffer.scala index 68d9d854..daf08baa 100644 --- a/src/main/scala/lsu/el2_lsu_bus_buffer.scala +++ b/src/main/scala/lsu/el2_lsu_bus_buffer.scala @@ -543,7 +543,7 @@ class el2_lsu_bus_buffer extends Module with RequireAsyncReset with el2_lib { val buf_numvld_any = (0 until DEPTH).map(i=>(buf_state(i)=/=idle_C).asUInt).reverse.reduce(_ +& _) buf_numvld_wrcmd_any := (0 until DEPTH).map(i=>(buf_write(i) & (buf_write(i)===cmd_C) & !buf_cmd_state_bus_en(i)).asUInt).reverse.reduce(_ +& _) buf_numvld_cmd_any := (0 until DEPTH).map(i=>((buf_write(i)===cmd_C) & !buf_cmd_state_bus_en(i)).asUInt).reverse.reduce(_ +& _) - buf_numvld_pend_any := (0 until DEPTH).map(i=>(((buf_write(i)===wait_C)|(buf_write(i)===cmd_C)) & !buf_cmd_state_bus_en(i)).asUInt).reverse.reduce(_ +& _) + buf_numvld_pend_any := (0 until DEPTH).map(i=>((buf_write(i)===wait_C)| ((buf_write(i)===cmd_C) & !buf_cmd_state_bus_en(i))).asUInt).reverse.reduce(_ +& _) any_done_wait_state := (0 until DEPTH).map(i=>buf_state(i)===done_wait_C).reverse.reduce(_|_) io.lsu_bus_buffer_pend_any := buf_numvld_pend_any.orR io.lsu_bus_buffer_full_any := Mux(io.ldst_dual_d & io.dec_lsu_valid_raw_d, buf_numvld_any>=(DEPTH-1), buf_numvld_any===(DEPTH-1)) diff --git a/target/scala-2.12/classes/lsu/el2_lsu_bus_buffer.class b/target/scala-2.12/classes/lsu/el2_lsu_bus_buffer.class index 16a00331eae861bffd9d61ba8a0391ef597792e8..c35ef61b330dcf4f3004c88335e073a088fbba00 100644 GIT binary patch delta 117 zcmeC1FV{C;uAzmog=q_O)U4@`t}sbWfAD~bWqQRdW`XIKW-!Z5Up9+baC*=+n8a0( zL{cEL)buwqm?fE&1X8C5PG?qURGRL1hFNyH0w*&!6O+<(!z5;z=>cIZyzSFwGXpUT N5VLNdHk<9oX8=7rD-8eu delta 118 zcmeC1FV{C;uAzmog=q_O)U4@=9xPJRA3R`UnO-rAS%A@D`oSGclG7K>Viui#D1sR( zbrmQzebWmdmwP%hAG4Bx*K|f!X6fmSvza9s)20VbXI5uan*MPWQ0M~-GjIFU*~~!9 O0>rG_r_N^k`56H1`zt5_