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 }