|
|
1
1
我犯了个错误。我的错误是,当ldm指令后跟rtype时,当rtype在第3阶段,ldm在第4阶段时,我会暂停处理器。但是,我应该在一个时钟之前检测依赖关系,当rtype在stage2(decode)中,ldm在stage3(exec)中时。 在这种情况下,我应该暂停管道。 因此,当rtype在第2阶段,第二ldm在第3阶段,第一ldm在第4阶段时,我检测依赖关系并暂停管道一个周期。 所以在下一个时钟中,rtype仍然在第二阶段,第二个ldm在第四阶段,第一个ldm正在写回寄存器,因此由于rtype仍然在第二阶段,它可以读取写入寄存器文件的数据。(回写在时钟的负边缘完成。在posedge中,rtype的第一个参数已就绪。) |