实验七 MIPS RAM设计(基于Logisim)

一、 设计要求

学生理解主存地址基本概念,理解存储位扩展基本思想,并能利用相关原理构建能同时支持字节、半字、字访问的存储子系统。
Logisim 中 RAM 组件只能提供固定的地址位宽,数据输出也只能提供固定的数据位宽,访问时无法同时支持字节/半字/字三种访问模式,实验要求利用 4 个4 K*8 位的 RAM 组件进行扩展,设计完成既能按照 8 位、也能按 16 位、也能按照 32 位进行读写访问的 32 位存储器,最终存储器引脚定义如下图。
在这里插入图片描述

二、 方案设计

输入:
1.题目给出的ROM的地址位宽位10位,所以地址取高10位。Str信号由各rom的wi此信号给出,表示仅当写模式下,该ROM需要参与写时才有效。sel端置一。
在这里插入图片描述

2.确定输入数据的取值:如果Mode为00时表示字访问,即写入32位数据,4片ROM都被选中,分别对应第0,1,2,3个字节;Mode为01表示单字节访问,即写入8位数据,这时只选中一片ROM,而且写入的是Din的最低字节;Mode位10时表示半字访问,即写入16位数据。这里要选中2片ROM,由于要对齐所以只能选高两位或低两位。
在这里插入图片描述

3.确定wi的取值
先使用一个解码器,根据Mode的取值来决定要进行的访问方式。
在这里插入图片描述

然后在三种访问方式下设计如下的电路来确定wi的取值
地址在字访问时忽略最低两位;半字访问时忽略最低位,倒数第二位为片选;字节访问时,第二位进行片选。
在这里插入图片描述

或门表示任一模式下选中都有效
当写入字节时我们需要判断地址的低两位是否指向了此片ROM
当写入半字时,我们需要判断地址的次低位是否指向了该ROM所在的组

输出:
在这里插入图片描述

三、 实验步骤

1、 阅读题目要求,弄清各个引脚的功能
2、 思考怎样实现输入输出
3、 设计完整电路
4、 测试与调试
5、 总结收获

四、 故障调试

在本次实验测试时发现了以下错误
在这里插入图片描述
在这里插入图片描述

经过排查发现错误出现确定在w2和w3 中 半字地址后多加了一个非门
在这里插入图片描述

改正过后成功通关
在这里插入图片描述

在这里插入图片描述

五、 心得体会

通过本次实验,我对使用Logisim自带的测试电路更熟悉了,同时也掌握了系统设计电路的方法。将一个大问题切分成几个互相关联子问题。然后逐一解决这些子问题。
总之,本次实验使我受益匪浅。