Bus-buffer testing start

This commit is contained in:
waleed-lm 2020-11-08 18:18:41 +05:00
parent 88f8ebc4ef
commit 4e6f49549c
5 changed files with 22 additions and 20 deletions

View File

@ -1,14 +1,4 @@
[ [
{
"class":"firrtl.transforms.CombinationalPath",
"sink":"~el2_lsu_bus_buffer|el2_lsu_bus_buffer>io_lsu_bus_buffer_full_any",
"sources":[
"~el2_lsu_bus_buffer|el2_lsu_bus_buffer>io_ldst_dual_d",
"~el2_lsu_bus_buffer|el2_lsu_bus_buffer>io_dec_lsu_valid_raw_d",
"~el2_lsu_bus_buffer|el2_lsu_bus_buffer>io_lsu_busreq_m",
"~el2_lsu_bus_buffer|el2_lsu_bus_buffer>io_lsu_busreq_r"
]
},
{ {
"class":"firrtl.transforms.CombinationalPath", "class":"firrtl.transforms.CombinationalPath",
"sink":"~el2_lsu_bus_buffer|el2_lsu_bus_buffer>io_wdata_in", "sink":"~el2_lsu_bus_buffer|el2_lsu_bus_buffer>io_wdata_in",
@ -144,6 +134,18 @@
"~el2_lsu_bus_buffer|el2_lsu_bus_buffer>io_ldst_dual_r" "~el2_lsu_bus_buffer|el2_lsu_bus_buffer>io_ldst_dual_r"
] ]
}, },
{
"class":"firrtl.transforms.CombinationalPath",
"sink":"~el2_lsu_bus_buffer|el2_lsu_bus_buffer>io_lsu_bus_buffer_full_any",
"sources":[
"~el2_lsu_bus_buffer|el2_lsu_bus_buffer>io_ldst_dual_d",
"~el2_lsu_bus_buffer|el2_lsu_bus_buffer>io_dec_lsu_valid_raw_d",
"~el2_lsu_bus_buffer|el2_lsu_bus_buffer>io_ldst_dual_m",
"~el2_lsu_bus_buffer|el2_lsu_bus_buffer>io_lsu_busreq_m",
"~el2_lsu_bus_buffer|el2_lsu_bus_buffer>io_ldst_dual_r",
"~el2_lsu_bus_buffer|el2_lsu_bus_buffer>io_lsu_busreq_r"
]
},
{ {
"class":"firrtl.transforms.CombinationalPath", "class":"firrtl.transforms.CombinationalPath",
"sink":"~el2_lsu_bus_buffer|el2_lsu_bus_buffer>io_lsu_pmu_bus_busy", "sink":"~el2_lsu_bus_buffer|el2_lsu_bus_buffer>io_lsu_pmu_bus_busy",

View File

@ -5864,11 +5864,11 @@ circuit el2_lsu_bus_buffer :
node _T_4432 = cat(_T_4431, buf_data_en[0]) @[Cat.scala 29:58] node _T_4432 = cat(_T_4431, buf_data_en[0]) @[Cat.scala 29:58]
io.data_en <= _T_4432 @[el2_lsu_bus_buffer.scala 578:14] io.data_en <= _T_4432 @[el2_lsu_bus_buffer.scala 578:14]
node _T_4433 = cat(io.lsu_busreq_m, UInt<1>("h00")) @[Cat.scala 29:58] node _T_4433 = cat(io.lsu_busreq_m, UInt<1>("h00")) @[Cat.scala 29:58]
node _T_4434 = mux(io.lsu_busreq_m, _T_4433, io.lsu_busreq_m) @[el2_lsu_bus_buffer.scala 580:27] node _T_4434 = mux(io.ldst_dual_m, _T_4433, io.lsu_busreq_m) @[el2_lsu_bus_buffer.scala 580:27]
node _T_4435 = cat(io.lsu_busreq_r, UInt<1>("h00")) @[Cat.scala 29:58] node _T_4435 = cat(io.lsu_busreq_r, UInt<1>("h00")) @[Cat.scala 29:58]
node _T_4436 = mux(io.lsu_busreq_r, _T_4435, io.lsu_busreq_r) @[el2_lsu_bus_buffer.scala 580:94] node _T_4436 = mux(io.ldst_dual_r, _T_4435, io.lsu_busreq_r) @[el2_lsu_bus_buffer.scala 580:93]
node _T_4437 = add(_T_4434, _T_4436) @[el2_lsu_bus_buffer.scala 580:88] node _T_4437 = add(_T_4434, _T_4436) @[el2_lsu_bus_buffer.scala 580:87]
node buf_numvld_any = add(_T_4437, ibuf_valid) @[el2_lsu_bus_buffer.scala 580:155] node buf_numvld_any = add(_T_4437, ibuf_valid) @[el2_lsu_bus_buffer.scala 580:153]
node _T_4438 = bits(buf_write, 0, 0) @[el2_lsu_bus_buffer.scala 581:60] node _T_4438 = bits(buf_write, 0, 0) @[el2_lsu_bus_buffer.scala 581:60]
node _T_4439 = eq(buf_state[0], UInt<3>("h02")) @[el2_lsu_bus_buffer.scala 581:79] node _T_4439 = eq(buf_state[0], UInt<3>("h02")) @[el2_lsu_bus_buffer.scala 581:79]
node _T_4440 = and(_T_4438, _T_4439) @[el2_lsu_bus_buffer.scala 581:64] node _T_4440 = and(_T_4438, _T_4439) @[el2_lsu_bus_buffer.scala 581:64]

View File

@ -2449,12 +2449,12 @@ module el2_lsu_bus_buffer(
wire _T_4424 = ~buf_rst_3; // @[el2_lsu_bus_buffer.scala 577:128] wire _T_4424 = ~buf_rst_3; // @[el2_lsu_bus_buffer.scala 577:128]
wire [2:0] _T_4431 = {buf_data_en_3,buf_data_en_2,buf_data_en_1}; // @[Cat.scala 29:58] wire [2:0] _T_4431 = {buf_data_en_3,buf_data_en_2,buf_data_en_1}; // @[Cat.scala 29:58]
wire [1:0] _T_4433 = {io_lsu_busreq_m,1'h0}; // @[Cat.scala 29:58] wire [1:0] _T_4433 = {io_lsu_busreq_m,1'h0}; // @[Cat.scala 29:58]
wire [1:0] _T_4434 = io_lsu_busreq_m ? _T_4433 : {{1'd0}, io_lsu_busreq_m}; // @[el2_lsu_bus_buffer.scala 580:27] wire [1:0] _T_4434 = io_ldst_dual_m ? _T_4433 : {{1'd0}, io_lsu_busreq_m}; // @[el2_lsu_bus_buffer.scala 580:27]
wire [1:0] _T_4435 = {io_lsu_busreq_r,1'h0}; // @[Cat.scala 29:58] wire [1:0] _T_4435 = {io_lsu_busreq_r,1'h0}; // @[Cat.scala 29:58]
wire [1:0] _T_4436 = io_lsu_busreq_r ? _T_4435 : {{1'd0}, io_lsu_busreq_r}; // @[el2_lsu_bus_buffer.scala 580:94] wire [1:0] _T_4436 = io_ldst_dual_r ? _T_4435 : {{1'd0}, io_lsu_busreq_r}; // @[el2_lsu_bus_buffer.scala 580:93]
wire [2:0] _T_4437 = _T_4434 + _T_4436; // @[el2_lsu_bus_buffer.scala 580:88] wire [2:0] _T_4437 = _T_4434 + _T_4436; // @[el2_lsu_bus_buffer.scala 580:87]
wire [2:0] _GEN_388 = {{2'd0}, ibuf_valid}; // @[el2_lsu_bus_buffer.scala 580:155] wire [2:0] _GEN_388 = {{2'd0}, ibuf_valid}; // @[el2_lsu_bus_buffer.scala 580:153]
wire [3:0] buf_numvld_any = _T_4437 + _GEN_388; // @[el2_lsu_bus_buffer.scala 580:155] wire [3:0] buf_numvld_any = _T_4437 + _GEN_388; // @[el2_lsu_bus_buffer.scala 580:153]
wire _T_4507 = io_ldst_dual_d & io_dec_lsu_valid_raw_d; // @[el2_lsu_bus_buffer.scala 586:52] wire _T_4507 = io_ldst_dual_d & io_dec_lsu_valid_raw_d; // @[el2_lsu_bus_buffer.scala 586:52]
wire _T_4508 = buf_numvld_any >= 4'h3; // @[el2_lsu_bus_buffer.scala 586:92] wire _T_4508 = buf_numvld_any >= 4'h3; // @[el2_lsu_bus_buffer.scala 586:92]
wire _T_4509 = buf_numvld_any == 4'h3; // @[el2_lsu_bus_buffer.scala 586:119] wire _T_4509 = buf_numvld_any == 4'h3; // @[el2_lsu_bus_buffer.scala 586:119]

View File

@ -577,7 +577,7 @@ class el2_lsu_bus_buffer extends Module with RequireAsyncReset with el2_lib {
buf_error := (0 until DEPTH).map(i=>(withClock(io.lsu_bus_buf_c1_clk){RegNext(Mux(buf_error_en(i), true.B, buf_error(i)) & !buf_rst(i), false.B)}).asUInt()).reverse.reduce(Cat(_,_)) buf_error := (0 until DEPTH).map(i=>(withClock(io.lsu_bus_buf_c1_clk){RegNext(Mux(buf_error_en(i), true.B, buf_error(i)) & !buf_rst(i), false.B)}).asUInt()).reverse.reduce(Cat(_,_))
io.data_en := (0 until DEPTH).map(i=>buf_data_en(i).asUInt()).reverse.reduce(Cat(_,_)) io.data_en := (0 until DEPTH).map(i=>buf_data_en(i).asUInt()).reverse.reduce(Cat(_,_))
val buf_numvld_any = Mux(io.lsu_busreq_m, Cat(io.lsu_busreq_m, 0.U),io.lsu_busreq_m) +& Mux(io.lsu_busreq_r, Cat(io.lsu_busreq_r, 0.U),io.lsu_busreq_r) +& ibuf_valid val buf_numvld_any = Mux(io.ldst_dual_m, Cat(io.lsu_busreq_m, 0.U),io.lsu_busreq_m) +& Mux(io.ldst_dual_r, Cat(io.lsu_busreq_r, 0.U),io.lsu_busreq_r) +& ibuf_valid
buf_numvld_wrcmd_any := (0 until DEPTH).map(i=>(buf_write(i) & (buf_state(i)===cmd_C) & !buf_cmd_state_bus_en(i)).asUInt).reverse.reduce(_ +& _) buf_numvld_wrcmd_any := (0 until DEPTH).map(i=>(buf_write(i) & (buf_state(i)===cmd_C) & !buf_cmd_state_bus_en(i)).asUInt).reverse.reduce(_ +& _)
buf_numvld_cmd_any := (0 until DEPTH).map(i=>((buf_state(i)===cmd_C) & !buf_cmd_state_bus_en(i)).asUInt).reverse.reduce(_ +& _) buf_numvld_cmd_any := (0 until DEPTH).map(i=>((buf_state(i)===cmd_C) & !buf_cmd_state_bus_en(i)).asUInt).reverse.reduce(_ +& _)
buf_numvld_pend_any := (0 until DEPTH).map(i=>((buf_state(i)===wait_C) | ((buf_state(i)===cmd_C) & !buf_cmd_state_bus_en(i))).asUInt).reverse.reduce(_ +& _) buf_numvld_pend_any := (0 until DEPTH).map(i=>((buf_state(i)===wait_C) | ((buf_state(i)===cmd_C) & !buf_cmd_state_bus_en(i))).asUInt).reverse.reduce(_ +& _)