设计心得
单周期的FPGA模型机的设计与实现在刚开始时,我们做了充分的准备,   然后在进行设计时,我们加入了IO模块进行FPGA模型机下板,其中遇到  很多问题,也是在一步步通过自己的努力在解决遇到的问题,与老师一起讨   论。最终在我们团队的努力之下,我们组成功突破了FPGA模型机下板,自  主解决问题,因为你所遇到的问题,都是形形色色各式各样的,而且不同的   代码会有不同的设计,以及不同的代码风格,在这里我需要强调一个很重要   的问题一个编程人员,最重要的是他的代码给一个与该项目不相干的人,且   能让其清晰知道代码的功能,这就需要一个良好编程风格,加上注释的代码   才是一个好的代码。因为我代码设计清晰以及良好的编程习惯,使我在解决   代码问题时,很快找到了问题出处,为小组的进展做出贡献。
单周期模型机设计完成后,我与小组另一名成员开始了MIPS多周期五级流水模型机的设计与实现,在之前我们代码雏形为单周期模型机设计,在此基础上进行了多周期流水线的实现,由于设计时参照了老师给的设计图,实现数据相关,寄存器类数据相关相对很好解决,先判断当前指令是否与上一条指令以及间隔一条指令产生数据相关,即当前指令要用的数据是我上一条指令以及间隔一条指令需要写回到寄存器中,所以分别从ex、wb模块,把将要写回的数据直接传递到id模块进行数据的传送,完成该指令正确执行,
上一条指令以及间隔一条指令继续执行自己指令应该完成的步骤。
解决load问题时,遇到了一个不可逾越的障碍,由于流水线的设计应该是:取指-译码-执行-访存-写回,而如果由单指令周期模型机演变为多指令周期以及流水线的模型机,流水线为:取指-译码-执行-写回-访存,会产生一个指令执行时,数据在流水倒流的情况,如果不发生访存,不会有任何问题,但是发生访存,会让wb要写回的寄存器地址,以及寄存器的使能会被流水线的数据刷新处理掉,导致无法写回,就算使用了流水线暂停机制,在请求流水线暂停后,会让流水线中加空操作,空操作会刷新流水线,因为访存在流水线的最后,且一进一出需要两个时钟周期,流水线上的数据早就成为NOP,所以对于模块的设计要有深刻的理解,应该是工程化的设计流图设计,保持一个善于发现问题,解决问题的心态。
mips模型机设计总结
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
 平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 学习事物是怎样工作的有其内在价值:处理器是如何工作的对于我们普通人来说一直是个秘密,我们将从零开始构建一个流水线处...