天天看点

自己动手写CPU(8)加载存储指令的实现自己动手写CPU(8)加载存储指令的实现

自己动手写CPU(8)加载存储指令的实现

好久没更新blog了,暑假提前放了。现在收假也该收收心了,继续捡起之前的CPU,自己开的坑不管咋样把它填完吧。

指令介绍

1、加载指令

自己动手写CPU(8)加载存储指令的实现自己动手写CPU(8)加载存储指令的实现
自己动手写CPU(8)加载存储指令的实现自己动手写CPU(8)加载存储指令的实现

2、存储指令

自己动手写CPU(8)加载存储指令的实现自己动手写CPU(8)加载存储指令的实现
自己动手写CPU(8)加载存储指令的实现自己动手写CPU(8)加载存储指令的实现

修改系统结构

增加了相关模块的接口信号和一个RAM模块,具体含义见数《自己动手写CPU》

自己动手写CPU(8)加载存储指令的实现自己动手写CPU(8)加载存储指令的实现

地雷

书9.5节所使用的测试程序中存在load相关,如下图

自己动手写CPU(8)加载存储指令的实现自己动手写CPU(8)加载存储指令的实现

lwl

指令使用的是寄存器1的旧值,而非新值,所以与书上所示波形不一致。9.1-9.4节还没提到load相关的问题,所以建议9.1-9.4节做完后并解决load相关问题后,再使用9.5节的测试程序进行测试与结果比对。仿真结果与书本上提供的一致,我这里就不贴了。

参考

Linux的Spinlock在MIPS多核处理器中的设计与实现

《自己动手写CPU》

项目链接

Chapter9_1

Chapter9_2

继续阅读