@@ -201,7 +201,7 @@ class Gemmini[T <: Data : Arithmetic, U <: Data, V <: Data](val config: GemminiA
201201 address = Seq (AddressSet (0xff007000L, 0xfff )),
202202 device = regDevice,
203203 beatBytes = 8 ,
204- concurrency = 0 )
204+ concurrency = 1 )
205205
206206 regNode := TLFragmenter (8 , 64 ) := stlNode
207207
@@ -519,8 +519,9 @@ class GemminiModule[T <: Data: Arithmetic, U <: Data, V <: Data]
519519 regCommand.status := io.cmd.bits.status
520520
521521 val raw_cmd_q = Module (new Queue (new GemminiCmd (reservation_station_entries), entries = 2 ))
522- raw_cmd_q.io.enq.valid := regValid || io.cmd.valid
523- io.cmd.ready := raw_cmd_q.io.enq.ready && ! regValid
522+ raw_cmd_q.io.enq.valid := regValid // || io.cmd.valid
523+ io.cmd.ready := false .B // raw_cmd_q.io.enq.ready && !regValid
524+ assert(! regValid || raw_cmd_q.io.enq.ready)
524525 raw_cmd_q.io.enq.bits.cmd := Mux (regValid, regCommand, io.cmd.bits)
525526 raw_cmd_q.io.enq.bits.rob_id := DontCare
526527 raw_cmd_q.io.enq.bits.from_conv_fsm := false .B
@@ -540,7 +541,8 @@ class GemminiModule[T <: Data: Arithmetic, U <: Data, V <: Data]
540541 RegField .w(32 , gemminiRs1RegMSB)),
541542 0x18 -> Seq (
542543 RegField .w(32 , gemminiRs2RegLSB),
543- RegField .w(32 , gemminiRs2RegMSB))
544+ RegField .w(32 , gemminiRs2RegMSB)),
545+ 0x20 -> Seq (RegField .r(32 , io.busy))
544546 )
545547
546548 val raw_cmd = raw_cmd_q.io.deq
@@ -564,7 +566,7 @@ class GemminiModule[T <: Data: Arithmetic, U <: Data, V <: Data]
564566 inputType.getWidth, accType.getWidth, dma_maxbytes, new MvinRs2 (mvin_rows_bits, mvin_cols_bits, local_addr_t),
565567 new PreloadRs (mvin_rows_bits, mvin_cols_bits, local_addr_t), new PreloadRs (mvout_rows_bits, mvout_cols_bits, local_addr_t),
566568 new ComputeRs (mvin_rows_bits, mvin_cols_bits, local_addr_t), new ComputeRs (mvin_rows_bits, mvin_cols_bits, local_addr_t),
567- new MvoutRs2 (mvout_rows_bits, mvout_cols_bits, local_addr_t)) }
569+ new MvoutSpadRs1 ( 32 , local_addr_t), new MvoutRs2 (mvout_rows_bits, mvout_cols_bits, local_addr_t)) }
568570
569571 val unrolled_cmd = Queue (loop_cmd)
570572 unrolled_cmd.ready := false .B
0 commit comments