Bus-buffer testing start
This commit is contained in:
parent
88f8ebc4ef
commit
4e6f49549c
|
@ -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",
|
||||||
|
|
|
@ -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]
|
||||||
|
|
|
@ -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]
|
||||||
|
|
|
@ -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(_ +& _)
|
||||||
|
|
Binary file not shown.
Loading…
Reference in New Issue