FloatBlock.scala 1000 字节
Newer Older
1 2 3 4 5
package xiangshan.backend

import chisel3._
import chisel3.util._
import xiangshan._
6 7
import xiangshan.backend.regfile.Regfile
import xiangshan.backend.exu._
Y
Yinan Xu 已提交
8
import xiangshan.backend.issue.ReservationStationNew
9 10 11


class FpBlockToCtrlIO extends XSBundle {
L
LinJiawei 已提交
12
  val wbRegs = Vec(NRFpWritePorts, ValidIO(new ExuOutput))
13 14 15
  val numExist = Vec(exuParameters.FpExuCnt, Output(UInt(log2Ceil(IssQueSize).W)))
}

L
LinJiawei 已提交
16 17
class FloatBlock
(
18 19 20 21 22 23
  fastWakeUpIn: Seq[ExuConfig],
  slowWakeUpIn: Seq[ExuConfig],
  fastFpOut: Seq[ExuConfig],
  slowFpOut: Seq[ExuConfig],
  fastIntOut: Seq[ExuConfig],
  slowIntOut: Seq[ExuConfig]
L
LinJiawei 已提交
24
) extends XSModule with NeedImpl {
25 26 27
  val io = IO(new Bundle {
    val fromCtrlBlock = Flipped(new CtrlToFpBlockIO)
    val toCtrlBlock = new FpBlockToCtrlIO
Y
Yinan Xu 已提交
28

29 30 31
    val wakeUpIn = new WakeUpBundle(fastWakeUpIn.size, slowWakeUpIn.size)
    val wakeUpFpOut = Flipped(new WakeUpBundle(fastFpOut.size, slowFpOut.size))
    val wakeUpIntOut = Flipped(new WakeUpBundle(fastIntOut.size, slowIntOut.size))
Y
Yinan Xu 已提交
32
  })
33
}