FloatBlock.scala 940 字节
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 18 19 20 21 22 23 24
class FloatBlock
(
  fastWakeUpInCnt: Int,
  slowWakeUpInCnt: Int,
  fastFpOutCnt: Int,
  slowFpOutCnt: Int,
  fastIntOutCnt: Int,
  slowIntOutCnt: Int
) 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

L
LinJiawei 已提交
29 30 31
    val wakeUpIn = new WakeUpBundle(fastWakeUpInCnt, slowWakeUpInCnt)
    val wakeUpFpOut = Flipped(new WakeUpBundle(fastFpOutCnt, slowFpOutCnt))
    val wakeUpIntOut = Flipped(new WakeUpBundle(fastIntOutCnt, slowIntOutCnt))
Y
Yinan Xu 已提交
32
  })
33
}