fix(issue): 修复双发时inst1不能为跳转
This commit is contained in:
parent
44ac8853b8
commit
87fc0f60ee
|
@ -55,6 +55,9 @@ class Issue(implicit val config: CpuConfig) extends Module {
|
||||||
val inst0_is_bru_inst = ((inst0.fusel === FuType.bru && FuType.bru =/= FuType.alu) ||
|
val inst0_is_bru_inst = ((inst0.fusel === FuType.bru && FuType.bru =/= FuType.alu) ||
|
||||||
(inst0.fusel === FuType.alu && ALUOpType.isBru(io.decodeInst(0).op)))
|
(inst0.fusel === FuType.alu && ALUOpType.isBru(io.decodeInst(0).op)))
|
||||||
|
|
||||||
|
val inst1_is_bru_inst = ((inst1.fusel === FuType.bru && FuType.bru =/= FuType.alu) ||
|
||||||
|
(inst1.fusel === FuType.alu && ALUOpType.isBru(io.decodeInst(1).op)))
|
||||||
|
|
||||||
// 指令1是否允许执行
|
// 指令1是否允许执行
|
||||||
io.inst1.allow_to_go :=
|
io.inst1.allow_to_go :=
|
||||||
io.allow_to_go && // 指令0允许执行
|
io.allow_to_go && // 指令0允许执行
|
||||||
|
@ -62,7 +65,8 @@ class Issue(implicit val config: CpuConfig) extends Module {
|
||||||
!struct_conflict && // 无结构冲突
|
!struct_conflict && // 无结构冲突
|
||||||
!data_conflict && // 无写后读冲突
|
!data_conflict && // 无写后读冲突
|
||||||
!VecInit(FuType.mou).contains(io.decodeInst(1).fusel) && // 指令1不是mou指令
|
!VecInit(FuType.mou).contains(io.decodeInst(1).fusel) && // 指令1不是mou指令
|
||||||
!inst0_is_bru_inst // 指令0不是bru指令
|
!inst0_is_bru_inst && // 指令0不是bru指令
|
||||||
|
!inst1_is_bru_inst // 指令1不是bru指令
|
||||||
} else {
|
} else {
|
||||||
io.inst1.allow_to_go := false.B
|
io.inst1.allow_to_go := false.B
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue