26 lines
868 B
Scala
26 lines
868 B
Scala
import chisel3._
|
|
|
|
class IssueQueue(p: CoreParams = CoreParams()) extends Module {
|
|
val io = IO(new Bundle {
|
|
val enqValid = Input(Vec(p.issueWidth, Bool()))
|
|
val enq = Input(Vec(p.issueWidth, new RenamePacket(p)))
|
|
val enqReady = Output(Vec(p.issueWidth, Bool()))
|
|
val wakeup = Input(Vec(p.issueWidth, new Wakeup(p)))
|
|
val issueValid = Output(Vec(p.issueWidth, Bool()))
|
|
val issue = Output(Vec(p.issueWidth, new RenamePacket(p)))
|
|
val issueReady = Input(Vec(p.issueWidth, Bool()))
|
|
val flush = Input(Bool())
|
|
})
|
|
|
|
val intRs = Module(new ReservationStation(p, p.intRsEntries))
|
|
intRs.io.enqValid := io.enqValid
|
|
intRs.io.enq := io.enq
|
|
intRs.io.wakeup := io.wakeup
|
|
intRs.io.issueReady := io.issueReady
|
|
intRs.io.flush := io.flush
|
|
|
|
io.enqReady := intRs.io.enqReady
|
|
io.issueValid := intRs.io.issueValid
|
|
io.issue := intRs.io.issue
|
|
}
|